From patchwork Wed Oct 21 11:25:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Clara Kowalsky X-Patchwork-Id: 5555 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 21 Oct 2026 13:25:55 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-ej1-f56.google.com (mail-ej1-f56.google.com [209.85.218.56]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 69LBPsip013840 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 21 Oct 2026 13:25:54 +0200 Received: by mail-ej1-f56.google.com with SMTP id a640c23a62f3a-c42f98f354fsf56314866b.0 for ; Wed, 21 Oct 2026 04:25:54 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1792581949; cv=pass; d=google.com; s=arc-20260327; b=o46bO/X+MrRFj7QtJy6bf8QdcMpSc2kMcDPTWsgNZoHU+1HbC+d3B64nPQ2a+QHgiK KEaKlKaTe+05gmAMUD9A/fYA1NxftaPskK7e5FepxKDUr77+XgiJRn69XKUQj9lUccYG iEKFOVhONRQbutPz9aB6ejEUlj54DdrkT1ZpCVCZSMp0uoe9hz83w6U5cuMsOZH6EjPH HxXUv3o8I24Vyrt/wR/8A0mjZ9pNrEvz0/6ciAMJBFKTeFvx0dpmFSEqTReLkA7RF3fL WbMgDyrn/dgE1CqCa1TMmINoUKMy03iZIhZvc2/8q5YfvqU6grX5K2wfbnONAkqPF1ID sebQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4NKDuuXvuxy1B+JuJZ2cPypJ98ARrpwwqJMu8S+cTww=; fh=PaCvxvt1t1PksgiYZ7dfsXJqZv+lQb8UHjq2fER1MdQ=; b=Prrnnuyf5fZIFfES07pZ/fR9X0tOKKnz2klvTaoBBXCjvpRwfSVMSpN3p/wXNQz2AZ fo1kyV5BTXoQWXosUS0uLTSXvsNXZwg9gqa/rWgYp+n0aIBGz50Pgr9zXVLi/zi8dkKK njobq/STDk2HdytoBUftdjVGQliFCFbmkD+THpSxfFeQFBcio/cw8i6Gsw5SBuldrGhr BdEgDr93MCK2OTXFsg2JcynSmg+TgDyaEpgL6TJn5EqoVU3GD99Ij5B/Qlw7YklIXKfe 2lDJoXIyF6NZ4IzGsQ5dEVWnGG6lYXnvv7Ls0dl8zLC6bTydU1KSdZJEtVnLRb460gJB goyQ==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=ZZnNtCY2; spf=pass (google.com: domain of fm-1047747-20261021112546858ede8a97000207c7-tvtp5v@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1047747-20261021112546858ede8a97000207c7-tvTP5v@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1792581949; x=1793186749; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-type:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=4NKDuuXvuxy1B+JuJZ2cPypJ98ARrpwwqJMu8S+cTww=; b=uGRNoeJApnEQQHup+G2XZADMHTCuWsuTGd4f82Ix+nvvaC82jJRKTHEWPohZAuRfhh V5uwekWdG3pcOsH8CNmQ38GxA8Th5cHLsvocv55GrYJhQB7EUla2yQfVQFpnkZCzy6ln SsErXYs7qOoQUebYvlFQCdU3VIwru+6Y+vFAYSxgSk7rPgxFpIpIqe+QiJgTt1ebQp/I U3/hrR+Nxz71mzSzv8WcCQsm6gv2TP0RGmXenddRZu6rwqVmyBFQIVa0e0DxotpH2EsR O7i16TjxDwIhK/6V3yGHBO/6IPddeF27p5/HEaHJnTumlQB8uBIERRH185OJjIlSESCA Pdnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792581949; x=1793186749; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:reply-to:x-original-authentication-results :x-original-sender:feedback-id: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:content-type; bh=4NKDuuXvuxy1B+JuJZ2cPypJ98ARrpwwqJMu8S+cTww=; b=LPOe7hgoOLLNBUQMA/pxSkSMy6zmikgNKiKc1y0I9KIVZYak7TFBR97nDtuCfaf123 W0GQtWm+746k8XP2rIoHluG96ufCR+8l/ZXJPi4g6jcGB44mZOHjq94+eRDr3xAzAPy3 rflRDPmuX3OLZ8QNu9RP6Hx9bFmOUN8aYPfLWPaZ3Q35zelqIMDtGPMLlRIYvyUAKXmL h/Th7wHuNp4BStbTnyUiixIf2/a6u3DWckQB1PJ6rAaSGOU+G4S3IjELB7hN1WyRfZsB MjHLkeIBKTEigea2vyf9J/v4UEwkXsHTpJsyfFuj3bUALX2J2hxIHD4ed1CbLknR76UZ OPzA== X-Forwarded-Encrypted: i=2; AKwUvBxV7JTMYf4njBRP2iqQTuvVlCBWzj16+ZZFEtqqQ7Ji6FKYDlNXkeRl7h/V80zJi9FXt92D/G4=@isar-build.org X-Gm-Message-State: AFq9FYKBz3cTbK8UlT98kXzWs6gO3wYMq0XWgBk7En84XSlyAJkGWhlj wKsH787TaaEX7T0Qe4w3/vsZMRJ0jGNfJiY4KqibclhJafoZGYPleqYC X-Received: by 2002:a05:6402:e09:b0:6b3:e89b:126a with SMTP id 4fb4d7f45d1cf-6b408e825damr1029168a12.12.1792581948958; Wed, 21 Oct 2026 04:25:48 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdfFlMB6iJfeJv1QixaWIxD+svwhsw2NkVxFrlrSh6ghcw==" Received: by 2002:a05:6402:22ce:b0:6b1:a56f:d456 with SMTP id 4fb4d7f45d1cf-6b4028a82fels966672a12.2.-pod-prod-02-eu; Wed, 21 Oct 2026 04:25:47 -0700 (PDT) X-Received: by 2002:a17:906:c10d:b0:c3e:4f41:e2a6 with SMTP id a640c23a62f3a-c467916d396mr153371066b.6.1792581946859; Wed, 21 Oct 2026 04:25:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1792581946; cv=none; d=google.com; s=arc-20260327; b=s+IvYpQTJMFWbiBzlZ09Y40IMsF3Xorbl04GOVlbGsGq/no/52pDo5jagkFWvYJwsN Qvw4L5EkjlhXssik85uxOQ9xmtZxS4XadBSd+CWoZhKUy4K5i8xTECIjHyRUrAHRiUae btkqKr2tBFbTvTRrywIB6UUY/MAK6zqxJ3JWMNtsFCI4mnAKfb+s6rG8GzfUcYrdlwZX sSrrJamPNWbyEQePJyo07Cq2CdsQQ3ueemUe/cYDcrirBPghN6Nq3w7JUgnr78N4xojo jhAwb2cl2q+SfTz/Iu5hcrn+eW2TmNVmH0KkPE7C+HTUAQt/2sTtWG/kNmwRjeZLh0jU plgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=ZVk8d3zSPnCjgsglsq1X9yjl7h76e1RtfVco9k/AzzY=; fh=AqT8zD6jUs4YP+XkSwmnbRYu3wrat9Vyg/xvm1MGQCM=; b=boipIuXLFFp7uRDk7MkLjii2ZEPN/r4NRdRD9mSxYdUM/BSu7JAbpslzeEFvXPCn+T Wnk/atGmraJ8UAeX1UurP3ifwLR2uU5i5FtYChBIO01xSTd98ViCE9gUSdAkQovlClsH FjioXKyiTyQDp0t21MQ7rlWfyhx5yyEvYT0tD1Cq279PlNIrjhJRWMpmhuRv+LbWzyNV VK3JC2hZ+hb94xkpSGdnkfJNXK6km1x1ibfX+xOXn91nceIk6DWGbr1cioK6aCzwq3yo uGmEX66yUJNJsUxzSGWl1zf9TRlsAe8Sg8goGh5dVZvxf+cM0RVLe2kEhAhIqwNVfKAQ RMBQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=ZZnNtCY2; spf=pass (google.com: domain of fm-1047747-20261021112546858ede8a97000207c7-tvtp5v@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1047747-20261021112546858ede8a97000207c7-tvTP5v@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net. [185.136.64.228]) by gmr-mx.google.com with ESMTPS id a640c23a62f3a-c46790f3014si2574066b.9.2026.10.21.04.25.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Oct 2026 04:25:46 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-1047747-20261021112546858ede8a97000207c7-tvtp5v@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) client-ip=185.136.64.228; Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 20261021112546858ede8a97000207c7 for ; Wed, 21 Oct 2026 13:25:46 +0200 X-Patchwork-Original-From: "'Clara Kowalsky' via isar-users" From: Clara Kowalsky To: isar-users@googlegroups.com Cc: Clara Kowalsky Subject: [PATCH 2/2] rootfs-add-files: use privileged execution helper for rootless builds Date: Wed, 21 Oct 2026 13:25:32 +0200 Message-ID: <20261021112532.3824701-2-clara.kowalsky@siemens.com> In-Reply-To: <20261021112532.3824701-1-clara.kowalsky@siemens.com> References: <20261021112532.3824701-1-clara.kowalsky@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1047747:519-21489:flowmailer X-Original-Sender: clara.kowalsky@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=ZZnNtCY2; spf=pass (google.com: domain of fm-1047747-20261021112546858ede8a97000207c7-tvtp5v@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-1047747-20261021112546858ede8a97000207c7-tvTP5v@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Clara Kowalsky Reply-To: Clara Kowalsky 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?= rootfs_add_files uses host sudo to create directories and files. In unshare mode, package installation runs as root in a user namespace, where host-root ownership may not map to namespace root. Dpkg can then fail to replace a rootfs file with: Unable to create `.dpkg-new`: Permission denied. Use RUN_PRIVILEGED_CMD for rootfs operations and disable ownership preservation when copying files in unshare mode. Fixes: 4fedb1ae6f90 ("add support for fully rootless builds") Signed-off-by: Clara Kowalsky --- meta/classes-recipe/rootfs-add-files.bbclass | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/meta/classes-recipe/rootfs-add-files.bbclass b/meta/classes-recipe/rootfs-add-files.bbclass index d33752f3..b21e282b 100644 --- a/meta/classes-recipe/rootfs-add-files.bbclass +++ b/meta/classes-recipe/rootfs-add-files.bbclass @@ -16,6 +16,13 @@ ROOTFS_ADDITIONAL_FILES ??= "" python rootfs_add_files() { + import shlex + + cmd = shlex.split(d.getVar('RUN_PRIVILEGED_CMD')) + copy_args = ['-a'] + if d.getVar('ISAR_CHROOT_MODE') == 'unshare': + copy_args.append('--no-preserve=ownership') + postprocess_additional_files = d.getVar('ROOTFS_ADDITIONAL_FILES').split() rootfsdir = d.getVar("ROOTFSDIR") @@ -24,18 +31,18 @@ python rootfs_add_files() { destination = d.getVarFlag(additional_file_entry, "destination") or "" source = d.getVarFlag(additional_file_entry, "source") or "" if os.path.exists(f"{rootfsdir}/{destination}"): - bb.process.run(["/usr/bin/rm", "-f", f"{rootfsdir}/{destination}"]) + bb.process.run(cmd + ["/usr/bin/rm", "-f", f"{rootfsdir}/{destination}"]) dest_dir = os.path.dirname(destination) - bb.process.run(["sudo", "-E", "/usr/bin/mkdir", "-p", f"{rootfsdir}/{dest_dir}" ]) + bb.process.run(cmd + ["/usr/bin/mkdir", "-p", f"{rootfsdir}/{dest_dir}"]) # empty source creates only an empty destination file if not source: - bb.process.run(["sudo", "-E", "/usr/bin/touch", f"{rootfsdir}/{destination}" ]) + bb.process.run(cmd + ["/usr/bin/touch", f"{rootfsdir}/{destination}"]) return if not os.path.exists(f"{source}"): bb.error(f"{source} does not exists and cannot be copied to the rootfs!") # no recursive copy only single files - bb.process.run(["sudo", "-E", "/usr/bin/cp", "-a", f"{source}", f"{rootfsdir}/{destination}" ]) + bb.process.run(cmd + ["/usr/bin/cp"] + copy_args + [source, f"{rootfsdir}/{destination}"]) } ROOTFS_INSTALL_COMMAND += "rootfs_add_files"