From patchwork Thu May 19 11:35:10 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fabrice.fontaine@orange.com X-Patchwork-Id: 623965 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3r9TX22BMqz9s9c for ; Thu, 19 May 2016 21:35:30 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 227B595D1B; Thu, 19 May 2016 11:35:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H4cRf1Wc+mqH; Thu, 19 May 2016 11:35:26 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id C745295D00; Thu, 19 May 2016 11:35:26 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 79CEC1C171F for ; Thu, 19 May 2016 11:35:25 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id BA1FF95CFB for ; Thu, 19 May 2016 11:35:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d1ClU4AN7fAp for ; Thu, 19 May 2016 11:35:22 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from relais-inet.francetelecom.com (relais-ias92.francetelecom.com [193.251.215.92]) by hemlock.osuosl.org (Postfix) with ESMTPS id B3C0295CE7 for ; Thu, 19 May 2016 11:35:21 +0000 (UTC) Received: from omfedm06.si.francetelecom.fr (unknown [xx.xx.xx.2]) by omfedm12.si.francetelecom.fr (ESMTP service) with ESMTP id 73E5B18D197 for ; Thu, 19 May 2016 13:35:18 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [10.114.31.43]) by omfedm06.si.francetelecom.fr (ESMTP service) with ESMTP id 57B0E27C069 for ; Thu, 19 May 2016 13:35:18 +0200 (CEST) Received: from r-x-uffo8396.rd.francetelecom.fr (10.168.234.5) by OPEXCLILM5F.corporate.adroot.infra.ftgroup (10.114.31.43) with Microsoft SMTP Server id 14.3.294.0; Thu, 19 May 2016 13:35:17 +0200 From: To: Date: Thu, 19 May 2016 13:35:10 +0200 X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.168.234.5] Message-ID: <6849_1463657718_573DA4F6_6849_12052_1_3ce00ece-243f-4019-b40a-3f70debf34ba@OPEXCLILM5F.corporate.adroot.infra.ftgroup> X-PMX-Version: 6.2.1.2478543, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2016.5.19.102416 Cc: Fabrice Fontaine Subject: [Buildroot] [PATCH v6] domoticz: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" 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. Signed-off-by: Fabrice Fontaine --- Changes v5 -> v6 (after review of Julien Boibessot): - Fix typo andi -> and in Config.in - Fix port number from 18080 -> 8080 in S99domoticz Changes v4 -> v5 (after review of Julien Boibessot): - Add dedicated init scripts for systemV and systemd instead of using domoticz.sh as it is not compatible with buildroot init system Changes v3 -> v4 (after review of Julien Boibessot): - Remove unneeded files (License and updatedomo) from target directory. Do not remove History.txt as it is used in source code - Install domoticz binary and all its files in /opt/domoticz instead of /usr by overriding CMAKE_INSTALL_PREFIX - Modify and install domoticz.sh if systemV is enabled by defining DOMOTICZ_INSTALL_INIT_SYSV Changes v2 -> v3 (after review of Samuel Martin): - Use OFF instead of no for consistency with other cmake packages - Always set USE_STATIC_BOOST and USE_STATIC_OPENZWAVE to OFF as BR2_STATIC_LIBS will always be false due to mosquitto dependency Changes v1 -> v2 (after review of Samuel Martin): - Add a hash file - Replace the dependency on BR2_PACKAGE_LUA_5_2 by a dependency on BR2_PACKAGE_LUA_5_2 or BR2_PACKAGE_LUA_5_3 - Add dependencies on BR2_USE_MMU and !BR2_STATIC_LIBS (from mosquitto) - Add dependency on BR2_PACKAGE_BOOST_ARCH_SUPPORTS (from boost) - Automatically add zwave support in domoticz if the user has selected the openzwave package - Set USE_STATIC_BOOST and USE_STATIC_OPENZWAVE to the correct values in domoticz.mk depending on BR2_STATIC_LIBS value to avoid breaking static-only build package/Config.in | 1 + package/domoticz/Config.in | 32 ++++++++++++++++++ package/domoticz/S99domoticz | 38 ++++++++++++++++++++++ package/domoticz/domoticz.hash | 2 ++ package/domoticz/domoticz.mk | 68 +++++++++++++++++++++++++++++++++++++++ package/domoticz/domoticz.service | 10 ++++++ 6 files changed, 151 insertions(+) create mode 100644 package/domoticz/Config.in create mode 100644 package/domoticz/S99domoticz create mode 100644 package/domoticz/domoticz.hash create mode 100644 package/domoticz/domoticz.mk create mode 100644 package/domoticz/domoticz.service diff --git a/package/Config.in b/package/Config.in index 10d9a6e..6b33a02 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1326,6 +1326,7 @@ menu "Miscellaneous" source "package/bc/Config.in" source "package/clamav/Config.in" source "package/collectd/Config.in" + source "package/domoticz/Config.in" source "package/empty/Config.in" source "package/gnuradio/Config.in" source "package/googlefontdirectory/Config.in" diff --git a/package/domoticz/Config.in b/package/domoticz/Config.in new file mode 100644 index 0000000..41acd99 --- /dev/null +++ b/package/domoticz/Config.in @@ -0,0 +1,32 @@ +config BR2_PACKAGE_DOMOTICZ + bool "domoticz" + depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS # boost + depends on BR2_USE_MMU # mosquitto + depends on !BR2_STATIC_LIBS # mosquitto + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_USE_WCHAR + depends on BR2_PACKAGE_LUA_5_2 || BR2_PACKAGE_LUA_5_3 + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_DATE_TIME + select BR2_PACKAGE_BOOST_SYSTEM + select BR2_PACKAGE_BOOST_THREAD + select BR2_PACKAGE_LIBCURL + select BR2_PACKAGE_MOSQUITTO + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_SQLITE + select BR2_PACKAGE_ZLIB + help + 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. + + http://domoticz.com + +comment "domoticz needs lua >= 5.2 and a toolchain w/ C++, threads, wchar, dynamic library" + depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS + depends on BR2_USE_MMU + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_USE_WCHAR || BR2_STATIC_LIBS || \ + !(BR2_PACKAGE_LUA_5_2 || BR2_PACKAGE_LUA_5_3) diff --git a/package/domoticz/S99domoticz b/package/domoticz/S99domoticz new file mode 100644 index 0000000..a16caca --- /dev/null +++ b/package/domoticz/S99domoticz @@ -0,0 +1,38 @@ +#!/bin/sh + +NAME=domoticz +PIDFILE=/var/run/$NAME.pid +DAEMON=/opt/domoticz/$NAME +DAEMON_ARGS="-daemon -www 8080 -sslwww 443" + +start() { + printf "Starting $NAME: " + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping $NAME: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/package/domoticz/domoticz.hash b/package/domoticz/domoticz.hash new file mode 100644 index 0000000..9180a9b --- /dev/null +++ b/package/domoticz/domoticz.hash @@ -0,0 +1,2 @@ +# Locally computed: +sha256 02b4cdde8e376258aeae3d5621edf8bb6b3563c34282e50194db343fcec9c0f5 domoticz-3.4834.tar.gz diff --git a/package/domoticz/domoticz.mk b/package/domoticz/domoticz.mk new file mode 100644 index 0000000..64d4074 --- /dev/null +++ b/package/domoticz/domoticz.mk @@ -0,0 +1,68 @@ +################################################################################ +# +# domoticz +# +################################################################################ + +DOMOTICZ_VERSION = 3.4834 +DOMOTICZ_SITE = $(call github,domoticz,domoticz,$(DOMOTICZ_VERSION)) +DOMOTICZ_LICENSE = GPLv3 +DOMOTICZ_LICENSE_FILES = License.txt +DOMOTICZ_DEPENDENCIES = boost host-pkgconf libcurl lua mosquitto openssl \ + sqlite zlib + +# Due to mosquitto dependency, domoticz depends on !BR2_STATIC_LIBS so sets +# USE_STATIC_BOOST to OFF +DOMOTICZ_CONF_OPTS += -DUSE_STATIC_BOOST=OFF + +# Do not use any built-in libraries which are enabled by default for lua, +# sqlite and mqtt +DOMOTICZ_CONF_OPTS += -DUSE_BUILTIN_LUA=OFF +DOMOTICZ_CONF_OPTS += -DUSE_BUILTIN_SQLITE=OFF +DOMOTICZ_CONF_OPTS += -DUSE_BUILTIN_MQTT=OFF + +ifeq ($(BR2_PACKAGE_LIBUSB),y) +DOMOTICZ_DEPENDENCIES += libusb +endif + +ifeq ($(BR2_PACKAGE_OPENZWAVE),y) +DOMOTICZ_DEPENDENCIES += openzwave + +# Due to mosquitto dependency, domoticz depends on !BR2_STATIC_LIBS so sets +# USE_STATIC_OPENZWAVE to OFF otherwise domoticz will not found openzwave +# library as it searchs by default a static library +DOMOTICZ_CONF_OPTS += -DUSE_STATIC_OPENZWAVE=OFF +endif + +# Install domoticz in a dedicated directory (/opt/domoticz) as domoticz expects +# by default that all its subdirectories (www, Config, scripts, ...) are in the +# binary directory +DOMOTICZ_TARGET_DIR = /opt/domoticz +DOMOTICZ_CONF_OPTS += -DCMAKE_INSTALL_PREFIX=$(DOMOTICZ_TARGET_DIR) + +# Delete License.txt and updatedomo files installed by domoticz in target +# directory +# Do not delete History.txt as it is used in source code +define DOMOTICZ_REMOVE_UNNEEDED_FILES + $(RM) $(TARGET_DIR)/$(DOMOTICZ_TARGET_DIR)/License.txt + $(RM) $(TARGET_DIR)/$(DOMOTICZ_TARGET_DIR)/updatedomo +endef + +DOMOTICZ_POST_INSTALL_TARGET_HOOKS += DOMOTICZ_REMOVE_UNNEEDED_FILES + +# Use dedicated init scripts for systemV and systemd instead of using +# domoticz.sh as it is not compatible with buildroot init system +define DOMOTICZ_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/domoticz/S99domoticz \ + $(TARGET_DIR)/etc/init.d/S99domoticz +endef + +define DOMOTICZ_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/domoticz/domoticz.service \ + $(TARGET_DIR)/usr/lib/systemd/system/domoticz.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/domoticz.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/domoticz.service +endef + +$(eval $(cmake-package)) diff --git a/package/domoticz/domoticz.service b/package/domoticz/domoticz.service new file mode 100644 index 0000000..446b41a --- /dev/null +++ b/package/domoticz/domoticz.service @@ -0,0 +1,10 @@ +[Unit] +Description=Domoticz Home Automation System +After=network.target + +[Service] +ExecStart=/opt/domoticz/domoticz -daemon -www 8080 -sslwww 443 +Restart=always + +[Install] +WantedBy=multi-user.target