From patchwork Fri Oct 10 15:12:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Moessbauer X-Patchwork-Id: 4408 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 10 Oct 2025 17:12:30 +0200 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 59AFCT1r019079 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 10 Oct 2025 17:12:29 +0200 Received: by mail-qk1-f187.google.com with SMTP id af79cd13be357-86df46fa013sf899028885a.2 for ; Fri, 10 Oct 2025 08:12:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1760109143; cv=pass; d=google.com; s=arc-20240605; b=lD1LZ7DlkhAmWr73+FA3A7iLET4Icxfdc6uczxQakEsPeUradDWOCuYNpNihVrgRaq L9AhLbYHlGpFCylqX9ZYUB7Unh6NGWXJhNc1EEc9QZ2sLbKuahln/CIigUPFwGoufg2T auDt6WO/HkszO0gZ2xawEw7dcfELJNGc7HVmb+HVOlZqtj4r0jgkI2FT2GUrHAvZ9ptm T73vjfhouine8M87UWLJsTvEcaV0zvgS2Gog8XCKkT4d0xHMGpOlPuF4hcvy2o3kXhIN rGrTeFAXN8p/mkdmOH6sJkibB51bK0qP77QVWaFgZUObPi5fhocTU5eGUSvtGaQMNNf/ T3eQ== 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:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PV8nmYtZ3AgoDoTNqJz5PfzBa0nlGtj260Iq02s4Boo=; fh=Bs93JpF1dNz5qaak98hrqUBWrBdbjVZAnetZI3sda+o=; b=CdAJREcQCUrnAi6RAMCwfzwy03EbLVbf9NGLH4nFESaJ2NOnb0oPg08UmKhJalHaP0 S80KFmhPSGBH+rbhI1sOFPE74KiypLjvkkGxeGmrpmqw23rpgicXjUAXF2Zj7RHbDU2e V1BIYFHuw8nvkXfWy1ps2TX2HpO9Mx+O1TVA5CgqMfGdTlzY1Gi/rbFgTjZKEQ5hsLu+ kEBQnFHw/jP6xYjM1kx+lB6UJZhK7hsG9SsNAdQh7KdAxVg+jI+nrK7WAujX1DqYgO9p AWUROXf4kjygW/ejoGdLdnazK7up1ZTtlCpq7Ryt9UmjC+Hz9K/l5bUaSnpD1StRfThH TPDA==; darn=isar-build.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=O4SoysRk; spf=pass (google.com: domain of fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-2025101015122020def21e95000207c9-tpomt4@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=20230601; t=1760109143; x=1760713943; 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:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=PV8nmYtZ3AgoDoTNqJz5PfzBa0nlGtj260Iq02s4Boo=; b=Ks8UFaFO2W7Oi5Knm9NQcSY8/aO2bZbsA84HA0aJ7LXQRkuJFKVlBydnS408m3WZh0 bboIs5q6aaYKqpbqPmImwqoWfvnyUx2h1/vzPnxQ+uF1C9jp1mqHsDgtlfu1NM1mZNs2 2FO4RNAvAbherlF2O04GMlM5QL5UHnwM2AJeAgZuvBHJGLdBE3tBgQrxK6dCXjfexSsa bGh134EMLCLPzgYL/VMeIzwX8kSWVuO8jfVHXH60GR1Ved41Oa2aQ0d6ImISbGPC7Wyy m4QLzrpvyN0yHmPWSCGoSl6ILW2hJG6H3ZXbQKAUYtq56e1fRpyY4aRWg5b2235GcVym zxNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760109143; x=1760713943; 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: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; bh=PV8nmYtZ3AgoDoTNqJz5PfzBa0nlGtj260Iq02s4Boo=; b=pek4NAvzk68k5OcvMCLCsg4qzPSSwZ1iZ4D1ClzGZr50/7Rmt3WwSuxAFDJ+/MRKe9 MPcSkQIwm7szI3vTCLLKWM3+c8zu3KuS2+fiajkrmM1kCmXYpM51kjppJulgZIJ+rtEc JRH2qqyN22Y3v7J8kaOXhV8I1eMb8AYRCHlgKwj9qZDTMWNWrMgNvkNSDhrefopfwRnf w9KIPe+2BoBxPl9eRDoZlIWKf955qOhZbCbocKoeRf2qrcNNMsFbv6DBdz9UpAVNfgNb WYhUPkBn7GZ2xnh5nlONrP+4xFsu/ODI3PWt88PBU+GDTUuRPomZd7WlGCu2Fq5dlXvT Kqhw== X-Forwarded-Encrypted: i=2; AJvYcCWOIUsR0iO3qQ91MY8aSqhWgEEZCWxbtWeEnN3xBR4DXHBoMFA0bxtyDsqxASEMW5e+WETxlwY=@isar-build.org X-Gm-Message-State: AOJu0YzSSZK3FJBZauVB74dk9ciT3ZRmjVzdXS4FAl9wS2RmFnotBN6Q we4w7vph5U9P7sQIj8eLvVmj3BMnmKum1FHUzv3dcokV1oN6QudTfF9N X-Google-Smtp-Source: AGHT+IG0iKAyIqkDqZvTbFweOPwHa+ljfG7cvvu3QiQ1zPYoa8QbML3lcNbxauiIhrO/Hf4HXFyL4A== X-Received: by 2002:a05:620a:4542:b0:85a:2def:2fdc with SMTP id af79cd13be357-88353a35e77mr1421541485a.57.1760109142974; Fri, 10 Oct 2025 08:12:22 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ARHlJd61eI2AsAihFWI6B38H8WDlvpSGkivCXLj3bn/PGNeIhg==" Received: by 2002:a05:622a:8304:b0:4d6:8228:f5e2 with SMTP id d75a77b69052e-4e6f8c259d9ls37066901cf.2.-pod-prod-01-us; Fri, 10 Oct 2025 08:12:21 -0700 (PDT) X-Received: by 2002:a05:622a:30a:b0:4b5:f244:6661 with SMTP id d75a77b69052e-4e6eaccbac5mr171362271cf.2.1760109141739; Fri, 10 Oct 2025 08:12:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1760109141; cv=none; d=google.com; s=arc-20240605; b=NBpPhOBxhVVi7+6VW1xJyk4Bq7XNKBHZ6t9IpyxryzA87MZxeTssjXt65zS4IVRbM6 reBLQKyrvZ8E131eCGAHoozQepiJGUpd38LCXbLGLwjg5waAUGlkNixs8JJqZuIt/0NH lbapem9mYnOWMSaB6PfIgT/j7AcLAkDlVY6QwffBLmUIfc0oke9TXID8OUmn05Z9+NdO ggTc8cSqv4K4HhKImD1FfDcPO5wxL4KK9D2m5ANehH57FD8Kt631mWYVOkFCW64Qq6d1 2E/zqFfJI3o6lCLv8DBYWkeZBxK2UIRsLUSaUkMjcgEKkMDhaCrsBsjEEZzK/sFd3o6w F58A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=LoBUyMlmh1rjXTqNYDVHzUlvJa/oE4RACGSOdT6i/a8=; fh=laBrivhyPfU7dY+vAlHD/XbiLANPU9P/6hv4YM89gpc=; b=kT0GM7uwSY7rFTgkfSt3A827MxA8D6G7C8tmSSseq4CD7D+p3NRuE9yGCPepDdI3ra m19u1Wn4RhUbtFhCDFU4h5BDgh2MvacjZDyOzu2QjJA+l1JlubIwFj5H0yhUFDC1JkT2 fm4oT4QAjFwCwG2sp05c3BcyfOsYYOhDAp79hmQwS43xjB6hpkdfU+JeQIWenzxpCECx +OOZUTzRDPXEZ309Kd7yydHTk0ZzzQRbHnpUgQzbN6HE4wx9+WO+nUJM6W5WjPuJsPKS w4EKI72lR7A/uEnBDf1gHGnIc7pcmPA3/J7Ri09k181VPQibgATzyqwq1azXfmxr/6JJ 2Nog==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=O4SoysRk; spf=pass (google.com: domain of fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from mta-64-225.siemens.flowmailer.net (mta-64-225.siemens.flowmailer.net. [185.136.64.225]) by gmr-mx.google.com with ESMTPS id d75a77b69052e-4e706660d59si284771cf.0.2025.10.10.08.12.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 10 Oct 2025 08:12:21 -0700 (PDT) Received-SPF: pass (google.com: domain of fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) client-ip=185.136.64.225; Received: by mta-64-225.siemens.flowmailer.net with ESMTPSA id 2025101015122020def21e95000207c9 for ; Fri, 10 Oct 2025 17:12:20 +0200 X-Patchwork-Original-From: "'Felix Moessbauer' via isar-users" From: Felix Moessbauer To: isar-users@googlegroups.com Cc: christoph.steiger@siemens.com, cedric.hombourger@siemens.com, quirin.gylstorff@siemens.com, jan.kiszka@siemens.com, Felix Moessbauer Subject: [RFC PATCH 1/3] Add support to add imager dependencies to BOM Date: Fri, 10 Oct 2025 17:12:03 +0200 Message-ID: <20251010151205.2122000-2-felix.moessbauer@siemens.com> In-Reply-To: <20251010151205.2122000-1-felix.moessbauer@siemens.com> References: <20251010151205.2122000-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1321639:519-21489:flowmailer X-Original-Sender: felix.moessbauer@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=O4SoysRk; spf=pass (google.com: domain of fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.siemens.com designates 185.136.64.225 as permitted sender) smtp.mailfrom=fm-1321639-2025101015122020def21e95000207c9-tpomt4@rts-flowmailer.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?= Currently the imager dependencies which end up in the image are not tracked in any BOM (e.g. the manifest file). As these cannot be automatically derived from the IMAGER_INSTALL packages, we add a new variable IMAGER_BOM that takes a list of binary packages which are looked-up using dpkg-query during imaging and added to a local manifest. Signed-off-by: Felix Moessbauer --- doc/user_manual.md | 1 + meta/classes/image-tools-extension.bbclass | 7 +++++++ meta/classes/image.bbclass | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/doc/user_manual.md b/doc/user_manual.md index 67f91973..deb66a45 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -454,6 +454,7 @@ Some other variables include: - `FILESEXTRAPATHS` - The default directories BitBake uses when it processes recipes are initially defined by the FILESPATH variable. You can extend FILESPATH variable by using FILESEXTRAPATHS. - `FILESOVERRIDES` - A subset of OVERRIDES used by the build system for creating FILESPATH. The FILESOVERRIDES variable uses overrides to automatically extend the FILESPATH variable. - `IMAGER_INSTALL` - The list of package dependencies for an imager like wic. + - `IMAGER_BOM` - The list of packages that should be added to the image BOM (e.g. the bootloader). These packages must also be available in the imager rootfs. --- diff --git a/meta/classes/image-tools-extension.bbclass b/meta/classes/image-tools-extension.bbclass index 5e248f2e..6aa790f3 100644 --- a/meta/classes/image-tools-extension.bbclass +++ b/meta/classes/image-tools-extension.bbclass @@ -20,6 +20,7 @@ SCHROOT_MOUNTS += "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt" imager_run() { local_install="${@(d.getVar("INSTALL_%s" % d.getVar("BB_CURRENTTASK")) or '').strip()}" + local_bom="${@(d.getVar("BOM_%s" % d.getVar("BB_CURRENTTASK")) or '').strip()}" schroot_create_configs insert_mounts @@ -70,6 +71,12 @@ EOAPT schroot -r -c ${session_id} "$@" + if [ -n "${local_bom}" ]; then + schroot -r -c ${session_id} -d / -- \ + dpkg-query -W -f='${source:Package}|${source:Version}|${binary:Package}|${Version}\n' ${local_bom} > \ + ${WORKDIR}/imager.manifest + fi + schroot -e -c ${session_id} remove_mounts diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index bd1b8552..53017963 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -184,6 +184,7 @@ python() { imager_install = set() imager_build_deps = set() + imager_bom = set() conversion_install = set() for bt in basetypes: local_imager_install = set() @@ -214,6 +215,8 @@ python() { local_imager_install.add(dep) for dep in (d.getVar('IMAGER_BUILD_DEPS:' + bt_clean) or '').split(): imager_build_deps.add(dep) + for dep in (d.getVar('IMAGER_BOM:' + bt_clean) or '').split(): + imager_bom.add(dep) # construct image command image_cmd = localdata.getVar('IMAGE_CMD:' + bt_clean) @@ -288,11 +291,14 @@ python() { bb.build.addtask(task, 'do_image', after, d) # set per type imager dependencies + d.setVar('BOM_image_%s' % bt_clean, d.getVar('IMAGER_BOM')) + d.appendVar('BOM_image_%s' % bt_clean, ' ' + ' '.join(sorted(imager_bom))) d.setVar('INSTALL_image_%s' % bt_clean, d.getVar('IMAGER_INSTALL')) d.appendVar('INSTALL_image_%s' % bt_clean, ' ' + ' '.join(sorted(local_imager_install | local_conversion_install))) d.appendVarFlag(task, 'vardeps', ' INSTALL_image_%s' % bt_clean) d.appendVar('IMAGER_INSTALL', ' ' + ' '.join(sorted(imager_install | conversion_install))) + d.appendVar('IMAGER_BOM', ' ' + ' '.join(sorted(imager_bom))) d.appendVar('IMAGER_BUILD_DEPS', ' ' + ' '.join(sorted(imager_build_deps))) }