[v5] package/canopenterm: new package

Message ID 20250707055824.49575-1-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • [v5] package/canopenterm: new package
Related show

Commit Message

Dario Binacchi July 7, 2025, 5:58 a.m. UTC
CANopenTerm is an open-source tool for developing, testing, and
analyzing CANopen CC networks and devices. It provides a technical,
no-nonsense solution for professionals working with CAN CC-based
networks. Additionally, it supports SAE J1939 and OBD-II protocols,
making it versatile for various applications.

Version v1.0.10 was chosen because it is the last one requiring SDL2.
Indeed version v1.0.11 depends on SDL3.

Tested on STM32MP257F-EV1

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

---

Changes v4 -> v5:
 - Drop patch 1/2 "package/pocketpy: new package" from the series
   because already merged.
 - Change 'Upstream:' reference in the 0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch.
   The patch is now merged.
 - Use 'depends on BR2_PACKAGE_LUA' instead of select in Config.in

Changes v2 -> v3:
 - Replace depends on with select in Config.in
 - Add required depends on based on the depends on of the
   packages selected.
 - Drop CMAKE_VERBOSE_MAKEFILE annd CMAKE_FIND_DEBUG_MODE
   from canopenterm.mk

 DEVELOPERS                                    |  1 +
 package/Config.in                             |  1 +
 ...allation-when-BUILD_YOCTO-is-enabled.patch | 39 +++++++++++++++++++
 package/canopenterm/Config.in                 | 17 ++++++++
 package/canopenterm/canopenterm.hash          |  3 ++
 package/canopenterm/canopenterm.mk            | 15 +++++++
 6 files changed, 76 insertions(+)
 create mode 100644 package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
 create mode 100644 package/canopenterm/Config.in
 create mode 100644 package/canopenterm/canopenterm.hash
 create mode 100644 package/canopenterm/canopenterm.mk

Comments

Dario Binacchi Sept. 2, 2025, 6:15 a.m. UTC | #1
Hi all,

just a gentle ping regarding this patch.
It has not received any feedback so far, and I’d really appreciate a
review when you have a chance.

Thanks a lot for your time.

Best regards,
Dario

On Mon, Jul 7, 2025 at 7:58 AM Dario Binacchi
<dario.binacchi@amarulasolutions.com> wrote:
>
> CANopenTerm is an open-source tool for developing, testing, and
> analyzing CANopen CC networks and devices. It provides a technical,
> no-nonsense solution for professionals working with CAN CC-based
> networks. Additionally, it supports SAE J1939 and OBD-II protocols,
> making it versatile for various applications.
>
> Version v1.0.10 was chosen because it is the last one requiring SDL2.
> Indeed version v1.0.11 depends on SDL3.
>
> Tested on STM32MP257F-EV1
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>
> ---
>
> Changes v4 -> v5:
>  - Drop patch 1/2 "package/pocketpy: new package" from the series
>    because already merged.
>  - Change 'Upstream:' reference in the 0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch.
>    The patch is now merged.
>  - Use 'depends on BR2_PACKAGE_LUA' instead of select in Config.in
>
> Changes v2 -> v3:
>  - Replace depends on with select in Config.in
>  - Add required depends on based on the depends on of the
>    packages selected.
>  - Drop CMAKE_VERBOSE_MAKEFILE annd CMAKE_FIND_DEBUG_MODE
>    from canopenterm.mk
>
>  DEVELOPERS                                    |  1 +
>  package/Config.in                             |  1 +
>  ...allation-when-BUILD_YOCTO-is-enabled.patch | 39 +++++++++++++++++++
>  package/canopenterm/Config.in                 | 17 ++++++++
>  package/canopenterm/canopenterm.hash          |  3 ++
>  package/canopenterm/canopenterm.mk            | 15 +++++++
>  6 files changed, 76 insertions(+)
>  create mode 100644 package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
>  create mode 100644 package/canopenterm/Config.in
>  create mode 100644 package/canopenterm/canopenterm.hash
>  create mode 100644 package/canopenterm/canopenterm.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 899a3003cad0..477d643cee01 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -808,6 +808,7 @@ F:  configs/stm32f769_disco_sd_defconfig
>  F:     package/aespipe/
>  F:     package/armadillo/
>  F:     package/babeld/
> +F:     package/canopenterm/
>  F:     package/iana-assignments/
>  F:     package/inih/
>  F:     package/pocketpy/
> diff --git a/package/Config.in b/package/Config.in
> index 9a841082c676..b8030acd9774 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2469,6 +2469,7 @@ endif
>         source "package/c-icap-modules/Config.in"
>         source "package/can-utils/Config.in"
>         source "package/cannelloni/Config.in"
> +       source "package/canopenterm/Config.in"
>         source "package/casync/Config.in"
>         source "package/casync-nano/Config.in"
>         source "package/cfm/Config.in"
> diff --git a/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch b/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
> new file mode 100644
> index 000000000000..53206745dd13
> --- /dev/null
> +++ b/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
> @@ -0,0 +1,39 @@
> +From fc150187a2e2ce777e757405eb1d67235fc68d75 Mon Sep 17 00:00:00 2001
> +From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> +Date: Thu, 8 May 2025 15:24:38 +0200
> +Subject: [PATCH] Fix exe installation when BUILD_YOCTO is enabled
> +
> +While building CanopenTerm in Buildroot, with the BUILD_YOCTO option
> +enabled (yes, really :)), the following error is raised:
> +
> +CMake Error at output/build/canopenterm-1.0.10/cmake_install.cmake:114 (file):
> +  file INSTALL cannot find
> +  "buildroot/output/build/canopenterm-1.0.10/CANopenTerm":
> +  No such file or directory.
> +
> +Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> +Upstream: https://github.com/CANopenTerm/CANopenTerm/commit/fc150187a2e2ce777e757405eb1d67235fc68d75
> +---
> + cmake/os_linux.cmake | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/cmake/os_linux.cmake b/cmake/os_linux.cmake
> +index 7c1f8185b2a2..f149bd03fe92 100644
> +--- a/cmake/os_linux.cmake
> ++++ b/cmake/os_linux.cmake
> +@@ -104,10 +104,10 @@ if (BUILD_YOCTO)
> +             DESTINATION /usr/share/CANopenTerm/scripts/utils
> +             FILES_MATCHING PATTERN "*")
> +
> +-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/CANopenTerm
> ++    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/export/CANopenTerm
> +             DESTINATION /usr/bin)
> +
> +-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/codb2json
> ++    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/export/codb2json
> +             DESTINATION /usr/bin)
> +
> +     return()
> +--
> +2.43.0
> +
> diff --git a/package/canopenterm/Config.in b/package/canopenterm/Config.in
> new file mode 100644
> index 000000000000..62dbecb37cd3
> --- /dev/null
> +++ b/package/canopenterm/Config.in
> @@ -0,0 +1,17 @@
> +config BR2_PACKAGE_CANOPENTERM
> +       bool "canopenterm"
> +       depends on BR2_INSTALL_LIBSTDCPP # pocketpy
> +       depends on BR2_PACKAGE_LUA
> +       depends on !BR2_STATIC_LIBS # pocketpy and SDL2
> +       select BR2_PACKAGE_CJSON
> +       select BR2_PACKAGE_INIH
> +       select BR2_PACKAGE_LIBSOCKETCAN
> +       select BR2_PACKAGE_POCKETPY
> +       select BR2_PACKAGE_READLINE
> +       select BR2_PACKAGE_SDL2
> +       help
> +         CANopenTerm is an open-source tool for developing,
> +         testing, and analyzing CANopen CC networks and
> +         devices.
> +
> +         https://github.com/CANopenTerm/CANopenTerm
> diff --git a/package/canopenterm/canopenterm.hash b/package/canopenterm/canopenterm.hash
> new file mode 100644
> index 000000000000..8c403e9bb6af
> --- /dev/null
> +++ b/package/canopenterm/canopenterm.hash
> @@ -0,0 +1,3 @@
> +# locally computed
> +sha256  9de6f472b749f08a5ea9a836604507cd56c71f818a4141a2b989423fbb7beb80  canopenterm-1.0.10.tar.gz
> +sha256  cc555368040b92e77b14289b367ccbebf88344367188862680d40cc885636d3a  LICENSE.md
> diff --git a/package/canopenterm/canopenterm.mk b/package/canopenterm/canopenterm.mk
> new file mode 100644
> index 000000000000..c3883ffef74d
> --- /dev/null
> +++ b/package/canopenterm/canopenterm.mk
> @@ -0,0 +1,15 @@
> +################################################################################
> +#
> +# canopenterm
> +#
> +################################################################################
> +
> +CANOPENTERM_VERSION = 1.0.10
> +CANOPENTERM_SITE = $(call github,CANopenTerm,CANopenTerm,v$(CANOPENTERM_VERSION))
> +CANOPENTERM_LICENSE = MIT
> +CANOPENTERM_LICENSE_FILES = LICENSE.md
> +CANOPENTERM_DEPENDENCIES = cjson inih libsocketcan lua pocketpy readline sdl2
> +
> +CANOPENTERM_CONF_OPTS = -DBUILD_YOCTO=ON
> +
> +$(eval $(cmake-package))
> --
> 2.43.0
>

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 899a3003cad0..477d643cee01 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -808,6 +808,7 @@  F:	configs/stm32f769_disco_sd_defconfig
 F:	package/aespipe/
 F:	package/armadillo/
 F:	package/babeld/
+F:	package/canopenterm/
 F:	package/iana-assignments/
 F:	package/inih/
 F:	package/pocketpy/
diff --git a/package/Config.in b/package/Config.in
index 9a841082c676..b8030acd9774 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2469,6 +2469,7 @@  endif
 	source "package/c-icap-modules/Config.in"
 	source "package/can-utils/Config.in"
 	source "package/cannelloni/Config.in"
+	source "package/canopenterm/Config.in"
 	source "package/casync/Config.in"
 	source "package/casync-nano/Config.in"
 	source "package/cfm/Config.in"
diff --git a/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch b/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
new file mode 100644
index 000000000000..53206745dd13
--- /dev/null
+++ b/package/canopenterm/0001-Fix-exe-installation-when-BUILD_YOCTO-is-enabled.patch
@@ -0,0 +1,39 @@ 
+From fc150187a2e2ce777e757405eb1d67235fc68d75 Mon Sep 17 00:00:00 2001
+From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Date: Thu, 8 May 2025 15:24:38 +0200
+Subject: [PATCH] Fix exe installation when BUILD_YOCTO is enabled
+
+While building CanopenTerm in Buildroot, with the BUILD_YOCTO option
+enabled (yes, really :)), the following error is raised:
+
+CMake Error at output/build/canopenterm-1.0.10/cmake_install.cmake:114 (file):
+  file INSTALL cannot find
+  "buildroot/output/build/canopenterm-1.0.10/CANopenTerm":
+  No such file or directory.
+
+Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Upstream: https://github.com/CANopenTerm/CANopenTerm/commit/fc150187a2e2ce777e757405eb1d67235fc68d75
+---
+ cmake/os_linux.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/os_linux.cmake b/cmake/os_linux.cmake
+index 7c1f8185b2a2..f149bd03fe92 100644
+--- a/cmake/os_linux.cmake
++++ b/cmake/os_linux.cmake
+@@ -104,10 +104,10 @@ if (BUILD_YOCTO)
+             DESTINATION /usr/share/CANopenTerm/scripts/utils
+             FILES_MATCHING PATTERN "*")
+ 
+-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/CANopenTerm
++    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/export/CANopenTerm
+             DESTINATION /usr/bin)
+ 
+-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/codb2json
++    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/export/codb2json
+             DESTINATION /usr/bin)
+ 
+     return()
+-- 
+2.43.0
+
diff --git a/package/canopenterm/Config.in b/package/canopenterm/Config.in
new file mode 100644
index 000000000000..62dbecb37cd3
--- /dev/null
+++ b/package/canopenterm/Config.in
@@ -0,0 +1,17 @@ 
+config BR2_PACKAGE_CANOPENTERM
+	bool "canopenterm"
+	depends on BR2_INSTALL_LIBSTDCPP # pocketpy
+	depends on BR2_PACKAGE_LUA
+	depends on !BR2_STATIC_LIBS # pocketpy and SDL2
+	select BR2_PACKAGE_CJSON
+	select BR2_PACKAGE_INIH
+	select BR2_PACKAGE_LIBSOCKETCAN
+	select BR2_PACKAGE_POCKETPY
+	select BR2_PACKAGE_READLINE
+	select BR2_PACKAGE_SDL2
+	help
+	  CANopenTerm is an open-source tool for developing,
+	  testing, and analyzing CANopen CC networks and
+	  devices.
+
+	  https://github.com/CANopenTerm/CANopenTerm
diff --git a/package/canopenterm/canopenterm.hash b/package/canopenterm/canopenterm.hash
new file mode 100644
index 000000000000..8c403e9bb6af
--- /dev/null
+++ b/package/canopenterm/canopenterm.hash
@@ -0,0 +1,3 @@ 
+# locally computed
+sha256  9de6f472b749f08a5ea9a836604507cd56c71f818a4141a2b989423fbb7beb80  canopenterm-1.0.10.tar.gz
+sha256  cc555368040b92e77b14289b367ccbebf88344367188862680d40cc885636d3a  LICENSE.md
diff --git a/package/canopenterm/canopenterm.mk b/package/canopenterm/canopenterm.mk
new file mode 100644
index 000000000000..c3883ffef74d
--- /dev/null
+++ b/package/canopenterm/canopenterm.mk
@@ -0,0 +1,15 @@ 
+################################################################################
+#
+# canopenterm
+#
+################################################################################
+
+CANOPENTERM_VERSION = 1.0.10
+CANOPENTERM_SITE = $(call github,CANopenTerm,CANopenTerm,v$(CANOPENTERM_VERSION))
+CANOPENTERM_LICENSE = MIT
+CANOPENTERM_LICENSE_FILES = LICENSE.md
+CANOPENTERM_DEPENDENCIES = cjson inih libsocketcan lua pocketpy readline sdl2
+
+CANOPENTERM_CONF_OPTS = -DBUILD_YOCTO=ON
+
+$(eval $(cmake-package))