nixpkgs/pkgs/tools/audio/liquidsoap/full.nix

103 lines
2.5 KiB
Nix

{ lib, stdenv, makeWrapper, fetchurl, which, pkg-config
, libjpeg
, ocamlPackages
, awscli2, curl, ffmpeg, youtube-dl
, runtimePackages ? [ awscli2 curl ffmpeg youtube-dl ]
}:
let
pname = "liquidsoap";
version = "2.1.3";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-2ti/ZF1tPI+3dpwG6IZLBcg0C19ffnJA3Dog5ngrEgQ=";
};
postFixup = ''
wrapProgram $out/bin/liquidsoap \
--set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
--prefix PATH : ${lib.makeBinPath runtimePackages}
'';
strictDeps = true;
nativeBuildInputs =
[ makeWrapper pkg-config which
ocamlPackages.ocaml ocamlPackages.findlib ocamlPackages.menhir
];
buildInputs = [
libjpeg
# Mandatory dependencies
ocamlPackages.dtools
ocamlPackages.duppy
ocamlPackages.mm
ocamlPackages.ocaml_pcre
ocamlPackages.menhir ocamlPackages.menhirLib
ocamlPackages.camomile
ocamlPackages.ocurl
ocamlPackages.uri
ocamlPackages.sedlex
# Recommended dependencies
ocamlPackages.ffmpeg
# Optional dependencies
ocamlPackages.camlimages
ocamlPackages.gd4o
ocamlPackages.alsa
ocamlPackages.ao
ocamlPackages.bjack
ocamlPackages.cry
ocamlPackages.dssi
ocamlPackages.faad
ocamlPackages.fdkaac
ocamlPackages.flac
ocamlPackages.frei0r
ocamlPackages.gstreamer
ocamlPackages.inotify
ocamlPackages.ladspa
ocamlPackages.lame
ocamlPackages.lastfm
ocamlPackages.lilv
ocamlPackages.lo
ocamlPackages.mad
ocamlPackages.magic
ocamlPackages.ogg
ocamlPackages.opus
ocamlPackages.portaudio
ocamlPackages.pulseaudio
ocamlPackages.shine
ocamlPackages.samplerate
ocamlPackages.soundtouch
ocamlPackages.speex
ocamlPackages.srt
ocamlPackages.ssl
ocamlPackages.taglib
ocamlPackages.theora
ocamlPackages.vorbis
ocamlPackages.xmlplaylist
ocamlPackages.posix-time2
ocamlPackages.tsdl
ocamlPackages.tsdl-image
ocamlPackages.tsdl-ttf
# Undocumented dependencies
ocamlPackages.graphics
ocamlPackages.cohttp-lwt-unix
];
meta = with lib; {
description = "Swiss-army knife for multimedia streaming";
homepage = "https://www.liquidsoap.info/";
maintainers = with maintainers; [ dandellion ehmry ];
license = licenses.gpl2Plus;
platforms = ocamlPackages.ocaml.meta.platforms or [];
};
}