gentoo-ebuilds/app-misc/openhab-bin/openhab-bin-4.3.5.ebuild
Florian Schmaus 87d5751480
app-misc/openhab-bin: add 4.3.5
Signed-off-by: Florian Schmaus <flow@gentoo.org>
2025-05-30 14:24:40 +02:00

136 lines
3.1 KiB
Bash

# Copyright 1999-2025 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}
MY_CLI_VER=2024-01-14
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-${MY_CLI_VER}
"
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-${MY_CLI_VER} 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
}