1 { lib, stdenv, makeWrapper, fetchFromGitHub, which, pkg-config
4 , awscli2, bubblewrap, curl, ffmpeg, yt-dlp
5 , runtimePackages ? [ awscli2 bubblewrap curl ffmpeg yt-dlp ]
13 inherit pname version;
15 src = fetchFromGitHub {
18 rev = "refs/tags/v${version}";
19 hash = "sha256-o3P7oTizO2l2WkB4LormZ/Ses5jZOpgQ1r1zB1Y3Bjs=";
23 substituteInPlace src/lang/dune \
24 --replace-warn "(run git rev-parse --short HEAD)" "(run echo -n nixpkgs)"
40 dune install --prefix "$out"
48 wrapProgram $out/bin/liquidsoap \
49 --set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
50 --prefix PATH : ${lib.makeBinPath runtimePackages}
70 # Mandatory dependencies
75 ocamlPackages.ocaml_pcre
77 ocamlPackages.camomile
79 ocamlPackages.fileutils
80 ocamlPackages.magic-mime
81 ocamlPackages.menhir # liquidsoap-lang
82 ocamlPackages.menhirLib
83 ocamlPackages.metadata
84 ocamlPackages.dune-build-info
86 ocamlPackages.sedlex # liquidsoap-lang
87 ocamlPackages.ppx_string
89 # Recommended dependencies
92 # Optional dependencies
96 ocamlPackages.camlimages
103 ocamlPackages.graphics
104 # ocamlPackages.gstreamer # Broken but advertised feature
105 ocamlPackages.imagelib
106 ocamlPackages.inotify
115 ocamlPackages.portaudio
116 ocamlPackages.posix-time2
117 ocamlPackages.pulseaudio
118 ocamlPackages.samplerate
120 ocamlPackages.soundtouch
127 ocamlPackages.tsdl-image
128 ocamlPackages.tsdl-ttf
130 ocamlPackages.xmlplaylist
135 description = "Swiss-army knife for multimedia streaming";
136 mainProgram = "liquidsoap";
137 homepage = "https://www.liquidsoap.info/";
138 changelog = "https://raw.githubusercontent.com/savonet/liquidsoap/main/CHANGES.md";
139 maintainers = with lib.maintainers; [ dandellion ehmry ];
140 license = lib.licenses.gpl2Plus;
141 platforms = ocamlPackages.ocaml.meta.platforms or [];