{ lib, buildGoPackage, fetchFromGitHub , pkg-config, taglib, alsaLib # Disable on-the-fly transcoding, # removing the dependency on ffmpeg. # The server will (as of 0.11.0) gracefully fall back # to the original file, but if transcoding is configured # that takes a while. So best to disable all transcoding # in the configuration if you disable transcodingSupport. , transcodingSupport ? true, ffmpeg # udpater , writers, vgo2nix }: assert transcodingSupport -> ffmpeg != null; let # update these, then run `updateScript` to update dependencies version = "0.11.0"; rev = "056fb54a703ef5b5194ce112cbbdd8fb53dbb1ea"; sha256 = "0hd794wrz29nh89lfnq67w1rc23sg085rqf1agwlgpqycns2djl9"; src = fetchFromGitHub { owner = "sentriz"; repo = "gonic"; inherit rev sha256; }; in buildGoPackage { pname = "gonic-${version}"; inherit version src; goPackagePath = "go.senan.xyz/gonic"; goDeps = ./deps.nix; nativeBuildInputs = [ pkg-config ]; buildInputs = [ taglib alsaLib ]; postPatch = lib.optionalString transcodingSupport '' substituteInPlace \ server/encode/encode.go \ --replace \ 'ffmpegPath = "/usr/bin/ffmpeg"' \ 'ffmpegPath = "${ffmpeg}/bin/ffmpeg"' \ ''; passthru.updateScript = writers.writeDash "update-gonic" '' ${vgo2nix}/bin/vgo2nix \ -dir ${src} \ -outfile ${lib.escapeShellArg (toString ./deps.nix)} ''; meta = { homepage = "https://github.com/sentriz/gonic"; description = "Music streaming server / subsonic server API implementation"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ Profpatsch ]; }; }