diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index 9f71359f7194..52c46461a59c 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -21,42 +21,13 @@ which, perl, libcxx, + autoPatchelfHook, }: let arch = "amd64"; - deps = [ - zlib - glib - libpng - freetype - xorg.libSM - xorg.libICE - xorg.libXrender - openssl - xorg.libXrandr - xorg.libXfixes - xorg.libXcursor - xorg.libXinerama - xorg.libxcb - fontconfig - xorg.libXext - xorg.libX11 - alsa-lib - libpulseaudio - libsForQt5.quazip - libcxx - libredirect - ] ++ (with qt5; [ - qtbase - qtwebengine - qtwebchannel - qtsvg - qtwebsockets - ]); - desktopItem = makeDesktopItem { name = "teamspeak"; exec = "ts3client"; @@ -89,8 +60,39 @@ stdenv.mkDerivation rec { which perl # Installer script needs `shasum` qt5.wrapQtAppsHook + autoPatchelfHook ]; + buildInputs = [ + zlib + glib + libpng + freetype + xorg.libSM + xorg.libICE + xorg.libXrender + openssl + xorg.libXrandr + xorg.libXfixes + xorg.libXcursor + xorg.libXinerama + xorg.libxcb + fontconfig + xorg.libXext + xorg.libX11 + alsa-lib + libpulseaudio + libsForQt5.quazip + libcxx + libredirect + ] ++ (with qt5; [ + qtbase + qtwebengine + qtwebchannel + qtsvg + qtwebsockets + ]); + # This just runs the installer script. If it gets stuck at something like # ++ exec # + PAGER_PATH= @@ -99,38 +101,36 @@ stdenv.mkDerivation rec { runHook preUnpack echo -e '\ny' | PAGER=cat sh -xe $src - cd TeamSpeak* + + mv TeamSpeak3-Client-linux_${arch}/* . runHook postUnpack ''; - buildPhase = '' - runHook preBuild + patchPhase = '' + runHook prePatch + + # Delete unecessary libraries - these are provided by nixos. + find . -\( -name '*.so' -or -name '*.so.*' -\) -print0 | xargs -0 rm # I hate find. + + rm QtWebEngineProcess + rm qt.conf mv ts3client_linux_${arch} ts3client - echo "patching ts3client..." + # Our libquazip's so name has this suffix and there is no symlink - patchelf --replace-needed libquazip.so libquazip1-qt5.so ts3client + patchelf --replace-needed libquazip.so libquazip1-qt5.so ts3client error_report - patchelf \ - --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath ${lib.makeLibraryPath deps} \ - --force-rpath \ - ts3client - - runHook postBuild + runHook postPatch ''; + dontConfigure = true; + dontBuild = true; + installPhase = '' runHook preInstall - # Delete unecessary libraries - these are provided by nixos. - rm *.so.* *.so - rm QtWebEngineProcess - rm qt.conf - rm -r platforms # contains libqxcb.so - # Install files. mkdir -p $out/lib/teamspeak mv * $out/lib/teamspeak/ @@ -156,9 +156,6 @@ stdenv.mkDerivation rec { --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb ''; - dontStrip = true; - dontPatchELF = true; - meta = with lib; { description = "TeamSpeak voice communication tool"; homepage = "https://teamspeak.com/";