Add override mumble
This commit is contained in:
parent
4d718de099
commit
e41071c58f
|
@ -3,6 +3,7 @@ let
|
||||||
unstable = import super.sources.nixos-unstable { };
|
unstable = import super.sources.nixos-unstable { };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
inherit unstable;
|
||||||
inherit (unstable) cachix nix-output-monitor cabal2nix;
|
inherit (unstable) cachix nix-output-monitor cabal2nix;
|
||||||
unstableHaskellPackages = unstable.haskellPackages;
|
unstableHaskellPackages = unstable.haskellPackages;
|
||||||
unstableGhc = unstable.ghc;
|
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