From f50258bba59c125e9a35102b1f6b7ace186786c9 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Thu, 6 Apr 2017 21:17:25 -0400 Subject: [PATCH 1/3] vscode: 1.10.2 -> 1.11.1 --- pkgs/applications/editors/vscode/default.nix | 22 ++++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index c4664060214..bdd8bd44167 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -2,24 +2,28 @@ makeWrapper, libXScrnSaver }: let - version = "1.10.2"; - rev = "8076a19fdcab7e1fc1707952d652f0bb6c6db331"; + version = "1.11.1"; + rev = "d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39"; channel = "stable"; - # The revision can be obtained with the following command (see https://github.com/NixOS/nixpkgs/issues/22465): - # curl -w "%{url_effective}\n" -I -L -s -S https://vscode-update.azurewebsites.net/latest/linux-x64/stable -o /dev/null + # The revision and build timestamps can be obtained with the following + # command (see https://github.com/NixOS/nixpkgs/issues/22465): + # for a in x64 ia32; do + # curl -w "%{url_effective}\n" -I -L -s -S -o /dev/null \ + # "https://vscode-update.azurewebsites.net/latest/linux-${arch}/stable" \ + # done - sha256 = if stdenv.system == "i686-linux" then "1rhwrpv17c8j06qja7i58cggzka8jm9v9h27jy22z30yxjz0p241" - else if stdenv.system == "x86_64-linux" then "1c1w7wc39a5vdap8j143ym976p9l9iwns1y28mcgjwrihdlb5wb8" - else if stdenv.system == "x86_64-darwin" then "1zznsn84k79lqirzv950q7caq7c88yh2gglwjc11y8k69awmlpva" + sha256 = if stdenv.system == "i686-linux" then "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94" + else if stdenv.system == "x86_64-linux" then "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc" + else if stdenv.system == "x86_64-darwin" then "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6" else throw "Unsupported system: ${stdenv.system}"; urlBase = "https://az764295.vo.msecnd.net/${channel}/${rev}/"; urlStr = if stdenv.system == "i686-linux" then - urlBase + "code-${channel}-code_${version}-1488982317_i386.tar.gz" + urlBase + "code-${channel}-code_${version}-1491487843_i386.tar.gz" else if stdenv.system == "x86_64-linux" then - urlBase + "code-${channel}-code_${version}-1488981323_amd64.tar.gz" + urlBase + "code-${channel}-code_${version}-1491486998_amd64.tar.gz" else if stdenv.system == "x86_64-darwin" then urlBase + "VSCode-darwin-${channel}.zip" else throw "Unsupported system: ${stdenv.system}"; From 4a08528b4aad94332006ad4c190c3f2fa207d630 Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Thu, 6 Apr 2017 22:18:18 -0400 Subject: [PATCH 2/3] vscode: Revamp URL generation scheme This ought to be way easier to maintain! Now just the version number and sha256 hashes need to be updated for an update, and there are no more manual cmdline steps to get version hashes and timestamps. Related to #22465 --- pkgs/applications/editors/vscode/default.nix | 34 ++++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index bdd8bd44167..a2854208a49 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -3,37 +3,29 @@ let version = "1.11.1"; - rev = "d9484d12b38879b7f4cdd1150efeb2fd2c1fbf39"; channel = "stable"; - # The revision and build timestamps can be obtained with the following - # command (see https://github.com/NixOS/nixpkgs/issues/22465): - # for a in x64 ia32; do - # curl -w "%{url_effective}\n" -I -L -s -S -o /dev/null \ - # "https://vscode-update.azurewebsites.net/latest/linux-${arch}/stable" \ - # done + plat = { + "i686-linux" = "linux-ia32"; + "x86_64-linux" = "linux-x64"; + "x86_64-darwin" = "darwin"; + }.${stdenv.system}; - sha256 = if stdenv.system == "i686-linux" then "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94" - else if stdenv.system == "x86_64-linux" then "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc" - else if stdenv.system == "x86_64-darwin" then "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6" - else throw "Unsupported system: ${stdenv.system}"; + sha256 = { + "i686-linux" = "14wdblh7q3m5qdsm34dpg5p7qk6llrbqk60md8wd0fb4chpvrq94"; + "x86_64-linux" = "0rmzvaiar3y062mbrggiwjbwxs7izcih5333rn208ax4jxmbk4pc"; + "x86_64-darwin" = "1f3zdwsz0l6r7c2k25a7j5m0dl78219jzg4axcmbfa2qcs2hw0x6"; + }.${stdenv.system}; - urlBase = "https://az764295.vo.msecnd.net/${channel}/${rev}/"; + archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; - urlStr = if stdenv.system == "i686-linux" then - urlBase + "code-${channel}-code_${version}-1491487843_i386.tar.gz" - else if stdenv.system == "x86_64-linux" then - urlBase + "code-${channel}-code_${version}-1491486998_amd64.tar.gz" - else if stdenv.system == "x86_64-darwin" then - urlBase + "VSCode-darwin-${channel}.zip" - else throw "Unsupported system: ${stdenv.system}"; in stdenv.mkDerivation rec { name = "vscode-${version}"; - inherit version; src = fetchurl { - url = urlStr; + name = "VSCode_${version}_${plat}.${archive_fmt}"; + url = "https://vscode-update.azurewebsites.net/${version}/${plat}/${channel}"; inherit sha256; }; From 987cafe5e041489ef530b4f8c55d0d5080e1de3e Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Thu, 6 Apr 2017 23:35:49 -0400 Subject: [PATCH 3/3] vscode: Add libxkbfile to rpath Otherwise vscode complains about it. --- pkgs/applications/editors/vscode/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix index a2854208a49..b6734d09d0e 100644 --- a/pkgs/applications/editors/vscode/default.nix +++ b/pkgs/applications/editors/vscode/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, callPackage, fetchurl, unzip, atomEnv, makeDesktopItem, - makeWrapper, libXScrnSaver }: + makeWrapper, libXScrnSaver, libxkbfile }: let version = "1.11.1"; @@ -19,6 +19,13 @@ let archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz"; + rpath = lib.concatStringsSep ":" [ + atomEnv.libPath + "${lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1" + "${lib.makeLibraryPath [libxkbfile]}/libxkbfile.so.1" + "$out/lib/vscode" + ]; + in stdenv.mkDerivation rec { name = "vscode-${version}"; @@ -41,7 +48,7 @@ in buildInputs = if stdenv.system == "x86_64-darwin" then [ unzip makeWrapper libXScrnSaver ] - else [ makeWrapper libXScrnSaver ]; + else [ makeWrapper libXScrnSaver libxkbfile ]; installPhase = if stdenv.system == "x86_64-darwin" then '' @@ -63,7 +70,7 @@ in postFixup = lib.optionalString (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") '' patchelf \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1:$out/lib/vscode" \ + --set-rpath "${rpath}" \ $out/lib/vscode/code '';