Domoticz won't compile on Ubuntu 16.04 (PluginManager)
Posted: Sunday 28 May 2017 15:23
Posted this in under the bugs and problems forum, can't find where to move to this sub forum so I'm posting again.
Fresh clone wont compile on Ubuntu 16.04, as far as I can tell, python3.5m is being used.
Configure:
Fails with:
Fresh clone wont compile on Ubuntu 16.04, as far as I can tell, python3.5m is being used.
Configure:
Code: Select all
$ cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Failed to get ProjectRevision from git
-- Read ProjectRevision from appversion.default
-- ###########################
-- Compiling Revision #5876
-- ###########################
-- Using builtin Mosquitto library
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (found suitable version "3.5.2", minimum required is "3.4")
-- Python3 includes found at: /usr/include/python3.5m
-- Looking for execinfo.h
-- Looking for execinfo.h - found
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h
-- Looking for 3 include files sys/types.h, ..., linux/i2c.h - found
-- Building with I2C support
-- Looking for include files sys/types.h, linux/spi/spidev.h
-- Looking for include files sys/types.h, linux/spi/spidev.h - found
-- Building with SPI support
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Boost version: 1.58.0
-- Found the following Boost libraries:
-- thread
-- date_time
-- system
-- chrono
-- atomic
-- Linking against boost static libraries
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
-- ZLIB libraries found at: /usr/lib/x86_64-linux-gnu/libz.so
-- ZLIB includes found at: /usr/include
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.47.0")
-- Curl libraries found at: /usr/lib/x86_64-linux-gnu/libcurl.so
-- Curl includes found at: /usr/include
-- Found LIBUSB: /usr/lib/x86_64-linux-gnu/libusb.so
-- LIBUSB found at: /usr/lib/x86_64-linux-gnu/libusb.so
-- /home/joolz/git/open-zwave-read-only/libopenzwave.a
-- /usr/lib/x86_64-linux-gnu/libudev.so
-- ==== WiringPi include file (wiringPi.h) not found. GPIO support disabled.
-- ==== (Please follow http://wiringpi.com/download-and-install/ if you want to use GPIO.)
-- Sysfs GPIO available
-- Not found telldus-core (telldus-core.h), not adding tellstick support
CMake Warning (dev) at CMakeLists.txt:227 (GET_DIRECTORY_PROPERTY):
Policy CMP0059 is not set: Do no treat DEFINITIONS as a built-in directory
property. Run "cmake --help-policy CMP0059" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):
CMakeLists.txt:688 (ADD_PRECOMPILED_HEADER)
This warning is for project developers. Use -Wno-dev to suppress it.
/usr/bin/c++ ;-O3;-DNDEBUG;-I/usr/include/python3.5m;-I/home/joolz/git/domoticz-new/main;-I/usr/include;-I/usr/include;-I/usr/include;-I/usr/include;-I/home/joolz/git/domoticz-new/hardware/openzwave;;-DBUILTIN_MQTT;-DUSE_PYTHON_PLUGINS;-DHAVE_EXECINFO_H;-DHAVE_LINUX_I2C;-DHAVE_LINUX_SPI;-DWITH_LIBUSB;-DWWW_ENABLE_SSL;-DWITH_OPENZWAVE;-DWITH_SYSFS_GPIO -x c++-header -o /home/joolz/git/domoticz-new/stdafx.h.gch/.c++ /home/joolz/git/domoticz-new/main/stdafx.h
-- Using static libgcc/libstdc++
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Configuring done
-- Generating done
-- Build files have been written to: /home/joolz/git/domoticz-new
Code: Select all
[ 80%] Building CXX object CMakeFiles/domoticz.dir/hardware/plugins/PluginManager.cpp.o
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp: In member function ‘void http::server::CWebServer::PluginList(Json::Value&)’:
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:364:26: error: invalid use of incomplete type ‘class Json::Value’
int iPluginCnt = root.size();
^
In file included from /home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:16:0:
/home/joolz/git/domoticz-new/main/../main/WebServer.h:14:8: note: forward declaration of ‘class Json::Value’
class Value;
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:383:12: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
root[iPluginCnt]["idx"] = HTYPE_PythonPlugin;
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:384:44: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "key", root[iPluginCnt]["key"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:384:44: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "key", root[iPluginCnt]["key"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:385:45: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "name", root[iPluginCnt]["name"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:385:45: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "name", root[iPluginCnt]["name"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:386:47: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "author", root[iPluginCnt]["author"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:386:47: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "author", root[iPluginCnt]["author"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:387:49: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "wikilink", root[iPluginCnt]["wikiURL"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:387:49: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "wikilink", root[iPluginCnt]["wikiURL"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:388:53: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "externallink", root[iPluginCnt]["externalURL"]);
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:388:53: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "externallink", root[iPluginCnt]["externalURL"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:400:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "field", root[iPluginCnt]["parameters"][iParams]["field"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:400:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "field", root[iPluginCnt]["parameters"][iParams]["field"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:401:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "label", root[iPluginCnt]["parameters"][iParams]["label"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:401:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "label", root[iPluginCnt]["parameters"][iParams]["label"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:402:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "width", root[iPluginCnt]["parameters"][iParams]["width"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:402:48: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "width", root[iPluginCnt]["parameters"][iParams]["width"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:403:51: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "required", root[iPluginCnt]["parameters"][iParams]["required"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:403:51: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "required", root[iPluginCnt]["parameters"][iParams]["required"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:404:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "default", root[iPluginCnt]["parameters"][iParams]["default"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:404:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "default", root[iPluginCnt]["parameters"][iParams]["default"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:417:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "label", root[iPluginCnt]["parameters"][iParams]["options"][iOptions]["label"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:417:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "label", root[iPluginCnt]["parameters"][iParams]["options"][iOptions]["label"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:418:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "value", root[iPluginCnt]["parameters"][iParams]["options"][iOptions]["value"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:34:4: note: in definition of macro ‘ATTRIBUTE_VALUE’
Value = ""; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:418:50: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
ATTRIBUTE_VALUE(pXmlEle, "value", root[iPluginCnt]["parameters"][iParams]["options"][iOptions]["value"]);
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:37:25: note: in definition of macro ‘ATTRIBUTE_VALUE’
if (pAttributeValue) Value = pAttributeValue; \
^
/home/joolz/git/domoticz-new/hardware/plugins/PluginManager.cpp:422:17: error: no match for ‘operator[]’ (operand types are ‘Json::Value’ and ‘int’)
root[iPluginCnt]["parameters"][iParams]["options"][iOptions]["default"] = sDefault;
^
CMakeFiles/domoticz.dir/build.make:3638: recipe for target 'CMakeFiles/domoticz.dir/hardware/plugins/PluginManager.cpp.o' failed
make[2]: *** [CMakeFiles/domoticz.dir/hardware/plugins/PluginManager.cpp.o] Error 1
CMakeFiles/Makefile2:103: recipe for target 'CMakeFiles/domoticz.dir/all' failed
make[1]: *** [CMakeFiles/domoticz.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2