From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6721684426774806528 X-Received: by 2002:a05:651c:153:: with SMTP id c19mr13573759ljd.152.1565703716070; Tue, 13 Aug 2019 06:41:56 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:87d5:: with SMTP id v21ls618370ljj.5.gmail; Tue, 13 Aug 2019 06:41:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqwCruj8IxQBFHghsVtzJa1TYSpbasFUrAPeQQg7CVXo2LNoKZCUMTw1Q9E86P/FJQS+GlRt X-Received: by 2002:a2e:8ec6:: with SMTP id e6mr9028070ljl.192.1565703715664; Tue, 13 Aug 2019 06:41:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565703715; cv=none; d=google.com; s=arc-20160816; b=jqYVisnhU2WN7j5+E0C8ZwCwTX012KSrsIRO2Tl7g8zC/74xX0G6Z29irbGqdMW8Zw Y/77DqegRUMxEUvq9TBW3z7qOgX7FTya6uuarFQkqqDYKKxFaCYuxQQ7rS5Te6mVI0YJ HZTb8zB2WGoESjQ1xL5QVohbAhUUHj2BuygpwGXT95ACnL3FZ62452JYIAYMvYVhDc1K GbE5lkWVLMtXg0yi6/XX4cZhHUSue2VsSY+T3RZLQU6gz9kvdQ7da9GvKNq/IRp3FXp/ 7kgKZO8UmV9V1zaCHo0WDbDfcyPZvxxYKKXcR5wHy22ktOPu0RI4o+qDIcEqZQkAdvWJ L0CQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=LiSkoiKq87I6tHwWe6O2HR8B5mOis97pDST/vUPvU4g=; b=zDSvi4T8kFftidTVdQCnr2xDfP4NjT26HxzvyuGP6nIZerkkMhG4XoWeUWZZ4c7Upe qClchRPfwelYhL/3QDlsMuvl2fN/Odrj3cnXnLl6N3g9KgeP/Ow8fniyL0voRKyX4D87 6B4OL9Bk6Jl1y8maibMOm4HA9iPxak4RoBxguU7Bp0Xme5oYGhuNnXj/cqMFTxI+EOMV 25txk7E4p+PIPKuIeHE/3EJJ5yDPt0lPbMixCOeaVFfvVgv2pWVfyI0bMgJykNGtSzD1 3B6j68S0kUrIYwhmQtkFFQsml4ikPnRlQ+HIciAKf/1uQBEh8FN/f6ZqCkqVzSVJBMFB SVbA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of quirin.gylstorff@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=Quirin.Gylstorff@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id i21si269204ljj.1.2019.08.13.06.41.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Aug 2019 06:41:55 -0700 (PDT) Received-SPF: pass (google.com: domain of quirin.gylstorff@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of quirin.gylstorff@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=Quirin.Gylstorff@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id x7DDfsNh012152 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 13 Aug 2019 15:41:54 +0200 Received: from debian.ad001.siemens.net ([139.25.68.238]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id x7DDfsNv013890; Tue, 13 Aug 2019 15:41:54 +0200 From: "Q. Gylstorff" To: isar-users@googlegroups.com Cc: Quirin Gylstorff , Claudius Heine Subject: [PATCH v5] meta/classes: generate bill of material from image Date: Tue, 13 Aug 2019 15:40:59 +0200 Message-Id: <20190813134059.30102-1-Quirin.Gylstorff@siemens.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <3e792ace-44e8-e1aa-3a44-21a7c2c1f375@siemens.com> References: <3e792ace-44e8-e1aa-3a44-21a7c2c1f375@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: l0W/rF92WvDC From: Quirin Gylstorff To create products it is necessary to have a list of used packages for clearance and to security monitoring. To get a simple list of packages use dpkg-query and generate a list with the following pattern: source name| source version | binary package name | binary version All rootfs generate the list by default. Currently the f following lists are generated: - buildchroot-${DISTRO}-${ARCH}.manifest - ${IMAGE}-${DISTRO}-${ARCH}.manifest - optional: sdkchroot-${DISTRO}-${ARCH}.manifest Remove the feature with: ROOTFS_FEATURES_remove = "generate-manifest" Signed-off-by: Quirin Gylstorff --- meta/classes/image.bbclass | 2 +- meta/classes/rootfs.bbclass | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index ec6bd39..70c46d2 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -58,7 +58,7 @@ image_do_mounts() { } ROOTFSDIR = "${IMAGE_ROOTFS}" -ROOTFS_FEATURES += "copy-package-cache clean-package-cache finalize-rootfs" +ROOTFS_FEATURES += "copy-package-cache clean-package-cache finalize-rootfs generate-manifest" ROOTFS_PACKAGES += "${IMAGE_PREINSTALL} ${IMAGE_INSTALL}" inherit rootfs diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index c7e0435..59edcde 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -10,7 +10,8 @@ ROOTFS_PACKAGES ?= "" # 'deploy-package-cache' - copy the package cache ${WORKDIR}/apt_cache # 'clean-package-cache' - delete package cache from rootfs # 'finalize-rootfs' - delete files needed to chroot into the rootfs -ROOTFS_FEATURES ?= "" +# 'generate-manifest' - generate a package manifest of the rootfs into ${IMAGE_DEPLOY_DIR} +ROOTFS_FEATURES ?= "generate-manifest" ROOTFS_APT_ARGS="install --yes -o Debug::pkgProblemResolver=yes" @@ -212,6 +213,15 @@ rootfs_postprocess_finalize() { EOSUDO } +ROOTFS_POSTPROCESS_COMMAND += "${@bb.utils.contains('ROOTFS_FEATURES', 'generate-manifest', 'rootfs_generate_manifest', '', d)}" +rootfs_generate_manifest () { + mkdir -p ${DEPLOY_DIR_IMAGE} + sudo -E chroot '${ROOTFSDIR}' \ + dpkg-query \ + -f '${source:Package}|${source:Version}|${binary:Package}|${Version}\n' -W > \ + ${DEPLOY_DIR_IMAGE}/"${PF}".manifest +} + do_rootfs_postprocess[vardeps] = "${ROOTFS_POSTPROCESS_COMMAND}" python do_rootfs_postprocess() { # Take care that its correctly mounted: -- 2.20.1