summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/openhab-bin/openhab-bin-4.2.1.ebuild')
-rw-r--r--app-misc/openhab-bin/openhab-bin-4.2.1.ebuild135
1 files changed, 135 insertions, 0 deletions
diff --git a/app-misc/openhab-bin/openhab-bin-4.2.1.ebuild b/app-misc/openhab-bin/openhab-bin-4.2.1.ebuild
new file mode 100644
index 000000000000..6625624aba64
--- /dev/null
+++ b/app-misc/openhab-bin/openhab-bin-4.2.1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo systemd tmpfiles
+
+MY_PN=${PN%-bin}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="An open-source automation software for your home"
+HOMEPAGE="https://www.openhab.org/"
+SRC_URI="
+ https://github.com/openhab/openhab-distro/releases/download/${PV}/${MY_P}.tar.gz
+ https://raw.githubusercontent.com/openhab/openhab-linuxpkg/10061acd36524afb12a033fea6dcf142b399bf56/resources/usr/bin/openhab-cli
+ -> openhab-cli-2024-01-14
+"
+
+S="${WORKDIR}"
+LICENSE="EPL-2.0"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm64"
+
+MY_JAVA_DEPEND=">=virtual/jre-17"
+
+# app-arch/zip: used by "openhab-cli backup"
+RDEPEND="
+ ${MY_JAVA_DEPEND}
+ acct-user/openhab
+ app-arch/zip
+ dev-java/java-config
+"
+
+BDEPEND="app-arch/unzip"
+
+src_compile() {
+ :
+}
+
+src_install() {
+ # We use move here to preserve the executable bit on the files under
+ # openhab/runtime/bin.
+ domove() {
+ local source="${1}"
+ local target="${2}"
+
+ local dest="${ED}/${target}"
+
+ mkdir -p "${dest}" || die "Failed to create ${dest}"
+ mv "${source}"/* "${dest}" || die "Failed to move"
+ }
+
+ domove runtime /usr/share/openhab/runtime
+ domove conf /etc/openhab
+
+ domove userdata /var/lib/openhab
+ fowners -R openhab:openhab /var/lib/openhab
+
+ local dirs=(
+ /usr/share/openhab/addons
+ /var/log/openhab
+ )
+ local d
+ for d in "${dirs[@]}"; do
+ keepdir "${d}"
+ fowners openhab:openhab "${d}"
+ done
+
+ newenvd "${FILESDIR}"/openhab.env 50openhab
+
+ systemd_dounit "${FILESDIR}"/openhab.service
+ newtmpfiles "${FILESDIR}"/openhab.tmpfiles openhab.conf
+
+ newbin - openhab <<EOF
+#!/usr/bin/env bash
+set -eu
+
+if [[ -v JAVA_HOME_OVERRIDE ]]; then
+ JAVA_HOME="\${JAVA_HOME_OVERRIDE}"
+else
+ if ! GENTOO_JAVA_VM="\$(depend-java-query --get-vm '${MY_JAVA_DEPEND}')"; then
+ >&2 echo "Could not find Java VM for ${MY_JAVA_DEPEND}"
+ exit 1
+ fi
+
+ if ! JAVA_HOME_ASSIGNMENT=\$(java-config -P \${GENTOO_JAVA_VM} | grep JAVA_HOME); then
+ >&2 echo "Could not retrieve JAVA_HOME of \${GENTOO_JAVA_VM}"
+ exit 1
+ fi
+
+ eval \${JAVA_HOME_ASSIGNMENT}
+fi
+
+export JAVA_HOME
+exec /usr/share/openhab/runtime/bin/karaf "\$@"
+EOF
+ newbin "${DISTDIR}"/openhab-cli-2024-01-14 openhab-cli
+
+ newinitd "${FILESDIR}"/openhab.initd openhab
+}
+
+pkg_postinst() {
+ tmpfiles_process openhab.conf
+
+ if [[ -z ${REPLACING_VERSIONS} && -z ${OPENHAB_POSTINST_UPDATE} ]]; then
+ return
+ fi
+
+ if [[ -d "${EROOT}"/run/systemd/system ]]; then
+ if systemctl is-active --quiet openhab; then
+ local openhab_service_active=1
+ einfo "Restarting OpenHAB service due to version update"
+ edob systemctl daemon-reload
+ edob systemctl stop openhab
+ fi
+
+ echo y | edob -m "Cleaning OpenHAB cache" \
+ openhab-cli clean-cache
+ assert "Failed to clean OpenHAB cache"
+
+ if [[ -v openhab_service_active ]]; then
+ edob systemctl start openhab
+ fi
+ elif [[ -d /run/openrc ]]; then
+ einfo "Follow these steps to complete the update of OpenHAB:"
+ einfo
+ einfo "1. Stop the OpenHAB's service"
+ einfo "$ rc-service openhab stop"
+ einfo "2. Clean OpenHAB's cache"
+ einfo "$ openahb-cli clean-cache"
+ einfo "3. Restart OpenHAB's service"
+ einfo "$ rc-service openhab start"
+ fi
+}