-
Notifications
You must be signed in to change notification settings - Fork 17
Description
clone of the master branch
Environment
Ubuntu 22.04.2 LTS
GNU Make 4.3
Cmake 3.22.1
Ninja 1.10.1
GCC 11.4.0
Commands ran
git clone https://github.com/SiliconLabsSoftware/z-wave-protocol-controller
cd z-wave-protocol-controller
./helper.mk setup
The first failure is when I run ./helper.mk setup
. the package python3-linkify-it
doesn't exist for Ubuntu 22.04.2 LTS . I edited the helper.mk
file and commented out that package. I installed the package manually using pip3 install linkify-it-py
and I ran the setup again, this time it completed.
as per the readme file I ran ./helper.mk run
after the setup was complete and this failed stating
I decide to try ./helper.mk build
and this command started doing more work but ended up failing with the following error
FAILED: unifysdk-populate-prefix/src/unifysdk-populate-stamp/unifysdk-populate-patch ~/z-wave-protocol-controller/build/_deps/unifysdk-subbuild/unifysdk-populate-prefix/src/unifysdk-populate-stamp/unifysdk-populate-patch
cd ~/z-wave-protocol-controller/build/_deps/unifysdk-src && /usr/bin/git -C ~/z-wave-protocol-controller/build/_deps/unifysdk-src am --ignore-whitespace ~/z-wave-protocol-controller/patches/UnifySDK/0001-build-Relax-compiler-warnings-to-support-more-compil.patch ~/z-wave-protocol-controller/patches/UnifySDK/0002-tests-components-testframework-libs-cmock-Remove-ven.patch ~/z-wave-protocol-controller/patches/UnifySDK/0003-tests-p-cmock-Add-0001-Added-array_as_byte-config-op.patch ~/z-wave-protocol-controller/patches/UnifySDK/0004-tests-build-cmake-Use-Upstream-cmock.patch ~/z-wave-protocol-controller/patches/UnifySDK/0005-git-Remove-.gitattributes.patch ~/z-wave-protocol-controller/patches/UnifySDK/0006-git-docker-uic-resources-Removed-as-not-part-of-Unif.patch && /usr/bin/cmake -E touch ~/z-wave-protocol-controller/build/_deps/unifysdk-subbuild/unifysdk-populate-prefix/src/unifysdk-populate-stamp/unifysdk-populate-patch
Committer identity unknown
I fixed that error by running the following commands
git config --global user.email "*******@*******.com"
git config --global user.name "*****************"
When I ran the ./helper.mk build
command again it said the build was up to date which I know it wasn't because it had failed.
I ran ./helper.mk clean
only to find out that command is not available. OYE!!! This is starting to become a big headache now...
After spending some time reading the helper.mk
build script it appeared that I should be able to compile at this point using CMake directly... So I tried that out running cmake -G Ninja
. This completed successfully without any errors but there was a plethora of warnings. See attached file.
Then I ran Ninja to compile and the attached file below is the output from that.
Once again a plethora of warnings and the build failed with the following error
FAILED: applications/zpc/components/zwave_api/CMakeFiles/zwapi_protocol_mem_mock.dir/mocks/zwapi_protocol_mem_mock.c.o
/usr/bin/cc -DUNITY_DOUBLE_PRECISION=1e-12f -DUNITY_INCLUDE_DOUBLE -DUNITY_SUPPORT_64 -I~/z-wave-protocol-controller/include -I~/z-wave-protocol-controller/applications/zpc/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_config/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_gbl_interface/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_definitions/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_attribute_store/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_datastore/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_dotdot_attribute_store/zap-generated/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_dotdot/zap-generated/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_smartstart_management/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/core -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/platform/posix -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_attribute_resolver/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/core/sys -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_main_fd/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_dotdot_attribute_store/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_dotdot_mqtt/zap-generated/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_mqtt/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_application_monitoring/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_stdin/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_ota/platform/posix -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_attribute_mapper/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_attribute_utils/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_ota/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_dotdot_mqtt/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_main/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_rust/unify_middleware/include -I~/z-wave-protocol-controller/_deps/cmock-src/src -I~/z-wave-protocol-controller/_deps/cmock-src/vendor/unity/src -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/testframework/include -I~/z-wave-protocol-controller/applications/zpc/components/zwave/zwave_definitions/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/include -I~/z-wave-protocol-controller/_deps/unifysdk-build/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_attribute_poll/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_log/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_log/../../include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/core/dev -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/core/lib -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_contiki/cpu/native -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/uic_multi_invoke/include -I/../../include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_node_state_monitor/include -I~/z-wave-protocol-controller/_deps/unifysdk-src/components/unify_validator/include -pipe -Wall -g -std=gnu99 -MD -MT applications/zpc/components/zwave_api/CMakeFiles/zwapi_protocol_mem_mock.dir/mocks/zwapi_protocol_mem_mock.c.o -MF applications/zpc/components/zwave_api/CMakeFiles/zwapi_protocol_mem_mock.dir/mocks/zwapi_protocol_mem_mock.c.o.d -o applications/zpc/components/zwave_api/CMakeFiles/zwapi_protocol_mem_mock.dir/mocks/zwapi_protocol_mem_mock.c.o -c ~/z-wave-protocol-controller/applications/zpc/components/zwave_api/mocks/zwapi_protocol_mem_mock.c
In file included from ~/z-wave-protocol-controller/applications/zpc/components/zwave_api/mocks/zwapi_protocol_mem_mock.c:6:
~/z-wave-protocol-controller/applications/zpc/components/zwave_api/mocks/zwapi_protocol_mem_mock.h:6:10: fatal error: zwapi_protocol_mem.h: No such file or directory
6 | #include "zwapi_protocol_mem.h"
|
There are some issues with the build system as it is seen.
- The patches that are applied have reference to a repository that no longer exists, not sure what is going on there.
- I don't understand why there are so many dependencies that have to be installed considering this library only uses the stdlib for accessing the serial port and for timekeeping functions.
- I feel that there are dependencies being installed that never get used. This increases the amount of time it takes to compile but ti also adds entry points for all kinds of possible issues. The biggest issue is an OS's package manager not being updated with current builds of different libraries.
If there is anyone that has managed to compile this library and can shed some insight on how to do it (without using docker) it would be greatly appreciated.