I've remade this PKGBUILD a bit to adjust a few things:
-
networkmanager and apparmor moved to optional dependencies as home assistant seems to be happy without them anyway (and apparmor doesn't work on Arch Linux ARM anyway)
-
renamed
systemd-journal-gatewayd.socket
tosystemd-journal-gatewayd-homeassistant.socket
as to not overwrite another package's file -
moved
NetworkManager.conf
netowrkmanager'sconf.d
directory, should work just fine from there I think -
moved
docker.json
to somewhere where user can just inspect it and implement changes himself, I have no better idea how to sovle this without overwriting files inpost_install
which I'm trying to avoid -
changed arch to
any
, it works fine on ARM -
not sure what was going on with
docker-desktop
conflict -
moved hassio data to
/var/lib/hassio
, as much as original script stores it in/usr/share/hassio
I don't think that's a good idea, application data should be in/var
Here's my PKGBUILD:
pkgname=homeassistant-supervised
pkgver=1.4.1
pkgrel=1
pkgdesc="Home Assistant Supervised"
arch=("any")
url="https://github.com/home-assistant/supervised-installer"
license=("APACHE")
depends=("curl" "bash" "docker" "dbus" "jq" "systemd" "home-assistant-os-agent")
optdepends=("networkmanager: support for built-in network management"
"apparmor: enhanced security")
source=("git+https://github.com/home-assistant/supervised-installer.git#tag=$pkgver"
"https://version.home-assistant.io/apparmor.txt"
"hassio.json")
sha256sums=('SKIP'
'0573e65361ab190853749d97eab765eb9c7d897d075efa0ef45c89559f052c12'
'997652faa0dfa0048c445c53eb8936773b5f520c5ae88ced8cc6dddf29911947')
package() {
cd supervised-installer/homeassistant-supervised
install -Dm644 "etc/NetworkManager/NetworkManager.conf" "$pkgdir/etc/NetworkManager/conf.d/homeassistant.conf"
install -Dm644 "etc/docker/daemon.json" "$pkgdir/usr/share/hassio/conf/docker/daemon.json"
install -Dm644 "etc/systemd/system/hassio-apparmor.service" "$pkgdir/usr/lib/systemd/system/hassio-apparmor.service"
sed -i "s/%%SERVICE_DOCKER%%/docker.service/g" "$pkgdir/usr/lib/systemd/system/hassio-apparmor.service"
sed -i "s|%%HASSIO_APPARMOR_BINARY%%|/usr/bin/hassio-apparmor|g" "$pkgdir/usr/lib/systemd/system/hassio-apparmor.service"
install -Dm644 "etc/systemd/system/hassio-supervisor.service" "$pkgdir/usr/lib/systemd/system/hassio-supervisor.service"
sed -i "s|%%BINARY_DOCKER%%|/usr/bin/docker|g" "$pkgdir/usr/lib/systemd/system/hassio-supervisor.service"
sed -i "s|%%BINARY_HASSIO%%|/usr/bin/hassio-supervisor|g" "$pkgdir/usr/lib/systemd/system/hassio-supervisor.service"
sed -i "s/systemd-journal-gatewayd.socket/systemd-journal-gatewayd-homeassistant.socket/g" "$pkgdir/usr/lib/systemd/system/hassio-supervisor.service"
install -Dm755 "usr/bin/ha" "$pkgdir/usr/bin/ha"
install -Dm644 "usr/lib/systemd/system/systemd-journal-gatewayd.socket" "$pkgdir/usr/lib/systemd/system/systemd-journal-gatewayd-homeassistant.socket"
sed -i "s/\[Socket\]/[Socket]\nService=systemd-journal-gatewayd.service/" "$pkgdir/usr/lib/systemd/system/systemd-journal-gatewayd-homeassistant.socket"
install -Dm755 "usr/sbin/hassio-apparmor" "$pkgdir/usr/bin/hassio-apparmor"
sed -i "s|%%HASSIO_CONFIG%%|/etc/hassio.json|g" "$pkgdir/usr/bin/hassio-apparmor"
install -Dm755 "usr/sbin/hassio-supervisor" "$pkgdir/usr/bin/hassio-supervisor"
sed -i "s|%%HASSIO_CONFIG%%|/etc/hassio.json|g" "$pkgdir/usr/bin/hassio-supervisor"
ARCH=$(uname -m)
install -Dm644 "../../hassio.json" "$pkgdir/etc/hassio.json"
sed -i "s/%%ARCH%%/${ARCH}/g" "$pkgdir/etc/hassio.json"
install -Dm644 "../../apparmor.txt" "$pkgdir/usr/share/apparmor/extra-profiles/hassio-supervisor"
}
and included hassio.json:
{
"supervisor": "homeassistant/%%ARCH%%-hassio-supervisor",
"machine": "default",
"data": "/var/lib/hassio"
}
Pinned Comments
gaelic commented on 2024-06-19 18:07 (UTC) (edited on 2024-06-19 18:48 (UTC) by gaelic)
cgroup v1 is deprecated as of now and my pc is not booting anymore with the required parameter. I am downgrading systemd for the moment, but we need a solution for this problem rather soon. From the systemd changelog (version 256):
Support for cgroup v1 ('legacy' and 'hybrid' hierarchies) is now considered obsolete and systemd by default will refuse to boot under it. To forcibly reenable cgroup v1 support, SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 must be set on kernel command line. The meson option 'default-hierarchy=' is also deprecated, i.e. only cgroup v2 ('unified' hierarchy) can be selected as build-time default.
rokam commented on 2022-08-05 22:03 (UTC) (edited on 2022-08-05 22:04 (UTC) by rokam)
You need to add
systemd.unified_cgroup_hierarchy=false
in your kernel parameters.Read more at: https://wiki.archlinux.org/title/Kernel_parameters