From patchwork Thu Feb 26 16:28:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4912 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:08 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-yx1-f59.google.com (mail-yx1-f59.google.com [74.125.224.59]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGT3vx009318 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:03 +0100 Received: by mail-yx1-f59.google.com with SMTP id 956f58d0204a3-649deef077esf1306357d50.1 for ; Thu, 26 Feb 2026 08:29:03 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123338; cv=pass; d=google.com; s=arc-20240605; b=cP5SO4X6RBG4GOJBMh7FzXx5o4o9aUMfu4lRRpx3VBV3/0E52PSt1dKdsUpKEb0oY+ lNHpLEI3Z5QWQj6BbVogZqBOD/DIfEtlfM1dyOJJudp0OhH8RiuaphtOGrqqeHT/KXUp 7vxkhWCvYRdJfuclpAfFwfXWslANXUccf1IAvXoye86XtpCkbara53Tqj6zLMuKvsfb3 GVxz8aegV66Is4QaCQPuztbHrBuiNUcR5CGVd9NXZcUCmIWzCJCyUpGNzCHRD8JSJGzq YsX1fr5k1BX20Fx4EX8ia3FkBHfqBpo+WtQHimTAnyRP2s6uDeK1yPSRyulMkL+Qyemk NyFw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=TSmUcD91AzUNVN3QR7AC6Pno/9b+bXnKqR4DlGP5Ftw=; fh=yQ+ntnxu8/4cqqqLM1Ak3OiqC32oRmW/agkIKs/H8Zg=; b=hycqPnyHvFRZ2caAEGkAxDybh0+iDAn3ePL0YQJNTvoQXHH2Q56HBcol2GmR017F/G 6kF5N7XgIAkmZEF+76ZTKZnDjoAdbwbjAsI3xln0p4VphBPtzIXw9oBNXsL0CKlbK9+4 ekGwo28kEziq3RG48XsMB1kQfAQNgaxZZIl9J+2FjJZoM1mycRBPA+tOBuLP1GcZ6OYN 421rKDailquFdAdG15fXPVLwTUpL0MRT7xzyZe/9Echl35J9sSfZjTRySYyJM3KEg9eQ 2rT3staNkRUAvHYSz2k5r/GM//bEx3MPyO/qqDz855wS6wEoKq2ubLBTotu2fcanGnOX /BCw==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=L6D6wwYj; 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:c20f::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=20230601; t=1772123338; x=1772728138; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=TSmUcD91AzUNVN3QR7AC6Pno/9b+bXnKqR4DlGP5Ftw=; b=ZmG8aP+rMouG2/xkIQlk0s9WLAO90RrNvFnM9o5PZXVEOHAT74WRpgZZUbp3fpQp4C UJ/4ZYVzhzQAGPGmewdYt/u71j6RhOeaQEMGWui09xCiblHMhx8yPs9+mbuKRgIm6pjl 5pHfETlzRWlq9sfU5G5ViT2b+Fe9rGXXBnhCZEuu1luiAke8w9sCVO7f/dRZ9ZbkmxUd 4BYIMLNtiNEXT088kHwDsFa0eQ8dgR2RK69OdpruJfN70VlGeVJCUPuwpyYIS1kPuL34 M0cS7LhmHbKvNqxbS/ybRYzgNmApnlUUBRsCCUks2I0KwxP6OnDRoCRbl/TzUG0ZkJlW /39A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123338; x=1772728138; 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 :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; bh=TSmUcD91AzUNVN3QR7AC6Pno/9b+bXnKqR4DlGP5Ftw=; b=E23fOYfcQOYVoYjkkjFZJXJyAmltekrBimESE/aE669ZJ9K04Rp7caLstTSI3GKq9D C68zpdlqJBy1kJuq+lTm4LUXgq5MkJYsbjrLTOmUo1y0kdUFJG8gfSQi93/JsyHwqrT9 yiKeoDFxv0JPJaWjHzN+CImGMK12c3qqLY+nxjuHft+9HGDFKqhumfITcE6Eagv5+9NO em95G7kViORWEUj6H2Lsjhh7S0Nn6jWdWTP6tiwwm5MetbCwGvUl0XmT+A9oK9NulmfS qm7rgn89nTLyxBQK61G0HN/+yBEuinRdYO1LEERbjUHX1hZqwIHWR8x9QD7RlpZCPV3O USvw== X-Forwarded-Encrypted: i=3; AJvYcCUFrXd3zsw2wBYTJDmJCMOGNMPbaQjngEE6B6uygPyDNFyJJk/7BbncTj3yCaP7LmrfzuB2rNE=@isar-build.org X-Gm-Message-State: AOJu0YwQ5tTa/caKWCCihs5YDHq/tbbStcbxgh74uNlZo6gsh3rKoHZh kyVCYFw6OK1vJaPIuJEJHrP99BuLPYdmDcDdYcbdHZHYHyBmWSBypazE X-Received: by 2002:a53:ecc3:0:b0:64a:d4ca:4ed9 with SMTP id 956f58d0204a3-64cb7c8d599mr1721216d50.83.1772123337527; Thu, 26 Feb 2026 08:28:57 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+FPVCZtI6Y0DD9olVLTD8HkC73V+3w2wZTWIq+Z6zIM3Q==" Received: by 2002:a05:690e:1a14:b0:63f:aef7:d017 with SMTP id 956f58d0204a3-64caa9b0397ls1653290d50.1.-pod-prod-07-us; Thu, 26 Feb 2026 08:28:56 -0800 (PST) X-Received: by 2002:a05:6122:1c10:b0:566:4689:46eb with SMTP id 71dfb90a1353d-56a92ec8bc9mr1632228e0c.0.1772123336237; Thu, 26 Feb 2026 08:28:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123336; cv=pass; d=google.com; s=arc-20240605; b=GpiXvmLxfq1SZ7GjscZLaZPupr/F0LZ3Lsxy/1cCdl/1s6kBLRBXW9qLOxwXgtKLZX m18GyVI0n76b/9xJjfXDxx3yCx0kHD2NCaNWMaKf5SyjuKB/r8w6p1+RodgMp9HyOQSN pTlNnQkS3FZzYjp2ooBS8KOsY9ufist3IjRjW8LeICBm88cygaiF74Ee9oyu+fwlCfRN 1P4GHurhDeJa2wnJN+QjCUuTyPDWc3EwHeWc4SuPl83MaIQt96ftGEAaYwZt1ATD8j8g Rx+IhxlyavEAQKuKyeKI6JOpiIswBkVtr6CDy/OCaR+H3QioCKUUtUzOj2T/qATu69Uu zcVg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=2x0pE8Gf8H1cPCmgqCHjkjBhcQWi+LX+1EBcc2jGAow=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=L/57l6XGhorsRYmVBHdYNhNqY6cG7YjcTls61IhdUski+hgHNOVEj2VwDamT2APX0N DP93+KefNknBMho9XzyDaHmoJKkrPMakiaowTEdBttyr5HCIgUOWvMWJkhfrGU5uC4lA y8mJWN6t5Tbl5rgTR61S/kvYwj2i5WaXg4DZ1Ohqo93qQYr/ZuS27fxn7CPDo0IRWPp1 FUMxfeqFL6Lp0ZbZzUPHen4CC7Yu4ueJr/Tk4AgGJ4mJbaj3H6nHiExO8FOcaYvliNJx puT/Ky2MyznwOTUCLxR+2QluXcKHk4OqXfjPeAmWcbP5jaX+fuKpUwjzY06Stvv1WU2x URwQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=L6D6wwYj; 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:c20f::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by gmr-mx.google.com with ESMTPS id 71dfb90a1353d-56a91b89cb9si84014e0c.1.2026.02.26.08.28.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:28:56 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YGrz8zVxxJCqiyxAJjloIsicQbc3wL6s470HUDDpfVdTNpQHyex4EpYLiRQQ6yixIHEtS6t7q4LnOjUovJkZNh3wCRC0HxDjO+jjsJOh5em24pBq2Bvw0huFmMoQOh9hOXyyq180XyhqB6qXfx3JFCefHCfrf12/Zg/7NAKOmmzEPfXlMyoMc91fUY5bLx53p4lx2QLmdoXRSdFKN0/8lLUiuce9Gb3EoSPmt+R/tKJda/VHaE0bvqOceu06AazX4CUIhwe40r9UvFFoXQdShm0+96YhGSgG4rlluC+Fo0ypRzGFGgTarH4MvWQ1WeTanpW/EmwiKlSJm+IpN8n0mg== 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=2x0pE8Gf8H1cPCmgqCHjkjBhcQWi+LX+1EBcc2jGAow=; b=N/EnYpZXQHHxP2A239u2vOUTpdz/AI9gcUCV1bC545LxCjvdooYsBdnX5JSzRzWWWTQsxFq7c+KYjuTnuqZ+4jVQfuRURlnhj/Kv6JuqO4w7M/rSIW/uvW/OOrnZ0QLy5+vx/69lgenj0xIwd2fH56IvUUFLDYizIKVtumPNdvh9XfFLFQcU+9mzSP2+LVnqM+JXYAqXcYetXaktgAl6HKVNoSaJcLsGHywWJoC7DwGygIwTHWpkH8p3qS3jfzjRQTEO/0YXKgZWbIl/fI8azoleukpep8GXh/u9TLnBTJ3+EMJcEqnbKekr42nwaoDLKw0rO2gkp4VSbm1TOL22Lg== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by DU0PR10MB9297.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:59a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:54 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:54 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 01/15] refactor bootstrap: store rootfs tar with user permissions Date: Thu, 26 Feb 2026 17:28:26 +0100 Message-ID: <20260226162843.1642329-2-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|DU0PR10MB9297:EE_ X-MS-Office365-Filtering-Correlation-Id: 140f171c-b51d-435b-674e-08de755421b4 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: gka50VdufPLLoCD/yI68MF0jv/No04qRAlTTGpL7Q8I+DKxdgXEhckaFDw8jhupTvGJg88t6iLEPU38b/OutH4F2y/sOHgzGkiZw1fc/ggpG+a6XP6pgMWEI543lkiVLVxL9k1koRFow1ECELV22V6F67vxGa7hKkMkAiV1ByI3X6OLoXFStMfA+BUZwLr+SL0VC1KxSAf2wQf7knhwvvOhwWpuZ/NRFBxKCKPn4ewB/In/01UGIfZm2cfwJBvclmuLVEJy9QXB2LnT5ycabdtluv2mH7fsOIdAjFCVBwV2ReamUeEKPxaMw9DaenhUp7G8XOp40js58YW+Fycv2kcZVpTVG9PXMZ67OgxuW0gE/7RdM6N0RGmJ2Qa43p0BgT6UWjrA24IP5P+hpbxrS9HDzGs3gzPRvJThoENYPYC2gK8cHRBbSn3Mh2whTSjv6VIXFYUjypdBEBPgFnfrAUNmLYAfNgWO5JPn167khJhej8Y9XZTcJllNX7WVpJygzVlx81uVDWjm23q9za34olBTMrJlKGr5Pzhb6XOaVJmHiMZIAAvdpDDtk2Zw5tMwHk4six9xb9RB0H74rh3ntQa+hTbmOPKJLxB3/Vffrsrm2Lc1YL5Ir2gdVsDuCor6nOTApjTvBfXNFTr6MoCYYmPfVGZF7FioI+cTJ9A8COKvHoNMhE+h/t3vgqNyhpxag6YcjZ6ieyrK7N5AGVzv12lQ11nR4qRy5oUPBaubTg4U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: XD0E37udQxkiavuObtbOwkdBhaXd6QFyJRkBd3p2Sqhv+v2KuPP+8GesT4Hp7zsSoO4P7j0xVOBoeP+wKiHfBWQImKTrKMOhy2sbdzicWXFJETBJ/MSFV+rBD7F1HnxYkfdOotudvfmuObCYFQXa5hZ1SGLZ2fbiHAK/LnHQl2KJU7tHzZy3j6TBIb3ztIjQVn9PW7blFsWxAPnmP3ZVD3jZvWc584A03Qg6JlXAJYK2tlCR+NdpTHYL+V6vmkLE7g/qzQcPP7GprzL8NZEgOz4i3a3Uo6CY0WI427tMG1xDMz+O8h/R7Xp3doVNhQqq/G1yHA4DjoviIQ+Yu3CkR6lRIZAYgg+foI0Q7FBrDjDQubUg2HspVyEi2XoLV2+jXowWzwsO28XSc+cQ+qciSl2WiocXl01QTjo63gVYpX3CaFM6/KvqzWZIWnaFkoJry8gduAe7ZL2hmEXfJGTRDnapCASXHqSi2tSAcyQF35H6058eJQvb2wskYbaiHpkD8IJ+WUCJZqBefgWEtu4Lt7fTDA157dwlh1IUbLFk2hAkyw5alnTB2IeUJVZZdxOwYqbwM9AMRMtPtC6eVlimKnCrbqEfLbKMYkagz024zVBGV5p3n2NCUmGGctd8XfJXOZGMMPSZFFfDQIJOrUzaIzXLBR1c4f4yGKn2ptr7RIrkMQPmp9QiTpr0Q/71ipsWXtFpuAaOUKVqcBgOVHGtlGy3OIItJ6lgdI+SvQiN/nRHZXl+8Rfu2EHk+NDFfgp1Al5Xz6FlglN9AWwQksn7dBXpjhsrskz5UxzuAlrWoj/6h53CllFW23bU5BKGymtgehgCwvG0a+2Yl7uhLgPcdPgHBVtqfRVfHeQgRjVCuF5jBBJcGbgmorwDJHbc7M9FDjrQX5++WdYB9Hi3SMIi9Yw6qqiWFzaiPVfsig2TUGGMvo9CbukJBY8OvNfbjNLRwPYNAiHP7r++siXvYIkXGg3eZlAMIGO2iastXMWBwqa4eL1Z9mEz/ehXnWrLOxZ/eqnYkDJvcEzqsrfuAfprjuYbCgHxp9CA/aRdCUw8OUyP7cRwzriMofzVL4Bjmx80AqNTsgKDrYMN+x8sqP0SFEObiXBhfq+3eL/cOHbR5S2bGucXsBhcIJ44HhB8Z8xcyylHIzBcW3RHgpcbQyHdqBeUtFReML6ZgGhbXOx1G41BqMXotGbWIkOw2Fs0sMOrx7QJZBk1ukTxAScZUNiipaDD58aVgXAGwcCnNFGu+eM8lpJmZqy3JexOJzzgq40uhnegfxizOfNxvGq7zrujsCA4zWLoTG/MFHqGAn6RwT+MtMroPN7rHvEkZM4wgiSLvAVeZ+JUXX8vAgF5VY2YgVEgkMWz51Fue6MR/+L1L9Ha5xf8UgIYKc9pe85e0ZoT+bU+wQ3LXGuzMiybbivHbY0hqlMSBWiVOgbW8BJf59id8r5PBT0b5xhFvlIlflCJ9yxegenGqgqmgkc6W7sNwkUdxt29TEJQfvpHTuj2kQFMHgOOfWvPmnUwjqKsjLUXWlgpgL1swP0NUBIxHJWhJcZWmkxRrtn4iYqLfPzGFhiP6wlzfUWBQlkQHSw0G7sjv5FQWIYIa0RcUfRVQ3UDrODDM8B1ioW765sgVGOWJeiY+Deci/GMdvUVh9LgrTnz4Nx+wLZoP0E085L+HchGUDN2Szz4zdNvEe0KEuwTlxU6QDaxoSbRh6o5EnASBBTz8O3wOSlD+S7oYNOKklA38SdrdxZrHnpayAYho71tDMYYBsbzWGMl8P8fLQa9yerRf4DejXps X-MS-Exchange-AntiSpam-MessageData-1: JoY1BCdCWRS9ECd9+0WsrTJATpUXtLZfUyU= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 140f171c-b51d-435b-674e-08de755421b4 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:53.9661 (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: zPeCbQj16BR8Y3Eh1n2EZ0BkKoxo2r7flOoFSPqIq12qHLuT2eEmk9QYnrr9xVwD27gQqKYPMQahYqZzYC8kHveSSm2PMWyMRymWDtHi0eo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9297 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=L6D6wwYj; 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:c20f::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_H2,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?= As the mmdebstrap itself is executed as root, the generated rootfs will also be owned by root when stored as file. To avoid this, we let mmdebstrap emit the rootfs on stdout and write it to a file outside of the sudo call. Signed-off-by: Felix Moessbauer --- .../isar-mmdebstrap/isar-mmdebstrap.inc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index ce34245f..9b4f62df 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -239,11 +239,11 @@ do_bootstrap() { ${@get_apt_opts(d, '--aptopt')} \ ${@get_distro_components_argument(d)} \ "${@get_distro_suite(d)}" \ - "${WORKDIR}/rootfs.tar.zst" \ - "$bootstrap_list" + - \ + "$bootstrap_list" > ${WORKDIR}/rootfs.tar.zst # Finalize bootstrap by setting the link in deploy - sudo ln -Tfsr "${WORKDIR}/rootfs.tar.zst" "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" + ln -Tfsr "${WORKDIR}/rootfs.tar.zst" "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" @@ -258,8 +258,7 @@ SSTATEPOSTINSTFUNCS += "bootstrap_sstate_finalize" bootstrap_sstate_prepare() { # this runs in SSTATE_BUILDDIR, which will be deleted automatically - sudo cp -a "${WORKDIR}/rootfs.tar.zst" ./bootstrap.tar.zst - sudo chown $(id -u):$(id -g) bootstrap.tar.zst + cp -a "${WORKDIR}/rootfs.tar.zst" ./bootstrap.tar.zst } bootstrap_sstate_finalize() { @@ -267,8 +266,8 @@ bootstrap_sstate_finalize() { # we should restore symlinks after using tar if [ -f bootstrap.tar.zst ]; then mv bootstrap.tar.zst "${WORKDIR}/rootfs.tar.zst" - sudo ln -Tfsr "${WORKDIR}/rootfs.tar.zst" \ - "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" + ln -Tfsr "${WORKDIR}/rootfs.tar.zst" \ + "${DEPLOY_ISAR_BOOTSTRAP}.tar.zst" fi } From patchwork Thu Feb 26 16:28:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4911 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:07 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-yx1-f62.google.com (mail-yx1-f62.google.com [74.125.224.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGT3wH009326 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:04 +0100 Received: by mail-yx1-f62.google.com with SMTP id 956f58d0204a3-649f0d26e5esf1234348d50.0 for ; Thu, 26 Feb 2026 08:29:04 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123338; cv=pass; d=google.com; s=arc-20240605; b=dlBNLOmafnf8lk596toTCne8otonAX2tfPV6l4FDM5GBmcauDMFqcl/k7jDcRE3u/4 poNHIUk6L1jABg2VaXS8nurV67t166k7+wLdwYUgDdvMi0KSbX7q12/5bZIzmi3/0peh kXySPydwNMFdSy5jHBtdPEorIfD0CDkRljKqZ6zcKGp6GhjA/u2aNKMVkR5aeU+yo8fp RCrON7aLsqbFRAf9a76Or1u36D3YB9uQqmsw/cOAECXeMQ8eivJ/xKgLRiIUVX1jDvVK p7ka+BFP+/XUqvfwVQZApx7QpOMj95ISGEFmQC4e/tKi1+yzbUnO8Jv7A7zah09/KahB Z4XQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=TMuYKsEZCHAtNRZJGy48h+JydCB/8QZQvvfaYIK9YoA=; fh=6XpCkpUxEvpcz6i2WgiFjvwycSrXZ8o9KBO+COCwHGM=; b=CpXKVU5MekQ+vCB5qH73fAyH5CAVnuHF2fyFdtAy2rnLTD5anZ5BAZwJAYfiXo6dcI fnn8Ct68QAIEX7QJbA9Z72ISfl0kA3Pm8DfJPy/wNzf+SyW3u0WiJFPOZVXCYsuReTFw 7nIoSrYxBzsvJO5orSA2VOrrayLIt2EkItKs8o37+Zg7wUhI1CP26eBb3MIJq/lFEjOC J5drN+w+GDs9OaKGE4F2Fk3ddZ4nBWPVQ3bbQ0fZWdzaMaQCDJNIP+E9U/Hbjzskzs3y N1hd3sKr7oV81R7jfPpuYCFHfsAvguuwneqMJOa1cHbh3XWAqz66kC930LCMge8so2fE Y8FQ==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=rVtn6W+7; 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:c20f::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=20230601; t=1772123338; x=1772728138; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=TMuYKsEZCHAtNRZJGy48h+JydCB/8QZQvvfaYIK9YoA=; b=uHSENYDqTIVm/Ot2gF9i6+qkaLhI/ieGGoktLLPZFSDXMjMyBxy7yAO9jMCc7R0rCB zUgXzLm6uCaroKOZorxIwNfTota21dcac/j/tQ1WQZVmG46veSEwCuwEpwaRfUxI4Ehp GXebnJtzAoSspF3Ke7cwq34buzmtdKtYqQeRXrk5/kGEkMyFs4cLL8I4Zvru9WkvCPa1 vY3T0Q53MRjgroh7mO6eiO030kKR5TR1jFHTjgeQAnmxMLswuwYKf0CJxT27K2dcD6kA IiecC/MPN4Jszxssg7+wuPTj++mv4fscD1hv2h45yo+5LfAuk+QmdPLVEnNAZtxcycb2 tAAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123338; x=1772728138; 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 :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; bh=TMuYKsEZCHAtNRZJGy48h+JydCB/8QZQvvfaYIK9YoA=; b=KA/m5lDLeS/BmhPiqexm72sYYnx5k4j7ow69E9HT+zKao9wSmkhjoYNhYvmvHtkqE6 c+oQRb0a1warW5si8wYU2jBu9Rwra4SXoYxvYPV2k1H/QIUdlf5t7mG1RRc2R4WDCikd 67l6TpMoAh6cMfashjrKSl/YflS/cNOV1X3L8Fkd04kbEsFSrzVSu/BQT6fECiwRvtzT Y9zd70h6SZgW15R04R60HVeYjdgRXRgeOvra8u7dw2HUZxqo4O4FpCA1JR057fWiDdA0 m3NwylkqOZOmUc/7a2RqTFz7MncCeTJUaR+zOUx9CnhITEBvPuUHC+p+gVBJg2yo+oxr MDfQ== X-Forwarded-Encrypted: i=3; AJvYcCUymwYi2hRnPQ7oyQfAXWJ9z4h9dnKMPz+E0DQzHjT0qJgtJcbbtr7jV2a0wU4OBm/IGVOf+IE=@isar-build.org X-Gm-Message-State: AOJu0YzoxtDchJczEs1orA7xgYANhO4uGek9FmIKTugS2dB0ET37ZaWB 5bTf6Xj5C1HQht5UB/zq1G+kZ2KhOyFKhN4GLQ/X+4rKobhz8uiWwWS9 X-Received: by 2002:a05:690e:d01:b0:649:ed9f:378e with SMTP id 956f58d0204a3-64c787d46f9mr15631835d50.1.1772123337987; Thu, 26 Feb 2026 08:28:57 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EdhQpIU1Smh1BZnb3APyqQjVTelMs40RMSgmfwweK1gg==" Received: by 2002:a05:690e:4259:b0:641:f6b4:5b3a with SMTP id 956f58d0204a3-64caa9d5a20ls469437d50.3.-pod-prod-03-us; Thu, 26 Feb 2026 08:28:57 -0800 (PST) X-Received: by 2002:a05:6122:6b10:b0:56a:933a:48d with SMTP id 71dfb90a1353d-56a933a1339mr1462992e0c.11.1772123336755; Thu, 26 Feb 2026 08:28:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123336; cv=pass; d=google.com; s=arc-20240605; b=OZnfqBk0zo4pR78R49QtDQBEYE8VgBjD//KWblAURPQvfjzwHdaikN2rMrAzm9Z9vx lTXCi0YlkpHSjEuhtlWyXLBLI5YbXkiCo7iAq1PV31RnpoB++v0hZJpMdSc2aye9UKbR 5Z3gZHjmxaI7q1wOk4muqWqQdBOiIJkWjyvw3VF9mua0ubPN0olBtfhUjAIu1GJj6iQo eO99izZkiCC/G1+Jk/hxYIcyD2JXykSf1nwrjtssy2ifL4fwAeXkPDWcJ/lm1y4TuI91 7x08t5p/w6+PZO6Fn4DF3qm5QrJjEFRYm0kRLgo7EMMcG2+HYazJzVnLpNoIfDNW4LhA 3Ikg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=+EM26EnPCs5Roie9oKdlwLvjh5KOD+Lp700ADYNBCxg=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=H+XdDeAEdpHQg7GrUKiRGwK6Bk3otT9I034pt4W6ccEKlKw3jAn9D2MipoZMdGVLuY Jtlo2OS0r79A3tB5DsbK5cEsBas38iFn4MvDtSJrQmPRcjUIg1ik3H6obc4e4z73emmg jBpLTJANp4FBr8bQ64nBVz/a04wBsSPTUTi2qcM2ULX3+amo27rcI1Rqm8eX/180j4db W6domRwyWAfNBE9R0ZLbKXQVvL55+CLm7eNnAiy7JJFAkQWmiMTibJvgLUboG+P+39sa xazIxr6NQapQkxp8rDDlhLq7spq0PeqPGPep8ofjUrzTBKJEnQ1Una0j6Okdzg1K5An0 +bHg==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=rVtn6W+7; 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:c20f::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by gmr-mx.google.com with ESMTPS id 71dfb90a1353d-56a91b89cb9si84014e0c.1.2026.02.26.08.28.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:28:56 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=flJqecOTfwWONK/QmKQ9Urx71VVxpLbMZJTisWM98AvF5NofnPYfkuwT/WihuUqpgqW/sdzq4HLN0xmYO/nGrSZ6RJqnFgIr7h2bD9JzibQOnKg+ol1eqiU+TmMxJR2AxzlGTfVN7rut8akCSiSFeTdUjPMSHX8aUUNhdAOb73esaRm70gOXHbt99xGHaSxTA4DiZnf6EikXYqOntyuUNColuU8B3zvd4Ux8uzOrgzZqhgXVljIYk5ICPMMmlKO8ON9B1U7VtqZa3Hj0Hzv6R6crLpUR+zZtDf78/gv1bs020MFLjJnxLCYdT9lda4QDF2k8IM3UnF7bZSkHJSVHkA== 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=+EM26EnPCs5Roie9oKdlwLvjh5KOD+Lp700ADYNBCxg=; b=jZgXoExuwKbXUopMY7+ESSQscP7lID61ZCBfBppkyqp8/yYS0qJRiPyL0G4MgpkXw3arASwpqUf+CQd1z5F8JnYPSZxe54keWdw3ARxX/Qh5TLQhwTr8+ujm85645tz1HI7PhUl5nAFx2Jk/SpjNsDm6g9f4oXNbCPO4dJjjFqIQrr2RFS/U2gjNxMleffeY2Zw+jT5OqC/u/FZ1vWKp28jcxaCeVw4pLa1w8xryQuV5DQbg07ZbCn1uNoIzSGoVa01dW1dw/zxWO+hdsgD9YcyICBWXfgDLa7r/nZ6PcIc0hK2SgCtTLOd0WxlGxKJRitHJkv6Lf39RRPsLdFg7ZQ== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by DU0PR10MB9297.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:59a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:55 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:54 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 02/15] deb-dl-dir: export without root privileges Date: Thu, 26 Feb 2026 17:28:27 +0100 Message-ID: <20260226162843.1642329-3-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|DU0PR10MB9297:EE_ X-MS-Office365-Filtering-Correlation-Id: b82f6cf6-2b53-4a19-b7be-08de7554223c X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: rt5fOQSPwFWo6QQt8T+9HuKY4ZGuYCxeGceXFnhOpJ7Ok4sipFRp4uUJ8QtDaSK/d2kqUDeh0JVRZsHdEV48sYsws/h6bYSj5qByHm2zcrpQ/FIPuHAssatiHmYD8FbWcv2aUm2T69125kvNMrFCsOkvfj4gjhwxkwgG1f/OLHFRZ6RCRVAftkvCeUdUAnQpT3Ug8N6/LMqsNhJrVLhFOz51dspcMi24Uj503muSC55gseSGb3XWje49yX2DV79NJx2GhsnKSeEmN7cd9JW4XyySdq4HsxdlV8FrY7TbUoEzs2WWkkL8564QHOF56xBXlCLlfBdekvpudr25HFOvhXusosCJaMjgtCpf+rr2hhJKZh8JMsawdduW4WrJLJPxBBgrK7HB+gL2kE2KuM7U/5BDUHdKePrkgG+MMGJ6tUvCL0opfEK3BS35kTipkgacvMaR7K+7CJ69kslCraGHbrsILPZuayTw7h3I6QBXrlPpadJZ0evxbqyEQfDXNc0gSuDWylM+8Zt9TKCFsZtsdMW+2Yhi/q7CPqFiLFSvMF/35PTFdsi7yqrp+uX68mqCGSJH2mvNuM9lZdTCzuMabNGT5ZD2LKpean4+s26GGzfbflDHicINu35d36tWwq7q5jHsoir4Tt38V3R4UxILtwcToliC4usleprPCtIcXtlAW/+gMNZ4dKf8U1C6mtNOSCe26wSm2TZD5duF6jTy4/4huSxqc0YFqUDosPxenZA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: NIlpAuvars85HpDCQ4Pr/lTsc5Rv0U1s2t5a/XQ/o9Ukl9597XY6VHODPf2rFzQtOqPvG8f9O8H74PCPOGbas8CMr45reOo5t+dE3p77Vgbnhiur1jdnYs3PtJ08Qjeaj8qM7URcVzGIvKhO2GC1bc4DgN2nnkMj2/nIpfDcz8H8XI57YNZT8BrXmF+amWJRGvMjwZGiDdpVMIbmDjSsxY5NmPVRrgQNAscK4GIChmiGOKi/G+5nBdvO5Hsk0BD8tBt/CM0yv8/OFNym0k7iVrtsGwKzFFUlJeDhHBLT8dZgvjZEylVbLHRJ0Lksq9lIP4NNAFWuigx5AusCNHAxhnIVAUeJLdSD1hPwa35sRQ23Dmsas7bbgFRe7735BieUiBHZs/6/WDdeMpVfc1jsC7dSECjzfQGK8lwJshTh3EStQ6W2Sf4htsf9Aaw0kXEQbS+8XpDf3SU6A7kbbMNbz3RNP+swNMFWn0fTS7cksNZZYWqXPwemGysR2iudVwZ35HsY2tOWeBB1bxUijz5hRCncRwzKWKppp/wj2VOCHvncuUzbu2rLF5LLM3diHA/89ocMR5kkvggUcosq2hwQQauJv0iuZhpEc881TpmUcukaRuzmNPtLJ2OpIATzKKbpCzX2ObEfLmR8WI8KXkfxHwNVCjjiOLzv/IJMeYMmcBygIUgKtYC6+VFoT93xSDo6KRr6X809HW1nED74AAsvGK9N/HvNDxummCi8/zplz6laWaIUEOud8IhQ8Dbz8Q2jZiwkn4Ac0HN3XrWN/gefjBVUYWME/nUBmCeMBne1sasf3T83XaeO8bxGvkGrMdJT6Tczk2A2ppDwzdWBO1UK4IQcE6A4qj/s2/ojM03dNILk59ucv0EKj/uv+UiZHF3H99YNuXshx2PkY+syFEBo+pGBDn8pP9TYs4lmwLWgK6CogPZIb+Vx3VJs2C35Zoi978pSwlqLMiFPYMFcg0gfTK62+YJI6gYV4Dln5dNsRrIubUvZRjGcU3DXXaaaRXRHTtiBhc0q6tZq714uyCBw7PyTYJRcvSUvpZ2z4yVDM8SudT2KgJe4pM7ZvHqEaMOHpPpLHMp38bMOO99ADfplFBSiV+PGi1xdTcB3OAp3rQtAratpVq50yDBaP+lO/ehASYQHZ06gT4dLMpoXVpPyEZ7EkTj+vKbvIHkMgIHNcBXdLSvPhmvodgUDFMJOeu783dEX0USwCKhza0vrfBD9FvsrUSBr5fYx8KdNziL5+LjvqFqxPoFUee94JctwC0aKdE5TWBJFsa3S/6wC/CAdVtpmyIz9Qu1oQcxeEiP9dD4UboEs0dsC8UyyPH/HYesD/OR0qlYqY3qcaMoaRpGJ710c8o7BmSzkZf1pBG7Fw6kTZFZFeerYz1W6wDij37pj+JYswwsV+2wbIuvGZY+mUvNUwKUA8aaIA5NZXIL4PBdLvaVRqHvpFFZRLN+lbWF8k0RjRse1kgjD3PvP9g6APjI9qocSgm8RNzAjW5jUpzTLa1ejs/yPD0Ui7UNkjg3D/fZGOm21WKvLli2Q4Q1uIcFEnI7CHigqWSpfcYN7QAoQ7+zMQuUqJOMBHhVxEukyRDIIVKINhJ1AOEhJxjFBaHKElPme+hkpSUpUXNWppcUvGDYBqZohE0UXhSfFkZ+tkO/oEDFTcYAKWP2lcgWV6Hvp768FlKDUOxv5gXGEWbRjuJ7ZbauzS+wzbCcTMnipmK2D2e1eAIEnStOHYqqndA5FdYc1WqDmReOn2Cz5xVyeSU7ydPFoosFkvOQOncDwNM3fd5HA X-MS-Exchange-AntiSpam-MessageData-1: 89YttAUqHoOdOr05xHAKi0tFLVUk4xZf5Mo= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: b82f6cf6-2b53-4a19-b7be-08de7554223c X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:54.9098 (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: Ny3ML8pN/3AVIK7UKVU8GXaedkr/K3wb4bxeS+vrt6HzWYs0/uzByi5v/6zPKHt2QZtiOLmugQl4mphdCjPEnmwyLZxaUmqOH1Y4Fp92Ltc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9297 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=rVtn6W+7; 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:c20f::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_H2,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 archive is world readable, so we can access it without root privileges. By that, the files in the download dir are also owned by the calling user, making the additional chown obsolete. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/deb-dl-dir.bbclass | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 7ebc3526..76c2435f 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -153,7 +153,7 @@ deb_dl_dir_export() { isar_debs="$(${SCRIPTSDIR}/lockrun.py -r -f '${REPO_ISAR_DIR}/isar.lock' -c \ "find '${REPO_ISAR_DIR}/${DISTRO}' -name '*.deb' -print")" - flock "${pc}".lock sudo -Es << 'EOSUDO' + flock "${pc}".lock /bin/bash -s << 'EOF' set -e printenv | grep -q BB_VERBOSE_LOGS && set -x @@ -170,6 +170,5 @@ deb_dl_dir_export() { ln -Pf "${p}" "${pc}" 2>/dev/null || cp -n "${p}" "${pc}" done - chown -R ${owner} "${pc}" -EOSUDO +EOF } From patchwork Thu Feb 26 16:28:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4913 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:08 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-yx1-f62.google.com (mail-yx1-f62.google.com [74.125.224.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGT4N0009337 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:05 +0100 Received: by mail-yx1-f62.google.com with SMTP id 956f58d0204a3-64ad2a28349sf1208879d50.3 for ; Thu, 26 Feb 2026 08:29:05 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123338; cv=pass; d=google.com; s=arc-20240605; b=GzTsbN1PPEJHyVm1mjmf5b4JU/3kqrkGm+YjZ45mVr+P5xbTq2w6ro/ffbEg6zCjEf etJo5wlxuM71kZGJAMKaZCPRQZF8FfqwATuJj31EOgitAVO0Ox9UDcYQ5eDC9LFbta/W fv7LYW77Pd0BUR436tljf4EpVPArw3zhMwE3HiNyaTX5cMM7lW4X5P7lDwVOR3o+/WlW SAzHfP/SOHOR3waR60zGFlmn9hkNWNKY+AO6TqPwbf1lcUlcqdSZ+kQsVZEJd90RnhBn k6nx2V4bmo1jbWCQdcKMI9c7PykRtpO1UeCybOGPoYQBodi89STx/4QVO6DuhvhYP/HI ruqA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=Mnj3wpehSuAvXzxn51yTj8T9llvvEtePpF5lMdBLvDc=; fh=pW3asaSSOcDG9XlYwKxHT5yTp3odqtptYZ0l6O2/9AQ=; b=Nqt/wwMhhgQfbXBVYaBscY+UPUezpl580Qrg0rc/LDK1X7xdGpNdatbGev0cX15aJE XW9pou6ZVhYnlERdiGBreWpDEIYJwMFqpKQmgnEC/I83jqzhCQS6ZFQe92O6y2ofiKju oL/g0ngnVv3WcizTLXQJJV48U27c5vQJBIHt9IgwxGo4zHPkpe3dCNZtKIbgnIsK+Rn0 RrEvB2+Xgi0r8KF5HcH2RejPBuQjjkuUvaz9xQ3CSCxFSMt3yXuCo5S5x2v/m3o7B2aH ktDhgutVgl63a26PXMR+m4wwfWNPhuFVAeCQXDR3F2C3ea68wHc9Q3VmPZGaPFdo15FI F83w==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Cd36gsXm; 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:c20f::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=20230601; t=1772123338; x=1772728138; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=Mnj3wpehSuAvXzxn51yTj8T9llvvEtePpF5lMdBLvDc=; b=PG0xdBPOZ3LO8y9LLOEum5yLqtOD/99r4/dLoaHAktFuCnUA1O+LKA5eo4ZnF+NTQU nmCtbY++KAlDziX8zsL4gwfeme3FkN7v5M5dV65DN8bxRFUNrDZtmziolVXXL5RfYE8b vHgfVfeVGJGnWlA5yMmS+R34Q7HaSz1JCe41jUapyXEhfUVT7yG1Ovszb8P4vWf8kvGu UBNZ9bnAP9w20feG01wmTnOu4vYbkmI8JMmcucadhNOVViwFUPT82o8A0T34LgGKVxGv z6DhV2vuRPmMdJcP8A7ci6sglToblOLhM4T/iHoqDkLHm7GbiicIkmEiUCgocUryu4zU Ae0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123338; x=1772728138; 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 :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; bh=Mnj3wpehSuAvXzxn51yTj8T9llvvEtePpF5lMdBLvDc=; b=VCyyfPwU7q7zoIvswojRf17heT4K3WgAgcZaNv0SW5+8qCQH6OVcf2SSuQUzkpIaqc 0A352N8Envd/BbT7QOmq0xPi5o6qZ41gReq3j3xggnBYFlILQDsNb5luJF6D7N1hhGOP Znwz/U6Zd0erWyzrNW7nORy8exFc/j3fwKq/HA71wQBX5ONpMqu/6lGw5zIuc4oEPRQK tf+xpYdvcIM76aZnL/echN64M+g4BmoFFrX27xmmOyaEMCwgimhEfHm0hGpmBowV3VhH uBGgCAVIo+qLojajSMmTNn0HFBw1iWYK9ynjlS9R2f2YdXwlGwHnpoPhcv+rU37iGsge oEDA== X-Forwarded-Encrypted: i=3; AJvYcCU9NtYdFNJQ7n6KWXU9U1lWokz42MMXSzAmEueWnZ9y5KWlOtwFGT74BUlaaC1UD2m26hbQEkk=@isar-build.org X-Gm-Message-State: AOJu0YwguI+ktc7LauOmSxADnvFYP3vz+7guuc9w8qmfmnUuxtjk+jt2 cXaVczrTSML7lkDiubZKxYdwnKEB9HESG5rn66Z/UeeW+SNs3B6GoBQr X-Received: by 2002:a05:690e:151b:b0:649:e86f:2566 with SMTP id 956f58d0204a3-64c787d62c5mr17623755d50.22.1772123338423; Thu, 26 Feb 2026 08:28:58 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+HDLtznzXHA6KssO2KtJMTLdfZd18mZOoCH5y1s/+Bc2A==" Received: by 2002:a53:b2e8:0:b0:648:1a47:2653 with SMTP id 956f58d0204a3-64caa9ac95bls1911873d50.1.-pod-prod-02-us; Thu, 26 Feb 2026 08:28:57 -0800 (PST) X-Received: by 2002:a05:6122:2191:b0:567:4e8a:fb13 with SMTP id 71dfb90a1353d-568e4794e18mr10334879e0c.8.1772123337417; Thu, 26 Feb 2026 08:28:57 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123337; cv=pass; d=google.com; s=arc-20240605; b=JMc3B5dRq67Ozb3dkqLE2lXEE8sWkGoEKGlfEb+utcIn92huQSbMWDGNojboJbKxhU 8D/xg26SUuwkbHp0qS+SGfHuw5K0Yf5Mr/ZWMA6u0rZB0Jr6q/+olV3J/TyUNAoNmhq3 Dv3blg537zlekASYY5nFOw5ehxRlg9n7d4TEOIeFBW3lpzb+6IxH7hUfr3Upde/ztHqi 5jL/Si8LxJkbWsLEz9anBuBUFz5bKTPmGY8qSeUJIns+YNXufPA6vGqsCzBowKMZyoLI NRnBFCEmm3f5r/jOVWUU/+NpKhabbENqU4dQ5GdXn3X9m9Jw0I67w+2rwjx/5TVDRHqN 0bzw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=GqQU2w+tRzwxjZYZLgu6kLTLMy8MCfkauH7kZqvNfLI=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=TaU3AkHih5j6p2USEjwevsxI0nEZ1cY45ejwRtxq4E6+8s/2VFBuhACyahRtgl01Yx it7trv63IKZswJP9QXT2LvkZwMCqmjSoihYpl1ZPiMXX7o6zA+5Tx/3A/N56cB6I2v8Z 4zge6M0eSDiyIEBluIokq9Qd/RPqmCTbSF2y6BogB5Z1L0rnLqXwiHymMCqIWkrzjDRV Uoztbk2mJOXRaIzqBKsW1tNg9GDWlIqXTKkDvc2T9ssTwMXIkpl4ic7SJHaFPcGt9gAg 7+QYawUoVMXU+3ha0siGY5qjHdTonNRE6nLxAI2rr1LJViQSnE5Mh4/iau0z7sAd/Pn4 8Bcw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Cd36gsXm; 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:c20f::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by gmr-mx.google.com with ESMTPS id 71dfb90a1353d-56a91b89cb9si84014e0c.1.2026.02.26.08.28.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:28:57 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L2vNTmzeJNTyEjyu2iRYIwgMo/VoaGR6tpw0uQ4kPRAmNiOw3W2uQfFVWyHHQyfa8YMbLYLsOTj7kUXx2AVGTls6Li9Bxf1yfLIdRQJKdi0joQAzZXGUPAbv0M+simWDBRPqLsW0dEjfd2y178pDgtqoLloi8izliaMhyHgwkYnrfBOjpC397mYbPPiPZaP3+NeBr77/dnGIPMwrX03eIkQ48h3j0u5bOvkd/+zbBA0ak2gOOKbhxJmgAL3JD4zcCf60+9zbYAW/ScAHNYiYtduWYgp0RNemun3bLgk6UU9ljO5qAgJavotCJhmrS1itotYlWSh4+agH3zpW1qIn8g== 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=GqQU2w+tRzwxjZYZLgu6kLTLMy8MCfkauH7kZqvNfLI=; b=MbP9WKFHYZCwdpzWtw/51QvvAVfteMd98Wwf3pNUl9Df8GoJNLvTYlZH6TXG8d454cfrqMAB67Fc+y1a2PGQOG9EHxkJ1fy4PZgIOqw2MlQ/vIj2U2fkdT6b7sH2S5wzuMoPbHsb0kMGiReu7RaWTgaTEQd6rAhKZB3JbG7BTn6Zdlj/r0vpjgGIaBMhvQbKh9BZMa6R3WlDjLDGLzsOLQkq2xOUpvxZl1AMzTzk0kKswlnrsh+a7PgOPkfyUiAGbJ8/f0dvXnZEDTcaX6//CpujdqheHX7axksYZUCIvGlcR0+GM4F1WroCP7HLIQqYjsQIbP5A53FIN/X3rU3jkQ== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by DU0PR10MB9297.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:59a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:55 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:55 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 03/15] download debs without locking Date: Thu, 26 Feb 2026 17:28:28 +0100 Message-ID: <20260226162843.1642329-4-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|DU0PR10MB9297:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a877815-43c7-4d38-cde2-08de755422bd X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: 8tgfc6AlyPR+ZdY68cUg2cB73prqhjGp+OgT6j4BYAfH0oWXzfeKNTFGACqbUMPoWQfEoiIRLZM178CIX9vztj4ggWeAOW58YjSr69r8iiiIN+iuY6BG+uXrMk2UmmfoxeFOVZYnGj0Kh+uLGnS5dVzQ8+oZgMqb9xqMxo0chwoG6ShHGcstJrBCpuhvRyYa+l4tuWlwgKKTNzVZUJYdwODVCFsgTJcgjs2W30UEtOAosSTtQGcXpKOFalk/NwqLiigkgkxInCZvxsUIWV//BpbPQJ2c/RpwUvNL1CM8z0CM6iA4nmj0gHVuT7vrIMCnfWSiEL3ebnisX5ax8PqVyACYnthYP5CXcEMlgMunr+LBdLxg6CPztzsS7y3f3D4n3CQlkzTNGHy7GOX0oDrnRXWq2vLC59TeYv5CcRq9Pvr3dO4Nf+u8LMwKX+zOdaMaDPh+P4GiwldeKQL2ASHCDBKD6pp25tuQ2X6lkIOM8mFdy4ESwkWKTyq4tlRMJVTIOcJmcaLYD+9y+80e2qHsQfXWYIbJh4HizBUU9A8nwv2Jy0qCNj/4th6F+Xy2X0PskKSOw5IMNw0dv626iiwkNwnCJjW8+qr1DfFUZhHZJ857GcnOZzE0lbTzZelkBmmMlzWM5ZmdfL/sq4aavdZ0UbP1wDof+todB8O5nPZXFs+dvpEbbu1JA3nWdYwClwna4Pb/5VMh/agxQU0VYeqxaB06CTHMCgedKA0SIeLXZLA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: X8jAddYROW0YRO56yZZz/4vzmKwMxfcqCNqKws8hNlXlReQSpoNVmrIWPKS6vdKeaVprSw3hin28RceyBjLOktLUtuJjSKI1UAyGHHz6Rxf9gh1/orXvOhDMdUDcJXIkWiHTeUtqYcRe1oZ+pX1ICkY8E5LM9Ocr6OZGdEV+6k6K3IXf7ijOF10rOq7QuZl/fmjjknfAoPOWdR7mFAPheCbVwR21HdNbY5HcjkG490+kMy2L6gF2h286X7qDJW/ljDo/l+T9i+yITAZLpwR2Exbf3DzdPI8ZdFqueyINJ5JBpPhoqe/urTQMFz/UVClaXtzQb17fonAC+8qkkYCsvIsfe2V0U63CHFlOKY7fJ4DT3ZEW6OQxbbuJVdGWgdEmc+YImc3Ujb18ID+HZugCbXpji/YgnNOXzMbRbiuVNCWiO3oWugIoMkLrbJPEciT80uSJga3d/LVMxMQ3akF3BS9t1zoy79KurJWLqcYIpc35PkM3xsnr00sxv4ZmIsCsJ4APr9nBvOZg2Bx1WgIHxURETawdnbQRtbBLI+6IS9jhs2Okj4FLI3uenufchBr9WNaV5vHtDWAaNaFrJkwE9VVHR2mUTT2ZTp+nbzZFT7WJ+5aNkzidnhX1nZdPCkl1PwkgGP7mtS5kEtpW8wrXZTm7EMq30l5gtOd/ry9yrG5c7WZ2jrAZG5SxEEYh61M9aUuoAQ06Y+bZkjXf0++mXlwMiWbbUT7TXKTl5AtTQ5wYvMzJbf6/IlcHXCZiwkRXLnCogXuVQCa5Yw3ErO2Flu5pWc8zQhAOG9w9lFBWwLq1Sf06A8C/a0frnnNo2LrfSKNRu7NyVzXa/14MIV+cw5AkW87Rak0ODpBvodlcumBdZlLoiWKTM+YYoshbDRVhDxoNxgZt4CSEALHbDMFZJZ/eSCR8Zo7BXUon5I+mPM11ymWpcyv6KqcaiuHwbNvDktFtS6KnPr72Fpc78/MJSVYgQmG2RxZSVvTOTiG6DO+5A8KYbgUlmKxyfoKH0iXK1Q8wK5rmporvYn+q8zJGNMdhPujgE79lQDlyjzLBhLq0ZOkyVXVSzYGM6Dm6tNmPD3cn17oWv/2FQ82Oy1jeq4n2FuMxn82Hv7N2zGmMQijkZLhquhSWZ1s+ZjOerNZUcsPzvWm2+AdUATj4LY8CKjf36ZZSuX9By3CCis9tvZZeTgj5d9VONQY4D7kNgpoTu93wyxHj/azXuUKfi6VErrFBS5CVOsMFL5rPV92S9qNYo80lB1aUfBQpEcOB57FfaIbXV8A45u5k1qTz4mSE6Ghk/01CInHkOCEJT9UM+CcPT3q9oW62eUtjnXqAuYkMfrMib9jm+E8JGQwXHuPS/iTUFwgJ/tr1rd+A8bvFBEp9jeDEi31qjKnni/Dl4a4Xa9lz8C1XfRg+fqv3l07EZE1b3QjNcbvADyU6TjAr479GdEFTCjl6wyTclHn9Z8nobNSJUzAPMahZFgNAF0Fn9XnmIQ3DCg73yAEwM0Zwl5irBhhXf5x53oH32/emrb8flu3RlYI5lYNCw5OujOpIa7zl1D3BlNwbUC2MWVBM6zDDxkpV/kxQoW+ws6l4Fpk1xmQ1LF5hlvRrrjuHVYZzzkb9/p6DKJoxYM8NatASbnbFq66VMY0HIYCuFETyTu/Yx7W4ntnyLM/QvKwoKQXtZv4ZGobfJXajihhmO6sS7lzjshVKLukMShAJ3SjrrowMx+UegQvhqT2zl8kDcukZYZKgC/Jq8EiFsqISpMsfpIh/g55gmA0GU+Aw5ekIK0ESlf9dPpl7 X-MS-Exchange-AntiSpam-MessageData-1: KeaAKzVGDTsBX1qUrbz2Z/vNBGWIAFBXly4= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a877815-43c7-4d38-cde2-08de755422bd X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:55.5642 (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: jCSkOOUz9ZEVt/HaBCL23yA/g/v7yrB3BX0m9K9ZzndMRR/EvElOHnRnvg+G9L6gU3diF48faGn6OszTEh6JSQiVgeLBHwlgfADT+mxUGyU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9297 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=Cd36gsXm; 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:c20f::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_H2,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?= As we are only downloading and we are the only one acting on the rootfs, it is safe to not lock the apt cache. By that, we can avoid complex file ownerships in the tree. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/deb-dl-dir.bbclass | 2 +- meta/classes-recipe/dpkg-source.bbclass | 2 +- meta/classes-recipe/image-locales-extension.bbclass | 2 +- meta/classes-recipe/image-tools-extension.bbclass | 3 ++- meta/classes-recipe/rootfs.bbclass | 10 +--------- meta/lib/aptsrc_fetcher.py | 2 +- 6 files changed, 7 insertions(+), 14 deletions(-) diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 76c2435f..6675d48d 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -80,6 +80,7 @@ debsrc_download() { --chdir "/deb-src/${rootfs_distro}/${src}" \ -- \ apt-get -o APT::Architecture=${DISTRO_ARCH} \ + -oDebug::NoLocking=1 \ -o Dir="${rootfs}" -y --download-only \ --only-source source "${src}=${version}" \ || echo "${src} ${version}" >> ${missing} @@ -121,7 +122,6 @@ deb_dl_dir_import() { # let our unprivileged user place downloaded packages in /var/cache/apt/archives/ sudo -Es << ' EOSUDO' mkdir -p "${rootfs}"/var/cache/apt/archives/partial/ - touch "${rootfs}"/var/cache/apt/archives/lock chown -R ${uid}:${gid} "${rootfs}"/var/cache/apt/archives/ EOSUDO diff --git a/meta/classes-recipe/dpkg-source.bbclass b/meta/classes-recipe/dpkg-source.bbclass index 1227da36..d0809477 100644 --- a/meta/classes-recipe/dpkg-source.bbclass +++ b/meta/classes-recipe/dpkg-source.bbclass @@ -77,7 +77,7 @@ do_fetch_common_source() { schroot -r -c ${session_id} -d / -- \ sh -c ' cd /work - apt-get -y --download-only --only-source -o Acquire::Source-Symlinks="false" source ${DEBIAN_SOURCE}' + apt-get -y --download-only --only-source -o Debug::NoLocking=1 -o Acquire::Source-Symlinks="false" source ${DEBIAN_SOURCE}' schroot -e -c ${session_id} remove_mounts diff --git a/meta/classes-recipe/image-locales-extension.bbclass b/meta/classes-recipe/image-locales-extension.bbclass index b6b07dba..9bff36ff 100644 --- a/meta/classes-recipe/image-locales-extension.bbclass +++ b/meta/classes-recipe/image-locales-extension.bbclass @@ -30,7 +30,7 @@ image_install_localepurge_download[weight] = "40" image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}" image_install_localepurge_download() { sudo -E chroot '${ROOTFSDIR}' \ - /usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only localepurge + /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only localepurge } ROOTFS_INSTALL_COMMAND += "image_install_localepurge_install" diff --git a/meta/classes-recipe/image-tools-extension.bbclass b/meta/classes-recipe/image-tools-extension.bbclass index b0f25a69..e88557f6 100644 --- a/meta/classes-recipe/image-tools-extension.bbclass +++ b/meta/classes-recipe/image-tools-extension.bbclass @@ -54,7 +54,8 @@ imager_run() { apt-get update \ -o Dir::Etc::SourceList='sources.list.d/isar-apt.list' \ -o Dir::Etc::SourceParts='-' \ - -o APT::Get::List-Cleanup='0' + -o APT::Get::List-Cleanup='0' \ + -o Debug::NoLocking=1 apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ --allow-unauthenticated --allow-downgrades --download-only install \ ${local_install}" diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index b04bd154..a4e1df4f 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -340,18 +340,10 @@ rootfs_install_pkgs_download[progress] = "custom:rootfs_progress.PkgsDownloadPro rootfs_install_pkgs_download[isar-apt-lock] = "release-after" rootfs_install_pkgs_download[network] = "${TASK_USE_NETWORK}" rootfs_install_pkgs_download() { - mkdir -p "${WORKDIR}/dpkg" - - # Use our own dpkg lock files rather than those in the rootfs since we are not root - # (this is safe as there are no concurrent apt/dpkg operations for that rootfs) - touch "${WORKDIR}/dpkg/lock" "${WORKDIR}/dpkg/lock-frontend" - # download packages using apt in a non-privileged namespace rootfs_cmd --bind "${ROOTFSDIR}/var/cache/apt/archives" /var/cache/apt/archives \ - --bind "${WORKDIR}/dpkg/lock" /var/lib/dpkg/lock \ - --bind "${WORKDIR}/dpkg/lock-frontend" /var/lib/dpkg/lock-frontend \ ${ROOTFSDIR} \ - -- /usr/bin/apt-get ${ROOTFS_APT_ARGS} --download-only ${ROOTFS_PACKAGES} + -- /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only ${ROOTFS_PACKAGES} } ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT ??= "" diff --git a/meta/lib/aptsrc_fetcher.py b/meta/lib/aptsrc_fetcher.py index 041f5445..dfa784a9 100644 --- a/meta/lib/aptsrc_fetcher.py +++ b/meta/lib/aptsrc_fetcher.py @@ -41,7 +41,7 @@ class AptSrc(FetchMethod): set -e mkdir -p /downloads/{ud.localfile} cd /downloads/{ud.localfile} - apt-get -y --download-only --only-source source {ud.src_package} + apt-get -y -oDebug::NoLocking=1 --download-only --only-source source {ud.src_package} ' ''', d) except (OSError, FetchError): From patchwork Thu Feb 26 16:28:29 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4915 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:09 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qv1-f58.google.com (mail-qv1-f58.google.com [209.85.219.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGT6H7009343 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:07 +0100 Received: by mail-qv1-f58.google.com with SMTP id 6a1803df08f44-896ff58f17asf103601826d6.2 for ; Thu, 26 Feb 2026 08:29:07 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123341; cv=pass; d=google.com; s=arc-20240605; b=MWpht4PKxeh7XQq91Fwm5fxveRIOvNB1+Ny6u6Pn/oz9U+VPz5xDDaNvdw1J9iM+bc NKtT4c2gMy7v12cY5hpi21tX4xUB0B98YAoYNKBoQLk6vemCTrq6zRcdDrThFVud0h0i vJHnluNn3to+TfJ8NGm3PG3I8PZDfKLnSw4bsc+Y8SES7krUN8xvmz66KLbZfWZ8w0TR cpt10/St26Sl+Ex+ZcDzPnPIXqTjQYgD5NvLE6iAWByCi/3OaVI3EbP//x0N1APZQsu6 1NBNTPF8lT5MQ28ZZ91XVsJalZdy9abBladGoiql2v1xXH0G7Urr+2bASxagxWy/VqEk D/Wg== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=PEGLySTIH7EaOQbvKMYJM6RqJ1ZQO8nNWJRRbTaA28s=; fh=5XKy4C8PcoeyBaq+4WkuzlHL15RTHebBiHvxCRYkzBo=; b=VWAUf7A5DfVPnaRvZe41EnwjDOCPNAnAJtVeHluE5yU6zloDaZ3Pnk9WNieaSVK/oV rLxoruYSa805lWHpT1Aef4Zcv4PLOHyuZHep0IupNcTzRijP2x6QFWo2cCMvXtFRZgfi U5AB61GETavAfRna+Y0NJJUqwvrW5gVfDHtKsNiReP+dnX6zHws0NNvgayG0mdTXu59/ K/p3er2tcAwa2SswvRo1a11K8T72yiiQwcVAkr6f3RtmIlR83zXCHJKPiP17W+Vzu9VT q3s52U6d/ObVphkU2Tr9HhIeElfRMwwJ0Z3wbJyGyy596B+0eFvlWEbY2BcmDbj5d/wq 9HQg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XS8vGdhf; 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:c20f::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=20230601; t=1772123341; x=1772728141; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=PEGLySTIH7EaOQbvKMYJM6RqJ1ZQO8nNWJRRbTaA28s=; b=IMiIdiwZe6kDpu/3R580UU69gc4eBlgvP49yTnMeHU0CjjpXtootG5sZcTURKpyg36 2im84qtwHP57seCW8Hr559FqU2e2R8ns07L6H2Gjxqq1frPCcQlUZJ1syOG8r/ODl+sY 6d1QebspRkywhTvhFuWmbSwBibuxo0z2Du6mIPZTqMR24/92Ns+bcnVnHPuk26GFQAbj lBKE52g6zEHsmfno6slWxNjY2dOGDo+hiO8/ZRwzK15rVp9PQ/Atksve6UDZDiksIrSk t6qDszLQqZXjCzqO58oLCjX2NFPHMT/bok9iEzE0bPpQZiEAQXxnbAv63rHNOQ2pTZb8 2nFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123341; x=1772728141; 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 :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; bh=PEGLySTIH7EaOQbvKMYJM6RqJ1ZQO8nNWJRRbTaA28s=; b=dAK6AD9lPVbKuO0DacK7pYDX+HMlXVoshIsQ0OyG3EDk3EiGiYyWR5tORHR0U7h/38 2AcV9K7APgWaU/DkD82DuxxHg18cN5af+wl/E+G13bAxWgCLPP22bo7nbaNmuGnBw7kA 7X5W9R+Ey7+e7Y4VB0V+WO/00LQbt6NJs2opswj6gaiwtGMl2w4PPnzUYoxdfzYmx6MI 0LMkL3nEgXsehQGFemz+5wOmNt0jfnFJAsJAGXsT3ah0xgPXwBQBPFaILx4yF2NAS/VG YGX+BAByHWctehqlyuxLsXZMFmimaCnJzV7D+03axSS/bbKNvArOIT0+ulQ4MB5rsO27 8afg== X-Forwarded-Encrypted: i=3; AJvYcCUc7mjx5bruCv3Nfh0rJwRKDZGZnfJUOARmYS79wPhj2bfCykrcmvPAMnvywids0D0sy70F138=@isar-build.org X-Gm-Message-State: AOJu0Yxu8dnvdApvo6iUehKFaouhG0fzOs1relJ5FSO0luEmL2jl9RjU 9zPx2z59BwLj67JYORvtZ29s7+WPCqxxZAAnp/FO6Q5pzsbAb5W7+06u X-Received: by 2002:a05:6214:3015:b0:895:4b79:83a4 with SMTP id 6a1803df08f44-89979e1b3c7mr292437736d6.4.1772123340899; Thu, 26 Feb 2026 08:29:00 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EBMrwj5V3p3gvzatg6zFFbMHXR5ZFJf8NWrC3om7j6aw==" Received: by 2002:a05:6214:da3:b0:899:ad0a:7ac5 with SMTP id 6a1803df08f44-899ba0c6d8dls49337676d6.1.-pod-prod-02-us; Thu, 26 Feb 2026 08:28:59 -0800 (PST) X-Received: by 2002:a05:6214:2a4a:b0:899:bf3d:c54e with SMTP id 6a1803df08f44-899bf3dca2dmr79207066d6.18.1772123339757; Thu, 26 Feb 2026 08:28:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123339; cv=pass; d=google.com; s=arc-20240605; b=PrV9Z7i9iYmQhkoq2SBuIGdpWixGgEquRNpr3CTuryOehLMWHo2ocnhmSeneUO9N/E lrDCKZlKQpbOPA2DcYkVYZQI1CPNcTjZ3jTfnHPeuuu1rb2DT8sVOCwVCpKwc1z1xAvf x6uZH1YKZq56XmO7zJnJvG/TBr/SA6PaoqQpL+IdCoT9LaYaHo+d61xJZqUYj8bXk0lI AcQsnKWIwJ1EVA/WKbV1E1XE7ut9hgEX+J0lOMfdR6viUVo0nGIgi+N+29a5CCJl9jxm neeP81glKAsPnbLgVyCSNZ9K8jSZuKd+g5wyzbYPnj3dnvX0HFUsjxEWeAfqZpr2k/19 rRJA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=99qa2XIzMrozR303i7ROwhOct4S50c4eOducuRFqLZ4=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=UVt9XyhdM/8IyucGNHH+KYTHWp7JfWCMHzm5nFHXL+VnxaS8XQAfp3OYQn8+tti1i8 nXdJ43qWh0jce8ltOO0NuYU5KMTA+no5VPodPKOWuPri0Rhm8H8RpWJeWF56UrWlYvAT qlioO5gzGVRrizm5TJGWcib2K8s9h9Afox2UXzAYvUIuGv/NRZO7UrkAHy9rfCAsZp+i xyKWh9yEKoBJOlbZCDJABics7QKMlk4hXipXNuX1KXb69jBYSxhWrhOxtB1LG3Ax/pSH mv5JNmN3nBcZ4f5dqyJng+8tiBeDBjb8UxbNUbcchHsaA6V3/YczoBuBFn59+R9oJWP1 srVA==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XS8vGdhf; 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:c20f::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by gmr-mx.google.com with ESMTPS id 6a1803df08f44-899c7341843si723156d6.7.2026.02.26.08.28.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:28:59 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sbpSw/dsyobskkrrDvGHeOFiGiw75FOiA9CP0THXw3XVcwyY5BMWqqccw6ySF4QF9RQThtd3QbR6RkL7ObMO6qHTS34+silDjXVqwx1PUfK7VP75XX10/8Q2hnmhRxE+ISkT32kzEnEzn1KOHI4MyYVOn+O8zo9Vl1KKnghtUqBdje4DsmLpOiupuykJssaY5yqQetA6DH98IxONfluqIxNZI3QWOddL3Yk2NgZCyGXxcKDc5YUHbOUh/dKoZUD1n+iGlBLjy6I2ZEtYCP97vsI2SuGHyKysO4ij4V2Sl7ZnksRnBsUdUCZGTDDSqax08gHm3yadC2zrqqLowsY6fA== 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=99qa2XIzMrozR303i7ROwhOct4S50c4eOducuRFqLZ4=; b=njJ/rMoQ8KYje9w//U3LR0NrwQTLhCcPn0cTK5H6lOF4AFQMieW9Drv+wucbSt1MgnedtGK9bSYu9aXpKIrqFfaVFk+TDev0ovKYf42S0yxGY8d69oXAdx4mHSUmqsKEmkoh3JM7gatvMOlrXL5i5hN11lyi4meUHliv+YzIRg+Xju4E08v1kmDsvdbGP7MRP9CrwybUKp1ksXKnZzdGDxloMgkSVNaLEhejvSV5oHLyI8D8lc/2K+P/vfhQVmNwPEDqAaqLifRHzJRlVNdYXXX5Icu6C100oJKvobP+tn1Ot+vUrZeNNC+ZKotNOAFPbbdkpMZSvs1EI0wjZkOO+g== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by DU0PR10MB9297.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:59a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:56 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:56 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 04/15] introduce wrappers for privileged execution Date: Thu, 26 Feb 2026 17:28:29 +0100 Message-ID: <20260226162843.1642329-5-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|DU0PR10MB9297:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e0cd69c-ad56-4ec9-3081-08de75542339 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: /boVrwWX/MjxEoPnlXLugBcyxQpimC2jlIjW1T1S3Oh9NledMVOgtHKMCsV7LPNwo+UgAQaN1qlMLifsJ31tCNjjhggeLh9FLXoICcIvjN3zbhSQg3+f3n+S5GyVAu9cUwskxDzd/hg13so6P6Hh5YGYr8mxbVVeob9oBZJyetemvvRHpEkONRq4dV6eYM1OfA6nfF7o3vkOlgsztWK8weeTjJodmkMfro7ZQT8kEVNnESrYbFcNlKIwjpM1YTUKTx0dXT0+1lCVkiy/fS6qS/dJ1DhM20NAxSkZa0c8BJX9bVzM275XF6Mxim7cwgahNimdoGVaslGSLTdl8asF1RvlOjVIvFaO4f81AvybVCI/ed2hUku8EfheRqIKPp6QB1d6ua8w+HmL5jlWRC7No9P0QDsAJYaKU2MpgdoSNKNmus2DH1499L/XHlFosEc4ZAX4YLefeXe9mVfC2ThaAyzX434vWiagJZt1Y3AdcdHg9Xg76p0XDinPfxgIgr3RL3NpR9l/e0Xx0Osji2YgMyDZSvcEKTOewfVtsxcq/fZDzRvnGfRF2hhS8rwj/m0AUB4TVAp6BgwNm2WbvErliDtW6JqHldfyGPbs5RSYx6s1RnkpxyaMHB5Ri7MbYO7Ck/pf/jxu6woFxMqo87DJ8vFrmiJVHnG7qq5839yzm00uo5coYEo9v9yc63lSiqbu X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: mPLtbePLvXJUd3LqMM8IXki9r1HrgEMVQDozGznjiHgqkRb3vEADvNJaWMYc9LtNvpOVWpyi5Jurxf35CwD39v3FKsmWibg+ga9+acIVBYvB4tX8w7q460gDk0KVKc+7x+eQrRF0k8KVRa+AbOCPsHt6Srh1H1T576Q7+CkHUr9uk+kkdZwN4468Y6vFuOVIU2V6+jniKTJl7PL5D+YM80WEJFLXa69vKCgg5nHSoX2qOvgWBj1ZAI4NDhMd1iaUJE0tL6CzIgW5BzLQ3bgZzOC3VnvGs4LHHUVn+i8M+l2XX4pCbbmpvWrzLGMZltu+iywImNOwJ6ReVGy+9AIRSm+hIjRmjK5bCk0aBSwaKB5+ItYHMare3+infQi1CyX4ioohsom2/porurpO3f0XPnCdFE3ItnPZdIVE59xbDefxOBkrxA04IKVUc2aQgXEyLjyiilCb4gn4rPI7N3ITKY2iqvBiKG+549xvQh+/WkOJixSKxHoXXzQrrm/xgo6/9scP/WjjZLAFxWu+4nXyDoTv1JgIsi7pmi+pT7b/yaPcee0L6M9ZTu2NnZlWSxz92f2ZTPd7QxnUnQbyYoO4wElYJcMzulwQlp4n6XJxhP7Nr0+pcMqS0z4HDXgQN7iTLbUBkaF/aB2j1YYhoBBdEh+dL4gRYnX7IA9Owo1T1neqbl+53oIZVtmfVre3PKWGgvZsDc76fBN8JwEM0JpAcg7epm8YYh09OkDkm47aZUBhykqCZvJJplKlEMtqFiOJez+bOrtUWAr5PAhtZPmWIwWgoG4vWGHD11uJj2298oZ4ab+LrXaXHWtcDU6n44aPt6Us9zF1F6qAH2QB0PtCbPpAASkz0vobYQFlf3bJhpxStZu4ixMKsAoEhZIyPz/Muuyvu21AGU8nKtPPZ1td2TGNJuPOTlKxeDPvo6sLeyiedz0G0I7ibTwsD87G97Hzdn7HchEMrlSJMXbZk4/P1WWSlF34NFswHqYqbGyJav6xbim6FHAZfesnckgcGm51HTD9ULeVSWTwK/HCn6nZndDuNtHLFGTJxqQaZ62KblEh6HwbHfTBKLS28hjjwsxMmp0xtGA0eTEwnLYyWDAUSRGCQAFk6JsQn8z5IyN2/sQVI/D1NLjXACfgvNcutBuXd3mwt+38F4l+Z0NQYmjyeqqraZxFK1o1OIhf62sTa9LJnExIauTPjXK1MxVwePKlrGD3reM8EZJQZpOdZ8fQEDNSU1tBVrwKRgA+rj2AIfWQjNTrQRAkubs9OSgAlipKtOPJbzkY5frV+8GMdGfcrr6+VZdugyS5Zv8SzklHOSOZKFhoeNmTyqRw87Biq8IoG1HVujK1etZYRjGeI3xyj7uEj+oPLg4jXdVIBk9TZIK9BHUY26sXG+HKvETiKjEj6P4ApDFaWWyGCrIERYTxEfgZ2tvbqbvGUmW39CFjjv5lIL7ygUfbPQMFotmscuzfx30o1bBswqeDn4SQ5/YXlqbjuyNyLZ+JWdOwLH267w6mEXRrt1aSpuuwhoSJ5oeHk3eaVQuckCE4zvAiK4rKJMzRQAQWW/9NCT9uNTNAaX9JsYX9JQ4P81cGR2qZ645PTiLR/sVVdMO/w/jx7VL3ICrbgu84ExtvXnjJYwYNjOCEIkqqN5vN9JDInQWmGhVLQHlUoIKcJAxtxclurJB1ncXbSHQZ3e/u2b/jZkdXje0OnH4L19JFRYlBDPpOpyjYAKf2+mW1aC5HCwNHrTRx+71QgrznZkIy0cBEkv64rOFC2+2fmzdKx6zyhrUyKCRBJAp5hPzS X-MS-Exchange-AntiSpam-MessageData-1: 6iMwFCBCygUmelZ7OzV872XIMaXHdq49KFU= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e0cd69c-ad56-4ec9-3081-08de75542339 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:56.6815 (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: kk9/3MsL4hc+jWC4FNcUhxeya5cpoOp3i+rSZmiVPtCDxSLcBkAy4P9u0DSiYTWk2s/1mPKCtnPvOQQBau8qlNYtmz1EGvQj6nNR4CQ66P4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9297 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=XS8vGdhf; 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:c20f::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_H2,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?= As a preparation to enable rootless builds, we introduce wrappers for common cases of privileged command execution. The wrappers are defined in the base class where later on the executor dispatching will be implemented as well. The wrappers are introduced throughout the whole codebase and downstream layers are also encouraged to use them to increase compatibility with upcoming API changes. Signed-off-by: Felix Moessbauer --- RECIPE-API-CHANGELOG.md | 16 ++++ meta/classes-global/base.bbclass | 26 +++++- meta/classes-recipe/deb-dl-dir.bbclass | 4 +- meta/classes-recipe/dpkg-base.bbclass | 2 +- meta/classes-recipe/dpkg.bbclass | 2 +- .../image-account-extension.bbclass | 4 +- .../image-locales-extension.bbclass | 4 +- .../image-postproc-extension.bbclass | 30 +++---- meta/classes-recipe/image.bbclass | 14 +-- .../imagetypes_container.bbclass | 26 +++--- meta/classes-recipe/imagetypes_wic.bbclass | 4 +- meta/classes-recipe/rootfs.bbclass | 89 ++++++++++--------- meta/classes-recipe/sbuild.bbclass | 10 +-- meta/classes-recipe/sdk.bbclass | 14 +-- meta/classes/sbom.bbclass | 2 +- .../isar-mmdebstrap/isar-mmdebstrap.inc | 12 +-- .../unittests/test_image_account_extension.py | 9 +- 17 files changed, 153 insertions(+), 115 deletions(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 0bad8a44..ad03ed68 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -962,3 +962,19 @@ INSTALLER_UNATTENDED_ABORT_ENABLE = "1" # Optional: set countdown timeout in seconds (default 5) INSTALLER_UNATTENDED_ABORT_TIMEOUT = "5" ``` + +### Execution of privileged commands + +When operations require higher privileges than those available to the build user, +the following helper functions shall be used: + +**run_privileged**: Run a command as root while preserving the environment. + +**run_privileged_heredoc**: Execute commands provided via stdin in a root shell. + +**run_in_chroot**: Run a command within a chroot environment. The first argument +specifies the rootfs path. + +Using these helpers instead of direct `sudo` invocations centralizes platform-specific +privileged execution logic in `base.bbclass`. Direct use of `sudo` is discouraged +in downstream layers. diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index f923622b..9a00fb83 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -141,7 +141,7 @@ root_cleandirs() { die "Could not remove $i, because subdir is mounted" done for i in $ROOT_CLEANDIRS_DIRS; do - sudo rm -rf --one-file-system "$TMPDIR$i" + run_privileged rm -rf --one-file-system "$TMPDIR$i" mkdir -p "$TMPDIR$i" done } @@ -375,3 +375,27 @@ def deb_list_beautify(d, varname): if stripped: var_list.append(stripped) return ', '.join(var_list) + +# Helpers for privileged execution. Only the non-underscore functions +# shall be used outside of this class. + +def run_privileged_cmd(d): + cmd = 'sudo -E' + bb.debug(1, "privileged cmd: %s" % cmd) + return cmd + +RUN_PRIVILEGED_CMD := "${@run_privileged_cmd(d)}" + +run_privileged() { + ${RUN_PRIVILEGED_CMD} "$@" +} + +run_privileged_heredoc() { + ${RUN_PRIVILEGED_CMD} /bin/bash -s "$@" +} + +run_in_chroot() { + rootfs="$1" + shift + ${RUN_PRIVILEGED_CMD} chroot "$rootfs" "$@" +} diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 6675d48d..05a16585 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -110,7 +110,7 @@ dbg_pkgs_download() { | grep "${DISTRO_ARCH}" \ | awk '!/Binary:/ {print $1}' \ | sort -u - done | xargs -r sudo -E chroot ${rootfs} sh -c '/usr/bin/apt-get -y --download-only install "$@"' -- + done | xargs -r run_in_chroot ${rootfs} sh -c '/usr/bin/apt-get -y --download-only install "$@"' -- } deb_dl_dir_import() { @@ -120,7 +120,7 @@ deb_dl_dir_import() { export gid=$(id -g) # let our unprivileged user place downloaded packages in /var/cache/apt/archives/ - sudo -Es << ' EOSUDO' + run_privileged_heredoc << ' EOSUDO' mkdir -p "${rootfs}"/var/cache/apt/archives/partial/ chown -R ${uid}:${gid} "${rootfs}"/var/cache/apt/archives/ EOSUDO diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index d8287e8d..03317ef2 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -161,7 +161,7 @@ def isar_export_build_settings(d): dpkg_schroot_create_configs() { schroot_create_configs - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' sbuild_fstab="${SBUILD_CONF_DIR}/fstab" fstab_isarapt="${WORKDIR}/isar-apt/${DISTRO}-${DISTRO_ARCH}/apt/${DISTRO} /isar-apt none rw,bind 0 0" grep -qxF "${fstab_isarapt}" ${sbuild_fstab} || echo "${fstab_isarapt}" >> ${sbuild_fstab} diff --git a/meta/classes-recipe/dpkg.bbclass b/meta/classes-recipe/dpkg.bbclass index 8bb5adeb..8d7ff092 100644 --- a/meta/classes-recipe/dpkg.bbclass +++ b/meta/classes-recipe/dpkg.bbclass @@ -129,5 +129,5 @@ dpkg_runbuild() { deb_dl_dir_export "${WORKDIR}/rootfs" "${distro}" # Cleanup apt artifacts - sudo rm -rf ${WORKDIR}/rootfs + run_privileged rm -rf ${WORKDIR}/rootfs } diff --git a/meta/classes-recipe/image-account-extension.bbclass b/meta/classes-recipe/image-account-extension.bbclass index a8a3c7ff..bd721130 100644 --- a/meta/classes-recipe/image-account-extension.bbclass +++ b/meta/classes-recipe/image-account-extension.bbclass @@ -34,7 +34,7 @@ def image_create_groups(d: "DataSmart") -> None: """ entries = (d.getVar("GROUPS") or "").split() rootfsdir = d.getVar("ROOTFSDIR") - chroot = ["sudo", "-E", "chroot", rootfsdir] + chroot = run_privileged_cmd(d).split() + ["chroot", rootfsdir] for entry in entries: args = [] @@ -72,7 +72,7 @@ def image_create_users(d: "DataSmart") -> None: entries = (d.getVar("USERS") or "").split() rootfsdir = d.getVar("ROOTFSDIR") - chroot = ["sudo", "-E", "chroot", rootfsdir] + chroot = run_privileged_cmd(d).split() + ["chroot", rootfsdir] for entry in entries: args = [] diff --git a/meta/classes-recipe/image-locales-extension.bbclass b/meta/classes-recipe/image-locales-extension.bbclass index 9bff36ff..c1e8c175 100644 --- a/meta/classes-recipe/image-locales-extension.bbclass +++ b/meta/classes-recipe/image-locales-extension.bbclass @@ -29,7 +29,7 @@ ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT += "image_install_localepurge_download" image_install_localepurge_download[weight] = "40" image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}" image_install_localepurge_download() { - sudo -E chroot '${ROOTFSDIR}' \ + run_in_chroot '${ROOTFSDIR}' \ /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only localepurge } @@ -60,7 +60,7 @@ ${@get_nopurge(d)} __EOF__ # Install configuration into image: - sudo -E -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e localepurge_state='i' if chroot '${ROOTFSDIR}' dpkg -s localepurge 2>/dev/null >&2 diff --git a/meta/classes-recipe/image-postproc-extension.bbclass b/meta/classes-recipe/image-postproc-extension.bbclass index 1aba2ec5..86db0f7b 100644 --- a/meta/classes-recipe/image-postproc-extension.bbclass +++ b/meta/classes-recipe/image-postproc-extension.bbclass @@ -17,19 +17,19 @@ update_etc_os_release() { done if [ -n "${OS_RELEASE_BUILD_ID}" ]; then - sudo sed -i '/^BUILD_ID=.*/d' '${IMAGE_ROOTFS}/etc/os-release' + run_privileged sed -i '/^BUILD_ID=.*/d' '${IMAGE_ROOTFS}/etc/os-release' echo "BUILD_ID=\"${OS_RELEASE_BUILD_ID}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' + run_privileged tee -a '${IMAGE_ROOTFS}/etc/os-release' fi if [ -n "${OS_RELEASE_VARIANT}" ]; then - sudo sed -i '/^VARIANT=.*/d' '${IMAGE_ROOTFS}/etc/os-release' + run_privileged sed -i '/^VARIANT=.*/d' '${IMAGE_ROOTFS}/etc/os-release' echo "VARIANT=\"${OS_RELEASE_VARIANT}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' + run_privileged tee -a '${IMAGE_ROOTFS}/etc/os-release' fi if [ -n "${OS_RELEASE_VARIANT_VERSION}" ]; then - sudo sed -i '/^VARIANT_VERSION=.*/d' '${IMAGE_ROOTFS}/etc/os-release' + run_privileged sed -i '/^VARIANT_VERSION=.*/d' '${IMAGE_ROOTFS}/etc/os-release' echo "VARIANT_VERSION=\"${OS_RELEASE_VARIANT_VERSION}\"" | \ - sudo tee -a '${IMAGE_ROOTFS}/etc/os-release' + run_privileged tee -a '${IMAGE_ROOTFS}/etc/os-release' fi } @@ -37,11 +37,11 @@ ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_configure" image_postprocess_configure() { # Configure root filesystem if [ -n "${DISTRO_CONFIG_SCRIPT}" ]; then - sudo install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" + run_privileged install -m 755 "${WORKDIR}/${DISTRO_CONFIG_SCRIPT}" "${IMAGE_ROOTFS}" TARGET_DISTRO_CONFIG_SCRIPT="$(basename ${DISTRO_CONFIG_SCRIPT})" - sudo chroot ${IMAGE_ROOTFS} "/$TARGET_DISTRO_CONFIG_SCRIPT" \ + run_in_chroot ${IMAGE_ROOTFS} "/$TARGET_DISTRO_CONFIG_SCRIPT" \ "${MACHINE_SERIAL}" "${BAUDRATE_TTY}" - sudo rm "${IMAGE_ROOTFS}/$TARGET_DISTRO_CONFIG_SCRIPT" + run_privileged rm "${IMAGE_ROOTFS}/$TARGET_DISTRO_CONFIG_SCRIPT" fi } @@ -58,13 +58,13 @@ image_postprocess_machine_id() { # systemd(1) takes care of recreating the machine-id on first boot # for systemd < v247, set to empty string, else set to uninitialized # (required if initramfs with ro root is used) - SYSTEMD_VERSION=$( sudo chroot ${IMAGE_ROOTFS} dpkg-query --showformat='${source:Upstream-Version}' --show systemd || echo "0" ) + SYSTEMD_VERSION=$( run_in_chroot ${IMAGE_ROOTFS} dpkg-query --showformat='${source:Upstream-Version}' --show systemd || echo "0" ) MACHINE_ID="uninitialized" if dpkg --compare-versions "$SYSTEMD_VERSION" "lt" "247"; then MACHINE_ID="" fi - echo "$MACHINE_ID" | sudo chroot ${IMAGE_ROOTFS} tee /etc/machine-id - sudo rm -f '${IMAGE_ROOTFS}/var/lib/dbus/machine-id' + echo "$MACHINE_ID" | run_in_chroot ${IMAGE_ROOTFS} tee /etc/machine-id + run_privileged rm -f '${IMAGE_ROOTFS}/var/lib/dbus/machine-id' } ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_sshd_key_regen" @@ -82,13 +82,13 @@ image_postprocess_sshd_key_regen() { ROOTFS_POSTPROCESS_COMMAND =+ "image_postprocess_disable_systemd_firstboot" image_postprocess_disable_systemd_firstboot() { - SYSTEMD_VERSION=$(sudo chroot '${ROOTFSDIR}' dpkg-query \ + SYSTEMD_VERSION=$(run_in_chroot '${ROOTFSDIR}' dpkg-query \ --showformat='${source:Upstream-Version}' \ --show systemd || echo "0" ) if dpkg --compare-versions "$SYSTEMD_VERSION" "ge" "251"; then - sudo chroot '${ROOTFSDIR}' systemctl mask systemd-firstboot - if ! cmd_output=$(sudo chroot '${ROOTFSDIR}' systemd-firstboot \ + run_in_chroot '${ROOTFSDIR}' systemctl mask systemd-firstboot + if ! cmd_output=$(run_in_chroot '${ROOTFSDIR}' systemd-firstboot \ --prompt --welcome=false /dev/null); then bbwarn "Your image is not configured completely according to systemd-firstboot." bbwarn "It prompted: \"${cmd_output}\"" diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass index afe6906e..4a250964 100644 --- a/meta/classes-recipe/image.bbclass +++ b/meta/classes-recipe/image.bbclass @@ -363,7 +363,7 @@ get_build_id() { ROOTFS_CONFIGURE_COMMAND += "image_configure_fstab" image_configure_fstab[weight] = "2" image_configure_fstab() { - sudo tee '${IMAGE_ROOTFS}/etc/fstab' << EOF + run_privileged tee '${IMAGE_ROOTFS}/etc/fstab' << EOF # Begin /etc/fstab proc /proc proc nosuid,noexec,nodev 0 0 sysfs /sys sysfs nosuid,noexec,nodev 0 0 @@ -391,7 +391,7 @@ do_copy_boot_files() { kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz])" fi if [ -f "$kernel" ]; then - sudo cat "$kernel" > "${DEPLOYDIR}/${KERNEL_IMAGE}" + run_privileged cat "$kernel" > "${DEPLOYDIR}/${KERNEL_IMAGE}" fi for file in ${DTB_FILES}; do @@ -447,7 +447,7 @@ def apt_list_files(d): IMAGE_LISTS = "${@ ' '.join(apt_list_files(d)) }" do_rootfs_finalize() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e if [ -e "${ROOTFSDIR}/chroot-setup.sh" ]; then @@ -473,14 +473,14 @@ EOSUDO # Sometimes qemu-user-static generates coredumps in chroot, move them # to work temporary directory and inform user about it. - for f in $(sudo find ${ROOTFSDIR} -type f -name *.core -exec file --mime-type {} \; | grep 'application/x-coredump' | cut -d: -f1); do - sudo mv "${f}" "${WORKDIR}/temp/" + for f in $(run_privileged find ${ROOTFSDIR} -type f -name *.core -exec file --mime-type {} \; | grep 'application/x-coredump' | cut -d: -f1); do + run_privileged mv "${f}" "${WORKDIR}/temp/" bbwarn "found core dump in rootfs, check it in ${WORKDIR}/temp/${f##*/}" done # Set same time-stamps to the newly generated file/folders in the # rootfs image for the purpose of reproducible builds. - sudo find ${ROOTFSDIR} -newermt "$(date -d@${SOURCE_DATE_EPOCH} '+%Y-%m-%d %H:%M:%S')" \ + run_privileged find ${ROOTFSDIR} -newermt "$(date -d@${SOURCE_DATE_EPOCH} '+%Y-%m-%d %H:%M:%S')" \ -exec touch '{}' -h -d@${SOURCE_DATE_EPOCH} ';' } do_rootfs_finalize[network] = "${TASK_USE_SUDO}" @@ -517,7 +517,7 @@ do_rootfs_quality_check() { ;; esac done - found=$( sudo find ${ROOTFSDIR} -type f -newer $rootfs_install_stamp $args ) + found=$( run_privileged find ${ROOTFSDIR} -type f -newer $rootfs_install_stamp $args ) if [ -n "$found" ]; then bbwarn "Files changed after package install. The following files seem" bbwarn "to have changed where they probably should not have." diff --git a/meta/classes-recipe/imagetypes_container.bbclass b/meta/classes-recipe/imagetypes_container.bbclass index ea15decf..b6cc4a14 100644 --- a/meta/classes-recipe/imagetypes_container.bbclass +++ b/meta/classes-recipe/imagetypes_container.bbclass @@ -37,38 +37,38 @@ do_containerize() { # prepare OCI container image skeleton bbdebug 1 "prepare OCI container image skeleton" - sudo rm -rf "${oci_img_dir}" "${oci_img_dir}_unpacked" - sudo umoci init --layout "${oci_img_dir}" - sudo umoci new --image "${oci_img_dir}:${empty_tag}" + run_privileged rm -rf "${oci_img_dir}" "${oci_img_dir}_unpacked" + run_privileged umoci init --layout "${oci_img_dir}" + run_privileged umoci new --image "${oci_img_dir}:${empty_tag}" if [ -n "${cmd}" ]; then - sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ + run_privileged umoci config --image "${oci_img_dir}:${empty_tag}" \ --config.cmd="${cmd}" fi if [ -n "${entrypoint}" ]; then - sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ + run_privileged umoci config --image "${oci_img_dir}:${empty_tag}" \ --config.entrypoint="${entrypoint}" fi if [ -n "${path}" ]; then - sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ + run_privileged umoci config --image "${oci_img_dir}:${empty_tag}" \ --config.env="PATH=${path}" fi - sudo umoci unpack --image "${oci_img_dir}:${empty_tag}" \ + run_privileged umoci unpack --image "${oci_img_dir}:${empty_tag}" \ "${oci_img_dir}_unpacked" # add root filesystem as the flesh of the skeleton - sudo cp --reflink=auto -a "${rootfs}"/* "${oci_img_dir}_unpacked/rootfs/" + run_privileged cp --reflink=auto -a "${rootfs}"/* "${oci_img_dir}_unpacked/rootfs/" # clean-up temporary files - sudo find "${oci_img_dir}_unpacked/rootfs/tmp" -mindepth 1 -delete + run_privileged find "${oci_img_dir}_unpacked/rootfs/tmp" -mindepth 1 -delete # pack container image bbdebug 1 "pack container image" - sudo umoci repack --image "${oci_img_dir}:${tag}" \ + run_privileged umoci repack --image "${oci_img_dir}:${tag}" \ "${oci_img_dir}_unpacked" - sudo umoci remove --image "${oci_img_dir}:${empty_tag}" - sudo rm -rf "${oci_img_dir}_unpacked" + run_privileged umoci remove --image "${oci_img_dir}:${empty_tag}" + run_privileged rm -rf "${oci_img_dir}_unpacked" # no root needed anymore - sudo chown --recursive $(id -u):$(id -g) "${oci_img_dir}" + run_privileged chown --recursive $(id -u):$(id -g) "${oci_img_dir}" } convert_container() { diff --git a/meta/classes-recipe/imagetypes_wic.bbclass b/meta/classes-recipe/imagetypes_wic.bbclass index 6b82add3..63974a3e 100644 --- a/meta/classes-recipe/imagetypes_wic.bbclass +++ b/meta/classes-recipe/imagetypes_wic.bbclass @@ -193,8 +193,8 @@ generate_wic_image() { fi EOIMAGER - sudo chown -R $(stat -c "%U" ${LAYERDIR_core}) ${LAYERDIR_core} ${LAYERDIR_isar} ${SCRIPTSDIR} || true - sudo chown -R $(id -u):$(id -g) "${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.wic"* + run_privileged chown -R $(stat -c "%U" ${LAYERDIR_core}) ${LAYERDIR_core} ${LAYERDIR_isar} ${SCRIPTSDIR} || true + run_privileged chown -R $(id -u):$(id -g) "${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.wic"* rm -rf ${IMAGE_ROOTFS}/../pseudo cat ${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.manifest \ diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index a4e1df4f..883c3335 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -136,7 +136,7 @@ rootfs_cmd() { rootfs_do_mounts[weight] = "3" rootfs_do_mounts() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e mountpoint -q '${ROOTFSDIR}/dev' || \ ( mount -o bind,private /dev '${ROOTFSDIR}/dev' && @@ -182,7 +182,7 @@ EOSUDO } rootfs_do_umounts() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e if mountpoint -q '${ROOTFSDIR}/isar-apt'; then umount '${ROOTFSDIR}/isar-apt' @@ -225,7 +225,7 @@ rootfs_do_qemu() { if [ '${@repr(d.getVar('ROOTFS_ARCH') == d.getVar('HOST_ARCH'))}' = 'False' ] then test -e '${ROOTFSDIR}/usr/bin/qemu-${QEMU_ARCH}-static' || \ - sudo cp '/usr/bin/qemu-${QEMU_ARCH}-static' '${ROOTFSDIR}/usr/bin/qemu-${QEMU_ARCH}-static' + run_privileged cp '/usr/bin/qemu-${QEMU_ARCH}-static' '${ROOTFSDIR}/usr/bin/qemu-${QEMU_ARCH}-static' fi } @@ -240,16 +240,16 @@ ROOTFS_EXTRA_IMPORTED := "${@rootfs_extra_import(d)}" rootfs_prepare[weight] = "25" rootfs_prepare(){ - sudo tar -xf "${BOOTSTRAP_SRC}" -C "${ROOTFSDIR}" --exclude="./dev/console" + run_privileged tar -xf "${BOOTSTRAP_SRC}" -C "${ROOTFSDIR}" --exclude="./dev/console" # setup chroot - sudo "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" + run_privileged "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" } ROOTFS_CONFIGURE_COMMAND += "rootfs_configure_isar_apt" rootfs_configure_isar_apt[weight] = "2" rootfs_configure_isar_apt() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e mkdir -p '${ROOTFSDIR}/etc/apt/sources.list.d' @@ -270,7 +270,7 @@ EOSUDO ROOTFS_CONFIGURE_COMMAND += "rootfs_configure_apt" rootfs_configure_apt[weight] = "2" rootfs_configure_apt() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e mkdir -p '${ROOTFSDIR}/etc/apt/apt.conf.d' @@ -293,7 +293,7 @@ ROOTFS_CONFIGURE_COMMAND += "rootfs_disable_initrd_generation" rootfs_disable_initrd_generation[weight] = "1" rootfs_disable_initrd_generation() { # fully disable initrd generation - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e mkdir -p "${ROOTFSDIR}${ROOTFS_STUBS_DIR}" @@ -310,7 +310,7 @@ rootfs_install_pkgs_update[weight] = "5" rootfs_install_pkgs_update[isar-apt-lock] = "acquire-before" rootfs_install_pkgs_update[network] = "${TASK_USE_NETWORK_AND_SUDO}" rootfs_install_pkgs_update() { - sudo -E chroot '${ROOTFSDIR}' /usr/bin/apt-get update \ + run_in_chroot '${ROOTFSDIR}' /usr/bin/apt-get update \ -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \ -o Dir::Etc::SourceParts="-" \ -o APT::Get::List-Cleanup="0" @@ -322,9 +322,9 @@ rootfs_install_resolvconf() { if [ "${@repr(bb.utils.to_boolean(d.getVar('BB_NO_NETWORK')))}" != "True" ] then if [ -L "${ROOTFSDIR}/etc/resolv.conf" ]; then - sudo unlink "${ROOTFSDIR}/etc/resolv.conf" + run_privileged unlink "${ROOTFSDIR}/etc/resolv.conf" fi - sudo cp -rL /etc/resolv.conf '${ROOTFSDIR}/etc' + run_privileged cp -rL /etc/resolv.conf '${ROOTFSDIR}/etc' fi } @@ -358,7 +358,7 @@ rootfs_export_package_cache() { ROOTFS_INSTALL_COMMAND += "${@ 'rootfs_install_clean_files' if (d.getVar('ROOTFS_CLEAN_FILES') or '').strip() else ''}" rootfs_install_clean_files[weight] = "2" rootfs_install_clean_files() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' for clean_file in ${ROOTFS_CLEAN_FILES}; do rm -f "${ROOTFSDIR}/$clean_file" done @@ -370,14 +370,14 @@ rootfs_install_pkgs_install[weight] = "8000" rootfs_install_pkgs_install[progress] = "custom:rootfs_progress.PkgsInstallProgressHandler" rootfs_install_pkgs_install[network] = "${TASK_USE_SUDO}" rootfs_install_pkgs_install() { - sudo -E chroot "${ROOTFSDIR}" \ + run_in_chroot "${ROOTFSDIR}" \ /usr/bin/apt-get ${ROOTFS_APT_ARGS} ${ROOTFS_PACKAGES} } ROOTFS_INSTALL_COMMAND += "rootfs_restore_initrd_tooling" rootfs_restore_initrd_tooling[weight] = "1" rootfs_restore_initrd_tooling() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e rm -f "${ROOTFSDIR}/etc/apt/apt.conf.d/50isar-stubs" rm -rf "${ROOTFSDIR}${ROOTFS_STUBS_DIR}" @@ -386,8 +386,8 @@ EOSUDO ROOTFS_INSTALL_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'generate-initrd', '', 'rootfs_clear_initrd_symlinks', d)}" rootfs_clear_initrd_symlinks() { - sudo rm -f ${ROOTFSDIR}/initrd.img - sudo rm -f ${ROOTFSDIR}/initrd.img.old + run_privileged rm -f ${ROOTFSDIR}/initrd.img + run_privileged rm -f ${ROOTFSDIR}/initrd.img.old } do_rootfs_install[root_cleandirs] = "${ROOTFSDIR}" @@ -437,21 +437,21 @@ do_cache_deb_src[network] = "${TASK_USE_SUDO}" do_cache_deb_src() { if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then - sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar + run_privileged mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar fi rootfs_install_resolvconf # Note: ISAR updates the apt state information(apt-get update) only once during bootstrap and # relies on that through out the build. Copy that state information instead of apt-get update # which generates a new state from upstream. - sudo tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" + run_privileged tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} debsrc_download ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} - sudo rm -f "${ROOTFSDIR}"/etc/resolv.conf + run_privileged rm -f "${ROOTFSDIR}"/etc/resolv.conf if [ -e "${ROOTFSDIR}"/etc/resolv.conf.isar ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf.isar ]; then - sudo mv "${ROOTFSDIR}"/etc/resolv.conf.isar "${ROOTFSDIR}"/etc/resolv.conf + run_privileged mv "${ROOTFSDIR}"/etc/resolv.conf.isar "${ROOTFSDIR}"/etc/resolv.conf fi } @@ -459,21 +459,21 @@ ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache cache_dbg_pkgs() { if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then - sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar + run_privileged mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar fi rootfs_install_resolvconf # Note: ISAR updates the apt state information(apt-get update) only once during bootstrap and # relies on that through out the build. Copy that state information instead of apt-get update # which generates a new state from upstream. - sudo tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" + run_privileged tar -xf "${BOOTSTRAP_SRC}" ./var/lib/apt/lists --one-top-level="${ROOTFSDIR}" deb_dl_dir_import ${ROOTFSDIR} ${ROOTFS_BASE_DISTRO}-${BASE_DISTRO_CODENAME} dbg_pkgs_download ${ROOTFSDIR} - sudo rm -f "${ROOTFSDIR}"/etc/resolv.conf + run_privileged rm -f "${ROOTFSDIR}"/etc/resolv.conf if [ -e "${ROOTFSDIR}"/etc/resolv.conf.isar ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf.isar ]; then - sudo mv "${ROOTFSDIR}"/etc/resolv.conf.isar "${ROOTFSDIR}"/etc/resolv.conf + run_privileged mv "${ROOTFSDIR}"/etc/resolv.conf.isar "${ROOTFSDIR}"/etc/resolv.conf fi } @@ -482,17 +482,17 @@ ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'generate ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'clean-package-cache', 'rootfs_postprocess_clean_package_cache', '', d)}" rootfs_postprocess_clean_package_cache() { - sudo -E chroot '${ROOTFSDIR}' \ + run_in_chroot '${ROOTFSDIR}' \ /usr/bin/apt-get clean - sudo rm -rf "${ROOTFSDIR}/var/lib/apt/lists/"* + run_privileged rm -rf "${ROOTFSDIR}/var/lib/apt/lists/"* # remove apt-cache folder itself (required in case rootfs is provided by sstate cache) - sudo rm -rf "${ROOTFSDIR}/var/cache/apt/archives" + run_privileged rm -rf "${ROOTFSDIR}/var/cache/apt/archives" } ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'clean-log-files', 'rootfs_postprocess_clean_log_files', '', d)}" rootfs_postprocess_clean_log_files() { # Delete log files that are not owned by packages - sudo -E chroot '${ROOTFSDIR}' \ + run_in_chroot '${ROOTFSDIR}' \ /usr/bin/find /var/log/ -type f \ -exec sh -c '! dpkg -S {} > /dev/null 2>&1' ';' \ -exec rm -f {} ';' @@ -501,32 +501,32 @@ rootfs_postprocess_clean_log_files() { ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'clean-debconf-cache', 'rootfs_postprocess_clean_debconf_cache', '', d)}" rootfs_postprocess_clean_debconf_cache() { # Delete debconf cache files - sudo rm -rf "${ROOTFSDIR}/var/cache/debconf/"* + run_privileged rm -rf "${ROOTFSDIR}/var/cache/debconf/"* } ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'clean-pycache', 'rootfs_postprocess_clean_pycache', '', d)}" rootfs_postprocess_clean_pycache() { - sudo find ${ROOTFSDIR}/usr -type f -name '*.pyc' -delete -print - sudo find ${ROOTFSDIR}/usr -type d -name '__pycache__' -delete -print + run_privileged find ${ROOTFSDIR}/usr -type f -name '*.pyc' -delete -print + run_privileged find ${ROOTFSDIR}/usr -type d -name '__pycache__' -delete -print } ROOTFS_POSTPROCESS_COMMAND += "rootfs_postprocess_clean_ldconfig_cache" rootfs_postprocess_clean_ldconfig_cache() { # the ldconfig aux-cache is not portable and breaks reproducability # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845034#49 - sudo rm -f ${ROOTFSDIR}/var/cache/ldconfig/aux-cache + run_privileged rm -f ${ROOTFSDIR}/var/cache/ldconfig/aux-cache } ROOTFS_POSTPROCESS_COMMAND += "rootfs_postprocess_clean_tmp" rootfs_postprocess_clean_tmp() { # /tmp is by definition non persistent across boots - sudo rm -rf "${ROOTFSDIR}/tmp/"* + run_privileged rm -rf "${ROOTFSDIR}/tmp/"* } ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'generate-manifest', 'rootfs_generate_manifest', '', d)}" rootfs_generate_manifest () { mkdir -p ${ROOTFS_MANIFEST_DEPLOY_DIR} - sudo -E chroot --userspec=$(id -u):$(id -g) '${ROOTFSDIR}' \ + run_in_chroot '${ROOTFSDIR}' \ dpkg-query -W -f \ '${source:Package}|${source:Version}|${Package}:${Architecture}|${Version}\n' > \ '${ROOTFS_MANIFEST_DEPLOY_DIR}'/'${ROOTFS_PACKAGE_SUFFIX}'.manifest @@ -542,7 +542,7 @@ rootfs_export_dpkg_status() { ROOTFS_POSTPROCESS_COMMAND += "rootfs_cleanup_isar_apt" rootfs_cleanup_isar_apt[weight] = "2" rootfs_cleanup_isar_apt() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/isar-apt.list" rm -f "${ROOTFSDIR}/etc/apt/preferences.d/isar-apt" @@ -553,7 +553,7 @@ EOSUDO ROOTFS_POSTPROCESS_COMMAND += "${@'rootfs_cleanup_base_apt' if bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')) else ''}" rootfs_cleanup_base_apt[weight] = "2" rootfs_cleanup_base_apt() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e rm -f "${ROOTFSDIR}/etc/apt/sources.list.d/"*base-apt.list EOSUDO @@ -561,12 +561,12 @@ EOSUDO ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'populate-systemd-preset', 'image_postprocess_populate_systemd_preset', '', d)}" image_postprocess_populate_systemd_preset() { - SYSTEMD_INSTALLED=$(sudo chroot '${ROOTFSDIR}' dpkg-query \ + SYSTEMD_INSTALLED=$(run_in_chroot '${ROOTFSDIR}' dpkg-query \ --showformat='${db:Status-Status}' \ --show systemd || echo "" ) if (test "$SYSTEMD_INSTALLED" = "installed"); then - sudo chroot '${ROOTFSDIR}' systemctl preset-all --preset-mode="enable-only" + run_in_chroot '${ROOTFSDIR}' systemctl preset-all --preset-mode="enable-only" fi } @@ -626,7 +626,7 @@ rootfs_generate_initramfs() { mods_total="$(find ${ROOTFSDIR}/usr/lib/modules/$kernel_version -type f -name '*.ko*' | wc -l)" echo "Total number of modules: $mods_total" echo "Generating initrd for kernel version: $kernel_version" - sudo -E chroot "${ROOTFSDIR}" sh -ec ' \ + run_in_chroot "${ROOTFSDIR}" sh -ec ' \ ${ROOTFS_INITRAMFS_GENERATOR_CMDLINE}; \ find /boot -name "initrd.img-$kernel_version*" -exec install --mode 0644 {} /isar-work/initrd.img \; \ ' @@ -664,11 +664,12 @@ rootfs_install_sstate_prepare() { # so we use some mount magic to prevent that mkdir -p ${WORKDIR}/mnt/rootfs trap 'rmdir ${WORKDIR}/mnt/rootfs ${WORKDIR}/mnt' EXIT - sudo mount -o bind,private '${WORKDIR}/rootfs' '${WORKDIR}/mnt/rootfs' -o ro + + run_privileged mount -o bind,private '${WORKDIR}/rootfs' '${WORKDIR}/mnt/rootfs' -o ro lopts="--one-file-system --exclude=var/cache/apt/archives" - sudo tar -C ${WORKDIR}/mnt -cpSf rootfs.tar $lopts ${SSTATE_TAR_ATTR_FLAGS} rootfs - sudo umount ${WORKDIR}/mnt/rootfs - sudo chown $(id -u):$(id -g) rootfs.tar + run_privileged tar -C ${WORKDIR}/mnt -cpSf rootfs.tar $lopts ${SSTATE_TAR_ATTR_FLAGS} rootfs + run_privileged umount ${WORKDIR}/mnt/rootfs + run_privileged chown $(id -u):$(id -g) rootfs.tar } do_rootfs_install_sstate_prepare[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" @@ -677,7 +678,7 @@ rootfs_install_sstate_finalize() { # - after building the rootfs, the tar won't be there, but we also don't need to unpack # - after restoring from cache, there will be a tar which we unpack and then delete if [ -f rootfs.tar ]; then - sudo tar -C ${WORKDIR} -xpf rootfs.tar ${SSTATE_TAR_ATTR_FLAGS} + run_privileged tar -C ${WORKDIR} -xpf rootfs.tar ${SSTATE_TAR_ATTR_FLAGS} rm rootfs.tar fi } diff --git a/meta/classes-recipe/sbuild.bbclass b/meta/classes-recipe/sbuild.bbclass index 1ab72aad..ea0c5841 100644 --- a/meta/classes-recipe/sbuild.bbclass +++ b/meta/classes-recipe/sbuild.bbclass @@ -20,7 +20,7 @@ SCHROOT_LOCKFILE = "/tmp/schroot.lock" schroot_create_configs() { mkdir -p "${TMPDIR}/schroot-overlay" echo "Creating ${SCHROOT_CONF_FILE}" - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e cat << EOF > "${SCHROOT_CONF_FILE}" @@ -59,7 +59,7 @@ EOSUDO schroot_delete_configs() { (flock -x 9 set -e - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e if [ -d "${SBUILD_CONF_DIR}" ]; then echo "Removing ${SBUILD_CONF_DIR}" @@ -101,7 +101,7 @@ sbuild_export() { } insert_mounts() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e for mp in ${SCHROOT_MOUNTS}; do FSTAB_LINE="${mp%%:*} ${mp#*:} none rw,bind,private 0 0" @@ -112,7 +112,7 @@ EOSUDO } remove_mounts() { - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e for mp in ${SCHROOT_MOUNTS}; do FSTAB_LINE="${mp%%:*} ${mp#*:} none rw,bind,private 0 0" @@ -123,7 +123,7 @@ EOSUDO schroot_configure_ccache() { mkdir -p "${CCACHE_DIR}" - sudo -s <<'EOSUDO' + run_privileged_heredoc <<'EOSUDO' set -e sbuild_fstab="${SBUILD_CONF_DIR}/fstab" diff --git a/meta/classes-recipe/sdk.bbclass b/meta/classes-recipe/sdk.bbclass index 17b56bcf..074f5ef8 100644 --- a/meta/classes-recipe/sdk.bbclass +++ b/meta/classes-recipe/sdk.bbclass @@ -69,12 +69,12 @@ ROOTFS_POSTPROCESS_COMMAND:remove = "${@'rootfs_cleanup_isar_apt' if bb.utils.to ROOTFS_CONFIGURE_COMMAND:append:class-sdk = " ${@'rootfs_configure_isar_apt_dir' if bb.utils.to_boolean(d.getVar('SDK_INCLUDE_ISAR_APT')) else ''}" rootfs_configure_isar_apt_dir() { # Copy isar-apt instead of mounting: - sudo cp -Trpfx --reflink=auto ${REPO_ISAR_DIR}/${DISTRO} ${ROOTFSDIR}/isar-apt + run_privileged cp -Trpfx --reflink=auto ${REPO_ISAR_DIR}/${DISTRO} ${ROOTFSDIR}/isar-apt } ROOTFS_POSTPROCESS_COMMAND:prepend:class-sdk = "sdkchroot_configscript " sdkchroot_configscript () { - sudo chroot ${ROOTFSDIR} /configscript.sh ${DISTRO_ARCH} + run_in_chroot ${ROOTFSDIR} /configscript.sh ${DISTRO_ARCH} } ROOTFS_POSTPROCESS_COMMAND:append:class-sdk = " sdkchroot_finalize" @@ -83,7 +83,7 @@ sdkchroot_finalize() { rootfs_do_umounts # Remove setup scripts - sudo rm -f ${ROOTFSDIR}/chroot-setup.sh ${ROOTFSDIR}/configscript.sh + run_privileged rm -f ${ROOTFSDIR}/chroot-setup.sh ${ROOTFSDIR}/configscript.sh # Make all links relative for link in $(find ${ROOTFSDIR}/ -type l); do @@ -95,16 +95,16 @@ sdkchroot_finalize() { new_target=$(realpath --no-symlinks -m --relative-to=$basedir ${ROOTFSDIR}${target}) # remove first to allow rewriting directory links - sudo rm $link - sudo ln -s $new_target $link + run_privileged rm $link + run_privileged ln -s $new_target $link fi done # Set up sysroot wrapper for tool_pattern in "gcc-[0-9]*" "g++-[0-9]*" "cpp-[0-9]*" "ld.bfd" "ld.gold"; do for tool in $(find ${ROOTFSDIR}/usr/bin -type f -name "*-linux-gnu*-${tool_pattern}"); do - sudo mv "${tool}" "${tool}.bin" - sudo ln -sf gcc-sysroot-wrapper.sh ${tool} + run_privileged mv "${tool}" "${tool}.bin" + run_privileged ln -sf gcc-sysroot-wrapper.sh ${tool} done done } diff --git a/meta/classes/sbom.bbclass b/meta/classes/sbom.bbclass index a16f6ea0..e3d0e702 100644 --- a/meta/classes/sbom.bbclass +++ b/meta/classes/sbom.bbclass @@ -41,7 +41,7 @@ def sbom_doc_uuid(d): d.setVar("SBOM_DOCUMENT_UUID", generate_document_uuid(d)) generate_sbom() { - sudo mkdir -p ${SBOM_CHROOT}/mnt/rootfs ${SBOM_CHROOT}/mnt/deploy-dir + run_privileged mkdir -p ${SBOM_CHROOT}/mnt/rootfs ${SBOM_CHROOT}/mnt/deploy-dir TIMESTAMP=$(date --iso-8601=s -d @${SOURCE_DATE_EPOCH}) bwrap \ diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index 9b4f62df..bb254199 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -203,19 +203,19 @@ do_bootstrap() { trap '[ -r "${WORKDIR}/mmtmpdir" ] && tmpdir=$(cat "${WORKDIR}/mmtmpdir") \ && rm "${WORKDIR}/mmtmpdir"; \ [ -d "$tmpdir" ] && mountpoint -q $tmpdir/$base_apt_tmp \ - && sudo umount $tmpdir/$base_apt_tmp; \ + && run_privileged umount $tmpdir/$base_apt_tmp; \ [ -d "$tmpdir" ] && mountpoint -q $tmpdir/base-apt \ - && sudo umount $tmpdir/base-apt; \ - [ -d "$tmpdir" ] && sudo rm -rf --one-file-system $tmpdir; \ + && run_privileged umount $tmpdir/base-apt; \ + [ -d "$tmpdir" ] && run_privileged rm -rf --one-file-system $tmpdir; \ [ -n "$base_apt_tmp" ] && mountpoint -q $base_apt_tmp \ - && sudo umount $base_apt_tmp \ + && run_privileged umount $base_apt_tmp \ && rm -rf --one-file-system $base_apt_tmp' EXIT # Create lock file so that it is owned by the user running the build (not root) mkdir -p ${DEBDIR} touch ${DEB_DL_LOCK} - sudo TMPDIR="${BOOTSTRAP_TMPDIR}" mmdebstrap $bootstrap_args \ + run_privileged TMPDIR="${BOOTSTRAP_TMPDIR}" mmdebstrap $bootstrap_args \ $arch_param \ --mode=unshare \ ${MMHOOKS} \ @@ -247,7 +247,7 @@ do_bootstrap() { if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" - sudo rm -rf --one-file-system "${WORKDIR}/dl_dir" + run_privileged rm -rf --one-file-system "${WORKDIR}/dl_dir" fi } addtask bootstrap before do_build after do_generate_keyrings diff --git a/testsuite/unittests/test_image_account_extension.py b/testsuite/unittests/test_image_account_extension.py index 97d221fd..e2ff4a5a 100644 --- a/testsuite/unittests/test_image_account_extension.py +++ b/testsuite/unittests/test_image_account_extension.py @@ -54,9 +54,8 @@ class TestImageAccountExtensionImageCreateUsers( image_create_users(d) run_mock.assert_called_once_with( + run_privileged_cmd(d).split() + [ - 'sudo', - '-E', 'chroot', rootfs.path(), '/usr/sbin/useradd', @@ -136,9 +135,8 @@ class TestImageAccountExtensionImageCreateGroups( image_create_groups(d) run_mock.assert_called_once_with( + run_privileged_cmd(d).split() + [ - 'sudo', - '-E', 'chroot', rootfs.path(), '/usr/sbin/groupadd', @@ -164,9 +162,8 @@ class TestImageAccountExtensionImageCreateGroups( image_create_groups(d) run_mock.assert_called_once_with( + run_privileged_cmd(d).split() + [ - 'sudo', - '-E', 'chroot', rootfs.path(), '/usr/sbin/groupmod', From patchwork Thu Feb 26 16:28:30 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4914 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:08 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qv1-f60.google.com (mail-qv1-f60.google.com [209.85.219.60]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGT6LN009344 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:07 +0100 Received: by mail-qv1-f60.google.com with SMTP id 6a1803df08f44-899afef8eebsf167019596d6.3 for ; Thu, 26 Feb 2026 08:29:07 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123341; cv=pass; d=google.com; s=arc-20240605; b=Fuz9ek6iSFmPYR5Zkpuq8dUpFWRGcEcWgILFlVOM3kxAWDQ2yLLaoZKf182ePh5MI7 HrJxoNv/MDsq/tD/8au/Ns5CRM/V51HMwes/iE5KlJODaIA379JVfQu9vRm7wji4A7UU XFveTecuzFOrZGoFqpZr6G6yzZ2uJjZ/nCaNMAMubP7J0WQ7pw33ErYQrCoLuwZGiNR9 nnry8Zlelr23Gsy+3by6fagszj8AQCWq7RYVf5mF/OWJ8joxjZeWQAIYPYwpFvH6kJAw tYGBe7mHEG6+m9ozwQ1s3M4znPQvgNoZWZBqQa2wv3k4p9vkTfjwovHHoH+PAd3MedEa qKPA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=tzQKNRqUqx7dTlFcUxA299XNwz7YH81kj2ADYytSQBc=; fh=2bGtxC67TgNnS1pPQYTqQJF3GbWeNQAV+yq1Cd1Mt+o=; b=RT0gSv8lf2Y/nEL47pY3CDZoroUepONZSiKSBblCE8ZMXk3uVVfKhnbTDQWRdW/QrX 72kqUSR+bcBC24uxBhvzZkIMtM2JF93hxmrbo6fvdUWk1awkb1mV41CUAdRoSVaDMt4y qo4JweJtb30M/l0XemP4zwIZ7UUZy7X2/X9hTiVmd2d0O4iDg8pqCzItpqHbeUpBNNDt XOGiKcn20ueYvqORoznJmpZXwQyrX52qOtwk8KP/RNtkR1UxZVzQ2IPPYqJHzcdjQ3gC vPlXMx4BfryF7g1Nv+klnv49E+VRT1SON4s2lsJTfUD9qM5ohW4/XEHaGtOeV70qlbI/ equg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=sxPV8R3P; 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:c20f::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=20230601; t=1772123341; x=1772728141; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=tzQKNRqUqx7dTlFcUxA299XNwz7YH81kj2ADYytSQBc=; b=knTgBwO93GI1BOVwehunyjvTFS4HYTcwJBlr8HFXEt9aL8V0kTHl7ACzFVLxiHCbDM hfvhgpyODMPkDIJpcj6siUsBWb9/IQUGEGKnTB57KgKPFh2anOkGxmeyg7qXgldyX7jw gMmloYWUA18fYRmBGkzx6EhOCraBA/zYeb7YpEjGofrGRrPIDRWj68ZfYK9HMKLsnewT tJtB9N8PXrgVCK8dAZx/eRaPynH1BMuLh+8nhKlWw9ALuHexMwHrwqtQWbMr99Tx5bEg vh80u7T2mbBQ78GTYCLvSXDnYZQz3JqXYqrqcYM/ZOQ8guhvcD5vwLvO7bmBIM5kM6Tj p4pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123341; x=1772728141; 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 :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; bh=tzQKNRqUqx7dTlFcUxA299XNwz7YH81kj2ADYytSQBc=; b=dMGpQM5o+Q0jGyd1psQadxmNhfivJWOGdQDkExW1pU69/MRkOu/g3uQoyBt5UAxP7Z lOT7FmJ9KiNNcHt9QcYvlJz/HElM/i6GnLjC/0oFOo7HqkdGlhQm1m+dE/7XVCm4dpO9 P7NrjVXE7MdmOoVmsZq2IY4y9OO9WGyCAYClRQCoJFdMat+f948PNF20F6zk2rNi15qa 5hByaIMokXJc9mP/OKi4hxQZDdsZBY43xsmy/EARgRO1VC6m7HQOzin1dqs+mhCpBrbm bUVCpMHHKYZnXY3VChH49u2SHj1zSQe+jSK7AVWJfqXNSKwObCFCLuinaxRs0Bl/sXE4 A76w== X-Forwarded-Encrypted: i=3; AJvYcCUKRwlPCzq9jG50sAoCoywbEp9Mf0U/tSJHbTH/Ek4K4HIL3q2BUwKQM7u3OVEj5iGFYf6pi44=@isar-build.org X-Gm-Message-State: AOJu0Yxo80J6+MdSFVuVJaSdMpO1yFsqMKQ58rfaj8LhkgmaM2OemZMR /WtLyv4aaSSBJonVuAQKRUzVEyXijXeF86raTh68yXGMGwd84jh2118J X-Received: by 2002:a05:6214:27cc:b0:894:61c8:930d with SMTP id 6a1803df08f44-899c13fe982mr72509066d6.21.1772123341232; Thu, 26 Feb 2026 08:29:01 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+FMgZOOMlHHTTKAUYolPDpyKR1WepFe3Pai5fqzg4Xu5Q==" Received: by 2002:a05:6214:27e1:b0:88f:cb33:421b with SMTP id 6a1803df08f44-899ba100d2dls12183966d6.2.-pod-prod-06-us; Thu, 26 Feb 2026 08:29:00 -0800 (PST) X-Received: by 2002:a05:6214:29e5:b0:894:6d0b:502 with SMTP id 6a1803df08f44-899c1f09296mr72238886d6.59.1772123340290; Thu, 26 Feb 2026 08:29:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123340; cv=pass; d=google.com; s=arc-20240605; b=lhL+xj8z4XHE+bECQgHkiUS2lwwPotlG3nA49XQr2nRw2VeVfG0HcVGfDtsevy5IKl brwpEiQVo5U7KvnTexn/j36bPhnIIpghc/tsGCL2n39RxiOrph56cRMUT4uLhuthYE3a KYlkgsbcnoB5X7O7K3ayMrQXEaF8TW8ayYPqCj/sv1YBKCQNOLexD1B4JFiVw16vwv+r C+fK4cQSQsbIMW9JLYa6H0NjL8jwJBwbmjX7tffr46jkYc+SZ7OASm4nBqZLHKO22c/D HfNTYWErOk+3v3dOiIx8+oRl+b21T6FDVrOdKUFRhPc52Iy4LTryzVjCE3YxfgErYYlB 7qmQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=TFHtb3gsbUvXv7obkhpOjd6JYveHs1eMiD2C8XHOwcQ=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=MzaVReVuosZTaWhRLS/p5mLxd5t2bEBTVdeUt9ibTVKk1AuNwkUBeVlg2/2y1S9u3f Z6gOPQzDWW5id2KBZcq8Mi8wHdI8HO8mZ1h3akxTyV/NuEiSftGc2Qn4AM2SS91l/Q6K l5F2sHYSDQGK1rCQ0x1oJJ+rp+LBA1wv2bf4jBDpicKN5DB+/TeIfYksoyezLEqUElat Cd1yXxDbMmanxQFsM1MmqdKFzG511VjEOHEPHTU49lET324OtBkXjF1XVEsR1QVLbzJa ZcYxlIkXTjccEKcdJznbyGQo8H2at7k0Nq5+/vEIJW4raAH19n0vE+s9vZxjpfwmISsn 9jGw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=sxPV8R3P; 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:c20f::7 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by gmr-mx.google.com with ESMTPS id 6a1803df08f44-899c7341843si723156d6.7.2026.02.26.08.29.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:00 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ygCygF1yDs8Qtb7c5H88mrWzyKBEyHc8Cr3onpb0xtIFD4ZUWRo6XXZ1bJtBfvcoMo+jtYsjToZi7mpBg+hdKErM1ivWMwImN7eI32BjDKgTcDWPy8TkRqPpaeSKxeE2XB24SjIMGp/OePKr7OlWDApLWkgXscO++QvktjWMeOR6nqlsynXIKVpjJAVzlt6dSTkb1Y3M6mrj+qcmIeQTZPsboSgaZOABxckEj29n1QyYVERVLPdfqoHMzr26YkRIXqoTvvhA7cD92MyPuxct4BvfMf5KQTpCqt7Vw1bnB/tCktkyWtVkkbdMDSTbzTo2DnhmrSa4rO80T4ac4cqRdA== 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=TFHtb3gsbUvXv7obkhpOjd6JYveHs1eMiD2C8XHOwcQ=; b=nvWJGMEohsf638soR6cfP2tSVmSgtW6pd1730RXxe3eTmu6F+hRd5/fuX4uqsBYY8osjW74Qu+/0czIMfBtvBFSs/NXvtJzpor5OXQkXrGg2hzm2/EOFvZ5hSjDAZJllRyg5xcTh282wFB8T/VGEMP7OfqXerHG2N8lE/6iRHXKOuXkF84RQFfFU94YuPJ+DmhVNJ2eGzFRrwA5Oagq1LCnOqGdyQatXLttRhFZ+Ijc8vuJtJ2jhK3bisIYZkrS/xHSbuKs/55j/mww8TvwcATK59pJe+iQNXiqCEh+DiWwkbptDaFqoG9pRnPUC0ab8tNj9DDeu7g31jEcS0O1qTg== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by DU0PR10MB9297.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:59a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:58 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:57 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 05/15] bootstrap: move cleanup trap to function Date: Thu, 26 Feb 2026 17:28:30 +0100 Message-ID: <20260226162843.1642329-6-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|DU0PR10MB9297:EE_ X-MS-Office365-Filtering-Correlation-Id: 634f553e-2f84-47dd-0fa1-08de755423fb X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: 05yxKF9n/aHZKWxx4TzTLP1fsgjhPGNE3cD4qtufwOe/Af4NYzk5tyrFaF2I2vdQrjC+EeGwl2oq991kfJcX7x8JwoEMMrAXStuXL2TJBmS8HUKJFY18RxVCV7z0v80rI8dn4bJ+V4hPsVTSxipHk5bE8lxuVMOp3NYMUQsmj2W97OiasLM7C20y12fEKuqDwzdgdCvJU688Cbf5EzeeMxXJOJ3+p9iYfBv11AUeucjuT3Id3ArxBDOLgpzhmTsuK07mHB4ltUHNYVVWZXLKxnelwOc0dYsUbwqz0KXDO5bElOHTrjh3vf4AigDJs11tUVOWVCIByrMHqsuQS0BCIaP5TfkIrmCPVsBeEsVj58CNwzzZYK0gfMAtgXsZGpkJzrDPsHMlgNw7kiWbCzVlQAhf+Xxma7iAthTQ2P5iw0FzI6XNqSbAUxNAqoOk7LNbdfxQD6NPO/dRpL0CRUtPnzxLtSW01NlAaa2Y35eadfcct1HqYpblbSaIxF+soWZUSJhuw6adYfzP+kq49gCffyMtW/RA6O+Y+D6rPFZdzB8rGrkFcyjqw2nfLdNcYoClfHnrioJ6v/wSVcv+zF3+vZue3nfqzbLPmbPf0lo6XLZlXACXESUIsgca3BWkpEl+rcFxr7CHQYusnunJmgL6CJC0O0hGl+h15Mqrfa8EkIk4tW38n6RDj4oUEM+vLZl/3O7KtivD1nvciHzH9B+Fhu0pECiBsXj2/WB4NQ8BIvI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: Yv+FbeT9lxpxesW1u0xYYIxh04+uQl87MNhU0Rb6yUudWsHA1ZprnEO1UXfrS6UntbLZeYEHIb3fAeftZIHIt03kPq4wD9IA2bhjCDPMQGJ+7SenYChuGuYZsng76zVjydH046wdNt44feDuzxeihEFauxPlovwny7YWXjDQdeeSS7Q1rMEY/QOgmdq5NnvvlyQZTtUbQzvUn9ZLP53taqWeXppQ2aVs7yEvMQM6vlvn/JWg1zqVjI296WXj5RHYKQ2E/q9fVbzM3URXccNVJspbV4q5AUAQ9m4wVSNBFodwmYyKz5DZqnNR24xIDNOEQTX/NH83gbWqrjrugwro4rK1BEPY7sCwi0ba48uGgMTbun1ra8SuASpbYiZIkIIaETqe5kr7/vXx0xxnhSTBdrwyhKCCHv5eV7EE8QqOHQPiVe0L3OyKzuz5yHn12OCMkYbRspNp4NK59oOR59feP/wdA1NMxIvo+g/GHYaWusy+iUSCl+aeDxzH1jsDYsmy+fKzABYoJKSWhBbZgyIuXXW4ZICwD96vhBR/cSvNHhcYdapKImx2oRVYDBFU7iNNPfU6qtcbpCS4G/XKO95kxzXxj+2WdhMLj7COd+1u0IIIC8ttP4wgXpa79NR8FlykY44oJWfwT4+glB+OaC/IdTlWZrCaEmcqQMSrUcglXwLGfEJEa9wjVTjECrdfS6WJgsCdvN5OVOLViA8K2Q/gl4ar92xlWpWLubTZg6m8UY8vlKwdXZ9IsaV6hp0gPVzL5WeoBuMdQBFM4r8gsezz/5jjEGasiyOSOG8lvfwlmArB4dY8SWNsXiZrdts4/A2iNmjtqeN94OSq56MfKeZU1nLKEnKgnf6LxoaQz1MFH/PubnHffm9S3/8mrZZ41VA/sp84BBfGJXgpKnDzy7T5A1NR5I0Gbsti8JqpcpmpQrzsRiM2Vx3upFBnZhzf6vt4vewzPphKrXT0rj3roeZpLqdsHvR0FR6yZdk0zh64MMhva2uhV0kuK82mdO5SH+PcgLbU6/dzdtGQ/utleYq+RpwReyUVoHGnI5HR1CwVmwCyXEHtbbmLLq/p45sQK3eZbBo8kQy4PectQuRXW+3eAZCdbl2btQC5CDGn/Wxn2avKCCFjMYCGXUnUN/Rv2vlivVo56/A4HlQDaAydoPBYTpB+Puxvt8R4RfiqXvmN5WgfXQItOCqDyd9xP5vzMp8UJLzZ8Eud9p/QnVn/sTjFC5vpMh7UFz9onZuSRPUXcwPH63Xesu2d0n8cBHJxalaTPDuT+9i6PCuAB0bbBbEmztlP58t9TyuHF1MJvyCTwLGCBw/78WY10cUM5VsgK2hk4scgEoE6dpLPsOiusWFvhPPSfMP2VggVDuff7RFh3gusB1XKKtdbNjTbBo0ns3sbkr5qPpGlZi1jAXWrDUg4FppGd0lZIdpEuiHvMNt65ggEVYgb76ItVgE7pq3yN+mcEtBJrnD9izRXJ3yIU4mFd4nogg7MX2MJwvv6/mL21WF0kwf14CfFW7jBdqmtX99TJKZJR5lW7fUxOGdDf6RVetvRMITwDhXJ8vyZraMwLbq0tKd+bECFdDA7DkVh62GX2CN6ZTj6NsX303fEdiprSDmla2Crgm+XGp152cSj9qn0XfotokzVScoTMzcu8x0STgVE/p0Z26RIbpPC1aRh8tJrXIMViQhl1gqyETFsz4VgXNy/+DjlrbHBDbrGPdTMy5zYzVwwvxelkQJFI5p4V+zkjyp2d8J/nroBc6YXHgmP5BcwLolJgGn+kMLoOqtVU9n8tjNL X-MS-Exchange-AntiSpam-MessageData-1: p4g8JnHyqlTanIertYsKQDPkAZGjWSkZm2s= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 634f553e-2f84-47dd-0fa1-08de755423fb X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:57.8880 (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: 4FOk6CQ3b5lrXlAosSQkH8+g+gdG9fXTKXbfsLD43GlDsERYLRJqrfd3FzgfOwTtW7z5mFSIdxOfLdh0eQLmW2OQCoILbKCsVTY2jePIzL0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9297 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=sxPV8R3P; 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:c20f::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_H2,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?= By that, we can make the trap more easily conditional. Signed-off-by: Felix Moessbauer --- .../isar-mmdebstrap/isar-mmdebstrap.inc | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index bb254199..ea63ec79 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -104,6 +104,19 @@ def get_apt_auth_opts(d): f"--setup-hook='upload \"{workdir}/apt-auth\" /etc/apt/auth.conf.d/isar.conf'" return '' +bootstrap_cleanup() { + [ -r "${WORKDIR}/mmtmpdir" ] && tmpdir=$(cat "${WORKDIR}/mmtmpdir") \ + && rm "${WORKDIR}/mmtmpdir" + [ -d "$tmpdir" ] && mountpoint -q $tmpdir/$base_apt_tmp \ + && run_privileged umount $tmpdir/$base_apt_tmp + [ -d "$tmpdir" ] && mountpoint -q $tmpdir/base-apt \ + && run_privileged umount $tmpdir/base-apt + [ -d "$tmpdir" ] && run_privileged rm -rf --one-file-system $tmpdir + [ -n "$base_apt_tmp" ] && mountpoint -q $base_apt_tmp \ + && run_privileged umount $base_apt_tmp \ + && rm -rf --one-file-system $base_apt_tmp +} + do_bootstrap[vardeps] += " \ DISTRO_APT_PREMIRRORS \ ISAR_ENABLE_COMPAT_ARCH \ @@ -200,16 +213,7 @@ do_bootstrap() { # Cleanup mounts if fails trap 'exit 1' INT HUP QUIT TERM ALRM USR1 - trap '[ -r "${WORKDIR}/mmtmpdir" ] && tmpdir=$(cat "${WORKDIR}/mmtmpdir") \ - && rm "${WORKDIR}/mmtmpdir"; \ - [ -d "$tmpdir" ] && mountpoint -q $tmpdir/$base_apt_tmp \ - && run_privileged umount $tmpdir/$base_apt_tmp; \ - [ -d "$tmpdir" ] && mountpoint -q $tmpdir/base-apt \ - && run_privileged umount $tmpdir/base-apt; \ - [ -d "$tmpdir" ] && run_privileged rm -rf --one-file-system $tmpdir; \ - [ -n "$base_apt_tmp" ] && mountpoint -q $base_apt_tmp \ - && run_privileged umount $base_apt_tmp \ - && rm -rf --one-file-system $base_apt_tmp' EXIT + trap 'bootstrap_cleanup' EXIT # Create lock file so that it is owned by the user running the build (not root) mkdir -p ${DEBDIR} From patchwork Thu Feb 26 16:28:31 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4916 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:11 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-yx1-f62.google.com (mail-yx1-f62.google.com [74.125.224.62]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTAso009466 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:10 +0100 Received: by mail-yx1-f62.google.com with SMTP id 956f58d0204a3-644548b1dcfsf1237168d50.3 for ; Thu, 26 Feb 2026 08:29:10 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123344; cv=pass; d=google.com; s=arc-20240605; b=Y/uuYaMQolZLehDmzlBAqwKoGWTJo9xDbXu7EV5e8uX0tBRy9TUCZOc92tlDcdC8R6 J9YjLYZ2U0/6aRKgxClcIBjSdldzvXoBGOgIuERNKoSv4WyX+cA9ZSLIz70U9qmisp9h 395d7f5HuSohSN8ShVK34Q4GNWZ3tlUm9/WUVpEy9nLC+zONzo7WyBWyl1GxNcMy6SCE GTQqgeMHS7JTBB8SqK7NVA2JRlyq3FZldQ0T6vJ/HE2/sfzytbG0DoHUjIurwHHnciFf CP5Z9FfJERYJy5/KjTmjA9EEYVCOo+WZu7/QgZdHR6lzJE0H6g6sun+XK/RlIpjcHeXf nPFw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=mGIclasN0dM4v7GKTGVAdzNYaiHVo038WuvFWNN2Vfc=; fh=Y/EaHkQ5FAvjLHFZDwsXm3+UM36p6eKlXvARj1JAd9U=; b=S/bUTleFXm7Ls7F1TbhNc0uDfvCztI0RTre20e5VWOQpC+elplLNu3YdsFyzyh0uKV +s3uBJWc8v2ISfH6qvryKqiENGmMi3grynMLg2KiPzFvcwL75Yh8CXwE3HxZcGI8sO8Q lVVtt8++DT2mAIlEWdBBrAzWqzDNweSrngmi60omeOX6Zfm2/8BTL2735n6n3/qM+hth KulcL4SIyOonpuMNS1wHkBcpzVcJjdtXP10saQn0GIMuxI74IQj/i1i7exr10Xel75/T 3kxfeTg3sIz2lhw6iAzYOnIbI9Q4P0h8R9PZ8uzZ4Zxhcm5jG4h2wTOwzbF0lW+oi+st f3Aw==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PjkcHQk7; 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=20230601; t=1772123344; x=1772728144; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=mGIclasN0dM4v7GKTGVAdzNYaiHVo038WuvFWNN2Vfc=; b=XSyxyOwaHt2yjxt1hif68lKD7Kc8y9j7Th5h/TLizIfOzTRTSJV1D33eh4T6ADk/5q rBkCfalD+sLMhGw69ZXxU8ko8chle7daLv9NqkJvUV4Teya5OoVc+qzy7ExVBPeCn1PJ 9C6FFurv5yFC5W/5HTw7/l7gRAQBqebqfrbCQ6yfXuQPR7/EXeHWVJ5otSfNa8jWyF4a fVJFjyXUbkx5vC17Qa+SoE8/PVNUH6Pdz9MYuXD5Cygz2BuFsPnB2fKW2fsCazzZZCQu clkLY4o8hsPaDYkLsyEnr13ItrMPxS00AilJojH0yK4rPXwms0FPoCCqUng1p3l+JpdQ hfhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123344; x=1772728144; 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 :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; bh=mGIclasN0dM4v7GKTGVAdzNYaiHVo038WuvFWNN2Vfc=; b=VhfoUhHcvmyp1fPo+F2svfXrEA17xYSDRGJaRj1jijswe6zOaRn9J/B6An+kMhNypi VM2rc2/kZX/wYcBKkzdYmwnuKLspcJe8+ZvMUjqznGDSPVxeV5avVDow8FmmwWmpTDeM SpIEFGqHS6j3/Q4bgrEh5WwvpAF2ekU6s6DukKOShV1VUCzOarUR6aAxO871O4G4nIUY GWtCmV1WF+Tp0H//0e4S8MIOL1ayJLLnT7XJk1yvFKJemG6jkAnmNUMS48Nd7eqI1Msc kIxjbg2TzOvu2JzJdqY7XwTbfMsVWi7pff6N8pomhX9VyUHqMRpsT27SKYMjyTqiTD1K Pf5g== X-Forwarded-Encrypted: i=3; AJvYcCW7l/G8nOhS6P2kGtNYNphIEW0+cvFjN9GAcsvUJsKmg5bkcCPHAHlwCVUVIeY1zg8Dokod0QI=@isar-build.org X-Gm-Message-State: AOJu0Yydyef13U/O9Yej/2s6z28UPKNQBI8LvTFLfn53SpJWpDySbUpd Qo0/Zjaz4gi6A3MHvFE9nt0gNsorZfbNC/aJyzatw3DRs+BNimwBJvDB X-Received: by 2002:a05:690e:2511:20b0:644:2e5b:410a with SMTP id 956f58d0204a3-64c78f67477mr12200720d50.71.1772123344251; Thu, 26 Feb 2026 08:29:04 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EcodZCvuHINXaom4D9eLu6vPSwVn5gf1gVl3SlaT/tLQ==" Received: by 2002:a05:690e:24dc:b0:64c:9c47:5ce0 with SMTP id 956f58d0204a3-64caaaf9083ls1295262d50.1.-pod-prod-01-us; Thu, 26 Feb 2026 08:29:03 -0800 (PST) X-Received: by 2002:a05:6122:c81:b0:563:c868:a32d with SMTP id 71dfb90a1353d-568e4714e0fmr8500480e0c.2.1772123343141; Thu, 26 Feb 2026 08:29:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123343; cv=pass; d=google.com; s=arc-20240605; b=jLc/2/2KpIndkM+AqytCdgBVRH+4zrgQxqT448b+SD12Q/E8nvWiGs+w9cbCfntg/M E2XLHd5zQTRuPFyhKAjCZSGLnDdmDx1C1QNSc3sWcx3BuytQw0L/qb7x/cTwECVC9ZZx 2u1zCdIm/HbCwZuqkjZDQgCjinC7AQfGoaq4uJZ6s5sW5wfPlle9X/ypXf799Ljtg5+s PtvxDjkGKKt21JwVexQK0PQ6XybZilwEDQ9GMku/OkadsJB/68qE1RGmxLCUOHY8xNv3 9crqCBx4AOx7HvyLc2M2HB++wtv8VxLNEz8n3lOgb4q38rIyisw1cFJ1JDQpvTGQNxwc 1uOg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=sycGoAIw73uRBZpzqAOG6xQTHkwPazBatX9yS9p4nDs=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=TZNb0L0RHex7nuJ6yCGIKQsKxm2LBRy7qlIu58HxBoCTV1i+MAAlJlxajocvYUqG+z V+7PJbk2S5eVGwDE+CuxpaiPi5atJ5gKlAGaW5bfJWmOUXz4vODrSxByE13hj+eTccQJ u0wVRRG0h6slQv8zyxjDyCnHv2JoXZWZNDwPnGDuTrS9WX+eIww4qXgN2UyX2ZdMmVGr PCGCB/WnLvGy8o0L5MtF9W93EUaxg+ETwYGD2H+ouQlgTW0G8gjXbzAgBEJu4OwM4QA7 I0xsQadNvHwf3SQa+zMQf8asT+Wmr2fqASwEBfdtCMvuF0oknHGBqXqG7RQq6Y0FmVwD Xh9A==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=PjkcHQk7; 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-56a91f2e6ffsi102908e0c.3.2026.02.26.08.29.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:03 -0800 (PST) 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=Ub26CNlkLV8R+Q6l2VebQGBPAtwaTMds/gmUdviaIX7+706gynYso3YvfEnqYmckxZhrC9GPQoz1QiNrF53i7vim1S/jAEEwHEByRdEskzwf9OrnH1LoGlusbgrSlLGWZru6wo7d2XpNcvTBdEtEdsevButUsykTCvMe2NVhwnOctZTjxWyTe2ysUh8ymTxgWnfYCpqjAeGTSas+kJHskKEMdbhvpTYQa4C714p3x4efrnv9EfT/InCu1yc077lzu3Rlxcgih4WiWk6qPKgQHwMtuT/c+KoFjYeOEwQmQexHdKBJmUJRn9Y4NK6cu+cFbvjedS0q5JepWUJDCr10Nw== 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=sycGoAIw73uRBZpzqAOG6xQTHkwPazBatX9yS9p4nDs=; b=afWoByJLFqnPRSAlhfgUOESQlry1UotxInYUuDp0wLT+qBVwZXDLpkPvxj17lZTOD57vjgmYDfZ/ltt9hvyDjQKmO1r7IsbpO5sJY07sspmjVOL+yhwLj9DyqiM+3S1jVB+93xQtKxKoTzAa3CLQB4UlbLQThTKWgqQXmV4DmqYeOaQauafVQb5MWhcMPuEanpZzs/kR0ldJvQjuEx+33EiguN0A2xqkued1OLEtWEzxxVVrNgOoUUEB0RCqo2C0jkbQCPfA+k1dkU3h0rrn/0EVh1O8dJetbUziJgDdand3vHqyMAy/MPzrAthWkbMOzqaN+w5loKyr9IDKj2elCA== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:28:59 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:28:59 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 06/15] rootfs: rework sstate caching of rootfs artifact Date: Thu, 26 Feb 2026 17:28:31 +0100 Message-ID: <20260226162843.1642329-7-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a8ff993-8367-4373-20ae-08de755424d8 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: I7Dk41o9F0qCxvZ5Gi6hke6/Bi6Yha5SV2FNNg0yuz7KBvH2DkTrIo98Y7YLh5+Ih0tDvl3EFdjDP/TYJjSYcXwtSJyjfqRy+3wDo81YELWQ7zvu1d4NtB5cEFHMk+xeol5JAdx7n7Jlt0KNE/9S9spRFgsOPmfGwQwF4h1+aQgfesKjH43K+opxLN4c2Ro0BOe5zr7IxeSHfOOj6DMkA3U5ymcRHvrgIZ+T3jrHUa7EgSM1OagRxpa/Q/nquGOy46u74tPx+L3joDsh8joHkzqK9S21pYNIutIifireQfDd0nl//LeuWXbDmPIt90ActRyjfvouxP1KkAmD2BveBhIYb+7ovrUuIP5BAFrEDX432D3k4Eyz1SQCKoFHV+woacE6dfceumIAKVp2pz0ttSJDX1V1Wdj/EIoulw1ERBKTXfu7IdSUF/+kCOUlotOpuBrc2B1gE1G/C3rClJL+OxbcpgVWYy+ZEuCjHu750xXqKYifGM0lqs6j8h91UHtDcr6Em5aVvoZvBfRzEP7D3qPoN033YqM0+Ykvexfebn720wvFHwF1nq8oA1LWK8/IyIWVhBFSlFxWrHae0wfir/SzcRjavG3ognt+8A2g2yIAgv9wa8piX12mLk121uAyamoR1C8GQJ8FD4B2GdkKNCvWSIPqaCPaloZoFZw9F68HMBDudDGCvJ5eLmhZ0KjPMKZ0hJYWB8cYlyYtjHk5w3jwEPt00RrFtgobvOzzHlY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: cai6oBOm3VUVPclxZ3YuO7mU78apuEaCnNMFeQwxFYe/mryk7uOQ+QBc23+zXmZfAArqsIs6gfafX4LYgiesRMQxcbbd6TLSuEB2gSsOTwhVqIoq/dStJNFTJcLjnogB23vMgHDp33PthBVTSn6Pz5efkT8XKfAlJjYTgOu+k3dtE3zUIwu3o9Qk7S6hX7Hu/9OLgClCLCf4zJ8+jcJx7xRSIYj0K3JDTRzRkwkp2h4q2DSKjJjo2EQnvgpbjrxdh/SLmQvqMJ0pMhmQIxTDe1xWdPAN9rTr3CqR9ieFWE646LDNncAoRRmVzKzfdUCsJubGHiyKuN++ZiNIOK0srr4YkV1o2VSwOOixq1K8F/yJC8H7hMxMQ+XwWHeGrkBatBH8NDjCCPePeway6y/zxf8tDZHakUKuPl7MUg4ny7Ffdjap8QkVrpy9uCzIaRuXbKPmepl6gMzFmK1BrNlEyAqlchMJq6kSnKHPkbJszoJQYaJs8yY1LeoRSvVPbwoHbInBFWqgm3p2sd9a0rknbpZgc/9MAE7hniq6GaRj2m5GWpJ4S0oLrFQ8fgGJ/gyUOJulfyd3NZCtRlgwqRfYg2WoKoIL0pfmqSUKUDD23GZWvMu+nOLWL0Qxx9gOhhmglxN/J9jcRc6rqbQViQhtZEbBI49en1Uo9wBtmfVd7IKim1A0uImmrLrpwLzXEe7CyxerXdvcEd4j2Ga59w4UgFD3KhmnMbB1TpFpHbpfnodBwHweK6s80SH2LTdEC/MAuqjuoSRkdVq/neBpwS92z0ZI80w/GM/2I5WclKXUmVLfyfgKnNGQYltvm5eCfeo/q8Zp9wqPR5cpXNh1laS6GZfVHf7IxS75q+vMHcvrCDLBLxE2FuZXdrDhDOFxFH5d1cWBukZyR4IW8gfiL9CE8srkD3oi7TKrwRUSV9rMjCDlPdH3MUogqMeCmfRW5/xvqDyFETrCDqySyEHATKnBZFLjdGGyumLeYQVDTY4MqtaRsQ+e+Oc+OZSOLIrh4y7MBbEy4gQSl/BkdpjYmHUwdBdtK6jInbA7EDJPgF+vc+SrY3PDx3alBGpcR7Z3iPizF1JPC3aM9Jc01pnTXwbgJxrgB3pcWv4nTJFsJOahxTVU6QBpFU2RmhJKEC8ecLmEtHySOjZhFXADBikL14jXm6Ud3wqLdFOxY5JL7pQNZA49ErNJnHpk0P+trw4zpNX8oyTWeutdeW/uo4xLIEqkwtnlOgXSp4vJ3W+MxF/E5PbGmZQbYwekog5/9Cpk0tT/QgZ+Cb8PlxRwc1VUbf38v/wqJ3SLztpT0/wOAeHoyCDwkAKhfHHleSNbTl+YXDJoRPple3UB/V5VKKSoBeN455LQcdE1RcW/AGcNwANYcftr8I8vH+ln46KuVYJQpTF0KuZhT44oYRU0qCY/tIxT+6tyuDUDJfwxXA5HdPbRXN1VXJZf4cyPGvSRDKcmk/dq7tBMW7KtIBRxRO1hoK6xH4ZY53ty2dzw/8cMKVEByeTBDet+IMDVsmmojC8r00vpR/qyFAMeF571kJm0iV7Bx8fPc2KeBREgO+hfJcP3zT4E0CT93r/pF5Ro8K2dWi2Dp5Ju/BBXn9gQLOHfNlu6pJsr6x8RGHDcLkAebNaZbGL2a8Oja1WGU9rAoq0gu3dgdUZilwQRL0DB+qjLEQ/eQQLxJmBA9NymfmKLUfoBc+gvGq/uN1ss5jZHovkKwlOCW1jTSqimX84ikO8A/OEh4F6d6NdLdrSYXHOzpGlK69Tz/AuvvrGV2CvcD6jcFzsJL5V3riPa X-MS-Exchange-AntiSpam-MessageData-1: R+kLUJf7TFtJdN65RJcug9d/FdiMymTSdmA= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a8ff993-8367-4373-20ae-08de755424d8 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:28:59.1309 (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: 7LQaEcbvdz2kl1Nex3uxLJ720Hf78CraGUEf0bB/DgVQkU0uFGIB2HRfhscjcN1UM53S0bUt1cxyptVMgz9KsY0fLKp2aVy+i0J1JNCOeW8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=PjkcHQk7; 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_H2,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?= We ensure that the sstate artifact is always generated for the correct rootfs directory by using the ROOTFSDIR variable instead of the assumption that it is in "rootfs". Further, we avoid file permission cleanup by using stdout to pass the artifact from the privileged space to the caller. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/rootfs.bbclass | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 883c3335..81cc26f6 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -665,11 +665,12 @@ rootfs_install_sstate_prepare() { mkdir -p ${WORKDIR}/mnt/rootfs trap 'rmdir ${WORKDIR}/mnt/rootfs ${WORKDIR}/mnt' EXIT - run_privileged mount -o bind,private '${WORKDIR}/rootfs' '${WORKDIR}/mnt/rootfs' -o ro - lopts="--one-file-system --exclude=var/cache/apt/archives" - run_privileged tar -C ${WORKDIR}/mnt -cpSf rootfs.tar $lopts ${SSTATE_TAR_ATTR_FLAGS} rootfs - run_privileged umount ${WORKDIR}/mnt/rootfs - run_privileged chown $(id -u):$(id -g) rootfs.tar + run_privileged_heredoc <<'EOF' 3> rootfs.tar + mount -o bind,private '${ROOTFSDIR}' '${WORKDIR}/mnt/rootfs' -o ro + lopts="--one-file-system --exclude=var/cache/apt/archives" + tar -C ${WORKDIR}/mnt/rootfs -cpS $lopts ${SSTATE_TAR_ATTR_FLAGS} . >&3 + umount -q ${WORKDIR}/mnt/rootfs +EOF } do_rootfs_install_sstate_prepare[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" @@ -678,7 +679,8 @@ rootfs_install_sstate_finalize() { # - after building the rootfs, the tar won't be there, but we also don't need to unpack # - after restoring from cache, there will be a tar which we unpack and then delete if [ -f rootfs.tar ]; then - run_privileged tar -C ${WORKDIR} -xpf rootfs.tar ${SSTATE_TAR_ATTR_FLAGS} + mkdir -p ${ROOTFSDIR} + run_privileged tar -C ${ROOTFSDIR} -xp ${SSTATE_TAR_ATTR_FLAGS} < rootfs.tar rm rootfs.tar fi } From patchwork Thu Feb 26 16:28: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: 4917 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:11 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-yx1-f57.google.com (mail-yx1-f57.google.com [74.125.224.57]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTAPR009484 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:11 +0100 Received: by mail-yx1-f57.google.com with SMTP id 956f58d0204a3-64cb3951982sf1304315d50.3 for ; Thu, 26 Feb 2026 08:29:11 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123345; cv=pass; d=google.com; s=arc-20240605; b=FUutOrRkm1aTiTsEPm9p24dDTR9PDxWwa/HFdRFYPZg0tDMtU2k7Xqhop8tPK8nZPP /SoPWDOTh0Z5NfF2nr2FcdsqtOKnATGwufCNnDyivNqrc+0i/EwstVVsG3YVLWah73GH SSxMBlVdWmjVUjC24ctCMSpAhx19OOOQj1Mfku8n11W3GERyQ8rcGdqH20QQEXdpRYNr 7dlHHtROALO+dgI/owKMpDeDfzw0IgBGV9Ia6DnijSTpZn6jUM1U2zQM0bK30igLIKBs PvWwYPwmLJVNtts0OFxXUbApYJGing7blDF9FfXEDbfnPl3MaPaePyI7KJPZgr42pRxc ldMw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=SPVtzoe5cFduyrrROGrDz8iSwSUbroUtCi1yhURSudU=; fh=EglR3fjlFPFvW4rlKHXrlqktBeSwGprnuKjcTZ08AlU=; b=kcGI1zCLfkpGzRTe+CVD8xypqR2f2AoRf3bbYz0vlSajBRLe26r2nSnpSYfXTD2mKv jHZqJJQgFJc5xacIUFF1a1IpQz1DONWmWyeBL3nhuNCJQgv/59a0p4vf31jPbiAALdqY AJkwHafj6R6VHqT5U0RSRQ0LV7bsrvT5en9oWtz1NEBZEf9ry2r8Hp4appc6hTKVPIDf VBQx9RW8sfJGw1CAgiqd3QMSh4c0uBIY2Xn6pjoTbXhmPv63AV1CzavjRGurbkTJCsXO Oj8cYfvnYIMbTGep8GNGSTV4+WpbpucYuasJo706wPb80svX3kwNhWlcwhaL830hs45R P7nA==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=vM3hawgF; 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=20230601; t=1772123345; x=1772728145; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=SPVtzoe5cFduyrrROGrDz8iSwSUbroUtCi1yhURSudU=; b=g4sj2F2a+++mRFg0DBYOdgFyo+YoID8WDiM5FXoYa6ibc2WLJ31M93kum+hq1nOQ9N bNQb7AQhDTxf1DL8dzXOhVmAqoQna/OTXET5Y1qe3KrUO+iAmopwCZFzSQHMtwEg3E64 b7KVj90vf2An6u2ZwmPlRvh2GaklCp13c5h1+9fkF5nYtoeOeNiw4aYul0sMCQ4AwGMC iDmBuQwE/C7iY0XAFUOTyzdAxo0FvUW5i+IL4hDq+EThJigVPIpya+Weh1K4l1MjpdQU gPFvaiGzvoR7T0bijnLgeN6Hp8mt2SFDBQ977ZftOrgJJ8K9te51QL0QLuPVUMn9gy+y s4RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123345; x=1772728145; 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 :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; bh=SPVtzoe5cFduyrrROGrDz8iSwSUbroUtCi1yhURSudU=; b=vf+eeC+uYyRrDs959mJZwpS3YU9x1hex7sNu5ZuUhClyC0F26W36+0HJ3mFoi+rnws CFw+qOwhsMnh4BLPHryYRqR3FEr5x0CtAK7mF2nJ5tdrqdlKNH6JFEzweeFmgMIS5x2e gY66H4lFhsvlvQRDQYHXLqp43RwKHfaurvh8BN5QAO6cHlDJt57jAky164LNXoPoQSKs +lIu9/m13t5w9MDmqilmBommGQrsLKRZUKjSRte4YRFyg7+lmM7Qwg8uJ0oA9CJhNcC0 HG5PnZlpSv7K8eF9VmiFWaRait5kgnejomb8HhhaGWNBbqu1vknBiLbMOetYV8+ozbPM 1ixQ== X-Forwarded-Encrypted: i=3; AJvYcCWOjGw0lwkAkZhYZpMHH15y0LPehiKkg2KOMeWXH6tCEgFYAjedWjcm737+C3esUIIvc8G5SnQ=@isar-build.org X-Gm-Message-State: AOJu0YytTYjaHnGuNrfCFR3WVuXOTkgWp75CWTpAHy4CLyhcKe8VpXeJ qK145/uKlofjUm0eH3gBAiJpJ96XFHVoa9NsRdWwCPAc1oCqVbby1Xa9 X-Received: by 2002:a53:ac85:0:b0:64a:e7e0:a717 with SMTP id 956f58d0204a3-64cb7c197ccmr2248605d50.37.1772123344819; Thu, 26 Feb 2026 08:29:04 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+GLUJKOEkqMFmYi1gRfWtRqODkWOIgvBQGrIve5kyOI2g==" Received: by 2002:a53:b496:0:b0:64a:d210:f4d2 with SMTP id 956f58d0204a3-64caa97c978ls1514511d50.1.-pod-prod-08-us; Thu, 26 Feb 2026 08:29:03 -0800 (PST) X-Received: by 2002:a05:6122:65a2:b0:563:8339:6201 with SMTP id 71dfb90a1353d-56a931d765dmr1388045e0c.17.1772123343648; Thu, 26 Feb 2026 08:29:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123343; cv=pass; d=google.com; s=arc-20240605; b=XHGOMqjUxB6gyj6LytE6PGFwljVhbUxtekvPx7u1udViVK1WSiY3bK0V+qMv5EObDl uPTW7pNjfZwaVv7qTe40ByXjVAS8eDWyVXcDehbqU2QyjgX0nn/6YCpenZ+QrwB3uD9i owZG//qwmL93TC5kUm8ShNOQ3X+78ZD9aBInX1bE6Irb0lLLDjaQ9z1a6iJoYJBShDuy bD+p/7VLzWBPVVpbUBN4Y2D4IYQ9pgY3x4pbNco6YNpDxH09Msf/xHGgyRPvPlMJH0x6 sa6KCiqBxw+KYriJFlviaz14MoKJWwN7Ab+ONIBDthZ7JWTGKPPvr3m6CUP2CDJcyR04 +zoA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=xHSs20pUEYD0HcbEjEEIPWIEPobizfdcm4nmhMT2nWQ=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=SLfTZ5wzTOKgh2wNNHsHQN7zYw3e6CCiH+M5/Y5n3bH4H6me/0zoQhR/zrHH8eDmH2 vV3whtsFrvMZmJelR9NkFxLxi3HVi9irhFLSwBWpDdIc/sHs+9Tlckq9K+XqgiI1A34D 0Bf+1HWuC5NUii07l6gDTbVb8SEV1AFN21D/6uDQkkvaP3TTaVYkJnz29X8eORa5c5Tw r3BGnNg8FKaTAThHouRlTB4Hc0Y4D7J09TLFohxRlppv80TquJ7LHEApv2Zs6JVNX1Ek Ho/SbTFD0XDgWelPs011GENWrbAMtGYT4Hwbru6k8gXXlBYey78MknYLOMnir0B2M92L Cx4w==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=vM3hawgF; 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-56a91f2e6ffsi102908e0c.3.2026.02.26.08.29.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:03 -0800 (PST) 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=VcvSh5QVdOpdS6oU8RCKlPPs6mxPK/qS7V41viYdd5FRmty+QifjOEF/k9fP6ng8GcBM56mzgyYcGcODaZwnteP/aLMQCBO6eALdbIs0w2XnYONQEsmEqJKUtitx2Mr8iVPnqxhnK1i7RKKgEhcVSLbngUt6z9afVn1fk8j1wAbkFJ4X0cJX2KZvzLkax9l4fySvDkjfe+6pnoUl9w/CjKoUbtXmhebYhBqvYRmK7Bg7TQRAVTbZPHD+x0leHCC0A13HlZBcHEaUXoo8ivcnChGmAhf6Mx4dz9vyauOPFt05nPK3PDySk3jRo62FusX40F81fLqKSWjcKlAlUO8JfA== 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=xHSs20pUEYD0HcbEjEEIPWIEPobizfdcm4nmhMT2nWQ=; b=GZAyhfxUWW8fivesmVg+FOja/2gxMGgAsU2EsmtRqQMqEFaplChaGwKDrhfvByWorDsdKOEu5SrenIG2s0oJhW4sFfRDjKF2d1tb0k951eOEhC/IfFNGrAo+Zik2gSrtyBtd8oiIFBQ6HdwSNyo34ic+UrAEMtjepyHGRSHE5UYLroZbFgY6KPCQTP3GnifCPV2jQ4oIctdoXDQy7pEO6oowKCsjZwTaKf6xZYKGxidrXfjlUkm7aL2u0QuBB1XP9ohR/0NHWpPrGysK8viX/xOpQmLr3WZxGHOHXjq1DE2fjPMFV8fjV547s/Ag905huGXN3LcpdwqUgpPLS1bCjA== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:00 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:00 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 07/15] rootfs_generate_initramfs: rework deployment to avoid chowning Date: Thu, 26 Feb 2026 17:28:32 +0100 Message-ID: <20260226162843.1642329-8-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: e545c7ca-bfca-4728-a2f0-08de75542556 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: pa0YZA2Wy/2SlsmvL32euQUFQ8QFL0+GorU8S/ynnOM7IDHhe929wDwsgLINpJqNdF3sF9W7Zp131vUimEtRaPv9E1LDhjWFr82cZVtf6X56ytnJm6NclJKFL2qe3kmJDHlMK8qDVSikC81RnPU0J9PQhuZNLaJgxBL+WinfsUJaUH9ZAfq9PhC/eel4UMBXeF4HB8E3asaXkk9jVrc/V21Qi7DorgyPxVaBoxiBxW6hs6eO0/Qd2R2vStA8GH8JIt3wbNeCM1WyeybHmnsfluQDbnZZvP89DxJZ9zknpJkXVJNG/hqkK1iKATSO0vvwkb8UoitfVXiAaG0hnOv7DmPpae2fcR1X00EI7rO3KG7vP5QYSgPQeOU5xs4osq8Xlm6zJ2UNVuZVsJ9g9iRsJjxxUb45B855U8vkXbaI9EEHYdehKdzsLqQmJD2J8wfqhmWWD5YfBT0nIJ4qpscpJeXe5XwLdZYmSs/WbeZIdn7fj5BxHMys6Wot2ElhCccT1mVVLV72/Rjokqxt/r5/6pbUVAya7m66Nq85P6GWR66BEXcO183rcJkcz9vVHDqxxLrBBs1C9eSy7VWCvFzop2HlXOdINcgJHfAtG5iaOCDpbUcnITPvlcEd6AVXzhLMg9tJ5mWJlnIGe/BSd5yufVVvxqKdaSHng5nPHSWzgbwxb44DbZybHWLBjEZlGvfknbsxhiHbjmDdGpw2EAKNJCnj/5rEMhwQlsny6knZP8Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: 4sVrrZgkfcC+pEyU444hPLb/qVNHYheISSEnIluQA6/HibV4K0n0aeJ+H3CunV25f0Tj0kDTIzuDh277PHGny2vSWsPr+3k319WB95jMobU+ERrP2Ox7p5U0s+K4kUJdEip8GStRjrZH2LkQ/inIrO70rhPTtyuHT/AQS5WWoTyXK9YeEjG2RzuHFpmYDfP3mfV1DWzfbztj5jqKqSKOqrYqeCHsioD8hNCbhw1UnTTzlBzTVXV9RZtD4R2VibDiTdadd+W8KGa340j+axgDTu+anpJuX9hXfEIxoS/V8g542rGapPPV4RkS4vmR3D7LzTyZTUge/xprMtZQKju/Nstz7GU1AA4rgvUKU/PV7s+pFy0W/8UVs/ECroaljz6jKIna62GgmJNEzK6A91buGkUgGVwwRtLoo440TD3QptpvHboG/shepMlq4R4c9OKuT4qTonsJQBR9CO3idVdMiHpRrmgjxlgNcj4w8ielf4LPI5Mau0jd8KaTv89McxFxyesoa1CX8a6sG8pOTGQH7CzSEtzOJGYzBoMTeDpjOzs3QdkGmEY1ibFl8nDrUbgEX0+kvcIZRaSb3a6FmhwEIVZcCG9DcUeXAknN1pNQs0+4wV4f4PLn1W/5sHV85Lwt6u97pZGopwjzHCK/83FuOBk8TJQzZHaQtfF+GwRmzjXaWIAnKS8mKVoQzk5VpvJsArM3bZoP807dAJza1pk6Q6OQdJ9a2ykjISZnaxfa43dQbNpp5RAgWWsIF+hRjk5hnMC4iK1vDXPRWdMmGIxAcHO5oCeuRZ5zGHn/GiB4mplYsgq3IrJqC1IwVTnWjRzSuiv7g0ksboyZlTZG+nkrAE+hANMeWRl/UUP1bi+CEdIn1pWo7bvyWkHY3rKWX5jTwdZ/qVCxM+eReUL2BtftIyNPgEc6fDEU4uJsk+1A9CVON822QMwM8D4TBY7oluTrqJWXRZqObwTlVzvjkpN5AsmZE788Qff0Ti73PQydzjcQ3n60sORz39UpyYu8MLyFZW0f7tfY2QifZL94tOqBIY+3SH2Z0hUClNeFR4+Vfh/T/LUy0uyb7+9Hg7+TUyoOphJR5UeuxQhfg8SzDEoi7k6Z+mbohjjPjO9GvmkMErpvaaEZy5a4hfakDxq81qPizAQI/e7w6bEwJuyw5fNq37+gdi1LP2COmFMWp7AK2rIBT1jE6Hsfq+QF06IcXn6wvAiAJ616wP+XLT6Fqias5LJoHwNED/Tdes+TgWlR+IUifZFW/qFlod/y0/B+eL5LclAsOl94lqCZozoPfREV0xwItwU+fhmDtGxlmuUKWtUENSnw0dpDN41CQHQwOyhd7xiJ820adEHfLCoGiBjn9kwWPP8Evv5QDaasO6AoZADr1aQVT6/hMrmAJZfDm1dc5eAOtCZgOYr5UD1/Z7a8BWEVscIO5eDFe+0HbCtPdLqc5gfBIJn9IEY87v0oO6o7POUHfvgsT51z90iSgSMBHkEFv+ozFDq6pw8z/K1UuNrHwGJgTs/L9TtMOqcNFP9UId5tYTpO/NzOvfNNtKQC0DVTsmf/ua3P/CcHlPvNf3fTksqQVZ15Y/WL+kFpM6opyYoaeradM2YLIaQ9yp1HZSEVC6Y6c65qcLvysQS/Rmo6l+RVNKufmp2NE1rKqQ4qET9z6g+DleKISuK12kBIxKW5fYSrWQ+DqhgvaEtqkrKjYVKd5tiawGhn6ZaKeorqkqgYdrC5mq3CrkwGKGO93Hy7zeeXy7hAqD5avWOf3uUtbCdgN04ML/0GkX+9y6QYd/gIzdsD X-MS-Exchange-AntiSpam-MessageData-1: yJNLGkF3o7Uj5OOV3OLLvmPtCIXT78jeI0c= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: e545c7ca-bfca-4728-a2f0-08de75542556 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:00.1358 (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: jSuZaMJAjhL880qS6vz2HqqTMPH6+yMCJkAJjoFY90soBDPmJbt2gndzQiL4S9gaPItSCBoCJUs8NRXlxQ8tlMloem2WBGjYCScjE6IluKk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=vM3hawgF; 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=-3.7 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, 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?= Previously the initrd was deployed as root and later chowned in the deploy dir. This involves privileged operations which will no longer be possible when running rootless. To prepare for that, we deploy via a stdout and create the target file by the correct user. While doing this, we also remove a useless sudo invocation when listing the ROOTFS/boot dir, as this can be listed by all users. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/rootfs.bbclass | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 81cc26f6..c74f4b8c 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -620,18 +620,16 @@ python do_generate_initramfs_setscene () { rootfs_generate_initramfs[progress] = "custom:rootfs_progress.InitrdProgressHandler" rootfs_generate_initramfs() { - if [ -n "$(sudo find '${ROOTFSDIR}/boot' -type f -name 'vmlinu[xz]*')" ]; then + if [ -n "$(find '${ROOTFSDIR}/boot' -type f -name 'vmlinu[xz]*')" ]; then for kernel in ${ROOTFSDIR}/boot/vmlinu[xz]-*; do export kernel_version=$(basename $kernel | cut -d'-' -f2-) mods_total="$(find ${ROOTFSDIR}/usr/lib/modules/$kernel_version -type f -name '*.ko*' | wc -l)" echo "Total number of modules: $mods_total" echo "Generating initrd for kernel version: $kernel_version" - run_in_chroot "${ROOTFSDIR}" sh -ec ' \ - ${ROOTFS_INITRAMFS_GENERATOR_CMDLINE}; \ - find /boot -name "initrd.img-$kernel_version*" -exec install --mode 0644 {} /isar-work/initrd.img \; \ - ' + run_in_chroot "${ROOTFSDIR}" sh -ec '${ROOTFS_INITRAMFS_GENERATOR_CMDLINE}' + find ${ROOTFSDIR}/boot -name "initrd.img-$kernel_version*" -exec cat {} \; \ + > ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} done - install --owner $(id -u) --group $(id -g) ${WORKDIR}/initrd.img ${DEPLOYDIR}/${INITRD_DEPLOY_FILE} else echo "no kernel in this rootfs, do not generate initrd" fi From patchwork Thu Feb 26 16:28: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: 4918 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:13 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qv1-f55.google.com (mail-qv1-f55.google.com [209.85.219.55]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTCY6009587 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:12 +0100 Received: by mail-qv1-f55.google.com with SMTP id 6a1803df08f44-899c5fd4878sf101540746d6.3 for ; Thu, 26 Feb 2026 08:29:12 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=Jd+qNOoMRlJNR4Y58WWtm5Q3P0dbB058WXrkxkD0ZlCWlfPskBdxBloSK/+iVIw7Oh k+uccKhgzv8eedxSZfz9G+UO4dm7VnU+SOe1rDDaprJADsBXI7DNvSy3vDbsfqFt8z6x fTnMvvp3ebsylKOrup7loghjTWSdqYLd/DOSRwNzS1xCZMMs/oshBzgnZXT+le6vfKi+ BTHpwULD4zEMG2x9c8pI8SI4gvfCl4ZVcAEa+OZWSvXd9JiVsS9oPLTYI7TnCU3NPZsK GGlY/GErSTPsxj8iLXekxEnMZ44njxS8Pa6Bax6miHzfHtccMXVvHhXh4JvTmSPsBIbd BROA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=1hdbWFDtnuAu9XYi8pQfi51BJB+U52Be99iSgPwIrCs=; fh=f/LCs3Edzzb9dNgCgiKM7+2CNErjZBJuSuRCGtv//AE=; b=ExaC45HqcRP2lyoEFDXxROa0WPZlhDhJ8E068Eua+Jx2CxeQRcCNazuJwWodX43Q+k neVF/lOpmqbA82pnEtCG8ftGm2DKnmqFI8w3pGmM3vzceaDWb9yKMmweDcleKZbWa/v4 3oBqkzwrv+Lx6Hzl33GxrONZnPURoRNUU50MWCEijJJUxpNDtTB5dL1tmjSigDIjzFCc GaujPaoigeZXhwiuKMiIo9XcRmAzD+tX38RiFBeKWTu7UxQfMLKMwCgfShVqsOZ87htY VBmREPhaX8j8p7DtnsZGmyy31VMjK79SLlUYa1zAUeGFwwZsgTkHiYPuTksodAqGg6rM 43IA==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=bR7KJMGW; 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=20230601; t=1772123346; x=1772728146; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=1hdbWFDtnuAu9XYi8pQfi51BJB+U52Be99iSgPwIrCs=; b=aJkmELmTjoe+mjFwieKKxToFzlnJ6lsaK2M8qUKboR3K93t8PDSN49o72Q6TL7gggk Cct3pU0X5DHPlIqKD6B1cZoxeUtqx9AnZ5Qk3aTyw6yTDaIOjIZRcZ+oA5o5D9szx8Pe PtVZLLZwcPy7N2ZU+YIlU8YjWa+BDwJnv3oKH0fov89DJVifLBuwUVv4GUcmDb+Q3nLN gr9FoRrB5IlUVmWgenCGTTqqLSHf7cZUTF/fGyRst2pIkpMaqHr5aDROe6wtBIAaAHBg EoSUHEjXveIH0UJWZzYuGImON7wQJ+OnqxQeglZlBcDDynTWLDXK1ZP5oBhE9dDqZWkW XxiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123346; x=1772728146; 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 :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; bh=1hdbWFDtnuAu9XYi8pQfi51BJB+U52Be99iSgPwIrCs=; b=ChSdq3rnQZWenpoRdr2Nt/pDlcMiaPMS/CmnJlBwH7w6KgNV7ZL4Kx8jffv5JsGwR4 6TqRTI46HUakS03foJwqArD7ag/rZwW/yCKj1x40w+h0b0KaMMFhbikXNU72P0xp+88O TwBvSiZWxEghJiLRkQf8ELaQRWxosPEid7ybzZU4yp5iajwDJXex+nsnNPas3XpJQA8s 7rb74buZZTrSR8bxB9ciprbkU8C+j6fvfgEkFRdrN/d14lH28XESR3+x/UYo7QHh2vlH ia+32kAu0yeBHuHkM+9kOfHPMgSoSlkJVP4+XRbnxN3eHVMcDml7fhP4fgT0Nqybi3f6 pMZg== X-Forwarded-Encrypted: i=3; AJvYcCUJGxZicYciBTXZZB7QGL7+7q1K06xxXEG0tlzal06ixtf9ysXq9w+0tr1J/FatjMA8ucdP0jc=@isar-build.org X-Gm-Message-State: AOJu0YwlEwINHxBpnfO2DoZv0j2hbBIzFDpn3OmNqnXHNY/UWx6QdA7u 0pKbpoA4uHwUXjJJOJgJpeCleI3NnoTUre438JUe/maHOzYy+XJGdmBb X-Received: by 2002:a05:620a:4543:b0:8c5:2ce6:dc2 with SMTP id af79cd13be357-8cbbcf30709mr581863385a.17.1772123346300; Thu, 26 Feb 2026 08:29:06 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+F99c5Gb3vIdSO1Z5WyL0Kvm1l5HwbMfJ/YwXj3i3bXBA==" Received: by 2002:ad4:5d6b:0:b0:88f:ca81:d5ee with SMTP id 6a1803df08f44-899ba0c6eedls46129346d6.2.-pod-prod-05-us; Thu, 26 Feb 2026 08:29:05 -0800 (PST) X-Received: by 2002:a05:620a:4087:b0:8ca:90de:43f5 with SMTP id af79cd13be357-8cbbd0355femr623167385a.63.1772123345025; Thu, 26 Feb 2026 08:29:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123345; cv=pass; d=google.com; s=arc-20240605; b=XlEdEW1sQ4BZXUEefMVkdByRaHj2WqSlJ01fZW2JfiP/wBEaUpovYLkw4iIUZbYfvk sJ2sVC2gXy9ML8+qA8E9MSPNglT+CxqOQ4Ja8wol69BEM8IfBlJU5wiy6Pne3xu/NzWF Bd/pwlBIWUFONnDlaTCEoM+fM+4jgkyp7BXn25+d2Ng0VR6WEMEeOLym5SQLG98tb6Qx r8jmpdpglDUGxgeB91dHm2Bp5bFrBclHR/LEB+8mUHs+woeCdOp5TF9X0ly6u/aPZKxe /ST2uRHlTzIpNyY9klNH3XzuCdCMS/H080/8WOIkEeEPagBUbjjfUUl9gMFrt/Jpu6io R3YQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=gR+dArd9YD/TQEe5YzSAF7lH3fOXbPslmV7rfuL7boY=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=jBJjFyIc9aqnoAklz+H7Ua4zRb72g6R3gQgdCuB0hDONB+RboEL9/MOBdSTbAWmfRx JB8t+GWNcnqJcinGEpO4PO1TkN07SSfUn6wP9BzRJt0vn5yA+4AUZCA6s4gUPt5ZaL2e IsSO/dtLFMexYjDQ3WptunI1rHB9QcdRh0mkWfHdTN0BCm7cT0VSkgg9dvoAvQsTH0xs FUfwkhmfLeEGsly/Zk+jgjGA8AuxpQcjTJYHiKBhX9dF1i/dbWXNURvazUFJFxBsY3ca nhG0n93XQOrpaYt1VUnCgNAGn9+SNkCMiaIgdbqgskiEploeeg0iNykWdDbfS7oQmfWR gJEA==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=bR7KJMGW; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:04 -0800 (PST) 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=N1fUGjh2yE8fH0X2TjEa/4Vwe/TKfyV4W2Vbzl9ap55BP8ekUq9zCmiSHhaxVU3XVFOLic7ylqRBXYB5MoGByHbDqMkEfIc7dh6yMWUsFaOgqlhVsyE/lBjm73jV+5ncE/VCI5+xmpDA+KxGbzpuQ2c6NeV47OYOYxkXyNNHty2/6Gj1RpZ19V8ss+GXtcqWqleGqbB/zthIEupkQiNoRfaHTaHyLprTuUzxoVIpFPG/eUkgpIRMorZZjubyOlgh9ZTxuk/yaI6U+8x8uXKBo0LTDfjn8WOzQiku6Ix60/fEKD+HcfCvW4MYaCmmkB5eNVZDW9j1GhiMPYUU4IeC5g== 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=gR+dArd9YD/TQEe5YzSAF7lH3fOXbPslmV7rfuL7boY=; b=twzbuf5MROK2nEzMDM7hfmMaTfapfaYFgKlsTjl5XUtAb7ChQ9b+jGVRB0U8IvWWKC0RKUBfp8F3oWoqEOqcXDX22jT1oyiqGuBZj62w3XaBv2nMWP1bT+5bFKMmvk5I/OaikZHqUUmuqFPKP0jHwnnTrXA4LelwpOReF+u70/amKuJSKGmoY4lHIkzsItmtchAc0cdc6nJ8Vm8eshMPhetYiAlbFR8HSX3lGDhfI/7mjt3Lq4z0gvy0tw7O7hXi+q1dT8P1I4OOEw32XdrnzjuiNL28v516G2+KEvNgH5SO24PRZKA/cgL0fVtKG0uxztSGumYMBnUqaoDaq50CiQ== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:01 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:01 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 08/15] use bitbake function to generate mounting scripts Date: Thu, 26 Feb 2026 17:28:33 +0100 Message-ID: <20260226162843.1642329-9-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: aa52c456-fca2-4a5e-a4de-08de755425eb X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: od81nZzLN+CBgthTi9UCA7QYvT6M/T+XKtXtVqemUJTWds3N6J/IOxG+azk+QDYRZXo18Bct0fljvq8MmLt1Cfn8eydYfqFgp+n/qEX8bwStd/S3HDajoiYHM518X3RCiWBCOE3aP8CHhtoW+FSyvP8Acv+D+fipRe4ITNOcj8FMBQUziHHbl4BbpRs8KPtfhEI+01nZ/qDKrIx/cwH6JFRFBsuymCC8vl3WIDKa9Rw3pdVVTc7ht2Cz2/esyCmilhEBkzzV+Kr2V3dSQkCb/jl+gYlWyxkhGxlCkcxH2CqNXPd6DXPaQ1l9Xpl1dvQTQYV/rIOGNypj8QnptLsxHROTy0RA8u5gKAuWrGkCHr+v54lnKAOsIpEK7QNeDvj6ukwf3gwrmZMvifyLjIrJow4Or6K5eSr5vx9HrPev4RjE/KAgZuKc07WMhz7Plr9rZCklof5LAKHJnNYZEwlO67cJLc6Kj4HD2H8e4S/GVxtCFU8gd5zYao+IZA6aBgMv5j0iymkEa0F7U5sjTbOkaWBdhpL/PG715SjlxKGPzKQTqdWBkSRX3SPix31st9cq0llOKaRwflDy4TM8D50eKySScaEkJuP3QXY1rRRQ2+iyTvuvRpN1Nz9C9KIwLh3Hdt6tDqHLucQNdb24mwQyhnOdlMj7nsoVQYJkS7xdyRMmL9LbQg1TBcSL28O51UMImn8Q6pfuMczWzNsvNa0ZaTF7OWzYxKToXy6ccJyZYaE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: a4/ZUuXj/SGsAirSRYd0LA58k2YvAKOQccJyP8ya3F4w5vF1oGNAgdNb4saepreswwJ8M6zfSxfs0pGFh3obnqxUSeI3Tek2YssW1kG702TUobF85cv5EK5eG+1c0c0WFN+XFPsXNlHp2OtthklUnCmhg8mN3F5WCjWe2PADO9K2ZbI3qq/rPwCM79UOZHaHVtKHiwd5gPUnt7yAJftd3ZhtXna4pHW9QHMsz3aG0IYjryL3R4VzHly7tFv8T5W3FnO9mIsaHVJldBzU24F0Bjj8Ho357WMq2/zoiDJM7QdWkBhn/X+obyWzINLON7mngWoHET8U6RU+U41EZZrvOpRq3ZeaaU/ve0HIttXcgPHcStyFEG1NmBYxKZChxMz/IrxiynSd8wiVrM9rinCCJlH8+882mp0TQVte++DYAMZWn/Cqjuc9OfoTtpMysvupj6P80cKOHC26w9HlQz43as6lX4lk2wIxwNG365k3nG68nw1X/vcsfqJKVhB7RuzaU3FsMFv8AhFt7CY0PkBbpHyV4N/iNKisDA8QiwtwUZCLLFjbm1yMSMH1QVgIwF4C9xaVb6FcKHWUaDPxJAi3Z5rOsvJ5Rkk31QVC3c/6dm4HbFImbeClkC/FXk/bR9gfzxMkqVib2YBs94xw1of8igRFo/2MEv6JfuzMCckYvprYmK/EmOzPlXBGSXo0nN4LtVUkkFA5am6XCF4iM+CqVYl13K6uKn+ETwhX3iNeXv0ZDOWbBgJ5eDJE27Ehh+oiY8tNXRtO6RF8deopCEg0C8ajDW+H7Tw6t6mUdJfEnfqsJCydGDAoiAb+nGNb4kUUMTkLK4MjKmUED7siMIOWnsZPJcu1S1Q02lGy2I9MkZvYr85As+3zMJIkSEFzWVaB60xW2QmJaBdO4/Dy5ivlfADbwolqQIQbPQGspkfZPT6F+1noi+cCCjuJ2SOGERKS30GGmbPR21FJvQXVR1VC03h04s+Xi6M50VjJpLSoyhy0F7vaFOFRIBXLecC/OA9JZu8vWh6rBF8AEWXIW47CqGl40Nnzi/yQQiPgFcffbhDnRrEn1U72R9yde6TMxrtfUHAaAcojuEWtVQtANWh4WRL/3FEwnT19BGpyamRyI66kLEwafkGJ+MXEvR5GhYSVSdBl4d8WrzTDmGLkuYRe1ZB/TifrUgHQvxZYHwrrBv3n/G7WXqXeSxxf6CrSbU2793gPOuc4ZvdiU+AvnkCS/7Pv/7N76l5GUJTBvbowZeiNCydKB2cdLagydo1O31mw6yzUWPtDfJ1rsD2tKfU4k34b27ZNof+N5K27yW2Kqh2bbvKfRJsG6YlbnaiHHicwWH6Rq5aqoD1ov3fxRpZu3xp1RjCZu+TVe+SIFE8F8h7FrBfMfkraBL11cQG5ZHeMZUkYbHkU7VofRQoHPj5rPsPYMeAD7MyH60elNWvg9thzIqaJd5ShaoxDxMQ0zuB75y3q7ePny9dYBhsu/0tyEWrDgf4UXzn5yJIMmPeu7Ha15LQBGu7YeJKzs1VWowfqxj3LnaaONk8fPdKj0o1EnY5OtS9PgGecePb8cAjtZZ+tqjrjyDQJ+to6JT5BBsLIZwyZrwD6sucmZu7AbEj5+Zb62rWsLaX2Ryl6C5WV/7mGiipfnzHlolijWoJddIw+GjjE4yzT3UfGl72RdXdhv3vUSr23BG27BSrqF8qr7U6AU255A1DoYkHwETxhDtT3H/vXWCo0KjUb5zob0IR4KxTMQgL3UDRj0l1eHpjL1hqMUpQ0RRkfAJ2TbnGkmj7KyNkoVYco X-MS-Exchange-AntiSpam-MessageData-1: tmig8apGGy6RY9bcIn6QUX2fE8NN9y3LxTw= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa52c456-fca2-4a5e-a4de-08de755425eb X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:00.9746 (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: KGuCI7BhDkUNyoQB96Nu1HM8DJeTZTrdt/h3GIvUCTEp3Qpsd+0boq1yDywD8EkKpuFgGEtta8dBA9HQ3wyrjOCjlp8RRCKo4yh2bMElmYs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=bR7KJMGW; 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_H2,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?= By introducing a bitbake python function (a code generator) to generate the mount shell code, we make it reusable within here documents where external shell functions cannot be called. Signed-off-by: Felix Moessbauer --- meta/classes-global/base.bbclass | 18 +++++++++++ meta/classes-recipe/rootfs.bbclass | 49 ++++++++---------------------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index 9a00fb83..5f82b241 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -379,6 +379,24 @@ def deb_list_beautify(d, varname): # Helpers for privileged execution. Only the non-underscore functions # shall be used outside of this class. +def insert_isar_mounts(d, rootfs, mounts): + lines = [] + for m in mounts.split(): + host, inner = m.split(':') if ':' in m else (m, m) + inner_full = os.path.join(rootfs, inner[1:]) + lines.append('mkdir -p {}'.format(inner_full)) + lines.append('mount -o bind,private {} {}'.format(host, inner_full)) + return '\n'.join(lines) + +def insert_isar_umounts(d, rootfs, mounts): + lines = [] + for m in mounts.split(): + host, inner = m.split(':') if ':' in m else (m, m) + mp = '{}/{}'.format(rootfs, inner) + lines.append('mountpoint -q {} && umount {}'.format(mp, mp)) + lines.append('[ -d {} ] && rmdir --ignore-fail-on-non-empty {}'.format(mp, mp)) + return '\n'.join(lines) + def run_privileged_cmd(d): cmd = 'sudo -E' bb.debug(1, "privileged cmd: %s" % cmd) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index c74f4b8c..6823c610 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -49,6 +49,16 @@ ROOTFS_PACKAGE_SUFFIX ?= "${PN}-${DISTRO}-${DISTRO_ARCH}" # path to deploy stubbed versions of initrd update scripts during do_rootfs_install ROOTFS_STUBS_DIR = "/usr/local/isar-sbin" +# list of : or mount entries +ROOTFS_MOUNTS ??= "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt ${WORKDIR}:/isar-work" + +python () { + mounts = d.getVar('ROOTFS_MOUNTS', False) + if d.getVar('ISAR_USE_CACHED_BASE_REPO') and not '/base-apt' in mounts: + base_apt = '{}/base-apt:/base-apt'.format(d.getVar('REPO_BASE_DIR')) + mounts.append(' {}'.format(base_apt)) +} + # helper to compute the rootfs distro also under cross building def get_rootfs_distro(d): host_arch = d.getVar('HOST_ARCH') @@ -154,50 +164,15 @@ rootfs_do_mounts() { mount -t tmpfs -o size=1m,nosuid,nodev none '${ROOTFSDIR}/sys/firmware' fi - # Mount isar-apt if the directory does not exist or if it is empty - # This prevents overwriting something that was copied there - if [ ! -e '${ROOTFSDIR}/isar-apt' ] || \ - [ "$(find '${ROOTFSDIR}/isar-apt' -maxdepth 1 -mindepth 1 | wc -l)" = "0" ] - then - mkdir -p '${ROOTFSDIR}/isar-apt' - mountpoint -q '${ROOTFSDIR}/isar-apt' || \ - mount -o bind,private '${REPO_ISAR_DIR}/${DISTRO}' '${ROOTFSDIR}/isar-apt' - fi - - if [ ! -e '$ROOTFSDIR'/isar-work ]; then - mkdir -p '${ROOTFSDIR}/isar-work' - mountpoint -q '${ROOTFSDIR}/isar-work' || \ - mount -o bind,private '${WORKDIR}' '${ROOTFSDIR}/isar-work' - fi - - # Mount base-apt if 'ISAR_USE_CACHED_BASE_REPO' is set - if [ "${@repr(bb.utils.to_boolean(d.getVar('ISAR_USE_CACHED_BASE_REPO')))}" = 'True' ] - then - mkdir -p '${ROOTFSDIR}/base-apt' - mountpoint -q '${ROOTFSDIR}/base-apt' || \ - mount -o bind,private '${REPO_BASE_DIR}' '${ROOTFSDIR}/base-apt' - fi - + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS'))} EOSUDO } rootfs_do_umounts() { run_privileged_heredoc <<'EOSUDO' set -e - if mountpoint -q '${ROOTFSDIR}/isar-apt'; then - umount '${ROOTFSDIR}/isar-apt' - rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/isar-apt - fi - if mountpoint -q '${ROOTFSDIR}/base-apt'; then - umount '${ROOTFSDIR}/base-apt' - rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/base-apt - fi - - if mountpoint -q '${ROOTFSDIR}/isar-work'; then - umount '${ROOTFSDIR}/isar-work' - rmdir --ignore-fail-on-non-empty ${ROOTFSDIR}/isar-work - fi + ${@insert_isar_umounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS'))} if mountpoint -q '${ROOTFSDIR}/dev/pts'; then umount '${ROOTFSDIR}/dev/pts' From patchwork Thu Feb 26 16:28: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: 4919 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:14 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f184.google.com (mail-qt1-f184.google.com [209.85.160.184]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTCWI009636 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:13 +0100 Received: by mail-qt1-f184.google.com with SMTP id d75a77b69052e-506ab115571sf46805031cf.0 for ; Thu, 26 Feb 2026 08:29:13 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=KUu8DW4xDqV5xwwuWZOrH84sjAR38I6h0UYgyh/04S04Tn+2c5JdpQ8j45piAKJNZn UAc1Py8ipRWZuS54QEZPiOdBAO2YX305oBCbifiUvUhQFuYaDxpvxwChj26UeMJUnpMN ih3PbDC1yJIyteDH1pyqjhC9vOb3cVRStV+/rNUUZIwBwRJT20/k8fdF3GkajWBSmiQE mIImGzSbNR7nnAFZQVtfuRlfhUpxfBjlqs4LQcKEJJHaMSWX8mg3xIw6L+4lf6hs4Mcz 5B8abV9lWmV2tEz54DwgG3bNZusRCu8ajhKJVXz+Nazx2GxZkGTad6yBoYjfYLMNNWRR dYvg== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=iYM2hXJE950v3YcCv90xBMiZjTMgX9JOcdUYxfRXnh4=; fh=X228LGUn/6+LVSxkC8CBHRH94ee3FKV/TjrAYPPcYWk=; b=NUPeeW7pacTICuEx5Kyo0zI6s7TLWY/kTCmdlzGYsOxovLxG6JDRI3AkqSb86ZZ/C8 XY4I7zl3BsoKyd4NdTP2wcODCmMRNWynstwXAGHbCbDKsZ1RTN5bKn02v10TqszXRwJT ge+jPOGXXcF7r1mj4UBs325TaMquLItPVd7EhKe5z+5wpbTdiS+RjNtrV1QqZaV7dLiK H5E8W/xCnLJo1DHiq+jFU7azJSs45M3OiuOfi59UPcO1xJ1SMgLKzYOC3+0QeGv8EMHS 3Uo0qsunfb8XqpFeuSADxHiXYw9nx1WHRZZbn2JFf4IeXa1yey5g21ZgVrYXwoBD/S7K esGA==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=A05bc8tW; 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=20230601; t=1772123347; x=1772728147; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=iYM2hXJE950v3YcCv90xBMiZjTMgX9JOcdUYxfRXnh4=; b=MhzRyAgUn/dmh3U/16H61BJN/lPrADdOiTAvqvdGopuiRVNvLNljmamUg6OWGJ2hig 2oR83WmWmAOYZ2ph3EeXJRVv46w7e8W53Mt/Un7O0fNU5UF4NwNSlkp1lHvdgpZrsORQ cgrHe+o9s4LNO0LKyfqmPJqUg5dTzlnEDqdGaGq2VncVq46c7f9aEGKodAEvLIaBJOhn DNkls1de1iaXwoEzAMnURWlpbIpufp7SmL+lyz3nv8/7ckp6BsYMNYJGfkTNXpxhSpMK 6psQPPZ2eqKoO9z+GUDICuWMnPQDLx7RaH4pIMYkYNYt2S/Vqdyghxmbxy4IC/TEt07S 2w8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123347; x=1772728147; 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 :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; bh=iYM2hXJE950v3YcCv90xBMiZjTMgX9JOcdUYxfRXnh4=; b=DoZbZUNFWnA+j1f0VPfg6PutZWt2+rz+ZLfiGvB+lrp48uzlRH+1eSslnRVGEXMYUV wy4+ub02J1xxawQq0uyDD/nNkvAQUo6ZT5GbwkuGM4E0YgqSo6Lf+PJlzZTPQcYBC+6O 6/jRn3xHuWNLx99G8NyzBlR9xDBHbQieFlWZasHV5cUwcMtOQyZgvMAv89Dw7t6k56Fb EQTAa1/oYU8OwfV0GK/WO4ORG7LwC0BS4MxUY6fywdLf1ae8W4+1NojlqzS106jfV0nr a5+7AVDtIY7xaaBd5k3ZCw0YA/3tWhEcOy7vUG5SnNZmYif7EQlZZEWogYA7HZr5swm3 8wag== X-Forwarded-Encrypted: i=3; AJvYcCXXUYEgWJT+M0u7wElhtE+94E3pfOOGOX629NvnVQNyl6SkfgvE1H0MshyFtGCc8kBDZnFTytE=@isar-build.org X-Gm-Message-State: AOJu0Yy/hQ6pQK/CXYeagqGTRbBHSjDQjtZUe5bxy/aUspW8ecTL8TeF DsfPkjPerTrj2FpUkZkk0xZ/kJhYn/rFcO9HKVl/ezi3Hvkli6RfiAXm X-Received: by 2002:a05:622a:1449:b0:4ee:45e1:24e3 with SMTP id d75a77b69052e-5070bcd95f0mr251052711cf.67.1772123346502; Thu, 26 Feb 2026 08:29:06 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EvlsBq1RTpMImjP0O7LdESyl8sRhmC5IctHV/wTfpHiA==" Received: by 2002:a05:622a:1441:b0:4ed:e411:4bf5 with SMTP id d75a77b69052e-5073c10adc0ls37592571cf.1.-pod-prod-01-us; Thu, 26 Feb 2026 08:29:05 -0800 (PST) X-Received: by 2002:a05:622a:156:b0:4f1:df6f:6399 with SMTP id d75a77b69052e-5070bba2526mr277346191cf.14.1772123345530; Thu, 26 Feb 2026 08:29:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123345; cv=pass; d=google.com; s=arc-20240605; b=lainSE6iMgv8ag9A9dpd3TyA4OpeVS/Ylto8N6lluzOLZ3PKQ9a9S6YFNeA2dXdi7t SdVVd56cmykuD11SyAXjiDiiWoP6Yp7ZiI0m2AaSIgUyvEGhQOKvfR5uLqScu3gwgte4 IusWd+RZUNemwqOEWPJ0LUjeRwd1QrEVGpotxrCEGrHGBXKYJ65Yh/zHAA0jPH+kaYnV RRt/U4gXAswnmMeXpEo7x8FiSC1mbOvF2SyVA8d6SSpIXTZpnuLigTuFImM0Hqavn1nP XeaKFq7XhguV2KqpU56t2KTzsXkySa/u96xKHhEngQLo5EMROFFm6Vi3SwGbNecaS9pa P3jg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=vHMcnRJGMRM69n+6ju9bR3UXoRqTbwq3xNs7orrU1Gs=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=dzh5fFeG5fjxuKNgNmZS0WGu3Oq94bFiq/fBePSNzvPKBrPewIMoudmsOHDv1sjU0O ZCE2BZxTEs9tFdTrOjKlKppWaksu9J4ghdvn2JVGbSZoTwIjvQfykxtczxEzi7SHz6R2 qel1ubG8a0aM5g179BzH7ndTbV9wRrBulb7HBbNINifApVJdweywWiJcwyvEdc2kR2HH oDXdNV//PQv0EFopGCk7eZlj5iVNSRkkJYOb76frwaQE8ddDkwwkZfxHT+d6WWW1dvHu 0VW+QJlwlf2LuEZ5kzWq/Js1let/Cmp/RF9GozdPqIX7cEpnhX0c8X2QLXOXhWrmmxMG q2nQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=A05bc8tW; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:05 -0800 (PST) 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=daFZcRm0Wef6+fPlqKrbpc1t05Em4fcLA9iUSrFykdzBa7DrXjrIENLrgcAtLMj5eD9Jp0Wa9GIB1oUWgwFfEhvE4e5EyU21IM8XPlCPc71prpGlTn+biGOPXWOTZXr23uXE8Imn1quPUUo+yBTvuF50P7bNJ8A7ogN2UvznZ3tGQkbcURjudvqAsJf38EAMKKJ8yUdX81ffXEdvUjYeiRNsFsH8atPJ6rGEF5/yJDpwcrTUiCj27jefOkIblDTLZmawgw/Qa8vTM5uYtvctVwEKunvovGI0+QFtGjVfk7SxHK3e6ZYM4MGM7ikLLmVa1IsLr1tEy6wa7rPZNU092w== 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=vHMcnRJGMRM69n+6ju9bR3UXoRqTbwq3xNs7orrU1Gs=; b=CX05Jvv8Tgva7I0AGnTpkz3KxCioKpfuIxoW6ySQgM4akc88alrn32YL2OS0ympFee6esZdNVNuStwQnrD8Gg6dCr1CJEFIIMZL49ROc9zALQpw/VUcAqk5GLMbUEVvAu3Srs6dTRMSvOpZvIhJKGSJ8T8Hpu1VlIAvAiUyza2O+yXhjqAAGiLf6/O9T/M+uicvKntZGzG+9tiSqev7Kb5M1zPAElxSCkf58WN+/DP3TOmWKuXOb0F5NEb4HYrkaUTd6BpaWs3IL6pZj5vjyX2Dyhjz5Jyat8HUa86UN3Bv9D3ST3DJkOstnBKaJUwlhqZw27Wg8873bzFnBGszb+w== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:03 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:01 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 09/15] apt-fetcher: prepare for chroot specific fetching Date: Thu, 26 Feb 2026 17:28:34 +0100 Message-ID: <20260226162843.1642329-10-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f153a80-9b94-4c6e-55b8-08de75542674 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: IC16n+xGbyYgAwFo9toUMW0o6e7M+TSKJeivC2kK3S1fOXO8zkIsCVOS5Ajv6WHdA/39ULmTqhXahftSW2P2fCDDJB+8ztbcBQ7CUqubcM86vFUNU1KQ70pexPkTRgKVbiM6tEYbv1O8chDeClPIPfj3uGoEYrTAppzzHrrpbUMeNHDgdhCcJB4ZuTQoZ1K+k0yucKKyDGla7bQOpLRX6vULB7+VMylOBGBCVB82EO1gxeBP31JDpozVob75gwxXB19dB+EMOqkROTqB/CW7e+sOYSDra0ZBKx5eXcLgWfjeiop5LW4+0z1h8FlExcW9mxAbeOBjtL5UkBBcUGxf7a7uAEUY9QLYG0kzexe8C4PbHZ3vq1ZBdzn1Ovq3zHTseUIXYVViF2MJlLf0H9ohfdU41QloE13Q0Y6Udhe3pbAPwnTHe5f3xyyTINv9nzTN0BLgESGLE1Tn1hZXVSg6SbDdrrDlpW3eP+YIQ813r4Ve4nez0Se1mJDKw5TP4VEGSG1KrF220M/cXXpr3oCCZw96gxRtNGqp2j5C5/20XimkdfzDHQpYL7rNr/h9MimR+aqAbhg2zrcI1a+ZOcabEfEV3gwTMonhYgchSPSyNKnmoAEmfK4d58Bar56su1qChYeYbtHdKm4GPGQ4bLzy/q1fTm//BbwtSTv+pqnr8PIi2F8be8dH15a1GTSogbxIav2MGqkVyIWqEiz+vQiykTBlPA9oni6HwLWOl36z4+A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: PVUlnzspf7saMPu1V1AE1U8ayj3eNclxZVYnaFOc0QHpl8/yPYBqKg896YMs1K3g/q+YOGCRb/NG3iNRFEtgHFkcp09vQAy3Y95ReNJ7OHy87JC2zMUN/c4KCSqYqPq6YA4augVWqyiSM3Rp8LItUh7K+0rkTJnQUWVPnxH7ogwJM6xOJ+cmXnIjids4PWO5sMJqsWTbvhrWBM+300dwP/GhmsN/QvqFykyYCJ9bQCKxw1S+Y2k1AMr7Mnh+0owNggDXeEmOX2xM6d7pK7pc1ktEKtiYJ+o0VHt/t7tHBVBY5nw0mXPUyUMCaOlLdo5Bw31J7SMPjj+WTpt6egYZWtXem1AC5iB0KrmRXud/1GADM9dD21m095R1i6yYazlis2fW/3aFjI9Terc+bQ2oyTmNuLn9IkraGA3ILFohSrISNzscUl4MUx/JUMh1GOp2vCy8Z+8sgmlHxhNCTUFxnnWwlKfjNUksdNVvU3uKPs+hJeAlaNycDxtpZsgaTs7NyKNqb6VNdlV9BWw+MQ512wtFKDGOaRzimB2T7sFrCMsnYJFOgJnrcA+qAkEZOHxcwgnqWSvatkjnOKRkZl8L3G5HfTzOrFv5BSvZoXWrttsVCLxtJA/JOKNBlDfpLxUO6huX0CPXPejtt/oOrnYN8SVxlGULkrr2+SeB5O4pJDOEO8slOtIg8lsRQmI3uFjMFnuEN9OJhzZl6QRbJmLyfS+LY31vj/b2EpP07LvKtM4WcCT9G8muQ80nMb/HfyW4udSvqJ8EQp9z/gdvZgQfWteMg1C5DiPNQKVl/DG1Qy3cP4RYyxDRMSo5oa+k6erfQGhq9mzsCR0SoYeJQQnsdAR7AaGKQ+h9SfUoduca0a8k5gan3EqTmy/mcj7i09hnDkxRMYJS1LSdZvzpGgcqFVNreFg/h5HUyDLUQkyCd9zqiO0t1WE/aAHx5S5IIVCzVTr327LfPLTc3pnr4HE07EIOWAZHk/NuKBz1jCQkhHcvQuqgFhOArx8ov5xToO82O9Q5BnIYIj6d4SyvmQj5Orfq6L+kCbWQS2lAKODA6bv6XerhkeNpWKRuibMlhIYEC3G/deJ4b++YNuItuGZ2XWLngtwELt0HCGcJ18gqUT3OGiPXB61PIkbP0VB2Cxy8NvRo3I8hgkMlH8ly4pQH8g1vPm/oHzXp3BAJkYTo9L9Crli37u6iJeDyos+gTa58Pf2KlqLngXYNkUnj3bOR853Ku0boGGt13NyXZjURtLITVDBvcuRLN0ljWdnA+S++Vum5z/M4Pe1WtU0fotCClfkTsuo2JCMjBEkn5BCWjp6+BkjPuJLtWpvN/+dJihJJEmKDxNVsc8KfsvCVXknccMFWF0EYaaRGcMOLg5GLf7jxiwf7n+9jiefEIGr2co/2FCnHJykLKqcqOHdyFk8JhpS+CjF45RPueFVpIyjKBLjPhce9qQdkW8cocCeRj3LDXtikcfSJiyGjQuj9wxYrcukkU6ABSvCOB8iGOkG4A8ns+fN5kbXx4kykzbvaBOiTQk0yvYHGCRCuBYYhrpQPag/klGpPLc0Py0xuQcFiKx4zTu5uIURR4RsJYbNHnC+DNBWBlrXYo9DUA0vVUuSMA3zshL0q63fxgYdNTKAMMoWjkdp5xRJUeTXMQylvpOP8mk+bP8ph8X0SYJTaVLhsMt3Ap9k0D91bZPPu7CKxJRnoesWRT2Ti8TTftv1xTNenpBNmKWjvSDmpJ0OZ6hFa/spZ125gUTU+Bf2tgX5XJVNrhaXgAVPPw0flYmeDTMOlj7ycxCUq X-MS-Exchange-AntiSpam-MessageData-1: NClII0DGgXwTmxo3VjUC/pPqPokkb5WGnxg= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f153a80-9b94-4c6e-55b8-08de75542674 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:01.8680 (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: V73QtnZ6pSqYGDcizsnYGMWTtleQPjr1nd0sFz+mP3L+1RJ5k0raGJemb57ATWxawAY1fUj+dunOPN07ssPz+zLWnm7DWpPXU9QHxaRs0Jc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=A05bc8tW; 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The implementation of the fetching depends on the chroot mode (e.g. schroot or unshare). As a preparation for the unshare mode, we hide the concrete fetcher implementation behind a factory, so that we will be able to dispatch based on the mode. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/dpkg-base.bbclass | 2 +- meta/lib/aptsrc_fetcher.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index 03317ef2..b3f4caad 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -84,7 +84,7 @@ python() { # apt-src fetcher import aptsrc_fetcher - methods.append(aptsrc_fetcher.AptSrc()) + methods.append(aptsrc_fetcher.AptSrc.create(d)) src_uri = (d.getVar('SRC_URI', False) or "").split() for u in src_uri: diff --git a/meta/lib/aptsrc_fetcher.py b/meta/lib/aptsrc_fetcher.py index dfa784a9..37c84fa7 100644 --- a/meta/lib/aptsrc_fetcher.py +++ b/meta/lib/aptsrc_fetcher.py @@ -9,6 +9,10 @@ from bb.fetch2 import logger from bb.fetch2 import runfetchcmd class AptSrc(FetchMethod): + @classmethod + def create(cls, d): + return AptSrcSchroot() + def supports(self, ud, d): return ud.type in ['apt'] @@ -20,6 +24,11 @@ class AptSrc(FetchMethod): codename = d.getVar('BASE_DISTRO_CODENAME') ud.localfile='deb-src/' + base_distro + '-' + codename + '/' + ud.host + def clean(self, ud, d): + bb.utils.remove(ud.localpath, recurse=True) + + +class AptSrcSchroot(AptSrc): def download(self, ud, d): bb.utils.exec_flat_python_func('isar_export_proxies', d) bb.build.exec_func('schroot_create_configs', d) @@ -83,6 +92,3 @@ class AptSrc(FetchMethod): finally: runfetchcmd(f'schroot -q -f -e -c {session_id}', d) bb.build.exec_func('schroot_delete_configs', d) - - def clean(self, ud, d): - bb.utils.remove(ud.localpath, recurse=True) From patchwork Thu Feb 26 16:28:35 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4922 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:16 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f190.google.com (mail-qt1-f190.google.com [209.85.160.190]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTDQ8009735 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:14 +0100 Received: by mail-qt1-f190.google.com with SMTP id d75a77b69052e-506b839cafasf14776031cf.3 for ; Thu, 26 Feb 2026 08:29:14 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123348; cv=pass; d=google.com; s=arc-20240605; b=NZ69kkRjUX6pTs7j9jdt9ObySDWVVH6Ww94hn5w5/I/9wckt5JLOSRWMmnIjcoQhX3 cStHwThLvsspc58sHFWr6pArWJa6j/JCmQ+PTiIlB+7hItkHekwGTK/HcnBU5QP8DCVI lN4NzSDjoFT4ahrGcRJax0+fmzPRB+DTj1XZCKKz828fRrkSTzzmLdNJf9Yibrp7fRXB mUXjFCR7Jqi1r3NYZP4gjkcKvlgSLszNB1tvnvGw7a64McQ1BpwKHZDFeUVgXrmVKKW0 g4UWtOowLT0WKHbyEStZQ9ECDBdmRFDE+0rG7+givKow21ZUtXgP7TXc9pE9QFyV1jl3 1ENA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=I17hvXNtkiEzOuFw5fGKsYKjYhL+r+WVpTIfieI+W5o=; fh=QoqQdAUdiV7LcPr7DI1rsHnRRdSvMqImjLOXEcG445k=; b=B6PpNnGMSu+otZBS/E8BNoVX2tU4Bm8atKZOp3jdWbgnh7VokneGHZulUncnPCtxht L5rezJLAzI9/+vdLl60BQdI1kUqHS+0CWE2oHn2gzxtODcLrMg0PSCtoiKxENHusxi+e ea4NvNOwOUtFPW6UICQWHh75b5FQl4TSLd5A0A2Of1al2nj4h1RGyzLk9olvgWqNqvYC VaQJF+RDSCE9syXokzuvdkvHV9rZsh8901gUNoJq2J+sGFw67qJ6XXgk1E0I1wYR4LtW MDJs5TnS/hlexRXfUa9Uw7XVhQJ4RkDgeL6IXmkukwxroxoESviVvmc394KutgdV8XgO Bvuw==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=uVBaNWWW; 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=20230601; t=1772123348; x=1772728148; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=I17hvXNtkiEzOuFw5fGKsYKjYhL+r+WVpTIfieI+W5o=; b=h1pdGS8QRVupvvx6vDVZDrband72qDt9eMb0cvgF0ZSAyj7eByfZTT7RyjRGSwLFio ee12t1JLaNi8lcUvpvU0spiHqoo52n3lkIijKUF+qeNJITpOhZwnsc+X9oNybX7ufmmF 1oxICYDtJILLKLpg7BN7wqNeMG7jteJLP8rgjwvPYl3OMOdM9MhhSRWkQgbD6jWq9Jao QKgXJQ9PiuPQ/T+hyrV4HTDQ0Tgi323jFNmqV7ZczZ9D3vcABujnIk4OkJFw5sh7a73E 50zNI3zwut/mEBXtMAT1Y6fiR7xm704IG8tD1N8AXnfnktvzyarlvsFWoS4e6Wi0vwz+ VF9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123348; x=1772728148; 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 :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; bh=I17hvXNtkiEzOuFw5fGKsYKjYhL+r+WVpTIfieI+W5o=; b=OduvkHTar2DLJNtiHj9LRjnP66sgEirR9rfYUk3dIbD8QmI24No3rjVK6sM5V4rOYD VaKAvcHulk9TvTbAl3igxCAWJXbIvvPfTSNl1v4G51tj4uJuT3StVjfNsEihltS4jHc6 L5kBIpwGJTC5QjGelV23FFICLH/ZUqsbEFlQvEriREmNQFQzVYTcMfzlsY5BJBceMzkq i51h5BfJ3Hjs1u3v0K7I2D8nGCyZMh18fma7cO+jsnxgdg5TWbWycZv7uBqXUAgzbnkU CnmLadv/TAltRYSkwuBDtAPjLL/hjSi9X2mup6SZrCJbkvnZv57FqPnrzABY9xGNbuaj m3pw== X-Forwarded-Encrypted: i=3; AJvYcCVLdpjQQ8H3sonHJpDmuT23Nu5nbielW3UXGtr7HiLIiG6L2fCgQ/2LxGtazjKePUIl8RDTxCo=@isar-build.org X-Gm-Message-State: AOJu0YxVwe/e/qkiqgWgH55GwlMvjPiF9gUt9zQ1/Awg8a3J8X7rPxgB z+6oxux11bvgHU5nPeBdKz8Z2RV0NfdoyQBEw/8ZWCAxWtONw4ZZ2my5 X-Received: by 2002:a05:622a:94:b0:501:51fb:622c with SMTP id d75a77b69052e-50745fa0dfcmr29397541cf.37.1772123347650; Thu, 26 Feb 2026 08:29:07 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+Erx24iqkOwl/2iFQWPUshVie5dKvlSQS3VD+SmEKJElg==" Received: by 2002:a05:622a:147:b0:505:e7a5:2c02 with SMTP id d75a77b69052e-5073c129270ls34072001cf.2.-pod-prod-08-us; Thu, 26 Feb 2026 08:29:06 -0800 (PST) X-Received: by 2002:a05:622a:2c7:b0:506:a5f1:e5eb with SMTP id d75a77b69052e-507460dbdd5mr34869961cf.76.1772123346480; Thu, 26 Feb 2026 08:29:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123346; cv=pass; d=google.com; s=arc-20240605; b=eI+fYYG9FuJnZ9XSxzThE9DvNs95xqNffOvxumL+sL8P91AJg/WCA5kpqrB5X7CXxM mWCQCWmZZ85UmybJyPUzGZEG6T9+WnXppOujK9hPv3aB4g2rHNl6RMUlI0dVHKLr1DN4 yDH1xMKtoqBzDKxjKXsOZAkDloP5HrX4ZZbOGB0fYVderjr9KcusUOXWXUouav5JVv5A wMkQzG1/pmQIQUjNvHHxhEkPYrov2CY+L8/jIPbacerKKn4r0By++Ii9Li8+X7F8jApn 7BFa1Hn2EnIgSokTrgb/ReSLhEc4/zDieH9GjUOd7yTiTe4DFoDNEpIQD7JokYUhlrTq ZBOg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=5Vx5NDgZ5rBBfHSMLI+YFcg2nJ06cbiJiex5UAwRm/U=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=bKx8JJazKk6yqrj0KT+64C7UD9+FQxB04UB3kWUinoSRlypZtfVkGvt/fIsYBIrS6a PgDDeTcLGnf0JpIYKs2iAp4W547e9hcYrB3F+zOczyo5SocL8gvfetYhADuWPNHnVRYl iPrZPrVEC8Tky1ohfRC1gyjHYagvwjH9TaR+tPRIe69aDlivG9LZWSzEQMsbePqgLbVP w+bgzoq7+XaYlTYRtGoZaPXLoGUuQZmVZC/2b4heRWxwnr+6+5vyYZpPSxypEeku6Ia9 7zSK6gnLKCUmELT6MhKCx42OxKnwqfxLxLKy0WZjI7eOf8xSra+QKJqNQ0Jj6o9iWBnx KEfw==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=uVBaNWWW; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:06 -0800 (PST) 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=dB7CReJ/5kn7UYuSaQPjyYdxjtB9fG+cyhLMKFouO/LRyoPmzH5eM2hMCKgixZg81DKOSAaUZapaM+nYCfI9APSx6hn2LpSz1KbLGF7Nosct8uK/j1n7rjV7BmZhf92gyjqB7YHO3FjedswewIml0lFHU1bQPYBKUrwz0rvOVSesTgb5WMlwmvPL9aaXieLTz4ybjOAec5DejQdlwE4ykfD08SNi4zwk7Gc31Zjk38UUiqdhGSjGOzVNqHmsQQAUEVLUbMLKU8/HMvkrB+/YGpluo2qmo0YBwjmB+qybk5g3OESlbU0lKk6j/mVFKg+8ZYKab38dQyi1VbfvFySJCg== 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=5Vx5NDgZ5rBBfHSMLI+YFcg2nJ06cbiJiex5UAwRm/U=; b=kW1s0kCqOMFuqfiVIYIO5uCWjxxbkY2RYBHupBwMCV8lZN3BZlhO8cBTx9L3za2ORD4wqi4w5F377IeapMJbwmQGJX6iHz60vU/yyCK/5eWHttzSM5Pdqtkk22LqxuP2SwIHnydyIZBkjHhWM28vEZofV+heniaql6AhgsoteT6sWnGi4rYIr9WAzhOeeisa30R6Ivcrh7iUi/FDZWmbIDkoPQI+8QUQ+gXt/uMJvEg5BYaxdZHlVBYl/rh7o2hDWoUOdT9zeIUTKY50MJiaOvFFh3CqfjhEYfX3CMn0vYRsgOOixO4ElVk/D7UtnYUEqDsmeGoeSAgzact82/xMSA== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:03 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:03 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 10/15] add support for fully rootless builds Date: Thu, 26 Feb 2026 17:28:35 +0100 Message-ID: <20260226162843.1642329-11-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: e8597f4e-4337-42df-3340-08de755426ed X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: enfbKdQVqnj3mfbX9xHDgKD+PLq3+m6eN2YIQ41qRkA985fuXTX4Y32u1NqYiGq7eR1ydkkBZDIcyvt/KNRZKE4Tf1EU5qcQRbr8w25UFWRYaageEqyS6hm8Yxoppww5V3ZUSuzbAV9iv4PtrVIXsFEkq00gPsjoa7R2STrvUpH3xZfT/ZWddWKJ6exrIiwXR04cfifcFui5hSiGRgEuTZj49rMHXF4GZuAKkuLlpxSOpPf6xtsZd0H70N/pDpBwhkukY9bunO4zZzamo+HM7iBKTeFLDIB2b1C87XpvxkfwXmXPdx8w6Q25LbNKr/ja0Zb0W8oipvo76Wn9k++xibtLqeOWkTHdEhxrbNAabXtT0n9Y+X/nnl9D4mowdaWzJl7mJP3C2q0SQES31CRssJkiTANSjx78ctjsa8E20MB9VU1OLf+7QHde3bY56/Fj8fJ6ntiAk/kU2bOor3JoXUcqA3K1Ec3P0ywpeCfaIKXpntRyOCOXQ4EdqeVE384/u7VflYVXbxqLUkGnBqJs42g06ydIAPV/XyKI/hZ53hT5FhXwbhW3hpAb0Q1HZ2bQgah2FoePWSEcrO9mQB90ODXTtzT8SaSJ5EF/5T/MqV0UW6izLVQn02hWZS8S6LnkYrwoCqWH68t6tAX5y0wLEwI6srErCvm2j5FOAki7sHSGZVi3deOMB/ea70FiEDXm X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: AzBXZOSecxFMwxWTHZw5cISFKYP6iz72gAxepfrykbd6s00hlOPv4fUbjc7SYlpfuQ7ZJAS8t94mTxsXncl41uv1p6MSyN4q0nOK5mHR/irMnT/3HQcZOrnCOck8BGuKiqFcQdPrhhz/kZpg2naXvj1OEVacnHHRa+jACFzwcxcVMlJGHjcy6ufKhLYtdY8EXlzvymyRaTG+qxR2GPbLAl6dr/2yLzMsPc95SATzJFZuSCII3vfCAR09BdmjkKsZfmII1JUQiBHNR6jr9QRi16dalBBDTleQlHzJ64OKvKVIS+7s9nj1HHxrKMSjEbDF1hFsdmrGRTkU5Jjy5Fj8sDbw9kyYvXDhTmuB8ij1ssE+pcG2UAO9XqYkmuhlVw888wIQsi2njIwMIAhUdEmbmN4xeyVWNiyFY0zJISjEJ9USol6zDQo4bEUdN/9JDWMg3ShG3aOUq2eaHt0iCOibgW2SaKx4g89i9JPrZXFmFSplNhVoJu81vBc4Gn/6fUlNEM21IpdbjAP9a6Th26lm2Fu6HzuhgGSDbLtC/DJd2kguhdKMkPDNc7WMnChn7yO6gXWMz4XCRvm7V+VQ3OSdnZR7nN8Bme8c8S9Gf4s36W+JGfqXW99ANBd4bTV6ZgzeTnbZGJ2aOVmORNSWO8FOAEUP7mYsgcNOSuFFiprb40dA3mT0YJqzlOA60/DqCJJ7CtUr55Q5uInjZyZWUbGo/Y+YLbRBf2GDOLmAbwrXUEFZDY1nHWDImkd1DQzZXmX8GJDyGwRF+Am/smOTFqdXZX49lesqdSMA4WQ4WvBn/kkB7iAaRzvNNP8hk3AW+AGUUxehVOoVq57WxCmxmI+h9X6R0Xa31vkDSeptGvK6vkVmAlMTs0jZ0ohpdFgEsfiyStIkT9k/6Zu4bTLa6MsaG6PX4NKhn29whKShXMzOpcKog65sBn8OJ8J2Z3z8+ZKEbdOhXryke/tFPUmyLF0lXVt3uDXQ8Q3udaNg0xrTg5+O6YzGWBgl2y/JcGleP5OnOtnsPbvgowuoPhQPBiOd/GG0TrELtGDK/sCZ0xxFBqT9fzXc0SOlB20Yz8ob7EHvp0/Glb+khPo2ZOav/a7VStn81KueFTCzqPF3IdYK6DnDKa+i3PpVRb+i4X1Ky44E/FT3v8XEtYcBHLGvg7l7o3YrIs77T88V96ss4SuAsuuj4Rp4TZiIPHske6CKjZtX32kgXPPOxBIcsU8Si0XEiGfJHC2xnoLCKBv1kMPYCT0HZmRi2yNqu1+A+XOIleFdFmoz52QdDnJhA8mbehuwQJhqN6VOxWMXtxFBwJlpYERfU1eG9/VjjiPxomhewj7/53csbuNf8M0z95bMju4VLDDCFrKIo0mhND5ps9tB8AnHpBM9VUUowMB2yGGcAPCA6zqdifrQkXTtrK+afO9bz5/1SWPMsoqGc4eFlPpmqZv0Yplv63jUsPmUDFIEU7IYsbJDyRgz9qNwvoSFjJOOMR2swrNE5hAQBBbvNturfWFZ5LmE8e/Tsn8AWI7dzpxNqzd89wnUKV0o3kUYQRBx/tfubKvncBGULo6MFPO46yrDszjzzgS2DYzsxIFNRo7Pz2+0CgMwI0GSr4Gqxf84INKx3UY14CMbzD9ejPhg9TUvipWso2GxxfRhpKZp+wVznGTJX+rtMMFa3kha7zeizVcHGAeZSQEhHErOWON6gqNT5CAJEdco/9wdY7gdoy2d9m94KiEPxljDiH+/jzpBUhDkdRP3NtNc8I3g2e94r1CXMqdE/ocdxzANb1hsbHXUPFwQgpkU X-MS-Exchange-AntiSpam-MessageData-1: NL1mgaZ3iYJm5tnmSlO6MJXZfwffQi/gN+g= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8597f4e-4337-42df-3340-08de755426ed X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:02.6186 (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: 83/ykaoLFWXusfA+7/dkAXyvHjKSJjIz/n/zr6d4CJvlbgvWwlBFSRGv4mq/taB4voCvuEnSUkBhim6bwqoIL9kuncv6/ahO6QNfiuMdrAE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=uVBaNWWW; 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Currently isar requires passwordless sudo and an environment where mounting file systems is possible. This has proven problematic for security reasons, both when running in a privileged container or locally. To solve this, we implement fully rootless builds that rely on the unshare syscall which allows us to avoid sudo and instead operate in temporary kernel namespaces as a user that is just privileged within that namespace. This comes with some challenges regarding the handling of mounts (they are cleared when leaving the namespace), as well as cross namespace deployments (the outer user might not be able to access the inner data). For that, we rework the handling of mounts and artifact passing to make it compatible with both chroot modes (schroot and unshare). Signed-off-by: Felix Moessbauer --- Kconfig | 2 +- RECIPE-API-CHANGELOG.md | 21 +++++ doc/user_manual.md | 2 + kas/isar.yaml | 2 +- meta/classes-global/base.bbclass | 82 +++++++++++++++++- meta/classes-recipe/deb-dl-dir.bbclass | 9 +- meta/classes-recipe/dpkg-base.bbclass | 22 ++++- meta/classes-recipe/dpkg.bbclass | 15 +++- .../image-locales-extension.bbclass | 9 +- .../image-tools-extension.bbclass | 84 +++++++++++++++++++ meta/classes-recipe/image.bbclass | 7 +- .../imagetypes_container.bbclass | 4 +- meta/classes-recipe/imagetypes_wic.bbclass | 6 +- meta/classes-recipe/rootfs.bbclass | 52 +++++++++--- meta/classes-recipe/sbuild.bbclass | 24 +++++- meta/classes-recipe/sdk.bbclass | 10 ++- meta/conf/bitbake.conf | 7 +- .../isar-mmdebstrap/isar-mmdebstrap.inc | 11 ++- .../sbuild-chroot/sbuild-chroot.inc | 24 +++++- 19 files changed, 353 insertions(+), 40 deletions(-) diff --git a/Kconfig b/Kconfig index 683c0da5..5ef2bfcb 100644 --- a/Kconfig +++ b/Kconfig @@ -14,7 +14,7 @@ config KAS_INCLUDE_MAIN config KAS_BUILD_SYSTEM string - default "isar" + default "isar-rootless" source "kas/machine/Kconfig" source "kas/distro/Kconfig" diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index ad03ed68..7640d87d 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -978,3 +978,24 @@ specifies the rootfs path. Using these helpers instead of direct `sudo` invocations centralizes platform-specific privileged execution logic in `base.bbclass`. Direct use of `sudo` is discouraged in downstream layers. + +### Rootless isar execution + +Isar is able to run without the need for `sudo` in an environment that +allows unprivileged users to unshare the kernels `user namespace`. Further, +a sufficiently large set of sub ids needs to be configured in `/etc/subuid` / `etc/subgid`. +This range should be `> 65536`, but smaller ranges might work as well, depending on the +ids used in the rootfs. + +A simple check if rootless is supported can be done by running: + +```bash +mmdebstrap --unshare-helper /bin/echo "rootless supported" || echo "rootless not supported" +``` + +To enable rootless builds, set the bitbake variable `ISAR_ROOTLESS = "1"`. +This internally switches the chroot mode from `schroot` to `unshare`. + +When using kas, the `build_system` needs to be set to `isar-rootless`, but the final +interfaces still need to be clarified. Further, kas patches are needed (for details, +check the kas mailing list). diff --git a/doc/user_manual.md b/doc/user_manual.md index 7520854b..77a37e9b 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -74,6 +74,7 @@ Building `debian-trixie` requires host system >= bookworm. Install the following packages: ``` apt install \ + acl \ binfmt-support \ bubblewrap \ bzip2 \ @@ -88,6 +89,7 @@ apt install \ qemu-user-static \ reprepro \ sudo \ + uidmap \ unzip \ xz-utils \ git-buildpackage \ diff --git a/kas/isar.yaml b/kas/isar.yaml index 16ce8b42..3cfc4f96 100644 --- a/kas/isar.yaml +++ b/kas/isar.yaml @@ -4,7 +4,7 @@ header: version: 14 -build_system: isar +build_system: isar-rootless repos: isar: diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index 5f82b241..8f4b1189 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -380,7 +380,28 @@ def deb_list_beautify(d, varname): # shall be used outside of this class. def insert_isar_mounts(d, rootfs, mounts): + """ + In unshare mode, all mounts must be created after unsharing the + mount namespace. As needs to happen within the unshared session, + we implement it as a code generator. Note, that the random and urandom + mounts are needed for DDI images. + """ lines = [] + to_touch = ['/dev/null', '/dev/random', '/dev/urandom'] + to_mkdir = ['/dev/pts', '/dev/shm'] + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + lines.append('touch ' + ' '.join(['{}/{}'.format(rootfs, f) for f in to_touch])) + lines.append('mkdir -p ' + ' '.join(['{}/{}'.format(rootfs, f) for f in to_mkdir])) + lines.append('mount -o bind,private,mode=666 /dev/null {}/dev/null'.format(rootfs)) + lines.append('mount -t devpts -o noexec,nosuid,uid=5,mode=620,ptmxmode=666 none {}/dev/pts'.format(rootfs)) + lines.append('( cd {}/dev; ln -sf pts/ptmx . )'.format(rootfs)) + lines.append('mount -t tmpfs none {}/dev/shm'.format(rootfs)) + lines.append('mount -o bind /dev/random {}/dev/random'.format(rootfs)) + lines.append('mount -o bind /dev/urandom {}/dev/urandom'.format(rootfs)) + lines.append('mount -t proc none {}/proc'.format(rootfs)) + # we do not unshare the network namespace, so we cannot create a sysfs, hence bind-mount + lines.append('mount -o rbind /sys {}/sys'.format(rootfs)) + for m in mounts.split(): host, inner = m.split(':') if ':' in m else (m, m) inner_full = os.path.join(rootfs, inner[1:]) @@ -389,7 +410,18 @@ def insert_isar_mounts(d, rootfs, mounts): return '\n'.join(lines) def insert_isar_umounts(d, rootfs, mounts): + """ + In unshare mount we don't unmount the system mounts but just + remove the mountpoints. + """ lines = [] + to_unlink = ['/dev/null', '/dev/random', '/dev/urandom', '/dev/ptmx'] + to_rmdir = ['/dev/pts', '/dev/shm'] + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + lines.append('rm -f ' + ' '.join(['{}/{}'.format(rootfs, f) for f in to_unlink])) + for d in ['{}/{}'.format(rootfs, _d) for _d in to_rmdir]: + lines.append('[ -d {} ] && rmdir {}'.format(d, d)) + for m in mounts.split(): host, inner = m.split(':') if ':' in m else (m, m) mp = '{}/{}'.format(rootfs, inner) @@ -397,11 +429,52 @@ def insert_isar_umounts(d, rootfs, mounts): lines.append('[ -d {} ] && rmdir --ignore-fail-on-non-empty {}'.format(mp, mp)) return '\n'.join(lines) +def get_subid_range(idmap, d): + import getpass + with open(idmap, 'r') as f: + entries = f.readlines() + for e in entries: + user, base, cnt = e.split(':') + if user == os.getuid() or user == getpass.getuser(): + return int(base), int(cnt) + bb.error("No sub-id range specified in %s" % idmap) + def run_privileged_cmd(d): - cmd = 'sudo -E' + """ + In unshare mode we need to map the rootfs uid/gid range into the + subuid/subgid range of the parent namespace. As we usually only + get 65534 ids, we cannot map the whole range, as two ids are already + used by the calling environment (root and builder user). Hence, map + as much as we can but also map the highest id (nobody / nogroup) as + these are used within the rootfs. It would be easier to use + mmdebstrap --unshare-helper as command (which is also internally used + by sbuild), but this only maps linear ranges, hence it cannot map the + nobody / nogroup on the default subid range. By that, we have to avoid + the nobody / nogroup when building packages in this case. + """ + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + nobody_id = 65534 + uid_base, uid_cnt = get_subid_range('/etc/subuid', d) + nobody_subid = uid_base + uid_cnt - 1 + gid_base, gid_cnt = get_subid_range('/etc/subgid', d) + nogroup_subid = gid_base + gid_cnt - 1 + cmd = 'unshare --mount --pid --uts --ipc --user' \ + ' --kill-child' \ + ' --setuid 0 --setgid 0 --fork' \ + f' --map-users 1:{uid_base+1}:{uid_cnt-2}' \ + f' --map-groups 1:{gid_base+1}:{gid_cnt-2}' + if uid_cnt < nobody_id: + cmd += f' --map-users {nobody_id}:{nobody_subid}:1' + if gid_cnt < nobody_id: + cmd += f' --map-groups {nobody_id}:{nogroup_subid}:1' + cmd += " --map-root-user" + else: + cmd = 'sudo -E' bb.debug(1, "privileged cmd: %s" % cmd) return cmd +UNSHARE_SUBUID_BASE := "${@get_subid_range('/etc/subuid', d)[0] if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else '0'}" +# store in variable to only compute once and make available to fetcher RUN_PRIVILEGED_CMD := "${@run_privileged_cmd(d)}" run_privileged() { @@ -415,5 +488,10 @@ run_privileged_heredoc() { run_in_chroot() { rootfs="$1" shift - ${RUN_PRIVILEGED_CMD} chroot "$rootfs" "$@" + + rootfs=$rootfs run_privileged_heredoc <<'EORIC' "$@" + set -e + ${@insert_isar_mounts(d, '$rootfs', '')} + chroot "$rootfs" "$@" +EORIC } diff --git a/meta/classes-recipe/deb-dl-dir.bbclass b/meta/classes-recipe/deb-dl-dir.bbclass index 05a16585..dc83edad 100644 --- a/meta/classes-recipe/deb-dl-dir.bbclass +++ b/meta/classes-recipe/deb-dl-dir.bbclass @@ -121,8 +121,13 @@ deb_dl_dir_import() { # let our unprivileged user place downloaded packages in /var/cache/apt/archives/ run_privileged_heredoc << ' EOSUDO' - mkdir -p "${rootfs}"/var/cache/apt/archives/partial/ - chown -R ${uid}:${gid} "${rootfs}"/var/cache/apt/archives/ + if [ "${ISAR_CHROOT_MODE}" = "unshare" ]; then + mkdir -p "${rootfs}"/var/cache/apt/archives + chmod 777 "${rootfs}"/var/cache/apt/archives + else + mkdir -p "${rootfs}"/var/cache/apt/archives/partial/ + chown -R ${uid}:${gid} "${rootfs}"/var/cache/apt/archives/ + fi EOSUDO # nothing to copy if download directory does not exist just yet diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index b3f4caad..c34c96bf 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -168,12 +168,30 @@ dpkg_schroot_create_configs() { EOSUDO } +dpkg_chroot_prepare() { + if [ "${ISAR_CHROOT_MODE}" = "schroot" ]; then + dpkg_schroot_create_configs + fi +} + +dpkg_chroot_finalize() { + if [ "${ISAR_CHROOT_MODE}" = "schroot" ]; then + schroot_delete_configs + fi +} + +dpkg_prepare_unshare_ccache() { + mkdir -p "${CCACHE_DIR}" + # sbuild id from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110942 + setfacl -m u:${UNSHARE_SUBUID_BASE}:rwX -m u:${@int(d.getVar('UNSHARE_SUBUID_BASE')) + 999}:rwx "${CCACHE_DIR}" +} + python do_dpkg_build() { - bb.build.exec_func('dpkg_schroot_create_configs', d) + bb.build.exec_func('dpkg_chroot_prepare', d) try: bb.build.exec_func("dpkg_runbuild", d) finally: - bb.build.exec_func('schroot_delete_configs', d) + bb.build.exec_func('dpkg_chroot_finalize', d) } do_dpkg_build[network] = "${TASK_USE_NETWORK_AND_SUDO}" diff --git a/meta/classes-recipe/dpkg.bbclass b/meta/classes-recipe/dpkg.bbclass index 8d7ff092..09dfab7e 100644 --- a/meta/classes-recipe/dpkg.bbclass +++ b/meta/classes-recipe/dpkg.bbclass @@ -85,7 +85,10 @@ dpkg_runbuild() { ext_deb_dir="${ext_root}${deb_dir}" if [ ${USE_CCACHE} -eq 1 ]; then - schroot_configure_ccache + ${ISAR_CHROOT_MODE}_configure_ccache + fi + if [ "${ISAR_CHROOT_MODE}" = "unshare" ]; then + sbuild_add_unshare_mounts fi profiles="${@ isar_deb_build_profiles(d)}" @@ -110,22 +113,26 @@ dpkg_runbuild() { DSC_FILE=$(find ${WORKDIR} -maxdepth 1 -name "${DEBIAN_SOURCE}_*.dsc" -print) sbuild -A -n -c ${SBUILD_CHROOT} \ + --chroot-mode=${ISAR_CHROOT_MODE} \ --host=${PACKAGE_ARCH} --build=${BUILD_ARCH} ${profiles} \ --no-run-lintian --no-run-piuparts --no-run-autopkgtest --resolve-alternatives \ --bd-uninstallable-explainer=apt \ --no-apt-update --apt-distupgrade \ --chroot-setup-commands="echo \"Package: *\nPin: release n=${DEBDISTRONAME}\nPin-Priority: 1000\" > /etc/apt/preferences.d/isar-apt" \ - --chroot-setup-commands="echo \"APT::Get::allow-downgrades 1;\" > /etc/apt/apt.conf.d/50isar-apt" \ + --chroot-setup-commands="echo \"APT::Get::allow-downgrades 1;${@'\nAPT::Sandbox::User root;' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''}\" > /etc/apt/apt.conf.d/50isar-apt" \ --chroot-setup-commands="rm -f /var/log/dpkg.log" \ --chroot-setup-commands="mkdir -p ${deb_dir}" \ --chroot-setup-commands="find ${ext_deb_dir} -maxdepth 1 -name '*.deb' -exec ln -t ${deb_dir}/ -sf {} +" \ --chroot-setup-commands="apt-get update -o Dir::Etc::SourceList=\"sources.list.d/isar-apt.list\" -o Dir::Etc::SourceParts=\"-\" -o APT::Get::List-Cleanup=\"0\"" \ --finished-build-commands="rm -f ${deb_dir}/sbuild-build-depends-*-dummy_*.deb" \ --finished-build-commands="find ${deb_dir} -maxdepth 1 -type f -name '*.deb' -print -exec cp ${CP_FLAGS} -t ${ext_deb_dir}/ {} +" \ - --finished-build-commands="cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" \ + ${@ '--finished-build-commands="cp /var/log/dpkg.log $ext_root/dpkg_partial.log"' if d.getVar('ISAR_CHROOT_MODE') == 'schroot' else '' } \ --build-path="" --build-dir=${WORKDIR} --dist="${DEBDISTRONAME}" ${DSC_FILE} - sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log" + # TODO: port to unshare backend + if [ "${ISAR_CHROOT_MODE}" = "schroot" ]; then + sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log" + fi deb_dl_dir_export "${WORKDIR}/rootfs" "${distro}" # Cleanup apt artifacts diff --git a/meta/classes-recipe/image-locales-extension.bbclass b/meta/classes-recipe/image-locales-extension.bbclass index c1e8c175..bdaa55fb 100644 --- a/meta/classes-recipe/image-locales-extension.bbclass +++ b/meta/classes-recipe/image-locales-extension.bbclass @@ -29,8 +29,12 @@ ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT += "image_install_localepurge_download" image_install_localepurge_download[weight] = "40" image_install_localepurge_download[network] = "${TASK_USE_NETWORK_AND_SUDO}" image_install_localepurge_download() { - run_in_chroot '${ROOTFSDIR}' \ + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS') if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else '')} + chroot ${ROOTFSDIR} \ /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only localepurge +EOF } ROOTFS_INSTALL_COMMAND += "image_install_localepurge_install" @@ -62,6 +66,9 @@ __EOF__ # Install configuration into image: run_privileged_heredoc <<'EOSUDO' set -e + + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), '')} + localepurge_state='i' if chroot '${ROOTFSDIR}' dpkg -s localepurge 2>/dev/null >&2 then diff --git a/meta/classes-recipe/image-tools-extension.bbclass b/meta/classes-recipe/image-tools-extension.bbclass index e88557f6..3fff4972 100644 --- a/meta/classes-recipe/image-tools-extension.bbclass +++ b/meta/classes-recipe/image-tools-extension.bbclass @@ -16,7 +16,14 @@ do_image_tools[depends] += " \ SCHROOT_MOUNTS = "${WORKDIR}:${PP_WORK} ${IMAGE_ROOTFS}:${PP_ROOTFS} ${DEPLOY_DIR_IMAGE}:${PP_DEPLOY}" SCHROOT_MOUNTS += "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt" +# only used on unshare +ROOTFS_IMAGETOOLS ?= "${WORKDIR}/rootfs-imgtools-${BB_CURRENTTASK}" + imager_run() { + imager_run_${ISAR_CHROOT_MODE} "$@" +} + +imager_run_schroot() { local_install="${@(d.getVar("INSTALL_%s" % d.getVar("BB_CURRENTTASK")) or '').strip()}" local_bom="${@(d.getVar("BOM_%s" % d.getVar("BB_CURRENTTASK")) or '').strip()}" @@ -103,3 +110,80 @@ generate_imager_sbom() { --timestamp $TIMESTAMP ${SBOM_DEBSBOM_EXTRA_ARGS} \ < ${WORKDIR}/imager.manifest } + +imager_run_unshare() { + exec 3<&0 + + # ignore everything before '--'. If the remaining list is empty, + # assume a here document is passed via stdin + while [ "$#" -gt 0 ]; do + case "$1" in + --) shift 1; break ;; + *) shift 1 ;; + esac + done + + if [ "$#" -eq 0 ]; then + set -- "$@" '/bin/bash' '-s' + fi + + local_install="${@(d.getVar("INSTALL_%s" % d.getVar("BB_CURRENTTASK")) or '').strip()}" + + run_privileged_heredoc <<'EOF' + set -e + mkdir -p ${ROOTFS_IMAGETOOLS} + tar -xf "${SBUILD_CHROOT}" -C "${ROOTFS_IMAGETOOLS}" + mkdir -p ${ROOTFS_IMAGETOOLS}/isar-apt + cp -rL /etc/resolv.conf "${ROOTFS_IMAGETOOLS}/etc" +EOF + + # setting up error handler + imager_cleanup() { + run_privileged rm -rf ${ROOTFS_IMAGETOOLS} + } + trap 'exit 1' INT HUP QUIT TERM ALRM USR1 + trap 'imager_cleanup' EXIT + + if [ -n "${local_install}" ]; then + echo "Installing imager deps: ${local_install}" + + distro="${BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then + distro="${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" + fi + + E="${@ isar_export_proxies(d)}" + deb_dl_dir_import ${ROOTFS_IMAGETOOLS} ${distro} + ${SCRIPTSDIR}/lockrun.py -r -f "${REPO_ISAR_DIR}/isar.lock" -s <<'EOAPT' + local_install=$local_install ${@run_privileged_cmd(d)} /bin/bash -s <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFS_IMAGETOOLS'), d.getVar('SCHROOT_MOUNTS'))} + chroot ${ROOTFS_IMAGETOOLS} apt-get update \ + -o Dir::Etc::SourceList='sources.list.d/isar-apt.list' \ + -o Dir::Etc::SourceParts='-' \ + -o APT::Get::List-Cleanup='0' + chroot ${ROOTFS_IMAGETOOLS} apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ + --allow-unauthenticated --allow-downgrades --download-only install \ + $local_install +EOF +EOAPT + + deb_dl_dir_export ${ROOTFS_IMAGETOOLS} ${distro} + local_install=$local_install run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFS_IMAGETOOLS'), d.getVar('SCHROOT_MOUNTS'))} + chroot ${ROOTFS_IMAGETOOLS} apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ + --allow-unauthenticated --allow-downgrades install \ + $local_install +EOF + fi + + run_privileged_heredoc <<'EOF' "$@" + set -e + mkdir -p ${ROOTFS_IMAGETOOLS}/${SCRIPTSDIR} + ${@insert_isar_mounts(d, d.getVar('ROOTFS_IMAGETOOLS'), d.getVar('SCHROOT_MOUNTS'))} + chroot ${ROOTFS_IMAGETOOLS} "$@" <&3 +EOF + + run_privileged rm -rf ${ROOTFS_IMAGETOOLS} +} diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass index 4a250964..48a96a9e 100644 --- a/meta/classes-recipe/image.bbclass +++ b/meta/classes-recipe/image.bbclass @@ -188,6 +188,7 @@ SUDO_CHROOT = "imager_run -d ${PP_ROOTFS} -u root --" python() { image_types = (d.getVar('IMAGE_FSTYPES') or '').split() conversions = set(d.getVar('IMAGE_CONVERSIONS').split()) + chroot_mode = d.getVar('ISAR_CHROOT_MODE') basetypes = {} typedeps = {} @@ -263,7 +264,8 @@ python() { if image_cmd: localdata.setVar('type', bt) cmds.append(localdata.expand(image_cmd)) - cmds.append(localdata.expand('\tsudo chown $(id -u):$(id -g) ${IMAGE_FILE_HOST}')) + if chroot_mode == 'schroot': + cmds.append(localdata.expand('\tsudo chown $(id -u):$(id -g) ${IMAGE_FILE_HOST}')) else: bb.fatal("No IMAGE_CMD for %s" % bt) vardeps.add('IMAGE_CMD:' + bt_clean) @@ -293,7 +295,8 @@ python() { cmd = '\t' + localdata.getVar('CONVERSION_CMD:' + c) if cmd not in cmds: cmds.append(cmd) - cmds.append(localdata.expand('\tsudo chown $(id -u):$(id -g) ${IMAGE_FILE_HOST}.%s' % c)) + if chroot_mode == 'schroot': + cmds.append(localdata.expand('\tsudo chown $(id -u):$(id -g) ${IMAGE_FILE_HOST}.%s' % c)) vardeps.add('CONVERSION_CMD:' + c) for dep in (localdata.getVar('CONVERSION_DEPS:' + c) or '').split(): conversion_install.add(dep) diff --git a/meta/classes-recipe/imagetypes_container.bbclass b/meta/classes-recipe/imagetypes_container.bbclass index b6cc4a14..09f13a17 100644 --- a/meta/classes-recipe/imagetypes_container.bbclass +++ b/meta/classes-recipe/imagetypes_container.bbclass @@ -68,7 +68,9 @@ do_containerize() { run_privileged rm -rf "${oci_img_dir}_unpacked" # no root needed anymore - run_privileged chown --recursive $(id -u):$(id -g) "${oci_img_dir}" + if [ "${ISAR_CHROOT_MODE}" = "schroot" ]; then + run_privileged chown --recursive $(id -u):$(id -g) "${oci_img_dir}" + fi } convert_container() { diff --git a/meta/classes-recipe/imagetypes_wic.bbclass b/meta/classes-recipe/imagetypes_wic.bbclass index 63974a3e..9f1e3de4 100644 --- a/meta/classes-recipe/imagetypes_wic.bbclass +++ b/meta/classes-recipe/imagetypes_wic.bbclass @@ -193,8 +193,10 @@ generate_wic_image() { fi EOIMAGER - run_privileged chown -R $(stat -c "%U" ${LAYERDIR_core}) ${LAYERDIR_core} ${LAYERDIR_isar} ${SCRIPTSDIR} || true - run_privileged chown -R $(id -u):$(id -g) "${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.wic"* + if [ "${ISAR_CHROOT_MODE}" = "schroot" ]; then + run_privileged chown -R $(stat -c "%U" ${LAYERDIR_core}) ${LAYERDIR_core} ${LAYERDIR_isar} ${SCRIPTSDIR} || true + run_privileged chown -R $(id -u):$(id -g) "${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.wic"* + fi rm -rf ${IMAGE_ROOTFS}/../pseudo cat ${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.manifest \ diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 6823c610..9044bf93 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -145,7 +145,12 @@ rootfs_cmd() { } rootfs_do_mounts[weight] = "3" -rootfs_do_mounts() { +python rootfs_do_mounts() { + if d.getVar('ISAR_CHROOT_MODE') == 'schroot': + bb.build.exec_func('rootfs_do_mounts_priv', d) +} + +rootfs_do_mounts_priv() { run_privileged_heredoc <<'EOSUDO' set -e mountpoint -q '${ROOTFSDIR}/dev' || \ @@ -168,7 +173,13 @@ rootfs_do_mounts() { EOSUDO } -rootfs_do_umounts() { +python rootfs_do_umounts() { + # unconditionally run the unmount code as this ignores missing + # mountpoints but also does the cleanup of the directories + bb.build.exec_func('rootfs_do_umounts_priv', d) +} + +rootfs_do_umounts_priv() { run_privileged_heredoc <<'EOSUDO' set -e @@ -215,7 +226,11 @@ ROOTFS_EXTRA_IMPORTED := "${@rootfs_extra_import(d)}" rootfs_prepare[weight] = "25" rootfs_prepare(){ - run_privileged tar -xf "${BOOTSTRAP_SRC}" -C "${ROOTFSDIR}" --exclude="./dev/console" + rm -rf ${ROOTFSDIR} + run_privileged_heredoc << 'EOF' + mkdir -p ${ROOTFSDIR} + tar -xf "${BOOTSTRAP_SRC}" -C "${ROOTFSDIR}" --exclude="./dev/console" +EOF # setup chroot run_privileged "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" @@ -285,10 +300,14 @@ rootfs_install_pkgs_update[weight] = "5" rootfs_install_pkgs_update[isar-apt-lock] = "acquire-before" rootfs_install_pkgs_update[network] = "${TASK_USE_NETWORK_AND_SUDO}" rootfs_install_pkgs_update() { - run_in_chroot '${ROOTFSDIR}' /usr/bin/apt-get update \ - -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \ - -o Dir::Etc::SourceParts="-" \ - -o APT::Get::List-Cleanup="0" + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS')) if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} + chroot '${ROOTFSDIR}' /usr/bin/apt-get update \ + -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \ + -o Dir::Etc::SourceParts="-" \ + -o APT::Get::List-Cleanup="0" +EOF } ROOTFS_INSTALL_COMMAND += "rootfs_install_resolvconf" @@ -316,9 +335,12 @@ rootfs_install_pkgs_download[isar-apt-lock] = "release-after" rootfs_install_pkgs_download[network] = "${TASK_USE_NETWORK}" rootfs_install_pkgs_download() { # download packages using apt in a non-privileged namespace - rootfs_cmd --bind "${ROOTFSDIR}/var/cache/apt/archives" /var/cache/apt/archives \ - ${ROOTFSDIR} \ - -- /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only ${ROOTFS_PACKAGES} + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS')) if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} + chroot ${ROOTFSDIR} \ + /usr/bin/apt-get ${ROOTFS_APT_ARGS} -oDebug::NoLocking=1 --download-only ${ROOTFS_PACKAGES} +EOF } ROOTFS_INSTALL_COMMAND_BEFORE_EXPORT ??= "" @@ -345,8 +367,12 @@ rootfs_install_pkgs_install[weight] = "8000" rootfs_install_pkgs_install[progress] = "custom:rootfs_progress.PkgsInstallProgressHandler" rootfs_install_pkgs_install[network] = "${TASK_USE_SUDO}" rootfs_install_pkgs_install() { - run_in_chroot "${ROOTFSDIR}" \ + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS')) if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} + chroot "${ROOTFSDIR}" \ /usr/bin/apt-get ${ROOTFS_APT_ARGS} ${ROOTFS_PACKAGES} +EOF } ROOTFS_INSTALL_COMMAND += "rootfs_restore_initrd_tooling" @@ -652,8 +678,10 @@ rootfs_install_sstate_finalize() { # - after building the rootfs, the tar won't be there, but we also don't need to unpack # - after restoring from cache, there will be a tar which we unpack and then delete if [ -f rootfs.tar ]; then + run_privileged_heredoc <<'EOF' mkdir -p ${ROOTFSDIR} - run_privileged tar -C ${ROOTFSDIR} -xp ${SSTATE_TAR_ATTR_FLAGS} < rootfs.tar + tar -C ${ROOTFSDIR} -xp ${SSTATE_TAR_ATTR_FLAGS} -f rootfs.tar +EOF rm rootfs.tar fi } diff --git a/meta/classes-recipe/sbuild.bbclass b/meta/classes-recipe/sbuild.bbclass index ea0c5841..1fa70bd8 100644 --- a/meta/classes-recipe/sbuild.bbclass +++ b/meta/classes-recipe/sbuild.bbclass @@ -7,7 +7,8 @@ SCHROOT_MOUNTS ?= "" inherit crossvars -SBUILD_CHROOT ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${ISAR_BUILD_UUID}-${@os.getpid()}" +SBUILD_CHROOT:unshare ?= "${SCHROOT_DIR}.tar.zst" +SBUILD_CHROOT:schroot ?= "${DEBDISTRONAME}-${SCHROOT_USER}-${ISAR_BUILD_UUID}-${@os.getpid()}" SBUILD_CONF_DIR ?= "${SCHROOT_CONF}/${SBUILD_CHROOT}" SCHROOT_CONF_FILE ?= "${SCHROOT_CONF}/chroot.d/${SBUILD_CHROOT}" @@ -144,6 +145,13 @@ END EOSUDO } +unshare_configure_ccache() { + # ccache must be below /build for file permissions to work properly + cat <<'EOF' >> ${SBUILD_CONFIG} +$path = "/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"; +EOF +} + sbuild_dpkg_log_export() { export dpkg_partial_log="${1}" @@ -152,3 +160,17 @@ sbuild_dpkg_log_export() { cat ${dpkg_partial_log} >> ${SCHROOT_DIR}/tmp/dpkg_common.log ) 9>"${SCHROOT_DIR}/tmp/dpkg_common.log.lock" } + +# additional mounts managed by sbuild +sbuild_add_unshare_mounts() { + dpkg_prepare_unshare_ccache + + cat <<'EOF' >> ${SBUILD_CONFIG} +$unshare_bind_mounts = [ + { directory => '${WORKDIR}/rootfs', mountpoint => '${PP}/rootfs' }, + { directory => '${WORKDIR}/isar-apt/${DISTRO}-${DISTRO_ARCH}/apt/${DISTRO}', mountpoint => '/isar-apt' }, + { directory => '${REPO_BASE_DIR}', mountpoint => '/base-apt' }, + { directory => "${CCACHE_DIR}", mountpoint => "/ccache" } +]; +EOF +} diff --git a/meta/classes-recipe/sdk.bbclass b/meta/classes-recipe/sdk.bbclass index 074f5ef8..6086e9ce 100644 --- a/meta/classes-recipe/sdk.bbclass +++ b/meta/classes-recipe/sdk.bbclass @@ -74,13 +74,17 @@ rootfs_configure_isar_apt_dir() { ROOTFS_POSTPROCESS_COMMAND:prepend:class-sdk = "sdkchroot_configscript " sdkchroot_configscript () { - run_in_chroot ${ROOTFSDIR} /configscript.sh ${DISTRO_ARCH} + run_privileged_heredoc <<'EOF' + set -e + ${@insert_isar_mounts(d, d.getVar('ROOTFSDIR'), d.getVar('ROOTFS_MOUNTS')) if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} + cp -rL /etc/resolv.conf '${ROOTFSDIR}/etc' + chroot ${ROOTFSDIR} /configscript.sh ${DISTRO_ARCH} +EOF } ROOTFS_POSTPROCESS_COMMAND:append:class-sdk = " sdkchroot_finalize" sdkchroot_finalize() { - - rootfs_do_umounts + rootfs_do_umounts_priv # Remove setup scripts run_privileged rm -f ${ROOTFSDIR}/chroot-setup.sh ${ROOTFSDIR}/configscript.sh diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 0f84e715..1c3a6f4a 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -72,7 +72,7 @@ KERNEL_FILE:arm64 ?= "vmlinux" MACHINEOVERRIDES ?= "${MACHINE}" DISTROOVERRIDES ?= "${DISTRO}" -OVERRIDES = "${PACKAGE_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${BASE_DISTRO_CODENAME}:forcevariable" +OVERRIDES = "${PACKAGE_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${BASE_DISTRO_CODENAME}:${ISAR_CHROOT_MODE}:forcevariable" FILESOVERRIDES = "${PACKAGE_ARCH}:${MACHINE}" # Setting default QEMU_ARCH variables for different DISTRO_ARCH: @@ -151,6 +151,10 @@ ISAR_APT_RETRIES ??= "${@'10' if bb.utils.to_boolean(d.getVar('ISAR_USE_APT_SNAP ISAR_APT_DELAY_MAX ??= "${@'600' if bb.utils.to_boolean(d.getVar('ISAR_USE_APT_SNAPSHOT')) else ''}" ISAR_APT_SNAPSHOT_TIMESTAMP ??= "${SOURCE_DATE_EPOCH}" +# Rootless build execution +ISAR_ROOTLESS ??= "0" +ISAR_CHROOT_MODE ??= "${@'unshare' if bb.utils.to_boolean(d.getVar('ISAR_ROOTLESS')) else 'schroot'}" + # Default parallelism and resource usage for xz XZ_MEMLIMIT ?= "50%" XZ_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}" @@ -206,6 +210,7 @@ CCACHE_DEBUG ?= "0" # Variables for tasks marking # Long term TODO: get rid of sudo marked tasks TASK_USE_NETWORK = "1" +# nested namespacing requires this as well TASK_USE_SUDO = "1" TASK_USE_NETWORK_AND_SUDO = "1" diff --git a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc index ea63ec79..de6c43bf 100644 --- a/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc +++ b/meta/recipes-core/isar-mmdebstrap/isar-mmdebstrap.inc @@ -177,6 +177,7 @@ do_bootstrap() { umount \$1/$base_apt_tmp && rm ${WORKDIR}/mmtmpdir && \ umount $base_apt_tmp && rm -rf --one-file-system $base_apt_tmp" else + # prepare dl_dir for access from both sides (local and rootfs) deb_dl_dir_import "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" bootstrap_list="${WORKDIR}/sources.list.d/bootstrap.list" @@ -196,6 +197,7 @@ do_bootstrap() { -o Dir::State="$1/var/lib/apt" \ -o Dir::Etc="$1/etc/apt" \ -o Dir::Cache="$1/var/cache/apt" \ + ${@'-o APT::Sandbox::User=root' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} \ -o Apt::Architecture="${BOOTSTRAP_DISTRO_ARCH}" \ ${@get_apt_opts(d, '-o')}' extra_essential="$extra_essential && $syncout" @@ -213,13 +215,14 @@ do_bootstrap() { # Cleanup mounts if fails trap 'exit 1' INT HUP QUIT TERM ALRM USR1 - trap 'bootstrap_cleanup' EXIT + trap ${@'true' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else 'bootstrap_cleanup'} EXIT # Create lock file so that it is owned by the user running the build (not root) mkdir -p ${DEBDIR} touch ${DEB_DL_LOCK} - run_privileged TMPDIR="${BOOTSTRAP_TMPDIR}" mmdebstrap $bootstrap_args \ + ${@'' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else 'run_privileged'} \ + TMPDIR="${BOOTSTRAP_TMPDIR}" mmdebstrap $bootstrap_args \ $arch_param \ --mode=unshare \ ${MMHOOKS} \ @@ -238,6 +241,7 @@ do_bootstrap() { --customize-hook='sed -i "/en_US.UTF-8 UTF-8/s/^#//g" "$1/etc/locale.gen"' \ --customize-hook='chroot "$1" /usr/sbin/locale-gen' \ --customize-hook='chroot "$1" /usr/bin/apt-get -y clean' \ + ${@'--skip=output/dev' if d.getVar('ISAR_CHROOT_MODE') == 'unshare' else ''} \ --skip=cleanup/apt \ --skip=download/empty \ ${@get_apt_opts(d, '--aptopt')} \ @@ -251,7 +255,8 @@ do_bootstrap() { if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" - run_privileged rm -rf --one-file-system "${WORKDIR}/dl_dir" + run_privileged find ${WORKDIR}/dl_dir -maxdepth 1 -mindepth 1 -exec rm -rf --one-file-system "{}" \; + rmdir ${WORKDIR}/dl_dir fi } addtask bootstrap before do_build after do_generate_keyrings diff --git a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc index 61d37760..7a778d8c 100644 --- a/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc +++ b/meta/recipes-devtools/sbuild-chroot/sbuild-chroot.inc @@ -66,8 +66,28 @@ ROOTFS_POSTPROCESS_COMMAND:remove = "rootfs_cleanup_base_apt" DEPLOY_SCHROOT = "${@d.getVar('SCHROOT_' + d.getVar('SBUILD_VARIANT').upper() + '_DIR')}${SBUILD_SCHROOT_SUFFIX}" -do_sbuildchroot_deploy[dirs] = "${DEPLOY_DIR}/schroot-${SBUILD_VARIANT}" -do_sbuildchroot_deploy() { +sbuildchroot_deploy_tree() { ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_SCHROOT}" } +sbuildchroot_deploy_tar() { + lopts="--one-file-system --exclude=var/cache/apt/archives --exclude=isar-apt" + # we cannot use pzstd, as this results in a different magic + # (zstd skippable frame) which is not detected by sbuild + # https://salsa.debian.org/debian/sbuild/-/blob/d975d388a98627a0d7d112791e441c27a6d529df/lib/Sbuild/ChrootUnshare.pm#L608 + ZSTD="zstd -${SSTATE_ZSTD_CLEVEL} -T${ZSTD_THREADS}" + run_privileged \ + tar -C ${ROOTFSDIR} -cpS $lopts ${ROOTFS_TAR_ATTR_FLAGS} . \ + | $ZSTD > ${DEPLOY_SCHROOT}.tar.zst + # cleanup extracted rootfs + run_privileged rm -rf ${ROOTFSDIR} +} + +do_sbuildchroot_deploy[network] = "${TASK_USE_SUDO}" +do_sbuildchroot_deploy[dirs] += "${DEPLOY_DIR}/schroot-${SBUILD_VARIANT}" +python do_sbuildchroot_deploy() { + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + bb.build.exec_func('sbuildchroot_deploy_tar', d) + else: + bb.build.exec_func('sbuildchroot_deploy_tree', d) +} addtask sbuildchroot_deploy before do_build after do_rootfs From patchwork Thu Feb 26 16:28:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4920 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:15 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f184.google.com (mail-qt1-f184.google.com [209.85.160.184]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTDQp009686 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:13 +0100 Received: by mail-qt1-f184.google.com with SMTP id d75a77b69052e-506a1999e44sf128655511cf.1 for ; Thu, 26 Feb 2026 08:29:13 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=iq+HIOOubU0YazUjQeDyhmEuIAw8hwLXeSaITw91SPDfldLcjl8KqQOuQIatnNJ47b fbTAEsaIfcMulFKjB3ijdy8ECUnG51yjjhzVdgX4xh71UpY+6MmMmQsanuH9l/sfub3l RIO96BT1KLk36mIEuoJncmtHkrLSlWGOOVRCJWd5wDx8GoavJgifc6NSbk1rmjf0b0JT n4kUiLB6/FzeNJR5Kk+eYjBKlNuNu05GtQpzDpXSfb06ApbP3Teze7Yi0WujpOyydRbf WhlZKFBiu0U8Ybfd887mHqnOiYvwgHO87ZOSE3aKld6+edJu1bHYtfPD+9fzTDbAS/T+ nPOg== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=uPQTR3DtXXatUYmwUpAg3Ldvwgr8hs4w/RXu1rjRvXM=; fh=D3oZnHFMy57Narc+95jKcbyjQBqJfq4xED+kAlUy04M=; b=ZE+0k5eyG2PlgreiuWke71gk2tsein91F46PgSPGaqz67T3/CS9jBX9+UvCmMH5vtA kPhBPxR8IBDXLXuAtcVywo/AOFUGcuYyZzY1op+H78S5X6fHf94Tb9YgwjMLSvwztmRA cz+KdFA2NlbO5f4UOG5CBKy4WhIYncLRxRt8wL4qECIixpxgnyQWCiAu7uaG/LSGLEBL F5YGs7eC/KS/u3cYIenUctXkjV7vSz8SYZUCm79zmPRlVxIqIisNrHKAhuhs/g9Y9h9N 9WSn0LgVIH5Ks/rwpHX+MGMm16SiatHc9OC3XVJBRgJHR1yMVz4JV3Fk8K94YGsa9J3t x5Bg==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=oFOsuMyt; 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=20230601; t=1772123347; x=1772728147; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=uPQTR3DtXXatUYmwUpAg3Ldvwgr8hs4w/RXu1rjRvXM=; b=TAeXuO1NyYJ4tw3EwiZFAMIE0DseY5rfp4Tz2Sx2ZVokpbdL4T7wnZKJq7Sn5Suy7d 1glWgKX0oI6ucPoxPTeUHp8I6YKmQZkBBJ29nnp9b07PNXfjvcuR1T7zRt9oe6RasHU0 9/JT/agS2Ct0etvAzYvkAM53RrY8HqZDuVIIZbF/kgFt4gekzCaQkSmMkJXOusOq5CHm NIc7ZKDXL7/i01xZoA0wP9vfwNRNXIxdf3hBi68vplchLCGdhMmYzBsu5ZVMAZNea6Pp BeOl7ai+0a8yaIm7DlneUk+nGivnMWvjia4j1OC/4sf1nDDDQ5j/M7d1WzI+NNwWxOlE pUtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123347; x=1772728147; 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 :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; bh=uPQTR3DtXXatUYmwUpAg3Ldvwgr8hs4w/RXu1rjRvXM=; b=knPXThSho9V8IzMeNoRCDus93fUoagZPZbXRtMA/AKWCkO7AmAeMCyDEabpvIio6aC oQSGp6FsIQPwcZEAAx20qjpCmuCXe2JYNiw5QNQJJC8oKTP6W03BZboisKncmdwCPa21 qmky2v+Khm8PCF9mCzs57RgyzMa8Wmpv71vMNpOiw/WYLKaAdv+YI3dn3NcAT0Vecl3H CbWh94CkStR9CS6ObZ2/xj3KCK545Pt2DgEjmGX8QVfbPP/JPPaYDQlvVy5vlXOJYPqA 3KYwDC6gvDiH+Erfk11lv57nAUZVu/VY/qzYk8XfqT+pl6EGWdqczW8kdRhqOJn8hR0p j/3w== X-Forwarded-Encrypted: i=3; AJvYcCXC7JR5Zo4/ilAXckXyvq0Pmc4F+GLXubkEyNEiIFidR7otSf89a9/wfxwEXFVXmQM0r6v6qX8=@isar-build.org X-Gm-Message-State: AOJu0YyDmxbkshg0Z/k/p4joI0f8fyouwusCPbk2iWc5fZqVw59bOoSA 5URUfcZgjuLkqK2kHXWSk627WukbrtKECUQnTaKVoBqZZLuYAg6fwB53 X-Received: by 2002:a05:622a:49:b0:4ee:13d0:d02b with SMTP id d75a77b69052e-507460c5689mr31275721cf.50.1772123347108; Thu, 26 Feb 2026 08:29:07 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+HhEroKX7lFViJFku6lahyObj15CdgrexCG62cOzDfAiQ==" Received: by 2002:a05:6214:5191:b0:895:4b79:83b8 with SMTP id 6a1803df08f44-899ba0bb1e9ls49098446d6.1.-pod-prod-09-us; Thu, 26 Feb 2026 08:29:06 -0800 (PST) X-Received: by 2002:a05:6214:20a3:b0:882:3f38:4fbc with SMTP id 6a1803df08f44-899c80641acmr35797796d6.61.1772123346002; Thu, 26 Feb 2026 08:29:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123345; cv=pass; d=google.com; s=arc-20240605; b=i7WBdCxd+nG0eNnF2XjhFbOBHa3MbBLWQbXXLiz3N4qPZh3jaORWXNBw/DZ2uOQrUA 3Z0XH4CPAOGIvOpyVGOs4yS7HY7PaLq2b46DUie6AEqkq/9JQghE0i27Cdbz6XjxKKA1 rYhtnM9rOP0J+w1fX8dMatEV4rPnfneCOwYNFAJyc9ynw4CtYCadl42s9bXTWJCtVJlG eTTY4qWi8QT9HsELu7vg3Sei8ZGGKtdfcCD1wnaytIjqWZ3OGQ+d8cFAIphPQ21QkOkg AvZBDUuTdL0sB/A58MWIxMOYbBDfEQaTFTdP+bfWrOpWaaRr/tpZ2TnwTMvE+1SVO906 n90w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=mBzruSkq8ny6nWZ7BpQ89FNZu4yjSW3SOvb/S5hmdZc=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=J+CjANokg+Tw350kTuHDSFRk+w8O+hhbXHIX/Igtqs59jBfEC4mR0FN3oL7cQKB229 y3aBC8kN+nbjBflPWoFjK0G5YdpDGrxIYtvjMzwT4IFW2QZEiiYd2aDtLAO+4RBhN5M/ 8zrKPuvwrmYp+3wDyNebv+DIm7T0uhyeiXJEsL9ahG+yXphM2eivwgjML3aczXSmcj55 ksTdKgvJE4uQQpijTZpxxOIXQeo0EGVKrObko6uggP40WOJjVlEBlKphodYm/FLsAgMT +gwmI6ciRaEfUwKPdN2SI9oR+gmdTHqdQgQ56iBL8KmjEVb52lP7CAGGGZdmfAjQZKvz T/ZA==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=oFOsuMyt; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:05 -0800 (PST) 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=N4sM/K8XKiWauckpVC3mGFOGzac+/1XGJnW1PQrBiggb4b2hepZcqy27zHdZXrYbC9hJzEnSQ51prwDEZSSDl/M/MPTCduB6NAZzNz75993K3+BGhW7C+VUVgSU/khH5knn46Uud4T7LX/1jHJCnn91eZNY3qhVp/xJ/3fMH5lI1fBNFtIUYvBvz08lUkFEDHwCjYpxOJc+ttcX3bTerhsgZmzGt5XS7vlTFlOWvC/nQ3KVXQEsspCQj4HO74ef90scYC26706m9AJMRECLkvMIZvea3tua3sRInv0e6WkcHn7qCcPJWpBXs35VuEe0Ve8eEGsqnAJ7RnlicwVeBfw== 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=mBzruSkq8ny6nWZ7BpQ89FNZu4yjSW3SOvb/S5hmdZc=; b=fx049cUMvM6skf0/irSjgR+wouu/ykKyA3f3hEs6eSsnONakF4MmOVoQV2beau83Ww0TSuAPTN2kgtIFqvn8yKcdT4p4j6sVrLI5QhB3DzQBsHGHu88hJ8Z/hVyKWMrjO4ECS1UVF91Ap9lLy4X92sbqreuRWsnrAdYTOqcpEG5iOhJwtEf5L802vQ4YD/24hmji5R+W94dI18Ye2btdnM97tmTRA42Dj4cxdEDjvQgx/p0KXjWbAcpvTQ0zC9HN9LayeM7F0hjAdPfwccjjY30GYkeJqh/+Wu0Cb3j7KwZnL+qMq8ki8pbMfWDGnvijoadu+ihN+JN8hb99oyqxzg== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:03 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:03 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 11/15] add helper script to clean artifacts in build dir Date: Thu, 26 Feb 2026 17:28:36 +0100 Message-ID: <20260226162843.1642329-12-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: b3135fda-c367-4cfd-995b-08de7554276c X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: 0at87Iu2tVNm0np/abmzKh3ZEHTfTXkv03/ubysu3w+lRwHvy5BjvLK192SQ1eSFFDP9nDYbJiWdLUYbJPXUWLBNB/jEDVbCFcdfM9w0/zvtQmW4gFlz0Qn4g7SeRPxHMBnN1vqhOvwdSTTNSWTTIBcQCnSj7D5sw9otTm25zZS13wmxVbOOSAQRLbOBTbWBqPEYnWdU0wZNZxtAZV6M5AZ9Y5zQW3ArdlfAxAPFjspHwxTU6Nr2E7IxToOMBAL+QXE76o7DX0CW1D2MQtU3WruHUSxHUs7ZAL/ss2LLyednCLDwFV5EjptxJYs5ZTg0Q/3NSgw7N6TZhdmUSdDpPi8iSVwyXVkRvSYBZULe+ti4fae4q6wUHStQOkNtKfDcxBkM1yVQIwMtlmrcivOjWizuuRCUJPQICEsP7RhEN4wjxqeSJFpsxvmZJf68SmbevBAZxmOhk2hr2LREiW2pEikeFfTCm/pxI4JVkEgJqe91Iz9uVv2Djlu4t9pJYOJv7PfYt2nAJ11mr90KC0PbER575SX38jO3Tr3MGCrIzuHQDG/Nw0MAN/okOMEGrWAcvs/oSncUJSIbIuwtqFN2LdqgnANjIXefDZfSWd62E808KZmITzyNGNoIHeNyoVdWWJAY6z8LDvoDCtXCYcg03tjpC4IYLer0v5S783ZscuWOTIcwzYJCHRZ/UoHOBwUt3d3m6mF5+ActlD/3FBqMztPIYeSn16tfejeXisuj720= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: MuWSTA0UXQL8RYBziPYBxHeKVqX/Zjd9fxBvKgEQMCfYSxhWyC93SazXLuaHLYqFWFurjIMCQbHy94tfA3WtAg+Gcfa3/N01q3d27PPvJMAl6FX97q1/kEo4aoVe6BcugK3CptqzAM/JOktCVs+2+9BcKdLAE6RJdn8MTVIVJF0+4+9DFh0axW+tWZw5QkaRWcafkhN5dwifSQ4AuH/Dx74cV8UasNgPQ61KvA1VwZHTuw2UK5cWbnAiapgDBfPKYWfM+2S2za/u8cfGU+4YR5kTyXSi4cviQpX79F6ZeIJQIkPMmgr7yiDbengiuXBrv9XuKdTYXG1J9pASeWH8FLaFrYWozrUpjgtqqQv3HjDhCq0/6R8+WQNpK3yQ+N+QJpjT3Y/WXLcQHTZMo+Y4gIz9uWles8FDsicA0rIqRJsFWXq+cEIVYP6PH85Kf4dn81t7ErL3g/t9HSRZuOrt68/rGd5fEbS1jw8mHxssE0DZDsVCD/101fCOhzVYNvZDluKv8ltLNRo9aqZvSqUkdoHvaPzcW2e/tmLChHDMuUU/fkIo5gBIvkDWOmQygaBWZbc7fGLroLU9IANZzE6c7tIHWVAlxKxhiDSVlWlhFZGd9VKvJ964eb1d3CuTYnF3APaiGt5Uq1yK9Vi+9f/YHMirYp0JTMZfGuN+w+ANoMRUvG6akW5l0yFNYgEoLNW/j7QTZcNtT3CQ+i/tVHJeNwRpiD5l3+WobYU2XlQLl2ZiQjBPtlhUf6rRh3hNRqhewyAVRRQVE7IW6iDrsDk4VXSShsIzKwciRg/lxYmG0AXBKWJkpvio/vsFmJwxvjMryZdc67QOnFHzd/b9DB3UGit5J0sDDWfYJxuftdfkU0qudqfv0Ym+IzP1rZgaU+IG9/p49Zt9XQ+Ntv5n50+vtmRjkqiPxKNtkVzXMQEuUn8sprD7QkRUaUb3cOL0/kGlUNkA8fR4EI1TeAKNtkYF8iYnTZUnAhwU0df+5dsF5j2bN57tMDOnOJU6Lb4Sedo2/S0RAc0TTZQSd3HutJtfpiqN2+lv6fyK5oVQaxQ7DaLCuK+unAwGtzcQu/WN4OZleKPwunNbR2mlRQN2RLNZ0G9YJBZK4luoQB+q9DWD4eytUSt/OHy9uua/Xk3602jKJrxTnyUnmTAUINnn82kXTs5mJBGMhkz3i/deIxKb/cmPwFkrlaLpnXj4b8CYHOCyu26TOuMBlA9A2Xf7IAQ4jJAPgacOsI+6BanmHTMWuB+HyUJrFL947jr8wSx1JQwP973dFHVwn5GVN6So8DkZVYAiPO2vCn75dzjINS0KE3QazImzsLo255UVihvl4kUIS/gSSBtIv3lP3Qc40qmEmlFmtHcs/NG6wzxlRQ7FPEZaB9YJoL6xtLAZ7lsHVCQXNzvO8HHwnHaZASSB5EeT62t7xeOdhj2dsM5wbad0atrSHhglXe7TVkqS0m3mBQmQJSIbdoMdBNvn8UGHTehmlQGPcFbOgIAR0bDrxnTDAkJVthYPe9cxaZzEARfpI2yPql31STNwPWI6QYG2B5FZuoCwQw1ZqgKs+CxAsf/lCymHzxu//HD1tQnSfIeXlpor8bLRtGC3aJl9oai3ti3gNL/SrpY5gwMD15MMGx6iPjcqawQ2iaHGaFOegDVvjdA64YExjiv1OgwAPK/gbxdUbpJ8Qp3nSSs0FznLf52Tfbai26csFXTTYihM5v/ZET53y4H6giMYaIs0SCHsoe0I4vbzmWo+iQxbDGOJ7PQuTrpHXkGEC8mBf2P89RaeFPrcoCBswE0L X-MS-Exchange-AntiSpam-MessageData-1: THOsEW31ha31kZervcU7pbwvZoikq7gzi6c= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3135fda-c367-4cfd-995b-08de7554276c X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:03.4148 (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: XfKJjU1ksFBONCwclqTnB7V2WeZ1Dqh/bh0aHqbogl/37a5JIvaz1KQugMp1NLOKXSssLOP1z3vfIUHG0jgH34AgVe//7Ntb2qxMHxsGWTs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=oFOsuMyt; 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= When running in rootless mode, cleaning the build directory from outside the build environment is a non trivial task due to mixed file ownerships. To simplify this, we introduce the isar-clean-builddir script that can perform the cleanup without requiring root privileges. Signed-off-by: Felix Moessbauer --- RECIPE-API-CHANGELOG.md | 5 +++ scripts/isar-clean-builddir | 73 +++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100755 scripts/isar-clean-builddir diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 7640d87d..52af27ce 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -999,3 +999,8 @@ This internally switches the chroot mode from `schroot` to `unshare`. When using kas, the `build_system` needs to be set to `isar-rootless`, but the final interfaces still need to be clarified. Further, kas patches are needed (for details, check the kas mailing list). + +Note, that the build dir may contain files that were generated within the rootless +environment and cannot be deleted from the outside by the calling user. To simplify +the cleanup, we provide the `isar-clean-builddir` script that helps purging +directories with mixed ownerships (without requiring root privileges). diff --git a/scripts/isar-clean-builddir b/scripts/isar-clean-builddir new file mode 100755 index 00000000..6bc90b1d --- /dev/null +++ b/scripts/isar-clean-builddir @@ -0,0 +1,73 @@ +#!/bin/sh +# isar-clean-builddir - Clean the build/tmp directory +# +# This script removes all files from the specified directory, including those +# owned by other users (which requires elevated privileges). +# +# Rootless Mode: +# When --rootless is specified, no privileged commands are executed. This +# requires that the UID namespace where files were generated matches the +# cleanup environment. When running from a container, this script must be +# called from within the same container. +# +# Part of the Isar API. External tools may call this script for cleanup. +# +# Copyright (c) Siemens AG, 2026 +# SPDX-License-Identifier: MIT + +DRY_RUN=0 +ROOTLESS=0 + +usage() +{ + EXIT_CODE="$1" + SELF="isar-clean-builddir" + printf "%b" "Usage: ${SELF} [--rootless] [--dry-run] [dir]\n" + + exit "${EXIT_CODE:-1}" +} + +while [ $# -gt 0 ]; do + case "$1" in + --dry-run) + DRY_RUN=1 + shift 1 + ;; + -h | --help) + usage 0 + ;; + --rootless) + ROOTLESS=1 + shift 1 + ;; + --*) + usage 1 + ;; + *) + break + ;; + esac +done + +[ $# -eq 1 ] || usage 1 +if ! [ -d "$1" ]; then + echo "error: \"$1\" is not a directory" + exit 1 +fi + +if [ $ROOTLESS -eq 1 ]; then + PRIVILEGED_CMD="unshare --map-auto --map-root-user --keep-caps" +else + PRIVILEGED_CMD="sudo" +fi + +if [ $DRY_RUN -eq 1 ]; then + echo "dry-run, not executing" + DRY_RUN_PREFIX="/bin/echo" +fi + +# clean all files that do not belong to us +# shellcheck disable=2086 +find "$1" \( ! -user "$(whoami)" -type d -prune \) -exec $DRY_RUN_PREFIX $PRIVILEGED_CMD rm -rf {} \; +# clean remaining files +$DRY_RUN_PREFIX rm -rf "$1" From patchwork Thu Feb 26 16:28:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4921 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:15 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qt1-f186.google.com (mail-qt1-f186.google.com [209.85.160.186]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTDWk009739 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:14 +0100 Received: by mail-qt1-f186.google.com with SMTP id d75a77b69052e-506a936d7afsf136229221cf.3 for ; Thu, 26 Feb 2026 08:29:14 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123348; cv=pass; d=google.com; s=arc-20240605; b=cElgSssZL/ssZdsPy96CwVbYDglJFj3ABLwv+7EhDJvoZqlt1t9eaiJHgWddKtdXmZ K//uTDUIchCRkwseZCk60K4AMiMSNdqrIQ16ackdz3ugPK5e5uViRt9h5inS/O13LN9K ehOpDStFTY/btC2xqBXiROmgb7gQJQ7rEUzXXEfWWupuxcZf4COaUUnX7h3iNsBuZ3TC wt7L6hwRZIR3P58G5Ti/xOOO0q0+tQcyqAPjiSk/hr4YPhY0k7rh9W9j5Kw1wJVHF2UY 4oBr2viWtxLy2AfdLgDJlWzbByr6Ou+FWr0X0YhcVDxtfvyWtOynCym0XZxHkAW79faB OgWQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=sVOrKc2dyoxvrrhCuQPB/wZQ2A5gkfXC8QwR7RVn4VY=; fh=CZS7FJskozS2K3DYHFNT2hUIkxts+tLb64nGm8z/rJU=; b=Nq7ORF7ep9dj7iNmj+dWitfptzeM9RXLJXyRj/sOVJvpCKIAONFL1Ur6XIZvXOPr+q vyIkoevr7TsQn5kXLV3Ua+mmLOYc7Pvp4Jq0AywW5lBR3KfijL4nHtzGNt3gX74BSP7f YC7IQTOVoCWeh7WgLmn9SAX8ayuZp29/Imge/FAZJ3YjahvQPnpob2tWGgKBEsunBri5 66l/nvPLexF3FQY2etWYvCbAdcs4nGSAJrEatW4AW/9meBMtsSEQ3Tp0j9Md4KiAVw3K OiLklFIVpjbDeFzp441R8Ri+PC+QccNrnsyyCCewKVXYTNUeMLmgsBcAteEznccM36S3 GN4Q==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="vV/YNSjU"; 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=20230601; t=1772123348; x=1772728148; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=sVOrKc2dyoxvrrhCuQPB/wZQ2A5gkfXC8QwR7RVn4VY=; b=Uke53q1unNKf/y5VkhiqMCaI3pWmF6TBXJy0HSAtEOCw+d/GAhAaSSeL1DFOozrkWF LYn7UK+zWXF1NeSpGy3Fz0bf5bi3C4A/y03c8nLdKj82D4RyF/SOz0h+9rZsmbOuyR8M rIBn5Bnd0pUjIBS7fvoXuP7d0dev8bDD7x8wz8DOkjmehLxTOP8G7Y0IxI8KViXGwSVu oFeXSvNtcs445e8gHaemNdyguKEzbdHbTHH+xPypHt8WUefQAd1RwsjhYi1B+VPNptz5 +TczvQEz37I/z5GDKMvDN44b16RUDSsnArLpt8UWfR5RrQaG7MDpKhAdBc4Qee/Wu+9z 1lVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123348; x=1772728148; 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 :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; bh=sVOrKc2dyoxvrrhCuQPB/wZQ2A5gkfXC8QwR7RVn4VY=; b=qxVI2Kv0HegqI0VQ8ux5H0PIwJ3sUPA1RVCl+hMho6D7/AjvTI/HPpAJtD8Bo0jLQI ECK/K1h7XMMgoCau6eoR4pNpcjUK03dfyTQWxvyT89yhvJoAOp8yVJ2uGTN8tl8Q4Faf S0r0e2s7Y8dFgQT9ieOBhIeEDzwhZDxlcFNQkNBaP7mhPpCKhNRRO1vfsqUSdWV2pG8d EQz+r4mVvWm/+9krMaBgGmR+wWJL+dbTJCfp6roeymeFZoNBx6Py8VXnfvbcB0Yi3FoS 3nEb3wepayvQJITx4aGeRI0QLzeJ+WuNz4aaINpTK8yZ/T16EGGLr0R84eDPGzZaX/fe F/KQ== X-Forwarded-Encrypted: i=3; AJvYcCXABF+gfpC+nLqZwcjG9NBvtgokvE1A+cgHfUHb/xehHUgFChrBVTQj/fbwXtb8+Z0aCaJXLpY=@isar-build.org X-Gm-Message-State: AOJu0YwesuWpJaheFCQS/hxBK10/8+v4SaOIUgMc9C3q690+d4VvZLF9 Qdt0ei0Y5+16/T/stHXfMAjXoIrepOrXDVtF+iP4LkWIaSVoV6zHOZZf X-Received: by 2002:ac8:5786:0:b0:506:a4f1:32aa with SMTP id d75a77b69052e-507460b199fmr31685361cf.37.1772123348025; Thu, 26 Feb 2026 08:29:08 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+ERaJMvRMYdVlApJZRFz2Q2ecQp5maoOQwadx7iTU8Fpw==" Received: by 2002:a05:622a:15d1:b0:503:3c80:a900 with SMTP id d75a77b69052e-5073bc73d65ls41913781cf.2.-pod-prod-07-us; Thu, 26 Feb 2026 08:29:07 -0800 (PST) X-Received: by 2002:a05:622a:54d:b0:4f1:b9e1:f08f with SMTP id d75a77b69052e-50745ed39e0mr32931851cf.5.1772123347070; Thu, 26 Feb 2026 08:29:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=QHku/8gj4zDbp2p0Nf/a0HIAReriqhc6iX8XfQU4WevC+BWp29IRvD7a9VV80fvv8b iHnU/9Ab3yDwafJxazh8RbcLYtIsoROoaqzYtvtCs4hX7B1vaznP6nvtRb0/lWzDLFfO DVEzpLTcu3/DkIKM4bG08xMlCDdYRTPFH6GMzSxuigqU7x76oXXKAKbVDwU11N7+ua41 GVCaFCmiNiNL2yAih3Qtmm7dc38O/xmn5e0qqAmQyEUhe0hKiLG8uA4jJ3CO9RvG/gJh joX1DiffD2FTo3W9anzp1D6n4ldYrQ+bIj7jn+1XRj5vFjLNRWo+TDmQNCFJwxvbNp+R KRtQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=dEotZVh6TP8UfsRSGuPPFv4IwLSX0xf0S1GMn33neyc=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=lohumX+c7yj1XzVA9r4R84k/lmiolrWSMnen7QgLL+WNG8Px7DdM9D3Nplkjvg2HO8 kEyOfc3j6XFSe+/xGKJ0g/ZzUpXaGrPLsAmt4tgUZl1rdIJltnyh0JC4/EGHmIoqWGjy k69yvb/zjdP3cdDLC6FJjPMelb1kX8fkg1bVjWULdhI8AIxj54wINcu+7zSzqh+rPMHK ItaiIulGRdK9ud1NDRvtK++h9MK2yGyTVT+TyIIrZoWJaFg+HH6P19ekg5aGkhJWVcvx OVcaT79SPy0HKsxLkgX5e74xolUb+LEHInCWU8ixkOmkVObOmWc8YlRtZjBjNN+dVUfw mtug==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b="vV/YNSjU"; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:07 -0800 (PST) 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=WbjfjDY+zExEsyFLj4mNLEOqWdGwqQMjCXj5/fSsRbLVfZ/3QrseQ/ZAISLx1eZZFAkv5FdF0tiSsDRyG1XAJu/jeuPuvz9R0z4NSY/Qg0JvXhGWz14B93lTKqIunu7JuGDBBr3NqeDSjfN8DgvmKpYDjt84vRGdQbcn+MObqRirt7IwpMBPS9fBe76xaNBdiGVcacC6O8ww7XyMJ0acwsMlfzBxkRM5WwmupiiT5IckHOlye0NxfvTdUZjJu9msy/svjizwn2QxM8ME3XkLmrMQGrBTzOMA7OxTRW6CrXJtJZ7kOkru2QR+tBFBjcoK0aSjkdKKjdjcniYtNQdCig== 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=dEotZVh6TP8UfsRSGuPPFv4IwLSX0xf0S1GMn33neyc=; b=jqa/RFmjySKlRA28posr3HpQud30YTsIR9sySxmhfhT1v7wm9sl0KwnqmKa5noHxk71tsH84d8TEcg9agKMRq13HNe66Nt2CAfvRlUvw5AG2QORmUVwlUc0SAP2K0bo04DB8PeKawWLudPuUWHVrhNG0480xpDVHUCFLg2Qd2MDh8bqXVI1w3iGU1P+GxIx29uFH4ubHVwPnKmuYs2kyPV7k5vphhAd8H4x37MAbNJ0JSYaH8e11NMQ/TYLUqLD06XWMKUqmhsP/ZtEbyanziEyMA51ylK+43Mk0hpAT2mDy6aHM/9XxuhHiBqzAh7bp7MKE7CzyEvFqe6OJSjZf4w== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:04 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:04 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 12/15] apt-fetcher: implement support for unshare backend Date: Thu, 26 Feb 2026 17:28:37 +0100 Message-ID: <20260226162843.1642329-13-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: 14bf11c9-97b1-4dcf-1694-08de755427eb X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: pvB55N9NqrHUzCqSRYvdZjFTUar6fqzl/TUog9Qa0PtNgPnaSzrbLFWHAAH84HEMQAzsTD08bHpFxWgg+jWamJk1FXhnsmiJrzV+EZaTKuOxlSYExuryzBwKzrZpn7medyRaNPrp5pONU4nqGIHzeN0Y4brheQO/iyvs7QwlrM7dpT74R0ub9uehrGbtrpOmzhJJCQW7qJUV8+G6s3BAdBkWFQU0y8u46Oru1uagKOMcxVFRfLtlVZS6GkHMBgQXrSBm/pJLYeyB41HbUbpmU0fqLxxtFEG0fTp9g+MLWHII0LCJbFgjyp4B7S9Ph5vff8hsmToufP19AZZ7Vghg0FGoy5FEJYq2tvapT3WIvQPygowDAWIySHRizdSozNATFVZc6NzIR/HsqOwwmfLiNCMs3lC7K1r4pJJVcJ/I4nqrg6C7mYZk38WL5vQoxdE7/rBC2J1wFTXcLakj8ksadkTiXAlndA1rPs7HYytNo1kR1FspGAULCPgrhlqtMBKbDds2PHnEI/TR6tP6md8amXtNm136kpWrY+R80IqPxraFOjjFLPtHkCqI2vNKvFC7tib3S4TdZbZdZ3LYhvJUenh50zMlz9j0MvNfBl+HDj+rBoV0sAPD+/vDeZOwlnO30hYbS5UwTajb07gzI/vML5RXC97nYZO1zxt0XajXJRCDDwCC/m41PgCp48qSWI3lJfOsA6vfAUjhQmCQ/6ttjVO7v/j3GXnH8AR6prCtDmU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: m7Zb/QV5opCVbuAtUFaqLxENUjwQ96A+4z64EPyH9UZZx1QZGQgelUXrYLuXqoJE74hiRorVjy9qolgU3Ny9mZ+UdBxkOg5/ZdrKJIguuNAQiwX0iRT5s5V5ITU/ABaVFcdnPhLibBCp9Gmsos5k77jv1U8AH7AR7fKaZOm7kV83Km8ki0e3rbcPbNmdjOZnqAIz3fSh+Eww9nVaxrBQjDbYrwm9MxzCEbpfFzR/lPkVMxZq1ZrYQPKiCGemKeO3n7ja9dX3DbNlPiTQJ4x+pgzpAyXDKDAm4cN1qzDNkXIHO7v8OirT+4ZULQwqVKlLLiVrP2WJ2WPPQdB3+tDLP47U/asxAa6hCtOLyXHUcf/TPAOm0zgL1cwww/RSTDRw77QSi5RPSNi8q4pZWv1Rvv9sv1wbjTcBLGAAQA5/W6Coq58xdI7fKS4XzYheckDN7JFJh+LrahOp87PFz90CK0SdogLNxQoZitnjrYQ/msBxbdxfmKiUKacm3zMTIW6vft8sW+RBUWKTh8djtOJT6X1J2EodEcc+geTOaq1v6OtpdB7cGli6gFZ12gsvLGej0FHxyt/a6A791YxnaFND23UUBcRDnfoIpHbaDAtC5TISrc/tdM5ztjnlSJheCi9zSRC3SHIs96EDdxXF7TCTs+MKd/rE8ZXXlUURCxRR1GRaQGXcyhrTl6xm5xIWEYi6aDNWH7IqJ4blyksY/m52RicTcP4TVxu8NV9NiL3ZYaBu2Foefqm/bDCPfgoM64u7p7yqeebhAVME17AE3vcj7wpXVa6GJ4sKEnWygozEJmIIkny6QnWwY53ig+OH/rRSgS02Vwed07xTeV8ffy7kyN5uYMYtVi88r3A6D5tvgsmdOz0zWucbXUaSdumNt6rLQ15XtRzfdypew/juByotom5rqoqdH+wTn/v9FkLjy1VDyzLMraGyiKyduQbwll5jNONc1dDlvrdI85izI3xihVCU7gfXWzFAUJRImp5uABixz5FUEfDkIxnOIwKQxY260jBNhkhh+ptB/izNWFvJQN/l/k96Y/T9A6xfVVXsrybQOlLtUx8BPXBtR3mcL0Q32jjDQZKgX81V6dSGA5blMlTA4lCN1VQhSVl8W5TwZNiGVGOBHw0QaRBGmK63YcLC4qARpWSV4HR1vsKKBtQ0eHLixl7nGcM2ewK7+/1Q8xc7IRzPRhLv0cdu5PU0MzRxXrfX+10/EZbfzTjdn3urw9ta/rrOVh0zvy6gJquUdgwTzg+8UISbqkCN22CI9D399KfVJ1jJYiQ5pYUfFEtJpVD5B3XG7AAsEq3YR/ChkWeqxbG0yXtGJmhDJnlpOc4jVMwlZpmavTdzL5DI2YZb5JaaPMfngQpblbhW9DZA+Q3MO6FKt86xL72L/dSBZiwULFoQ9XvAiXNmB8SB9HVL8hOm1LAeDfXe0xoUaTDtj1OyMKmhCchIsWVSBndxSgDQszDZ9jPg8yMsZKjx9van3pZ/ovVfmYvJrASFmJ1cRflIJHoyst4iZewtxi9wLnMvnBuyARb1vh1Z1I0hu2WdYBKZbEzUWAyfjUD+YJ9FFY73yedTIgSrKb5fgYlVj9s4d8iH0j2xv5f33xSbjcuScjd0wx5Ao6nfd/qz1KwFjo/jmiMQe8XbEXHreFSiqJ/gTgIsC+YJpcp8K+wzYJbMiBlYUOYL06Xz+JY1Pgbuqt+bLeeAL3Ia7hi6lrsANDwDFJgyzOgDUpRo5AWS1LBWgUIZKOu3ZI/rkwEtGzhI3bKZw8/pNpRuat/HghebeBeWkMliBWdb X-MS-Exchange-AntiSpam-MessageData-1: VBkLPjFPKnKjWrPRKI73pSBZCUsLdy1hPVg= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14bf11c9-97b1-4dcf-1694-08de755427eb X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:04.3526 (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: XHbTfGsy9HDbuDdFGajZ08bkwlS6UoINTyEnJWh5FdQCA9M0EzG6UPWt8K0D/IvQzTlsLjvMsB/BXqi0/ZUm9tdJzVPKYNxIAUNFd1cvpJU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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="vV/YNSjU"; 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= Signed-off-by: Felix Moessbauer --- meta/lib/aptsrc_fetcher.py | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/meta/lib/aptsrc_fetcher.py b/meta/lib/aptsrc_fetcher.py index 37c84fa7..983531e8 100644 --- a/meta/lib/aptsrc_fetcher.py +++ b/meta/lib/aptsrc_fetcher.py @@ -7,10 +7,13 @@ from bb.fetch2 import FetchError from bb.fetch2 import FetchMethod from bb.fetch2 import logger from bb.fetch2 import runfetchcmd +import os class AptSrc(FetchMethod): @classmethod def create(cls, d): + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + return AptSrcUnshare() return AptSrcSchroot() def supports(self, ud, d): @@ -92,3 +95,75 @@ class AptSrcSchroot(AptSrc): finally: runfetchcmd(f'schroot -q -f -e -c {session_id}', d) bb.build.exec_func('schroot_delete_configs', d) + + +class AptSrcUnshare(AptSrc): + def _setup_chroot(self, rootfsdir, d): + sbuild_chroot = d.getVar('SBUILD_CHROOT') + unshare_cmd = d.getVar('RUN_PRIVILEGED_CMD') + + runfetchcmd( + f''' +{unshare_cmd} /bin/bash -s </dev/null; + tar -c --owner=0 --group=0 --numeric-owner . + ' +EOF + ''', d) + except (OSError, FetchError): + raise + finally: + bb.utils.unlockfile(lockfile) + self._teardown_chroot(rootfsdir, d) + + def unpack(self, ud, rootdir, d): + workdir = d.getVar('WORKDIR') + rootfsdir = os.path.join(workdir, 'rootfs-fetcher') + extractto = f'{d.getVar("S")}.dpkg' + bb.utils.remove(extractto, recurse=True) + + try: + runfetchcmd(f''' + set -e + find {self.localpath(ud, d)} -print -type f -name '*.dsc' -exec dpkg-source -su -x {{}} {extractto} \\; + find {extractto} -mindepth 1 -maxdepth 1 -exec mv {{}} {d.getVar('S')}/ \\; + ''', d) + except (OSError, FetchError): + raise + finally: + bb.utils.remove(extractto, recurse=True) + self._teardown_chroot(rootfsdir, d) From patchwork Thu Feb 26 16:28:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4924 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:17 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qk1-f187.google.com (mail-qk1-f187.google.com [209.85.222.187]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTFkt009811 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:15 +0100 Received: by mail-qk1-f187.google.com with SMTP id af79cd13be357-8cb3b0d938dsf923350085a.2 for ; Thu, 26 Feb 2026 08:29:15 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123349; cv=pass; d=google.com; s=arc-20240605; b=SybyO0do3Ym0kXslF6tGyhKCwBcRwuqWBR5o6NKuOx251kvxGJw8JG56rfI8jaFHtx u8DiVs/S4QZBh4AqUZ4SO6Tm2/B/7CsFEdlvU2nNx0XlGLopNh7kbY7KsRp5K1X9N1sZ exMojCxo1v0+1w3m+VzMFrZ2wjS7aWn6Ejjptc8DYhie1xrl2pRiKnfDmWniprW3JyP1 5GZUrsgqXJj1mMT+EmIj4/YW0p15UkxA3W0UdmNn6P2U8KAQXlPe3fYBerN3rcsYBjJ5 EfeoKJlEvfzwhgSTGZmYK0jdUTGcT8YRY3b+xa1raGsXFU2XTy1SsLBooT/xFmiVgz5m pGBg== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=wxlmPEt3KIHsxr3Z6HknGI8ES9Sc35wvVsA8LUoxoBE=; fh=0/ESJkGOe2QSojtmOI+nY1s4+Q2vdw+htquk0HhA2uI=; b=Ww/MC1wSowuTwTN0JhUxi6iF0PBC0CKdu3oVYmAxL6679WDAwqEcODfD9l+mFCwYy2 g1s0EPTj8m2tc5FfIbUTqW4+jEHgy6UsPKTAqQElzPDWBAAOsXaWbW32zec11NcwqZW8 Nnu2Tk2BxDscTM6rUrs4Bz+8vJxKo6rkbj20LbnnWUwVUmVtpCABqhD4edltfP4Jv0k+ 8/glLI0xQRSoOHvjdeiSdwG+w+hSKWQswRDFES+uchm9pAq5FUbvMtZAGMpcT0LgUUs8 0BcfxMyPhjlHA6yhNLAztR465z1wG0Yg9MiaWNJdSDjGiuEXPohvsNKS1xJ7NdlQBx5L tS6Q==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ARpTav1v; 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=20230601; t=1772123349; x=1772728149; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=wxlmPEt3KIHsxr3Z6HknGI8ES9Sc35wvVsA8LUoxoBE=; b=cPCtsrzn2UGViYlUeaogati8ernTGSzyMD9z04SE6drZyH9gmuXcd4wK95xjKbA1NF nY8nvekzP/l0eZ8ZNNqPW6T5OAVdAzm+lI8dktDSc2SZjdCt27fFN1vUUsw6sc5KVzDe U0BXqw/bXEq0yJPFeiad4OiAEpVP8lhNH9bMsIpsAobG3hlW4ZEfMHCMveaKPDpE0oHY LBGtM4vpcM7cbqWzPymIPbLXY1NCW8NUeqvcRGTPn0WuseUGdfCJNv98moj7sH+awtbc hrCto8/8CU76Qku6I/rrnp8VCNZmYzpOBwmwAM4FewSlVnzt5oK0AkOfItWyFzpzg/NO dLOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123349; x=1772728149; 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 :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; bh=wxlmPEt3KIHsxr3Z6HknGI8ES9Sc35wvVsA8LUoxoBE=; b=jPjMIsA9ehmF8i8b8OGMgdOm7r6XB5QZ431OyZsRE42SxeM1dgNGWPaw/O9fevIwHl MWUQXWto5r1qs8zZ2Dk9AWiQOYMa1m0WdqT7HRWd9h1DxbVVZjCNQEEC+MQUVlc9E/wY 8LUnnN/OzZRd5h4dMxvcYQo/PcqObgQtloRa9qHmx7jMFkPSl0KoZS8GARYnZ0I+yrwq nhr7sJJS2ZwcLYush0FKVhUz5o8mVusScBFFDFEbZN5COzk3DbMuaytQb+loLIwiNroj vVdmDAB20Q0FCDqFKs/EnVbc0BUs9RWRDSqjpZUFyE28NCcHr63tiEGOWn0eW+kvFGxy u3qg== X-Forwarded-Encrypted: i=3; AJvYcCV6noUlkHh5SOfq96f6z9SeJ10mgvANxmtSBYWaS11FAhAiGB4x0ASV3/oBqGEqgM9l/mrMu4w=@isar-build.org X-Gm-Message-State: AOJu0Yyq1gCyoSMG/hU8zB2tMkr37YbEAAxj198hCNSEYok/qQ1s3QMS ZZffpj90xEU6D0v8gKOzFbdMWaUNPKdS7eYmj8Rz9Dd5sWPf5Ajp8fzC X-Received: by 2002:a05:620a:1707:b0:8c6:de6f:898e with SMTP id af79cd13be357-8cbc1101e3emr286844985a.9.1772123348496; Thu, 26 Feb 2026 08:29:08 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+H2/eaHa440ZlkflmIJ48CoVvS79QybuvkBdwPYPFGdvQ==" Received: by 2002:a05:622a:15d1:b0:503:3c80:a900 with SMTP id d75a77b69052e-5073bc73d65ls41913881cf.2.-pod-prod-07-us; Thu, 26 Feb 2026 08:29:07 -0800 (PST) X-Received: by 2002:a05:620a:46a5:b0:8c7:f61:fd7b with SMTP id af79cd13be357-8cbc11bdc03mr325601785a.57.1772123347475; Thu, 26 Feb 2026 08:29:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=HPUgPZkoJeJvY/UM+1tmcodIhyN5QxaMSh2dSQkbgqhBmYt7PTdBR3LojFyvy3/QPX CnYO4Bmb/DndpSN3VSWwM3mQ5aGBAa7j25tPMrC/sJR4gAb5fDqfqrFl/y9Q0Y0vSA1Q /Qv1y8TA9ih2usj3kJyPpKd4KCQtT9m0ygwcZO7WP5YMoF1inqrFtglqeDimoR3SIjT8 FJe8o2HdLjrMMueOXNUNQI8RrG09hiTmllg/qyfqMvhLbTugK+L8Pm04F9ZTanENB3/Z PYXtu6CREzUVPBfthCh6OIwTClB8D2QvvpEXZJwEE+yozjH7mPEWquEx+B8g0Oc0oHIo HBcw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=8surgULo93BPhcNd4D94W9yOMSOwmYRfZmFqnfzN9vQ=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=SW97eNK+k+I6svQGbS4I/0aADPWc/JTCAO6ofMM+fmOxaMsK+59vyvCfQau8hiDKmO 3hO/64YAKBQwNT5/jH3sVxhco9iDrouECvtYgdGHN2WHp2zhynQNdporSHSl9VMHm/TV m5quepQfvJ+DIwqN4TTvRcQWnYZC6u4nvAVcx9RM1XzQOKI8gDgTmuwfAJCBVFWmxy6f uRG9nIFTAdIdn2+GnAge5Tu2sAzrXa0wPz+CUGiT9m/4CpAw9n0YyKje+BHJrG5y7rBL D0aGTckQNfoKGDCQK783s2AoMYBvIr3ud2VRVj0KB+HHTj3XTBfc146ZYTJD9WggcIwS oHig==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ARpTav1v; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:07 -0800 (PST) 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=agxnX18VEysesJF3YM60l+kktAQVjo65zW3s9qZVYz22HcGwAKUZMKbznDwoow6LNkpswNPZzVv4HDHsCLi+879Kc1scnhk3jK893q04NG7ValyheIyvQ84DI47phptSs6gahJ4SGyhR5VvMC8YidRSzgky/i4v6ORLOr2VpnfScedFAi/d4Y39v1y5kcqlPTrmzDRRlEORI2Tq+eHs6lrcgBaMRmgxUdYkPYbjAc4HJ6ycCNMtmEduybwXJ+NVLQAk3g6fQWOAW70NplAQjE5+r5CanEZnVFL62NZKRDf7mf7SasntDEykHogjBfVf14UVg0k7nigZ672Kb6yD2DA== 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=8surgULo93BPhcNd4D94W9yOMSOwmYRfZmFqnfzN9vQ=; b=UoHgUoNLOunR7BXigcMPdHDFNegmsjhrROdfaectPMTnoy0h5osL612d0CQD+/WXTd7OpfOTcJWc5WaBKWJv4tkEnGAGARY8XDEMcckjRG6l2YWGtee1aG8jsrUfW37OSlozI917uPxGka0EHMJPB9K/9VOA6/1quEGiJ9ysXj8gwnvwBKi3/B/w0qvWstSXSIRK7/AyFLc57lLdPN/CN7h2OL6usMEpYTPlcyLcJOC2gPw+rIS/bO3rnXC7CPbN5UdGCRb25jtc0952xMjw+tGOZZ0h1lA0tSM8NXgXNoKGtUJ8tCqnvTXr8goqY36Q9gppoRSvqNHIdGH+O3JpZg== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:05 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:05 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 13/15] dpkg-source: implement multiarch support for unshare backend Date: Thu, 26 Feb 2026 17:28:38 +0100 Message-ID: <20260226162843.1642329-14-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: a39b00c2-dab6-49de-c4b8-08de75542862 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: q9ivSurEyk/2cjeEcH69/IRjnwISUAFZGDf/WzANetiKTBUYd97g/xT1FBv6Hcww17jyCuXiv/uNVThiNAANhcXFOtVwo1GUwEbLbhlz7L5dg9y0KSJ7/7lKNvPBoa2e8llNNIL1lRJug/ja8jOXhme3wt0zXEP/nE0u2SZaMA5mB7CRRip1KoW5Nb4ZCmKEWXNfFTjIuEranbKMKDQvKE0OF6i018DRNvEyczftoCF3n1HNeHiSJeoAEjmsx0ZZRxS8mH7LieecGy43ESvfUKkpPHsA8la/MzELvJ21MYbcMtjuzRoHFTAP2xLIkYe8PaIVe4AsvZr2sg1ohNTf516rGr1f9i5w/cE9/AlNdqBkG3OBW2B81kCTjcnz7+83V3tLIPf2Cps9EC8gvSoFEqJv76Sl7xnf8aV/qlw8vGf5bLzOz+QJhlzz3C1Vw39bHZ6A9hSDeHm66hMzGlQhY2VMCIRXRDPVHRnxXITCbV9auHXWKjRbdw3gq8AwFKlvLWQApN7GaAbqDACQBCJkAt8iiRJUY/ZxUDeVy+iKbV/ktzesBGi8DTtHfrmMff/Zr8MOEhlKz0ysmAd5B4fS21TAdnJaCgZ8kXSDg7lLbzV1A5l6J2JTjpx/dSmSiYU+asrKJfmCBjmviAKKKnyGlvUWUfbTFA0nAekCBhMQdv76PYxSKsjOdpozkkRWGFIf4ksjpCZPEns44GAbujiy+0qkflJGGRkmMGP6GeY/Gr8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: fuXJbxE/LilAcoOZ5KczG1uK7ZnMXJZw7qhdDGq+Auqpg2gx8wVXPGx9ANeUM4pKG/ocuqgTxD8ryYNZILLygQ6QiKUE0gshJ4tUvfN3Pij6nlV2eHZg4Q/eTeVoLngYNB6izzT5vxa1qu7p4tx3uAutxGpNWRMGwDR5L8cT8ISbhK5gre5tGUQT06ejFmo4gn2MCHk710o8LYBZjb2uuHe9n61iPoVJEyeycFJQw3HNayaKPDF9If8GF5e5oUB8pGkdgof52IDjpYf3LPmRunOseO8/fYs8NKfESzpw0h6fQLG0CvB7ZOY2o/tDAMXY3cgv22/+8DshC98k8oWLXXyTfdTB/0pumTLWLGkkhiHBlfKoTxG/ezsR14C82rehzezF6OPvayX/1RIgvpQbERSYExQV+9HmVBjCwjfhfHxTdDLFFywXu5CTGYdsNkC+3lJpFvR+1fAz+BCFsZTcrZvj82qBV8H/eevbyM0bCI+YVg7Rdy0ItWe86lkycEtpryfVtqDtHAF4FeL9xq656cyccuFXt7qwanHxAUcGoa0q58435isMNwgknPUgDa9rFSQYTyeYeVztXQYjS0XAAhIGp2FqC4l9ZD8wA6FATtrWxvQLIHK7asRrzdXkh8wsaWjt67uGsh8fOAb1Cm/Uv3eah0PCV2foAZ8MIYrpsa67RsAob6hFjWk2Kv6nvcQtzEvuc8f93C5kRzdPuSY7yfss+4CQDEN6ojDHyUtiVgtwC4WoIBSaXEHmWZTcxtuyDqSPtDNHqKCtKiZI8jrMTEAv2s+dLZ6AhtPfhNqjqS1+JO5jl06dFCJCjcaLNCppJn8pFP3EnTM7Ea7aMsZDAxwUOKKbzHFo+EPut6rJfaPJrRs1NxQZbEVu5GleLakI+CM2+PUYUkanQq3VQxclDiJhlTe8SJ6bsEXM1dRJXs7fjbcoPp5knedkk3WyvqqIjq37WU5J86uGRDxLHdS19QPnWLouba237MlD/LSXfIcfZWbxBcDoJ1lkCWzGPxCvL3sQU1vbhbid6qVxRmtaijwT/sF8lJqCb2S+2TOUc4L7SuLxaD+dvZ6REpdODJ/bZPqfRdZI/iGg3FmEUi+bEJKN2QSCXrCH+M2LJDQ2DL11NzoiRbiMH6IaPMjVfnIWc9AcXiRi+M3/4RwbFp+e6IMiNf2p5mgkITo4jWIeneTeOEiK54uHYBa4KoBbKfCuMiswhWg25iMEdpEKcYA4fzbNgWfHldfXJ90MG3ajadcBpu1SrDrCKknVX92Mi2qQqx/2hhP0VlBVqtklKQs6CKhJtnDRfckKh3qA77Sa66znny3WjXISlm4470JP9oD1w4ZtgXjoUa7RUmN/QQDPE/byIGChsBpI0NKGTJVGFr/8Wb90wqSGu4xKFPpjBUvjzjnxM7UnaAb9FRTKVj1/UyoSc38ERmbxE0S5rUSl4LWkgh3IIL9TCmZ9WpumUwWegvZZil/7eltfxAD34w1zkObujWjYnLNsZ5L62XuEplMbrQ8MQQoXlkIPusa+BmiTQxflckQ5Poe5mc1u4m+T5eCCFbFo8Nf4opdT3YeMEx3ApPmjr5YGm/o3sUCrbRIlPetwFb9CPX6u9YD2fDGnZrXn4mjvA4UPFMg9D7JrQHODqH5j/VUq8/R76gnnTiq5Jne2Ivpl552KjgNPVmwMAmvAt6ICPcAv/QmkWGGNMBpEAZP8Yv5KNW46vlHL8wR90DuOx4mkeTUP8oOMB8pvADoAa/1zZZQtYA2k8tqVRbGKsPY9tmO1zSCd4mrUw+ff5GO0Te5r X-MS-Exchange-AntiSpam-MessageData-1: nsgDrJ5t0p+xa5Su7a8dFHjq2ZtXLsevp9k= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: a39b00c2-dab6-49de-c4b8-08de75542862 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:05.0219 (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: z6F4hJlmiCxWAte53m5QCEVza1L+T94lZQiTY0/WeMjkRkUQEBwOzdL5n9P3CBUHcoeBabFJeGNGVfPI1R9zgdNpDC5I/7zxabXdfz57DHI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=ARpTav1v; 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_H2,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 fetching of a common source package needs to happen in the chroot. Previously we only had an implementation for the schroot backend, but we also need one for unshare, which is added here. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/dpkg-source.bbclass | 38 ++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/meta/classes-recipe/dpkg-source.bbclass b/meta/classes-recipe/dpkg-source.bbclass index d0809477..539c2992 100644 --- a/meta/classes-recipe/dpkg-source.bbclass +++ b/meta/classes-recipe/dpkg-source.bbclass @@ -52,10 +52,7 @@ do_dpkg_build[depends] += "${BPN}:do_deploy_source" SCHROOT_MOUNTS = "${WORKDIR}:/work ${REPO_ISAR_DIR}/${DISTRO}:/isar-apt" -do_fetch_common_source[depends] += "${SCHROOT_DEP} ${BPN}:do_deploy_source" -do_fetch_common_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" -do_fetch_common_source[network] = "${TASK_USE_SUDO}" -do_fetch_common_source() { +fetch_common_source_schroot() { schroot_create_configs insert_mounts @@ -83,6 +80,39 @@ do_fetch_common_source() { remove_mounts schroot_delete_configs } + +UNSHARE_DPKG_SOURCE_CHROOT = "${WORKDIR}/dpkg-source-chroot" +fetch_common_source_unshare() { + run_privileged_heredoc <<'EOF' + set -e + mkdir -p ${UNSHARE_DPKG_SOURCE_CHROOT} + tar -xf "${SBUILD_CHROOT}" -C ${UNSHARE_DPKG_SOURCE_CHROOT} + + ${@insert_isar_mounts(d, d.getVar('UNSHARE_DPKG_SOURCE_CHROOT'), d.getVar('SCHROOT_MOUNTS'))} + chroot ${UNSHARE_DPKG_SOURCE_CHROOT} /bin/bash -s <<'EOAPT' + set -e + apt-get update \ + -o Dir::Etc::SourceList="sources.list.d/isar-apt.list" \ + -o Dir::Etc::SourceParts="-" \ + -o APT::Get::List-Cleanup="0" + + cd /work + apt-get -y --download-only --only-source \ + -o Debug::NoLocking=1 -o Acquire::Source-Symlinks="false" \ + source ${DEBIAN_SOURCE} +EOAPT +EOF + + # run cleanup in separate session to ensure nothing is mounted + run_privileged rm -rf ${UNSHARE_DPKG_SOURCE_CHROOT} +} + +do_fetch_common_source[depends] += "${SCHROOT_DEP} ${BPN}:do_deploy_source" +do_fetch_common_source[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" +do_fetch_common_source[network] = "${TASK_USE_SUDO}" +do_fetch_common_source() { + fetch_common_source_${ISAR_CHROOT_MODE} +} addtask fetch_common_source do_dpkg_build[depends] += "${@'${PN}:do_dpkg_source' if '${PN}' == '${BPN}' else '${PN}:do_fetch_common_source'}" From patchwork Thu Feb 26 16:28:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4923 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:29:17 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qk1-f192.google.com (mail-qk1-f192.google.com [209.85.222.192]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGTFPf009805 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:29:15 +0100 Received: by mail-qk1-f192.google.com with SMTP id af79cd13be357-8cb413d0002sf805708485a.1 for ; Thu, 26 Feb 2026 08:29:15 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123350; cv=pass; d=google.com; s=arc-20240605; b=TYi3iivE4ujuPQmaazJi/K7jcR8iKMu+19EYs8BHwiRKhUZPEmzcR/Hpmq+JZQ7Mp7 I2gcbe87EzkCBHMoGhfGh/PKHwR8VPkTnodTVSAf1bU3l8gHQ5hDFWoS97gEdeiAMc8b LogWAPD7uvn7xOpswFVbVUQNvuaK22BsyfxVrc+Xf2hJfiFXJsOgoySNH26++rGBY1RE QCWjJD44GZMckUtlnW5vOutKqp6V02hBtzjiSS2otbIiwh5GAGMaITwf1HCFZW2G6V76 GTJCxVPXetCCYSU+37DP33joHK3iwAKUTLFseek54QGwOigtjTUe9mqIAlWUuW6hdQn6 y8yw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=k/XtDT6QwkYnb5It2S4musOIFJDmf2KaggY0tVBtSuY=; fh=ahf5TWIlb0+wkCFr0mc+8ZYmKHoHRIep16cOzoIGk/8=; b=KZ3lLwS28G778klNZCEXARZ064HJ180zcg4yeKDbMyWgfQXIUyzPgFwgEgK3Gq2Ss3 Ouhe+YcZh+sNMJZYH0t1wAdvXYfdBNllsbzveRiGaacIC2Ow0Gqmn3VJE2nExZpKW5sr f0ab3WVl406KuNUbnaoU/i3rYI47yKcMb/1YwBmiBlwq87aenkP57dhfS7L4VRaaqSTX r0kMDTs4U9yRvzvc+2VDMW4BNfxlSClrNoZs4OmNZvLw+/0h8GkoKjOjs3C2f+Dz2U7N HNIkQxn3skicQmy1lL1H3Bdi0IdFGWSmKHcBe7aCMNVY7itUKvXZh5KQiIEESPv7HsxR jJxA==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=c5VJWwoI; 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=20230601; t=1772123350; x=1772728150; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=k/XtDT6QwkYnb5It2S4musOIFJDmf2KaggY0tVBtSuY=; b=M0BLPMTgDP28HgBmkIc43NrjmV8nY/8hY8IfEMZagUx9+LIxOnZOr//YGAbc2d2dQq grA9mQlRv7yTetczIeRv3Xqic+iXDmGWKas27xhXTDhAM8wUJ2ioj/qUoju/XhZW8SCS pR/WYNSfzmLecUaEZmRRK1zfnp1TU45829CBVVixkYEo8+BANU5SZV6IM5T8l+fCGpXd XNmz7e6QXCIMpbNXDCxMkX3kTlpWwqao27djwnRKVCbxm4FtexF0ffYURyty+J1bwqiY qE/D2BagqfVjyjFCqzfR7dVe3aQaiT90EABQsJNzgFsynaeBTm/U+AmzOFD7Ei0ZKgO0 8VAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123350; x=1772728150; 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 :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; bh=k/XtDT6QwkYnb5It2S4musOIFJDmf2KaggY0tVBtSuY=; b=SJWX6bEl5Fa3X1oDSyrh/bRiXX+QKyoZhT30qVydeFwAMONZlX9UAswgP9k4+YUr9x 7Luxmi3Q/DCHZabxDznRDvk8a/MWQNEDcrNGqZW3mBYsd+rtUffU2Lgx0BoPH2VIrqCg 5qki2JmDY8cvxCOQpe14jh5RVz/rcOfFdQENQJ5zXctXtmqYSVuOkdZCNQJJECJSwOwl fS4ByTVXC8FneT7wqNqo1oGup9YyTKNX1xfzMvlpIBjjvSMA6UQba8E7B0nNIDYyTQgS AReFIaHcBSGkKnlwH2vbRGw5kEe2vl23RtSjrtrT+ZduFWsG2EfkjDC6axPyJzkREw2K VP1g== X-Forwarded-Encrypted: i=3; AJvYcCUbQX9bVef/RJB8n3CvgE41FmP3cGQk86IU1G6YlYNw7XfNDSNlC1aNN25rdvuhBGiKP5wwM4U=@isar-build.org X-Gm-Message-State: AOJu0Yw7riiw6IkDlgOfOSrpiWbh177j7ApPGXTW80RVW8xL84IrZvrS J4eS4xTRFs4JTDnmhNkiamZhnAbjsbUcTTX5S0Osb7Bxbm2/2mkedK8a X-Received: by 2002:a05:620a:f07:b0:8ca:3715:eea5 with SMTP id af79cd13be357-8cbbf36a27amr382496585a.14.1772123349669; Thu, 26 Feb 2026 08:29:09 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+GOvoTgDkyrLHOWpcyenG87RIgOxE7/TPYE4Mogmwfp/w==" Received: by 2002:a05:6214:130e:b0:880:5891:1514 with SMTP id 6a1803df08f44-899b9da7866ls23160236d6.0.-pod-prod-00-us; Thu, 26 Feb 2026 08:29:08 -0800 (PST) X-Received: by 2002:ad4:4ea9:0:b0:880:5249:be3e with SMTP id 6a1803df08f44-899c67b87cfmr51909166d6.13.1772123347947; Thu, 26 Feb 2026 08:29:07 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123347; cv=pass; d=google.com; s=arc-20240605; b=EZF0zJW+WO3bvBB5Wxdz9PHRLZSJf9ZsVhigd62vbRKLdJiww4dpztsAQhxQoRR/Gv B3zNL+qWLEZ/hpFf7ripytpN+de4myVR5fgMCMpWNYDEomSC3K1YED7u0dLKojF9Lerr lwaCNMOKqWAoDj2RC95sC4Fy3sR6nFVpZlUdXIWXPqKvf6nxjvaJ5u5Fb2v8NX73jWLY 5Da+y7KziAByViDFORTNSsWMp9p1KexqBf6L0PjoodChdARUch3EUaaGX3+zVaOWtkXn S2+Y0lzTJQlV7jwvz9xUKUk5u16B8KNBfmbA7ATvUAuM2p82Ty242DnbODwyvY+hE4I3 7LMA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=DcAweEGl2Gym2gMv8P5Mc6Hj+9ib02/tvh1ZTygKaWI=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=kPT9hnthc+BOIYM68oJQaFdYAmZujUIyBLP1bFV65fPDtusp62kQrJH7v4zlTFrMc9 /vkD3Mqa3AGw+hWegymgQg89QW0YyYi0lAiWmOthrTWx4cXHR67GtCLkOrWesJAkVbmT XVYHI2/T6y+DR9vXadt2RPGTOqGRZ3+rSeuRzwZI4mMEYd7UH3tYnMVo2KheuKFMMZHj FA9+zh6DA0rQpWySeUXzKwi1bTFovaXnUFS314d5Ysm8L8KdiJHJj1jPjzs/BtuY0NG4 CPlINKilqEcf5j9RKWtRsMELbnodUpTZDSK/mi2s8IQYyhJ6qMVhJ5cVWlrk5RgUhwtd uFgQ==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=c5VJWwoI; 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 6a1803df08f44-899c7160d0fsi738116d6.3.2026.02.26.08.29.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:29:07 -0800 (PST) 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=mcf3ho5xKxqxh9m+P0Hni1ZDN3PpgYtKzpDEGyS7Vf27gsM5i/YIwZAm95TpJQGgc3nEVUi2kymiNlr9+e8QXpDXAbetT25p4uQ60jvo4hkbjgBH+i1GGB5maFOQZO2WPa71Y63Uafe1RRbtVES+eq4k3+6aDov5VzG6vzkDg8HDjshnRcw/ky0DpRjKagGyhgK0lkF1hhRsaRQNpKja/LZKje3gN2aIzZGxfmv8bI3TlNhP028em4umRMRvGQM5zh9gAn0IT7HjGOQyFz0uy2ywaqh8V4bzCEFVzcNr6YccpJ7LBaZsFehKe8igP1v3kepj9vePeFi3WAm7CJ9FJw== 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=DcAweEGl2Gym2gMv8P5Mc6Hj+9ib02/tvh1ZTygKaWI=; b=PpSplIlXUAg+TGICeUp2f+DxlHVH+zSYdiDZcdaDUKgonh00+LHC/oyRRJmSwEHkb6MH93m70VtaI5OWIWZN7nvjoOoX7txMv6icDIKVnpJnhwnsf4NYO4UXFG2Mz3xdaSkSlIbRVglajpNPJ0Hbfwyy2yvvlNzENV+qkQWrDcwEooz0jskz+bTUpxdaL7MC/vsj4FODOQ3/Ad72RKSiiXonvLrxWVmapPhbw9qo7GzbXfOH3t8UynRo0n6cF+RJa7OnnCp/fgY8NaGTnhD7EtS38+3MoX9KHHCvs43X1HArlOuOnlKiHQJ37Nbw8suxKUZu8gQhy275sNfg1cOKUA== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:29:05 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:29:05 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 14/16] rootfs: remove temporary sstate deploy directory after task execution Date: Thu, 26 Feb 2026 17:28:39 +0100 Message-ID: <20260226162843.1642329-15-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0218.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::12) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: 3b994295-08fb-4d56-8135-08de755428c8 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: 9tsTGNUGVWZhBLqYXq7fSt7Og/IW9uUbCYXaNHRKneJBs9s9mCTNuw+D+VEFCwZt1/aypqPRIzF9azznrQgAJb7Fj8A+SlLCmjlX0S/9Jkyalv5we0Bn5mS4Y0DlvM+J1EZH7Y2lnYtpMisGaMf7BBi2oRIVeiVzTVh3W0KtioNFIrzH2IGXW/WHtxwRS76UcohQf82csp8gAFng4s/kihMwuXBRp/yRqjrFCAfF5wZ2iX+gYRYUKMa9cvCZMb2VGanrn17E0pizsoJbAi+Koad9Ud81NZLbwsaGhtuvWqK8LWS0syOZ7R3a3rkALvCYoITcvxKM9Vi++phg41xPfMqb2f2x6yhpd8p+f43KktaJftZr1IjZ7TReqrL+plO1p+TGXKS6QvOhvgl/xfs0w6jM3Hb32e+OFgDFrqBIUL55or0zN95IC2IGyIl/V7X2G8yMqza8pHcOPer0aqKLJVJqp4GmPdOgGvEAVdViC/+5k4hZCEbN2csE0rJzc2QIkPoG1aecdSpmRKwM3hmGPJ55iPPsMkZ0YkJ4cB2LpR/+A2rHRYv7aSWmANRWX+WIbdI6Gdwfwxkc4rAkTQW2w9bsGwbhHA/qpKWLN6CEdesWL2MCw9M4ISmME21XpcGy0yDk4MI4j8dOnEW/uOwraahGyaLskAjTUC+PYYUXo40+Ng4I7BAy7pKPFJ3QaKrg1VcXWrrnCJnYKknXM0vM0kJ77mpfrnkyIDxExnLVhKw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: 50rET0/OGeCyuiD+uYfENxqXeRxW/2V45Tfqff9zOH1+LmiQBw7LeEWUKMCv/1ZJdusdF+UPXhVdpxNDSMM29T2P+dTQ75euBYYCi/31Q9SWeWbW7UZNKsfsflempZB4zh1dZWXxnDgUPhY9urYyfDC8vboDlhz4R10aOC9xEVD0WeFGQvE0c/unHOX/ErZA9iGmyb7m6ltq+kCLxHgRSkQobzyr3F8CDNJUXqQulCsTvC045s6ZhbfW7imjKOihoD2hWw+DadoXbil+IMsPzjAjSs3YHTnQAmzv/gbPUT5a7BSKMG3DMfGj19QGV5IUxiJmJFBFRjPLj3q23R8IPwz/Hw3I87GLL3vLQU2mrnbK4BKPBNliV6ZD8iqHVeOr07zllcD+RxdgU8hN0XS0xfNA1nu2tDXyTPp2Qf2nj/qW+mMQ+Up8yjrdBGS/IHPa2zlSritxxDQTzUMyBqnVJ9keSfpaEs3ZZLD38uE7PMFa6ki+L5+njbFhHq5Mo90SY202bnW8ygxbI+8AyT9ZSH8vh/btAmIFf2q88oC/kBwUVlB7kIykuQy3M6aDj/dQXanBu4gslHGp2+a/SkB6SqAp1buiskhujrhY6Y7aJTYtNr16q9AN+VZBhT/bnAzP/czXS1j4pNxkRLnGu4FJzPizT9kNb2TqtCdVV3E9/I3So7vSTy2bTmB+47Bndv99MTliWGAp/kz++qzTxr6cMWyY2EWZeTtQg1JY/Rr+EjRqJ4jlVjQ1H06DQa9eUjcF33UnXJdPOJQizH6QkGRh7I9UVKWVNRtSxMbmmDYrI/bft+muY/Jc4LxXK/TLR/IbDLmlbnMg2dwPXZd2se4Cw+QnJJNW+Q8cd0MxfbzDu8ztSUC78NqGIJ36t9sqRmN8JuonD/zeMB5l3l5nQUK4R8JjOL41zcLqc+MQq3Vrhd+Ymi8bfNqRJzB5uHz7fve4ExLtlshC5DtQb0s6n5BLS/o+cyMnYWzPkJcME/g3zYAbU0jukq2KdELzw3dkpS/K+948aSZuQ5qMB/t49UnJBW/KTP2D2AS+nPeu0KIEK+IApACnOWVQuh9o70de2qtYcWO+j437LTOsZsnPovm7YPcsPGhBo1Oiv7uGUcqcB1KoOhLLv6A1ALYlcQqZzIzk8N99T8uyPhd1Z+RN6PsXW9aNIakoSzJtD+41TuVZaePMBbUE5ZaSm1cO0/HnbmmLy7NN609tU9r3I5+JnI0/IAML6I7c49kidw6PSahzBCNE7hvQ73CYVFmHp0mEt8UFBhmxG1itMhH36BkcazLJW1CXzMcE90B0698FD1A5BAEyS4ira6gjSSuSRr4tkLCTdz6GUMQtWPOKVQbDeQiGJ2h1cFc11fQoccFE2qIJ0p2Q2cx+gpD2bCQvZ+Oa6cLhOY5fgNa7/JT5cl2ErlfljqQs/5MHuM190coOjL/VZmDRMwZ6Nwdj+SMnJslusAwhYfIdnahaFMSBrwjHTs+ublBstjlLWPGX3zeEgDxFGQ0y39m8NnuUZgDEtxtWY1J6mdQR7vIOzt2VJCrjpK1IG5Qk+so2wFJV6ejEbATx85qXfOObybdEg14RTRtoWjiKZ961KkuCP5iMLBkMwLkhlMpWZmc9yqZ8iKjTlf3TZxoL5liwJkZWSyN62lNNxoz9620qTUVYAGwrZLQonNYrCSOXazS6isvJe7GanW8fe1mk9DenrcFnDP3AP4iGFdFsVI7HKvJcceNGG8dvRHVlMwfOT5OPvH5HQaN/sTJW0k7+1WprjRXWT6TsDiwFeEW5qPZUsy9z X-MS-Exchange-AntiSpam-MessageData-1: g4NzQwcM5jg9MXs649IV7o0GqDMjLOuk21k= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b994295-08fb-4d56-8135-08de755428c8 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:29:05.6900 (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: rIctykWc8UP8LJT9S1LlbPV2tpu5K6+RwgnoljsTnZbZZNurgtQ7bXXVcQIur4L5QD3cbNRWe3dkHpOCkQ6958aO7R6S/CDgQWkZAJZmKnY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=c5VJWwoI; 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_H2,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 rootfs_install_sstate_prepare currently leaves an empty directory skeleton behind. As this does not have any value for debugging, we remove it. Signed-off-by: Felix Moessbauer --- meta/classes-recipe/rootfs.bbclass | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meta/classes-recipe/rootfs.bbclass b/meta/classes-recipe/rootfs.bbclass index 46cbab58..3183ee23 100644 --- a/meta/classes-recipe/rootfs.bbclass +++ b/meta/classes-recipe/rootfs.bbclass @@ -663,8 +663,11 @@ rootfs_install_sstate_prepare() { # so we use some mount magic to prevent that mkdir -p ${WORKDIR}/mnt/rootfs + # do not deploy to the sstate in case any error happened + trap 'rmdir ${WORKDIR}/mnt/rootfs ${WORKDIR}/mnt' EXIT + run_privileged_heredoc <<'EOF' 3> rootfs.tar - mount -o bind,private '${ROOTFSDIR}' '${WORKDIR}/mnt/rootfs' -o ro + mount -o bind,private,ro '${ROOTFSDIR}' '${WORKDIR}/mnt/rootfs' lopts="--one-file-system --exclude=var/cache/apt/archives" tar -C ${WORKDIR}/mnt/rootfs -cpS $lopts ${SSTATE_TAR_ATTR_FLAGS} . >&3 umount -q ${WORKDIR}/mnt/rootfs From patchwork Thu Feb 26 16:28:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4926 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:30:29 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-pj1-f58.google.com (mail-pj1-f58.google.com [209.85.216.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGURWM010415 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:30:28 +0100 Received: by mail-pj1-f58.google.com with SMTP id 98e67ed59e1d1-35845fcf0f5sf1410014a91.0 for ; Thu, 26 Feb 2026 08:30:28 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123421; cv=pass; d=google.com; s=arc-20240605; b=gUyRz9lV1rA+iQv61sMqo7KU4/mKTBk96PpZxE4m9pEheQ327BS14Bm7xL469FpSNM lL5on7qy/257ERS/duXxGKqJWFhX2qUW1LT1uvNvsX5JoAFrtmbiyS32dfUwpC+/+kQs y3GMhWDAQkVRFP4z7ycEN0R3MnplAKFz3zCgJcnGrZ2gieJCCpSWIYiNZtKjStgSQblW SYiSJ2Au7DmBAqOmSpEQnazfaDG/tZqTZPdBGObwN/4Pjnm2nDH1BxkDStksAIklxhjC LIEl0MJzSc0/brh9o0QsjIs+FUFPCfoN2JdeP3lxNBagzSrLc4XKPoY5oP5G9wHAjLoX wBXA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=HosKlwPlGWFOohi1sbxYGFkdyuGKJY4oxztcQC88GVo=; fh=GkbUapFLtGHsQ2vqS5sD01GUaXXiGZBvLJX3CbwL6QM=; b=Z2KMlusJedAHmoNx145I6MtXylwrcxGocywk5QhSnFncSmGHiirToNDa+gmkhEJBD8 2JbWg64dOVL6vmuXs+vV/IeslK8NHDWAm5SPYL6QW6VjOOumAzr1kc6+OpkHYdhisFDF 2+1zfzg3KgkXHIv5f8vgORkeQOr89N2qUOwgfPBNAXiyt6Pe0BN7PNHZfsKa0Z6sTgas taE20dQcikWW6oWawQ0cdJMtwUra99ZAsKzVK3AcxYEeAXPEbe0zy/Fz0/NGrcKmuXvq 2JfxVb3f0JTU8dlHuWGg3nGrxjmCv/ygDU7btPe9J5zjMQ7FiKY8bs3ud46TVsJX/Jxo caoA==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Lr4RR71e; 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=20230601; t=1772123421; x=1772728221; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=HosKlwPlGWFOohi1sbxYGFkdyuGKJY4oxztcQC88GVo=; b=CBt3MoXZ6IB8sXETJrm0IyUCKh1EkxTTZ7qXmu/k7ow6W3kD2w2lzdTTFAuK4b/0py bJio4SHnyMq5OmPvEeUMqo1RLsdWjkGO1Vz1H7ZhdzqhnSlO3pIR+HUpLCbvUdTuZ7Dv vd3mlOAB071S6duyWCPDKhbLgSzl3KJQ50cOewRofd6Qus5h0Zhy9UVd029f36Y4y8xC mzvcukZZxx2aCemHHjSlLRR73gbdIYc5TkRKIlFLYVRvHrKqZpb7alkdWECO/0mqC8P0 fYUH0Z46Ls9a7R++RWtrrpSnMvLLxlUJM9nf7jaH74cUdbrOPIQdaq18xPh0/DgvrHpp lS7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123421; x=1772728221; 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 :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; bh=HosKlwPlGWFOohi1sbxYGFkdyuGKJY4oxztcQC88GVo=; b=vqaGzEj0bsngBuLgjB0q5PKjVCXTQlVBjxR2LQt35BN6vzm0xU4c48PTZ1W/YqJu84 2HwHP1S02mqZ0HxK0/mkCj5RY7ZQhKHul6neLhFFTpZhzckOKQH7/7WCvDQJwmJ5Ve4Y EBrJh5+hi1XuxAxCkAWPBLf5dMs49wSsYgnykmxgXAnhjrtTqE0SWnmlEVgKUOZCVUoT wsGwBfxX7AguMuzTPag+2euak9kXi36ya/mRw2xyUqNbskvMA0yjRkq128jp4wQruj/U U+GNZzGr56dEBtt6fkF6AyBb5mhjKCzrnPdu6+GYuEHTexoHR1L1UUsAWJy6aqdwiS5I Amdw== X-Forwarded-Encrypted: i=3; AJvYcCVWy3IpaBwmUFOpDhmEgDo+gk9u9NXjJ2twkp4iL9wsWtI734cQitArOOyIa46WzKjBe9ZRcjo=@isar-build.org X-Gm-Message-State: AOJu0Yxx2s5iXsTevVIrUQsPVl5sy5GrfVorCT0c5fMKrxfAaadl7seT MXxJI98hHbZQU+qRvK69TMVVDTbwnYqvhyT04U0E4rCEyb/3eBrJVI3/ X-Received: by 2002:a17:90a:d004:b0:354:7e46:4ab8 with SMTP id 98e67ed59e1d1-359388f8c6amr2836417a91.18.1772123420448; Thu, 26 Feb 2026 08:30:20 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+GUIdDNa20+/qr5KnhtGvy6r5YNm5wemQ9gbuIzUNzSQA==" Received: by 2002:a17:90b:124f:b0:34a:4aa1:8b1f with SMTP id 98e67ed59e1d1-35910ff95e3ls745818a91.1.-pod-prod-00-us; Thu, 26 Feb 2026 08:30:19 -0800 (PST) X-Received: by 2002:a17:90b:28cc:b0:354:c40c:7010 with SMTP id 98e67ed59e1d1-3593886599fmr2386177a91.11.1772123418869; Thu, 26 Feb 2026 08:30:18 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123418; cv=pass; d=google.com; s=arc-20240605; b=aHdR4kxHRUPS5A6DcJOEOSQuJDuLFPupM4fvQ7+1cBdCUMPjfn/jHr2qcQVZAASlJ5 sGu6Qrh6mA/b/pL+NBoHMLMzl4AmbJISy1cbhOkYZSBkrEndcY6gmtFVv2Ypdco6drEk AN0bVHItmyiJd9thP48Ou7Sx4IFyDAFppsqdNrt3f+Ekub/yXaNHiP4jdomsJ3gTcX4S +jsEkB/a1yiMr5K/bGV2eQ/9uqJ0NApZ0C64vXbyKJuu7n2CZfJPZR/dREoYbrz0c+PQ 3SZhHkdOg/O7DPJwJFZEJQp5GiO952qk5absaYUqUQfgxQYrLRcMlyDdPE9V5NBu83cD XcjA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Q7Wgo9LnjkCPkHB+wZaSA7TpTM2bjXySdn0uIV9wCoY=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=ZijJHCe+DrChQD8TUS/tp4oY3Dmt2isVib/zG/H0VT/dGewSlMbAz4YLF7sNQF+3WO EOVXimUqML4uaiEhgyhpfLne4UbqJl3LvYUKGeNHCHrbAMZKJC1r0H41vlw4kqOOhdZ2 OPJVXJR1FGlh644VOZTprRgcZH+uZ+4jD2tL9zh6SpLQZ+Jx21gET8nxSvH1R4K/r8Jm iz+3VU4ThLY3H3g2H53iV8PW+7f1jWHpPDB9hNAmyYNv7R2momUmDHwO15jpUGVR2dYF OqFK8xCwAY3i2Ya2SK0PgbUwgsNmZz9XZ1+ydbio99kT70qxF1Bd/KKQU7gs0sL9BQZR 2nhg==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Lr4RR71e; 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 98e67ed59e1d1-3593db8869bsi82749a91.0.2026.02.26.08.30.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:30:18 -0800 (PST) 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=BQqer3BlBvNMCU/3v8DEZVlK9eY8TR1lfzgPRJWooVwhDJ5UPPZOdVcd8yx0AP9JmPKQEFXzUWTI+VI5G+o1vI0d03dqjYmKp+UnykNcq3cwfFfdwZ0N4FkDzbJFmAwJMZmJQMtJ3gh5rJ7yo9N6CSlPHm6LwECPR/HIp0VxXwi/pZLcWtOT7tDJJAmWW99L5PayTrNEPjMMacudUGbz4plIfZvTNZhmv77Ti4zkTyWIApVgZWbMkHto8FtTm/qb3N7UmJHyUpJE/lyko86wLGgUvolhwAeaPLdXYgfD0tMu35K9u9JpWX6ig5/DuJERR2lquxvN0sc2mZopWOGJ2A== 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=Q7Wgo9LnjkCPkHB+wZaSA7TpTM2bjXySdn0uIV9wCoY=; b=hNsYL6cAwYIHDYr8FMlQWjWlkIKulyYfOBnwVBWXt/RtiylpcSp+iQlxZJncuC2wdYjsNpmj36z/RVE1sZrTnPonDLTkQ6/8Ju029lFBg8gV8WudhO3zVxpUSsDiHx+rAP2qNJxohlx2rQMuyj60ASy5nDnXpQY8fZx6geDlPalZeqlP7cifCdSNLWnH5JiJGgdQ6x+16ke3nJniHgvQnOWZ/HES4cyzVdw6e+kj6PV9LIDMMn1Wr073ih2CWXH++LOd2GKLu6MRMFIXzIHoK3Nn2eY1Rl6F1pDASeYrxSWk87TtCH1lIDZfqR6gxYWmobN9bvi28jFd1yQxtohYZQ== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by AS4PR10MB5669.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:4f0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:30:14 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:30:13 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 15/15] add support for devshell on unshare backend Date: Thu, 26 Feb 2026 17:28:41 +0100 Message-ID: <20260226162843.1642329-17-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0277.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::9) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|AS4PR10MB5669:EE_ X-MS-Office365-Filtering-Correlation-Id: 4062c384-d343-42bc-1485-08de7554512f X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: m3nS2gYK3foRsmUAD69eqFlB+xgaZ9M81ri4l8Mm9stSdXwvF1wyvYOOlxbrcYhMqTpL+TNJxdLkW1pqcVRO6c9+S5COyiKN644xPclVaCG2PFpDrys9D8hB09K63F4yPd58Gy2TxHUmnfMwjTLWUoJvp/S0YXAAlM5Dur5iAYMzxdhK39RSLuIu60XojMZwopJDqcaXdpTYAOUPQhvn8AVbVCOqbRPAvLHBEqmpgrtqCVl7hRxqxoxo+sBpFm2uQhf+dncnWt0zuVDQYRzdKmsP6hNwG0nuta8zoK6cKuiFCCrJp5LzFZ9yAn5f5QNh8Sz43idWsfjm+vNdaHlFB4oqH7ZisIQqFa0Yjt4uJr+8iaqpakvC2WpmtEqQrZD2IPV/LDMb9QQtzyiwdjX9/E8WK4mRnm/cjTThbstoZ3zaciE6TxrOWJ21Ha3v0/JGZRnVWqVRLMlmJ9lnlxxRV9mvBfYsLsV0Bs/hq4wQ0mEN9xfsTw5Ts6b+ePvlxGLPWXxjoz3LuyosZXhYDqVdS5nbjXcbCIyzlX0rFFePQxE5H2FwaK3g8XXdAQrhlOCNDr5FSc/G3KYSZbZyOGf/SWC7xu/PKmdBhqoOB6BivtG+MCLo5yOoKDtyNjvbOhX6SOqg+hjTYMxF7rBYG/e3eKSN6DfDl+2QlNpTlodCRpU5axsC2OMrXoPkf25AHKV3vl1O3yavzzOG2P4aEWuOk0FcxdKbauMs1OPo/wECi2k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: /AxSRJ4zp4FC7dZKoDtOMV9MGyBCIuGfCboHrzh1FZj4e1M9KvRg5bfQD7sKBX4D2YeGTot8CHufHTckIjhViKXwKaccbQp3dii71V1bzqBKlww5B3BsxaKzGcGOd4FuFx/WCkL77zT2YJXeMcyXTGLKnOKiBUBE44nUijkwu+gupzcxiBddweSLfqmi12KWlbrgOG1edIR0DFf2WRInVADb+LY9yi2E1Y6opaMDILMuvvIVxxzf5H4pGxtykuCQchMaGbcS3VxUJWGxPFFBOoWC8g+QXaMSQsHWD10F89mmIKlYhNR/OumP/OzBhtd/jQEcckb59blW8L2s1uhKxnlnBP1X7Tx/sQp5loTxeiB69uh7DwUZXFAytbaRMWJlG7ShcxcEAH9+4e+Ax4aG9wmplVufFku2DCTDqi8uN3dUDoGReQS8pWCUUHVhkokCvF6rOHhomLgauO24i5+3ywc2JLaJX5bU/WBsa/KFwhvTFzff2aukLYbrdJDK4bRB17DTx4/g5P2y9KnojRmZnO9r+pDseaTxQrWFb+zZy3ilFZqF8Qyumwyf51dU8cBmZGGx0vmiv8llgDAFm5rZZdziX1v1oNmyoLrzv564ahuW/k7S3LIJsEr0+EH0U6bN0HwEcaGzA7K5AunzMeXhw2URfbbIXJNawPZfG1F1/7A9xzDayt+Qsnzz+AIyenrMPU74XdVFgtgFASf5eoQNHSgycjhdgFbnhjGOIrlRiVwPcJu3wC6/O+0TmGQP4pHBbMjz/+6QQVnh8Xhlni9swm2hEBtqLhwziaKc+RzkLqdHawuLwbWNOT3vvupzr55tGswkZXOdxUGjnLHOjJ7T8UH+w+wS1UrmyoMpn61AuKufUBdmV8yAjCpp4hirsRo5vp2TJMGTuc0k2F3Gu/4gOLpHEm2O5CbCPPOH7iE27AP3tDrfuKnIGm/IBjaIjq3X1eSnNbm5uwJpg44IhJ3wK4LgDHdWcZ/QD0qfWU1kCeOpKNY4zxaAvgzL4IuVvVmBMq2UGloRN0NAcjOT4e1tdutu7epodmjFiGm0oPg8HGKboWNJGSTwoaPyWY1I0OMo+t8EeVdhW1ieYrTSSs9oesfSOnoNEDfy8j7gM1Lolm5Hu84SJmoevIdk4RJQQeqF6oSzWSuyqnjdvhBDm76HCyUaDoBaO7XbwlAZGM5e0PP6lOEaH/pbj5//5O/LWT7k6i0aNbbuOO4XG8frmFabwByUl+kHaK5DdsmfcHcTASacn/Pm94D6vLdaukdNYlqcG+uc6ckKC4C4qoZ1TJ+5N1XxgK8CikhKsE6iyIDfp8NyIdAqbKZgdPHRYQKcp8fCGBXIaZeSppeEr+3mKFa6nCGSBMj/ogNXHyvTyNkk2XZAdu3Tg9ea7TDSV4gAeKRHe0NWwlQuzKOv759Q5xnULl7NOUFZW2fjDKU2LHu1hTd28mzxhqV20uWyvJbzf66bQkTX14SyGiuctOz010xXQk7dAGXx+ZYy/XBn5RsBZpX1iXSiKDx2trh26FkGcpNzeD/jWWK2CcGN56V7WVbRjHWCkkhTWCi5IoURiLkJHoT85dxmoyKyrOUyPyPClvRz78yCa6ge2mOj8veu26QJkJVV/wi5tuLYb6qrKlhs7lHv02fIANAh4tm9zayHJIFTDk9lAurin4VZhWZk3RnwNBP5j7okCltyYb4IlZdW6quAkOT6zrctS83kmGU2HG5TW93t1zpt1ruULUaq1JACErYZ8yhUxrstkYOvDbdG3c7Q0b13WzKsWNiIobgctBaswzhzqUdt X-MS-Exchange-AntiSpam-MessageData-1: 1FeABjLMDoqc7bZUfHuxHxvYzRDaX7IyV1k= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4062c384-d343-42bc-1485-08de7554512f X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:30:13.5323 (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: +Od0tlCxWzCH3w3AEPOBrls7TjuSyTfBs1bA+KT+LysXf+JplWyo88n4PS4NsJD5zEUYxCXO1b5iyT6ni8ZOgmFe3Njoot2Q7E3PTh+IJQc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR10MB5669 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=Lr4RR71e; 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?= Signed-off-by: Felix Moessbauer --- meta/classes-recipe/dpkg-base.bbclass | 68 ++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 12 deletions(-) diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index c34c96bf..bec2580f 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -253,13 +253,11 @@ do_deploy_deb[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" do_deploy_deb[dirs] = "${S}" python do_devshell() { - bb.build.exec_func('dpkg_schroot_create_configs', d) - isar_export_proxies(d) isar_export_ccache(d) isar_export_build_settings(d) - if bb.utils.to_boolean(d.getVar('USE_CCACHE')): - bb.build.exec_func('schroot_configure_ccache', d) + + bb.build.exec_func('devshell_chroot_prepare', d) schroot = d.getVar('SBUILD_CHROOT') pkg_arch = d.getVar('PACKAGE_ARCH') @@ -271,21 +269,39 @@ python do_devshell() { -t \"apt-get -y -q -o Debug::pkgProblemResolver=yes --no-install-recommends --allow-downgrades\" \ debian/control" - termcmd = "schroot -d / -c {0} -u root -- sh -c ' \ - cd {1}; \ + termcmd = "cd {0}; \ apt-get -y -q update -o Dir::Etc::SourceList=\"sources.list.d/isar-apt.list\" -o Dir::Etc::SourceParts=\"-\" -o APT::Get::List-Cleanup=\"0\"; \ apt-get -y upgrade; \ - {2}; \ + {1}; \ if [ -n \"$PATH_PREPEND\" ]; then export PATH=$PATH_PREPEND:$PATH; fi; \ - $SHELL -i \ - '" - oe_terminal(termcmd.format(schroot, pp_pps, install_deps), "Isar devshell", d) - - bb.build.exec_func('schroot_delete_configs', d) + $SHELL -i".format(pp_pps, install_deps) + + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + mounts = d.getVar('SCHROOT_MOUNTS') + mounts += ' {}:/home/builder/{}'.format(d.getVar('WORKDIR'), d.getVar('BPN')) + + if bb.utils.to_boolean(d.getVar('USE_CCACHE')): + bb.build.exec_func('dpkg_prepare_unshare_ccache', d) + mounts += ' {}:/ccache'.format(d.getVar('CCACHE_DIR')) + + termcmd = """{0} \ +sh -c "{1};cp /etc/resolv.conf {2}/etc;chroot {2} sh -c '{3}'" +""".format( + run_privileged_cmd(d), + insert_isar_mounts(d, d.getVar('DEVSHELL_UNSHARE_ROOTFS'), mounts), + d.getVar('DEVSHELL_UNSHARE_ROOTFS'), + termcmd.replace('"', "\\\"")) + else: + termcmd = "schroot -d / -c {0} -u root -- sh -c '{1}'".format(schroot, termcmd) + bb.warn(termcmd) + oe_terminal(termcmd, "Isar devshell", d) + + bb.build.exec_func('devshell_chroot_finalize', d) } addtask devshell after do_local_isarapt do_prepare_build DEVSHELL_STARTDIR ?= "${S}" +DEVSHELL_UNSHARE_ROOTFS ?= "${WORKDIR}/rootfs-devshell" do_devshell[dirs] = "${DEVSHELL_STARTDIR}" do_devshell[nostamp] = "1" do_devshell[network] = "${TASK_USE_SUDO}" @@ -299,3 +315,31 @@ addtask devshell_nodeps after do_local_isarapt do_prepare_build do_devshell_nodeps[dirs] = "${DEVSHELL_STARTDIR}" do_devshell_nodeps[nostamp] = "1" do_devshell_nodeps[network] = "${TASK_USE_SUDO}" + +devshell_prepare_unshare_chroot() { + run_privileged_heredoc <<'EOF' + set -e + mkdir -p ${DEVSHELL_UNSHARE_ROOTFS} + tar -xf ${SBUILD_CHROOT} -C ${DEVSHELL_UNSHARE_ROOTFS} +EOF +} + +devshell_cleanup_unshare_chroot() { + run_privileged rm -rf ${DEVSHELL_UNSHARE_ROOTFS} +} + +python devshell_chroot_prepare() { + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + bb.build.exec_func('devshell_prepare_unshare_chroot', d) + else: + bb.build.exec_func('dpkg_schroot_create_configs', d) + if bb.utils.to_boolean(d.getVar('USE_CCACHE')): + bb.build.exec_func('schroot_configure_ccache', d) +} + +python devshell_chroot_finalize() { + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + bb.build.exec_func('devshell_cleanup_unshare_chroot', d) + else: + bb.build.exec_func('schroot_delete_configs', d) +} From patchwork Thu Feb 26 16:28:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4928 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Thu, 26 Feb 2026 17:30:30 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-oo1-f58.google.com (mail-oo1-f58.google.com [209.85.161.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 61QGUSiq010429 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 26 Feb 2026 17:30:29 +0100 Received: by mail-oo1-f58.google.com with SMTP id 006d021491bc7-679dcf1f680sf24257723eaf.0 for ; Thu, 26 Feb 2026 08:30:29 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1772123422; cv=pass; d=google.com; s=arc-20240605; b=BzE9IsCf9N5WLHGcWD0sFcY2dDmiK7gkMfp1nP2iwZoWp9Jc31XotoogpOJX8EGTSf MXSC5+DiqHnB5wED2FSehbRutbnuibGv+Cj8witMnM2Ot5XhCoixepANhPC+F2KT0mI/ NWXpUi2UFB63I675vkqQkwhBSL1B/OEvsdK5paYvibQ0R2S0pvt6JSak0vkOuCRacK/s mo7QF4VOhuQ5L3XH5o0dL9Y3QmO7dwYBskYbNIod3qIq0OSWrJQr8/zpgbiKUolPmXhe 01ygdorF8JaRZUubn0vwQTwID21nMm9wuE7Bm7KQXFtuTEGU3HRN3in7KEaQyXx6oBwC rYRw== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=Y/WjpIEU3AhPWqVWsaS4nN/MgxZxfg6sZ9owyC4q7vc=; fh=9PTBHXtrR3B0g1FylduPrBoczFCCx3QvAognGueT580=; b=a9uFKr+xuThB/EBbnxpN4FsMdOXS3LtKXViSgZ5kLuIeiuD9UZn+NLXQz17okyqeRi yr6rm2M1l54K0LNq63kOxn8yje1R+XkSWvmXu0eyA5E/m/aRr943J+fb1CbOqqNv3YX7 euGasZeoL79+r/sZPIpryTdJCrg3YsB4ZcVE7HaAq7xTkB8neJpCThOVz9T4vEo4g2gF Ve+o1cHK/9W2LVUKJ6A89XP143N/CQhMZ+OzRdbCLGG9lBncSwPmW/zJsH7RlDt6TsWA y/Zjwb0kX72huNbe4RrDxzHrcPJ6NIWnCfQEu1FUzt3V5WtpSZEBFMWmrqMFsxzKUKlz gV7w==; darn=isar-build.org ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=KXNDOff7; 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::1 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=20230601; t=1772123422; x=1772728222; 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 :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=Y/WjpIEU3AhPWqVWsaS4nN/MgxZxfg6sZ9owyC4q7vc=; b=ZBSEYuEm6eECwA5f860hagxLPPbOSThIfuHcdBd29KqrJVOcvIlwzCmLetXz2XvUSJ 9f2hVsn6ckGssJFWDMYDfAyEzAqFr+qhO9PIaIE0kyxg8bV3oYi63YxCDvyA54nOMOtm F5pE+/rfInMHIp19DGT3DDg40FPqmWQvp3G1xY/XpNKLlFbLNiAb9gyqaTc1eskRynY5 incD/YBdI7KudC2Bpm+xOfx3zE3F21fgoukTgc8Va9PtcEGyZ2ytRS+YuC/bmFXb/DHU eFFFEUbUSHgN9gqCkCl8yNJdyEtHozM0eiGqWi7H9Dtq6C1aq5MJ7HN2ETjhxfwpQjw/ 4mfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772123422; x=1772728222; 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 :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; bh=Y/WjpIEU3AhPWqVWsaS4nN/MgxZxfg6sZ9owyC4q7vc=; b=FRPIjqGOZ0hAqW+Oh9h71v6K/SnygFti05j9W37tvByx/f0XCgc3CZWfo5/UuUqjo5 D75rQ1xvWkQOYzNVPBKsaZNaePAOkGPCTvRFiHVsm/DsljvH7+12YpsVvXEiFph+O3zb Vm7TRwqhCuHwQnuhgAw5JvVz9dU1ZdCt3e/Du35dO5tuinHGTrPTbkNMdAApz0Ow1jJ6 GBNhQzwk5pBdX14de7xjT/r/tZsN7huvIL7bp8HNe4Rm3HEFPO3Wp1rP9Ul2g2uv2m60 9xLpy4EG6BNzFK6mX1z36aJBUY8n7Wb860dwqoAjfRcfVslhO1e33JHeP1uqH81Cg1+x I1fQ== X-Forwarded-Encrypted: i=3; AJvYcCWL+eqNIacK9xNzWxgubuHgPgpaPyXmnvJjMwCugKhGhcoWTOcPeOFGfHVSio/5smbGKRpt4LA=@isar-build.org X-Gm-Message-State: AOJu0YyTlubkg+m4768VHhfn1md/uwzEsdNYHShQqYFqNNLk39SttRBT uioNupxkYfcacYAvVW1IN4qYPn5qtRTNpqrlFRlYsOha9mFLqROP5X2U X-Received: by 2002:a05:6820:12d:b0:679:e5a2:1603 with SMTP id 006d021491bc7-679e5a21636mr3197061eaf.63.1772123421354; Thu, 26 Feb 2026 08:30:21 -0800 (PST) X-BeenThere: isar-users@googlegroups.com; h="AV1CL+EFKfPr9Sd0/xOACVwQm1ro/3ir+urv5tnTbHtfv/62LQ==" Received: by 2002:a05:6820:1c86:b0:662:f8fc:6675 with SMTP id 006d021491bc7-679eaa4b671ls1160638eaf.1.-pod-prod-01-us; Thu, 26 Feb 2026 08:30:20 -0800 (PST) X-Received: by 2002:a05:6808:c284:b0:450:cfd3:cfba with SMTP id 5614622812f47-464463cc35cmr11714300b6e.57.1772123420249; Thu, 26 Feb 2026 08:30:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1772123420; cv=pass; d=google.com; s=arc-20240605; b=LkobRFi1byEYfJO5Tbd3QWVkeOrPMyMBEnLgmZPjOjafF3T58XOcNK1jddopbom3Uj wrTku5MSEwv2Q2lxlY44vImTyadaLxscb+KwcQC51k+FsCaUUaj5DYVNpZe3/3y5crml rGPNljGr0hobUPEBP+Uj+JsoY2I8ILadGccJwzX4unLmN1RGmk1yDFGcOey8d2sz+6P3 SjA431sEoC0HW3VNVJv0gcaAaKbNF1T6lSnMKt7naypyT0XdGeIkgzkoYu6/HZVGfB4q TpISfmPqkXA4FqzM8yh4fszFMOE11DLl260z/AYYtYla3EgnSmYLvGZY6fz2jWS5PQsK QW2g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Q7Wgo9LnjkCPkHB+wZaSA7TpTM2bjXySdn0uIV9wCoY=; fh=WkhL8kaJc+l2wQon1t06Ej3uvBGj9sVhNcE8PaS/XbI=; b=T2bbarILNb3bkkwcQzN6imnYpNoQhsmgeAv5QBa6flNjBQVtSUjiD5OxsMEVGy6olp 9lVSG6fUUJ/7nTrRSp4Q1sGn8btXfyhaT/T3AsNMrAXeckoOxczu8I+esBo29fTMKgmY ZYMxEkLyRf1KexjQaA+ZgZvGMtFq3229RpG3GwUnk6brx1aVZ/tUyGEliIP9LhBJlTZV duWDOPTaTak/O6UExz3Lwri6Z+ybb2i9qmPsVmmuzmw8R7wROqZsK6x6t8kP2Z4wVULp pfgxAj0Sb2R1/CbpXAJUpPnK5LrGKvitVSgre8uu+gI7JYMi/FoBGTP9iHupYjgy7MPl 1pIg==; dara=google.com ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=KXNDOff7; 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::1 as permitted sender) smtp.mailfrom=felix.moessbauer@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazlp170100001.outbound.protection.outlook.com. [2a01:111:f403:c201::1]) by gmr-mx.google.com with ESMTPS id 5614622812f47-464bb55f2aesi9423b6e.5.2026.02.26.08.30.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 08:30:19 -0800 (PST) Received-SPF: pass (google.com: domain of felix.moessbauer@siemens.com designates 2a01:111:f403:c201::1 as permitted sender) client-ip=2a01:111:f403:c201::1; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fG92Bv/KHau2AKQWkhRH6s9Zv2BdTlSRKKqUWB4/40oCll8tLxA1QyE1Q/XnIxZojgZwYCveqjjlkMCTrMMz2XknTYwBLhilS2Qz6FEYiamYWot1anYrM4X1PhkFO2iyspelgBDX7ZpO2edScPMJCL4KOcq3tEhv7hYftd7Kkj2AmtXvH8jdQ8x9p59sF5yFXExF/9k26+YbtY6t4tJargtTWgFhQHLDaPJgwBYth2YNIPRBVIL2x6p9OjIKuAs8rkqXeaMl1FiQv6/QUR1PtI3BzmQHLnIBV2YEImgTs2pmUaKKiPUZIH56uGcwd1rPsNvtWgXSwwOL3sRGiVBzHw== 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=Q7Wgo9LnjkCPkHB+wZaSA7TpTM2bjXySdn0uIV9wCoY=; b=d58R9GxVHpBDdvzyTeb1Lko04JTNgCr/nK4VxmZoBx+ZUj5assXfN2OLPAAJE3tbrKGzXpCoYW1sPUHpIYoRr3elZXU2b+lz2Q9tVcOIFoqZMZKLS2dUPIe7qE4RhLUm6aw5cjoYdkWC1FP8++umJg4xXw89G52draAwlWZqiSeUIpU4fkfhYFLO9NqRn9R4GKZHH1ncrBxUFaR42bQVNMCXSCKau9oCnPAJRVDRgdb5vw5ZHtMNSVB1qhpNSM0mbDF/j1oasAEoIp1dQ3GY3Md7OMkOtVjl0CWgv3XxG4ApfjuIzSxVakf3upWMNwzxy0Um/JCxdEf1DSLYnNQVFw== 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 DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) by GV2PR10MB6140.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:79::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Thu, 26 Feb 2026 16:30:16 +0000 Received: from DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab]) by DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM ([fe80::9412:cd7f:3f72:92ab%3]) with mapi id 15.20.9654.014; Thu, 26 Feb 2026 16:30:16 +0000 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, quirin.gylstorff@siemens.com, Felix Moessbauer Subject: [PATCH v1 16/16] add support for devshell on unshare backend Date: Thu, 26 Feb 2026 17:28:43 +0100 Message-ID: <20260226162843.1642329-19-felix.moessbauer@siemens.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260226162843.1642329-1-felix.moessbauer@siemens.com> References: <20260226162843.1642329-1-felix.moessbauer@siemens.com> X-ClientProxiedBy: FR4P281CA0277.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::9) To DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:47f::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR10MB6828:EE_|GV2PR10MB6140:EE_ X-MS-Office365-Filtering-Correlation-Id: 06d9e3f0-b692-4e01-c9d3-08de755452eb X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: GI/080Q1OBbOulmX682pts67jJJh2+dQ9B+lyZAmenHuz3kNhCg7ggqj9XIrjnckqfDhzkfzOKnC2FeAJ3UtKVBcMeMoBK0YfUqqKBcBehzL3gXSCCbMstqyrcf/FleB2zCevBYeBuGWnGinoWgfDKE3fRozKyN++5eTS+58HpO7rndGoYBsXiPKwL8v7EPYWjnENZBx1FHYCtIWQa9Gadw02MybxJJlP/+SkSj0L5WVUpLQCDlN9DaaBMfrD3kuSs2N+MiqPaoXiahcc3Gtw/W1gn31nr7L7bOrulugGEQDfK0ceTc7QR0pTocrd6TQoozK38iqI09Nrzxy5EjZEzErDe0/Rp+VQF57itlJAo0GwQzkYyEAlLVUPUiR+EoJz1YVFLEXPPBru0AsElaF5ZtobzRWZk5fVfbzokB9GKLK7cOY4tcE02x9vDcYgMM5+tZyOHzxwrJsFKsg5SmfARXrvokowG/C9Mat5UetKdTILInSozShxJaS6SDYHt9ofmxqz9rpAH2NK5ceejeda75xWz9zSAT53/vRS/zfKqsa0AswNKkZ231mDQ21CzKsWtuq79o7i6am7jjq921Q0/gJwY0swOJMKp1d4srxSNw5J+Ty8rpI0S4RkO3WEQAZXdYobC81DfjGpEGibH6meMV+Bu26LU34panpaTPxxCIS/37u03DvGYrKEC+vzC46vaQHOJCQDVExKF1D++6/mSA6GlCoKyKplkQxNS1XtBY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: Z/ch+YoFAVr0ixZHx/RwkjdVRb7Zv3LBAieynpsmRFnjv7VwtAY7QHd+GlilHx+4Z4v/cJKopyJCPyJtb1JBA/P4lSI16PzXO32rHJEV0kMo0Q8aasn++wpsaV1yKFfgE10a4i1dqS5cstQcUvCLD/01ZtTNToTOe6QdKrn8Lnu3sCcnngLCkydq6Ws+gLdi20zKX65EisFdMamDtIA2gL7SleNhKyB7xLcLnx3R3PfxuSlkcyelxf4eFd8NTgyWq5sif2PQ2LXMkzZkzCPAQgWIoKgb2WmujDtBTLnRDF9XnF49vMtgnr7PXS05ZJ2sUCdrSyTDBM+4CDlvytdMH9BjVdTL6GCIxaTtlimthoR00Tunsvvxb8lrKiNPVzgXd6u1z9QiOBJoXpH3uev4POXapU9Q911JDB4XE10d0G76OyNz1eQVamgR8gIQF8CSYPgtPjwKvw31yg5GnbQYimUPBnhN2OnPhfQJ+C0/ZXy5kCli9PjRM832nFMijPGMSPr15rwBO0CQFSWoPaeGbLe4WjUsSWbTFjPZlevkIcBNIVowEYLru+vUEEkaFQgZBHxnw0ta6lhOYppFT2ff4oCfWzNEHEVTFVMStsW17jqQ0XIfDbSeShexfBEulyqoADfn6S2WLuU0SqWJ/HzEKbknxa9WvvKc2iaJqiTSYjcPlO2mb2IbCjXYeapBo1cxizNM4ZEwIM/IgrgcEjUmZj7OX2hzjijF0G5rd0DEpbApzvEob0Uwci8oXlGmp98c/ilu6x0AI+cjtQmV3ZADeOyXNmPQOePTITKoZIiXJprjND7XRpUSJgQdjo9iahA8gXK0RE9FkgvV0w4o0tcrvsNVFebDKKFQOLHZhty1e68w0Nt+MRjjntipot5PoDNAUDUsabPJWWpSB1f/Lp4vrz7E4WYChQETKCZdMNw17DnWpjm+HGONbJRLOcxpWsPuS0Pbu1jkqNxqAupWqH9NUT4t+f37317Ds1YKd4g2VABBOs+QxL5k8gs+0ko+Js4Cq54xFtJbOL0/ytZc+ebzKRtSugBlqNIZNMLYf9KZCY4HCP+lmsofFXt8LQD1VHsL1bFpDbs6X2yYmtT8+PRduS/mO1H5voJ9qqbl2yBLbxaDzdpjo1TOXrec0Nnj2JoLHXVkJ/PY3MWG7U/sGX6iE8NlIN2oef1jeRwZB+7UNUtOr2dFCTEOOi05phIYvy3MIF/CwQRIBjwUsqTWzS9ykedSjRJPcPfUIwoxWU+Nd6wZC2hToVDzadNL/eY3PIIJK+gBVRTfQe0Sc9NfHch5YTZMsJIPfX2QOxV/Oj55vwRyRq0mwASVDmptAJyn12TcrkSrXcSVH1KQdWZ4dWV0pphQ0xFw7wDxgMSjxPj6fMvrIitemTZt7Z0uDKYhwVg3GluFrAMH9e5CZa0PVnuvcxbQAp9lPNLYluHaADUn7+mQ4bNh5zzATHf4T6vV7SWvyg86gvb+kPqA7uxGB69Xn90sM++QQnQuMKaazdMl15G5slSiQHJpFIcGji4IdcKfNqpd4UxRTmsj3G5ntbLzli4ByR9dx096Yb2k+ypYfDFZenuf3L4jqxrsbNbseraJ8xKWSovyOfG8uukOG8Hhj0yfBJVyPVl9pr3O+xPaQkOgm+spLeqse1OtWtoBLT1G/hOKuWLuvn68IyRz9asWupTJL03/o+rAQtynEoaXVqEhE8rwd9ZZqiTys4FkXY7r/WAMO8I84JQQW9kM8XEAYbLuCjN+psp1a70JOFArN3NndcFPLsumOVdNljq6P37qR3m2ICOu X-MS-Exchange-AntiSpam-MessageData-1: lpOQAt1yzZ19So+sg5GxoSP+oNzsJBSMrog= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06d9e3f0-b692-4e01-c9d3-08de755452eb X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6828.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 16:30:16.5780 (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: BBR+dtiCsUblRFVFCmbT/WXsXLkF8bSjzBjiYgOb59GsxOgSt0jV4HuD6RTSlVeouUpwTdyanGxdw8DqCBOXv2uRoI1XG3TVx1Sz0E542+U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR10MB6140 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=KXNDOff7; 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::1 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?= Signed-off-by: Felix Moessbauer --- meta/classes-recipe/dpkg-base.bbclass | 68 ++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 12 deletions(-) diff --git a/meta/classes-recipe/dpkg-base.bbclass b/meta/classes-recipe/dpkg-base.bbclass index c34c96bf..bec2580f 100644 --- a/meta/classes-recipe/dpkg-base.bbclass +++ b/meta/classes-recipe/dpkg-base.bbclass @@ -253,13 +253,11 @@ do_deploy_deb[lockfiles] = "${REPO_ISAR_DIR}/isar.lock" do_deploy_deb[dirs] = "${S}" python do_devshell() { - bb.build.exec_func('dpkg_schroot_create_configs', d) - isar_export_proxies(d) isar_export_ccache(d) isar_export_build_settings(d) - if bb.utils.to_boolean(d.getVar('USE_CCACHE')): - bb.build.exec_func('schroot_configure_ccache', d) + + bb.build.exec_func('devshell_chroot_prepare', d) schroot = d.getVar('SBUILD_CHROOT') pkg_arch = d.getVar('PACKAGE_ARCH') @@ -271,21 +269,39 @@ python do_devshell() { -t \"apt-get -y -q -o Debug::pkgProblemResolver=yes --no-install-recommends --allow-downgrades\" \ debian/control" - termcmd = "schroot -d / -c {0} -u root -- sh -c ' \ - cd {1}; \ + termcmd = "cd {0}; \ apt-get -y -q update -o Dir::Etc::SourceList=\"sources.list.d/isar-apt.list\" -o Dir::Etc::SourceParts=\"-\" -o APT::Get::List-Cleanup=\"0\"; \ apt-get -y upgrade; \ - {2}; \ + {1}; \ if [ -n \"$PATH_PREPEND\" ]; then export PATH=$PATH_PREPEND:$PATH; fi; \ - $SHELL -i \ - '" - oe_terminal(termcmd.format(schroot, pp_pps, install_deps), "Isar devshell", d) - - bb.build.exec_func('schroot_delete_configs', d) + $SHELL -i".format(pp_pps, install_deps) + + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + mounts = d.getVar('SCHROOT_MOUNTS') + mounts += ' {}:/home/builder/{}'.format(d.getVar('WORKDIR'), d.getVar('BPN')) + + if bb.utils.to_boolean(d.getVar('USE_CCACHE')): + bb.build.exec_func('dpkg_prepare_unshare_ccache', d) + mounts += ' {}:/ccache'.format(d.getVar('CCACHE_DIR')) + + termcmd = """{0} \ +sh -c "{1};cp /etc/resolv.conf {2}/etc;chroot {2} sh -c '{3}'" +""".format( + run_privileged_cmd(d), + insert_isar_mounts(d, d.getVar('DEVSHELL_UNSHARE_ROOTFS'), mounts), + d.getVar('DEVSHELL_UNSHARE_ROOTFS'), + termcmd.replace('"', "\\\"")) + else: + termcmd = "schroot -d / -c {0} -u root -- sh -c '{1}'".format(schroot, termcmd) + bb.warn(termcmd) + oe_terminal(termcmd, "Isar devshell", d) + + bb.build.exec_func('devshell_chroot_finalize', d) } addtask devshell after do_local_isarapt do_prepare_build DEVSHELL_STARTDIR ?= "${S}" +DEVSHELL_UNSHARE_ROOTFS ?= "${WORKDIR}/rootfs-devshell" do_devshell[dirs] = "${DEVSHELL_STARTDIR}" do_devshell[nostamp] = "1" do_devshell[network] = "${TASK_USE_SUDO}" @@ -299,3 +315,31 @@ addtask devshell_nodeps after do_local_isarapt do_prepare_build do_devshell_nodeps[dirs] = "${DEVSHELL_STARTDIR}" do_devshell_nodeps[nostamp] = "1" do_devshell_nodeps[network] = "${TASK_USE_SUDO}" + +devshell_prepare_unshare_chroot() { + run_privileged_heredoc <<'EOF' + set -e + mkdir -p ${DEVSHELL_UNSHARE_ROOTFS} + tar -xf ${SBUILD_CHROOT} -C ${DEVSHELL_UNSHARE_ROOTFS} +EOF +} + +devshell_cleanup_unshare_chroot() { + run_privileged rm -rf ${DEVSHELL_UNSHARE_ROOTFS} +} + +python devshell_chroot_prepare() { + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + bb.build.exec_func('devshell_prepare_unshare_chroot', d) + else: + bb.build.exec_func('dpkg_schroot_create_configs', d) + if bb.utils.to_boolean(d.getVar('USE_CCACHE')): + bb.build.exec_func('schroot_configure_ccache', d) +} + +python devshell_chroot_finalize() { + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + bb.build.exec_func('devshell_cleanup_unshare_chroot', d) + else: + bb.build.exec_func('schroot_delete_configs', d) +}