Remove version lock for shairport-sync

The current version in nixpkgs is newer than the one we are currently locking, the nqptp fix was also already in nixpkgs.

Co-authored-by: c6ristian <c6ristian@christian.moe>
This commit is contained in:
jopejoe1 2024-11-02 22:39:24 +01:00 committed by c6ristian
parent 9d9b8ede02
commit 967daacc06
Signed by: c6ristian
SSH key fingerprint: SHA256:B3m+yzpaxGXSEcDBpPHfvza/DNC0wuX+CKMeGq8wgak
5 changed files with 4 additions and 53 deletions

View file

@ -26,50 +26,18 @@
outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, sops-nix, ... }: outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, sops-nix, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
# Shairport Sync 4.3.1 (with nqptp 1.2.4) with metadata, MQTT and AirPlay 2 support.
shairportSync431ExtendedNixpkgsUnstableOverlay = final: prev: { shairportSync431ExtendedNixpkgsUnstableOverlay = final: prev: {
shairport-sync = (prev.shairport-sync.override { enableMetadata = true; enableAirplay2 = true; }).overrideAttrs (finalAttr: previousAttr: { shairport-sync = (prev.shairport-sync.override { enableMetadata = true; enableAirplay2 = true; }).overrideAttrs (finalAttr: previousAttr: {
# See: https://github.com/mikebrady/shairport-sync/blob/e78a88b64adfe7b5f88fd6faedf55c57445bb240/CONFIGURATION%20FLAGS.md # See: https://github.com/mikebrady/shairport-sync/blob/e78a88b64adfe7b5f88fd6faedf55c57445bb240/CONFIGURATION%20FLAGS.md
configureFlags = previousAttr.configureFlags ++ [ "--with-mqtt-client" ]; configureFlags = previousAttr.configureFlags ++ [ "--with-mqtt-client" ];
buildInputs = previousAttr.buildInputs ++ [ final.mosquitto ]; buildInputs = previousAttr.buildInputs ++ [ final.mosquitto ];
# Use specific Shairport Sync and nqptp versions, since with those the
# following error doesn't happen:
# fatal error: The nqptp service on this system, which is required for
# Shairport Sync to operate, does not seem to be initialised.
#
# Also use a more recent dev version to fix Pipewire stuttering issue.
# See:
# https://github.com/mikebrady/shairport-sync/issues/1736
# https://github.com/mikebrady/shairport-sync/blob/a65ec2d7f1f380bbae196d7f8f1cd6a88ef5777b/RELEASENOTES-DEVELOPMENT.md#version-432-dev-51-g98679bbb
src = final.fetchFromGitHub {
owner = "mikebrady";
repo = finalAttr.pname;
rev = "98679bbb54f5aaeda859e34aa28425647b8d179e";
hash = "sha256-k0kcgtWk2xlG34lP0ryEaqdskYMNM68YnIRLwFR3jaY=";
};
});
nqptp = prev.nqptp.overrideAttrs (finalAttr: previousAttr: {
# See Shairport Sync version note.
src = final.fetchFromGitHub {
owner = "mikebrady";
repo = finalAttr.pname;
rev = "1.2.4";
hash = "sha256-roTNcr3v2kzE6vQ5plAVtlw1+2yJplltOYsGGibtoZo=";
};
# Custom install phase to avoid setcap.
# See:
# https://github.com/mikebrady/nqptp/blob/1.2.4/Makefile.am#L23
installPhase = ''
mkdir -p $out/bin
cp nqptp $out/bin/
'';
}); });
}; };
pkgs-unstable = nixpkgs-unstable.legacyPackages."x86_64-linux"; pkgs-unstable = nixpkgs-unstable.legacyPackages."x86_64-linux";
in in
{ {
nixosConfigurations = { nixosConfigurations = {
audio-hauptraum-kueche = nixpkgs-unstable.lib.nixosSystem { audio-hauptraum-kueche = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [
./config/common ./config/common

View file

@ -12,7 +12,6 @@ in
imports = [ imports = [
./librespot.nix ./librespot.nix
./mpd.nix ./mpd.nix
./networking.nix
./pipewire.nix ./pipewire.nix
./shairport-sync.nix ./shairport-sync.nix
]; ];

View file

@ -23,7 +23,7 @@ in
After = [ "network-online.target" "pipewire.service" ]; After = [ "network-online.target" "pipewire.service" ];
}; };
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.librespot}/bin/librespot --name '${config.ccchh.services.audio.name}' --device-type speaker --bitrate 320 --enable-volume-normalisation --disable-audio-cache --disable-credential-cache --quiet"; ExecStart = "${pkgs.librespot}/bin/librespot --name '${config.ccchh.services.audio.name}' --device-type speaker --bitrate 320 --enable-volume-normalisation --disable-audio-cache --disable-credential-cache";
User = "librespot"; User = "librespot";
Group = "librespot"; Group = "librespot";
}; };
@ -34,7 +34,7 @@ in
users.librespot = { users.librespot = {
isSystemUser = true; isSystemUser = true;
group = "librespot"; group = "librespot";
extraGroups = [ "pipewire" ]; extraGroups = [ "pipewire" "audio" ];
}; };
groups.librespot = { }; groups.librespot = { };
}; };

View file

@ -1,16 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.ccchh.services.audio;
in
{
config = mkIf cfg.enable {
# Disable IPv6, since Shairport-Sync doesn't work with IPv6. Unclear why.
networking.enableIPv6 = false;
};
}

View file

@ -20,7 +20,7 @@ in
arguments = "-o pw -v"; arguments = "-o pw -v";
}; };
users.users.shairport.extraGroups = [ "pipewire" ]; users.users.shairport.extraGroups = [ "pipewire" "audio" ];
environment.etc.shairport-sync-config = { environment.etc.shairport-sync-config = {
enable = true; enable = true;