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)