I upgraded from 22.05 to NixOS 22.11. Most things went smoothly but mpd won’t run.
Note: mpd is configured using home-manager and started as a user systemd service but there is nothing in the journal.
$ systemctl --user status mpd.service
× mpd.service - Music Player Daemon
Loaded: loaded (/home/user/.config/systemd/user/mpd.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2022-12-16 16:49:23 EST; 16h ago
Process: 232395 ExecStartPre=/nix/store/xbdqbi2mscmhl5wcpbgpjdwxbsrvpkil-bash-5.1-p16/bin/bash -c /nix/store/p643r4aczmzb0dhyrx3dj592f0s>
Process: 232396 ExecStart=/nix/store/smzyrnjyjx9cc84dj2zzwwigad7158s1-mpd-0.23.8/bin/mpd --no-daemon /nix/store/pza614cg1rbnxckb5ay3ic2p>
Main PID: 232396 (code=exited, status=127)
$ journalctl --user -u mpd.services
-- No entries --
Running the command by hand reveals the error.
$ /nix/store/smzyrnjyjx9cc84dj2zzwwigad7158s1-mpd-0.23.8/bin/mpd --no-daemon /nix/store/pza614cg1rbnxckb5ay3ic2p78v4yg7y-mpd.conf
/nix/store/smzyrnjyjx9cc84dj2zzwwigad7158s1-mpd-0.23.8/bin/mpd: symbol lookup error: /nix/store/ljldxs6x6clp4j1z5cqsfyfz0rmazglf-pipewire-0.3.60-jack/lib/libjack.so.0: undefined symbol: pw_reallocarray
It looks like the pipewire-jack integration has a problem. I’m not directly using Jack (at least I didn’t configure anything) so I was surprised to see the issue.
The mpd module source includes libjack2 which explains how jack2 is involved but I’m not sure how to further trouble shoot the problem nor how to fix it. Suggestions?