Hi Attila
> dear Guix,
>
> my ultimate goal is to run Home Assistant (a python based service)
> from Shepherd.
I have a not yet running attempt of home assistant packaged, maybe you
would like to have a stab at it?
> packaging it seems to be too much effort, so i looked into running it in a
> `guix shell --container`. it works fine when done from the terminal:
>
> $ su - hass
> $ guix shell --manifest=manifest.scm --container --emulate-fhs --network
> --share=/srv/hass
> $ cd /srv/hass && source bin/activate && LD_LIBRARY_PATH=/lib:/lib64 hass
> 2>&1 | tee /var/log/home-assistant.log
>
> (specifications->manifest
> '("python"
> "python-virtualenv"
> "python-pytzdata"
> "autoconf"
> "openssl"
> "libxml2"
> "libxslt"
> "libjpeg"
> "libffi"
> "eudev"
> "zlib"
> "pkg-config"
> "ffmpeg"
> "gcc-toolchain"
>
> "git"
> ))
>
> now, i've converted this to a Shepherd service like this:
>
> (simple-service
> 'home-assistant
> shepherd-root-service-type
> (list
> (shepherd-service
> (requirement '(file-systems networking guix-daemon))
> (provision '(home-assistant))
> (documentation "")
> ;; TODO herd stop doesn't work
> (start
> #~(lambda _
> (fork+exec-command
> (list #$(file-append guix "/bin/guix")
> "shell"
> "--manifest=manifest.scm"
> "--container"
> "--emulate-fhs"
> "--network"
> "--share=/srv/hass"
> "--"
> #$(file-append bash "/bin/bash")
> "-c" "cd /srv/hass && source bin/activate &&
> LD_LIBRARY_PATH=/lib:/lib64 hass")
> #:log-file "/var/log/home-assistant.log"
> #:user '#$(user-account-name *hass-user*)
> #:group '#$(user-account-group *hass-user*)
> #:supplementary-groups
> '#$(user-account-supplementary-groups *hass-user*)
> #:environment-variables
> (list (string-append "HOME=/home/"
> #$(user-account-name *hass-user*)))))))))
>
>
> but this errors out:
>
> guix shell: error: mkdir: Permission denied:
> "/tmp/guix-directory.sfpIhA/real-root"
>
> should this work, or am i holding it wrong?
>
> or should it be done some other way? any examples around?
>
> if it should work, then any hints on what to look at for a fix? grepping for
> 'real-root' brings up MOUNT-FILE-SYSTEMS in linux-container.scm, but i
> couldn't find anything obviously broken there.
>
> sidenote: debugging this would be a lot easier if the error wasn't reduced to
> the above line, but instead a general error handler printed a backtrace.
>
> --
> • attila lendvai
> • PGP: 963F 5D5F 45C7 DFCD 0A39
> --
> “When men yield up the privilege of thinking, the last shadow of liberty
> quits the horizon.”
> — Thomas Paine (1737–1809)