Merge pull request #140777 from dali99/update_liquidsoap
Update liquidsoap to 2.0.5
This commit is contained in:
commit
6f2f7cc4ab
20
pkgs/development/ocaml-modules/cry/default.nix
Normal file
20
pkgs/development/ocaml-modules/cry/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "cry";
|
||||
version = "0.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-cry";
|
||||
rev = version;
|
||||
sha256 = "1g4smccj27sv8pb9az5hbzxi99swg3d55mp7j25lz30xyabvksc3";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-cry";
|
||||
description = "OCaml client for the various icecast & shoutcast source protocols";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
24
pkgs/development/ocaml-modules/faad/default.nix
Normal file
24
pkgs/development/ocaml-modules/faad/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, faad2, pkg-config }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "faad";
|
||||
version = "0.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-faad";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-3ayKZhgJAgsoOqn0InSrM5f3TImRHOQMtWETICo4t3o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ faad2 ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-faad";
|
||||
description = "Bindings for the faad library which provides functions for decoding AAC audio files";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
24
pkgs/development/ocaml-modules/frei0r/default.nix
Normal file
24
pkgs/development/ocaml-modules/frei0r/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, pkg-config, frei0r }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "frei0r";
|
||||
version = "0.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-frei0r";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-eh/ymZO/3a1z6uvZdnXgma/7AU2NBVs2lddA+R/kuQA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ frei0r ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-frei0r";
|
||||
description = "Bindings for the frei0r API which provides video effects";
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
26
pkgs/development/ocaml-modules/lame/default.nix
Normal file
26
pkgs/development/ocaml-modules/lame/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, pkg-config, dune-configurator, lame }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "lame";
|
||||
version = "0.3.6";
|
||||
|
||||
minimalOCamlVersion = "4.03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-lame";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-oRxP1OM0pGdz8CB+ou7kbbrNaB1x9z9KTfciLsivFnI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ lame ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-lame";
|
||||
description = "Bindings for the lame library which provides functions for encoding mp3 files";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
25
pkgs/development/ocaml-modules/lilv/default.nix
Normal file
25
pkgs/development/ocaml-modules/lilv/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ctypes, lilv }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "lilv";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-lilv";
|
||||
rev = "v${version}";
|
||||
sha256 = "080ja8c4sxprk5qnldpfzxriag57m9603vny3b4bnwh5xm1id08c";
|
||||
};
|
||||
|
||||
minimalOCamlVersion = "4.03.0";
|
||||
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ ctypes lilv ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-lilv";
|
||||
description = "OCaml bindings for lilv";
|
||||
license = licenses.lgpl21Only;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
|
@ -1,21 +1,18 @@
|
|||
{ stdenv, lib, pkg-config, ocaml, findlib, fetchurl, curl, ncurses, lwt }:
|
||||
|
||||
if lib.versionOlder ocaml.version "4.02"
|
||||
{ lib, stdenv, fetchurl, pkg-config, ocaml, findlib, curl, lwt, lwt_ppx }:
|
||||
if lib.versionOlder ocaml.version "4.04"
|
||||
then throw "ocurl is not available for OCaml ${ocaml.version}"
|
||||
else
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ocurl";
|
||||
version = "0.9.1";
|
||||
version = "0.9.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ygrek.org.ua/p/release/ocurl/ocurl-${version}.tar.gz";
|
||||
sha256 = "0n621cxb9012pj280c7821qqsdhypj8qy9qgrah79dkh6a8h2py6";
|
||||
url = "https://github.com/ygrek/ocurl/releases/download/${version}/ocurl-${version}.tar.gz";
|
||||
sha256 = "sha256-4DWXGMh02s1VwLWW5d7h0jtMOUubWmBPGm1hghfWd2M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ocaml findlib ];
|
||||
buildInputs = [ ncurses ];
|
||||
propagatedBuildInputs = [ curl lwt ];
|
||||
propagatedBuildInputs = [ curl lwt lwt_ppx ];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
|
@ -24,7 +21,7 @@ stdenv.mkDerivation rec {
|
|||
description = "OCaml bindings to libcurl";
|
||||
license = lib.licenses.mit;
|
||||
homepage = "http://ygrek.org.ua/p/ocurl/";
|
||||
maintainers = with lib.maintainers; [ bennofs ];
|
||||
maintainers = with lib.maintainers; [ dandellion bennofs ];
|
||||
platforms = ocaml.meta.platforms or [ ];
|
||||
};
|
||||
}
|
||||
|
|
23
pkgs/development/ocaml-modules/soundtouch/default.nix
Normal file
23
pkgs/development/ocaml-modules/soundtouch/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, soundtouch }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "soundtouch";
|
||||
version = "0.1.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-soundtouch";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-81Mhk4PZx4jGrVIevzMslvVbKzipzDzHWnbtOjeZCI8=";
|
||||
};
|
||||
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ soundtouch ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-soundtouch";
|
||||
description = "Bindings for the soundtouch library which provides functions for changing pitch and timestretching audio data";
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
26
pkgs/development/ocaml-modules/taglib/default.nix
Normal file
26
pkgs/development/ocaml-modules/taglib/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, pkg-config, taglib, zlib }:
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "taglib";
|
||||
version = "0.3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-taglib";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-n8Vv8Vepvhx7anZdWIdBfw+HSQShKWjNe6l0gqRRsSs=";
|
||||
};
|
||||
|
||||
minimalOCamlVersion = "4.05.0"; # Documented version 4.02.0. 4.05.0 actually required.
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ dune-configurator ];
|
||||
propagatedBuildInputs = [ taglib zlib ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/savonet/ocaml-taglib";
|
||||
description = "Bindings for the taglib library which provides functions for reading tags in headers of audio files";
|
||||
license = with licenses; [ lgpl21Plus "link-exception" ]; # GNU Library Public License 2 Linking Exception
|
||||
maintainers = with maintainers; [ dandellion ];
|
||||
};
|
||||
}
|
|
@ -1,108 +1,99 @@
|
|||
{ lib, stdenv, makeWrapper, fetchurl, which, pkg-config
|
||||
, fetchFromGitLab
|
||||
, fetchFromGitHub
|
||||
, libjpeg
|
||||
, ocamlPackages
|
||||
, libao, portaudio, alsa-lib, libpulseaudio, libjack2
|
||||
, libsamplerate, libmad, taglib, lame, libogg
|
||||
, libvorbis, speex, libtheora, libopus, zlib
|
||||
, faad2, flac, ladspaH, ffmpeg, frei0r, dssi
|
||||
, awscli2, curl, ffmpeg, youtube-dl
|
||||
, runtimePackages ? [ awscli2 curl ffmpeg youtube-dl ]
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "liquidsoap";
|
||||
version = "1.4.2";
|
||||
|
||||
ocaml-ffmpeg = fetchurl {
|
||||
url = "https://github.com/savonet/ocaml-ffmpeg/releases/download/v0.4.2/ocaml-ffmpeg-0.4.2.tar.gz";
|
||||
sha256 = "1lx5s1avds9fsh77828ifn71r2g89rxakhs8pp995a675phm9viw";
|
||||
};
|
||||
|
||||
packageFilters = map (p: "-e '/ocaml-${p}/d'" )
|
||||
[ "gstreamer" "shine" "aacplus" "schroedinger"
|
||||
"voaacenc" "soundtouch" "gavl" "lo"
|
||||
];
|
||||
version = "2.0.5";
|
||||
in
|
||||
|
||||
# Liquidsoap 1.4.2 is not compatible with menhir ≥ 20220210
|
||||
# Locally override menhir to an earlier version
|
||||
let
|
||||
menhirLib = ocamlPackages.menhirLib.overrideAttrs (o: rec {
|
||||
version = "20211128";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.inria.fr";
|
||||
owner = "fpottier";
|
||||
repo = "menhir";
|
||||
rev = version;
|
||||
sha256 = "sha256-L/zfjPZfn9L7qqqqJGk3Ge52rvujOVPiL8jxfH5R60g=";
|
||||
};
|
||||
});
|
||||
|
||||
menhirSdk = ocamlPackages.menhirSdk.override { inherit menhirLib; };
|
||||
|
||||
menhir = ocamlPackages.menhir.override {
|
||||
inherit menhirLib menhirSdk;
|
||||
};
|
||||
|
||||
srt = ocamlPackages.srt.overrideAttrs (old: rec {
|
||||
version = "0.1.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "savonet";
|
||||
repo = "ocaml-srt";
|
||||
rev = "v${version}";
|
||||
sha256 = "0xh89w4j7lljvpy2n08x6m9kw88f82snmzf23kp0gw637sjnrj6f";
|
||||
};
|
||||
});
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "${pname}-full-${version}";
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}-full.tar.gz";
|
||||
sha256 = "0wkwnzj1a0vizv7sr1blwk5gzm2qi0n02ndijnq1i50cwrgxs1a4";
|
||||
url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "sha256-+BHRAnO2sKK504EhXc6LPabnOzcOAAHmtmqVNQ8OeZU=";
|
||||
};
|
||||
|
||||
# Use ocaml-srt and ocaml-fdkaac from nixpkgs
|
||||
# Use ocaml-ffmpeg at 0.4.2 for compatibility with ffmpeg 4.3
|
||||
prePatch = ''
|
||||
rm -rf ocaml-srt*/ ocaml-fdkaac*/ ocaml-ffmpeg*/
|
||||
tar xzf ${ocaml-ffmpeg}
|
||||
'';
|
||||
|
||||
preConfigure = /* we prefer system-wide libs */ ''
|
||||
sed -i "s|gsed|sed|" Makefile
|
||||
make bootstrap
|
||||
# autoreconf -vi # use system libraries
|
||||
|
||||
sed ${toString packageFilters} PACKAGES.default > PACKAGES
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/liquidsoap --set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa
|
||||
wrapProgram $out/bin/liquidsoap \
|
||||
--set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
|
||||
--prefix PATH : ${lib.makeBinPath runtimePackages}
|
||||
'';
|
||||
|
||||
configureFlags = [ "--localstatedir=/var" ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
buildInputs =
|
||||
[ which ocamlPackages.ocaml ocamlPackages.findlib
|
||||
libao portaudio alsa-lib libpulseaudio libjack2
|
||||
libsamplerate libmad taglib lame libogg
|
||||
libvorbis speex libtheora libopus zlib
|
||||
faad2 flac ladspaH ffmpeg frei0r dssi
|
||||
ocamlPackages.xmlm ocamlPackages.ocaml_pcre
|
||||
ocamlPackages.camomile
|
||||
ocamlPackages.fdkaac
|
||||
srt ocamlPackages.sedlex menhir menhirLib
|
||||
];
|
||||
buildInputs = [
|
||||
libjpeg
|
||||
which
|
||||
ocamlPackages.ocaml ocamlPackages.findlib
|
||||
|
||||
hardeningDisable = [ "format" "fortify" ];
|
||||
# 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; [ ehmry ];
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ dandellion ehmry ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = ocamlPackages.ocaml.meta.platforms or [];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -239,6 +239,8 @@ let
|
|||
|
||||
crunch = callPackage ../development/tools/ocaml/crunch { };
|
||||
|
||||
cry = callPackage ../development/ocaml-modules/cry { };
|
||||
|
||||
cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
|
||||
|
||||
csexp = callPackage ../development/ocaml-modules/csexp { };
|
||||
|
@ -397,6 +399,8 @@ let
|
|||
|
||||
ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
|
||||
|
||||
faad = callPackage ../development/ocaml-modules/faad { };
|
||||
|
||||
facile = callPackage ../development/ocaml-modules/facile { };
|
||||
|
||||
faraday = callPackage ../development/ocaml-modules/faraday { };
|
||||
|
@ -460,6 +464,10 @@ let
|
|||
|
||||
fpath = callPackage ../development/ocaml-modules/fpath { };
|
||||
|
||||
frei0r = callPackage ../development/ocaml-modules/frei0r {
|
||||
inherit (pkgs) frei0r;
|
||||
};
|
||||
|
||||
functoria = callPackage ../development/ocaml-modules/functoria { };
|
||||
|
||||
functoria-runtime = callPackage ../development/ocaml-modules/functoria/runtime.nix { };
|
||||
|
@ -684,6 +692,10 @@ let
|
|||
|
||||
lambda-term = callPackage ../development/ocaml-modules/lambda-term { };
|
||||
|
||||
lame = callPackage ../development/ocaml-modules/lame {
|
||||
inherit (pkgs) lame;
|
||||
};
|
||||
|
||||
lastfm = callPackage ../development/ocaml-modules/lastfm { };
|
||||
|
||||
lens = callPackage ../development/ocaml-modules/lens { };
|
||||
|
@ -694,6 +706,10 @@ let
|
|||
|
||||
letsencrypt-dns = callPackage ../development/ocaml-modules/letsencrypt/dns.nix { };
|
||||
|
||||
lilv = callPackage ../development/ocaml-modules/lilv {
|
||||
inherit (pkgs) lilv;
|
||||
};
|
||||
|
||||
linenoise = callPackage ../development/ocaml-modules/linenoise { };
|
||||
|
||||
llvm = callPackage ../development/ocaml-modules/llvm {
|
||||
|
@ -1179,6 +1195,10 @@ let
|
|||
|
||||
sosa = callPackage ../development/ocaml-modules/sosa { };
|
||||
|
||||
soundtouch = callPackage ../development/ocaml-modules/soundtouch {
|
||||
inherit (pkgs) soundtouch;
|
||||
};
|
||||
|
||||
spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
|
||||
|
||||
speex = callPackage ../development/ocaml-modules/speex {
|
||||
|
@ -1377,6 +1397,10 @@ let
|
|||
|
||||
stringext = callPackage ../development/ocaml-modules/stringext { };
|
||||
|
||||
taglib = callPackage ../development/ocaml-modules/taglib {
|
||||
inherit (pkgs) taglib;
|
||||
};
|
||||
|
||||
tcslib = callPackage ../development/ocaml-modules/tcslib { };
|
||||
|
||||
telegraml = callPackage ../development/ocaml-modules/telegraml { };
|
||||
|
|
Loading…
Reference in a new issue