On 18 February 2015 at 22:22, Nikita Karetnikov <nik...@karetnikov.org> wrote:
> I've tried various options, but mpd always fails with a permission error.
> Here's one example:
>
>   services.mpd.enable = true;
>   services.mpd.dataDir = "/home/nikita/dotfiles/mpd/.mpd";
>   services.mpd.musicDirectory = "/home/nikita/music";
>
> Both directories exist.
>
> $ journalctl -u mpd.service
>
> Feb 19 09:11:22 mu systemd[1]: Starting Music Player Daemon...
> Feb 19 09:11:22 mu systemd[1]: mpd.service: control process exited, 
> code=exited status=1
> Feb 19 09:11:22 mu systemd[1]: Failed to start Music Player Daemon.
> Feb 19 09:11:22 mu systemd[1]: Unit mpd.service entered failed state.
> Feb 19 09:11:22 mu systemd[1]: mpd.service failed.
> Feb 19 09:11:22 mu mpd-pre-start[15264]: mkdir: cannot create directory 
> ‘/home/nikita’: Permission denied
>
> Why is it even trying to create "/home/nikita"?

Hi Nikita,

Looking at the source (nixos/modules/services/audio/mpd.nix), it looks
like the mpd service is designed to run as the mpd user. If you are
willing to go with that design, I guess you should not set
services.mpd.dataDir, and make sure the mpd user has read access to
your music directory. (It tries to create /home/nikita because that's
where its dataDir is supposed to go.)

If you'd rather mpd be run as your own user, I don't think NixOS has
support for that, so the easiest solution is probably to add mpd to
environment.systemPackages and just start mpd yourself.

James
_______________________________________________
nix-dev mailing list
nix-dev@lists.science.uu.nl
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to