summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO52
-rw-r--r--GetDeviceFiles.sh.patch12
-rw-r--r--GetFirmwareUpdates.sh.patch12
-rw-r--r--PKGBUILD134
-rw-r--r--cast-to-bool.patch14
-rw-r--r--homegear.install95
-rw-r--r--homegear.logrotate13
-rw-r--r--homegear.service13
8 files changed, 345 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..d4649c2fde38
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,52 @@
+# Generated by makepkg 4.2.1
+# Tue Jan 5 21:25:47 UTC 2016
+pkgbase = homegear
+ pkgdesc = Interface HomeMatic BidCoS and others with home automation software
+ pkgver = 0.5.25
+ pkgrel = 1
+ url = https://github.com/Homegear/Homegear
+ arch = armv7h
+ arch = x86_64
+ arch = i686
+ license = GPL
+ makedepends = gcc-libs
+ makedepends = gnutls>=3.3.0
+ makedepends = libgpg-error>=1.14
+ makedepends = readline>=6.2
+ makedepends = sqlite>=3.7.13
+ makedepends = libxml2>=2.8.0
+ makedepends = lzo>=2.0.6
+ source = https://github.com/Homegear/Homegear/archive/0.5.25.tar.gz
+ source = cast-to-bool.patch
+ source = GetDeviceFiles.sh.patch
+ source = GetFirmwareUpdates.sh.patch
+ source = homegear.service
+ source = homegear.logrotate
+ md5sums = cd8335a45f8c9fb3e1fe2fd6328f8373
+ md5sums = 3f84c8c96fc6b7d197762e61af97a086
+ md5sums = b1a820bb631c45f3b0f266f552e24891
+ md5sums = ba39981e2b7a1f3cb1428fb839a1786a
+ md5sums = 8dc90bcf3f521c1bbf80c0ba5e51a3e8
+ md5sums = 57e41d66f3f80d9e8e3caa665dd5e788
+
+pkgname = homegear
+ pkgdesc = Interface your HomeMatic BidCoS, HomeMatic Wired, MAX!, INSTEON or Philips hue devices with your home automation software or your own control scripts.
+ install = homegear.install
+ depends = gcc-libs
+ depends = gnutls>=3.3.0
+ depends = libgpg-error>=1.14
+ depends = readline>=6.2
+ depends = sqlite>=3.7.13
+ depends = libxml2>=2.8.0
+ depends = lzo>=2.0.6
+ depends = unzip
+ depends = wget
+ depends = libxml2
+ depends = python2
+ depends = python2-pip
+ depends = openssl
+ backup = etc/homegear/main.conf
+ backup = etc/homegear/physicalinterfaces.conf
+ backup = etc/homegear/rpcclients.conf
+ backup = etc/homegear/rpcservers.conf
+
diff --git a/GetDeviceFiles.sh.patch b/GetDeviceFiles.sh.patch
new file mode 100644
index 000000000000..2cd04649a2fa
--- /dev/null
+++ b/GetDeviceFiles.sh.patch
@@ -0,0 +1,12 @@
+diff -rup Homegear-0.5.25/Miscellaneous/GetDeviceFiles.sh ../src/Homegear-0.5.25/Miscellaneous/GetDeviceFiles.sh
+--- Homegear-0.5.25/Miscellaneous/GetDeviceFiles.sh 2015-06-10 12:49:17.000000000 +0200
++++ ../src/Homegear-0.5.25/Miscellaneous/GetDeviceFiles.sh 2016-01-05 12:45:20.456666658 +0100
+@@ -29,7 +29,7 @@ wget -P /tmp/HomegearTemp/ https://githu
+ tar -zxf /tmp/HomegearTemp/v2_ui.tar.gz -C /tmp/HomegearTemp
+ [ $? -ne 0 ] && exit 1
+
+-/tmp/HomegearTemp/ubi_reader-2_ui/extract_files.py -o /tmp/HomegearTemp/rootfs /tmp/HomegearTemp/rootfs.ubi
++python2 /tmp/HomegearTemp/ubi_reader-2_ui/extract_files.py -o /tmp/HomegearTemp/rootfs /tmp/HomegearTemp/rootfs.ubi
+ [ $? -ne 0 ] && exit 1
+
+ rm -f $FIRMWAREDIR/rftypes/rf_cmm.xml
diff --git a/GetFirmwareUpdates.sh.patch b/GetFirmwareUpdates.sh.patch
new file mode 100644
index 000000000000..30aac7bf2408
--- /dev/null
+++ b/GetFirmwareUpdates.sh.patch
@@ -0,0 +1,12 @@
+diff -rup Homegear-0.5.25/Miscellaneous/firmwareDir/GetFirmwareUpdates.sh ../src/Homegear-0.5.25/Miscellaneous/firmwareDir/GetFirmwareUpdates.sh
+--- Homegear-0.5.25/Miscellaneous/firmwareDir/GetFirmwareUpdates.sh 2015-06-10 12:49:17.000000000 +0200
++++ ../src/Homegear-0.5.25/Miscellaneous/firmwareDir/GetFirmwareUpdates.sh 2016-01-05 17:33:54.016666637 +0100
+@@ -20,7 +20,7 @@ if test ! -d $FIRMWAREDIR; then
+ tar -zxf /tmp/HomegearTemp/v2_ui.tar.gz -C /tmp/HomegearTemp
+ [ $? -ne 0 ] && exit 1
+
+- /tmp/HomegearTemp/ubi_reader-2_ui/extract_files.py -o /tmp/HomegearTemp/rootfs /tmp/HomegearTemp/rootfs.ubi
++ python2 /tmp/HomegearTemp/ubi_reader-2_ui/extract_files.py -o /tmp/HomegearTemp/rootfs /tmp/HomegearTemp/rootfs.ubi
+ [ $? -ne 0 ] && exit 1
+ fi
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..386fbb7c4d7b
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,134 @@
+# Package build for homegear (https://www.homegear.eu/index.php/Main_Page)
+# Maintainer: Michael Lipp <mnl at mnl dot de>
+
+pkgdesc=('Interface HomeMatic BidCoS and others with home automation software')
+pkgbase=('homegear')
+pkgname=('homegear')
+pkgver=0.5.25
+pkgrel=1
+arch=('armv7h' 'x86_64' 'i686')
+license=('GPL')
+url="https://github.com/Homegear/Homegear"
+makedepends=('gcc-libs' 'gnutls>=3.3.0' 'libgpg-error>=1.14' 'readline>=6.2' 'sqlite>=3.7.13' 'libxml2>=2.8.0' 'lzo>=2.0.6')
+source=("https://github.com/Homegear/Homegear/archive/${pkgver}.tar.gz"
+ 'cast-to-bool.patch'
+ 'GetDeviceFiles.sh.patch'
+ 'GetFirmwareUpdates.sh.patch'
+ 'homegear.service'
+ 'homegear.logrotate')
+md5sums=('cd8335a45f8c9fb3e1fe2fd6328f8373'
+ '3f84c8c96fc6b7d197762e61af97a086'
+ 'b1a820bb631c45f3b0f266f552e24891'
+ 'ba39981e2b7a1f3cb1428fb839a1786a'
+ '8dc90bcf3f521c1bbf80c0ba5e51a3e8'
+ '57e41d66f3f80d9e8e3caa665dd5e788')
+
+prepare() {
+ cd "${srcdir}/Homegear-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/cast-to-bool.patch"
+ patch -Np1 -i "${srcdir}/GetDeviceFiles.sh.patch"
+ patch -Np1 -i "${srcdir}/GetFirmwareUpdates.sh.patch"
+}
+
+build() {
+ cd "${srcdir}/Homegear-${pkgver}"
+
+ make config=release verbose=true
+}
+
+package_homegear() {
+ pkgdesc='Interface your HomeMatic BidCoS, HomeMatic Wired, MAX!, INSTEON or Philips hue devices with your home automation software or your own control scripts.'
+ depends=('gcc-libs' 'gnutls>=3.3.0' 'libgpg-error>=1.14' 'readline>=6.2' 'sqlite>=3.7.13' 'libxml2>=2.8.0' 'lzo>=2.0.6' 'unzip' 'wget' 'libxml2' 'python2' 'python2-pip' 'openssl')
+ install='homegear.install'
+ backup=('etc/homegear/main.conf'
+ 'etc/homegear/physicalinterfaces.conf'
+ 'etc/homegear/rpcclients.conf'
+ 'etc/homegear/rpcservers.conf')
+
+ cd "${srcdir}/Homegear-${pkgver}"
+
+ mkdir -p "${pkgdir}/usr/bin"
+ cp bin/Release/homegear "${pkgdir}/usr/bin"
+ chown root:root "${pkgdir}/usr/bin"
+ chmod 755 "${pkgdir}/usr/bin/homegear"
+
+ mkdir -p "${pkgdir}/etc/homegear"
+ for f in main.conf rpcclients.conf rpcservers.conf physicalinterfaces.conf; do
+ cp Miscellaneous/$f "${pkgdir}/etc/homegear"
+ done
+ chmod 755 "${pkgdir}/etc/homegear"
+ chmod 644 "${pkgdir}"/etc/homegear/*
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/0"
+ chmod 755 "${pkgdir}/etc/homegear/devices"
+ chmod 755 "${pkgdir}/etc/homegear/devices/0"
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/1"
+ chmod 755 "${pkgdir}/etc/homegear/devices/0"
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/2"
+ cp Miscellaneous/Device\ Description\ Files/INSTEON/* "${pkgdir}/etc/homegear/devices/2"
+ chmod 755 "${pkgdir}/etc/homegear/devices/2"
+ chmod 644 "${pkgdir}"/etc/homegear/devices/2/*
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/4"
+ cp Miscellaneous/Device\ Description\ Files/MAX/* "${pkgdir}/etc/homegear/devices/4"
+ chmod 755 "${pkgdir}/etc/homegear/devices/4"
+ chmod 644 "${pkgdir}"/etc/homegear/devices/4/*
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/5"
+ cp Miscellaneous/Device\ Description\ Files/Philips\ hue/* "${pkgdir}/etc/homegear/devices/5"
+ chmod 755 "${pkgdir}/etc/homegear/devices/5"
+ chmod 644 "${pkgdir}"/etc/homegear/devices/5/*
+
+ mkdir -p "${pkgdir}/etc/homegear/devices/254"
+ cp Miscellaneous/Device\ Description\ Files/Miscellaneous/* "${pkgdir}/etc/homegear/devices/254"
+ chmod 755 "${pkgdir}/etc/homegear/devices/254"
+ chmod 644 "${pkgdir}"/etc/homegear/devices/254/*
+
+ chown root:root "${pkgdir}/etc/homegear"
+
+ mkdir -p "${pkgdir}/etc/logrotate.d"
+ cp Miscellaneous/logrotate "${pkgdir}/etc/logrotate.d/homegear"
+ chown root:root "${pkgdir}/etc/logrotate.d/homegear"
+ chmod 644 "${pkgdir}/etc/logrotate.d/homegear"
+
+ mkdir -p "${pkgdir}/etc/security/limits.d"
+ chown root:root "${pkgdir}/etc/security/limits.d"
+ echo "homegear soft rtprio 100" > "${pkgdir}/etc/security/limits.d/homegear"
+ echo "homegear hard rtprio 100" >> "${pkgdir}/etc/security/limits.d/homegear"
+ chown root:root "${pkgdir}/etc/security/limits.d/homegear"
+ chmod 644 "${pkgdir}/etc/security/limits.d/homegear"
+
+ mkdir -p "${pkgdir}/var/lib/homegear/firmware"
+ cp Miscellaneous/firmwareDir/GetFirmwareUpdates.sh "${pkgdir}/var/lib/homegear/firmware"
+ chown -R root:root "${pkgdir}/var/lib/homegear/firmware"
+ chmod -R 550 "${pkgdir}/var/lib/homegear/firmware"
+
+ mkdir -p "${pkgdir}/var/lib/homegear/modules"
+ cp lib/Modules/Release/*.so "${pkgdir}/var/lib/homegear/modules"
+ FILES="${pkgdir}"/var/lib/homegear/modules/*
+ for f in $FILES; do
+ f2=`echo $f | sed 's#.*/##' | sed 's/^lib/mod_/'`
+ mv $f "${pkgdir}"/var/lib/homegear/modules/$f2
+ done
+ chown -R root:root "${pkgdir}/var/lib/homegear/modules"
+ chmod -R 550 "${pkgdir}/var/lib/homegear/modules"
+
+ mkdir -p "${pkgdir}/var/lib/homegear/www"
+ cp -R Miscellaneous/www/* "${pkgdir}/var/lib/homegear/www"
+ chown -R root:root "${pkgdir}/var/lib/homegear/www"
+ chmod -R 550 "${pkgdir}/var/lib/homegear/www"
+
+ cp Miscellaneous/GetDeviceFiles.sh "${pkgdir}/var/lib/homegear"
+ chown root:root "${pkgdir}/var/lib/homegear/GetDeviceFiles.sh"
+ chmod 755 "${pkgdir}/var/lib/homegear/GetDeviceFiles.sh"
+ cp Miscellaneous/DeviceTypePatch.patch "${pkgdir}/var/lib/homegear"
+ chown root:root "${pkgdir}/var/lib/homegear/DeviceTypePatch.patch"
+ chmod 644 "${pkgdir}/var/lib/homegear/DeviceTypePatch.patch"
+
+ mkdir -p "${pkgdir}/usr/lib/systemd/system"
+ cp "${srcdir}/homegear.service" "${pkgdir}/usr/lib/systemd/system"
+ chmod 644 "${pkgdir}/usr/lib/systemd/system/homegear.service"
+}
diff --git a/cast-to-bool.patch b/cast-to-bool.patch
new file mode 100644
index 000000000000..4edf4bcc19db
--- /dev/null
+++ b/cast-to-bool.patch
@@ -0,0 +1,14 @@
+diff -rup Homegear-0.5.25/Modules/Base/HelperFunctions/HelperFunctions.cpp ../src/Homegear-0.5.25/Modules/Base/HelperFunctions/HelperFunctions.cpp
+--- Homegear-0.5.25/Modules/Base/HelperFunctions/HelperFunctions.cpp 2015-06-10 12:49:17.000000000 +0200
++++ ../src/Homegear-0.5.25/Modules/Base/HelperFunctions/HelperFunctions.cpp 2016-01-03 22:52:48.237300951 +0100
+@@ -93,7 +93,7 @@ HelperFunctions::~HelperFunctions()
+ bool HelperFunctions::fileExists(std::string filename)
+ {
+ std::ifstream in(filename.c_str());
+- return in;
++ return (bool)in;
+ }
+
+ int32_t HelperFunctions::isDirectory(std::string path, bool& result)
+Only in ../src/Homegear-0.5.25/: lib
+Only in ../src/Homegear-0.5.25/: obj
diff --git a/homegear.install b/homegear.install
new file mode 100644
index 000000000000..912402156e92
--- /dev/null
+++ b/homegear.install
@@ -0,0 +1,95 @@
+fix_owner_perms() {
+ chmod 440 /etc/homegear/rpcclients.conf
+ chown homegear:homegear /etc/homegear/rpcclients.conf
+
+ mkdir -p /var/run/homegear
+ chown homegear:homegear /var/run/homegear
+ chmod 750 /var/run/homegear
+
+ mkdir -p /var/lib/homegear
+ chown homegear:homegear /var/lib/homegear
+ chmod 750 /var/lib/homegear
+
+ mkdir -p /var/log/homegear
+ chown homegear:homegear /var/log/homegear
+ chmod 750 /var/log/homegear
+
+ chown -R homegear:homegear /var/lib/homegear/scripts
+ chmod -R 550 /var/lib/homegear/scripts
+
+ chmod -R 550 /var/lib/homegear/firmware
+
+ chown -R homegear:homegear /var/lib/homegear/modules
+ chmod -R 550 /var/lib/homegear/modules
+ find /var/lib/homegear/www -type d -exec chmod 550 {} \;
+ find /var/lib/homegear/www -type f -exec chmod 440 {} \;
+}
+
+post_install() {
+ result=`id -u homegear 2>/dev/null`
+ if [ "0$result" -eq "0" ]; then
+ useradd --system --shell /bin/false homegear >/dev/null 2>&1
+ [ $? -ne 0 ] && exit 1
+ usermod -a -G dialout homegear 2>/dev/null
+ usermod -a -G gpio homegear 2>/dev/null
+ usermod -a -G spi homegear 2>/dev/null
+ fi
+
+ if test ! -e /var/lib/homegear/scripts; then
+ rm -Rf /tmp/HomegearScriptsDir
+ [ $? -ne 0 ] && exit 1
+ mkdir /tmp/HomegearScriptsDir
+ [ $? -ne 0 ] && exit 1
+ wget -P /tmp/HomegearScriptsDir/ http://homegear.eu/downloads/Homegear_PHP_XMLRPC_Client.zip
+ [ $? -ne 0 ] && exit 1
+ unzip -d /tmp/HomegearScriptsDir /tmp/HomegearScriptsDir/Homegear_PHP_XMLRPC_Client.zip
+ [ $? -ne 0 ] && exit 1
+ rm /tmp/HomegearScriptsDir/Homegear_PHP_XMLRPC_Client.zip
+ mkdir /var/lib/homegear/scripts
+ [ $? -ne 0 ] && exit 1
+ mv /tmp/HomegearScriptsDir/* /var/lib/homegear/scripts
+ [ $? -ne 0 ] && exit 1
+ chown -R homegear:homegear /var/lib/homegear/scripts
+ chmod -R 550 /var/lib/homegear/scripts
+ rm -Rf /tmp/HomegearScriptsDir
+ fi
+
+ pip2 install python-lzo
+
+ if test ! -e /etc/homegear/devices/0/rf_s.xml; then
+ echo "Downloading device description files..."
+ /var/lib/homegear/GetDeviceFiles.sh
+ fi
+
+ echo "Downloading current firmware updates..."
+ /var/lib/homegear/firmware/GetFirmwareUpdates.sh
+ [ $? -ne 0 ] && exit 1
+
+ if test ! -e /etc/homegear/homegear.crt; then
+ openssl genrsa -out /etc/homegear/homegear.key 2048
+ openssl req -batch -new -key /etc/homegear/homegear.key -out /etc/homegear/homegear.csr
+ openssl x509 -req -in /etc/homegear/homegear.csr -signkey /etc/homegear/homegear.key -out /etc/homegear/homegear.crt
+ rm /etc/homegear/homegear.csr
+ chown homegear:homegear /etc/homegear/homegear.key
+ chmod 400 /etc/homegear/homegear.key
+ openssl dhparam -check -text -5 1024 -out /etc/homegear/dh1024.pem
+ chown homegear:homegear /etc/homegear/dh1024.pem
+ chmod 400 /etc/homegear/dh1024.pem
+ fi
+
+ fix_owner_perms
+}
+
+post_upgrade() {
+ fix_owner_perms
+}
+
+post_remove() {
+ if test -e /etc/homegear; then
+ chown -R root:root /etc/homegear
+ fi
+ if test -e /var/lib/homegear; then
+ chown -R root:root /var/lib/homegear
+ fi
+ userdel homegear > /dev/null 2>&1
+}
diff --git a/homegear.logrotate b/homegear.logrotate
new file mode 100644
index 000000000000..d030b24a08ac
--- /dev/null
+++ b/homegear.logrotate
@@ -0,0 +1,13 @@
+/var/log/homegear/*.log /var/log/homegear/*.err {
+ missingok
+ rotate 30
+ compress
+ delaycompress
+ notifempty
+ size 10M
+ create 640 homegear homegear
+ sharedscripts
+ postrotate
+ systemctl restart homegear
+ endscript
+}
diff --git a/homegear.service b/homegear.service
new file mode 100644
index 000000000000..99f821364ee0
--- /dev/null
+++ b/homegear.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Homegear server
+After=network.target
+
+[Service]
+Type=forking
+User=homegear
+Group=homegear
+PIDFile=/var/run/homegear/pid
+ExecStart=/usr/bin/homegear -p /var/run/homegear/pid -d
+
+[Install]
+WantedBy=multi-user.target