Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
@ 2023-08-21 17:58 Charles Hardin
  2023-08-21 22:13 ` Thomas Petazzoni via buildroot
  2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
  0 siblings, 2 replies; 11+ messages in thread
From: Charles Hardin @ 2023-08-21 17:58 UTC (permalink / raw)
  To: buildroot; +Cc: Charles Hardin, Thomas Petazzoni, Asaf Kahlon, Alvaro G . M

When building zephyr based firmware, the cmake integrates with
python scripts that can be run using the buildroot host-python
dependencies. This is useful for the sdk setups and associated
build steps for the firmware. In this use-case, a buildroot
external project can be setup with recipes to build firmware
images using eabi toolchains and the linux controller software
to talk to those firmware images using one SDK. This might not
be overtly obvious from the patches.

Add the required host packages and additional pykwalify

Signed-off-by: Charles Hardin <ckhardin@gmail.com>
---
 package/Config.in                             |  1 +
 package/python-dateutil/python-dateutil.mk    |  2 ++
 package/python-docopt/python-docopt.mk        |  1 +
 package/python-pykwalify/Config.in            |  9 ++++++++
 .../python-pykwalify/python-pykwalify.hash    |  6 +++++
 package/python-pykwalify/python-pykwalify.mk  | 23 +++++++++++++++++++
 .../python-ruamel-yaml/python-ruamel-yaml.mk  |  1 +
 7 files changed, 43 insertions(+)
 create mode 100644 package/python-pykwalify/Config.in
 create mode 100644 package/python-pykwalify/python-pykwalify.hash
 create mode 100644 package/python-pykwalify/python-pykwalify.mk

diff --git a/package/Config.in b/package/Config.in
index 54cddc3914..8eb6c2bf37 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1225,6 +1225,7 @@ menu "External python modules"
 	source "package/python-pyicu/Config.in"
 	source "package/python-pyinotify/Config.in"
 	source "package/python-pyjwt/Config.in"
+	source "package/python-pykwalify/Config.in"
 	source "package/python-pylibfdt/Config.in"
 	source "package/python-pylibftdi/Config.in"
 	source "package/python-pylru/Config.in"
diff --git a/package/python-dateutil/python-dateutil.mk b/package/python-dateutil/python-dateutil.mk
index b75f510bce..d45a047ba8 100644
--- a/package/python-dateutil/python-dateutil.mk
+++ b/package/python-dateutil/python-dateutil.mk
@@ -10,5 +10,7 @@ PYTHON_DATEUTIL_SETUP_TYPE = setuptools
 PYTHON_DATEUTIL_LICENSE = BSD-3-Clause
 PYTHON_DATEUTIL_LICENSE_FILES = LICENSE
 PYTHON_DATEUTIL_DEPENDENCIES = host-python-setuptools-scm
+HOST_PYTHON_DATEUTIL_DEPENDENCIES = host-python-setuptools-scm host-python-six
 
 $(eval $(python-package))
+$(eval $(host-python-package))
diff --git a/package/python-docopt/python-docopt.mk b/package/python-docopt/python-docopt.mk
index f87d2f85a6..d326f4f0aa 100644
--- a/package/python-docopt/python-docopt.mk
+++ b/package/python-docopt/python-docopt.mk
@@ -11,3 +11,4 @@ PYTHON_DOCOPT_LICENSE_FILES = LICENSE-MIT
 PYTHON_DOCOPT_SETUP_TYPE = setuptools
 
 $(eval $(python-package))
+$(eval $(host-python-package))
diff --git a/package/python-pykwalify/Config.in b/package/python-pykwalify/Config.in
new file mode 100644
index 0000000000..03afe31865
--- /dev/null
+++ b/package/python-pykwalify/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PYTHON_PYKWALIFY
+	bool "python-pykwalify"
+	select BR2_PACKAGE_PYTHON_DATEUTIL # runtime
+	select BR2_PACKAGE_PYTHON_DOCOPT # runtime
+	select BR2_PACKAGE_PYTHON_RUAMEL_YAML # runtime
+	help
+	  Python lib/cli for JSON/YAML schema validation.
+
+	  http://github.com/grokzen/pykwalify
diff --git a/package/python-pykwalify/python-pykwalify.hash b/package/python-pykwalify/python-pykwalify.hash
new file mode 100644
index 0000000000..6ddfb6306a
--- /dev/null
+++ b/package/python-pykwalify/python-pykwalify.hash
@@ -0,0 +1,6 @@
+# md5, sha256 from https://pypi.org/pypi/pykwalify/json
+md5  153197598f8508a49aefc0f44156c2b8  pykwalify-1.8.0.tar.gz
+sha256  796b2ad3ed4cb99b88308b533fb2f559c30fa6efb4fa9fda11347f483d245884  pykwalify-1.8.0.tar.gz
+# Locally computed sha256 checksums
+sha256  626fafd952ab0345edc227f2d565835fe1fd14067ae0d635ee3e47289b773dc4  LICENSE
+sha256  f89f247ddd2b9fdff655668148da4b6feaa9175fa44dd244d233006d0f551cd5  docs/license.rst
diff --git a/package/python-pykwalify/python-pykwalify.mk b/package/python-pykwalify/python-pykwalify.mk
new file mode 100644
index 0000000000..8a0bc6a227
--- /dev/null
+++ b/package/python-pykwalify/python-pykwalify.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# python-pykwalify
+#
+################################################################################
+
+PYTHON_PYKWALIFY_VERSION = 1.8.0
+PYTHON_PYKWALIFY_SOURCE = pykwalify-$(PYTHON_PYKWALIFY_VERSION).tar.gz
+PYTHON_PYKWALIFY_SITE = https://files.pythonhosted.org/packages/d5/77/2d6849510dbfce5f74f1f69768763630ad0385ad7bb0a4f39b55de3920c7
+PYTHON_PYKWALIFY_SETUP_TYPE = setuptools
+PYTHON_PYKWALIFY_LICENSE = MIT
+PYTHON_PYKWALIFY_LICENSE_FILES = LICENSE docs/license.rst
+PYTHON_PYKWALIFY_DEPENDENCIES = \
+	python-dateutil \
+	python-docopt \
+	python-ruamel-yaml
+HOST_PYTHON_PYKWALIFY_DEPENDENCIES = \
+	host-python-dateutil \
+	host-python-docopt \
+	host-python-ruamel-yaml
+
+$(eval $(python-package))
+$(eval $(host-python-package))
diff --git a/package/python-ruamel-yaml/python-ruamel-yaml.mk b/package/python-ruamel-yaml/python-ruamel-yaml.mk
index a6fed3bc2c..4f5691c981 100644
--- a/package/python-ruamel-yaml/python-ruamel-yaml.mk
+++ b/package/python-ruamel-yaml/python-ruamel-yaml.mk
@@ -14,3 +14,4 @@ PYTHON_RUAMEL_YAML_CPE_ID_VENDOR = ruamel.yaml_project
 PYTHON_RUAMEL_YAML_CPE_ID_PRODUCT = ruamel.yaml
 
 $(eval $(python-package))
+$(eval $(host-python-package))
-- 
2.39.2 (Apple Git-143)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-08-21 17:58 [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake Charles Hardin
@ 2023-08-21 22:13 ` Thomas Petazzoni via buildroot
  2023-08-21 23:45   ` Charles Hardin
  2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
  1 sibling, 1 reply; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-21 22:13 UTC (permalink / raw)
  To: Charles Hardin; +Cc: Alvaro G . M, Asaf Kahlon, buildroot

Hello Charles,

On Mon, 21 Aug 2023 10:58:28 -0700
Charles Hardin <ckhardin@gmail.com> wrote:

> When building zephyr based firmware, the cmake integrates with
> python scripts that can be run using the buildroot host-python
> dependencies. This is useful for the sdk setups and associated
> build steps for the firmware. In this use-case, a buildroot
> external project can be setup with recipes to build firmware
> images using eabi toolchains and the linux controller software
> to talk to those firmware images using one SDK. This might not
> be overtly obvious from the patches.

Could you clarify a bit what you call "zephyr cmake" and the use case
for this?

> Add the required host packages and additional pykwalify

This needs to be split into multiple patches, one per package affected.
But I think we also need to understand the bigger picture of what this
is useful for.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-08-21 22:13 ` Thomas Petazzoni via buildroot
@ 2023-08-21 23:45   ` Charles Hardin
  2023-08-22 17:57     ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 11+ messages in thread
From: Charles Hardin @ 2023-08-21 23:45 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Alvaro G . M, Asaf Kahlon, buildroot


[-- Attachment #1.1: Type: text/plain, Size: 2393 bytes --]

inline

On Mon, Aug 21, 2023 at 3:13 PM Thomas Petazzoni <
thomas.petazzoni@bootlin.com> wrote:

> Hello Charles,
>
> On Mon, 21 Aug 2023 10:58:28 -0700
> Charles Hardin <ckhardin@gmail.com> wrote:
>
> > When building zephyr based firmware, the cmake integrates with
> > python scripts that can be run using the buildroot host-python
> > dependencies. This is useful for the sdk setups and associated
> > build steps for the firmware. In this use-case, a buildroot
> > external project can be setup with recipes to build firmware
> > images using eabi toolchains and the linux controller software
> > to talk to those firmware images using one SDK. This might not
> > be overtly obvious from the patches.
>
> Could you clarify a bit what you call "zephyr cmake" and the use case
> for this?
>

https://github.com/zephyrproject-rtos

The build is cmake derived but relies on calling into some python scripts to
generate some build dependencies

https://github.com/zephyrproject-rtos/zephyr/blob/main/scripts/requirements-base.txt


>
> > Add the required host packages and additional pykwalify
>
> This needs to be split into multiple patches, one per package affected.
> But I think we also need to understand the bigger picture of what this
> is useful for.
>

So, we have various RTOS MCUs that are hooked up into linux controllers,
and this is just a simple hook so that the same SDK can be handled to build
both firmware for something like an STM32 and a Raspberry-pi

Assume a reference to
https://gist.github.com/titouanc/ea0685d9cd8592deb1c49d48e33b3eee to add
the gcc eabi toolchain has been done in an external package, with the
patches above we can actually build both firmware and the drivers in
buildroot from one tree with external recipes like below

env PATH=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/bin:$PATH cmake
\

    -DCMAKE_TOOLCHAIN_FILE=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake
\


-DARMGNU_GCC_TOOLCHAIN_PREFIX="/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/gcc-arm-none-eabi"
\

    -DCMAKE_BUILD_TYPE=Debug \

        ../buildroot-external

make VERBOSE=1 -j$(nproc)



>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>

[-- Attachment #1.2: Type: text/html, Size: 6134 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies
  2023-08-21 17:58 [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake Charles Hardin
  2023-08-21 22:13 ` Thomas Petazzoni via buildroot
@ 2023-08-22  1:33 ` Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 2/4] package/python-docopt: " Charles Hardin
                     ` (2 more replies)
  1 sibling, 3 replies; 11+ messages in thread
From: Charles Hardin @ 2023-08-22  1:33 UTC (permalink / raw)
  To: buildroot; +Cc: Charles Hardin, Alvaro G . M, Thomas Petazzoni, Asaf Kahlon

A host package for build support needs the dateutil module and
so enable the dependency.

Signed-off-by: Charles Hardin <ckhardin@gmail.com>
---
 package/python-dateutil/python-dateutil.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/python-dateutil/python-dateutil.mk b/package/python-dateutil/python-dateutil.mk
index b75f510bce..d45a047ba8 100644
--- a/package/python-dateutil/python-dateutil.mk
+++ b/package/python-dateutil/python-dateutil.mk
@@ -10,5 +10,7 @@ PYTHON_DATEUTIL_SETUP_TYPE = setuptools
 PYTHON_DATEUTIL_LICENSE = BSD-3-Clause
 PYTHON_DATEUTIL_LICENSE_FILES = LICENSE
 PYTHON_DATEUTIL_DEPENDENCIES = host-python-setuptools-scm
+HOST_PYTHON_DATEUTIL_DEPENDENCIES = host-python-setuptools-scm host-python-six
 
 $(eval $(python-package))
+$(eval $(host-python-package))
-- 
2.39.2 (Apple Git-143)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2 2/4] package/python-docopt: add host python package for dependencies
  2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
@ 2023-08-22  1:33   ` Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 3/4] package/python-ruamel-yaml: " Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 4/4] package/python-pykwalify: add required package for zephyr cmake Charles Hardin
  2 siblings, 0 replies; 11+ messages in thread
From: Charles Hardin @ 2023-08-22  1:33 UTC (permalink / raw)
  To: buildroot; +Cc: Charles Hardin, Alvaro G . M, Thomas Petazzoni, Asaf Kahlon

A host package like pykwalify needs the docopt module for buid
support and so enable the dependency.

Signed-off-by: Charles Hardin <ckhardin@gmail.com>
---
 package/python-docopt/python-docopt.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/python-docopt/python-docopt.mk b/package/python-docopt/python-docopt.mk
index f87d2f85a6..d326f4f0aa 100644
--- a/package/python-docopt/python-docopt.mk
+++ b/package/python-docopt/python-docopt.mk
@@ -11,3 +11,4 @@ PYTHON_DOCOPT_LICENSE_FILES = LICENSE-MIT
 PYTHON_DOCOPT_SETUP_TYPE = setuptools
 
 $(eval $(python-package))
+$(eval $(host-python-package))
-- 
2.39.2 (Apple Git-143)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2 3/4] package/python-ruamel-yaml: add host python package for dependencies
  2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 2/4] package/python-docopt: " Charles Hardin
@ 2023-08-22  1:33   ` Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 4/4] package/python-pykwalify: add required package for zephyr cmake Charles Hardin
  2 siblings, 0 replies; 11+ messages in thread
From: Charles Hardin @ 2023-08-22  1:33 UTC (permalink / raw)
  To: buildroot; +Cc: Charles Hardin, Alvaro G . M, Thomas Petazzoni, Asaf Kahlon

A host package like pykwalify needs to the ruamel module for build
support and so enable the dependency.

Signed-off-by: Charles Hardin <ckhardin@gmail.com>
---
 package/python-ruamel-yaml/python-ruamel-yaml.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/python-ruamel-yaml/python-ruamel-yaml.mk b/package/python-ruamel-yaml/python-ruamel-yaml.mk
index a6fed3bc2c..4f5691c981 100644
--- a/package/python-ruamel-yaml/python-ruamel-yaml.mk
+++ b/package/python-ruamel-yaml/python-ruamel-yaml.mk
@@ -14,3 +14,4 @@ PYTHON_RUAMEL_YAML_CPE_ID_VENDOR = ruamel.yaml_project
 PYTHON_RUAMEL_YAML_CPE_ID_PRODUCT = ruamel.yaml
 
 $(eval $(python-package))
+$(eval $(host-python-package))
-- 
2.39.2 (Apple Git-143)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v2 4/4] package/python-pykwalify: add required package for zephyr cmake
  2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 2/4] package/python-docopt: " Charles Hardin
  2023-08-22  1:33   ` [Buildroot] [PATCH v2 3/4] package/python-ruamel-yaml: " Charles Hardin
@ 2023-08-22  1:33   ` Charles Hardin
  2 siblings, 0 replies; 11+ messages in thread
From: Charles Hardin @ 2023-08-22  1:33 UTC (permalink / raw)
  To: buildroot
  Cc: Charles Hardin, Asaf Kahlon, Alvaro G . M, Charles Hardin,
	Thomas Petazzoni

From: Charles Hardin <charles.hardin@chargepoint.com>

When building zephyrproject-rtos based firmware, the cmake
integrates with python scripts that can be run using the buildroot
host-python dependencies. This is useful for the sdk setups and
associated build steps for the firmware.

See https://github.com/zephyrproject-rtos/zephyr for the build
steps that are used in the cmake and the requirements are
satisfied for the majority of build minus this package.

Signed-off-by: Charles Hardin <ckhardin@gmail.com>
---
 package/Config.in                             |  1 +
 package/python-pykwalify/Config.in            |  9 ++++++++
 .../python-pykwalify/python-pykwalify.hash    |  6 +++++
 package/python-pykwalify/python-pykwalify.mk  | 23 +++++++++++++++++++
 4 files changed, 39 insertions(+)
 create mode 100644 package/python-pykwalify/Config.in
 create mode 100644 package/python-pykwalify/python-pykwalify.hash
 create mode 100644 package/python-pykwalify/python-pykwalify.mk

diff --git a/package/Config.in b/package/Config.in
index 54cddc3914..8eb6c2bf37 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1225,6 +1225,7 @@ menu "External python modules"
 	source "package/python-pyicu/Config.in"
 	source "package/python-pyinotify/Config.in"
 	source "package/python-pyjwt/Config.in"
+	source "package/python-pykwalify/Config.in"
 	source "package/python-pylibfdt/Config.in"
 	source "package/python-pylibftdi/Config.in"
 	source "package/python-pylru/Config.in"
diff --git a/package/python-pykwalify/Config.in b/package/python-pykwalify/Config.in
new file mode 100644
index 0000000000..03afe31865
--- /dev/null
+++ b/package/python-pykwalify/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PYTHON_PYKWALIFY
+	bool "python-pykwalify"
+	select BR2_PACKAGE_PYTHON_DATEUTIL # runtime
+	select BR2_PACKAGE_PYTHON_DOCOPT # runtime
+	select BR2_PACKAGE_PYTHON_RUAMEL_YAML # runtime
+	help
+	  Python lib/cli for JSON/YAML schema validation.
+
+	  http://github.com/grokzen/pykwalify
diff --git a/package/python-pykwalify/python-pykwalify.hash b/package/python-pykwalify/python-pykwalify.hash
new file mode 100644
index 0000000000..6ddfb6306a
--- /dev/null
+++ b/package/python-pykwalify/python-pykwalify.hash
@@ -0,0 +1,6 @@
+# md5, sha256 from https://pypi.org/pypi/pykwalify/json
+md5  153197598f8508a49aefc0f44156c2b8  pykwalify-1.8.0.tar.gz
+sha256  796b2ad3ed4cb99b88308b533fb2f559c30fa6efb4fa9fda11347f483d245884  pykwalify-1.8.0.tar.gz
+# Locally computed sha256 checksums
+sha256  626fafd952ab0345edc227f2d565835fe1fd14067ae0d635ee3e47289b773dc4  LICENSE
+sha256  f89f247ddd2b9fdff655668148da4b6feaa9175fa44dd244d233006d0f551cd5  docs/license.rst
diff --git a/package/python-pykwalify/python-pykwalify.mk b/package/python-pykwalify/python-pykwalify.mk
new file mode 100644
index 0000000000..8a0bc6a227
--- /dev/null
+++ b/package/python-pykwalify/python-pykwalify.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# python-pykwalify
+#
+################################################################################
+
+PYTHON_PYKWALIFY_VERSION = 1.8.0
+PYTHON_PYKWALIFY_SOURCE = pykwalify-$(PYTHON_PYKWALIFY_VERSION).tar.gz
+PYTHON_PYKWALIFY_SITE = https://files.pythonhosted.org/packages/d5/77/2d6849510dbfce5f74f1f69768763630ad0385ad7bb0a4f39b55de3920c7
+PYTHON_PYKWALIFY_SETUP_TYPE = setuptools
+PYTHON_PYKWALIFY_LICENSE = MIT
+PYTHON_PYKWALIFY_LICENSE_FILES = LICENSE docs/license.rst
+PYTHON_PYKWALIFY_DEPENDENCIES = \
+	python-dateutil \
+	python-docopt \
+	python-ruamel-yaml
+HOST_PYTHON_PYKWALIFY_DEPENDENCIES = \
+	host-python-dateutil \
+	host-python-docopt \
+	host-python-ruamel-yaml
+
+$(eval $(python-package))
+$(eval $(host-python-package))
-- 
2.39.2 (Apple Git-143)

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-08-21 23:45   ` Charles Hardin
@ 2023-08-22 17:57     ` Thomas Petazzoni via buildroot
  2023-08-22 18:02       ` Charles Hardin
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-08-22 17:57 UTC (permalink / raw)
  To: Charles Hardin; +Cc: Alvaro G . M, Asaf Kahlon, buildroot

Hello Charles,

On Mon, 21 Aug 2023 16:45:23 -0700
Charles Hardin <ckhardin@gmail.com> wrote:

> https://github.com/zephyrproject-rtos

Yes, I know what Zephyr is :-)

> The build is cmake derived but relies on calling into some python scripts to
> generate some build dependencies
> 
> https://github.com/zephyrproject-rtos/zephyr/blob/main/scripts/requirements-base.txt

OK.

> So, we have various RTOS MCUs that are hooked up into linux controllers,
> and this is just a simple hook so that the same SDK can be handled to build
> both firmware for something like an STM32 and a Raspberry-pi

If I rephrase this: you want to use Buildroot to build the Zephyr
firmware for your STM32 micro-controller, alongside with the Linux
system running on the RaspberryPi?

> Assume a reference to
> https://gist.github.com/titouanc/ea0685d9cd8592deb1c49d48e33b3eee to add
> the gcc eabi toolchain has been done in an external package, with the
> patches above we can actually build both firmware and the drivers in
> buildroot from one tree with external recipes like below

Note: this gcc eabi toolchain is now in Buildroot upstream, no need to
add it as an external package.

> env PATH=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/bin:$PATH cmake
> \
> 
>     -DCMAKE_TOOLCHAIN_FILE=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake
> \
> 
> 
> -DARMGNU_GCC_TOOLCHAIN_PREFIX="/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/gcc-arm-none-eabi"
> \
> 
>     -DCMAKE_BUILD_TYPE=Debug \
> 
>         ../buildroot-external

Not sure to really follow in which projects this cmake command is used?
To build Zephyr?

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-08-22 17:57     ` Thomas Petazzoni via buildroot
@ 2023-08-22 18:02       ` Charles Hardin
  2023-09-21 20:03         ` Arnout Vandecappelle via buildroot
  0 siblings, 1 reply; 11+ messages in thread
From: Charles Hardin @ 2023-08-22 18:02 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Alvaro G . M, Asaf Kahlon, buildroot

Thomas,

> On Aug 22, 2023, at 10:57 AM, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> 
> Hello Charles,
> 
>> On Mon, 21 Aug 2023 16:45:23 -0700
>> Charles Hardin <ckhardin@gmail.com> wrote:
>> 
>> https://github.com/zephyrproject-rtos
> 
> Yes, I know what Zephyr is :-)
> 
>> The build is cmake derived but relies on calling into some python scripts to
>> generate some build dependencies
>> 
>> https://github.com/zephyrproject-rtos/zephyr/blob/main/scripts/requirements-base.txt
> 
> OK.
> 
>> So, we have various RTOS MCUs that are hooked up into linux controllers,
>> and this is just a simple hook so that the same SDK can be handled to build
>> both firmware for something like an STM32 and a Raspberry-pi
> 
> If I rephrase this: you want to use Buildroot to build the Zephyr
> firmware for your STM32 micro-controller, alongside with the Linux
> system running on the RaspberryPi?
> 

Yes, and we are doing this today with these patches.

>> Assume a reference to
>> https://gist.github.com/titouanc/ea0685d9cd8592deb1c49d48e33b3eee to add
>> the gcc eabi toolchain has been done in an external package, with the
>> patches above we can actually build both firmware and the drivers in
>> buildroot from one tree with external recipes like below
> 
> Note: this gcc eabi toolchain is now in Buildroot upstream, no need to
> add it as an external package.
> 

Thanks 

>> env PATH=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/bin:$PATH cmake
>> \
>> 
>>    -DCMAKE_TOOLCHAIN_FILE=/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/buildroot/toolchainfile.cmake
>> \
>> 
>> 
>> -DARMGNU_GCC_TOOLCHAIN_PREFIX="/opt/sdk/aarch64-buildroot-linux-gnu_sdk-buildroot/share/gcc-arm-none-eabi"
>> \
>> 
>>    -DCMAKE_BUILD_TYPE=Debug \
>> 
>>        ../buildroot-external
> 
> Not sure to really follow in which projects this cmake command is used?
> To build Zephyr?
> 

There is a custom cmake file to do the zephyr build, so make does the buildroot build and we can use cmake for the zephyr build.

It is not out of the box but pretty simple glue to make it work.

> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-08-22 18:02       ` Charles Hardin
@ 2023-09-21 20:03         ` Arnout Vandecappelle via buildroot
  2023-09-21 22:05           ` Yann E. MORIN
  0 siblings, 1 reply; 11+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2023-09-21 20:03 UTC (permalink / raw)
  To: Charles Hardin, Thomas Petazzoni; +Cc: buildroot, Asaf Kahlon, Alvaro G . M



On 22/08/2023 20:02, Charles Hardin wrote:
> Thomas,
> 
>> On Aug 22, 2023, at 10:57 AM, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
>>
>> Hello Charles,
>>
>>> On Mon, 21 Aug 2023 16:45:23 -0700
>>> Charles Hardin <ckhardin@gmail.com> wrote:
[snip]
>>> So, we have various RTOS MCUs that are hooked up into linux controllers,
>>> and this is just a simple hook so that the same SDK can be handled to build
>>> both firmware for something like an STM32 and a Raspberry-pi
>>
>> If I rephrase this: you want to use Buildroot to build the Zephyr
>> firmware for your STM32 micro-controller, alongside with the Linux
>> system running on the RaspberryPi?
>>
> 
> Yes, and we are doing this today with these patches.

  Honestly, I don't know if we want to go in this direction. If Zephyr doesn't 
give you the possibility to do "from scratch" builds, then in this day and age 
it's more appropriate to create a container image for your build environment 
IMHO. There's something to be said for including host packages that are likely 
to be used in post-build/post-image scripts, but for building a completely 
different OS, that is going a little far IMHO.

  Specifically for Python packages, I also think it's much more appropriate to 
use poetry to control them for the host. That way we just have to provide 
host-python-poetry, and the post-build/post-image scripts can take care of 
installing all the needed python tools at the exact version you need, controlled 
by a lock file.

  In my opinion, even including those arm-none-eabi etc. compilers in Buildroot 
was going a bit too far already. But I guess that that ship has sailed :-)


  Regards,
  Arnout


[snip]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake
  2023-09-21 20:03         ` Arnout Vandecappelle via buildroot
@ 2023-09-21 22:05           ` Yann E. MORIN
  0 siblings, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2023-09-21 22:05 UTC (permalink / raw)
  To: Arnout Vandecappelle
  Cc: Charles Hardin, Alvaro G . M, Asaf Kahlon, Thomas Petazzoni,
	buildroot

Arnout, Charles, All,

On 2023-09-21 22:03 +0200, Arnout Vandecappelle via buildroot spake thusly:
> On 22/08/2023 20:02, Charles Hardin wrote:
> >>On Aug 22, 2023, at 10:57 AM, Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:
> >>>On Mon, 21 Aug 2023 16:45:23 -0700
> >>>Charles Hardin <ckhardin@gmail.com> wrote:
> >>>So, we have various RTOS MCUs that are hooked up into linux controllers,
> >>>and this is just a simple hook so that the same SDK can be handled to build
> >>>both firmware for something like an STM32 and a Raspberry-pi
> >>If I rephrase this: you want to use Buildroot to build the Zephyr
> >>firmware for your STM32 micro-controller, alongside with the Linux
> >>system running on the RaspberryPi?
> >Yes, and we are doing this today with these patches.
>  Honestly, I don't know if we want to go in this direction. If Zephyr
> doesn't give you the possibility to do "from scratch" builds, then in this
> day and age it's more appropriate to create a container image for your build
> environment IMHO. There's something to be said for including host packages
> that are likely to be used in post-build/post-image scripts, but for
> building a completely different OS, that is going a little far IMHO.

I concur.

I believe in this case that external projects are better suited to
handle the nitty-gritty details of running those buildsystems, even if,
as Arnout suggests, that is wrapped in a docker image. With proper
CI/CD, it is easy to construct pipelines that build those "other OS"
stuff, export their artefacts for followup Buildroot-based jobs that
integrate those artefacts (either as wrapping package that jsut instlla
binary blob) or as rootfs overlays, or from post-build scripts.

I have marked the series as rejected in patchwork.

>  Specifically for Python packages, I also think it's much more appropriate
> to use poetry to control them for the host. That way we just have to provide
> host-python-poetry, and the post-build/post-image scripts can take care of
> installing all the needed python tools at the exact version you need,
> controlled by a lock file.
> 
>  In my opinion, even including those arm-none-eabi etc. compilers in
> Buildroot was going a bit too far already. But I guess that that ship has
> sailed :-)

I also heartily agree.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2023-09-21 22:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-21 17:58 [Buildroot] [PATCH 1/1] package/python-pykwalify: add required package for zephyr cmake Charles Hardin
2023-08-21 22:13 ` Thomas Petazzoni via buildroot
2023-08-21 23:45   ` Charles Hardin
2023-08-22 17:57     ` Thomas Petazzoni via buildroot
2023-08-22 18:02       ` Charles Hardin
2023-09-21 20:03         ` Arnout Vandecappelle via buildroot
2023-09-21 22:05           ` Yann E. MORIN
2023-08-22  1:33 ` [Buildroot] [PATCH v2 1/4] package/python-dateutil: add host python package for dependencies Charles Hardin
2023-08-22  1:33   ` [Buildroot] [PATCH v2 2/4] package/python-docopt: " Charles Hardin
2023-08-22  1:33   ` [Buildroot] [PATCH v2 3/4] package/python-ruamel-yaml: " Charles Hardin
2023-08-22  1:33   ` [Buildroot] [PATCH v2 4/4] package/python-pykwalify: add required package for zephyr cmake Charles Hardin

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