diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index 08c8561abed..f64a22e642d 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -1,6 +1,8 @@ -{ stdenv, lib, fetchurl, unzip, atomEnv, makeDesktopItem, - gtk2, wrapGAppsHook, libXScrnSaver, libxkbfile, libsecret, - isInsiders ? false }: +{ stdenv, lib, fetchurl, makeDesktopItem +, unzip, libsecret, libXScrnSaver, wrapGAppsHook +, gtk2, atomEnv, at-spi2-atk, autoPatchelfHook +, systemd, fontconfig +, isInsiders ? false }: let executableName = "code" + lib.optionalString isInsiders "-insiders"; @@ -20,16 +22,6 @@ let }.${stdenv.hostPlatform.system}; archive_fmt = if stdenv.hostPlatform.system == "x86_64-darwin" then "zip" else "tar.gz"; - - rpath = lib.concatStringsSep ":" [ - atomEnv.libPath - "${lib.makeLibraryPath [gtk2]}" - "${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0" - "${lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1" - "${lib.makeLibraryPath [libxkbfile]}/libxkbfile.so.1" - "$out/lib/vscode" - ]; - in stdenv.mkDerivation rec { name = "vscode-${version}"; @@ -83,9 +75,12 @@ in ''; }; - buildInputs = if stdenv.hostPlatform.system == "x86_64-darwin" - then [ unzip libXScrnSaver libsecret ] - else [ wrapGAppsHook libXScrnSaver libxkbfile libsecret ]; + buildInputs = (if stdenv.isDarwin + then [ unzip ] + else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages) + ++ [ libsecret libXScrnSaver ]; + + nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook; installPhase = if stdenv.hostPlatform.system == "x86_64-darwin" then '' @@ -111,19 +106,8 @@ in ''; postFixup = lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux") '' - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${rpath}" \ - $out/lib/vscode/${executableName} - - patchelf \ - --set-rpath "${rpath}" \ - $out/lib/vscode/resources/app/node_modules.asar.unpacked/keytar/build/Release/keytar.node - - patchelf \ - --set-rpath "${rpath}" \ - "$out/lib/vscode/resources/app/node_modules.asar.unpacked/native-keymap/build/Release/\ - keymapping.node" + wrapProgram $out/lib/vscode/${executableName} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ systemd fontconfig ]} ln -s ${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0 $out/lib/vscode/libsecret-1.so.0 '';