diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix index 488fefe62c4..48b9e206eaf 100644 --- a/pkgs/development/tools/selenium/chromedriver/default.nix +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -1,31 +1,39 @@ { 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="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 { - product = "chromedriver_linux64"; - name = "${product}-2.25"; - version = "2.25"; + name = "chromedriver-${version}"; + version = "2.29"; 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 ]; 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 + 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 : "${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" + wrapProgram "$out/bin/chromedriver" --prefix LD_LIBRARY_PATH : "${libs}:\$LD_LIBRARY_PATH" ''; meta = with stdenv.lib; { @@ -33,6 +41,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; }; }