mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-10 23:13:56 +00:00
19004cb1b5
`snapcast` fails to build with GCC 13 because of a missing include of `cstdint` (that got transitively included in older versions). This issue has already been fixed upstream some months ago, but there have been no new releases after that, so this change pulls in the upstream commit using `fetchpatch` for now.
60 lines
1.8 KiB
Nix
60 lines
1.8 KiB
Nix
{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkg-config
|
|
, alsa-lib, asio, avahi, boost179, flac, libogg, libvorbis, soxr
|
|
, IOKit, AudioToolbox
|
|
, aixlog, popl
|
|
, pulseaudioSupport ? false, libpulseaudio
|
|
, nixosTests }:
|
|
|
|
assert pulseaudioSupport -> libpulseaudio != null;
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "snapcast";
|
|
version = "0.27.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "badaix";
|
|
repo = "snapcast";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-dlK1xQQqst4VQjioC7MZzqXwMC+JfqtvnD5lrOqGhYI=";
|
|
};
|
|
|
|
patches = [
|
|
# Can be removed with next release after 0.27.0
|
|
(fetchpatch {
|
|
name = "include-cstdint.patch";
|
|
url = "https://github.com/badaix/snapcast/commit/481f08199ca31c60c9a3475f1064e6b06a503d12.patch";
|
|
hash = "sha256-klpvmBpBAlBMtcgnNfW6X6vDbJFnOuOsPUDXcNf5tGc=";
|
|
})
|
|
];
|
|
|
|
nativeBuildInputs = [ cmake pkg-config ];
|
|
# snapcast also supports building against tremor but as we have libogg, that's
|
|
# not needed
|
|
buildInputs = [
|
|
boost179
|
|
asio avahi flac libogg libvorbis
|
|
aixlog popl soxr
|
|
] ++ lib.optional pulseaudioSupport libpulseaudio
|
|
++ lib.optional stdenv.isLinux alsa-lib
|
|
++ lib.optionals stdenv.isDarwin [ IOKit AudioToolbox ];
|
|
|
|
TARGET=lib.optionalString stdenv.isDarwin "MACOS";
|
|
|
|
# Upstream systemd unit files are pretty awful, so we provide our own in a
|
|
# NixOS module. It might make sense to get that upstreamed...
|
|
postInstall = ''
|
|
install -d $out/share/doc/snapcast
|
|
cp -r ../doc/* ../*.md $out/share/doc/snapcast
|
|
'';
|
|
|
|
passthru.tests.snapcast = nixosTests.snapcast;
|
|
|
|
meta = with lib; {
|
|
description = "Synchronous multi-room audio player";
|
|
homepage = "https://github.com/badaix/snapcast";
|
|
maintainers = with maintainers; [ fpletz ];
|
|
platforms = platforms.linux ++ platforms.darwin;
|
|
license = licenses.gpl3Plus;
|
|
};
|
|
}
|