2022-11-21 17:40:18 +00:00
|
|
|
{ lib, stdenv, fetchurl, makeWrapper, dpkg, jre_headless, openssl, nixosTests }:
|
2020-08-20 17:08:02 +00:00
|
|
|
|
|
|
|
let
|
|
|
|
pname = "jitsi-videobridge2";
|
2024-05-15 15:35:15 +00:00
|
|
|
version = "2.3-105-ge155b81e";
|
2020-08-20 17:08:02 +00:00
|
|
|
src = fetchurl {
|
|
|
|
url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
|
2024-05-15 15:35:15 +00:00
|
|
|
sha256 = "jQTZwnj1oECjUTD8dC6PF5tJcPye8FYUJmYEEBhBuRs=";
|
2020-08-20 17:08:02 +00:00
|
|
|
};
|
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
inherit pname version src;
|
|
|
|
|
|
|
|
dontBuild = true;
|
|
|
|
|
|
|
|
unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
|
|
|
|
|
2021-03-09 03:18:52 +00:00
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
2021-01-09 10:05:03 +00:00
|
|
|
|
2020-08-20 17:08:02 +00:00
|
|
|
installPhase = ''
|
2021-02-16 17:04:54 +00:00
|
|
|
runHook preInstall
|
2020-08-20 17:08:02 +00:00
|
|
|
substituteInPlace usr/share/jitsi-videobridge/jvb.sh \
|
|
|
|
--replace "exec java" "exec ${jre_headless}/bin/java"
|
|
|
|
|
|
|
|
mkdir -p $out/{bin,share/jitsi-videobridge,etc/jitsi/videobridge}
|
|
|
|
mv etc/jitsi/videobridge/logging.properties $out/etc/jitsi/videobridge/
|
|
|
|
cp ${./logging.properties-journal} $out/etc/jitsi/videobridge/logging.properties-journal
|
|
|
|
mv usr/share/jitsi-videobridge/* $out/share/jitsi-videobridge/
|
|
|
|
ln -s $out/share/jitsi-videobridge/jvb.sh $out/bin/jitsi-videobridge
|
2021-01-09 10:05:03 +00:00
|
|
|
|
2022-11-21 17:40:18 +00:00
|
|
|
# - work around https://github.com/jitsi/jitsi-videobridge/issues/1547
|
|
|
|
# - make libcrypto.so available at runtime for hardware AES
|
2021-01-09 10:05:03 +00:00
|
|
|
wrapProgram $out/bin/jitsi-videobridge \
|
2022-11-21 17:40:18 +00:00
|
|
|
--set VIDEOBRIDGE_GC_TYPE G1GC \
|
|
|
|
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl ]}
|
2021-02-16 17:04:54 +00:00
|
|
|
runHook postInstall
|
2020-08-20 17:08:02 +00:00
|
|
|
'';
|
|
|
|
|
|
|
|
passthru.tests = {
|
|
|
|
single-host-smoke-test = nixosTests.jitsi-meet;
|
|
|
|
};
|
|
|
|
|
2021-09-18 10:52:07 +00:00
|
|
|
passthru.updateScript = ./update.sh;
|
|
|
|
|
2021-01-15 22:18:51 +00:00
|
|
|
meta = with lib; {
|
2020-08-20 17:08:02 +00:00
|
|
|
description = "A WebRTC compatible video router";
|
|
|
|
longDescription = ''
|
|
|
|
Jitsi Videobridge is an XMPP server component that allows for multiuser video communication.
|
|
|
|
Unlike the expensive dedicated hardware videobridges, Jitsi Videobridge does not mix the video
|
|
|
|
channels into a composite video stream, but only relays the received video channels to all call
|
|
|
|
participants. Therefore, while it does need to run on a server with good network bandwidth,
|
|
|
|
CPU horsepower is not that critical for performance.
|
|
|
|
'';
|
|
|
|
homepage = "https://github.com/jitsi/jitsi-videobridge";
|
|
|
|
license = licenses.asl20;
|
|
|
|
maintainers = teams.jitsi.members;
|
|
|
|
platforms = platforms.linux;
|
2024-01-02 11:29:13 +00:00
|
|
|
mainProgram = "jitsi-videobridge";
|
2020-08-20 17:08:02 +00:00
|
|
|
};
|
|
|
|
}
|