Ok. I have been looking for something like this for some time now :)
On Monday, August 5, 2019 at 7:38:31 PM UTC+5:30, Q. Gylstorff wrote:
From: Quirin Gylstorff <quirin....@siemens.com>
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
To use it add following line to the local.conf:
ISAR_DO_PACKAGE_LIST ?= "1"
Signed-off-by: Quirin Gylstorff <quirin....@siemens.com>
---
meta-isar/conf/local.conf.sample | 4 ++++
.../classes/image-package-list-extension.bbclass | 16 ++++++++++++++++
meta/classes/image.bbclass | 1 +
3 files changed, 21 insertions(+)
create mode 100644 meta/classes/image-package-list-extension.bbclass
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 5b3a0a1..d188051 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -170,6 +170,10 @@ IMAGE_INSTALL = "hello-isar example-raw example-module-${KERNEL_NAME} enable-fsc
# NOTE: this works on build host >= stretch for armhf, arm64 and amd64 targets for now.
ISAR_CROSS_COMPILE ?= "0"
+#
+# Generate package list
+ISAR_DO_PACKAGE_LIST ?= "1"
+
#
# Uncomment this to enable use of cached base repository
#ISAR_USE_CACHED_BASE_REPO ?= "1"
diff --git a/meta/classes/image-package-list-extension.bbclass b/meta/classes/image-package-list-extension.bbclass
new file mode 100644
index 0000000..558922e
--- /dev/null
+++ b/meta/classes/image-package-list-extension.bbclass
@@ -0,0 +1,16 @@
+# This software is a part of ISAR.
+# Copyright (C) Siemens AG, 2019
+#
+# SPDX-License-Identifier: MIT
+
+ISAR_DO_PACKAGE_LIST ??= "0"
+image_package_list[dirs] = "${DEPLOY_DIR_IMAGE}"
+image_package_list() {
+ if [ "${@repr(bb.utils.to_boolean(d.getVar('ISAR_DO_PACKAGE_LIST')))}" = 'True' ]; then
+ dpkg-query --admindir=${IMAGE_ROOTFS}/var/lib/dpkg/ \
+ -f '${source:Package}|${source:Version}|${binary:Package}|${Version}\n' -W > \
+ ${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.packages.lst
May be we could format and sort this a bit.
dpkg-query --admindir=${IMAGE_ROOTFS}/var/lib/dpkg/ \
-f '${source:Package}|${source:Version}|${binary:Package}|${Version}\n' -W | column -t | sort
You could add column headers as well.
+ fi
+}
+ROOTFS_POSTPROCESS_COMMAND =+ "image_package_list"
+
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index ec6bd39..85bab64 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -68,6 +68,7 @@ inherit image-tools-extension
inherit image-postproc-extension
inherit image-locales-extension
inherit image-account-extension
+inherit image-package-list-extension
# Extra space for rootfs in MB
ROOTFS_EXTRA ?= "64"
--
2.20.1
Thanks,
Vijai Kumar K