Make AirPlay 2 work for Shairport Sync on Audio host
- use nqptp - use Shairport Sync and nqptp versions, which work - disable IPv6, since Shairport Sync doesn't work with it for some reason - configure firewall for AirPlay 2 - use correct subnet
This commit is contained in:
parent
eaedf34aa2
commit
c72b30aa6a
3 changed files with 98 additions and 19 deletions
34
flake.nix
34
flake.nix
|
@ -18,12 +18,38 @@
|
|||
|
||||
outputs = { nixpkgs, nixpkgs-unstable, nixos-generators, ... }:
|
||||
let
|
||||
# Shairport Sync with metadata and MQTT support.
|
||||
shairportSyncExtendedNixpkgsUnstableOverlay = final: prev: {
|
||||
shairport-sync = (prev.shairport-sync.override { enableMetadata = true; }).overrideAttrs (finalAttr: previousAttr: {
|
||||
# Shairport Sync 4.3.1 (with nqptp 1.2.4) with metadata, MQTT and AirPlay 2 support.
|
||||
shairportSync431ExtendedNixpkgsUnstableOverlay = final: prev: {
|
||||
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
|
||||
configureFlags = previousAttr.configureFlags ++ [ "--with-mqtt-client" ];
|
||||
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.
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "mikebrady";
|
||||
repo = finalAttr.pname;
|
||||
rev = "4.3.1";
|
||||
hash = "sha256-Yj0SKMKACj2B/ADPkUzO4EvaYZX39erKmjaTsr5UN0s=";
|
||||
};
|
||||
});
|
||||
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/
|
||||
'';
|
||||
});
|
||||
};
|
||||
in {
|
||||
|
@ -31,7 +57,7 @@
|
|||
meta = {
|
||||
nixpkgs = nixpkgs.legacyPackages."x86_64-linux";
|
||||
nodeNixpkgs = {
|
||||
audio = nixpkgs-unstable.legacyPackages."x86_64-linux".extend shairportSyncExtendedNixpkgsUnstableOverlay;
|
||||
audio = nixpkgs-unstable.legacyPackages."x86_64-linux".extend shairportSync431ExtendedNixpkgsUnstableOverlay;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue