aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/servers/gonic/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/gonic/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/gonic/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/gonic/default.nix b/nixpkgs/pkgs/servers/gonic/default.nix
new file mode 100644
index 00000000000..343b3d2b19d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gonic/default.nix
@@ -0,0 +1,59 @@
+{ 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 ];
+ };
+}