about summary refs log tree commit diff
path: root/pkgs/tools/audio/liquidsoap/full.nix
blob: 73e9bf51636e28f1438476082ed1d3c57e35b927 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{ 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.5";
in
stdenv.mkDerivation {
  inherit pname version;

  src = fetchurl {
    url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
    sha256 = "sha256-+BHRAnO2sKK504EhXc6LPabnOzcOAAHmtmqVNQ8OeZU=";
  };

  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 [];
  };
}