From patchwork Wed Apr 29 15:38:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihang Wei X-Patchwork-Id: 5060 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 29 Apr 2026 17:50:18 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-oo1-f64.google.com (mail-oo1-f64.google.com [209.85.161.64]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 63TFoH3m019014 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 29 Apr 2026 17:50:17 +0200 Received: by mail-oo1-f64.google.com with SMTP id 006d021491bc7-6961bdde2a1sf12138382eaf.2 for ; Wed, 29 Apr 2026 08:50:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1777477811; cv=pass; d=google.com; s=arc-20240605; b=Qskmug8UqvMku0SsiHzKlbjJzU2RNwX0Sg2ig6YWKF9Fk0+YvMvQHs+gBRfEnZNVBD Rxbio/omCuUuBPYUNnMXfD0Lm89gHkxhRkh96G5NhupNA5YifKctkiGBv5OgHceRG19k EOB2KoTg7VNthiQRO5RlDO2ZDzXeXKV420xv19HFpM66vE52GR3wtCXKLgwa7CVEZvwN f0URGrJSKjjLVu+CQGbXUIJgf/STiplM4wIDWjtCW2jjnshdVamHYSfkW4W5HCu7mY+R XWIgKG7CbzPDAVeqqLDgpMBbQ96h5CbVpGHc/+1FVZC0ukdq+rlX+fMert7bQzTUp9yq Tiyg== ARC-Message-Signature: i=2; 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:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=/z1BMFJdtwQpzJbLtAa26gs2KYdE/Wg0Rg4RAReGrVU=; fh=yvdCGaCYgYBS1Wj0PMzNDUJjlKtCLUqFYVubABuGORE=; b=X6q8CZImXWn2eyurPbQ/Nhz948grsAOiFlvfNk+szjddPax3pe5Embne/9ZMRqDCdb qOja55wuJcvm76rtVl+4FMxEVYh9cCkpRPK3CWhCmYpwgNN2ZwxflIOOScyjFaGtfVlj Yu0+zlkOP78eQx4OE17avHYK10cWnL3Y64sHDt2HJCr7R5uCSW8Kcf4IANOjSuUSurEW WZ8XZ2Zs4G5wc2/+we1R6wQtOm441DJjLOiBAIpQ0LvzQTiCna3/YoS/5q1EMu536SKn 2flKUsFAf/g1xf2+2G8YfoklimSQiLAuNA4Te+WKabusVgkp5CwYfDWxP/ESnfhLAEBU uK+A==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1777477811; x=1778082611; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=/z1BMFJdtwQpzJbLtAa26gs2KYdE/Wg0Rg4RAReGrVU=; b=XvAuGm64umsUcLYVesRCw2AdnGHc84zNyV5Zid/HvIQDRLnzgzmtq1mpeHuBkdryEo f6jK4tGKsKv0vmuM24szbmLeVB3n8C3vROIeuSmDruZiZn19GFh4jWM7ruvLhm/PJZ8L J7I8gm0DM6ClHv29em+i73KuXim+8BmlgNm8sTqY49OWRd3jiXk+d0FFEnMjXR6R5GaT JdpMoQcNd6JoDS5qcvCjDq8Rj80+p7hZWV4bHM9tsGUkPCibt6bhHddfMViZv60Nbp9T vE4dsNolcXHUCV1HZf+RsCHKXjCFEiBb0BTpD4yYHu01VevykY0vqzNPPA1GTKeb6DXk itGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777477811; x=1778082611; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :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:sender:from:to:cc:subject:date :message-id:reply-to; bh=/z1BMFJdtwQpzJbLtAa26gs2KYdE/Wg0Rg4RAReGrVU=; b=Y5Z228n/ztNl7pPlrFe/eEIt3BiPE+f3YPHY2j3UZZkBDMaB7hXs+3cAH4ZObZy358 ky7TXS0673jMshDEOfQ6YqWjZ1FRt8owm3a7VhxIb9WV5RxEbD23k/B7MaEt5CXy9EEx WgvAm2dbgfIdFcsveXlAKG4IzT19ycaY3hoMsX+l3golEWXian2T5w8Dig2pZLBlZVla 9ayLftPbwWL84RlAQJEPD+iFOGDwnP8hl8kX7zXuO6ufdrMuYBy75EDIzIkPHeXFV/cD SHtjQFkHNGIiHKwJ8ybAAMj19oQKyqJ74NePTKdLq49Vof8JmCcmJOTFYPtORPSq9bYO 8ohA== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AFNElJ/G+Zz6R9eOSbu88omiEkmMqnI2zrfmwaGL+9z/ChLkuW6Jg9+8Gf2xEprIxXpcDQe6sVZdMdM=@isar-build.org X-Gm-Message-State: AOJu0YznpjG7mz5Y+mLbjFVNdOKazQJwSpMFZ6ZTZCPHTG9NLTUzQzpv LRsh6SUNwcXMCduLJvmgYJhMdiOG87JEYpvF/OaPFm8M/57AeoV9M8xq X-Received: by 2002:a05:6102:504a:b0:610:eb3d:bb2c with SMTP id ada2fe7eead31-62927d3c330mr2974399137.31.1777477114037; Wed, 29 Apr 2026 08:38:34 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="AUV6zMMcZMLfQCPp5kZeudjQD7qYqINrPhLqzLyM+kOArZO99A==" Received: by 2002:aa7:df18:0:b0:66b:f0c:4635 with SMTP id 4fb4d7f45d1cf-67271754aedls10455032a12.0.-pod-prod-06-eu; Wed, 29 Apr 2026 08:38:31 -0700 (PDT) X-Received: by 2002:a17:907:7210:b0:ba9:bb46:3449 with SMTP id a640c23a62f3a-bb8018db5bcmr499855466b.8.1777477111151; Wed, 29 Apr 2026 08:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777477111; cv=none; d=google.com; s=arc-20240605; b=DkQcqmMZNghyOvRIlsP45Gs9pkPFtVSU3JVyD5GXFkgpNScufWD4FzfknKI8mCnCHB iO1eNakCfqvaIO7gYWU4XFpgyNcLeB8KuhZJ0/oieO8TRZn2TkPohSt0fAS+WlP9Hpeu jELZtJIWXFIPjKn1H8oI3DeaT7c7+4pz2Zvo2zrp701EIAKsm2hBt+ORAojA4YzFhOTi xpIOE1rNcGd/TtcS3LcXQpBIGc9bOxtK1OMmJWEMBVi5ZjhmSIL/FDzjUcx5+xN4MTf9 nsny+bXdfj5VlAUNlE+uEX2fenRkr3oQnt65DAkre/P5ojC8XicjRQB3seFoYQW0uk76 ERKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=dmQXAlUHYZvS6h5JOn59UdQhtUA0xYG+AuSdU3P6pfQ=; fh=SviDX/E5C+CNuLG4aYddj0ECCwgb1wEYINL+8UO5M6M=; b=C7M7oHAFVAcpGP+VyKNCCSHxIo2lA44TYJGkQIzZUlPfi3WvR1ENLV/JsOjCMwWWO8 edqt8H/6Fz2pcq+v/MF/0dqsl6Mwm1bp+MCrpAC+44u0JhxOACZdxSqCB/q6ID0t6TVp LOZt74vgNwb57w5vL9/4xV6/u664/AfTCKrkrJ79YwV1LaGjTq9g6rnYDAHPuRPVJF8s OrStQGxeRydNxsqtA+5JW3URyzkPHyIj75jEFsopqX30r29vd+TGuRCFQVPAJVVJ4K4f mY4t2TzSrhFIiQOtMdjt+TaPLeYzeGUzdsQtr5Xxfs61G9jVP7WHN+ORZ59GjVDzrFd2 r4bQ==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id a640c23a62f3a-bb980d687ffsi4464466b.1.2026.04.29.08.38.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Apr 2026 08:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from debian-zwei.m.ilbers.de ([88.130.203.42]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPA id 63TFcUGc018721; Wed, 29 Apr 2026 17:38:30 +0200 From: Zhihang Wei To: isar-users@googlegroups.com Cc: amikan@ilbers.de Subject: [PATCH v10 1/2] meta: Fix do_copy_boot_files error for different distros of same machine Date: Wed, 29 Apr 2026 17:38:28 +0200 Message-Id: <20260429153829.2668049-2-wzh@ilbers.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260429153829.2668049-1-wzh@ilbers.de> References: <20260429153829.2668049-1-wzh@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, 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-Original-Sender: wzh@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Anton Mikanovich When building different distros for the same machine (e.g., phyboard-mira-bullseye and phyboard-mira-bookworm), files with the same name (e.g, DTB files) might be deployed to the same location and this causes a build error. Use DISTRO- and KERNEL-dependent deploy directory. Also fix paths in installer and testsuite. Fixes test_dtb_deploy_distros testcase: ERROR: mc:phyboard-mira-bookworm:isar-image-base-1.0-r0 do_copy_boot_files: The recipe isar-image-base is trying to install files into a shared area when those files already exist. Those files and their manifest location are: NOTE: recipe isar-image-base-1.0-r0: task do_copy_boot_files: Failed build/tmp/deploy/images/phyboard-mira/imx6q-phytec-mira-rdk-nand.dtb (not matched to any task) Please verify which recipe should provide the above files. Signed-off-by: Anton Mikanovich --- RECIPE-API-CHANGELOG.md | 15 +++++++++++++++ .../classes-recipe/installer-add-rootfs.bbclass | 4 +++- meta/conf/bitbake.conf | 2 +- testsuite/citest.py | 7 ++++--- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 659a03b0..5723c4c3 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -1067,3 +1067,18 @@ Changes in next The DEPLOY_DIR_IMAGE path and artifacts naming changes introduced in 13cb77dd (included in Isar v1.0) have been reverted. Deployment paths and artifact names are the same as pre-v1.0. + +### Change DEPLOY_DIR_IMAGE path + +Change DEPLOY_DIR_IMAGE from ${DEPLOY_DIR}/images/${MACHINE} to +${DEPLOY_DIR}/images/${MACHINE}-${DISTRO}-${KERNEL_NAME}. When building +different distros with the same machine the following error occurs: + +do_copy_boot_files: The recipe isar-image-base is trying to install files +into a shared area when those files already exists. It happens when some +files have the same names (e.g., dtb files) for different distros. + +To prevent this new path is separated also by distro and kernel values. + +This change will influence on build artifacts location and should be taken +into account by downstreams. diff --git a/meta-isar/classes-recipe/installer-add-rootfs.bbclass b/meta-isar/classes-recipe/installer-add-rootfs.bbclass index 111506df..0ecb5cc5 100644 --- a/meta-isar/classes-recipe/installer-add-rootfs.bbclass +++ b/meta-isar/classes-recipe/installer-add-rootfs.bbclass @@ -13,7 +13,9 @@ INSTALLER_TARGET_IMAGES ??= "${INSTALLER_TARGET_IMAGE}" INSTALLER_TARGET_MC ??= "installer-target" INSTALLER_TARGET_DISTRO ??= "${DISTRO}" INSTALLER_TARGET_MACHINE ??= "${MACHINE}" -INSTALLER_TARGET_DEPLOY_DIR_IMAGE ??= "${DEPLOY_DIR}/images/${INSTALLER_TARGET_MACHINE}" +INSTALLER_TARGET_KERNEL_NAME ??= "${KERNEL_NAME}" +INSTALLER_TARGET_DEPLOY_DIR_POSTFIX ??= "${@ ('-'+d.getVar('INSTALLER_TARGET_KERNEL_NAME')) if d.getVar('INSTALLER_TARGET_KERNEL_NAME') else ''}" +INSTALLER_TARGET_DEPLOY_DIR_IMAGE ??= "${DEPLOY_DIR}/images/${INSTALLER_TARGET_MACHINE}-${INSTALLER_TARGET_DISTRO}${INSTALLER_TARGET_DEPLOY_DIR_POSTFIX}" IMAGE_DATA_FILE ??= "${INSTALLER_TARGET_IMAGE}-${INSTALLER_TARGET_DISTRO}-${INSTALLER_TARGET_MACHINE}" IMAGE_DATA_POSTFIX ??= "wic.zst" diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 5c71078d..0089942b 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -57,7 +57,7 @@ WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}/${PV}-${PR}" GIT_DL_LINK_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}" DEPLOY_DIR_BOOTSTRAP = "${DEPLOY_DIR}/bootstrap" DEPLOY_DIR_SDKCHROOT = "${DEPLOY_DIR}/sdkchroot" -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}" +DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}-${DISTRO}${@ ('-'+d.getVar('KERNEL_NAME')) if d.getVar('KERNEL_NAME') else ''}" DL_DIR ?= "${TOPDIR}/downloads" SSTATE_DIR ?= "${TOPDIR}/sstate-cache" SSTATE_MANIFESTS = "${TMPDIR}/sstate-control/${DISTRO}-${DISTRO_ARCH}" diff --git a/testsuite/citest.py b/testsuite/citest.py index ac45165b..e842b62e 100755 --- a/testsuite/citest.py +++ b/testsuite/citest.py @@ -498,8 +498,9 @@ class InitRdBaseTest(CIBaseTest): super().init() self.deploy_dir = os.path.join(self.build_dir, 'tmp', 'deploy') - def deploy_dir_image(self, machine): - return os.path.join(self.deploy_dir, 'images', machine) + def deploy_dir_image(self, mc, image): + multiconfig = f"{mc}:{image}" + return CIUtils.getVars('DEPLOY_DIR_IMAGE', target=multiconfig) def dracut_in_image(self, targets): machine = 'qemuamd64' @@ -528,7 +529,7 @@ class InitRdBaseTest(CIBaseTest): bb_should_fail=False): mc = f'mc:{machine}-{distro.removeprefix("debian-")}' initrd_image = f'{initrd}-{distro}-{machine}-initrd.img' - initrd_path = os.path.join(self.deploy_dir_image(machine), initrd_image) + initrd_path = os.path.join(self.deploy_dir_image(mc, initrd), initrd_image) # cleansstate if the initrd image was already built/deployed to verify # that a new build does result in the image being deployed From patchwork Wed Apr 29 15:38:29 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihang Wei X-Patchwork-Id: 5059 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 29 Apr 2026 17:38:41 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-wm1-f58.google.com (mail-wm1-f58.google.com [209.85.128.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 63TFceFS018757 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 29 Apr 2026 17:38:40 +0200 Received: by mail-wm1-f58.google.com with SMTP id 5b1f17b1804b1-488d9e1e61asf109240015e9.0 for ; Wed, 29 Apr 2026 08:38:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1777477114; cv=pass; d=google.com; s=arc-20240605; b=NlAnYiqtfA+INxJNQattlHOguOjNRlD3C7lhf6i/nro8VF/kEIridJg07+gbT8wGQF I5psZwIN+0UkBUePml9I7iNILUQgZEW8wZYlAxPacfAknjGYc0ujriKG2TRfnolQAM5w HLiUtEPf9ejEukEExM6ihgoRC9Zrfzp0FFSQS/8xTBXhTCz+I+Uow1hlmNLRVoqDyrXs uDzvh48AG9v0VnDKIdZN9XQkT8A5unqjGZXRxTzlrvyNwBkjyBP1f6kb7HSvrAb92TWd SDvjSl6qOyTQnBxnwKEJl9SvdGtkjn5JMjqTDc+sYIi0WEv89gHsBurB/c9wfAhZ+E0U DWXQ== ARC-Message-Signature: i=2; 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:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=XNJMjHI1yItocEtIM0HC1WGuaJdgWAjtPZ4pMlI0q4M=; fh=TLx3T4FdKgz/HU+iQ9U5ebWqD4D/nemzNNCtmovM50Y=; b=bTnen6Uf1LVDPKtdF4/mVOPdEGLvYRlWnDUniTQH4lm6XKyVbUOWzusZsV7orvnY61 sFU2ZSuY2hzsfAwgIiVUmeAPuukmTbktEUqyfPMGrAje5qpIRlcPQAJysXop64UH88MZ UX5FVhAehp/M3MpQAWEX/3ycUkLi737UAW+kF4V0e1bSxKULQLlEw7+lKC9ldsGoe63w Boc4dNue13ynP3r9WxdZdZXM2QekNNNjCQ0rXnJyGv+KluyRmf+BRnuroQMVrbtvAH0C 7q/+odRr5t8G2tdXZ1MuUFZGk/bMn6/ZYzetwCp/u6O1Ln/Uz3M13mFEh0n4XHsDLe8O vpcQ==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1777477114; x=1778081914; darn=isar-build.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:sender:from:to:cc:subject:date:message-id :reply-to; bh=XNJMjHI1yItocEtIM0HC1WGuaJdgWAjtPZ4pMlI0q4M=; b=SRJ9nYC3odGOKdjL2ehlifT6MFeYzkL5reQ7dbHDfl5rB3W4eVoyhApzcXxFE8tMhC KOhlYrswp8pkb7TU7BhJBUXj1dssdmTsWHNifomN5DzSx81a4oOKJmj56Bu4ystcUr53 LKvMXb0WTY4UOngl2iaFiiEMbRBlA9dyP2fzGA//NaGVb3l1FZ5Bte/DwaNgPn2XpfLo vsBxt3N8Lhkk5AmVhI9vpHxFhVYFlTQazqpVEe1+tfbGPAkRGMKYZIFUcRFyTrL3kBCj 3w8hfHxVlUpJwuBBQAmdetTTd2JtWbfI5htejDHiv2xKidU+c/PMC9pooGofHnOWIpj0 chnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777477114; x=1778081914; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :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:sender:from:to:cc:subject:date :message-id:reply-to; bh=XNJMjHI1yItocEtIM0HC1WGuaJdgWAjtPZ4pMlI0q4M=; b=SOLCfw+JwP1iOPDTY4FxiqXpq7QemcTU6zGvXd2gmQgZn5qtTDI2sauxl9+mv8DssW cODPqqIbJssqtPjmWU4/1SflvRC0G3GzJViGch3N/F5yh+NMgUvZje04zgww+pr256Kj lo/hXQDSy9a1TxJ10VCrpdIERG5uxCqhjnR3zHx+dq6i5ZhBEkgGYTY1qa0Pj1ohX/1f aHfH05UuMKIjq3sUtNC0Gx+uqnxX6k9dbU5fWNo8SQxjNQaSb6y5TC5b/gZgILsvcURX fr7bMYiD64+UlEu+Y1pRqx+Gdosfq0DcgtofUNAruA3rL2f+pnaZqtEviHNeTqy8A5hT rlHQ== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AFNElJ81dFZkA3B3bwdrOhXj/xlmysBvqLH+F7ee5b3AkUEYYZBuOLKKE6jY4i3rqO1J00T0WPeaabs=@isar-build.org X-Gm-Message-State: AOJu0YwYUeeL/xl74bamZ6zmMnkiGcRhWtykmaFzPFG62GOPoHcKIYYJ EujU/Tcyo46rtBNhZvKrdsFZCaqzwro+/EpF94/4MrXK85yn0Sz7Z2uz X-Received: by 2002:a05:600c:3411:b0:489:1ff5:edda with SMTP id 5b1f17b1804b1-48a7b83efe0mr41597085e9.6.1777477113910; Wed, 29 Apr 2026 08:38:33 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="AUV6zMOkgRxEwyK+956+FxNOvZdkZSGBTIKKYYdh+k+XIGmL6Q==" Received: by 2002:a05:6000:2982:20b0:43e:aa64:9a2b with SMTP id ffacd0b85a97d-43eb1c71e0els7125941f8f.2.-pod-prod-09-eu; Wed, 29 Apr 2026 08:38:31 -0700 (PDT) X-Received: by 2002:a05:6000:2c03:b0:441:360a:9438 with SMTP id ffacd0b85a97d-44790473b3fmr7538126f8f.25.1777477111461; Wed, 29 Apr 2026 08:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777477111; cv=none; d=google.com; s=arc-20240605; b=YcIM6DFVEodxVoKGvq1Uf8ECXHj1SC8yWlb5dRime8oJ61mGnnJKEFATjztCD3DpHC 0WtxEt5VDXvBKKfLQGlB6hXIR3Ht/U4Nfodb+vqP6Xg3ihVzIWzJLQtp+OBsAc89Ey9i TyKXZcEeiwBUaCmrTriNDmsGCaRKmEIk/D42PXepNuvzhIRd/KEa6BTnNY1NTBe+39dZ 0v8zRW2zAtPZ9SjtjJMDfxB4JbO1QjAT8g/ilkkU7/bKpxH6SSZs27V6P6sxDikqqDzb a1Wzxw1vz7lCPVGeXypPfzIjhGN9VDVlYGOfmdvFFgwZ/BHOQkUZtkvDlkv3GMYkpEYz hpPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=S6Gi/Tj5FoeXI8wVfrFo+QyE7jjE1so2V+V3KAfiy8M=; fh=SviDX/E5C+CNuLG4aYddj0ECCwgb1wEYINL+8UO5M6M=; b=M6G6d52fsFnaNX8oh8XvYLxP8zInMh65aCQ3pIyCE1UZzDCKoYHYvKH1OY7vmlvlFe HEDu4qHl3lui0j579qIkhOyxf6cLarLCX6WRd5wFMTMPoDrPGmyG+/Yyx42fNCgO2ACo Ye5LP20L+/UTFI9YvdV9iaP31JrMPGLklJXF3Pshwn5I/4YYKVjc5HWEHQ2PYSeM0os9 /OWNbosMbO16SCp03+K62w6CSzS7uGhxI3ewkVEoh2meB0220Otx1ZufX20/CBklEZWt gpZAWNSp4OFyoVXx5MEabHjL7ElKYa/yuj5MEL+WF6SatFpPZakPdPLeb8io11iFvwb7 xXWw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id ffacd0b85a97d-447b5ee6894si42860f8f.5.2026.04.29.08.38.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Apr 2026 08:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from debian-zwei.m.ilbers.de ([88.130.203.42]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPA id 63TFcUGd018721; Wed, 29 Apr 2026 17:38:30 +0200 From: Zhihang Wei To: isar-users@googlegroups.com Cc: amikan@ilbers.de Subject: [PATCH v10 2/2] meta: Move kernel artifacts deployment from image recipe Date: Wed, 29 Apr 2026 17:38:29 +0200 Message-Id: <20260429153829.2668049-3-wzh@ilbers.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260429153829.2668049-1-wzh@ilbers.de> References: <20260429153829.2668049-1-wzh@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, 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-Original-Sender: wzh@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of wzh@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=wzh@ilbers.de 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Anton Mikanovich Task do_copy_boot_files deploys DTB files into the same location for different images (e.g., isar-image-base and isar-image-ci). This causes a build error. do_copy_boot_files is called once for every image recipe while dtb files belong to the kernel which is the same for both images. Performing dtb deployment once for the same kernel solves the issue. Introduce `kernel-deploy` recipe responsible for extracting the DTBs and kernel from the linux-image package and deploying them. The kernel package is now installed into sbuild chroot. This is achieved via the respective dependency of `kernel-deploy` recipe. Fixes test_dtb_deploy_images testcase: ERROR: mc:phyboard-mira-bookworm:isar-image-base-1.0-r0 do_copy_boot_files: The recipe isar-image-base is trying to install files into a shared area when those files already exist. Those files and their manifest location are: build/tmp/deploy/images/phyboard-mira/imx6q-phytec-mira-rdk-nand.dtb (not matched to any task) Please verify which recipe should provide the above files. Signed-off-by: Anton Mikanovich --- RECIPE-API-CHANGELOG.md | 12 +++++ meta/classes-recipe/image.bbclass | 39 +++++--------- .../kernel-deploy/kernel-deploy.bb | 53 +++++++++++++++++++ 3 files changed, 77 insertions(+), 27 deletions(-) create mode 100644 meta/recipes-kernel/kernel-deploy/kernel-deploy.bb diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 5723c4c3..2cecd03b 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -1082,3 +1082,15 @@ To prevent this new path is separated also by distro and kernel values. This change will influence on build artifacts location and should be taken into account by downstreams. + +### Move kernel and DTBs deployment from image recipe to kernel related one + +To prevent parallel conflicting artifacts deployment from the same kernel +used by different images, move do_copy_boot_files() task logic from the image +recipe to the separate one, which is once-per-kernel. With this aproach the +deployment of any kernel artifacts will be performed only once per kernel. + +To left previous kernel image path per-image symlinks are now used. + +This deployment is implemented as separated recipe to be compatible both with +custom and distro kernel types. diff --git a/meta/classes-recipe/image.bbclass b/meta/classes-recipe/image.bbclass index 26a4ec06..a86ee443 100644 --- a/meta/classes-recipe/image.bbclass +++ b/meta/classes-recipe/image.bbclass @@ -1,5 +1,7 @@ # This software is a part of Isar. -# Copyright (C) 2015-2017 ilbers GmbH +# Copyright (C) 2015-2026 ilbers GmbH +# +# SPDX-License-Identifier: MIT # Make workdir and stamps machine-specific without changing common PN target WORKDIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}-${MACHINE}/${PV}-${PR}" @@ -9,7 +11,6 @@ STAMPCLEAN = "${STAMPS_DIR}/${DISTRO}-${DISTRO_ARCH}/${PN}-${MACHINE}/*-*" # Sstate also needs to be machine-specific SSTATE_MANIFESTS = "${TMPDIR}/sstate-control/${MACHINE}-${DISTRO}-${DISTRO_ARCH}" -SSTATETASKS += "do_copy_boot_files" IMAGE_INSTALL ?= "" IMAGE_FSTYPES ?= "ext4" @@ -381,37 +382,21 @@ INITRD_IMG = "${PP_DEPLOY}/${INITRD_DEPLOY_FILE}" # only one dtb file supported, pick the first DTB_IMG = "${PP_DEPLOY}/${@(d.getVar('DTB_FILES').split() or [''])[0]}" -do_copy_boot_files[cleandirs] += "${DEPLOYDIR}" -do_copy_boot_files[sstate-inputdirs] = "${DEPLOYDIR}" -do_copy_boot_files[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" -do_copy_boot_files[network] = "${TASK_USE_SUDO}" +python() { + if d.getVar('DTB_FILES'): + d.appendVarFlag("do_copy_boot_files", "depends", "kernel-deploy-${KERNEL_NAME}:do_deploy") +} + +# Associate kernel with image by symlinks +do_copy_boot_files[dirs] += "${DEPLOY_DIR_IMAGE}" do_copy_boot_files() { - kernel="$(realpath -q '${IMAGE_ROOTFS}'/vmlinu[xz])" - if [ ! -f "$kernel" ]; then - kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz])" - fi + kernel="$(realpath -q '${DEPLOY_DIR_IMAGE}/${KERNEL_NAME}'-vmlinu[xz]*)" if [ -f "$kernel" ]; then - sudo cat "$kernel" > "${DEPLOYDIR}/${KERNEL_IMAGE}" + ln -sfr "$kernel" "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE}" fi - - for file in ${DTB_FILES}; do - dtb="$(find '${IMAGE_ROOTFS}/usr/lib' -type f \ - -iwholename '*linux-image-*/'${file} | head -1)" - - if [ -z "$dtb" -o ! -e "$dtb" ]; then - die "${file} not found" - fi - - cp -f "$dtb" "${DEPLOYDIR}/" - done } addtask copy_boot_files before do_rootfs_postprocess after do_rootfs_install -python do_copy_boot_files_setscene () { - sstate_setscene(d) -} -addtask do_copy_boot_files_setscene - python do_image_tools() { """Virtual task""" pass diff --git a/meta/recipes-kernel/kernel-deploy/kernel-deploy.bb b/meta/recipes-kernel/kernel-deploy/kernel-deploy.bb new file mode 100644 index 00000000..32521148 --- /dev/null +++ b/meta/recipes-kernel/kernel-deploy/kernel-deploy.bb @@ -0,0 +1,53 @@ +# This software is a part of Isar. +# Copyright (C) ilbers GmbH, 2026 +# +# SPDX-License-Identifier: MIT + +inherit dpkg-raw + +MAINTAINER = "isar-users " + +PN:append = "-${KERNEL_NAME}" + +KERNEL_IMAGE_PKG ??= "${@ ("linux-image-" + d.getVar("KERNEL_NAME")) if d.getVar("KERNEL_NAME") else ""}" + +DEPENDS = "${KERNEL_IMAGE_PKG}" +DEBIAN_BUILD_DEPENDS = "${KERNEL_IMAGE_PKG}" + +DPKG_ARCH = "${PACKAGE_ARCH}" + +do_prepare_build:append() { + dir=debian/${PN}/boot + cat <> ${S}/debian/rules + mkdir -p ${dir} + realpath -q /boot/vmlinu[xz] + kernel="\$\$(realpath -q /vmlinu[xz])" && \ + if [ ! -f "\$\${kernel}" ]; then kernel="\$\$(realpath -q /boot/vmlinu[xz])"; fi && \ + if [ -f "\$\${kernel}" ]; then cp "\$\${kernel}" "${dir}/${KERNEL_NAME}-\$\$(basename \$\${kernel})"; fi +EOF + + for dtb in ${DTB_FILES}; do + dir=debian/${PN}/usr/lib/${PN}/$(dirname ${dtb}) + cat <> ${S}/debian/rules + mkdir -p ${dir} + find /usr/lib/linux-image* -path "*${dtb}" -print -exec cp {} ${dir} \; +EOF + done +} + +DTB_PACKAGE ??= "${PN}_${CHANGELOG_V}_${DISTRO_ARCH}.deb" + +do_deploy[dirs] = "${DEPLOY_DIR_IMAGE}" +do_deploy[cleandirs] = "${WORKDIR}/deploy" +do_deploy() { + dpkg --fsys-tarfile ${WORKDIR}/${DTB_PACKAGE} | \ + tar --wildcards --extract --directory ${WORKDIR}/deploy ./boot ./usr/lib/${PN} + find ${WORKDIR}/deploy/boot -path "*vmlinu*" -print \ + -exec cp {} ${DEPLOY_DIR_IMAGE}/ \; + for dtb in ${DTB_FILES}; do + mkdir -p ${DEPLOY_DIR_IMAGE}/$(dirname ${dtb}) + find ${WORKDIR}/deploy/usr/lib/${PN} -path "*${dtb}" -print \ + -exec cp {} ${DEPLOY_DIR_IMAGE}/${dtb} \; + done +} +addtask deploy before do_deploy_deb after do_dpkg_build