Files
nixpkgs/pkgs/development/tools/selenium/chromedriver/binary.nix
T
Nathan Henrie dc969616d4 chromedriver: fix build failure on aarch64-darwin
Darwin seems to need `unzip` and chokes on `autoPatchelfHook`. Because
linux now builds from source, the package has been updated to remove
references to Linux-specific settings and build options, remove the
conditionals checking for darwin, and adjust the platforms to reflect
that the binary chromedriver is darwin-only.

Fixes https://github.com/NixOS/nixpkgs/issues/329202
2024-07-24 10:33:08 -06:00

69 lines
1.8 KiB
Nix

{
lib,
stdenv,
fetchurl,
unzip,
testers,
chromedriver,
}:
let
upstream-info =
(import ../../../../applications/networking/browsers/chromium/upstream-info.nix)
.stable.chromedriver;
# See ./source.nix for Linux
allSpecs = {
x86_64-darwin = {
system = "mac-x64";
hash = upstream-info.hash_darwin;
};
aarch64-darwin = {
system = "mac-arm64";
hash = upstream-info.hash_darwin_aarch64;
};
};
spec =
allSpecs.${stdenv.hostPlatform.system}
or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}");
inherit (upstream-info) version;
in
stdenv.mkDerivation {
pname = "chromedriver";
inherit version;
src = fetchurl {
url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip";
inherit (spec) hash;
};
nativeBuildInputs = [ unzip ];
installPhase = ''
install -m555 -D "chromedriver" $out/bin/chromedriver
'';
passthru.tests.version = testers.testVersion { package = chromedriver; };
meta = with lib; {
homepage = "https://chromedriver.chromium.org/";
description = "WebDriver server for running Selenium tests on Chrome";
longDescription = ''
WebDriver is an open source tool for automated testing of webapps across
many browsers. It provides capabilities for navigating to web pages, user
input, JavaScript execution, and more. ChromeDriver is a standalone
server that implements the W3C WebDriver standard.
'';
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.bsd3;
maintainers = with maintainers; [ primeos ];
# Note from primeos: By updating Chromium I also update Google Chrome and
# ChromeDriver.
platforms = platforms.darwin;
mainProgram = "chromedriver";
};
}