Message ID | 20250305142513.1841415-2-srinuvasan.a@siemens.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [1/3] mmdebstrap: add "skip=cleanup/reproducible" option to mmdebstrap | expand |
On Wed, 2025-03-05 at 19:55 +0530, srinuvasan.a@siemens.com wrote: > From: srinuvasan <srinuvasan.a@siemens.com> > > With the present implementation, deb-src packages are missing for > imager related > deb packages (packages listed in IMAGER_INSTALL). > Copy the /var/log/dpkg.log file from the sbuild environment to > outside > With that, use the list to download deb-src packages for > IMAGER_INSTALL > related deb packages. > > Presently, cache_deb_src function running as part of > ROOTFS_POSTPROCESS_COMMAND, > this will not be helpful to get the imager related deb-src packages, > hence > make cache_deb_src as a separate task and running > always after do_image to get the imager deps related deb-src > packages. > > Signed-off-by: srinuvasan <srinuvasan.a@siemens.com> > --- > meta/classes/image-tools-extension.bbclass | 8 +++++++- > meta/classes/image.bbclass | 8 +++++++- > meta/classes/rootfs.bbclass | 3 ++- > 3 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/meta/classes/image-tools-extension.bbclass > b/meta/classes/image-tools-extension.bbclass > index e8ace8f5..156dfcb3 100644 > --- a/meta/classes/image-tools-extension.bbclass > +++ b/meta/classes/image-tools-extension.bbclass > @@ -7,6 +7,9 @@ > > inherit sbuild > > +PP = "/home/builder/${PN}-${MACHINE}" > +ext_root="${PP}/rootfs" > + > IMAGER_INSTALL ??= "" > IMAGER_BUILD_DEPS ??= "" > DEPENDS += "${IMAGER_BUILD_DEPS}" > @@ -59,9 +62,11 @@ EOAPT > > deb_dl_dir_export ${schroot_dir} ${distro} > schroot -r -c ${session_id} -d / -u root -- sh -c " \ > + rm -f /var/log/dpkg.log > apt-get -o Debug::pkgProblemResolver=yes --no-install- > recommends -y \ > --allow-unauthenticated --allow-downgrades install \ > - ${local_install}" > + ${local_install} > + cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" This fails on any build with FSTYPES including (at least) "ext4": ``` [stdlog] 2025-03-05 19:12:45,460 avocado.app ERROR| ERROR: Logfile of failure stored in: /workspace/build/isar_ub_devel_fast/210/build/tmp/work/debian-bullseye- armhf/isar-image-base-qemuarm/1.0-r0/temp/log.do_image_ext4.3684960 ... [stdlog] 2025-03-05 19:12:54,914 avocado.test INFO | | cp: cannot stat '/var/log/dpkg.log': No such file or directory ``` Can be easy reproduced with kas menu, if "ext4" is added to additional image fstypes. > fi > > schroot -r -c ${session_id} "$@" > @@ -70,4 +75,5 @@ EOAPT > > remove_mounts > schroot_delete_configs > + sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log" > } > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 56eca202..66b4d313 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -72,7 +72,13 @@ ROOTFS_MANIFEST_DEPLOY_DIR ?= > "${DEPLOY_DIR_IMAGE}" > ROOTFS_DPKGSTATUS_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" > ROOTFS_PACKAGE_SUFFIX ?= "${PN}-${DISTRO}-${MACHINE}" > > -ROOTFS_POSTPROCESS_COMMAND:prepend = > "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', > 'cache_deb_src', '', d)} " > +CACHE_DEB_SRC = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache- > deb-src', '1', '0', d)}" > + > +python () { > + if bb.utils.to_boolean(d.getVar('CACHE_DEB_SRC')): > + bb.build.addtask('do_cache_deb_src', 'do_deploy', > 'do_image', d) > +} > + > > inherit rootfs > inherit sdk > diff --git a/meta/classes/rootfs.bbclass > b/meta/classes/rootfs.bbclass > index 205da640..b9d360e7 100644 > --- a/meta/classes/rootfs.bbclass > +++ b/meta/classes/rootfs.bbclass > @@ -272,7 +272,8 @@ python do_rootfs_install() { > } > addtask rootfs_install before do_rootfs_postprocess after do_unpack > > -cache_deb_src() { > +do_cache_deb_src[network] = "${TASK_USE_SUDO}" > +do_cache_deb_src() { > if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || > [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then > sudo mv "${ROOTFSDIR}"/etc/resolv.conf > "${ROOTFSDIR}"/etc/resolv.conf.isar
Thanks Uladzimir for the findings, will try to reproduce and fix the issue. Thanks, Srinu -----Original Message----- From: Uladzimir Bely <ubely@ilbers.de> Sent: 06 March 2025 11:35 To: Arjunan, Srinu (FT FDS CES LX PBU 2) <srinuvasan.a@siemens.com>; isar-users@googlegroups.com Subject: Re: [PATCH 2/3] image: download deb-src packages after imager creation On Wed, 2025-03-05 at 19:55 +0530, srinuvasan.a@siemens.com wrote: > From: srinuvasan <srinuvasan.a@siemens.com> > > With the present implementation, deb-src packages are missing for > imager related deb packages (packages listed in IMAGER_INSTALL). > Copy the /var/log/dpkg.log file from the sbuild environment to outside > With that, use the list to download deb-src packages for > IMAGER_INSTALL related deb packages. > > Presently, cache_deb_src function running as part of > ROOTFS_POSTPROCESS_COMMAND, this will not be helpful to get the imager > related deb-src packages, hence make cache_deb_src as a separate task > and running always after do_image to get the imager deps related > deb-src packages. > > Signed-off-by: srinuvasan <srinuvasan.a@siemens.com> > --- > meta/classes/image-tools-extension.bbclass | 8 +++++++- > meta/classes/image.bbclass | 8 +++++++- > meta/classes/rootfs.bbclass | 3 ++- > 3 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/meta/classes/image-tools-extension.bbclass > b/meta/classes/image-tools-extension.bbclass > index e8ace8f5..156dfcb3 100644 > --- a/meta/classes/image-tools-extension.bbclass > +++ b/meta/classes/image-tools-extension.bbclass > @@ -7,6 +7,9 @@ > > inherit sbuild > > +PP = "/home/builder/${PN}-${MACHINE}" > +ext_root="${PP}/rootfs" > + > IMAGER_INSTALL ??= "" > IMAGER_BUILD_DEPS ??= "" > DEPENDS += "${IMAGER_BUILD_DEPS}" > @@ -59,9 +62,11 @@ EOAPT > > deb_dl_dir_export ${schroot_dir} ${distro} > schroot -r -c ${session_id} -d / -u root -- sh -c " \ > + rm -f /var/log/dpkg.log > apt-get -o Debug::pkgProblemResolver=yes --no-install- > recommends -y \ > --allow-unauthenticated --allow-downgrades install \ > - ${local_install}" > + ${local_install} > + cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" This fails on any build with FSTYPES including (at least) "ext4": ``` [stdlog] 2025-03-05 19:12:45,460 avocado.app ERROR| ERROR: Logfile of failure stored in: /workspace/build/isar_ub_devel_fast/210/build/tmp/work/debian-bullseye- armhf/isar-image-base-qemuarm/1.0-r0/temp/log.do_image_ext4.3684960 ... [stdlog] 2025-03-05 19:12:54,914 avocado.test INFO | | cp: cannot stat '/var/log/dpkg.log': No such file or directory ``` Can be easy reproduced with kas menu, if "ext4" is added to additional image fstypes. > fi > > schroot -r -c ${session_id} "$@" > @@ -70,4 +75,5 @@ EOAPT > > remove_mounts > schroot_delete_configs > + sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log" > } > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass > index 56eca202..66b4d313 100644 > --- a/meta/classes/image.bbclass > +++ b/meta/classes/image.bbclass > @@ -72,7 +72,13 @@ ROOTFS_MANIFEST_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" > ROOTFS_DPKGSTATUS_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" > ROOTFS_PACKAGE_SUFFIX ?= "${PN}-${DISTRO}-${MACHINE}" > > -ROOTFS_POSTPROCESS_COMMAND:prepend = > "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', > 'cache_deb_src', '', d)} " > +CACHE_DEB_SRC = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache- > deb-src', '1', '0', d)}" > + > +python () { > + if bb.utils.to_boolean(d.getVar('CACHE_DEB_SRC')): > + bb.build.addtask('do_cache_deb_src', 'do_deploy', > 'do_image', d) > +} > + > > inherit rootfs > inherit sdk > diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass > index 205da640..b9d360e7 100644 > --- a/meta/classes/rootfs.bbclass > +++ b/meta/classes/rootfs.bbclass > @@ -272,7 +272,8 @@ python do_rootfs_install() { > } > addtask rootfs_install before do_rootfs_postprocess after do_unpack > > -cache_deb_src() { > +do_cache_deb_src[network] = "${TASK_USE_SUDO}" > +do_cache_deb_src() { > if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || > [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then > sudo mv "${ROOTFSDIR}"/etc/resolv.conf > "${ROOTFSDIR}"/etc/resolv.conf.isar -- Best regards, Uladzimir.
diff --git a/meta/classes/image-tools-extension.bbclass b/meta/classes/image-tools-extension.bbclass index e8ace8f5..156dfcb3 100644 --- a/meta/classes/image-tools-extension.bbclass +++ b/meta/classes/image-tools-extension.bbclass @@ -7,6 +7,9 @@ inherit sbuild +PP = "/home/builder/${PN}-${MACHINE}" +ext_root="${PP}/rootfs" + IMAGER_INSTALL ??= "" IMAGER_BUILD_DEPS ??= "" DEPENDS += "${IMAGER_BUILD_DEPS}" @@ -59,9 +62,11 @@ EOAPT deb_dl_dir_export ${schroot_dir} ${distro} schroot -r -c ${session_id} -d / -u root -- sh -c " \ + rm -f /var/log/dpkg.log apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y \ --allow-unauthenticated --allow-downgrades install \ - ${local_install}" + ${local_install} + cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" fi schroot -r -c ${session_id} "$@" @@ -70,4 +75,5 @@ EOAPT remove_mounts schroot_delete_configs + sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log" } diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 56eca202..66b4d313 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -72,7 +72,13 @@ ROOTFS_MANIFEST_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" ROOTFS_DPKGSTATUS_DEPLOY_DIR ?= "${DEPLOY_DIR_IMAGE}" ROOTFS_PACKAGE_SUFFIX ?= "${PN}-${DISTRO}-${MACHINE}" -ROOTFS_POSTPROCESS_COMMAND:prepend = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', 'cache_deb_src', '', d)} " +CACHE_DEB_SRC = "${@bb.utils.contains('BASE_REPO_FEATURES', 'cache-deb-src', '1', '0', d)}" + +python () { + if bb.utils.to_boolean(d.getVar('CACHE_DEB_SRC')): + bb.build.addtask('do_cache_deb_src', 'do_deploy', 'do_image', d) +} + inherit rootfs inherit sdk diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index 205da640..b9d360e7 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -272,7 +272,8 @@ python do_rootfs_install() { } addtask rootfs_install before do_rootfs_postprocess after do_unpack -cache_deb_src() { +do_cache_deb_src[network] = "${TASK_USE_SUDO}" +do_cache_deb_src() { if [ -e "${ROOTFSDIR}"/etc/resolv.conf ] || [ -h "${ROOTFSDIR}"/etc/resolv.conf ]; then sudo mv "${ROOTFSDIR}"/etc/resolv.conf "${ROOTFSDIR}"/etc/resolv.conf.isar