infinite recursion was due to autoPatchelfHook being in buildInputs of platform-tools, i will add a lint for it in nix-community/nixpkgs-lint. ``` $ nix build ".#pkgsCross.aarch64-android-prebuilt.hello" --show-trace 2>&1 | rg 'while evaluating the attr.+deriv' … while evaluating the attribute 'stdenv' of the derivation 'zlib-aarch64-unknown-linux-android-1.2.13' … while evaluating the attribute 'CPPFLAGS' of the derivation 'python3-aarch64-unknown-linux-android-3.10.8' … while evaluating the attribute 'setuptools' of the derivation 'python-catch-conflicts-hook' … while evaluating the attribute 'nativeBuildInputs' of the derivation 'python3.10-pyelftools-0.28' … while evaluating the attribute 'passAsFile' of the derivation 'python3-3.10.8-env' … while evaluating the attribute 'pythonInterpreter' of the derivation 'auto-patchelf-hook' … while evaluating the attribute 'buildInputs' of the derivation 'platform-tools-33.0.2' … while evaluating the attribute 'installPhase' of the derivation 'ndk-24.0.8215888' … while evaluating the attribute 'installPhase' of the derivation 'aarch64-unknown-linux-android-ndk-toolchain-24.0.8215888' … while evaluating the attribute 'bintools_bin' of the derivation 'aarch64-unknown-linux-android-ndk-toolchain-wrapper-24.0.8215888' … while evaluating the attribute 'bintools' of the derivation 'aarch64-unknown-linux-android-ndk-toolchain-wrapper-24.0.8215888' … while evaluating the attribute 'defaultNativeBuildInputs' of the derivation 'stdenv-linux' … while evaluating the attribute 'stdenv' of the derivation 'hello-aarch64-unknown-linux-android-2.12.1' ``` stdenv -> stdenv.cc -> bintools -> android-ndk-toolchain -> ndk -> platform-tools -> auto-patchelf-hook -> python3 -> zlib -> stdenv -> stdenv.cc -> ... autoPatchelfHook was in buildInputs of platform-tools so we needed the host tools to build it but platform-tools was a required tool
27 lines
1,014 B
Nix
27 lines
1,014 B
Nix
{deployAndroidPackage, requireFile, lib, packages, toolsVersion, os, callPackage, postInstall ? ""}:
|
|
|
|
if toolsVersion == "26.0.1" then callPackage ./tools/26.nix {
|
|
inherit deployAndroidPackage lib os postInstall;
|
|
package = {
|
|
name = "tools";
|
|
path = "tools";
|
|
revision = "26.0.1";
|
|
archives = {
|
|
linux = requireFile {
|
|
url = "https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip";
|
|
sha256 = "185yq7qwxflw24ccm5d6zziwlc9pxmsm3f54pm9p7xm0ik724kj4";
|
|
};
|
|
macosx = requireFile {
|
|
url = "https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip";
|
|
sha256 = "1ycx9gzdaqaw6n19yvxjawywacavn1jc6sadlz5qikhgfr57b0aa";
|
|
};
|
|
};
|
|
};
|
|
} else if toolsVersion == "26.1.1" then callPackage ./tools/26.nix {
|
|
inherit deployAndroidPackage lib os postInstall;
|
|
package = packages.tools.${toolsVersion};
|
|
} else callPackage ./tools/25.nix {
|
|
inherit deployAndroidPackage lib os postInstall;
|
|
package = packages.tools.${toolsVersion};
|
|
}
|