summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Alex2023-08-03 12:51:39 +1000
committerBen Alex2023-08-03 12:51:39 +1000
commit727e18182568d67b54f69d501f4dae254121c76f (patch)
treeb08a891c397f10a5a2e08b37c327a03c654fe598
downloadaur-727e18182568d67b54f69d501f4dae254121c76f.tar.gz
Initial commit
-rw-r--r--.SRCINFO32
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD67
-rwxr-xr-xkaraf_wrapper.sh8
-rw-r--r--openhab4.default1
-rw-r--r--openhab4.hook10
-rw-r--r--openhab4.install4
-rw-r--r--openhab4.patch26
-rw-r--r--openhab4.service18
9 files changed, 170 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9d25eb3f24c7
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,32 @@
+pkgbase = openhab4
+ pkgdesc = openhab4 open source home automation software
+ pkgver = 4.0.1
+ pkgrel = 1
+ url = http://www.openhab.org/
+ install = openhab4.install
+ arch = any
+ license = EPL
+ depends = java-runtime-headless=17
+ depends = archlinux-java-run
+ optdepends = openhab4-addons: add-on archives for offline use
+ conflicts = openhab4-snapshot
+ backup = etc/openhab4/services/addons.cfg
+ backup = etc/openhab4/services/runtime.cfg
+ backup = etc/default/openhab4
+ backup = var/lib/openhab4/etc/keystore
+ backup = var/lib/openhab4/etc/users.properties
+ backup = var/lib/openhab4/etc/keys.properties
+ source = openhab-4.0.1.tar.gz::https://openhab.jfrog.io/artifactory/libs-release/org/openhab/distro/openhab/4.0.1/openhab-4.0.1.tar.gz
+ source = openhab4.service
+ source = openhab4.default
+ source = openhab4.patch
+ source = karaf_wrapper.sh
+ source = openhab4.hook
+ sha256sums = 3e9f77cd84c7431db13ca34b74bb2fb986296f4e11ef917e5e1724b3fd498f60
+ sha256sums = b339bb5d1ddea2307170941033f1ace0de5bb82cdb0f4494ee00e9f9724aec85
+ sha256sums = b149d976dc13dc18c62d2014457557e266e733ead70b0730d06dcd0372da78a7
+ sha256sums = e35b8a07056f6dcb78b5bbbb56181a168e7620ae9e7c87d4f1c7fc334b76285a
+ sha256sums = b19c995beb521af7bf7a882370396748063a5bda9fdf2f28ed36e98437e98555
+ sha256sums = 602b17bf8b824df289dbd5e5eea824042b3ec38de58c76b69b4dc72d90adfe35
+
+pkgname = openhab4
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..1306b43099e7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.gz
+*.zst
+pkg
+src
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..9fa26a2242a8
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,67 @@
+# Maintainer: Ben Alex <ben.alex@acegi.com.au>
+pkgname=openhab4
+pkgver=4.0.1
+pkgrel=1
+pkgdesc="openhab4 open source home automation software"
+arch=("any")
+ url="http://www.openhab.org/"
+license=("EPL")
+depends=("java-runtime-headless=17" "archlinux-java-run")
+optdepends=("openhab4-addons: add-on archives for offline use")
+
+conflicts=("openhab4-snapshot")
+
+backup=("etc/${pkgname}/services/addons.cfg"
+ "etc/${pkgname}/services/runtime.cfg"
+ "etc/default/${pkgname}"
+ "var/lib/${pkgname}/etc/keystore"
+ "var/lib/${pkgname}/etc/users.properties"
+ "var/lib/${pkgname}/etc/keys.properties")
+install="${pkgname}.install"
+
+source=("openhab-${pkgver}.tar.gz::https://openhab.jfrog.io/artifactory/libs-release/org/openhab/distro/openhab/${pkgver}/openhab-${pkgver}.tar.gz"
+ "${pkgname}.service"
+ "${pkgname}.default"
+ "${pkgname}.patch"
+ "karaf_wrapper.sh"
+ "${pkgname}.hook")
+sha256sums=('3e9f77cd84c7431db13ca34b74bb2fb986296f4e11ef917e5e1724b3fd498f60'
+ 'b339bb5d1ddea2307170941033f1ace0de5bb82cdb0f4494ee00e9f9724aec85'
+ 'b149d976dc13dc18c62d2014457557e266e733ead70b0730d06dcd0372da78a7'
+ 'e35b8a07056f6dcb78b5bbbb56181a168e7620ae9e7c87d4f1c7fc334b76285a'
+ 'b19c995beb521af7bf7a882370396748063a5bda9fdf2f28ed36e98437e98555'
+ '602b17bf8b824df289dbd5e5eea824042b3ec38de58c76b69b4dc72d90adfe35')
+
+
+prepare() {
+ patch -p1 < ${srcdir}/${pkgname}.patch
+}
+
+package() {
+ install -Dm644 "${srcdir}/${pkgname}.default" "${pkgdir}/etc/default/${pkgname}"
+ install -Dm644 "${srcdir}/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
+
+ mkdir -p "${pkgdir}/etc/${pkgname}"
+ cp -r ${srcdir}/conf/* "${pkgdir}/etc/${pkgname}"
+
+ mkdir -p "${pkgdir}/var/lib/${pkgname}/etc"
+ cp -r ${srcdir}/userdata/etc/* "${pkgdir}/var/lib/${pkgname}/etc"
+
+ mkdir -p "${pkgdir}/usr/share/${pkgname}"
+ cp -r "${srcdir}/runtime" "${pkgdir}/usr/share/${pkgname}"
+ cp -r "${srcdir}/addons" "${pkgdir}/usr/share/${pkgname}"
+ install -m755 "${srcdir}/karaf_wrapper.sh" "${pkgdir}/usr/share/${pkgname}/karaf_wrapper.sh"
+
+ mkdir -p "${pkgdir}/usr/share/libalpm/hooks"
+ install -m644 "${srcdir}/${pkgname}.hook" "${pkgdir}/usr/share/libalpm/hooks/${pkgname}.hook"
+
+ mkdir -p "${pkgdir}/var/log/${pkgname}"
+
+ echo "u ${pkgname} - - /usr/share/${pkgname}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
+ echo "m ${pkgname} uucp" >> "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
+ echo "Z /etc/${pkgname} - ${pkgname} ${pkgname} -" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ echo "Z /usr/share/${pkgname} - ${pkgname} ${pkgname} -" >> "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ echo "Z /var/lib/${pkgname} - ${pkgname} ${pkgname} -" >> "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ echo "z /var/log/${pkgname} - ${pkgname} ${pkgname} -" >> "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+ echo "z /run/lock 0775 root uucp -" >> "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
+}
diff --git a/karaf_wrapper.sh b/karaf_wrapper.sh
new file mode 100755
index 000000000000..0e74efd772b0
--- /dev/null
+++ b/karaf_wrapper.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+if [[ -z "${JAVA_HOME}" ]]; then
+ JAVA_HOME_DETECTED=$(archlinux-java-run --min 17 --max 17 --java-home)
+ if (( $? == 0 )); then
+ export JAVA_HOME=${JAVA_HOME_DETECTED}
+ fi
+fi
+exec /usr/share/openhab4/runtime/bin/karaf "${@}"
diff --git a/openhab4.default b/openhab4.default
new file mode 100644
index 000000000000..73212dcb2294
--- /dev/null
+++ b/openhab4.default
@@ -0,0 +1 @@
+EXTRA_JAVA_OPTS=""
diff --git a/openhab4.hook b/openhab4.hook
new file mode 100644
index 000000000000..8cb09544ef5a
--- /dev/null
+++ b/openhab4.hook
@@ -0,0 +1,10 @@
+[Trigger]
+Type = Package
+Operation = Upgrade
+Target = openhab4
+Target = openhab4-addons
+
+[Action]
+Description = Stopping openhab4 for upgrade
+When = PreTransaction
+Exec = /usr/bin/systemctl stop openhab4.service
diff --git a/openhab4.install b/openhab4.install
new file mode 100644
index 000000000000..80d990d63126
--- /dev/null
+++ b/openhab4.install
@@ -0,0 +1,4 @@
+pre_upgrade() {
+ rm -fr /var/lib/openhab4/cache
+ rm -fr /var/lib/openhab4/tmp
+}
diff --git a/openhab4.patch b/openhab4.patch
new file mode 100644
index 000000000000..49420e335757
--- /dev/null
+++ b/openhab4.patch
@@ -0,0 +1,26 @@
+diff -Nur openhab4.orig/runtime/bin/oh_dir_layout openhab4.new/runtime/bin/oh_dir_layout
+--- openhab4.orig/runtime/bin/oh_dir_layout 2020-11-29 18:19:58.000000000 +0100
++++ openhab4.new/runtime/bin/oh_dir_layout 2020-11-30 21:15:26.742400846 +0100
+@@ -6,7 +6,7 @@
+ export OPENHAB_HOME=`cd "$DIRNAME/../.."; pwd`
+
+ if [ -z ${OPENHAB_CONF} ]; then
+- export OPENHAB_CONF="${OPENHAB_HOME}/conf"
++ export OPENHAB_CONF="/etc/openhab4"
+ fi
+
+ if [ -z ${OPENHAB_RUNTIME} ]; then
+@@ -14,11 +14,11 @@
+ fi
+
+ if [ -z ${OPENHAB_USERDATA} ]; then
+- export OPENHAB_USERDATA="${OPENHAB_HOME}/userdata"
++ export OPENHAB_USERDATA="/var/lib/openhab4"
+ fi
+
+ if [ -z ${OPENHAB_LOGDIR} ]; then
+- export OPENHAB_LOGDIR="${OPENHAB_USERDATA}/logs"
++ export OPENHAB_LOGDIR="/var/log/openhab4"
+ fi
+
+ if [ -z ${OPENHAB_BACKUPS} ]; then
diff --git a/openhab4.service b/openhab4.service
new file mode 100644
index 000000000000..b5a8ac145a5e
--- /dev/null
+++ b/openhab4.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=The openHAB 4 Home Automation Bus Solution
+Documentation=http://docs.openhab.org
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+Type=simple
+User=openhab4
+Group=openhab4
+WorkingDirectory=/usr/share/openhab4
+EnvironmentFile=/etc/default/openhab4
+ExecStart=/usr/share/openhab4/karaf_wrapper.sh server
+ExecStop=/usr/share/openhab4/karaf_wrapper.sh stop
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target