Page 1 of 1

Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Sunday 25 October 2020 2:00
by meal
Dear All,

The context is the following :
I have a Raspberry PI3 running Domoticz Version: 2020.1 (build 11835 compiled from the sources).
The configuration of the Domoticz Version running on Debian Stretch:
-Build Hash: d93f467a7-modified
- Compile Date: 2020-03-23 11:18:12
- dzVents Version: 3.0.1
- Python Version: 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516]

The objective is to upgrade the os from Stretch to Buster.

I have upgraded the os (https://pimylifeup.com/upgrade-raspbian ... an-buster/) and the process has been achieved successfully.
pi@domoticz:~/domoticz $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

However when I start domoticz manually after the reboot I get the following message
pi@domoticz:~/domoticz $ ./domoticz
./domoticz: /usr/lib/arm-linux-gnueabihf/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./domoticz)

It seems that the libcurl4 has been installed during the upgrade of the os and I am not able to install libcurl13 again via the commande line "sudo apt-get install libcurl3"

I would be grateful if someone has already faced the issue to help me sort that out.

Many thanks in advance

Best regards
Meal

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Sunday 25 October 2020 4:39
by waaren
meal wrote: Sunday 25 October 2020 2:00 I have a Raspberry PI3 running Domoticz Version: 2020.1 (build 11835 compiled from the sources).
I would be grateful if someone has already faced the issue to help me sort that out.
I guess the domoticz version you use is compiled locally when still on stretch and that is is dynamical linked to curl. Have you tried recompiling it under buster?

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Sunday 25 October 2020 8:20
by meal
Hello,

Yes you are right. My domoticz version has been compiled under stretch so far.

I will recompile it under Buster.

Would you be kind to provide me the latest recommandation to compile domoticz under Buster ?

I thank you in advance

BR
Meal

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Sunday 25 October 2020 20:27
by waaren
meal wrote: Sunday 25 October 2020 8:20 Would you be kind to provide me the latest recommandation to compile domoticz under Buster ?
Sure. It's all in this wiki page

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Monday 26 October 2020 23:07
by meal
Hello

I have performed the build of domoticz according to "https://www.domoticz.com/wiki/Build_Dom ... rom_source"

First cd /home/pi/DEV20200309/domoticz
Then git pull
Then cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
and finally make

I get the error "Python.h" not found as shown below.

[ 18%] Building CXX object CMakeFiles/domoticz.dir/main/EventSystem.cpp.o
In file included from /home/pi/DEV20200309/domoticz/main/../hardware/plugins/PythonObjects.h:4,
from /home/pi/DEV20200309/domoticz/main/../hardware/plugins/Plugins.h:6,
from /home/pi/DEV20200309/domoticz/main/EventSystem.cpp:41:
/home/pi/DEV20200309/domoticz/main/../hardware/plugins/DelayedLink.h:12:10: fatal error: Python.h: Aucun fichier ou dossier de ce type
#include <Python.h>
^~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/domoticz.dir/build.make:186: CMakeFiles/domoticz.dir/main/EventSystem.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:372: CMakeFiles/domoticz.dir/all] Error 2
make: *** [Makefile:169: all] Error 2

I made some investigation about the file "python.h" in the outcome of the execution of the command line "cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt"

pi@domoticz:~/DEV20200309/domoticz $ cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
-- Submodule update
-- LUA library found at: /usr/lib/arm-linux-gnueabihf/liblua5.3.a
-- Python3 includes found at: /usr/include/python3.5m
-- Building with I2C support
-- Building with SPI support
-- ###########################
-- Compiling Revision #12499
-- ###########################
-- Using builtin jsoncpp library
-- JsonCpp Version: 1.9.4
-- Using builtin Mosquitto library
-- WITH_DLT = OFF
-- Using builtin SQLite library
-- OPENSSL library found at: /usr/lib/arm-linux-gnueabihf/libssl.so;/usr/lib/arm-linux-gnueabihf/libcrypto.so
-- Linking against boost static libraries
-- BOOST includes found at: /usr/local/include
-- ZLIB library found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Curl library found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include/arm-linux-gnueabihf
-- CEREAL includes found at: /usr/include
-- LIBUSB library found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- OpenZWave library found at: /home/pi/DEV20200309/open-zwave/libopenzwave.a
-- OpenZWave includes found at: /home/pi/DEV20200309/open-zwave/cpp/src
-- GPIO is available
-- Found telldus-core (telldus-core.h) at : /usr/include
-- Found libtelldus-core at : /usr/lib/libtelldus-core.so, adding telldus support
-- Using precompiled headers
-- Using static libgcc/libstdc++
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/DEV20200309/domoticz

The command line "cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt" found the python3 include file at /usr/include/python3.5m.
However the os ugrade from Stretch to Buster upgraded also at the same time python3 from python3.5 to python3.7 as shown in the attached screen capture.
Screen Capture /usr/include directory
Screen Capture /usr/include directory
ScreenCapture 2020-10-26 223803.png (28.51 KiB) Viewed 2242 times
So I do not understand how the command line "cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt" found the python3 include file at /usr/include/python3.5m which does not exist any longer.

I would be grateful if you could advise me on the way to proceed.

Mant thanks in advance.

BR

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Tuesday 27 October 2020 0:14
by waaren
meal wrote: Monday 26 October 2020 23:07 I have performed the build of domoticz according to "https://www.domoticz.com/wiki/Build_Dom ... rom_source"
First cd /home/pi/DEV20200309/domoticz
I tested the installation process wiki on an Intel NUC and on a Raspberry (both buster) and it works without issues on both.

Did you also managed to do the steps before the git clone successfully ?

sudo apt-get install make ....
get and install cmake 3.16 or newer
get and install boost
etc..

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Wednesday 28 October 2020 2:59
by meal
Hello,

I have installed python3.5 via "sudo apt-get install python3.5-dev"

and went through the domoticz build process successfully .

I am now facing issues with openzwave with some nodes partially configured.

I investigated the topic and found a potential issue.

I compiled successfully the latest version of openzwave "Building OpenZWave Version 1.6-1392-gb0afd4c6 - 1.6.1392".

when launching the command line "cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt" for the build of domoticz it shows
-- OpenZWave library found at: /home/pi/DEV20200309/open-zwave/libopenzwave.a
-- OpenZWave includes found at: /home/pi/DEV20200309/open-zwave/cpp/src
which is correct.

However when starting domoticz I have in the log
2020-10-28 02:52:31.454 Status: OpenZWave: using config in: /home/pi/domoticz/Config/
2020-10-28 02:52:31.501 Status: OpenZWave: Starting...
2020-10-28 02:52:31.501 Status: OpenZWave: Version: 1.6-1052-gf3920e88

The version displayed in the log is not consistent with the compiled openzwave libray

I would be helpful for me to have some hints on the reason this happened.

Many thanks in advance

BR

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Wednesday 28 October 2020 7:41
by waaren
meal wrote: Wednesday 28 October 2020 2:59 I have installed python3.5 via "sudo apt-get install python3.5-dev"
According to the wiki you should have done

Code: Select all

sudo apt-get install make gcc g++ libssl-dev git libcurl4-gnutls-dev libusb-dev python3-dev zlib1g-dev libcereal-dev liblua5.3-dev uthash-dev
This would install the latest version of python3-dev (3.7.3-1 on buster or 3.8.2-3 on bullseye)
I compiled successfully the latest version of openzwave "Building OpenZWave Version 1.6-1392-gb0afd4c6 - 1.6.1392".

when launching the command line "cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt" for the build of domoticz it shows
-- OpenZWave library found at: /home/pi/DEV20200309/open-zwave/libopenzwave.a
-- OpenZWave includes found at: /home/pi/DEV20200309/open-zwave/cpp/src
which is correct.

However when starting domoticz I have in the log
2020-10-28 02:52:31.454 Status: OpenZWave: using config in: /home/pi/domoticz/Config/
2020-10-28 02:52:31.501 Status: OpenZWave: Starting...
2020-10-28 02:52:31.501 Status: OpenZWave: Version: 1.6-1052-gf3920e88
Nice catch !
Seems to be only cosmetic but anyway this is how I solved it. Let me know if it also works for you. I will then update the wiki

Code: Select all

### open-zwave part
cd open-zwave-read-only/
git pull

vi cpp/src/vers.cpp # edit the version numbers and strings to

#include "Defs.h"
uint16_t ozw_vers_major = 1;
uint16_t ozw_vers_minor = 6;
uint16_t ozw_vers_revision = 1392;
char ozw_version_string[] = "1.6-1392-gb0afd4c6";

rm libopenzwave.a # this will force a new linking when doing a make. Ready in seconds
make
make install

### domoticz part

cd ../domoticz-dev # or your domoticz development dir

rm -f bin/domoticz domoticz # remove existing binaries
cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
make -j2 # this will force a new linking. Ready in seconds - up to a minute

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Wednesday 28 October 2020 9:10
by meal
Hello
I applied the changes in vers.cpp, rebuild open-zwave and linked domoticz again and it is working fine.
The open-zwave version is now consistent.
However it does not solve the issue with the partially configured zwave nodes.
Many thanks for your support
BR

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Wednesday 28 October 2020 9:43
by waaren
meal wrote: Wednesday 28 October 2020 9:10 I applied the changes in vers.cpp, rebuild open-zwave and linked domoticz again and it is working fine.
The open-zwave version is now consistent.
👍
I updated the wiki to include this part. If you have time can you please have a look to see if it is clear enough? Thx !

Re: Version CURL_OPENSSL_3 not found when upgrading the os from Stretch to Buster

Posted: Thursday 29 October 2020 0:25
by meal
Hello,
I took a look at wiki "https://www.domoticz.com/wiki/Build_Dom ... rom_source" regarding the update of open_zwave version string in vers.cpp.
It is fine.
BR