[v4,2/2] package/canopenterm: new package

Message ID 20250610115502.2483804-2-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • [v4,1/2] package/pocketpy: new package
Related show

Commit Message

Dario Binacchi June 10, 2025, 11:55 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>
---
 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

'Julien Olivain' via Amarula Linux July 6, 2025, 3:24 p.m. UTC | #1
Hello Dario, All,

Le 10/06/2025 à 13:55, Dario Binacchi a écrit :
> 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>
> --->  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 46d24afceb71..d3ef898f3244 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -809,6 +809,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 9aad65488a6c..413ac3ef8b3c 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2467,6 +2467,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..55d15afbbc95
> --- /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/pull/95

This patch is now merged.

> +---
> + 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..04894db817b7
> --- /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_STATIC_LIBS # pocketpy and SDL2
> +	select BR2_PACKAGE_CJSON
> +	select BR2_PACKAGE_INIH
> +	select BR2_PACKAGE_LIBSOCKETCAN
> +	select BR2_PACKAGE_LUA

I was going to apply this patch but lua interpreter can't be selected this way.
The user must do a choice between lua 5.1, 5.3, 5.4 or luajit, so it should be a
"depends on".

Best regards,
Romain


> +	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))

To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.
Dario Binacchi July 6, 2025, 3:43 p.m. UTC | #2
Hello Romain,

On Sun, Jul 6, 2025 at 5:24 PM Romain Naour <romain.naour@smile.fr> wrote:
>
> Hello Dario, All,
>
> Le 10/06/2025 à 13:55, Dario Binacchi a écrit :
> > 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>
> > --->  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 46d24afceb71..d3ef898f3244 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -809,6 +809,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 9aad65488a6c..413ac3ef8b3c 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -2467,6 +2467,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..55d15afbbc95
> > --- /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/pull/95
>
> This patch is now merged.

Do I need change in:

Upstream: backport from
https://github.com/CANopenTerm/CANopenTerm/commit/fc150187a2e2ce777e757405eb1d67235fc68d75

?

The patch has been merged on v1.0.11, so I need to apply on v1.0.10,
the version chosen for Buildroot.

Thanks and regards,
Dario

>
> > +---
> > + 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..04894db817b7
> > --- /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_STATIC_LIBS # pocketpy and SDL2
> > +     select BR2_PACKAGE_CJSON
> > +     select BR2_PACKAGE_INIH
> > +     select BR2_PACKAGE_LIBSOCKETCAN
> > +     select BR2_PACKAGE_LUA
>
> I was going to apply this patch but lua interpreter can't be selected this way.
> The user must do a choice between lua 5.1, 5.3, 5.4 or luajit, so it should be a
> "depends on".
>
> Best regards,
> Romain
>
>
> > +     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))
>
'Julien Olivain' via Amarula Linux July 6, 2025, 3:49 p.m. UTC | #3
Hello Dario,

Le 06/07/2025 à 17:43, Dario Binacchi a écrit :
> Hello Romain,
> 
> On Sun, Jul 6, 2025 at 5:24 PM Romain Naour <romain.naour@smile.fr> wrote:
>>
>> Hello Dario, All,
>>
>> Le 10/06/2025 à 13:55, Dario Binacchi a écrit :
>>> 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>
>>> --->  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 46d24afceb71..d3ef898f3244 100644
>>> --- a/DEVELOPERS
>>> +++ b/DEVELOPERS
>>> @@ -809,6 +809,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 9aad65488a6c..413ac3ef8b3c 100644
>>> --- a/package/Config.in
>>> +++ b/package/Config.in
>>> @@ -2467,6 +2467,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..55d15afbbc95
>>> --- /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/pull/95
>>
>> This patch is now merged.
> 
> Do I need change in:
> 
> Upstream: backport from
> https://github.com/CANopenTerm/CANopenTerm/commit/fc150187a2e2ce777e757405eb1d67235fc68d75
> 
> ?

If you resend a new version of this patch, it would be great if the upstream
status is updated.
It's better when a patch is merged upstream than pending in a PR.

> 
> The patch has been merged on v1.0.11, so I need to apply on v1.0.10,
> the version chosen for Buildroot.

Indeed.

Best regards,
Romain


> 
> Thanks and regards,
> Dario
> 
>>
>>> +---
>>> + 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..04894db817b7
>>> --- /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_STATIC_LIBS # pocketpy and SDL2
>>> +     select BR2_PACKAGE_CJSON
>>> +     select BR2_PACKAGE_INIH
>>> +     select BR2_PACKAGE_LIBSOCKETCAN
>>> +     select BR2_PACKAGE_LUA
>>
>> I was going to apply this patch but lua interpreter can't be selected this way.
>> The user must do a choice between lua 5.1, 5.3, 5.4 or luajit, so it should be a
>> "depends on".
>>
>> Best regards,
>> Romain
>>
>>
>>> +     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))
>>
> 
> 

To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com.

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 46d24afceb71..d3ef898f3244 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -809,6 +809,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 9aad65488a6c..413ac3ef8b3c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2467,6 +2467,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..55d15afbbc95
--- /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/pull/95
+---
+ 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..04894db817b7
--- /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_STATIC_LIBS # pocketpy and SDL2
+	select BR2_PACKAGE_CJSON
+	select BR2_PACKAGE_INIH
+	select BR2_PACKAGE_LIBSOCKETCAN
+	select BR2_PACKAGE_LUA
+	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))