public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH v4 0/3] UBoot refactor
@ 2021-11-20  6:39 Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 1/3] u-boot: Switch to use DEB_BUILD_PROFILES Vijai Kumar K
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Vijai Kumar K @ 2021-11-20  6:39 UTC (permalink / raw)
  To: isar-users; +Cc: Vijai Kumar K

Changes since v3:
 - Move meta-isar changes to a separate patch(P3)

Changes since v2:
 - Add entry in RECIPE-API-CHANGELOG
 - Provide backward compatibitlity with U_BOOT_*_PACKAGE variable
 - Issue a deprecation notice to use if the old variables are used

CI Job running at
http://ci.isar-build.org:8080/job/isar_vkk_devel/99/console

Changes since v1:
 - Fix PROVIDES variable
 - Enable dev by default

CI Job running at
http://ci.isar-build.org:8080/job/isar_vkk_devel/98/console

Vijai Kumar K (3):
  u-boot: Switch to use DEB_BUILD_PROFILES
  meta/u-boot: Include libssl-dev only when building tools
  meta-isar: u-boot: Migrate to U_BOOT_BUILD_PROFILES

 RECIPE-API-CHANGELOG.md                       | 12 ++++
 .../u-boot/u-boot-de0-nano-soc_2021.10.bb     |  2 +-
 .../u-boot/files/debian/control.tmpl          | 13 +++++
 meta/recipes-bsp/u-boot/files/debian/rules    |  9 ++-
 meta/recipes-bsp/u-boot/u-boot-custom.inc     | 55 ++++++++++---------
 5 files changed, 63 insertions(+), 28 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 1/3] u-boot: Switch to use DEB_BUILD_PROFILES
  2021-11-20  6:39 [PATCH v4 0/3] UBoot refactor Vijai Kumar K
@ 2021-11-20  6:39 ` Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 3/3] meta-isar: u-boot: Migrate to U_BOOT_BUILD_PROFILES Vijai Kumar K
  2 siblings, 0 replies; 6+ messages in thread
From: Vijai Kumar K @ 2021-11-20  6:39 UTC (permalink / raw)
  To: isar-users; +Cc: Vijai Kumar K

Use DEB_BUILD_PROFILES to select packages to build.

This patch drops the U_BOOT_TOOLS_PACKAGE and U_BOOT_CONFIG_PACKAGE
variables and introduces U_BOOT_BUILD_PROFILES through which we can
enable particular packages like u-boot-tools, u-boot-dev and
u-boot-config.

Also, provide backward compatibility with U_BOOT_*_PACKAGES
variable and prompt a deprecation warning to user.

Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
---
 RECIPE-API-CHANGELOG.md                       | 12 +++++
 .../u-boot/files/debian/control.tmpl          | 13 +++++
 meta/recipes-bsp/u-boot/files/debian/rules    |  9 +++-
 meta/recipes-bsp/u-boot/u-boot-custom.inc     | 52 ++++++++++---------
 4 files changed, 60 insertions(+), 26 deletions(-)

diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
index 7312d4d..3b926bd 100644
--- a/RECIPE-API-CHANGELOG.md
+++ b/RECIPE-API-CHANGELOG.md
@@ -301,3 +301,15 @@ Kernel update with "apt-get" will not work since bootloader configuration will
 not be updated. It used to "kind of work" for grub and efi, that hack is gone.
 
 When using the plugins it is advised to name the partition "/boot" and to exclude boot from the follwing rootfs to not waste space.
+
+### Deprecate U_BOOT_TOOLS_PACKAGE and U_BOOT_CONFIG_PACKAGE
+
+Use U_BOOT_BUILD_PROFILES instead of U_BOOT_TOOLS_PACKAGE and U_BOOT_CONFIG_PACKAGE
+
+U_BOOT_TOOLS_PACKAGE = "1" is achieved by U_BOOT_BUILD_PROFILES += "tools"
+U_BOOT_CONFIG_PACKAGE = "1" is achieved by U_BOOT_BUILD_PROFILES += "config"
+
+u-boot-${MACHINE}-dev package build can also be controlled now. Enabled by default
+in u-boot-custom.inc. To remove use the below code in your recipe.
+
+U_BOOT_BUILD_PROFILES_remove = "dev"
diff --git a/meta/recipes-bsp/u-boot/files/debian/control.tmpl b/meta/recipes-bsp/u-boot/files/debian/control.tmpl
index 9379be7..7ac11ad 100644
--- a/meta/recipes-bsp/u-boot/files/debian/control.tmpl
+++ b/meta/recipes-bsp/u-boot/files/debian/control.tmpl
@@ -11,4 +11,17 @@ Description: ${DESCRIPTION}, bootloader binaries
 
 Package: u-boot-${MACHINE}-dev
 Architecture: ${DISTRO_ARCH}
+Build-Profiles: <dev>
 Description: ${DESCRIPTION}, bootloader libraries
+
+Package: u-boot-tools
+Architecture: linux-any
+Build-Profiles: <tools>
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: ${DESCRIPTION}, companion tools
+
+Package: u-boot-${MACHINE}-config
+Build-Profiles: <config>
+Provides: u-boot-config
+Architecture: ${DISTRO_ARCH}
+Description: ${DESCRIPTION}, environment configuration
diff --git a/meta/recipes-bsp/u-boot/files/debian/rules b/meta/recipes-bsp/u-boot/files/debian/rules
index 3d66762..121b00e 100755
--- a/meta/recipes-bsp/u-boot/files/debian/rules
+++ b/meta/recipes-bsp/u-boot/files/debian/rules
@@ -20,10 +20,17 @@ override_dh_auto_build:
 	else \
 		./scripts/get_default_envs.sh >u-boot-initial-env; \
 	fi
-	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 tools-only envtools
+ifneq (,$(filter dev,$(DEB_BUILD_PROFILES)))
+	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 envtools
+endif
+ifneq (,$(filter tools,$(DEB_BUILD_PROFILES)))
+	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 tools-only
+endif
 
 override_dh_auto_install:
+ifneq (,$(filter dev,$(DEB_BUILD_PROFILES)))
 	mv tools/env/lib.a tools/env/libubootenv.a
+endif
 
 override_dh_auto_test:
 
diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
index 3680f01..5e8a15b 100644
--- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
@@ -9,10 +9,13 @@ FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/files:"
 
 DESCRIPTION ?= "Custom U-Boot"
 
-PROVIDES += "u-boot-${MACHINE} u-boot-${MACHINE}-dev"
-PROVIDES += "${@'u-boot-tools' if d.getVar('U_BOOT_TOOLS_PACKAGE') == '1' else ''}"
+PROVIDES += "u-boot-${MACHINE}"
+PROVIDES += "${@'u-boot-tools' \
+	if bb.utils.contains('U_BOOT_BUILD_PROFILES', 'tools', 1, 0, d) else ''}"
 PROVIDES += "${@('u-boot-config u-boot-' + d.getVar('MACHINE') + '-config') \
-    if d.getVar('U_BOOT_CONFIG_PACKAGE') == '1' else ''}"
+	if bb.utils.contains('U_BOOT_BUILD_PROFILES', 'config', 1, 0, d) else ''}"
+PROVIDES += "${@('u-boot-' + d.getVar('MACHINE') + '-dev') \
+	if bb.utils.contains('U_BOOT_BUILD_PROFILES', 'dev', 1, 0, d) else ''}"
 
 inherit dpkg
 
@@ -22,6 +25,20 @@ python() {
     if d.getVar('BUILD_DEPENDS'):
         bb.warn("u-boot-custom: Deprecated use of BUILD_DEPENDS, please switch to DEBIAN_BUILD_DEPENDS")
         d.setVar('DEBIAN_BUILD_DEPENDS', d.getVar('BUILD_DEPENDS'))
+
+    if d.getVar('U_BOOT_TOOLS_PACKAGE') is not None:
+        bb.warn("u-boot-custom: Deprecated use of U_BOOT_TOOLS_PACKAGE, please switch to U_BOOT_BUILD_PROFILES")
+        if d.getVar('U_BOOT_TOOLS_PACKAGE') == "1":
+            d.appendVar('U_BOOT_BUILD_PROFILES', " tools")
+        else:
+            d.setVar('U_BOOT_BUILD_PROFILES_remove', "tools")
+
+    if d.getVar('U_BOOT_CONFIG_PACKAGE') is not None:
+        bb.warn("u-boot-custom: Deprecated use of U_BOOT_CONFIG_PACKAGE, please switch to U_BOOT_BUILD_PROFILES")
+        if d.getVar('U_BOOT_CONFIG_PACKAGE') == "1":
+            d.appendVar('U_BOOT_BUILD_PROFILES', " config")
+        else:
+            d.setVar('U_BOOT_BUILD_PROFILES_remove', "config")
 }
 
 DEBIAN_BUILD_DEPENDS ?= "bc, bison, flex, device-tree-compiler, git, libssl-dev:native"
@@ -30,8 +47,8 @@ DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if d.getVar('ISAR_CROSS_COMPILE') ==
 TEMPLATE_FILES = "debian/control.tmpl"
 TEMPLATE_VARS += "MACHINE DEBIAN_BUILD_DEPENDS"
 
-U_BOOT_TOOLS_PACKAGE ?= "0"
-U_BOOT_CONFIG_PACKAGE ?= "0"
+
+U_BOOT_BUILD_PROFILES ?= "dev"
 
 do_prepare_build() {
     cp -r ${WORKDIR}/debian ${S}/
@@ -41,31 +58,15 @@ do_prepare_build() {
     echo "${U_BOOT_BIN} /usr/lib/u-boot/${MACHINE}" > \
         ${S}/debian/u-boot-${MACHINE}.install
 
-    echo "tools/env/libubootenv.a usr/lib" > \
-        ${S}/debian/u-boot-${MACHINE}-dev.install
-
-    if [ "${U_BOOT_TOOLS_PACKAGE}" = "1" ]; then
-        cat <<EOF >>${S}/debian/control
-
-Package: u-boot-tools
-Architecture: linux-any
-Depends: \${shlibs:Depends}, \${misc:Depends}
-Description: ${DESCRIPTION}, companion tools
-EOF
+    if [ "${@bb.utils.contains('U_BOOT_BUILD_PROFILES', 'dev', 'yes', 'no', d)}" = "yes" ];then
+        echo "tools/env/libubootenv.a usr/lib" > \
+            ${S}/debian/u-boot-${MACHINE}-dev.install
     fi
 
-    if [ "${U_BOOT_CONFIG_PACKAGE}" = "1" ]; then
+    if [ "${@bb.utils.contains('U_BOOT_BUILD_PROFILES', 'config', 'yes', 'no', d)}" = "yes" ];then
         cp ${WORKDIR}/fw_env.config ${S}/ || \
             die "U_BOOT_CONFIG_PACKAGE requires a fw_env.config in SRC_URI"
 
-        cat <<EOF >>${S}/debian/control
-
-Package: u-boot-${MACHINE}-config
-Provides: u-boot-config
-Architecture: ${DISTRO_ARCH}
-Description: ${DESCRIPTION}, environment configuration
-EOF
-
         cat <<EOF >>${S}/debian/u-boot-${MACHINE}-config.install
 u-boot-initial-env /etc
 fw_env.config      /etc
@@ -76,4 +77,5 @@ EOF
 dpkg_runbuild_prepend() {
     export U_BOOT_CONFIG="${U_BOOT_CONFIG}"
     export U_BOOT_BIN="${U_BOOT_BIN}"
+    export DEB_BUILD_PROFILES="${U_BOOT_BUILD_PROFILES}"
 }
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools
  2021-11-20  6:39 [PATCH v4 0/3] UBoot refactor Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 1/3] u-boot: Switch to use DEB_BUILD_PROFILES Vijai Kumar K
@ 2021-11-20  6:39 ` Vijai Kumar K
  2021-11-22  6:24   ` Jan Kiszka
  2021-11-20  6:39 ` [PATCH v4 3/3] meta-isar: u-boot: Migrate to U_BOOT_BUILD_PROFILES Vijai Kumar K
  2 siblings, 1 reply; 6+ messages in thread
From: Vijai Kumar K @ 2021-11-20  6:39 UTC (permalink / raw)
  To: isar-users; +Cc: Vijai Kumar K

libssl-dev of the host architecture is needed only when you
cross compile u-boot-tools.

Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
---
 meta/recipes-bsp/u-boot/u-boot-custom.inc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
index 5e8a15b..4001f8c 100644
--- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
@@ -42,7 +42,8 @@ python() {
 }
 
 DEBIAN_BUILD_DEPENDS ?= "bc, bison, flex, device-tree-compiler, git, libssl-dev:native"
-DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if d.getVar('ISAR_CROSS_COMPILE') == '1' else ''}"
+DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if (d.getVar('ISAR_CROSS_COMPILE') == '1' and \
+			bb.utils.contains('U_BOOT_BUILD_PROFILES', 'tools', 1, 0, d)) else ''}"
 
 TEMPLATE_FILES = "debian/control.tmpl"
 TEMPLATE_VARS += "MACHINE DEBIAN_BUILD_DEPENDS"
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v4 3/3] meta-isar: u-boot: Migrate to U_BOOT_BUILD_PROFILES
  2021-11-20  6:39 [PATCH v4 0/3] UBoot refactor Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 1/3] u-boot: Switch to use DEB_BUILD_PROFILES Vijai Kumar K
  2021-11-20  6:39 ` [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools Vijai Kumar K
@ 2021-11-20  6:39 ` Vijai Kumar K
  2 siblings, 0 replies; 6+ messages in thread
From: Vijai Kumar K @ 2021-11-20  6:39 UTC (permalink / raw)
  To: isar-users; +Cc: Vijai Kumar K

Migrate u-boot recipe to use U_BOOT_BUILD_PROFILES instead of
U_BOOT_TOOLS_PACKAGE variable

Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
---
 meta-isar/recipes-bsp/u-boot/u-boot-de0-nano-soc_2021.10.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-isar/recipes-bsp/u-boot/u-boot-de0-nano-soc_2021.10.bb b/meta-isar/recipes-bsp/u-boot/u-boot-de0-nano-soc_2021.10.bb
index dcb76c5..640b7ea 100644
--- a/meta-isar/recipes-bsp/u-boot/u-boot-de0-nano-soc_2021.10.bb
+++ b/meta-isar/recipes-bsp/u-boot/u-boot-de0-nano-soc_2021.10.bb
@@ -6,4 +6,4 @@
 require u-boot-${PV}.inc
 
 # Just for testing purposes, distro package would be recent enough
-U_BOOT_TOOLS_PACKAGE = "1"
+U_BOOT_BUILD_PROFILES += "tools"
-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools
  2021-11-20  6:39 ` [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools Vijai Kumar K
@ 2021-11-22  6:24   ` Jan Kiszka
  2021-11-22  6:38     ` vijai kumar
  0 siblings, 1 reply; 6+ messages in thread
From: Jan Kiszka @ 2021-11-22  6:24 UTC (permalink / raw)
  To: Vijai Kumar K, isar-users

On 20.11.21 07:39, Vijai Kumar K wrote:
> libssl-dev of the host architecture is needed only when you
> cross compile u-boot-tools.
> 
> Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
> ---
>  meta/recipes-bsp/u-boot/u-boot-custom.inc | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> index 5e8a15b..4001f8c 100644
> --- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
> +++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> @@ -42,7 +42,8 @@ python() {
>  }
>  
>  DEBIAN_BUILD_DEPENDS ?= "bc, bison, flex, device-tree-compiler, git, libssl-dev:native"
> -DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if d.getVar('ISAR_CROSS_COMPILE') == '1' else ''}"
> +DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if (d.getVar('ISAR_CROSS_COMPILE') == '1' and \
> +			bb.utils.contains('U_BOOT_BUILD_PROFILES', 'tools', 1, 0, d)) else ''}"
>  

As written in the other thread: The cross-compile conditional is
practically redundant.

As this patch depends on the 2021.10 update, you should stick all
patches into the same series.

Jan

>  TEMPLATE_FILES = "debian/control.tmpl"
>  TEMPLATE_VARS += "MACHINE DEBIAN_BUILD_DEPENDS"
> 

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools
  2021-11-22  6:24   ` Jan Kiszka
@ 2021-11-22  6:38     ` vijai kumar
  0 siblings, 0 replies; 6+ messages in thread
From: vijai kumar @ 2021-11-22  6:38 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Vijai Kumar K, isar-users

On Mon, Nov 22, 2021 at 11:55 AM Jan Kiszka <jan.kiszka@siemens.com> wrote:
>
> On 20.11.21 07:39, Vijai Kumar K wrote:
> > libssl-dev of the host architecture is needed only when you
> > cross compile u-boot-tools.
> >
> > Signed-off-by: Vijai Kumar K <Vijaikumar_Kanagarajan@mentor.com>
> > ---
> >  meta/recipes-bsp/u-boot/u-boot-custom.inc | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> > index 5e8a15b..4001f8c 100644
> > --- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
> > +++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> > @@ -42,7 +42,8 @@ python() {
> >  }
> >
> >  DEBIAN_BUILD_DEPENDS ?= "bc, bison, flex, device-tree-compiler, git, libssl-dev:native"
> > -DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if d.getVar('ISAR_CROSS_COMPILE') == '1' else ''}"
> > +DEBIAN_BUILD_DEPENDS += "${@', libssl-dev' if (d.getVar('ISAR_CROSS_COMPILE') == '1' and \
> > +                     bb.utils.contains('U_BOOT_BUILD_PROFILES', 'tools', 1, 0, d)) else ''}"
> >
>
> As written in the other thread: The cross-compile conditional is
> practically redundant.
>
> As this patch depends on the 2021.10 update, you should stick all
> patches into the same series.


Yes, I will club them and bring this series first.

Thanks,
Vijai Kumar K
>
> Jan
>
> >  TEMPLATE_FILES = "debian/control.tmpl"
> >  TEMPLATE_VARS += "MACHINE DEBIAN_BUILD_DEPENDS"
> >
>
> --
> Siemens AG, T RDA IOT
> Corporate Competence Center Embedded Linux
>
> --
> You received this message because you are subscribed to the Google Groups "isar-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/7db1e90b-c943-e686-be50-51b0372acec7%40siemens.com.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-11-22  6:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-20  6:39 [PATCH v4 0/3] UBoot refactor Vijai Kumar K
2021-11-20  6:39 ` [PATCH v4 1/3] u-boot: Switch to use DEB_BUILD_PROFILES Vijai Kumar K
2021-11-20  6:39 ` [PATCH v4 2/3] meta/u-boot: Include libssl-dev only when building tools Vijai Kumar K
2021-11-22  6:24   ` Jan Kiszka
2021-11-22  6:38     ` vijai kumar
2021-11-20  6:39 ` [PATCH v4 3/3] meta-isar: u-boot: Migrate to U_BOOT_BUILD_PROFILES Vijai Kumar K

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox