From 7b06260c1ccfacc43bf9ba6f9209e7679a52b611 Mon Sep 17 00:00:00 2001 From: mucaho Date: Sun, 3 Apr 2016 16:04:31 +0100 Subject: [PATCH] electron: make it compatible with vscode Use patchelf instead of wrapProgram to inject lookup path of shared libraries. Allow the nix expression to be called with optional version argument. --- pkgs/development/tools/electron/default.nix | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index dd7dabf2bf2..aae4b413c3d 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -1,7 +1,8 @@ -{ stdenv, fetchurl, buildEnv, makeDesktopItem, makeWrapper, zlib, glib, alsaLib +{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib , dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf , cairo, cups, expat, libgpgerror, nspr, gconf, nss, xorg, libcap, unzip , systemd, libnotify +, version ? "0.36.2", sha256 ? "01d78j8dfrdygm1r141681b3bfz1f1xqg9vddz7j52z1mlfv9f1d", ... }: let atomEnv = buildEnv { @@ -16,15 +17,15 @@ let }; in stdenv.mkDerivation rec { name = "electron-${version}"; - version = "0.36.2"; + inherit version; src = fetchurl { url = "https://github.com/atom/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip"; - sha256 = "01d78j8dfrdygm1r141681b3bfz1f1xqg9vddz7j52z1mlfv9f1d"; + inherit sha256; name = "${name}.zip"; }; - buildInputs = [ atomEnv makeWrapper unzip ]; + buildInputs = [ atomEnv unzip ]; phases = [ "installPhase" "fixupPhase" ]; @@ -35,8 +36,12 @@ in stdenv.mkDerivation rec { unzip -d $out/bin $src patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ $out/bin/electron - wrapProgram $out/bin/electron \ - --prefix "LD_LIBRARY_PATH" : "${atomEnv}/lib:${atomEnv}/lib64" + ''; + + postFixup = '' + patchelf \ + --set-rpath "${atomEnv}/lib:${atomEnv}/lib64:$out/bin:$(patchelf --print-rpath $out/bin/electron)" \ + $out/bin/electron ''; meta = with stdenv.lib; {