diff options
author | Raito Bezarius <masterancpp@gmail.com> | 2023-09-16 04:02:37 +0200 |
---|---|---|
committer | Raito Bezarius <masterancpp@gmail.com> | 2023-09-16 04:02:56 +0200 |
commit | 50c6120a3e14a15b507f07237d4748c6ebacbba5 (patch) | |
tree | d32953b2141536af2d3106e452d8a4741293b548 /pkgs/misc | |
parent | fde40f170cae6ba541f91b9d48278e8a8702e55f (diff) | |
download | nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar.gz nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar.bz2 nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar.lz nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar.xz nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.tar.zst nixlib-50c6120a3e14a15b507f07237d4748c6ebacbba5.zip |
buildUBoot: supports Python scripts with their own environment
Sometimes, U-Boot has interesting Python scripts in tools/, the issue is that they rely on implicit dependencies described by their code itself. For this, we offer an attribute set-style option to install Python scripts with specific dependencies. For example, you could do `pythonScriptsToInstall."tools/efivar.py" = python3.withPackages (ps: [ ps.pyopenssl ]);` which will be added in a next PR.
Diffstat (limited to 'pkgs/misc')
-rw-r--r-- | pkgs/misc/uboot/default.nix | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 9ac761601270..6c002851db6f 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -34,6 +34,7 @@ let version ? null , src ? null , filesToInstall + , pythonScriptsToInstall ? { } , installDir ? "$out" , defconfig , extraConfig ? "" @@ -52,6 +53,10 @@ let ] ++ extraPatches; postPatch = '' + ${lib.concatMapStrings (script: '' + substituteInPlace ${script} \ + --replace "#!/usr/bin/env python3" "#!${pythonScriptsToInstall.${script}}/bin/python3" + '') (builtins.attrNames pythonScriptsToInstall)} patchShebangs tools patchShebangs arch/arm/mach-rockchip ''; @@ -105,12 +110,12 @@ let runHook preInstall mkdir -p ${installDir} - cp ${lib.concatStringsSep " " filesToInstall} ${installDir} + cp ${lib.concatStringsSep " " (filesToInstall ++ builtins.attrNames pythonScriptsToInstall)} ${installDir} mkdir -p "$out/nix-support" ${lib.concatMapStrings (file: '' echo "file binary-dist ${installDir}/${builtins.baseNameOf file}" >> "$out/nix-support/hydra-build-products" - '') filesToInstall} + '') (filesToInstall ++ builtins.attrNames pythonScriptsToInstall)} runHook postInstall ''; @@ -123,7 +128,7 @@ let license = licenses.gpl2; maintainers = with maintainers; [ bartsch dezgeg samueldr lopsided98 ]; } // extraMeta; - } // removeAttrs args [ "extraMeta" ])); + } // removeAttrs args [ "extraMeta" "pythonScriptsToInstall" ])); in { inherit buildUBoot; |