builder: enhance work around missing profile.json

This commit is contained in:
Astro 2022-06-10 21:54:09 +02:00
parent 51d67c0a59
commit 81dfe7ffb9
2 changed files with 24 additions and 18 deletions

View File

@ -31,14 +31,15 @@ with pkgs;
let let
inherit (import ./files.nix { inherit (import ./files.nix {
inherit pkgs release target variant sha256 feedsSha256 packagesArch; inherit pkgs release target variant sha256 feedsSha256 packagesArch;
}) arch variantFiles profiles expandDeps allPackages; }) arch variantFiles profiles expandDeps corePackages packagesByFeed allPackages;
requiredPackages = ( requiredPackages = (
profiles.default_packages or [] profiles.default_packages or (
++ builtins.attrNames packagesByFeed.base
profiles.profiles.${profile}.device_packages or [] ++ builtins.attrNames corePackages
++ )
packages ++ profiles.profiles.${profile}.device_packages or []
++ packages
); );
allRequiredPackages = expandDeps allPackages requiredPackages; allRequiredPackages = expandDeps allPackages requiredPackages;
in in
@ -59,19 +60,23 @@ stdenv.mkDerivation {
grep -r usr/bin/env grep -r usr/bin/env
''; '';
configurePhase = '' configurePhase =
${lib.concatMapStrings (pname: let
let installPackages = writeScript "install-openwrt-packages" (
package = allPackages.${pname}; lib.concatMapStrings (pname:
in let
lib.optionalString package = allPackages.${pname};
(package.type == "real") in
"[ -e packages/${package.filename} ] || ln -s ${package.file} packages/${package.filename}\n" lib.optionalString
) (package.type == "real")
allRequiredPackages} "[ -e packages/${package.filename} ] || ln -s ${package.file} packages/${package.filename}\n"
) allRequiredPackages
);
in ''
${installPackages}
echo "src imagebuilder file:packages" > repositories.conf echo "src imagebuilder file:packages" > repositories.conf
''; '';
nativeBuildInputs = nativeBuildInputs =
[ [

View File

@ -198,6 +198,7 @@ let
in { in {
inherit allPackages; inherit allPackages;
inherit corePackages packagesByFeed;
inherit expandDeps; inherit expandDeps;
inherit variantFiles; inherit variantFiles;
inherit profiles arch; inherit profiles arch;