flake/pkgs/mumble-git/package.nix
2024-10-07 16:07:53 +08:00

118 lines
2.5 KiB
Nix

{
lib,
alsa-lib,
avahi-compat,
boost,
cmake,
fetchFromGitHub,
flac,
libjack2,
libogg,
libopus,
libpulseaudio,
libsndfile,
libvorbis,
nixosTests,
pipewire,
pkg-config,
poco,
protobuf,
python3,
qt6,
rnnoise,
speechd,
speex,
stdenv,
jackSupport ? false,
pipewireSupport ? true,
pulseSupport ? true,
speechdSupport ? false,
}:
stdenv.mkDerivation {
pname = "mumble";
version = "1.5.634-unstable-2024-10-05";
src = fetchFromGitHub {
owner = "mumble-voip";
repo = "mumble";
rev = "cb01bfa5200fce53db68b769d05995c999e7cdd8";
hash = "sha256-Tf029ae+PfFPhchU45y96IJVeY9GPzWD2E+NprI/ZYk=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
python3
qt6.wrapQtAppsHook
qt6.qttools
];
buildInputs =
[
avahi-compat
boost
flac
libogg
libopus
libsndfile
libvorbis
poco
protobuf
qt6.qtsvg
rnnoise
speex
]
++ lib.optional (!jackSupport) alsa-lib
++ lib.optional jackSupport libjack2
++ lib.optional speechdSupport speechd
++ lib.optional pulseSupport libpulseaudio
++ lib.optional pipewireSupport pipewire;
env.NIX_CFLAGS_COMPILE = lib.optionalString speechdSupport "-I${speechd}/include/speech-dispatcher";
cmakeFlags =
[
"-D g15=OFF"
"-D server=OFF"
"-D bundled-celt=ON"
"-D bundled-opus=OFF"
"-D bundled-speex=OFF"
"-D bundle-qt-translations=OFF"
"-D update=OFF"
"-D overlay-xcompile=OFF"
"-D oss=OFF"
"-D warnings-as-errors=OFF" # conversion error workaround
]
++ lib.optional (!speechdSupport) "-D speechd=OFF"
++ lib.optional (!pulseSupport) "-D pulseaudio=OFF"
++ lib.optional (!pipewireSupport) "-D pipewire=OFF"
++ lib.optional jackSupport "-D alsa=OFF -D jackaudio=ON";
preConfigure = ''
patchShebangs scripts
'';
postFixup = ''
wrapProgram $out/bin/mumble \
--prefix LD_LIBRARY_PATH : "${
lib.makeLibraryPath (
lib.optional pulseSupport libpulseaudio ++ lib.optional pipewireSupport pipewire
)
}"
'';
passthru.tests.connectivity = nixosTests.mumble;
meta = {
description = "Low-latency, high quality voice chat software";
homepage = "https://mumble.info";
license = lib.licenses.bsd3;
mainProgram = "mumble";
maintainers = with lib.maintainers; [
felixsinger
lilacious
];
platforms = lib.platforms.linux;
};
}