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.
This commit is contained in:
parent
fde40f170c
commit
50c6120a3e
1 changed files with 8 additions and 3 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue