teamspeak_client: use autoPatchelfHook rather than manual patchelf

This commit is contained in:
Atemu
2024-11-09 22:35:41 +01:00
parent cba4002e45
commit 9db530c94c
@@ -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/";