nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 buildPlatform,
4 hostPlatform,
5 callPackage,
6 fetchgit,
7 fetchurl,
8 writeText,
9 runCommand,
10 darwin,
11 writeShellScriptBin,
12 depot_toolsCommit ? "580b4ff3f5cd0dcaa2eacda28cefe0f45320e8f7",
13 depot_toolsHash ? "sha256-k+XQSYJQYc9vAUjwrRxaAlX/sK74W45m5byS31hSpwc=",
14 cipdCommit ? "7120a6a515089a3ff5d1f61ff4ee17750dc038af",
15 cipdHashes ? {
16 "linux-386" = "sha256-CshLfw49uglvWNwWE4K7ucBUF+IZlXDaIQsTXtFEJ8U=";
17 "linux-amd64" = "sha256-rxpI+HqfZiOYvzyyQ9P93s70feDmrLgbm4Xh3o88LwQ=";
18 "linux-arm64" = "sha256-XTTKbw1Q2lin+pf7VADalpBy3AWMTEd7yItsE/pePxw=";
19 "linux-armv6l" = "sha256-e5qe2KcguRLPuAq6wOG7A3YghHHon+oHY3fRLhU+e9E=";
20 "linux-loong64" = "sha256-LPTK4Ly173jac+cSGrsWw0ajrWEYepeJDGtP/7Xh528=";
21 "linux-mips" = "sha256-nR5khvHbAijs0MEr8+UgbuHTRNQAsMOyGTU/DI3K5Os=";
22 "linux-mips64" = "sha256-4a/zD1CrC/sxtBHqSRpom0SYVoN38bz3FAM40OSdVI0=";
23 "linux-mips64le" = "sha256-JnfKuBGLHYNLnRieS0KV8sYaTjh2rbp1yijvNOrU0FE=";
24 "linux-mipsle" = "sha256-nWqoay8c4faRk2+G5TvwbsbnndjTU4oglOTfhSC+TLQ=";
25 "linux-ppc64" = "sha256-pjeI/bx0i+QchQLhNB88ACPI34SrFvvFA01F5Nb16Ys=";
26 "linux-ppc64le" = "sha256-ZDMDwrP1zYlOI1hdbd3iZwKr59v/8CWj2sZ1RdosAiE=";
27 "linux-riscv64" = "sha256-O2EvOnjwbNssB7FtbK44yFcXfkrh9HOsPs/HF+uD2m8=";
28 "linux-s390x" = "sha256-BKeNDtuc9IkmV4GpuZcdsGc2F039KQeLdozxh7u+FDw=";
29 "macos-amd64" = "sha256-ZKBm8PbKjg4t0jIBPRKAv85L8eZOwJ1wBvh3cRSqHOI=";
30 "macos-arm64" = "sha256-AvjJp7JF05CetYDnwNJneAsotm1vBHWqB/vCdcIohoU=";
31 "windows-386" = "sha256-AVLbWh+WtJKynFDS6IfhuvYudw4Ow9s6w2JyDWG/2CI=";
32 "windows-amd64" = "sha256-puAQhiPGuwzkElWiBdTRGWOaUR2AIP7Qv9S3pwEY74E=";
33 "windows-arm64" = "sha256-4wxOMG+zvkM7gjhAiQvvNqNS0AamKKJdaBM/+rRxgXk=";
34 },
35}:
36let
37 constants = callPackage ./constants.nix { platform = buildPlatform; };
38 host-constants = callPackage ./constants.nix { platform = hostPlatform; };
39 stdenv-constants = callPackage ./constants.nix { platform = stdenv.hostPlatform; };
40in
41{
42 depot_tools = fetchgit {
43 url = "https://chromium.googlesource.com/chromium/tools/depot_tools.git";
44 rev = depot_toolsCommit;
45 hash = depot_toolsHash;
46 };
47
48 cipd =
49 let
50 unwrapped =
51 runCommand "cipd-${cipdCommit}"
52 {
53 src = fetchurl {
54 name = "cipd-${cipdCommit}-unwrapped";
55 url = "https://chrome-infra-packages.appspot.com/client?platform=${stdenv-constants.platform}&version=git_revision:${cipdCommit}";
56 hash = cipdHashes.${stdenv-constants.platform};
57 };
58 }
59 ''
60 mkdir --parents $out/bin
61 install --mode=0755 $src $out/bin/cipd
62 '';
63 in
64 writeShellScriptBin "cipd" ''
65 params=$@
66
67 if [[ "$1" == "ensure" ]]; then
68 shift 1
69 params="ensure"
70
71 while [ "$#" -ne 0 ]; do
72 if [[ "$1" == "-ensure-file" ]]; then
73 ensureFile="$2"
74 shift 2
75 params="$params -ensure-file $ensureFile"
76
77 sed -i 's/''${platform}/${host-constants.platform}/g' "$ensureFile"
78 sed -i 's/gn\/gn\/${stdenv-constants.platform}/gn\/gn\/${constants.platform}/g' "$ensureFile"
79
80 if grep flutter/java/openjdk "$ensureFile" >/dev/null; then
81 sed -i '/src\/flutter\/third_party\/java\/openjdk/,+2 d' "$ensureFile"
82 fi
83 else
84 params="$params $1"
85 shift 1
86 fi
87 done
88 fi
89
90 exec ${unwrapped}/bin/cipd $params
91 '';
92
93 vpython =
94 pythonPkg:
95 runCommand "vpython3" { } ''
96 mkdir --parents $out/bin
97 ln --symbolic ${pythonPkg}/bin/python $out/bin/vpython3
98 '';
99
100 xcode-select = writeShellScriptBin "xcode-select" ''
101 echo ${darwin.xcode}/Contents/Developer
102 '';
103}