From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: adriaan.schmidt@siemens.com, Uladzimir Bely <ubely@ilbers.de>
Subject: [PATCH v10 15/19] sbuild: Fix debsrc_download for packages dependencies
Date: Thu, 5 May 2022 17:39:30 +0300 [thread overview]
Message-ID: <20220505143934.16096-16-amikan@ilbers.de> (raw)
In-Reply-To: <20220505143934.16096-1-amikan@ilbers.de>
From: Uladzimir Bely <ubely@ilbers.de>
With sbuild, build deps are internally installed in temporary sbuild
environment,so they don't appear in any external dpkg.log files.
With "cache-deb-src" base repo feature enabled, these such packages
are considered not to belong to current build, so their src packages
are not downloaded at image postprocess stage.
The patch fixes this by extracting dpkg.log files from the sbuild
environment to one common log file. This consolidated log is then
used at rootfs_postprocess to get source packages.
Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
meta/classes/deb-dl-dir.bbclass | 4 ++++
meta/classes/dpkg.bbclass | 6 +++++-
meta/classes/sbuild.bbclass | 9 +++++++++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/meta/classes/deb-dl-dir.bbclass b/meta/classes/deb-dl-dir.bbclass
index eace510..b74018f 100644
--- a/meta/classes/deb-dl-dir.bbclass
+++ b/meta/classes/deb-dl-dir.bbclass
@@ -14,6 +14,10 @@ is_not_part_of_current_build() {
# build using the below method.
local output="$( grep -hs "status installed ${package}:${arch} ${version}$" \
"${IMAGE_ROOTFS}"/var/log/dpkg.log \
+ "${SCHROOT_HOST_DIR}"/var/log/dpkg.log \
+ "${SCHROOT_TARGET_DIR}"/var/log/dpkg.log \
+ "${SCHROOT_HOST_DIR}"/tmp/dpkg_common.log \
+ "${SCHROOT_TARGET_DIR}"/tmp/dpkg_common.log \
"${BUILDCHROOT_HOST_DIR}"/var/log/dpkg.log \
"${BUILDCHROOT_TARGET_DIR}"/var/log/dpkg.log | head -1 )"
diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
index d8c4dd8..a0544d5 100644
--- a/meta/classes/dpkg.bbclass
+++ b/meta/classes/dpkg.bbclass
@@ -55,7 +55,8 @@ dpkg_runbuild() {
deb_dl_dir_import "${WORKDIR}/rootfs" "${distro}"
deb_dir="/var/cache/apt/archives"
- ext_deb_dir="${PP}/rootfs/${deb_dir}"
+ ext_root="${PP}/rootfs"
+ ext_deb_dir="${ext_root}${deb_dir}"
if [ ${USE_CCACHE} -eq 1 ]; then
schroot_configure_ccache
@@ -82,12 +83,15 @@ dpkg_runbuild() {
sbuild -A -n -c ${SBUILD_CHROOT} --extra-repository="${ISAR_APT_REPO}" \
--host=${PACKAGE_ARCH} --build=${SBUILD_HOST_ARCH} ${profiles} \
--no-run-lintian --no-run-piuparts --no-run-autopkgtest \
+ --chroot-setup-commands="rm -f /var/log/dpkg.log" \
--chroot-setup-commands="cp -n --no-preserve=owner ${ext_deb_dir}/*.deb -t ${deb_dir}/ || :" \
--finished-build-commands="rm -f ${deb_dir}/sbuild-build-depends-main-dummy_*.deb" \
--finished-build-commands="cp -n --no-preserve=owner ${deb_dir}/*.deb -t ${ext_deb_dir}/ || :" \
+ --finished-build-commands="cp /var/log/dpkg.log ${ext_root}/dpkg_partial.log" \
--debbuildopts="--source-option=-I" \
--build-dir=${WORKDIR} --dist="isar" ${WORKDIR}/${DSC}
+ sbuild_dpkg_log_export "${WORKDIR}/rootfs/dpkg_partial.log"
deb_dl_dir_export "${WORKDIR}/rootfs" "${distro}"
# Cleanup apt artifacts
diff --git a/meta/classes/sbuild.bbclass b/meta/classes/sbuild.bbclass
index 7d24c47..a78b15b 100644
--- a/meta/classes/sbuild.bbclass
+++ b/meta/classes/sbuild.bbclass
@@ -148,3 +148,12 @@ END
echo "command-prefix=/ccache/sbuild-setup" >> "${SCHROOT_CONF_FILE}"
EOSUDO
}
+
+sbuild_dpkg_log_export() {
+ export dpkg_partial_log="${1}"
+
+ ( flock 9
+ set -e
+ cat ${dpkg_partial_log} >> ${SCHROOT_DIR}/tmp/dpkg_common.log
+ ) 9>"${SCHROOT_DIR}/tmp/dpkg_common.log.lock"
+}
--
2.17.1
next prev parent reply other threads:[~2022-05-05 14:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 14:39 [PATCH v10 00/19] Sbuild/Schroot migration Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 01/19] dpkg-gbp: Use separate command to export tarball Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 02/19] dpkg-gbp: Use host tools for dsc preparation Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 03/19] sbuild: Add recipes for host and target rootfs to run sbuild Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 04/19] sbuild: Introduce a class for another build method Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 05/19] dpkg: Build packages with sbuild Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 06/19] sbuild: Support of DEB_BUILD_PROFILES Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 07/19] sbuild: Support of shell exports from dpkg_runbuild_prepend Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 08/19] dpkg: Remove builddeps install task Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 09/19] sbuild: Add ccache support Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 10/19] dpkg-base: Switch devshell to use schroot Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 11/19] dpkg-base: Switch apt_fetch and apt_unpack " Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 12/19] doc: Add sbuild-related documentation Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 13/19] sbuild: Use .dsc file instead of source directory Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 14/19] sbuild: Fixed proxy support Anton Mikanovich
2022-05-05 14:39 ` Anton Mikanovich [this message]
2022-05-05 14:39 ` [PATCH v10 16/19] fix: support build of packages with epoch version Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 17/19] always create apt-cache dirs in deb_dl_dir_import Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 18/19] avoid absolute SCHROOT_* paths to improve caching Anton Mikanovich
2022-05-05 14:39 ` [PATCH v10 19/19] dpkg-base: Cleanup on schroot fail Anton Mikanovich
2022-05-12 12:54 ` [PATCH v10 00/19] Sbuild/Schroot migration Anton Mikanovich
2022-05-12 15:55 ` Moessbauer, Felix
2022-05-18 16:20 ` Baurzhan Ismagulov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220505143934.16096-16-amikan@ilbers.de \
--to=amikan@ilbers.de \
--cc=adriaan.schmidt@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=ubely@ilbers.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox