[packages/domoticz] - initial; from FC
arekm
arekm at pld-linux.org
Sun Jan 21 19:35:47 CET 2018
commit 9dda66960fb1985c814bc3d685be59ad400799e3
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sun Jan 21 19:35:31 2018 +0100
- initial; from FC
domoticz-openzwave-Dev.patch | 146 ++++++++++++++++++++++++++++
domoticz-openzwave.patch | 49 ++++++++++
domoticz-python.patch | 76 +++++++++++++++
domoticz-tinyxpath.patch | 220 +++++++++++++++++++++++++++++++++++++++++++
domoticz-version.patch | 9 ++
domoticz.conf | 14 +++
domoticz.service | 14 +++
domoticz.spec | 174 ++++++++++++++++++++++++++++++++++
8 files changed, 702 insertions(+)
---
diff --git a/domoticz.spec b/domoticz.spec
new file mode 100644
index 0000000..b1050e9
--- /dev/null
+++ b/domoticz.spec
@@ -0,0 +1,174 @@
+Summary: Open source Home Automation System
+Name: domoticz
+Version: 3.8153
+Release: 0.1
+License: GPLv3+ and ASL 2.0 and Boost and BSD and MIT
+Group: Base
+URL: http://www.domoticz.com
+Source0: https://github.com/domoticz/domoticz/archive/%{version}.tar.gz
+# Source0-md5: ad7b1d0491cd17e54bbe7368bcfd5170
+Source1: %{name}.service
+Source2: %{name}.conf
+# Source says its version 3.5876, but it's really 3.8153
+Patch1: %{name}-version.patch
+# Use system tinyxpath (https://github.com/domoticz/domoticz/pull/1759)
+Patch2: %{name}-tinyxpath.patch
+# Use system openzwave includes
+Patch3: %{name}-openzwave.patch
+# Work against Dev branch of OpenZWave upstream
+Patch4: %{name}-openzwave-Dev.patch
+# Fix python detection (https://github.com/domoticz/domoticz/pull/1749)
+Patch5: %{name}-python.patch
+BuildRequires: boost-devel
+BuildRequires: cmake
+BuildRequires: curl-devel
+BuildRequires: libmosquitto-devel
+BuildRequires: libmosquittopp-devel
+BuildRequires: libopenzwave-devel >= 1.5.0
+BuildRequires: libstdc++-devel
+BuildRequires: libusb-devel
+BuildRequires: lua-devel
+BuildRequires: openssl-devel
+BuildRequires: python3-devel
+BuildRequires: sqlite-devel
+BuildRequires: systemd-devel
+BuildRequires: tinyxpath-devel
+BuildRequires: zlib-devel
+
+Requires(pre): shadow-utils
+Requires(post): systemd
+Requires(postun): systemd
+Requires(preun): systemd
+
+Requires: google-droid-sans-fonts
+Suggests: system-python-libs >= 3.4
+
+Provides: bundled(js-ace)
+Provides: bundled(js-angular-ui-bootstrap) = 0.13.4
+Provides: bundled(js-angularamd) = 0.2.1
+Provides: bundled(js-angularjs) = 1.5.8
+Provides: bundled(js-blockly)
+Provides: bundled(js-bootbox)
+Provides: bundled(js-bootstrap) = 3.2.0
+Provides: bundled(js-colpick)
+Provides: bundled(js-d3)
+Provides: bundled(js-datatables-datatools) = 2.2.3
+Provides: bundled(js-dateformat) = 1.2.3
+Provides: bundled(js-filesaver) = 0.0-git20140725
+Provides: bundled(js-highcharts) = 4.2.6
+Provides: bundled(js-html5shiv) = 3.6.2
+Provides: bundled(js-i18next) = 1.8.0
+Provides: bundled(js-ion-sound) = 3.0.6
+Provides: bundled(js-jquery) = 1.12.0
+Provides: bundled(js-jquery-noty) = 2.1.0
+Provides: bundled(js-less) = 1.3.0
+Provides: bundled(js-ngdraggable)
+Provides: bundled(js-nggrid)
+Provides: bundled(js-ozwcp)
+Provides: bundled(js-require) = 2.1.14
+Provides: bundled(js-respond) = 1.1.0
+Provides: bundled(js-wow) = 0.1.9
+Provides: bundled(js-zeroclipboard) = 1.0.4
+
+%description
+Domoticz is a Home Automation System that lets you monitor and
+configure various devices like: Lights, Switches, various
+sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water
+and much more. Notifications/Alerts can be sent to any mobile device
+
+%prep
+%setup -q
+%patch1 -p1 -b.version
+%patch2 -p1 -b.tinyxpath
+%patch3 -p1 -b.openzwave
+%patch4 -p1 -b.openzwave-Dev
+%patch5 -p1 -b.python
+rm -f hardware/openzwave/*.h
+rm -rf hardware/openzwave/aes
+rm -rf hardware/openzwave/command_classes
+rm -rf hardware/openzwave/platform
+rm -rf hardware/openzwave/value_classes
+rm -rf sqlite/
+rm -rf tinyxpath/
+
+%build
+install -d build && cd build
+%cmake \
+ -DUSE_STATIC_LIBSTDCXX=NO \
+ -DUSE_STATIC_OPENZWAVE=NO \
+ -DUSE_BUILTIN_LUA=NO \
+ -DUSE_BUILTIN_MQTT=NO \
+ -DUSE_BUILTIN_SQLITE=NO \
+ -DUSE_BUILTIN_TINYXPATH=NO \
+ -DUSE_STATIC_BOOST=NO \
+ -DCMAKE_INSTALL_PREFIX=%{_datadir}/%{name} \
+ ..
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__make} -C build \
+ install
+
+# remove docs, we grab them in files below
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*.txt
+
+# move binary to standard directory
+install -d $RPM_BUILD_ROOT%{_bindir}/
+mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{name} $RPM_BUILD_ROOT%{_bindir}/
+
+# install systemd service and config
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/
+install -d $RPM_BUILD_ROOT%{systemdunitdir}/
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
+
+# create database/ssl cert directory
+install -d $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}/
+
+# Disable the app's self-update script
+
+# Unbundle DroidSans.ttf
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/elemental/fonts/DroidSans.ttf
+ln -s %{_fontdir}/google-droid/DroidSans.ttf \
+ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/elemental/fonts/
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-light/fonts/DroidSans.ttf
+ln -s %{_fontdir}/google-droid/DroidSans.ttf \
+ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-light/fonts/
+rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-dark/fonts/DroidSans.ttf
+ln -s %{_fontdir}/google-droid/DroidSans.ttf \
+ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-dark/fonts/
+
+# OpenZWave Control Panel temp file
+ln -s %{_sharedstatedir}/%{name}/ozwcp.poll.XXXXXX.xml \
+ $RPM_BUILD_ROOT%{_datadir}/%{name}/ozwcp.poll.XXXXXX.xml
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+getent group domoticz >/dev/null || groupadd -r domoticz
+getent passwd domoticz >/dev/null || \
+useradd -r -g domoticz -d %{_datadir}/%{name} -s /sbin/nologin \
+-c "Domoticz Home Automation Server" domoticz
+# For OpenZWave USB access (/dev/ttyACM#)
+usermod -G domoticz,dialout domoticz
+
+%post
+%systemd_post %{name}.service
+
+%preun
+%systemd_preun %{name}.service
+
+%postun
+%systemd_postun_with_restart %{name}.service
+
+%files
+%defattr(644,root,root,755)
+%doc License.txt
+%doc README.md History.txt
+%attr(755,root,root) %{_bindir}/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%{_datadir}/%{name}/
+%attr(755,domoticz,domoticz) %{_sharedstatedir}/%{name}/
+%{systemdunitdir}/%{name}.service
diff --git a/domoticz-openzwave-Dev.patch b/domoticz-openzwave-Dev.patch
new file mode 100644
index 0000000..9152d5c
--- /dev/null
+++ b/domoticz-openzwave-Dev.patch
@@ -0,0 +1,146 @@
+diff --git a/hardware/OpenZWave.cpp b/hardware/OpenZWave.cpp
+index 1f5c341c..51b2865b 100644
+--- a/hardware/OpenZWave.cpp
++++ b/hardware/OpenZWave.cpp
+@@ -1641,19 +1641,83 @@ void COpenZWave::AddValue(const OpenZWave::ValueID &vID, const NodeInfo *pNodeIn
+ if (newInstance != 0)
+ {
+ _device.instanceID = newInstance;
+- if (m_pManager->GetValueAsByte(vID, &byteValue) == true)
++ //Door lock device
++ if (
++ (vLabel == "Access Control") ||
++ (vLabel == "UserCode")
++ )
+ {
+- _device.devType = ZDTYPE_SWITCH_NORMAL;
+- if (byteValue == 0)
+- _device.intvalue = 0;
+- else
+- _device.intvalue = 255;
+- InsertDevice(_device);
++ if( ValueID::ValueType_List == vID.GetType() )
++ {
++ try
++ {
++ std::string vListStr;
++ if (m_pManager->GetValueListSelection(vID, &vListStr))
++ {
++ _device.devType = ZDTYPE_SWITCH_NORMAL;
++ _device.Alarm_Type = 6;
++ _device.intvalue = 0;
++ if (vListStr == "Access Control - RF Lock")
++ _device.intvalue = 24;
++ else if (vListStr == "Access Control - RF Unlock")
++ _device.intvalue = 25;
++ else if (vListStr == "Access Control - Manual Lock")
++ _device.intvalue = 21;
++ else if (vListStr == "Access Control - Manual Unlock")
++ _device.intvalue = 22;
++ else if (vListStr == "Access Control - KeyPad Lock")
++ _device.intvalue = 18;
++ else if (vListStr == "Access Control - KeyPad Unlock")
++ _device.intvalue = 19;
++ else if (vListStr == "Not Active")
++ _device.intvalue = 1;
++ else
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: Unhandled List Selection: %s", vListStr.c_str());
++ InsertDevice(_device);
++ }
++ }
++ catch (...)
++ {
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: GetValueListSelection Exception");
++ }
++ }
++ else {
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: Unhandled Value for Label: %s", vLabel.c_str());
++ }
++ }
++ else if( ValueID::ValueType_Byte == vID.GetType() )
++ {
++ if (m_pManager->GetValueAsByte(vID, &byteValue) == true)
++ {
++ _device.devType = ZDTYPE_SWITCH_NORMAL;
++ if (byteValue == 0)
++ _device.intvalue = 0;
++ else
++ _device.intvalue = 255;
++ InsertDevice(_device);
++ }
+ }
++ else
++ {
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: Unhandled Value: X, Type: %i", vID.GetType());
++ }
+ }
+ else
+ {
+- if (vLabel != "SourceNodeId")
++ if (vLabel == "UserCode") {
++ if ((vType == OpenZWave::ValueID::ValueType_Raw) || (vType == OpenZWave::ValueID::ValueType_String))
++ {
++ std::string strValue;
++ if (m_pManager->GetValueAsString(vID, &strValue) == true)
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: UserCode: %s", strValue.c_str());
++ }
++ else
++ {
++ if (m_pManager->GetValueAsByte(vID, &byteValue) == true)
++ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: UserCode: %i", byteValue);
++ }
++ }
++ else if (vLabel != "SourceNodeId")
+ {
+ _log.Log(LOG_STATUS, "OpenZWave: Value_Added: Unhandled Label: %s, Unit: %s", vLabel.c_str(), vUnits.c_str());
+ }
+@@ -2395,7 +2459,7 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
+ unsigned char byteValue = 0;
+ int32 intValue = 0;
+ std::string strValue = "";
+- int32 lValue = 0;
++ std::string lValue = "";
+
+ if (vType == OpenZWave::ValueID::ValueType_Decimal)
+ {
+@@ -2833,16 +2897,40 @@ void COpenZWave::UpdateValue(const OpenZWave::ValueID &vID)
+ }
+ else if (vLabel == "Access Control")
+ {
++ if (!lValue.empty()) {
++ if (lValue == "Access Control - RF Lock")
++ byteValue = 24;
++ else if (lValue == "Access Control - RF Unlock")
++ byteValue = 25;
++ else if (lValue == "Access Control - Manual Lock")
++ byteValue = 21;
++ else if (lValue == "Access Control - Manual Unlock")
++ byteValue = 22;
++ else if (lValue == "Access Control - KeyPad Lock")
++ byteValue = 18;
++ else if (lValue == "Access Control - KeyPad Unlock")
++ byteValue = 19;
++ else if (lValue == "Not Active")
++ byteValue = 0;
++ else
++ byteValue = 0;
++ }
++
+ switch (byteValue) {
+ case 0x00: // Previous Events cleared
+ case 0x06: //Keypad unlock/Arm Home
++ case 0x12: // KeyPad lock
++ case 0x15: // Manual Lock
+ case 0x17: // Door closed
++ case 0x18: // RF operated lock
+ case 0xfe: // Unkown event; returned when retrieving the current state.
+ intValue = 0;
+ break;
+
+ case 0x05: //Keypad Lock/Arm Away
++ case 0x13: // KeyPad unlock
+ case 0x16: // Door open
++ case 0x19: // RF operated unlock
+ default: // all others, interpret as alarm
+ intValue = 255;
+ break;
diff --git a/domoticz-openzwave.patch b/domoticz-openzwave.patch
new file mode 100644
index 0000000..e819762
--- /dev/null
+++ b/domoticz-openzwave.patch
@@ -0,0 +1,49 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 42082192..f16726f8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -598,7 +598,7 @@ endif()
+ IF(OpenZWave)
+ message(STATUS ${OpenZWave})
+ target_link_libraries(domoticz ${OpenZWave})
+- include_directories(${CMAKE_SOURCE_DIR}/hardware/openzwave)
++ include_directories(${OPENZWAVE_INCLUDE_DIRS})
+ add_definitions(-DWITH_OPENZWAVE)
+ # open-zwave needs libudev
+ IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+diff --git a/hardware/openzwave/control_panel/ozwcp.cpp b/hardware/openzwave/control_panel/ozwcp.cpp
+index ffd8d742..79c708ce 100644
+--- a/hardware/openzwave/control_panel/ozwcp.cpp
++++ b/hardware/openzwave/control_panel/ozwcp.cpp
+@@ -39,11 +39,11 @@
+ #include <stdlib.h>
+ #include <time.h>
+ #include <string.h>
+-#include "Options.h"
+-#include "Manager.h"
+-#include "Node.h"
+-#include "Group.h"
+-#include "Notification.h"
++#include <Options.h>
++#include <Manager.h>
++#include <Node.h>
++#include <Group.h>
++#include <Notification.h>
+
+ #include <sys/stat.h>
+ #include <fstream>
+diff --git a/hardware/openzwave/control_panel/ozwcp.h b/hardware/openzwave/control_panel/ozwcp.h
+index 29ebc0e3..7a027815 100644
+--- a/hardware/openzwave/control_panel/ozwcp.h
++++ b/hardware/openzwave/control_panel/ozwcp.h
+@@ -37,8 +37,8 @@
+
+ #include <list>
+ #include <algorithm>
+-#include "Driver.h"
+-#include "Notification.h"
++#include <Driver.h>
++#include <Notification.h>
+
+ using namespace OpenZWave;
+
diff --git a/domoticz-python.patch b/domoticz-python.patch
new file mode 100644
index 0000000..e6332de
--- /dev/null
+++ b/domoticz-python.patch
@@ -0,0 +1,76 @@
+From f7b229ce873ff71e2b48e855075153dc1026750d Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike at cchtml.com>
+Date: Mon, 7 Aug 2017 14:37:28 -0500
+Subject: [PATCH] Follow PEP-384 when finding and opening python3 library
+
+Instead of maintaining a list of all Python versions the Python 3
+standard defines that there MUST be a stable ABI and we can always
+rely on a "python3.dll" or a "libpython3.so" existing.
+
+This also fixes library loading on Linux distributions that use
+SO versioned libraries.
+---
+ hardware/plugins/DelayedLink.h | 28 ++--------------------------
+ 1 file changed, 2 insertions(+), 26 deletions(-)
+
+diff --git a/hardware/plugins/DelayedLink.h b/hardware/plugins/DelayedLink.h
+index 25c83f034..ecf19da09 100644
+--- a/hardware/plugins/DelayedLink.h
++++ b/hardware/plugins/DelayedLink.h
+@@ -126,16 +126,10 @@ namespace Plugins {
+ if (!shared_lib_) shared_lib_ = LoadLibrary("python35_d.dll");
+ if (!shared_lib_) shared_lib_ = LoadLibrary("python34_d.dll");
+ # else
+- if (!shared_lib_) shared_lib_ = LoadLibrary("python37.dll");
+- if (!shared_lib_) shared_lib_ = LoadLibrary("python36.dll");
+- if (!shared_lib_) shared_lib_ = LoadLibrary("python35.dll");
+- if (!shared_lib_) shared_lib_ = LoadLibrary("python34.dll");
++ if (!shared_lib_) shared_lib_ = LoadLibrary("python3.dll");
+ # endif
+ #else
+- if (!shared_lib_) FindLibrary("python3.7", true);
+- if (!shared_lib_) FindLibrary("python3.6", true);
+- if (!shared_lib_) FindLibrary("python3.5", true);
+- if (!shared_lib_) FindLibrary("python3.4", true);
++ if (!shared_lib_) FindLibrary("python3", true);
+ #endif
+ if (shared_lib_)
+ {
+@@ -232,24 +226,12 @@ namespace Plugins {
+ library = "lib" + sLibrary + ".so";
+ shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL);
+ }
+- // look in directories covered by ldconfig but 'm' variant
+- if (!shared_lib_)
+- {
+- library = "lib" + sLibrary + "m.so";
+- shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL);
+- }
+ // look in /usr/lib directories
+ if (!shared_lib_)
+ {
+ library = "/usr/lib/" + sLibrary + "/";
+ FindLibrary(library, false);
+ }
+- // look in /usr/lib directories but 'm' variant
+- if (!shared_lib_)
+- {
+- library = "/usr/lib/" + sLibrary + "m/";
+- FindLibrary(library, false);
+- }
+ // look in /usr/local/lib directory (handles build from source)
+ if (!shared_lib_)
+ {
+@@ -257,12 +239,6 @@ namespace Plugins {
+ shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL);
+
+ }
+- // look in /usr/local/lib directory (handles build from source) but 'm' variant
+- if (!shared_lib_)
+- {
+- library = "/usr/local/lib/lib" + sLibrary + "m.so";
+- shared_lib_ = dlopen(library.c_str(), RTLD_LAZY | RTLD_GLOBAL);
+- }
+ }
+ else
+ {
diff --git a/domoticz-tinyxpath.patch b/domoticz-tinyxpath.patch
new file mode 100644
index 0000000..6d4fe3f
--- /dev/null
+++ b/domoticz-tinyxpath.patch
@@ -0,0 +1,220 @@
+From 694241f7905967bf69af3a31265180c00b73e28c Mon Sep 17 00:00:00 2001
+From: Michael Cronenworth <mike at cchtml.com>
+Date: Fri, 11 Aug 2017 10:08:27 -0500
+Subject: [PATCH] build: Detect and allow external tinyxpath library usage
+
+Signed-off-by: Michael Cronenworth <mike at cchtml.com>
+---
+ CMakeLists.txt | 57 +++++++++++++++++++++---------
+ hardware/AnnaThermostat.cpp | 3 +-
+ hardware/RAVEn.cpp | 3 +-
+ hardware/openzwave/control_panel/ozwcp.cpp | 3 +-
+ hardware/plugins/PluginManager.cpp | 3 +-
+ hardware/plugins/Plugins.cpp | 3 +-
+ main/LuaCommon.cpp | 7 +++-
+ main/LuaHandler.cpp | 3 +-
+ removed from Fedora patch msbuild/domoticz.vcxproj | 6 ++--
+ 9 files changed, 62 insertions(+), 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bc231d8f6..334f203a6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -451,22 +451,6 @@ webserver/proxyclient.cpp
+ json/json_reader.cpp
+ json/json_value.cpp
+ json/json_writer.cpp
+-tinyxpath/action_store.cpp
+-tinyxpath/htmlutil.cpp
+-tinyxpath/lex_util.cpp
+-tinyxpath/node_set.cpp
+-tinyxpath/tinystr.cpp
+-tinyxpath/tinyxml.cpp
+-tinyxpath/tinyxmlerror.cpp
+-tinyxpath/tinyxmlparser.cpp
+-tinyxpath/tokenlist.cpp
+-tinyxpath/xml_util.cpp
+-tinyxpath/xpath_expression.cpp
+-tinyxpath/xpath_processor.cpp
+-tinyxpath/xpath_stream.cpp
+-tinyxpath/xpath_stack.cpp
+-tinyxpath/xpath_static.cpp
+-tinyxpath/xpath_syntax.cpp
+ )
+ add_executable(domoticz ${domoticz_SRCS})
+
+@@ -538,6 +522,47 @@ else()
+ MESSAGE(STATUS "==== LibUSB not found, support for TE923/Voltcraft disabled!")
+ ENDIF(LIBUSB_FOUND)
+
++option(USE_BUILTIN_TINYXPATH "Use builtin tinyxpath library" YES)
++IF(USE_BUILTIN_TINYXPATH)
++ include_directories(tinyxpath)
++ target_sources(
++ domoticz
++ PUBLIC
++ tinyxpath/action_store.cpp
++ tinyxpath/htmlutil.cpp
++ tinyxpath/lex_util.cpp
++ tinyxpath/node_set.cpp
++ tinyxpath/tinystr.cpp
++ tinyxpath/tinyxml.cpp
++ tinyxpath/tinyxmlerror.cpp
++ tinyxpath/tinyxmlparser.cpp
++ tinyxpath/tokenlist.cpp
++ tinyxpath/xml_util.cpp
++ tinyxpath/xpath_expression.cpp
++ tinyxpath/xpath_processor.cpp
++ tinyxpath/xpath_stream.cpp
++ tinyxpath/xpath_stack.cpp
++ tinyxpath/xpath_static.cpp
++ tinyxpath/xpath_syntax.cpp
++ )
++else()
++ pkg_check_modules(TinyXML QUIET tinyxml)
++ IF(TinyXML_FOUND)
++ MESSAGE(STATUS "TinyXML found at: ${TinyXML_LIBRARIES}")
++ IF(EXISTS "/usr/include/tinyxpath/xpath_processor.h")
++ MESSAGE(STATUS "TinyXPath found")
++ target_link_libraries(domoticz ${TinyXML_LIBRARIES})
++ target_link_libraries(domoticz tinyxpath)
++ include_directories(/usr/include/tinyxpath)
++ add_definitions(-DWITH_EXTERNAL_TINYXPATH)
++ else()
++ MESSAGE(FATAL_ERROR "TinyXPath not found but USE_BUILTIN_TINYXPATH=NO")
++ ENDIF()
++ else()
++ MESSAGE(FATAL_ERROR "TinyXML not found but USE_BUILTIN_TINYXPATH=NO")
++ ENDIF(TinyXML_FOUND)
++ENDIF(USE_BUILTIN_TINYXPATH)
++
+ #
+ # Find MD5/RMD160/SHA library
+ #
+diff --git a/hardware/AnnaThermostat.cpp b/hardware/AnnaThermostat.cpp
+index 9c8cf26ef..9c91513ba 100644
+--- a/hardware/AnnaThermostat.cpp
++++ b/hardware/AnnaThermostat.cpp
+@@ -8,7 +8,8 @@
+ #include "../main/SQLHelper.h"
+ #include "../httpclient/HTTPClient.h"
+ #include "../main/mainworker.h"
+-#include "../tinyxpath/tinyxml.h"
++
++#include <tinyxml.h>
+
+ #define round(a) ( int ) ( a + .5 )
+
+diff --git a/hardware/RAVEn.cpp b/hardware/RAVEn.cpp
+index 3ffe4f724..36f97bffb 100644
+--- a/hardware/RAVEn.cpp
++++ b/hardware/RAVEn.cpp
+@@ -6,7 +6,8 @@
+ #include "../main/RFXtrx.h"
+ #include "../main/localtime_r.h"
+ #include "../main/mainworker.h"
+-#include "../tinyxpath/tinyxml.h"
++
++#include <tinyxml.h>
+
+ //Rainforest RAVEn USB ZigBee Smart Meter Adapter
+ //https://rainforestautomation.com/rfa-z106-raven/
+diff --git a/hardware/openzwave/control_panel/ozwcp.cpp b/hardware/openzwave/control_panel/ozwcp.cpp
+index 9a948c976..8fd4f77f0 100644
+--- a/hardware/openzwave/control_panel/ozwcp.cpp
++++ b/hardware/openzwave/control_panel/ozwcp.cpp
+@@ -45,11 +45,10 @@
+ #include "Group.h"
+ #include "Notification.h"
+
+-#include "../../tinyxpath/tinyxml.h"
+-
+ #include <sys/stat.h>
+ #include <fstream>
+ #include <iostream>
++#include <tinyxml.h>
+
+ //#include "microhttpd.h"
+ #include "ozwcp.h"
+diff --git a/hardware/plugins/PluginManager.cpp b/hardware/plugins/PluginManager.cpp
+index ea7bbe48a..9af41e42e 100644
+--- a/hardware/plugins/PluginManager.cpp
++++ b/hardware/plugins/PluginManager.cpp
+@@ -5,6 +5,8 @@
+ //
+ #ifdef ENABLE_PYTHON
+
++#include <tinyxml.h>
++
+ #include "PluginManager.h"
+ #include "Plugins.h"
+ #include "PluginMessages.h"
+@@ -17,7 +19,6 @@
+ #include "../main/mainworker.h"
+ #include "../main/EventSystem.h"
+ #include "../json/json.h"
+-#include "../tinyxpath/tinyxml.h"
+ #include "../main/localtime_r.h"
+ #ifdef WIN32
+ # include <direct.h>
+diff --git a/hardware/plugins/Plugins.cpp b/hardware/plugins/Plugins.cpp
+index dc2420d6a..8cba255a2 100644
+--- a/hardware/plugins/Plugins.cpp
++++ b/hardware/plugins/Plugins.cpp
+@@ -5,6 +5,8 @@
+ //
+ #ifdef ENABLE_PYTHON
+
++#include <tinyxml.h>
++
+ #include "Plugins.h"
+ #include "PluginMessages.h"
+ #include "PluginProtocols.h"
+@@ -15,7 +17,6 @@
+ #include "../main/Logger.h"
+ #include "../main/SQLHelper.h"
+ #include "../main/mainworker.h"
+-#include "../tinyxpath/tinyxml.h"
+ #include "../main/localtime_r.h"
+
+ #include "../../notifications/NotificationHelper.h"
+diff --git a/main/LuaCommon.cpp b/main/LuaCommon.cpp
+index ec99429a5..76085aed6 100644
+--- a/main/LuaCommon.cpp
++++ b/main/LuaCommon.cpp
+@@ -16,7 +16,8 @@ extern "C" {
+ #endif
+ }
+
+-#include "../tinyxpath/xpath_processor.h"
++#include <xpath_processor.h>
++
+ #include "../json/json.h"
+ #include "SQLHelper.h"
+ #include "mainworker.h"
+@@ -44,7 +45,11 @@ int CLuaCommon::l_domoticz_applyXPath(lua_State* lua_state)
+ return 0;
+ }
+ TinyXPath::xpath_processor processor(root, xpath.c_str());
++#ifdef WITH_EXTERNAL_TINYXPATH
++ TIXML_STRING xresult = processor.S_compute_xpath();
++#else
+ TiXmlString xresult = processor.S_compute_xpath();
++#endif
+ lua_pushstring(lua_state, xresult.c_str());
+ return 1;
+ }
+diff --git a/main/LuaHandler.cpp b/main/LuaHandler.cpp
+index 8fdcb278b..a66cafee7 100644
+--- a/main/LuaHandler.cpp
++++ b/main/LuaHandler.cpp
+@@ -16,7 +16,8 @@ extern "C" {
+ #endif
+ }
+
+-#include "../tinyxpath/xpath_processor.h"
++#include <xpath_processor.h>
++
+ #include "../json/json.h"
+ #include "SQLHelper.h"
+ #include "mainworker.h"
diff --git a/domoticz-version.patch b/domoticz-version.patch
new file mode 100644
index 0000000..79c2628
--- /dev/null
+++ b/domoticz-version.patch
@@ -0,0 +1,9 @@
+--- a/appversion.default 2017-07-30 05:19:41.000000000 -0500
++++ b/appversion.default 2017-07-31 11:36:32.150644222 -0500
+@@ -1,3 +1,3 @@
+-#define APPVERSION 5876
+-#define APPHASH "b97777b"
+-#define APPDATE 1478691222
++#define APPVERSION 8153
++#define APPHASH "494fff7"
++#define APPDATE 1501409981
diff --git a/domoticz.conf b/domoticz.conf
new file mode 100644
index 0000000..2c7b47e
--- /dev/null
+++ b/domoticz.conf
@@ -0,0 +1,14 @@
+WWW_PORT=8080
+SSL_PORT=8443
+SSLCERT="/var/lib/domoticz/domoticz.pem"
+SSLPASS=""
+SSLMETHOD=""
+SSLOPTIONS=""
+SSLDHPARAM=""
+WWW_ROOT="/usr/share/domoticz/www"
+DBASE="/var/lib/domoticz/domoticz.db"
+USERDATA="/usr/share/domoticz/"
+VERBOSE=0
+LOG="/var/log/domoticz.log"
+LOGLEVEL="1"
+
diff --git a/domoticz.service b/domoticz.service
new file mode 100644
index 0000000..c3a29ac
--- /dev/null
+++ b/domoticz.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Domoticz Home Automation Server
+
+[Service]
+User=domoticz
+Group=domoticz
+EnvironmentFile=/etc/sysconfig/domoticz
+ExecStart=/usr/bin/domoticz -www $WWW_PORT -sslwww $SSL_PORT -sslcert $SSLCERT -sslpass $SSLPASS -sslmethod $SSLMETHOD -ssloptions $SSLOPTIONS -ssldhparam $SSLDHPARAM -wwwroot $WWW_ROOT -dbase $DBASE -userdata $USERDATA -verbose $VERBOSE -log $LOG -loglevel $LOGLEVEL
+WorkingDirectory=/usr/share/domoticz
+# Give the right to open priviliged ports. This allows you to run on a port <1024 without root permissions (user/group setting above)
+#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+
+[Install]
+WantedBy=multi-user.target
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/domoticz.git/commitdiff/9dda66960fb1985c814bc3d685be59ad400799e3
More information about the pld-cvs-commit
mailing list