From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7312758318482587648 Date: Tue, 2 Jan 2024 20:47:19 -0800 (PST) From: Srinuvasan Arjunan To: isar-users Message-Id: <10b9175f-cff3-4a43-a4b5-a3095ee81fe4n@googlegroups.com> In-Reply-To: <20231215114527.567501-1-srinuvasan_a@mentor.com> References: <8b19681f-8237-4cef-9235-b6128a37f457@siemens.com> <20231215114527.567501-1-srinuvasan_a@mentor.com> Subject: Re: [PATCH v1] recipes-devtools/sbuild-chroot: install self-built packages in sbuild flavor MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_324920_1120651524.1704257239436" X-TUID: lLfA/iOjI0J+ ------=_Part_324920_1120651524.1704257239436 Content-Type: multipart/alternative; boundary="----=_Part_324921_335436121.1704257239436" ------=_Part_324921_335436121.1704257239436 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Friday, December 15, 2023 at 5:15:50=E2=80=AFPM UTC+5:30 Srinuvasan Arju= nan=20 wrote: From: srinuvasan =20 In some use-cases we need to install custom packages in sbuildchroot and=20 this can be referred later time during image generation part, hence we=20 additionally added the provision to install the custom packages in=20 sbuild flavor.=20 Introduced SBUILD_CHROOT_INSTALL variable, here you can define the=20 custom packages that you need to install in sbuild flavor.=20 Signed-off-by: srinuvasan =20 ---=20 .../recipes-app/hello-isar/hello-isar.bb | 2 +-=20 meta-isar/recipes-app/libhello/libhello.bb | 2 +-=20 .../recipes-core/images/isar-image-base.bb | 3 +=20 ...b =3D> sbuild-chroot-host-extra-packages.bb} | 2 +-=20 ...=3D> sbuild-chroot-target-extra-packages.bb} | 2 +-=20 meta/classes/image.bbclass | 1 +=20 ...tall-custom-packages-sbuild-flavor.bbclass | 64 +++++++++++++++++++=20 7 files changed, 72 insertions(+), 4 deletions(-)=20 rename meta-isar/recipes-devtools/sbuild-chroot/{sbuild-chroot-host-db2m.bb= =20 =3D> sbuild-chroot-host-extra-packages.bb} (91%)=20 rename meta-isar/recipes-devtools/sbuild-chroot/{ sbuild-chroot-target-db2m.bb =3D> sbuild-chroot-target-extra-packages.bb}= =20 (91%)=20 create mode 100644=20 meta/classes/install-custom-packages-sbuild-flavor.bbclass=20 diff --git a/meta-isar/recipes-app/hello-isar/hello-isar.bb=20 b/meta-isar/recipes-app/hello-isar/hello-isar.bb=20 index 51dac2b7..484e5704 100644=20 --- a/meta-isar/recipes-app/hello-isar/hello-isar.bb=20 +++ b/meta-isar/recipes-app/hello-isar/hello-isar.bb=20 @@ -23,4 +23,4 @@ SRCREV =3D "a18c14cc11ce6b003f3469e89223cffb4016861d"=20 inherit dpkg=20 # Example of using alternative sbuild chroot=20 -SBUILD_FLAVOR=3D"db2m"=20 +SBUILD_FLAVOR=3D"extra-packages"=20 diff --git a/meta-isar/recipes-app/libhello/libhello.bb=20 b/meta-isar/recipes-app/libhello/libhello.bb=20 index 71604bf5..4e6522fe 100644=20 --- a/meta-isar/recipes-app/libhello/libhello.bb=20 +++ b/meta-isar/recipes-app/libhello/libhello.bb=20 @@ -16,4 +16,4 @@ SRCREV =3D "98f2e41e7d05ab8d19b0c5d160b104b725c8fd93"=20 inherit dpkg=20 # Example of using alternative sbuild chroot=20 -SBUILD_FLAVOR=3D"db2m"=20 +SBUILD_FLAVOR=3D"extra-packages"=20 diff --git a/meta-isar/recipes-core/images/isar-image-base.bb=20 b/meta-isar/recipes-core/images/isar-image-base.bb=20 index b381d859..d635a3aa 100644=20 --- a/meta-isar/recipes-core/images/isar-image-base.bb=20 +++ b/meta-isar/recipes-core/images/isar-image-base.bb=20 @@ -10,4 +10,7 @@ LIC_FILES_CHKSUM =3D=20 "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=3D751419260=20 PV =3D "1.0"=20 +SBUILD_FLAVOR =3D "extra-packages"=20 +SBUILD_CHROOT_INSTALL =3D "hello-isar"=20 +=20 inherit image=20 diff --git a/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-host-db2m.bb b/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-host-extra-packages.bb=20 similarity index 91%=20 rename from meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-host-db2m.bb=20 rename to meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-host-extra-packages.bb=20 index 1795c5a2..b035a926 100644=20 --- a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-host-db2m.bb= =20 +++ b/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-host-extra-packages.bb=20 @@ -8,5 +8,5 @@ DESCRIPTION =3D "Isar sbuild/schroot filesystem for host=20 (docbook-to-man)"=20 require recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb=20 -SBUILD_FLAVOR =3D "db2m"=20 +SBUILD_FLAVOR =3D "extra-packages"=20 SBUILD_CHROOT_PREINSTALL_EXTRA ?=3D "docbook-to-man"=20 diff --git a/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-target-db2m.bb b/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-target-extra-packages.bb=20 similarity index 91%=20 rename from meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-target-db2m.bb=20 rename to meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-target-extra-packages.bb=20 index e2e10433..80440df2 100644=20 --- a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-target-db2m.bb= =20 +++ b/meta-isar/recipes-devtools/sbuild-chroot/ sbuild-chroot-target-extra-packages.bb=20 @@ -8,5 +8,5 @@ DESCRIPTION =3D "Isar sbuild/schroot filesystem for target= =20 (docbook-to-man)"=20 require recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb=20 -SBUILD_FLAVOR =3D "db2m"=20 +SBUILD_FLAVOR =3D "extra-packages"=20 SBUILD_CHROOT_PREINSTALL_EXTRA ?=3D "docbook-to-man"=20 diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass=20 index 73f1d52c..5fea18b0 100644=20 --- a/meta/classes/image.bbclass=20 +++ b/meta/classes/image.bbclass=20 @@ -85,6 +85,7 @@ inherit image-tools-extension=20 inherit image-postproc-extension=20 inherit image-locales-extension=20 inherit image-account-extension=20 +inherit install-custom-packages-sbuild-flavor=20 # Extra space for rootfs in MB=20 ROOTFS_EXTRA ?=3D "64"=20 diff --git a/meta/classes/install-custom-packages-sbuild-flavor.bbclass=20 b/meta/classes/install-custom-packages-sbuild-flavor.bbclass=20 new file mode 100644=20 index 00000000..04650f51=20 --- /dev/null=20 +++ b/meta/classes/install-custom-packages-sbuild-flavor.bbclass=20 @@ -0,0 +1,64 @@=20 +# This software is a part of ISAR.=20 +# Copyright (C) Siemens AG, 2023=20 +#=20 +# SPDX-License-Identifier: MIT=20 +#=20 +# This file extends the image.bbclass to supply tools for futher imager=20 functions=20 +=20 +inherit sbuild=20 +=20 +SBUILD_FLAVOR =3D "extra-packages"=20 +SBUILD_CHROOT_INSTALL ??=3D ""=20 +=20 +SCHROOT_MOUNTS =3D "${WORKDIR}:${PP_WORK} ${IMAGE_ROOTFS}:${PP_ROOTFS}=20 ${DEPLOY_DIR_IMAGE}:${PP_DEPLOY}"=20 +SCHROOT_MOUNTS +=3D "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt"=20 +=20 +ROOTFS_INSTALL_COMMAND:prepend =3D " install_custom_packages_sbuild_flavor= "=20 +=20 +install_custom_packages_sbuild_flavor() {=20 +=20 + schroot_create_configs=20 + insert_mounts=20 +=20 + if [ -n "${SBUILD_CHROOT_INSTALL}" ]; then=20 + echo "Installing self built packages: ${SBUILD_CHROOT_INSTALL}"=20 +=20 + distro=3D"${BASE_DISTRO}-${BASE_DISTRO_CODENAME}"=20 + if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then=20 + distro=3D"${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}"=20 + fi=20 +=20 + # prepare isar-apt=20 + sudo -E chroot ${SCHROOT_DIR} sh -c " \=20 + mkdir -p '/etc/apt/sources.list.d'=20 + echo 'deb [trusted=3Dyes] file:///isar-apt ${DEBDISTRONAME} main' > \=20 + '/etc/apt/sources.list.d/isar-apt.list'=20 +=20 + mkdir -p '/etc/apt/preferences.d'=20 + cat << EOF > '/etc/apt/preferences.d/isar-apt'=20 +Package: ${SBUILD_CHROOT_INSTALL}=20 +Pin: release n=3D${DEBDISTRONAME}=20 +Pin-Priority: 1000=20 +EOF"=20 +=20 + E=3D"${@ isar_export_proxies(d)}"=20 + deb_dl_dir_import ${schroot_dir} ${distro}=20 + sudo -E chroot ${SCHROOT_DIR} sh -c " \=20 + apt-get update \=20 + -o Dir::Etc::SourceList=3D'sources.list.d/isar-apt.list' \=20 + -o Dir::Etc::SourceParts=3D'-' \=20 + -o APT::Get::List-Cleanup=3D'0'=20 + apt-get -o Debug::pkgProblemResolver=3Dyes --no-install-recommends -y \= =20 + --allow-unauthenticated --allow-downgrades --download-only install \=20 + ${SBUILD_CHROOT_INSTALL}"=20 +=20 + deb_dl_dir_export ${schroot_dir} ${distro}=20 + sudo -E chroot ${SCHROOT_DIR} sh -c " \=20 + apt-get -o Debug::pkgProblemResolver=3Dyes --no-install-recommends -y \= =20 + --allow-unauthenticated --allow-downgrades install \=20 + ${SBUILD_CHROOT_INSTALL}"=20 + fi=20 +=20 + remove_mounts=20 + schroot_delete_configs=20 +}=20 --=20 2.39.2 Any improvements needed in this patch , Please provide your thoughts. Thanks, Srinu=20 ------=_Part_324921_335436121.1704257239436 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

On Friday, December 15, 2023 at 5:15:50= =E2=80=AFPM UTC+5:30 Srinuvasan Arjunan wrote:
From: srinuvasan <srinu= v...@siemens.com>

In some use-cases we need to install custom packages in sbuildchroot = and
this can be referred later time during image generation part, hence w= e
additionally added the provision to install the custom packages in
sbuild flavor.

Introduced SBUILD_CHROOT_INSTALL variable, here you can define the
custom packages that you need to install in sbuild flavor.

Signed-off-by: srinuvasan <srinuv...= @siemens.com>
---
.../recipes-app/hello-isar/hello-isar.bb | 2 +-
meta-isar/recipes-app/libhello/libhello.bb | 2 +-
.../recipes-core/images/isar-image-base.bb | 3 +
...b =3D> sbuild-chroot-host-extra-packages.bb} | 2 +-
...=3D>
sbuild-chroot-target-extra-packages.bb<= /a>} | 2 +-
meta/classes/image.bbclass | 1 +
...tall-custom-packages-sbuild-flavor.bbclass | 64 +++++++++++++++++= ++
7 files changed, 72 insertions(+), 4 deletions(-)
rename meta-isar/recipes-devtools/sbuild-chroot/{
sbuild-chroot= -host-db2m.bb =3D> sbuild-chroot-host-extra-packages= .bb} (91%)
rename meta-isar/recipes-devtools/sbuild-chroot/{sbuild-chro= ot-target-db2m.bb =3D> sbuild-chroot-target-extra-= packages.bb} (91%)
create mode 100644 meta/classes/install-custom-packages-sbuild-flavo= r.bbclass

diff --git a/meta-isar/recipes-app/hello-isar/hello-isar.bb b/meta-isar/= recipes-app/hello-isar/hello-isar.bb
index 51dac2b7..484e5704 100644
--- a/meta-isar/recipes-app/hello-isar/hello-isar.bb
+++ b/meta-isar/recipes-app/hello-isar/hello-isar.bb
@@ -23,4 +23,4 @@ SRCREV =3D "a18c14cc11ce6b003f3469e89223cffb4016861= d"
inherit dpkg
=20
# Example of using alternative sbuild chroot
-SBUILD_FLAVOR=3D"db2m"
+SBUILD_FLAVOR=3D"extra-packages"
diff --git a/meta-isar/recipes-app/libhello/libhello.bb b/meta-isar/recipe= s-app/libhello/libhello.bb
index 71604bf5..4e6522fe 100644
--- a/meta-isar/recipes-app/libhello/libhello.bb
+++ b/meta-isar/recipes-app/libhello/libhello.bb
@@ -16,4 +16,4 @@ SRCREV =3D "98f2e41e7d05ab8d19b0c5d160b104b725c8fd9= 3"
inherit dpkg
=20
# Example of using alternative sbuild chroot
-SBUILD_FLAVOR=3D"db2m"
+SBUILD_FLAVOR=3D"extra-packages"
diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/met= a-isar/recipes-core/images/isar-image-base.bb
index b381d859..d635a3aa 100644
--- a/meta-isar/recipes-core/images/isar-image-base.bb
+++ b/meta-isar/recipes-core/images/isar-image-base.bb
@@ -10,4 +10,7 @@ LIC_FILES_CHKSUM =3D "file://${LAYERDIR_core}/licen= ses/COPYING.GPLv2;md5=3D751419260
=20
PV =3D "1.0"
=20
+SBUILD_FLAVOR =3D "extra-packages"
+SBUILD_CHROOT_INSTALL =3D "hello-isar"
+
inherit image
diff --git a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-ch= root-host-db2m.bb b/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-host-extra-packages.bb
similarity index 91%
rename from meta-isar/recipes-devtools/sbuild-chroot/sbuild-chr= oot-host-db2m.bb
rename to meta-isar/recipes-devtools/sbuild-chroot/sb= uild-chroot-host-extra-packages.bb
index 1795c5a2..b035a926 100644
--- a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-ho= st-db2m.bb
+++ b/meta-isar/recipes-devtools/sbuild-chroot/sbuild= -chroot-host-extra-packages.bb
@@ -8,5 +8,5 @@ DESCRIPTION =3D "Isar sbuild/schroot filesystem for h= ost (docbook-to-man)"
=20
require recipes-devtools/sbuild-chroot/sbuild-chroot-host.bb
=20
-SBUILD_FLAVOR =3D "db2m"
+SBUILD_FLAVOR =3D "extra-packages"
SBUILD_CHROOT_PREINSTALL_EXTRA ?=3D "docbook-to-man"
diff --git a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-= chroot-target-db2m.bb b/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-target-extra-packages.bb
similarity index 91%
rename from meta-isar/recipes-devtools/sbuild-chroot/sbuild-c= hroot-target-db2m.bb
rename to meta-isar/recipes-devtools/sbuild-chroot/= sbuild-chroot-target-extra-packages.bb
index e2e10433..80440df2 100644
--- a/meta-isar/recipes-devtools/sbuild-chroot/sbuild-chroot-= target-db2m.bb
+++ b/meta-isar/recipes-devtools/sbuild-chroot/sbui= ld-chroot-target-extra-packages.bb
@@ -8,5 +8,5 @@ DESCRIPTION =3D "Isar sbuild/schroot filesystem for t= arget (docbook-to-man)"
=20
require recipes-devtools/sbuild-chroot/sbuild-chroot-target.bb
=20
-SBUILD_FLAVOR =3D "db2m"
+SBUILD_FLAVOR =3D "extra-packages"
SBUILD_CHROOT_PREINSTALL_EXTRA ?=3D "docbook-to-man"
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 73f1d52c..5fea18b0 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -85,6 +85,7 @@ inherit image-tools-extension
inherit image-postproc-extension
inherit image-locales-extension
inherit image-account-extension
+inherit install-custom-packages-sbuild-flavor
=20
# Extra space for rootfs in MB
ROOTFS_EXTRA ?=3D "64"
diff --git a/meta/classes/install-custom-packages-sbuild-flavor.bbcla= ss b/meta/classes/install-custom-packages-sbuild-flavor.bbclass
new file mode 100644
index 00000000..04650f51
--- /dev/null
+++ b/meta/classes/install-custom-packages-sbuild-flavor.bbclass
@@ -0,0 +1,64 @@
+# This software is a part of ISAR.
+# Copyright (C) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+#
+# This file extends the image.bbclass to supply tools for futher ima= ger functions
+
+inherit sbuild
+
+SBUILD_FLAVOR =3D "extra-packages"
+SBUILD_CHROOT_INSTALL ??=3D ""
+
+SCHROOT_MOUNTS =3D "${WORKDIR}:${PP_WORK} ${IMAGE_ROOTFS}:${PP_ROOTF= S} ${DEPLOY_DIR_IMAGE}:${PP_DEPLOY}"
+SCHROOT_MOUNTS +=3D "${REPO_ISAR_DIR}/${DISTRO}:/isar-apt"
+
+ROOTFS_INSTALL_COMMAND:prepend =3D " install_custom_packages_sbuild_= flavor"
+
+install_custom_packages_sbuild_flavor() {
+
+ schroot_create_configs
+ insert_mounts
+
+ if [ -n "${SBUILD_CHROOT_INSTALL}" ]; then
+ echo "Installing self built packages: ${SBUILD_CHROOT_INSTAL= L}"
+
+ distro=3D"${BASE_DISTRO}-${BASE_DISTRO_CODENAME}"
+ if [ ${ISAR_CROSS_COMPILE} -eq 1 ]; then
+ distro=3D"${HOST_BASE_DISTRO}-${BASE_DISTRO_CODENAME}"
+ fi
+
+ # prepare isar-apt
+ sudo -E chroot ${SCHROOT_DIR} sh -c " \
+ mkdir -p '/etc/apt/sources.list.d'
+ echo 'deb [trusted=3Dyes] file:///isar-apt ${DEBDISTRONA= ME} main' > \
+ '/etc/apt/sources.list.d/isar-apt.list'
+
+ mkdir -p '/etc/apt/preferences.d'
+ cat << EOF > '/etc/apt/preferences.d/isar-apt'
+Package: ${SBUILD_CHROOT_INSTALL}
+Pin: release n=3D${DEBDISTRONAME}
+Pin-Priority: 1000
+EOF"
+
+ E=3D"${@ isar_export_proxies(d)}"
+ deb_dl_dir_import ${schroot_dir} ${distro}
+ sudo -E chroot ${SCHROOT_DIR} sh -c " \
+ apt-get update \
+ -o Dir::Etc::SourceList=3D'sources.list.d/isar-apt.l= ist' \
+ -o Dir::Etc::SourceParts=3D'-' \
+ -o APT::Get::List-Cleanup=3D'0'
+ apt-get -o Debug::pkgProblemResolver=3Dyes --no-install-= recommends -y \
+ --allow-unauthenticated --allow-downgrades --downloa= d-only install \
+ ${SBUILD_CHROOT_INSTALL}"
+
+ deb_dl_dir_export ${schroot_dir} ${distro}
+ sudo -E chroot ${SCHROOT_DIR} sh -c " \
+ apt-get -o Debug::pkgProblemResolver=3Dyes --no-install-= recommends -y \
+ --allow-unauthenticated --allow-downgrades install \
+ ${SBUILD_CHROOT_INSTALL}"
+ fi
+
+ remove_mounts
+ schroot_delete_configs
+}
--=20
2.39.2


------=_Part_324921_335436121.1704257239436-- ------=_Part_324920_1120651524.1704257239436--