nixpkgs-suyu/pkgs/tools/audio/liquidsoap/full.nix
2022-06-21 20:29:14 -05:00

99 lines
2.6 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.0.6";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-1wD9BApbDA/ovzZoniay+jciP/V2C8EoGQehd5N8PPQ=";
};
postFixup = ''
wrapProgram $out/bin/liquidsoap \
--set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
--prefix PATH : ${lib.makeBinPath runtimePackages}
'';
nativeBuildInputs = [ makeWrapper pkg-config ];
buildInputs = [
libjpeg
which
ocamlPackages.ocaml ocamlPackages.findlib
# Mandatory dependencies
ocamlPackages.dtools
ocamlPackages.duppy
ocamlPackages.mm
ocamlPackages.ocaml_pcre
ocamlPackages.menhir ocamlPackages.menhirLib
ocamlPackages.sedlex
# Recommended dependencies
ocamlPackages.camomile
ocamlPackages.samplerate
# Optional dependencies
ocamlPackages.camlimages
ocamlPackages.gd4o
ocamlPackages.alsa
ocamlPackages.ao
ocamlPackages.bjack
ocamlPackages.cry
ocamlPackages.dssi
ocamlPackages.faad
ocamlPackages.fdkaac
ocamlPackages.srt
ocamlPackages.ffmpeg
ocamlPackages.flac
ocamlPackages.frei0r
ocamlPackages.gstreamer
ocamlPackages.inotify
ocamlPackages.ladspa
ocamlPackages.lame
ocamlPackages.lastfm
ocamlPackages.lo
ocamlPackages.mad
ocamlPackages.magic
ocamlPackages.ogg
ocamlPackages.opus
ocamlPackages.portaudio
ocamlPackages.pulseaudio
ocamlPackages.shine
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.ocurl
ocamlPackages.lilv
ocamlPackages.graphics
ocamlPackages.yojson
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 [];
};
}