From 04527cd84b4866bdafbee1141f14c90c1ea20622 Mon Sep 17 00:00:00 2001 From: Stefan Lau Date: Mon, 15 May 2017 12:21:21 +0200 Subject: [PATCH 1/2] chromedriver: allow to install on more systems --- .../tools/selenium/chromedriver/default.nix | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix index 488fefe62c4..66e3901c33e 100644 --- a/pkgs/development/tools/selenium/chromedriver/default.nix +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -1,19 +1,20 @@ { stdenv, fetchurl, cairo, fontconfig, freetype, gdk_pixbuf, glib , glibc, gtk2, libX11, makeWrapper, nspr, nss, pango, unzip, gconf -, libXi, libXrender, libXext +, libXi, libXrender, libXext, lib }: - -# note: there is a i686 version available as well -assert stdenv.system == "x86_64-linux"; - +let + spec = if stdenv.system == "i686-linux" then { system="linux32"; sha256="5d267a8d59f18f1134966e312997b75976f8d816318b5b79b8357a3ac2c022da"; } + else if stdenv.system == "x86_64-linux" then { system="linux64"; sha256="d011749e76305b5591b5500897939b33fac460d705d9815b8c03c53b0e1ecc7c"; } + else if stdenv.system == "x86_64-darwin" then { system="mac64"; sha256="e95fb36ab85264e16c51d58dd9766624eca6b6339569da0460088f4c788c67ad"; } + else abort "missing chromedriver binary for ${stdenv.system}"; +in stdenv.mkDerivation rec { - product = "chromedriver_linux64"; - name = "${product}-2.25"; + name = "chromedriver-${version}"; version = "2.25"; src = fetchurl { - url = "http://chromedriver.storage.googleapis.com/${version}/${product}.zip"; - sha256 = "0z6c3q73pi83iidq3n85sxhc9yikkf9rf22hnn8manrhfsg784fh"; + url = "http://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip"; + sha256 = spec.sha256; }; buildInputs = [ unzip makeWrapper ]; @@ -23,9 +24,9 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin mv chromedriver $out/bin - patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver - wrapProgram "$out/bin/chromedriver" \ - --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib cairo fontconfig freetype gdk_pixbuf glib gtk2 libX11 nspr nss pango libXrender gconf libXext libXi ]}:\$LD_LIBRARY_PATH" + ${lib.optionalString (!stdenv.isDarwin) "patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver"} + ${lib.optionalString (!stdenv.isDarwin) ''wrapProgram "$out/bin/chromedriver" \ + --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib cairo fontconfig freetype gdk_pixbuf glib gtk2 libX11 nspr nss pango libXrender gconf libXext libXi ]}:\$LD_LIBRARY_PATH"''} ''; meta = with stdenv.lib; { @@ -33,6 +34,6 @@ stdenv.mkDerivation rec { description = "A WebDriver server for running Selenium tests on Chrome"; license = licenses.bsd3; maintainers = [ maintainers.goibhniu ]; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; }; } From 357f193c9d86a75699dbf0a8b46a0126ca1c7939 Mon Sep 17 00:00:00 2001 From: Stefan Lau Date: Mon, 15 May 2017 13:55:30 +0200 Subject: [PATCH 2/2] chromedriver: 2.25 -> 2.29 --- .../tools/selenium/chromedriver/default.nix | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix index 66e3901c33e..48b9e206eaf 100644 --- a/pkgs/development/tools/selenium/chromedriver/default.nix +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -3,14 +3,14 @@ , libXi, libXrender, libXext, lib }: let - spec = if stdenv.system == "i686-linux" then { system="linux32"; sha256="5d267a8d59f18f1134966e312997b75976f8d816318b5b79b8357a3ac2c022da"; } - else if stdenv.system == "x86_64-linux" then { system="linux64"; sha256="d011749e76305b5591b5500897939b33fac460d705d9815b8c03c53b0e1ecc7c"; } - else if stdenv.system == "x86_64-darwin" then { system="mac64"; sha256="e95fb36ab85264e16c51d58dd9766624eca6b6339569da0460088f4c788c67ad"; } + spec = if stdenv.system == "i686-linux" then { system="linux32"; sha256="70845d81304c5f5f0b7f65274216e613e867e621676a09790c8aa8ef81ea9766"; } + else if stdenv.system == "x86_64-linux" then { system="linux64"; sha256="bb2cf08f2c213f061d6fbca9658fc44a367c1ba7e40b3ee1e3ae437be0f901c2"; } + else if stdenv.system == "x86_64-darwin" then { system="mac64"; sha256="6c30bba7693ec2d9af7cd9a54729e10aeae85c0953c816d9c4a40a1a72fd8be0"; } else abort "missing chromedriver binary for ${stdenv.system}"; in stdenv.mkDerivation rec { name = "chromedriver-${version}"; - version = "2.25"; + version = "2.29"; src = fetchurl { url = "http://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip"; @@ -21,12 +21,19 @@ stdenv.mkDerivation rec { unpackPhase = "unzip $src"; + libs = stdenv.lib.makeLibraryPath [ + stdenv.cc.cc.lib + cairo fontconfig freetype + gdk_pixbuf glib gtk2 gconf + libX11 nspr nss pango libXrender + gconf libXext libXi + ]; + installPhase = '' - mkdir -p $out/bin - mv chromedriver $out/bin - ${lib.optionalString (!stdenv.isDarwin) "patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver"} - ${lib.optionalString (!stdenv.isDarwin) ''wrapProgram "$out/bin/chromedriver" \ - --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib cairo fontconfig freetype gdk_pixbuf glib gtk2 libX11 nspr nss pango libXrender gconf libXext libXi ]}:\$LD_LIBRARY_PATH"''} + install -m755 -D chromedriver $out/bin/chromedriver + '' + lib.optionalString (!stdenv.isDarwin) '' + patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver + wrapProgram "$out/bin/chromedriver" --prefix LD_LIBRARY_PATH : "${libs}:\$LD_LIBRARY_PATH" ''; meta = with stdenv.lib; {