Add override mumble
This commit is contained in:
parent
4d718de099
commit
e41071c58f
|
@ -3,6 +3,7 @@ let
|
|||
unstable = import super.sources.nixos-unstable { };
|
||||
in
|
||||
{
|
||||
inherit unstable;
|
||||
inherit (unstable) cachix nix-output-monitor cabal2nix;
|
||||
unstableHaskellPackages = unstable.haskellPackages;
|
||||
unstableGhc = unstable.ghc;
|
||||
|
|
8
overlays/mumble/default.nix
Normal file
8
overlays/mumble/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
final: prev: {
|
||||
inherit (final.unstable.callPackage ./package.nix {
|
||||
avahi = final.unstable.avahi-compat;
|
||||
jackSupport = false;
|
||||
speechdSupport = false;
|
||||
pulseSupport = true;
|
||||
}) mumble;
|
||||
}
|
16
overlays/mumble/fix-rnnoise-argument.patch
Normal file
16
overlays/mumble/fix-rnnoise-argument.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
nixpkgs has a more recent rnnoise than the one used by mumble, and rnnoise
|
||||
changed the argument rnnoise_create[1],
|
||||
|
||||
[1] https://github.com/xiph/rnnoise/commit/231b9c02d14a74cb449a98004cb7a2cf1bdeca2f
|
||||
|
||||
--- old/src/mumble/AudioInput.cpp 2020-02-18 22:55:32.000000000 -0500
|
||||
+++ new/src/mumble/AudioInput.cpp 2020-02-18 22:58:08.000000000 -0500
|
||||
@@ -106,7 +106,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef USE_RNNOISE
|
||||
- denoiseState = rnnoise_create();
|
||||
+ denoiseState = rnnoise_create(NULL);
|
||||
#endif
|
||||
|
||||
qWarning("AudioInput: %d bits/s, %d hz, %d sample", iAudioQuality, iSampleRate, iFrameSize);
|
36
overlays/mumble/overlay.nix
Normal file
36
overlays/mumble/overlay.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, which
|
||||
, file
|
||||
, mumble
|
||||
, mumble_i686
|
||||
}:
|
||||
|
||||
let
|
||||
binPath = lib.makeBinPath [ which file ];
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "mumble-overlay-${mumble.version}";
|
||||
|
||||
inherit (mumble) src;
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
ln -s ${mumble}/lib/libmumble.so.1 $out/lib/
|
||||
|
||||
${lib.optionalString (mumble_i686 != null) ''
|
||||
mkdir -p $out/lib32
|
||||
ln -s ${mumble_i686}/lib/libmumble.so.1 $out/lib32/
|
||||
''}
|
||||
|
||||
install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
|
||||
sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
|
||||
sed -i '2iPATH="${binPath}:$PATH"' $out/bin/mumble-overlay
|
||||
'';
|
||||
|
||||
meta = {
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
140
overlays/mumble/package.nix
Normal file
140
overlays/mumble/package.nix
Normal file
|
@ -0,0 +1,140 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, qt5
|
||||
, avahi
|
||||
, boost
|
||||
, libopus
|
||||
, libsndfile
|
||||
, protobuf
|
||||
, speex
|
||||
, libcap
|
||||
, alsaLib
|
||||
, python3
|
||||
, cmake
|
||||
, poco
|
||||
, pcre
|
||||
, iceSupport ? false
|
||||
, zeroc-ice
|
||||
, rnnoise
|
||||
, jackSupport ? false
|
||||
, libjack2
|
||||
, pulseSupport ? false
|
||||
, libpulseaudio
|
||||
, grpcSupport ? false
|
||||
, grpc
|
||||
, which
|
||||
, speechdSupport ? false
|
||||
, speechd
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
let
|
||||
generic = overrides: source: qt5.mkDerivation (source // overrides // {
|
||||
pname = overrides.type;
|
||||
version = source.version;
|
||||
|
||||
patches = (source.patches or [ ]);
|
||||
nativeBuildInputs = [ pkg-config python3 cmake ]
|
||||
++ (overrides.nativeBuildInputs or [ ]);
|
||||
|
||||
buildInputs = [ boost protobuf avahi ]
|
||||
++ (overrides.buildInputs or [ ]);
|
||||
|
||||
passthru.tests.connectivity = nixosTests.mumble;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Low-latency, high quality voice chat software";
|
||||
homepage = "https://mumble.info";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ petabyteboy infinisil ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
});
|
||||
|
||||
client = source: generic
|
||||
{
|
||||
type = "mumble";
|
||||
|
||||
nativeBuildInputs = [
|
||||
qt5.qttools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libopus
|
||||
libsndfile
|
||||
speex
|
||||
qt5.qtsvg
|
||||
rnnoise
|
||||
poco
|
||||
pcre
|
||||
speechd
|
||||
zeroc-ice.all
|
||||
]
|
||||
++ lib.optional stdenv.isLinux alsaLib
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional pulseSupport libpulseaudio;
|
||||
|
||||
configureFlags = [
|
||||
"CONFIG+=no-server"
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-Dice=off"
|
||||
"-Doverlay-xcompile=off"
|
||||
"-DRELEASE_ID=${source.version}"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
# bin stuff
|
||||
install -Dm755 mumble $out/bin/mumble
|
||||
install -Dm755 $src/scripts/mumble-overlay $out/bin/mumble-overlay
|
||||
|
||||
# lib stuff
|
||||
mkdir -p $out/lib/mumble
|
||||
cp -P libcelt* $out/lib/mumble
|
||||
cp -rP plugins/* $out/lib/mumble
|
||||
|
||||
# icons
|
||||
install -Dm644 $src/scripts/org.mumble_voip.mumble.desktop $out/share/applications/mumble.desktop
|
||||
install -Dm644 $src/icons/mumble.svg $out/share/icons/hicolor/scalable/apps/mumble.svg
|
||||
'';
|
||||
}
|
||||
source;
|
||||
|
||||
server = source: generic
|
||||
{
|
||||
type = "murmur";
|
||||
|
||||
configureFlags = [
|
||||
"CONFIG+=no-client"
|
||||
];
|
||||
|
||||
buildInputs = [ libcap ]
|
||||
++ lib.optionals grpcSupport [ grpc which ];
|
||||
|
||||
installPhase = ''
|
||||
# bin stuff
|
||||
install -Dm755 release/murmurd $out/bin/murmurd
|
||||
'';
|
||||
}
|
||||
source;
|
||||
|
||||
source = rec {
|
||||
version = "1.4.0-development-snapshot-005";
|
||||
|
||||
# Needs submodules
|
||||
src = fetchFromGitHub {
|
||||
owner = "mumble-voip";
|
||||
repo = "mumble";
|
||||
rev = "${version}";
|
||||
sha256 = "sha256:1w16j5idbvvbbisj1jlk5igym2n2f67ia61yynibqbmpvyq0bg3z";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
mumble = client source;
|
||||
murmur = server source;
|
||||
}
|
Loading…
Reference in a new issue