nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
Daniel Løvbrøtte Olsen f88f273291
Update liquidsoap and its dependencies (#310112)
* ocamlPackages.duppy: 0.9.3 -> 0.9.4

* ocamlPackages.ffmpeg: 1.1.8 -> 1.1.11

* ocamlPackages.lastfm: 0.3.3 -> 0.3.4

* ocamlPackages.uri: 4.2.0 -> 4.4.0

Diff: https://github.com/mirage/ocaml-uri/compare/None...v4.4.0

* ocamlPackages.gd4o: remove, ocamlPackages.gd: init at 1.1

* ocamlPackages.mad: 0.5.2 -> 0.5.3

Diff: https://github.com/savonet/ocaml-mad/compare/v0.5.2...v0.5.3

* ocamlPackages.tsdl-image: 0.5 -> 0.6

Diff: https://github.com/sanette/tsdl-image/compare/0.5...0.6

* liquidsoap: small package fixups

Diff: https://github.com/savonet/liquidsoap/compare/refs/tags/v2.2.4...v2.2.5
2024-05-21 07:38:49 +02:00

144 lines
3.2 KiB
Nix

{ lib, stdenv, makeWrapper, fetchFromGitHub, which, pkg-config
, libjpeg
, ocamlPackages
, awscli2, bubblewrap, curl, ffmpeg, yt-dlp
, runtimePackages ? [ awscli2 bubblewrap curl ffmpeg yt-dlp ]
}:
let
pname = "liquidsoap";
version = "2.2.5";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "savonet";
repo = "liquidsoap";
rev = "refs/tags/v${version}";
hash = "sha256-o3P7oTizO2l2WkB4LormZ/Ses5jZOpgQ1r1zB1Y3Bjs=";
};
postPatch = ''
substituteInPlace src/lang/dune \
--replace-warn "(run git rev-parse --short HEAD)" "(run echo -n nixpkgs)"
'';
dontConfigure = true;
buildPhase = ''
runHook preBuild
dune build
runHook postBuild
'';
installPhase = ''
runHook preInstall
dune install --prefix "$out"
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
wrapProgram $out/bin/liquidsoap \
--set LIQ_LADSPA_PATH /run/current-system/sw/lib/ladspa \
--prefix PATH : ${lib.makeBinPath runtimePackages}
runHook postFixup
'';
strictDeps = true;
nativeBuildInputs = [
makeWrapper
pkg-config
which
ocamlPackages.ocaml
ocamlPackages.dune_3
ocamlPackages.findlib
ocamlPackages.menhir
];
buildInputs = [
libjpeg
# Mandatory dependencies
ocamlPackages.dtools
ocamlPackages.duppy
ocamlPackages.mm
ocamlPackages.ocurl
ocamlPackages.ocaml_pcre
ocamlPackages.cry
ocamlPackages.camomile
ocamlPackages.uri
ocamlPackages.fileutils
ocamlPackages.magic-mime
ocamlPackages.menhir # liquidsoap-lang
ocamlPackages.menhirLib
ocamlPackages.metadata
ocamlPackages.dune-build-info
ocamlPackages.re
ocamlPackages.sedlex # liquidsoap-lang
ocamlPackages.ppx_string
# Recommended dependencies
ocamlPackages.ffmpeg
# Optional dependencies
ocamlPackages.alsa
ocamlPackages.ao
ocamlPackages.bjack
ocamlPackages.camlimages
ocamlPackages.dssi
ocamlPackages.faad
ocamlPackages.fdkaac
ocamlPackages.flac
ocamlPackages.frei0r
ocamlPackages.gd
ocamlPackages.graphics
# ocamlPackages.gstreamer # Broken but advertised feature
ocamlPackages.imagelib
ocamlPackages.inotify
ocamlPackages.ladspa
ocamlPackages.lame
ocamlPackages.lastfm
ocamlPackages.lilv
ocamlPackages.lo
ocamlPackages.mad
ocamlPackages.ogg
ocamlPackages.opus
ocamlPackages.portaudio
ocamlPackages.posix-time2
ocamlPackages.pulseaudio
ocamlPackages.samplerate
ocamlPackages.shine
ocamlPackages.soundtouch
ocamlPackages.speex
ocamlPackages.srt
ocamlPackages.ssl
ocamlPackages.taglib
ocamlPackages.theora
ocamlPackages.tsdl
ocamlPackages.tsdl-image
ocamlPackages.tsdl-ttf
ocamlPackages.vorbis
ocamlPackages.xmlplaylist
ocamlPackages.yaml
];
meta = {
description = "Swiss-army knife for multimedia streaming";
mainProgram = "liquidsoap";
homepage = "https://www.liquidsoap.info/";
changelog = "https://raw.githubusercontent.com/savonet/liquidsoap/main/CHANGES.md";
maintainers = with lib.maintainers; [ dandellion ehmry ];
license = lib.licenses.gpl2Plus;
platforms = ocamlPackages.ocaml.meta.platforms or [];
};
}