From 17d29239b835353259c5506fbd37ff6676044a9c Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 1 Aug 2019 00:12:51 +0300 Subject: mumble: refactor and fix Qt 5 version * Use -rc version instead of a git checkout. Rename derivation accordingly; * Change PLUGIN_PATH similar to Arch; * Fix install phase so that random files aren't installed and plugins use separate directory; * Use linkSoVersions to remove duplicate libraries. --- pkgs/applications/networking/mumble/default.nix | 57 +++++++++++++++---------- 1 file changed, 35 insertions(+), 22 deletions(-) (limited to 'pkgs/applications/networking/mumble/default.nix') diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix index 9642c54a26a15..9f641061bd86c 100644 --- a/pkgs/applications/networking/mumble/default.nix +++ b/pkgs/applications/networking/mumble/default.nix @@ -14,7 +14,7 @@ assert iceSupport -> zeroc_ice != null; with stdenv.lib; let - generic = overrides: source: stdenv.mkDerivation (source // overrides // { + generic = overrides: source: (if source.qtVersion == 5 then qt5.mkDerivation else stdenv.mkDerivation) (source // overrides // { name = "${overrides.type}-${source.version}"; patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch; @@ -26,7 +26,7 @@ let # protobuf is freezed to 3.6 because of this bug: https://github.com/mumble-voip/mumble/issues/3617 # this could be reverted to the latest version in a future release of mumble as it is already fixed in master buildInputs = [ boost protobuf3_6 avahi ] - ++ { qt4 = [ qt4 ]; qt5 = [ qt5.qtbase ]; }."qt${toString source.qtVersion}" + ++ optional (source.qtVersion == 4) qt4 ++ (overrides.buildInputs or [ ]); qmakeFlags = [ @@ -45,20 +45,23 @@ let ++ (overrides.configureFlags or [ ]); preConfigure = '' - qmakeFlags="$qmakeFlags DEFINES+=PLUGIN_PATH=$out/lib" + qmakeFlags="$qmakeFlags DEFINES+=PLUGIN_PATH=$out/lib/mumble" patchShebangs scripts ''; makeFlags = [ "release" ]; installPhase = '' - mkdir -p $out/{lib,bin} - find release -type f -not -name \*.\* -exec cp {} $out/bin \; - find release -type f -name \*.\* -exec cp {} $out/lib \; + runHook preInstall + ${overrides.installPhase} + + # doc stuff mkdir -p $out/share/man/man1 - cp man/mum* $out/share/man/man1 - '' + (overrides.installPhase or ""); + install -Dm644 man/mum* $out/share/man/man1/ + + runHook postInstall + ''; enableParallelBuilding = true; @@ -74,7 +77,7 @@ let client = source: generic { type = "mumble"; - nativeBuildInputs = optionals (source.qtVersion == 5) [ qt5.qttools ]; + nativeBuildInputs = optional (source.qtVersion == 5) qt5.qttools; buildInputs = [ libopus libsndfile speex ] ++ optional (source.qtVersion == 5) qt5.qtsvg ++ optional stdenv.isLinux alsaLib @@ -89,12 +92,19 @@ let NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher"; installPhase = '' - mkdir -p $out/share/applications - cp scripts/mumble.desktop $out/share/applications - - mkdir -p $out/share/icons{,/hicolor/scalable/apps} - cp icons/mumble.svg $out/share/icons - ln -s $out/share/icons/mumble.svg $out/share/icons/hicolor/scalable/apps + # bin stuff + install -Dm755 release/mumble $out/bin/mumble + install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay + + # lib stuff + mkdir -p $out/lib/mumble + cp -P release/libmumble.so* $out/lib + cp -P release/libcelt* $out/lib/mumble + cp -P release/plugins/* $out/lib/mumble + + # icons + install -Dm644 scripts/mumble.desktop $out/share/applications/mumble.desktop + install -Dm644 icons/mumble.svg $out/share/icons/hicolor/scalable/apps/mumble.svg ''; } source; @@ -110,6 +120,11 @@ let ]; buildInputs = [ libcap ] ++ optional iceSupport zeroc_ice; + + installPhase = '' + # bin stuff + install -Dm755 release/murmurd $out/bin/murmurd + ''; }; stableSource = rec { @@ -138,26 +153,24 @@ let ]; }; - gitSource = rec { - version = "2019-07-10"; + rcSource = rec { + version = "1.3.0-rc2"; qtVersion = 5; # Needs submodules src = fetchFromGitHub { owner = "mumble-voip"; repo = "mumble"; - rev = "41b265584654c7ac216fd3ccb9c141734d3f839b"; + rev = version; sha256 = "00irlzz5q4drmsfbwrkyy7p7w8a5fc1ip5vyicq3g3cy58dprpqr"; fetchSubmodules = true; }; }; in { mumble = client stableSource; - mumble_git = client gitSource; + mumble_rc = client rcSource; murmur = server stableSource; - murmur_git = (server gitSource).overrideAttrs (old: { + murmur_rc = (server rcSource).overrideAttrs (old: { meta = old.meta // { broken = iceSupport; }; - - nativeBuildInputs = old.nativeBuildInputs or [] ++ [ qt5.wrapQtAppsHook ]; }); } -- cgit 1.4.1