Loading pkgs/development/web/playwright/driver.nix +117 −104 Original line number Diff line number Diff line { lib , stdenv , chromium , ffmpeg , git , jq , nodejs , fetchurl , makeFontsConf , makeWrapper , runCommand , unzip , cacert { lib, stdenv, chromium, ffmpeg, git, jq, nodejs, fetchurl, makeFontsConf, makeWrapper, runCommand, unzip, cacert, }: let inherit (stdenv.hostPlatform) system; throwSystem = throw "Unsupported system: ${system}"; driver = stdenv.mkDerivation (finalAttrs: driver = stdenv.mkDerivation ( finalAttrs: let suffix = { suffix = { x86_64-linux = "linux"; aarch64-linux = "linux-arm64"; x86_64-darwin = "mac"; aarch64-darwin = "mac-arm64"; }.${system} or throwSystem; } .${system} or throwSystem; filename = "playwright-${finalAttrs.version}-${suffix}.zip"; in { Loading @@ -34,12 +38,14 @@ let src = fetchurl { url = "https://playwright.azureedge.net/builds/driver/${filename}"; sha256 = { sha256 = { x86_64-linux = "0y9n23r4yfcgm4a50rfgicl91vrllak0d8h26yagh6h8hl0r3nhh"; aarch64-linux = "0zd456klidi4sg7wahfrdbs2bwiq3q6ngxd4iv3vi9f9w9nq2p2k"; x86_64-darwin = "0yaiwg9821w9nszzkrp5skzf5792nahvfqnr4axk84dcngslxvmk"; aarch64-darwin = "1b1jmv6l97ss8c4sc3n1xckn05fpq3fihjbjxr2qz6i9dsy3xj57"; }.${system} or throwSystem; } .${system} or throwSystem; }; sourceRoot = "."; Loading Loading @@ -70,16 +76,19 @@ let passthru = { inherit filename; browsers = { browsers = { x86_64-linux = browsers-linux { }; aarch64-linux = browsers-linux { }; x86_64-darwin = browsers-mac; aarch64-darwin = browsers-mac; }.${system} or throwSystem; } .${system} or throwSystem; browsers-chromium = browsers-linux { }; }; meta.mainProgram = "playwright"; }); } ); browsers-mac = stdenv.mkDerivation { pname = "playwright-browsers"; Loading @@ -87,9 +96,7 @@ let dontUnpack = true; nativeBuildInputs = [ cacert ]; nativeBuildInputs = [ cacert ]; installPhase = '' runHook preInstall Loading @@ -104,21 +111,25 @@ let meta.platforms = lib.platforms.darwin; }; browsers-linux = { withChromium ? true }: let fontconfig = makeFontsConf { fontDirectories = []; }; browsers-linux = { withChromium ? true, }: let fontconfig = makeFontsConf { fontDirectories = [ ]; }; in runCommand ("playwright-browsers" + lib.optionalString withChromium "-chromium") runCommand ("playwright-browsers" + lib.optionalString withChromium "-chromium") { nativeBuildInputs = [ makeWrapper jq ]; } ('' } ( '' BROWSERS_JSON=${driver}/package/browsers.json '' + lib.optionalString withChromium '' '' + lib.optionalString withChromium '' CHROMIUM_REVISION=$(jq -r '.browsers[] | select(.name == "chromium").revision' $BROWSERS_JSON) mkdir -p $out/chromium-$CHROMIUM_REVISION/chrome-linux Loading @@ -127,10 +138,12 @@ let makeWrapper ${chromium}/bin/chromium $out/chromium-$CHROMIUM_REVISION/chrome-linux/chrome \ --set SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt \ --set FONTCONFIG_FILE ${fontconfig} '' + '' '' + '' FFMPEG_REVISION=$(jq -r '.browsers[] | select(.name == "ffmpeg").revision' $BROWSERS_JSON) mkdir -p $out/ffmpeg-$FFMPEG_REVISION ln -s ${ffmpeg}/bin/ffmpeg $out/ffmpeg-$FFMPEG_REVISION/ffmpeg-linux ''); '' ); in driver Loading
pkgs/development/web/playwright/driver.nix +117 −104 Original line number Diff line number Diff line { lib , stdenv , chromium , ffmpeg , git , jq , nodejs , fetchurl , makeFontsConf , makeWrapper , runCommand , unzip , cacert { lib, stdenv, chromium, ffmpeg, git, jq, nodejs, fetchurl, makeFontsConf, makeWrapper, runCommand, unzip, cacert, }: let inherit (stdenv.hostPlatform) system; throwSystem = throw "Unsupported system: ${system}"; driver = stdenv.mkDerivation (finalAttrs: driver = stdenv.mkDerivation ( finalAttrs: let suffix = { suffix = { x86_64-linux = "linux"; aarch64-linux = "linux-arm64"; x86_64-darwin = "mac"; aarch64-darwin = "mac-arm64"; }.${system} or throwSystem; } .${system} or throwSystem; filename = "playwright-${finalAttrs.version}-${suffix}.zip"; in { Loading @@ -34,12 +38,14 @@ let src = fetchurl { url = "https://playwright.azureedge.net/builds/driver/${filename}"; sha256 = { sha256 = { x86_64-linux = "0y9n23r4yfcgm4a50rfgicl91vrllak0d8h26yagh6h8hl0r3nhh"; aarch64-linux = "0zd456klidi4sg7wahfrdbs2bwiq3q6ngxd4iv3vi9f9w9nq2p2k"; x86_64-darwin = "0yaiwg9821w9nszzkrp5skzf5792nahvfqnr4axk84dcngslxvmk"; aarch64-darwin = "1b1jmv6l97ss8c4sc3n1xckn05fpq3fihjbjxr2qz6i9dsy3xj57"; }.${system} or throwSystem; } .${system} or throwSystem; }; sourceRoot = "."; Loading Loading @@ -70,16 +76,19 @@ let passthru = { inherit filename; browsers = { browsers = { x86_64-linux = browsers-linux { }; aarch64-linux = browsers-linux { }; x86_64-darwin = browsers-mac; aarch64-darwin = browsers-mac; }.${system} or throwSystem; } .${system} or throwSystem; browsers-chromium = browsers-linux { }; }; meta.mainProgram = "playwright"; }); } ); browsers-mac = stdenv.mkDerivation { pname = "playwright-browsers"; Loading @@ -87,9 +96,7 @@ let dontUnpack = true; nativeBuildInputs = [ cacert ]; nativeBuildInputs = [ cacert ]; installPhase = '' runHook preInstall Loading @@ -104,21 +111,25 @@ let meta.platforms = lib.platforms.darwin; }; browsers-linux = { withChromium ? true }: let fontconfig = makeFontsConf { fontDirectories = []; }; browsers-linux = { withChromium ? true, }: let fontconfig = makeFontsConf { fontDirectories = [ ]; }; in runCommand ("playwright-browsers" + lib.optionalString withChromium "-chromium") runCommand ("playwright-browsers" + lib.optionalString withChromium "-chromium") { nativeBuildInputs = [ makeWrapper jq ]; } ('' } ( '' BROWSERS_JSON=${driver}/package/browsers.json '' + lib.optionalString withChromium '' '' + lib.optionalString withChromium '' CHROMIUM_REVISION=$(jq -r '.browsers[] | select(.name == "chromium").revision' $BROWSERS_JSON) mkdir -p $out/chromium-$CHROMIUM_REVISION/chrome-linux Loading @@ -127,10 +138,12 @@ let makeWrapper ${chromium}/bin/chromium $out/chromium-$CHROMIUM_REVISION/chrome-linux/chrome \ --set SSL_CERT_FILE /etc/ssl/certs/ca-bundle.crt \ --set FONTCONFIG_FILE ${fontconfig} '' + '' '' + '' FFMPEG_REVISION=$(jq -r '.browsers[] | select(.name == "ffmpeg").revision' $BROWSERS_JSON) mkdir -p $out/ffmpeg-$FFMPEG_REVISION ln -s ${ffmpeg}/bin/ffmpeg $out/ffmpeg-$FFMPEG_REVISION/ffmpeg-linux ''); '' ); in driver