biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / gonic / default.nix
blobf3c83a164bce6699b463344d2e1a2bf77f148a67
1 { lib, stdenv, buildGoModule, fetchFromGitHub
2 , nixosTests
3 , pkg-config, taglib, zlib
5 # Disable on-the-fly transcoding,
6 # removing the dependency on ffmpeg.
7 # The server will (as of 0.11.0) gracefully fall back
8 # to the original file, but if transcoding is configured
9 # that takes a while. So best to disable all transcoding
10 # in the configuration if you disable transcodingSupport.
11 , transcodingSupport ? true, ffmpeg
12 , mpv }:
14 buildGoModule rec {
15   pname = "gonic";
16   version = "0.16.4";
17   src = fetchFromGitHub {
18     owner = "sentriz";
19     repo = pname;
20     rev = "v${version}";
21     sha256 = "sha256-+8rKODoADU2k1quKvbijjs/6S/hpkegHhG7Si0LSE0k=";
22   };
24   nativeBuildInputs = [ pkg-config ];
25   buildInputs = [ taglib zlib ];
26   vendorHash = "sha256-6JkaiaAgtXYAZqVSRZJFObZvhEsHsbPaO9pwmKqIhYI=";
28   # TODO(Profpatsch): write a test for transcoding support,
29   # since it is prone to break
30   postPatch = lib.optionalString transcodingSupport ''
31     substituteInPlace \
32       transcode/transcode.go \
33       --replace \
34         '`ffmpeg' \
35         '`${lib.getBin ffmpeg}/bin/ffmpeg'
36   '' + ''
37     substituteInPlace \
38       jukebox/jukebox.go \
39       --replace \
40         '"mpv"' \
41         '"${lib.getBin mpv}/bin/mpv"'
42   '' + ''
43     substituteInPlace server/ctrlsubsonic/testdata/test* \
44       --replace \
45         '"audio/flac"' \
46         '"audio/x-flac"'
47   '';
49   passthru = {
50     tests.gonic = nixosTests.gonic;
51   };
53   meta = {
54     homepage = "https://github.com/sentriz/gonic";
55     description = "Music streaming server / subsonic server API implementation";
56     license = lib.licenses.gpl3Plus;
57     maintainers = with lib.maintainers; [ autrimpo ];
58     platforms = lib.platforms.linux;
59     mainProgram = "gonic";
60   };