Music assistant has custom modifications they made to librespot that they haven't bothered to even try to upstream.
Thus, they require a custom librespot. I tried and tried and tried and tried to just override the one already in nixpkgs
but I had trouble doing so despite copying the pattern already shown in nixpkgs for overriding the src of a cargo pkg
(See mopidy) but it just didn't work... Oh well. So I just patch nixpkgs instead with the new source. It works I guess.
This is about where I gave up...
```nix
nixpkgs.overlays = [
(final: prev: {
# Cannot use librespot upstream because music-assistant requires custom changes
# that they never bothered to even try to uptream
librespot = prev.librespot.overrideAttrs (oldAttrs: rec {
src = prev.fetchFromGitHub {
owner = "music-assistant";
repo = "librespot";
rev = "786cc46199e583f304a84c786acb0a9b37bc3fbd";
sha256 = "sha256-xaOrqC8yCjF23Tz31RD3CzqZ3xxrDM6ncW1yoovEaGQ=";
};
cargoDeps = oldAttrs.cargoDeps.overrideAttrs (oldAttrs': {
vendorStaging = oldAttrs'.vendorStaging.overrideAttrs {
outputHash = "sha256-SqvJSHkyd1IicT6c4pE96dBJNNodULhpyG14HRGVWCk=";
};
});
});
})
];
```
My NixOS configurations
Source Layout
/common- common configuration imported into all/machines/boot- config related to bootloaders, cpu microcode, and unlocking LUKS root disks over tor/network- config for tailscale, and NixOS container with automatic vpn tunneling via PIA/pc- config that a graphical PC should have. Have thepersonalrole set in the machine'sproperties.nixto enable everthing./server- config that creates new nixos services or extends existing ones to meet my needs
/machines- all my NixOS machines along with their machine unique configuration for hardware and services/kexec- a special machine for generating minimal kexec images. Does not import/common
/secrets- encrypted shared secrets unlocked through/machinesssh host keys
Languages
Nix
92.8%
Shell
6.8%
Makefile
0.4%