ripasso-cursive: cosmetic changes (#361736)
[NixPkgs.git] / pkgs / by-name / go / gonic / package.nix
blobc09c58f0b269d9f234fef2cc9449d1b9b2eb8b97
1 { lib, 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-fail \
34         '`ffmpeg' \
35         '`${lib.getBin ffmpeg}/bin/ffmpeg'
36   '' + ''
37     substituteInPlace \
38       jukebox/jukebox.go \
39       --replace-fail \
40         '"mpv"' \
41         '"${lib.getBin mpv}/bin/mpv"'
42   '' + ''
43     substituteInPlace server/ctrlsubsonic/testdata/test* \
44       --replace-quiet \
45         '"audio/flac"' \
46         '"audio/x-flac"'
47   '';
49   passthru = {
50     tests.gonic = nixosTests.gonic;
51   };
53   # tests require it
54   __darwinAllowLocalNetworking = true;
56   meta = {
57     homepage = "https://github.com/sentriz/gonic";
58     description = "Music streaming server / subsonic server API implementation";
59     license = lib.licenses.gpl3Plus;
60     maintainers = with lib.maintainers; [ autrimpo ];
61     mainProgram = "gonic";
62   };