diff options
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.ebuild | 135 |
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 +} |