From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6592507174472122368 Date: Fri, 31 Aug 2018 01:15:57 -0700 (PDT) From: chombourger@gmail.com To: isar-users Message-Id: <1bb4283f-ac5c-444c-8890-f36231f0e66c@googlegroups.com> In-Reply-To: References: <20180822154145.07d4a2ca@md1pvb1c.ad001.siemens.net> <1535264488-128-1-git-send-email-Cedric_Hombourger@mentor.com> Subject: Re: [PATCH v3 1/3] dpkg: move installation of dependencies into dpkg_prepare MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_567_430423787.1535703357920" X-Google-Token: EL3yo9wF0b-wEUP7XMs0 X-Google-IP: 192.94.31.2 X-TUID: QzNem1VOsM6k ------=_Part_567_430423787.1535703357920 Content-Type: multipart/alternative; boundary="----=_Part_568_218008422.1535703357921" ------=_Part_568_218008422.1535703357921 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi Jan, if your recipe is editing files in debian/, you would then want them to be done before we install build dependencies this can be done by using a "do_prepare_prepend" to make the tweaks you need maybe we could add a do_amend_debian_meta (defaulting to a no-op) to make it easy for people to tweak meta-data and not having to know about do_prepare? Cedric On Friday, August 31, 2018 at 10:10:45 AM UTC+2, Jan Kiszka wrote: > > On 2018-08-26 08:21, Cedric Hombourger wrote: > > In preparation for a rework of locking mechanisms around apt > > operations (installation of packages or inclusion of new > > packages into the isar-apt database), move the code for > > installing build dependencies out of dpkg_runbuild and into > > a new function: dpkg_prepare. > > > > Signed-off-by: Cedric Hombourger > > > --- > > doc/technical_overview.md | 29 ++++++++++---- > > meta/classes/dpkg-base.bbclass | 30 +++++++++++--- > > meta/classes/dpkg-raw.bbclass | 15 ++++--- > > meta/classes/dpkg.bbclass | 8 +++- > > meta/recipes-devtools/buildchroot/buildchroot.inc | 9 ++++- > > meta/recipes-devtools/buildchroot/files/build.sh | 48 > +---------------------- > > meta/recipes-devtools/buildchroot/files/common.sh | 28 +++++++++++++ > > meta/recipes-devtools/buildchroot/files/deps.sh | 32 +++++++++++++++ > > meta/recipes-kernel/linux-module/module.inc | 2 +- > > 9 files changed, 128 insertions(+), 73 deletions(-) > > create mode 100644 meta/recipes-devtools/buildchroot/files/common.sh > > create mode 100644 meta/recipes-devtools/buildchroot/files/deps.sh > > > > diff --git a/doc/technical_overview.md b/doc/technical_overview.md > > index ddd2c79..4f6d954 100644 > > --- a/doc/technical_overview.md > > +++ b/doc/technical_overview.md > > @@ -217,24 +217,37 @@ Both consist of the following steps: > > 3. Task `do_install` _only_ for `dpkg-raw`: copy all you want in your > > debian package to `${D}`, install hooks in `${D}/DEBIAN` > > > > -4. Task `do_build`: mount folder with unpacked files to buildchroot, > execute > > - the actual build function `dpkg_runbuild`, and finally umount again > > +4. Task `do_prepare': perform any preparation steps to the > unpacked/patched > > + sources before the build. This task calls the dpkg_prepare shell > function > > + with the buildchroot mounts in place (`dpkg_do_mounts') > > > > - 4.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs `build.sh` > in the > > - buildchroot. That performs the following: > > + 4.1. the `dpkg_prepare` function of `dpkg.bbclass` runs > `/isar/deps.sh` in > > + the buildchroot. That performs the following: > > > > 1. Go to `/home/build/${PN}` > > > > 2. Get list of dependencies from debian/control and install > them > > > > - 3. Run dpkg-buildpackage > > + 4.2. the `dpkg_prepare` function of `dpkg-raw.bbclass` translate the > > + recipe meta-data into a debian/control file suitable for > packaging > > + with dpkg-deb > > + > > +5. Task `do_build`: mount folder (`dpkg_do_mounts') with unpacked files > to buildchroot, > > + execute the actual build function `dpkg_runbuild`, and finally > umount again > > + (`dpkg_undo_mounts') > > + > > + 5.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs `build.sh` > in the > > + buildchroot. That performs the following: > > + > > + 1. Go to `/home/build/${PN}` > > + > > + 2. Run dpkg-buildpackage > > > > - 4.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` basically > runs > > + 5.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` basically > runs > > `dpkg-deb` to construct a Debian package from a folder of > files, > > without compiling anything > > > > - > > -5. Task `do_deploy_deb`: install successfully built packages > > +6. Task `do_deploy_deb`: install successfully built packages > > `${WORKDIR}/*.deb` to deploy directory `${DEPLOY_DIR_DEB}` > > > > ## 3.6 Populate Target Filesystem > > diff --git a/meta/classes/dpkg-base.bbclass > b/meta/classes/dpkg-base.bbclass > > index a41df2c..5826357 100644 > > --- a/meta/classes/dpkg-base.bbclass > > +++ b/meta/classes/dpkg-base.bbclass > > @@ -13,7 +13,7 @@ python __anonymous() { > > dep = "buildchroot-host:do_build" > > rootfs = d.getVar('BUILDCHROOT_HOST_DIR', True) > > > > - d.setVarFlag('do_build', 'depends', dep) > > + d.setVarFlag('do_prepare', 'depends', dep) > > d.setVar('BUILDCHROOT_DIR', rootfs) > > } > > > > @@ -32,7 +32,7 @@ addtask patch after do_adjust_git before do_build > > > > # Add dependency between Isar recipes > > DEPENDS ?= "" > > -do_build[deptask] = "do_deploy_deb" > > +do_prepare[deptask] = "do_deploy_deb" > > > > def get_package_srcdir(d): > > s = d.getVar("S", True) > > @@ -50,7 +50,10 @@ PPS ?= "${@get_package_srcdir(d)}" > > BUILDROOT = "${BUILDCHROOT_DIR}/${PP}" > > do_build[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > > > -# default to "emtpy" implementation > > +# default to "emtpy" implementation for dpkg_prepare() and > dpkg_runbuild() > > +dpkg_prepare() { > > + true > > +} > > dpkg_runbuild() { > > die "This should never be called, overwrite it in your derived > class" > > } > > @@ -58,7 +61,7 @@ dpkg_runbuild() { > > MOUNT_LOCKFILE = "${BUILDCHROOT_DIR}/mount.lock" > > > > # Wrap the function dpkg_runbuild with the bind mount for buildroot > > -do_build() { > > +dpkg_do_mounts() { > > mkdir -p ${BUILDROOT} > > sudo mount --bind ${WORKDIR} ${BUILDROOT} > > > > @@ -70,13 +73,28 @@ do_build() { > > mount -t devtmpfs -o mode=0755,nosuid devtmpfs > ${BUILDCHROOT_DIR}/dev > > mount -t proc none ${BUILDCHROOT_DIR}/proc > > fi' > > +} > > > > - dpkg_runbuild > > - > > +dpkg_undo_mounts() { > > sudo umount ${BUILDROOT} 2>/dev/null || true > > sudo rmdir ${BUILDROOT} 2>/dev/null || true > > } > > > > +do_prepare() { > > + dpkg_do_mounts > > + dpkg_prepare > > + dpkg_undo_mounts > > +} > > + > > +addtask prepare after do_patch before do_build > > +do_prepare[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > + > > +do_build() { > > + dpkg_do_mounts > > + dpkg_runbuild > > + dpkg_undo_mounts > > +} > > + > > CLEANFUNCS += "repo_clean" > > > > repo_clean() { > > diff --git a/meta/classes/dpkg-raw.bbclass > b/meta/classes/dpkg-raw.bbclass > > index 28233ac..c5f1c88 100644 > > --- a/meta/classes/dpkg-raw.bbclass > > +++ b/meta/classes/dpkg-raw.bbclass > > @@ -14,9 +14,9 @@ do_install() { > > } > > > > do_install[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > -addtask install after do_unpack before do_deb_package_prepare > > +addtask install after do_unpack before do_prepare > > > > -do_deb_package_prepare() { > > +deb_package_prepare() { > > sudo rm -rf ${D}/DEBIAN > > mkdir -p ${D}/DEBIAN > > cat<<-__EOF__ > ${D}/DEBIAN/control > > @@ -42,17 +42,16 @@ do_deb_package_prepare() { > > done > > } > > > > -do_deb_package_prepare[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > -addtask deb_package_prepare after do_install before > do_deb_package_conffiles > > - > > -do_deb_package_conffiles() { > > +deb_package_conffiles() { > > CONFFILES=${D}/DEBIAN/conffiles > > find ${D} -type f -path '${D}/etc/*' | sed -e 's|^${D}|/|' >> > $CONFFILES > > test -s $CONFFILES || rm $CONFFILES > > } > > > > -do_deb_package_conffiles[stamp-extra-info] = "${DISTRO}-${DISTRO_ARCH}" > > -addtask deb_package_conffiles after do_deb_package_prepare before > do_build > > +dpkg_prepare() { > > + deb_package_prepare > > + deb_package_conffiles > > +} > > > > dpkg_runbuild() { > > sudo chown -R root:root ${D}/DEBIAN/ > > diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass > > index ab70645..e8bd6ba 100644 > > --- a/meta/classes/dpkg.bbclass > > +++ b/meta/classes/dpkg.bbclass > > @@ -3,8 +3,14 @@ > > > > inherit dpkg-base > > > > +# Install build dependencies for package > > +dpkg_prepare() { > > + E="${@ bb.utils.export_proxies(d)}" > > + sudo -E chroot ${BUILDCHROOT_DIR} /isar/deps.sh ${PP}/${PPS} > ${DISTRO_ARCH} > > +} > > + > > # Build package from sources using build script > > dpkg_runbuild() { > > E="${@ bb.utils.export_proxies(d)}" > > - sudo -E chroot ${BUILDCHROOT_DIR} /build.sh ${PP}/${PPS} > ${DISTRO_ARCH} > > + sudo -E chroot ${BUILDCHROOT_DIR} /isar/build.sh ${PP}/${PPS} > ${DISTRO_ARCH} > > } > > diff --git a/meta/recipes-devtools/buildchroot/buildchroot.inc > b/meta/recipes-devtools/buildchroot/buildchroot.inc > > index 43e3cd6..7dd909e 100644 > > --- a/meta/recipes-devtools/buildchroot/buildchroot.inc > > +++ b/meta/recipes-devtools/buildchroot/buildchroot.inc > > @@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = > "file://${LAYERDIR_isar}/licenses/COPYING.GPLv2;md5=751419260 > > > > FILESPATH_prepend := "${THISDIR}/files:" > > SRC_URI = "file://configscript.sh \ > > - file://build.sh" > > + file://build.sh \ > > + file://common.sh \ > > + file://deps.sh" > > PV = "1.0" > > > > inherit isar-bootstrap-helper > > @@ -27,7 +29,10 @@ do_build() { > > > > # Install package builder script > > sudo chmod -R a+rw "${BUILDCHROOT_DIR}/home/builder" > > - sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHROOT_DIR} > > + sudo install -m 755 -d ${BUILDCHROOT_DIR}/isar > > + sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHROOT_DIR}/isar/ > > + sudo install -m 755 ${WORKDIR}/common.sh ${BUILDCHROOT_DIR}/isar/ > > + sudo install -m 755 ${WORKDIR}/deps.sh ${BUILDCHROOT_DIR}/isar/ > > > > # Configure root filesystem > > sudo install -m 755 ${WORKDIR}/configscript.sh ${BUILDCHROOT_DIR} > > diff --git a/meta/recipes-devtools/buildchroot/files/build.sh > b/meta/recipes-devtools/buildchroot/files/build.sh > > index e2dabab..3c80bd7 100644 > > --- a/meta/recipes-devtools/buildchroot/files/build.sh > > +++ b/meta/recipes-devtools/buildchroot/files/build.sh > > @@ -4,53 +4,7 @@ > > # Copyright (C) 2015-2017 ilbers GmbH > > # Copyright (c) 2018 Siemens AG > > > > -set -e > > - > > -# Create human-readable names > > -target_arch=$2 > > - > > -# Notes: > > -# mk-build-deps for jessie and jtretch has different parameter name > to specify > > -# host architecture. > > -debian_version=$(cut -c1 /etc/debian_version) > > -if [ $(($debian_version)) -ge 9 ]; then > > - set_arch="--host-arch $target_arch" > > -else > > - set_arch="-a $target_arch" > > -fi > > - > > -# Go to build directory > > -cd $1 > > - > > -# To avoid Perl locale warnings: > > -export LC_ALL=C > > -export LANG=C > > -export LANGUAGE=C > > - > > -# Install command to be used by mk-build-deps > > -# Notes: > > -# 1) everything before the -y switch is unchanged from the defaults > > -# 2) we add -y to go non-interactive > > -install_cmd="apt-get -o Debug::pkgProblemResolver=yes > --no-install-recommends -y" > > - > > -( > > - # Lock-protected because apt and dpkg do not wait in case of > contention > > - flock 42 || exit 1 > > - > > - # Make sure that we have latest isar-apt content. > > - # Options meaning: > > - # Dir::Etc::sourcelist - specifies which source to be used > > - # Dir::Etc::sourceparts - disables looking for the other sources > > - # APT::Get::List-Cleanup - do not erase obsolete packages list > for > > - # upstream in '/var/lib/apt/lists' > > - apt-get update \ > > - -o Dir::Etc::sourcelist="sources.list.d/isar-apt.list" \ > > - -o Dir::Etc::sourceparts="-" \ > > - -o APT::Get::List-Cleanup="0" > > - > > - # Install all build deps > > - mk-build-deps $set_arch -t "${install_cmd}" -i -r debian/control > > -) 42>/dpkg.lock > > +source /isar/common.sh > > > > # If autotools files have been created, update their timestamp to > > # prevent them from being regenerated > > diff --git a/meta/recipes-devtools/buildchroot/files/common.sh > b/meta/recipes-devtools/buildchroot/files/common.sh > > new file mode 100644 > > index 0000000..b7551eb > > --- /dev/null > > +++ b/meta/recipes-devtools/buildchroot/files/common.sh > > @@ -0,0 +1,28 @@ > > +#!/bin/bash > > +# > > +# This software is a part of ISAR. > > +# Copyright (C) 2015-2017 ilbers GmbH > > +# Copyright (c) 2018 Siemens AG > > + > > +set -e > > + > > +# Create human-readable names > > +target_arch=$2 > > + > > +# Notes: > > +# mk-build-deps for jessie and jtretch has different parameter name > to specify > > +# host architecture. > > +debian_version=$(cut -c1 /etc/debian_version) > > +if [ $(($debian_version)) -ge 9 ]; then > > + set_arch="--host-arch $target_arch" > > +else > > + set_arch="-a $target_arch" > > +fi > > + > > +# Go to build directory > > +cd $1 > > + > > +# To avoid Perl locale warnings: > > +export LC_ALL=C > > +export LANG=C > > +export LANGUAGE=C > > diff --git a/meta/recipes-devtools/buildchroot/files/deps.sh > b/meta/recipes-devtools/buildchroot/files/deps.sh > > new file mode 100644 > > index 0000000..854a4d5 > > --- /dev/null > > +++ b/meta/recipes-devtools/buildchroot/files/deps.sh > > @@ -0,0 +1,32 @@ > > +#!/bin/bash > > +# > > +# This software is a part of ISAR. > > +# Copyright (C) 2015-2017 ilbers GmbH > > +# Copyright (c) 2018 Siemens AG > > + > > +source /isar/common.sh > > + > > +# Install command to be used by mk-build-deps > > +# Notes: > > +# 1) everything before the -y switch is unchanged from the defaults > > +# 2) we add -y to go non-interactive > > +install_cmd="apt-get -o Debug::pkgProblemResolver=yes > --no-install-recommends -y" > > + > > +( > > + # Lock-protected because apt and dpkg do not wait in case of > contention > > + flock 42 || exit 1 > > + > > + # Make sure that we have latest isar-apt content. > > + # Options meaning: > > + # Dir::Etc::sourcelist - specifies which source to be used > > + # Dir::Etc::sourceparts - disables looking for the other sources > > + # APT::Get::List-Cleanup - do not erase obsolete packages list > for > > + # upstream in '/var/lib/apt/lists' > > + apt-get update \ > > + -o Dir::Etc::sourcelist="sources.list.d/isar-apt.list" \ > > + -o Dir::Etc::sourceparts="-" \ > > + -o APT::Get::List-Cleanup="0" > > + > > + # Install all build deps > > + mk-build-deps $set_arch -t "${install_cmd}" -i -r debian/control > > +) 42>/dpkg.lock > > diff --git a/meta/recipes-kernel/linux-module/module.inc > b/meta/recipes-kernel/linux-module/module.inc > > index 3075f44..3a3cab1 100644 > > --- a/meta/recipes-kernel/linux-module/module.inc > > +++ b/meta/recipes-kernel/linux-module/module.inc > > @@ -17,7 +17,7 @@ AUTOLOAD ?= "0" > > > > inherit dpkg > > > > -dpkg_runbuild_prepend() { > > +do_prepare_prepend() { > > cp -r ${WORKDIR}/debian ${S}/ > > sed -i -e 's/@PN@/${PN}/g' -e 's/@PV@/${PV}/g' \ > > -e 's/@KERNEL_NAME@/${KERNEL_NAME}/g' \ > > > > This patches causes regression with jailhouse-images which I do not > understand yet: > > 2018-08-31 07:53:54 - ERROR - ERROR: > mc:espressobin-jailhouse:non-root-initramfs-2018.05.1-r0 do_prepare: > Function failed: do_prepare (log file is located at > /out/build/tmp/work/debian-stretch-arm64/non-root-initramfs-2018.05.1-r0/temp/log.do_prepare.28928) > > 2018-08-31 07:53:54 - ERROR - ERROR: Logfile of failure stored in: > /out/build/tmp/work/debian-stretch-arm64/non-root-initramfs-2018.05.1-r0/temp/log.do_prepare.28928 > > 2018-08-31 07:53:54 - INFO - Log data follows: > 2018-08-31 07:53:54 - INFO - | DEBUG: Executing shell function > do_prepare > 2018-08-31 07:53:54 - INFO - | Get:1 file:/isar-apt isar InRelease > 2018-08-31 07:53:54 - INFO - | Ign:1 file:/isar-apt isar InRelease > 2018-08-31 07:53:54 - INFO - | Get:2 file:/isar-apt isar Release [3554 > B] > 2018-08-31 07:53:54 - INFO - | Get:2 file:/isar-apt isar Release [3554 > B] > 2018-08-31 07:53:54 - INFO - | Get:3 file:/isar-apt isar Release.gpg > 2018-08-31 07:53:54 - INFO - | Ign:3 file:/isar-apt isar Release.gpg > 2018-08-31 07:53:54 - INFO - | Reading package lists... > 2018-08-31 07:53:54 - INFO - | E: You must put some 'source' URIs in > your sources.list > 2018-08-31 07:53:54 - INFO - | mk-build-deps: Unable to find package > name in `apt-cache showsrc debian/control' > 2018-08-31 07:53:54 - INFO - | WARNING: exit code 29 from a shell > command. > 2018-08-31 07:53:54 - INFO - | ERROR: Function failed: do_prepare (log > file is located at > /out/build/tmp/work/debian-stretch-arm64/non-root-initramfs-2018.05.1-r0/temp/log.do_prepare.28928) > > 2018-08-31 07:53:54 - INFO - NOTE: recipe > non-root-initramfs-2018.05.1-r0: task do_prepare: Failed > 2018-08-31 07:53:54 - ERROR - ERROR: Task > (multiconfig:espressobin-jailhouse:/jailhouse-images/recipes-core/non-root-initramfs/non-root-initramfs_2018.05.1.bb:do_prepare) > failed with exit code '1' > > > I also wonder why this didn't trigger with the isar core tests. Any idea? > > Jan > > -- > Siemens AG, Corporate Technology, CT RDA IOT SES-DE > Corporate Competence Center Embedded Linux > ------=_Part_568_218008422.1535703357921 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi Jan,

if your recipe is editing files= in debian/, you would then want them to be done before we install build de= pendencies
this can be done by using a "do_prepare_prepend&q= uot; to make the tweaks you need

maybe we could ad= d a do_amend_debian_meta (defaulting to a no-op) to make it easy for people= to tweak meta-data and not having to know about do_prepare?

=
Cedric

On Friday, August 31, 2018 at 10:10:45 AM UTC+2, J= an Kiszka wrote:
On 2018-08-26 = 08:21, Cedric Hombourger wrote:
> In preparation for a rework of locking mechanisms around apt
> operations (installation of packages or inclusion of new
> packages into the isar-apt database), move the code for
> installing build dependencies out of dpkg_runbuild and into
> a new function: dpkg_prepare.
>=20
> Signed-off-by: Cedric Hombourger <Cedric_H...@mentor.com>
> ---
> =C2=A0 doc/technical_overview.md =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 29 ++++++++++----
> =C2=A0 meta/classes/dpkg-base.bbclass =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 30 +++++++++++---
> =C2=A0 meta/classes/dpkg-raw.bbclass =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | 15 ++++---
> =C2=A0 meta/classes/dpkg.bbclass =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =C2=A08 +++-
> =C2=A0 meta/recipes-devtools/buildchroot/buildchroot.inc | = =C2=A09 ++++-
> =C2=A0 meta/recipes-devtools/buildchroot/files/build.sh =C2= =A0| 48 +----------------------
> =C2=A0 meta/recipes-devtools/buildchroot/files/common.sh | 28= +++++++++++++
> =C2=A0 meta/recipes-devtools/buildchroot/files/deps.sh =C2=A0= | 32 +++++++++++++++
> =C2=A0 meta/recipes-kernel/linux-module/module.inc =C2=A0 =C2= =A0 =C2=A0 | =C2=A02 +-
> =C2=A0 9 files changed, 128 insertions(+), 73 deletions(-)
> =C2=A0 create mode 100644 meta/recipes-devtools/buildchroot/f= iles/common.sh
> =C2=A0 create mode 100644 meta/recipes-devtools/buildchroot/f= iles/deps.sh
>=20
> diff --git a/doc/technical_overview.md b/doc/technical_overview.md
> index ddd2c79..4f6d954 100644
> --- a/doc/technical_overview.md
> +++ b/doc/technical_overview.md
> @@ -217,24 +217,37 @@ Both consist of the following steps:
> =C2=A0 3. Task `do_install` _only_ for `dpkg-raw`: copy all you wa= nt in your
> =C2=A0 =C2=A0 =C2=A0debian package to `${D}`, install hooks in `${= D}/DEBIAN`
> =C2=A0=20
> -4. Task `do_build`: mount folder with unpacked files to buildchro= ot, execute
> - =C2=A0 the actual build function `dpkg_runbuild`, and finally um= ount again
> +4. Task `do_prepare': perform any preparation steps to the un= packed/patched
> + =C2=A0 sources before the build. This task calls the dpkg_prepar= e shell function
> + =C2=A0 with the buildchroot mounts in place (`dpkg_do_mounts'= ;)
> =C2=A0=20
> - =C2=A0 4.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs = `build.sh` in the
> - =C2=A0 =C2=A0 =C2=A0 =C2=A0buildchroot. That performs the follow= ing:
> + =C2=A0 4.1. the `dpkg_prepare` function of `dpkg.bbclass` runs `= /isar/deps.sh` in
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0the buildchroot. That performs the fo= llowing:
> =C2=A0=20
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1. Go to `/home/build/${PN}`
> =C2=A0=20
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2. Get list of dependencies fro= m debian/control and install them
> =C2=A0=20
> - =C2=A0 =C2=A0 =C2=A0 =C2=A03. Run dpkg-buildpackage
> + =C2=A0 4.2. the `dpkg_prepare` function of `dpkg-raw.bbclass` tr= anslate the
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0recipe meta-data into a debian/contro= l file suitable for packaging
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0with dpkg-deb
> +
> +5. Task `do_build`: mount folder (`dpkg_do_mounts') with unpa= cked files to buildchroot,
> + =C2=A0 execute the actual build function `dpkg_runbuild`, and fi= nally umount again
> + =C2=A0 (`dpkg_undo_mounts')
> +
> + =C2=A0 5.1. the `dpkg_runbuild` function of `dpkg.bbclass` runs = `build.sh` in the
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0buildchroot. That performs the follow= ing:
> +
> + =C2=A0 =C2=A0 =C2=A0 =C2=A01. Go to `/home/build/${PN}`
> +
> + =C2=A0 =C2=A0 =C2=A0 =C2=A02. Run dpkg-buildpackage
> =C2=A0=20
> - =C2=A0 4.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` b= asically runs
> + =C2=A0 5.2. the `dpkg_runbuild` function of `dpkg-raw.bbclass` b= asically runs
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 `dpkg-deb` to construct a Debia= n package from a folder of files,
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0without com= piling anything
> =C2=A0=20
> -
> -5. Task `do_deploy_deb`: install successfully built packages
> +6. Task `do_deploy_deb`: install successfully built packages
> =C2=A0 =C2=A0 =C2=A0`${WORKDIR}/*.deb` to deploy directory `${DEPL= OY_DIR_DEB}`
> =C2=A0=20
> =C2=A0 ## 3.6 Populate Target Filesystem
> diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dp= kg-base.bbclass
> index a41df2c..5826357 100644
> --- a/meta/classes/dpkg-base.bbclass
> +++ b/meta/classes/dpkg-base.bbclass
> @@ -13,7 +13,7 @@ python __anonymous() {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 dep =3D "buildchroot-host:= do_build"
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 rootfs =3D d.getVar('BUILDC= HROOT_HOST_DIR', True)
> =C2=A0=20
> - =C2=A0 =C2=A0d.setVarFlag('do_build', 'depends',= dep)
> + =C2=A0 =C2=A0d.setVarFlag('do_prepare', 'depends'= ;, dep)
> =C2=A0 =C2=A0 =C2=A0 d.setVar('BUILDCHROOT_DIR', rootfs)
> =C2=A0 }
> =C2=A0=20
> @@ -32,7 +32,7 @@ addtask patch after do_adjust_git before do_buil= d
> =C2=A0=20
> =C2=A0 # Add dependency between Isar recipes
> =C2=A0 DEPENDS ?=3D ""
> -do_build[deptask] =3D "do_deploy_deb"
> +do_prepare[deptask] =3D "do_deploy_deb"
> =C2=A0=20
> =C2=A0 def get_package_srcdir(d):
> =C2=A0 =C2=A0 =C2=A0 s =3D d.getVar("S", True)
> @@ -50,7 +50,10 @@ PPS ?=3D "${@get_package_srcdir(d)}"
> =C2=A0 BUILDROOT =3D "${BUILDCHROOT_DIR}/${PP}"
> =C2=A0 do_build[stamp-extra-info] =3D "${DISTRO}-${DISTRO_ARC= H}"
> =C2=A0=20
> -# default to "emtpy" implementation
> +# default to "emtpy" implementation for dpkg_prepare() = and dpkg_runbuild()
> +dpkg_prepare() {
> + =C2=A0 =C2=A0true
> +}
> =C2=A0 dpkg_runbuild() {
> =C2=A0 =C2=A0 =C2=A0 die "This should never be called, overwr= ite it in your derived class"
> =C2=A0 }
> @@ -58,7 +61,7 @@ dpkg_runbuild() {
> =C2=A0 MOUNT_LOCKFILE =3D "${BUILDCHROOT_DIR}/mount.lock= "
> =C2=A0=20
> =C2=A0 # Wrap the function dpkg_runbuild with the bind mount for b= uildroot
> -do_build() {
> +dpkg_do_mounts() {
> =C2=A0 =C2=A0 =C2=A0 mkdir -p ${BUILDROOT}
> =C2=A0 =C2=A0 =C2=A0 sudo mount --bind ${WORKDIR} ${BUILDROOT}
> =C2=A0=20
> @@ -70,13 +73,28 @@ do_build() {
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 mount -t devtmpfs= -o mode=3D0755,nosuid devtmpfs ${BUILDCHROOT_DIR}/dev
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 mount -t proc non= e ${BUILDCHROOT_DIR}/proc
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fi'
> +}
> =C2=A0=20
> - =C2=A0 =C2=A0dpkg_runbuild
> -
> +dpkg_undo_mounts() {
> =C2=A0 =C2=A0 =C2=A0 sudo umount ${BUILDROOT} 2>/dev/null || tr= ue
> =C2=A0 =C2=A0 =C2=A0 sudo rmdir ${BUILDROOT} 2>/dev/null || tru= e
> =C2=A0 }
> =C2=A0=20
> +do_prepare() {
> + =C2=A0 =C2=A0dpkg_do_mounts
> + =C2=A0 =C2=A0dpkg_prepare
> + =C2=A0 =C2=A0dpkg_undo_mounts
> +}
> +
> +addtask prepare after do_patch before do_build
> +do_prepare[stamp-extra-info] =3D "${DISTRO}-${DISTRO_ARCH}&q= uot;
> +
> +do_build() {
> + =C2=A0 =C2=A0dpkg_do_mounts
> + =C2=A0 =C2=A0dpkg_runbuild
> + =C2=A0 =C2=A0dpkg_undo_mounts
> +}
> +
> =C2=A0 CLEANFUNCS +=3D "repo_clean"
> =C2=A0=20
> =C2=A0 repo_clean() {
> diff --git a/meta/classes/dpkg-raw.bbclass b/meta/classes/dpk= g-raw.bbclass
> index 28233ac..c5f1c88 100644
> --- a/meta/classes/dpkg-raw.bbclass
> +++ b/meta/classes/dpkg-raw.bbclass
> @@ -14,9 +14,9 @@ do_install() {
> =C2=A0 }
> =C2=A0=20
> =C2=A0 do_install[stamp-extra-info] =3D "${DISTRO}-${DISTRO_A= RCH}"
> -addtask install after do_unpack before do_deb_package_prepare
> +addtask install after do_unpack before do_prepare
> =C2=A0=20
> -do_deb_package_prepare() {
> +deb_package_prepare() {
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0sudo rm -rf= ${D}/DEBIAN
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0mkdir -p ${= D}/DEBIAN
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cat<<= -__EOF__ > ${D}/DEBIAN/control
> @@ -42,17 +42,16 @@ do_deb_package_prepare() {
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0done
> =C2=A0 }
> =C2=A0=20
> -do_deb_package_prepare[stamp-extra-info] =3D "${DISTRO}= -${DISTRO_ARCH}"
> -addtask deb_package_prepare after do_install before do_deb_packag= e_conffiles
> -
> -do_deb_package_conffiles() {
> +deb_package_conffiles() {
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0CONFFILES= =3D${D}/DEBIAN/conffiles
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0find ${D} -= type f -path '${D}/etc/*' | sed -e 's|^${D}|/|' >> $C= ONFFILES
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0test -s $CO= NFFILES || rm $CONFFILES
> =C2=A0 }
> =C2=A0=20
> -do_deb_package_conffiles[stamp-extra-info] =3D "${DISTR= O}-${DISTRO_ARCH}"
> -addtask deb_package_conffiles after do_deb_package_prepare before= do_build
> +dpkg_prepare() {
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0deb_package_prepa= re
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0deb_package_conff= iles
> +}
> =C2=A0=20
> =C2=A0 dpkg_runbuild() {
> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0sudo chown = -R root:root ${D}/DEBIAN/
> diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass
> index ab70645..e8bd6ba 100644
> --- a/meta/classes/dpkg.bbclass
> +++ b/meta/classes/dpkg.bbclass
> @@ -3,8 +3,14 @@
> =C2=A0=20
> =C2=A0 inherit dpkg-base
> =C2=A0=20
> +# Install build dependencies for package
> +dpkg_prepare() {
> + =C2=A0 =C2=A0E=3D"${@ bb.utils.export_proxies(d)}"
> + =C2=A0 =C2=A0sudo -E chroot ${BUILDCHROOT_DIR} /isar/deps.sh ${P= P}/${PPS} ${DISTRO_ARCH}
> +}
> +
> =C2=A0 # Build package from sources using build script
> =C2=A0 dpkg_runbuild() {
> =C2=A0 =C2=A0 =C2=A0 E=3D"${@ bb.utils.export_proxies(d)}&quo= t;
> - =C2=A0 =C2=A0sudo -E chroot ${BUILDCHROOT_DIR} /build.sh ${PP}/$= {PPS} ${DISTRO_ARCH}
> + =C2=A0 =C2=A0sudo -E chroot ${BUILDCHROOT_DIR} /isar/build.sh ${= PP}/${PPS} ${DISTRO_ARCH}
> =C2=A0 }
> diff --git a/meta/recipes-devtools/buildchroot/buildchroot.in= c b/meta/recipes-devtools/buildchroot/buildchroot.inc
> index 43e3cd6..7dd909e 100644
> --- a/meta/recipes-devtools/buildchroot/buildchroot.inc
> +++ b/meta/recipes-devtools/buildchroot/buildchroot.inc
> @@ -8,7 +8,9 @@ LIC_FILES_CHKSUM =3D "file://${LAYERDIR_isar}= /licenses/COPYING.GPLv2;md5=3D751419260
> =C2=A0=20
> =C2=A0 FILESPATH_prepend :=3D "${THISDIR}/files:"
> =C2=A0 SRC_URI =3D "file://configscript.sh \
> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file://build.sh"
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file://build.sh \
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file://common.sh \
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 file://deps.sh"
> =C2=A0 PV =3D "1.0"
> =C2=A0=20
> =C2=A0 inherit isar-bootstrap-helper
> @@ -27,7 +29,10 @@ do_build() {
> =C2=A0=20
> =C2=A0 =C2=A0 =C2=A0 # Install package builder script
> =C2=A0 =C2=A0 =C2=A0 sudo chmod -R a+rw "${BUILDCHROOT_DIR}/h= ome/builder"
> - =C2=A0 =C2=A0sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHRO= OT_DIR}
> + =C2=A0 =C2=A0sudo install -m 755 -d ${BUILDCHROOT_DIR}/isar
> + =C2=A0 =C2=A0sudo install -m 755 ${WORKDIR}/build.sh ${BUILDCHRO= OT_DIR}/isar/
> + =C2=A0 =C2=A0sudo install -m 755 ${WORKDIR}/common.sh ${BUILDCHR= OOT_DIR}/isar/
> + =C2=A0 =C2=A0sudo install -m 755 ${WORKDIR}/deps.sh ${BUILDCHROO= T_DIR}/isar/
> =C2=A0=20
> =C2=A0 =C2=A0 =C2=A0 # Configure root filesystem
> =C2=A0 =C2=A0 =C2=A0 sudo install -m 755 ${WORKDIR}/configscript.s= h ${BUILDCHROOT_DIR}
> diff --git a/meta/recipes-devtools/buildchroot/files/build.sh= b/meta/recipes-devtools/buildchroot/files/build.sh
> index e2dabab..3c80bd7 100644
> --- a/meta/recipes-devtools/buildchroot/files/build.sh
> +++ b/meta/recipes-devtools/buildchroot/files/build.sh
> @@ -4,53 +4,7 @@
> =C2=A0 # Copyright (C) 2015-2017 ilbers GmbH
> =C2=A0 # Copyright (c) 2018 Siemens AG
> =C2=A0=20
> -set -e
> -
> -# Create human-readable names
> -target_arch=3D$2
> -
> -# Notes:
> -# =C2=A0 mk-build-deps for jessie and jtretch has different param= eter name to specify
> -# =C2=A0 host architecture.
> -debian_version=3D$(cut -c1 /etc/debian_version)
> -if [ $(($debian_version)) -ge 9 ]; then
> - =C2=A0 =C2=A0set_arch=3D"--host-arch $target_arch"
> -else
> - =C2=A0 =C2=A0set_arch=3D"-a $target_arch"
> -fi
> -
> -# Go to build directory
> -cd $1
> -
> -# To avoid Perl locale warnings:
> -export LC_ALL=3DC
> -export LANG=3DC
> -export LANGUAGE=3DC
> -
> -# Install command to be used by mk-build-deps
> -# Notes:
> -# =C2=A0 1) everything before the -y switch is unchanged from the= defaults
> -# =C2=A0 2) we add -y to go non-interactive
> -install_cmd=3D"apt-get -o Debug::pkgProblemResolver=3Dyes --= no-install-recommends -y"
> -
> -(
> - =C2=A0 =C2=A0# Lock-protected because apt and dpkg do not wait i= n case of contention
> - =C2=A0 =C2=A0flock 42 || exit 1
> -
> - =C2=A0 =C2=A0# Make sure that we have latest isar-apt content.
> - =C2=A0 =C2=A0# Options meaning:
> - =C2=A0 =C2=A0# =C2=A0 Dir::Etc::sourcelist - specifies which sou= rce to be used
> - =C2=A0 =C2=A0# =C2=A0 Dir::Etc::sourceparts - disables looking f= or the other sources
> - =C2=A0 =C2=A0# =C2=A0 APT::Get::List-Cleanup - do not erase obso= lete packages list for
> - =C2=A0 =C2=A0# =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0upstream in '/var/lib/a= pt/lists'
> - =C2=A0 =C2=A0apt-get update \
> - =C2=A0 =C2=A0 =C2=A0 =C2=A0-o Dir::Etc::sourcelist=3D"sourc= es.list.d/isar-apt.list" \
> - =C2=A0 =C2=A0 =C2=A0 =C2=A0-o Dir::Etc::sourceparts=3D"-&qu= ot; \
> - =C2=A0 =C2=A0 =C2=A0 =C2=A0-o APT::Get::List-Cleanup=3D"0&q= uot;
> -
> - =C2=A0 =C2=A0# Install all build deps
> - =C2=A0 =C2=A0mk-build-deps $set_arch -t "${install_cmd}&quo= t; -i -r debian/control
> -) 42>/dpkg.lock
> +source /isar/common.sh
> =C2=A0=20
> =C2=A0 # If autotools files have been created, update their timest= amp to
> =C2=A0 # prevent them from being regenerated
> diff --git a/meta/recipes-devtools/buildchroot/files/common.s= h b/meta/recipes-devtools/buildchroot/files/common.sh
> new file mode 100644
> index 0000000..b7551eb
> --- /dev/null
> +++ b/meta/recipes-devtools/buildchroot/files/common.sh
> @@ -0,0 +1,28 @@
> +#!/bin/bash
> +#
> +# This software is a part of ISAR.
> +# Copyright (C) 2015-2017 ilbers GmbH
> +# Copyright (c) 2018 Siemens AG
> +
> +set -e
> +
> +# Create human-readable names
> +target_arch=3D$2
> +
> +# Notes:
> +# =C2=A0 mk-build-deps for jessie and jtretch has different param= eter name to specify
> +# =C2=A0 host architecture.
> +debian_version=3D$(cut -c1 /etc/debian_version)
> +if [ $(($debian_version)) -ge 9 ]; then
> + =C2=A0 =C2=A0set_arch=3D"--host-arch $target_arch"
> +else
> + =C2=A0 =C2=A0set_arch=3D"-a $target_arch"
> +fi
> +
> +# Go to build directory
> +cd $1
> +
> +# To avoid Perl locale warnings:
> +export LC_ALL=3DC
> +export LANG=3DC
> +export LANGUAGE=3DC
> diff --git a/meta/recipes-devtools/buildchroot/files/deps.sh = b/meta/recipes-devtools/buildchroot/files/deps.sh
> new file mode 100644
> index 0000000..854a4d5
> --- /dev/null
> +++ b/meta/recipes-devtools/buildchroot/files/deps.sh
> @@ -0,0 +1,32 @@
> +#!/bin/bash
> +#
> +# This software is a part of ISAR.
> +# Copyright (C) 2015-2017 ilbers GmbH
> +# Copyright (c) 2018 Siemens AG
> +
> +source /isar/common.sh
> +
> +# Install command to be used by mk-build-deps
> +# Notes:
> +# =C2=A0 1) everything before the -y switch is unchanged from the= defaults
> +# =C2=A0 2) we add -y to go non-interactive
> +install_cmd=3D"apt-get -o Debug::pkgProblemResolver=3Dyes --= no-install-recommends -y"
> +
> +(
> + =C2=A0 =C2=A0# Lock-protected because apt and dpkg do not wait i= n case of contention
> + =C2=A0 =C2=A0flock 42 || exit 1
> +
> + =C2=A0 =C2=A0# Make sure that we have latest isar-apt content.
> + =C2=A0 =C2=A0# Options meaning:
> + =C2=A0 =C2=A0# =C2=A0 Dir::Etc::sourcelist - specifies which sou= rce to be used
> + =C2=A0 =C2=A0# =C2=A0 Dir::Etc::sourceparts - disables looking f= or the other sources
> + =C2=A0 =C2=A0# =C2=A0 APT::Get::List-Cleanup - do not erase obso= lete packages list for
> + =C2=A0 =C2=A0# =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0upstream in '/var/lib/a= pt/lists'
> + =C2=A0 =C2=A0apt-get update \
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0-o Dir::Etc::sourcelist=3D"sourc= es.list.d/isar-apt.list" \
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0-o Dir::Etc::sourceparts=3D"-&qu= ot; \
> + =C2=A0 =C2=A0 =C2=A0 =C2=A0-o APT::Get::List-Cleanup=3D"0&q= uot;
> +
> + =C2=A0 =C2=A0# Install all build deps
> + =C2=A0 =C2=A0mk-build-deps $set_arch -t "${install_cmd}&quo= t; -i -r debian/control
> +) 42>/dpkg.lock
> diff --git a/meta/recipes-kernel/linux-module/module.inc b/me= ta/recipes-kernel/linux-module/module.inc
> index 3075f44..3a3cab1 100644
> --- a/meta/recipes-kernel/linux-module/module.inc
> +++ b/meta/recipes-kernel/linux-module/module.inc
> @@ -17,7 +17,7 @@ AUTOLOAD ?=3D "0"
> =C2=A0=20
> =C2=A0 inherit dpkg
> =C2=A0=20
> -dpkg_runbuild_prepend() {
> +do_prepare_prepend() {
> =C2=A0 =C2=A0 =C2=A0 cp -r ${WORKDIR}/debian ${S}/
> =C2=A0 =C2=A0 =C2=A0 sed -i -e 's/@PN@/${PN}/g' -e 's/= @PV@/${PV}/g' \
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-e 's/@KERNEL_= NAME@/${KERNEL_NAME}/g' \
>=20

This patches causes regression with jailhouse-images which I do not
understand yet:

2018-08-31 07:53:54 - ERROR =C2=A0 =C2=A0- ERROR: mc:espressobin-jailho= use:non-root-initramfs-2018.05.1-r0 do_prepare: Function failed: do_pr= epare (log file is located at /out/build/tmp/work/debian-stretch-arm64= /non-root-initramfs-2018.05.1-r0/temp/log.do_prepare.28928)
2018-08-31 07:53:54 - ERROR =C2=A0 =C2=A0- ERROR: Logfile of failure st= ored in: /out/build/tmp/work/debian-stretch-arm64/non-root-initra= mfs-2018.05.1-r0/temp/log.do_prepare.28928
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - Log data follows:
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | DEBUG: Executing shell fun= ction do_prepare
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Get:1 file:/isar-apt isar = InRelease
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Ign:1 file:/isar-apt isar = InRelease
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Get:2 file:/isar-apt isar = Release [3554 B]
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Get:2 file:/isar-apt isar = Release [3554 B]
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Get:3 file:/isar-apt isar = Release.gpg
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Ign:3 file:/isar-apt isar = Release.gpg
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | Reading package lists...
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | E: You must put some '= source' URIs in your sources.list
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | mk-build-deps: Unable to f= ind package name in `apt-cache showsrc debian/control'
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | WARNING: exit code 29 from= a shell command.
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - | ERROR: Function failed: do= _prepare (log file is located at /out/build/tmp/work/debian-stretch-ar= m64/non-root-initramfs-2018.05.1-r0/temp/log.do_prepare.28928)
2018-08-31 07:53:54 - INFO =C2=A0 =C2=A0 - NOTE: recipe non-root-initra= mfs-2018.05.1-r0: task do_prepare: Failed
2018-08-31 07:53:54 - ERROR =C2=A0 =C2=A0- ERROR: Task (multiconfig:esp= ressobin-jailhouse:/jailhouse-images/recipes-core/non-root-i= nitramfs/non-root-initramfs_2018.05.1.bb:do_prepare) failed with exit = code '1'


I also wonder why this didn't trigger with the isar core tests. Any= idea?

Jan

--=20
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
------=_Part_568_218008422.1535703357921-- ------=_Part_567_430423787.1535703357920--