diff options
author | Michael Lipp | 2016-01-05 23:33:42 +0100 |
---|---|---|
committer | Michael Lipp | 2016-01-05 23:33:42 +0100 |
commit | c02cf25c46fe765dff5cbe81a9ae685882d8ff12 (patch) | |
tree | f6af39f0936b1373eebc465c3464dd3ca315afd7 | |
download | aur-c02cf25c46fe765dff5cbe81a9ae685882d8ff12.tar.gz |
Initial version
-rw-r--r-- | .SRCINFO | 52 | ||||
-rw-r--r-- | GetDeviceFiles.sh.patch | 12 | ||||
-rw-r--r-- | GetFirmwareUpdates.sh.patch | 12 | ||||
-rw-r--r-- | PKGBUILD | 134 | ||||
-rw-r--r-- | cast-to-bool.patch | 14 | ||||
-rw-r--r-- | homegear.install | 95 | ||||
-rw-r--r-- | homegear.logrotate | 13 | ||||
-rw-r--r-- | homegear.service | 13 |
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 |