From 4f87103493e65a6bf81151e095ecfe7691aaec16 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:11:18 +0000 Subject: [PATCH 01/22] fix(naming): rename nix recipe to build bao w/ local sources Signed-off-by: Diogo Costa --- pkgs/bao/{bao_tf.nix => bao_local.nix} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pkgs/bao/{bao_tf.nix => bao_local.nix} (100%) diff --git a/pkgs/bao/bao_tf.nix b/pkgs/bao/bao_local.nix similarity index 100% rename from pkgs/bao/bao_tf.nix rename to pkgs/bao/bao_local.nix From c9e414acc01fd76fe88e4cc21381b20e4e1e7544 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:11:31 +0000 Subject: [PATCH 02/22] fix(naming): rename nix recipe to build bao w/ remote sources Signed-off-by: Diogo Costa --- pkgs/bao/{bao.nix => bao_remote.nix} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pkgs/bao/{bao.nix => bao_remote.nix} (100%) diff --git a/pkgs/bao/bao.nix b/pkgs/bao/bao_remote.nix similarity index 100% rename from pkgs/bao/bao.nix rename to pkgs/bao/bao_remote.nix From b493c09202d7c4dbd5dfa34ecfa433fc9edf7b49 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:21:31 +0000 Subject: [PATCH 03/22] fix(inputs): remove useless build inputs to bao local build Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 0c51604..1e4c6f1 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -4,12 +4,8 @@ { stdenv , fetchFromGitHub , fetchurl -, toolchain -, python3 -, python3Packages , rsync -, guest -, demos +, toolchain , platform_cfg }: @@ -25,8 +21,8 @@ stdenv.mkDerivation rec { src = ../../../../.; - nativeBuildInputs = [ toolchain guest demos]; #build time dependencies - buildInputs = [python3 python3Packages.numpy rsync]; + nativeBuildInputs = [ toolchain ]; #build time dependencies + buildInputs = [ rsync ]; unpackPhase = '' mkdir -p $out From fa38088e6fd5cd6d3e777ae2562c0ea67cad752e Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:18:17 +0000 Subject: [PATCH 04/22] fix(pname): rename nix script project name of bao local build Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 1e4c6f1..51ebaad 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { # Derivation to build bao to run the bao test framework (as a guest) # MUT: bao-hypervisor - pname = "bao-tf"; + pname = "bao-local"; version = "1.0.0"; platform = platform_cfg.platform_name; From 99480c5394570e18117297bda3062b8a4402f131 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:20:39 +0000 Subject: [PATCH 05/22] feat(config): allow to define bao srcs path to bao local build Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 51ebaad..a1eca46 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -6,6 +6,7 @@ , fetchurl , rsync , toolchain +, bao_srcs_path , platform_cfg }: @@ -19,7 +20,7 @@ stdenv.mkDerivation rec { plat_arch = platform_cfg.platforms-arch.${platform}; plat_toolchain = platform_cfg.platforms-toolchain.${platform}; - src = ../../../../.; + src = bao_srcs_path; nativeBuildInputs = [ toolchain ]; #build time dependencies buildInputs = [ rsync ]; From fe6b8aa0ff16348afd5d0c641044194650c5179c Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:23:31 +0000 Subject: [PATCH 06/22] fix(unpack): avoid copy bao sources to output directory Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index a1eca46..c056657 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -28,8 +28,7 @@ stdenv.mkDerivation rec { unpackPhase = '' mkdir -p $out #copy everything except tests - rsync -r --exclude 'tests' $src/ $out - cd $out + rsync -r $src/ ./ ''; buildPhase = '' From 608b16ded0af55b3483f30ed1b04221f28d8c9fe Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:27:19 +0000 Subject: [PATCH 07/22] fix(build): remove useless environment variable Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index c056657..79c20ab 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { buildPhase = '' export ARCH=${plat_arch} export CROSS_COMPILE=${plat_toolchain}- - export DEMO=baremetal + mkdir -p ./config cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ ./config/$DEMO.c From a210af21800eef8d977e105d30a77bdcee95de6d Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:29:16 +0000 Subject: [PATCH 08/22] update(build): allow bao local build to load multiple guests image Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 79c20ab..9fc5cbe 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -8,6 +8,7 @@ , toolchain , bao_srcs_path , platform_cfg +, guests }: stdenv.mkDerivation rec { @@ -22,7 +23,7 @@ stdenv.mkDerivation rec { src = bao_srcs_path; - nativeBuildInputs = [ toolchain ]; #build time dependencies + nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; unpackPhase = '' @@ -35,6 +36,12 @@ stdenv.mkDerivation rec { export ARCH=${plat_arch} export CROSS_COMPILE=${plat_toolchain}- + # Load guest images + mkdir -p ./guests + for guest in ${toString guests}; do + cp $guest/bin/*.bin ./guests/ + done + mkdir -p ./config cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ ./config/$DEMO.c From 64317a3ef8eab695c46aaa7dde171b1e6067f42f Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:34:36 +0000 Subject: [PATCH 09/22] update(build): allow bao local build to load different config files Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 9fc5cbe..1a66a74 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -41,12 +41,14 @@ stdenv.mkDerivation rec { for guest in ${toString guests}; do cp $guest/bin/*.bin ./guests/ done - + + echo "Guests dir:" + ls ./guests + + # Load bao config mkdir -p ./config - cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ - ./config/$DEMO.c - mkdir -p ./$DEMO - cp -L ${guest}/bin/baremetal.bin ./$DEMO + echo "${bao_cfg}" > ./config/config.c + make PLATFORM=${platform}\ CONFIG_REPO=./config\ CONFIG=$DEMO\ From 734aeec359efc7a48e90752586d9a70a21d453ba Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:39:11 +0000 Subject: [PATCH 10/22] update(build): update bao local build to decouple from bao demos Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 1a66a74..d4b4ddf 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -49,10 +49,11 @@ stdenv.mkDerivation rec { mkdir -p ./config echo "${bao_cfg}" > ./config/config.c + # Build Bao make PLATFORM=${platform}\ CONFIG_REPO=./config\ - CONFIG=$DEMO\ - CPPFLAGS=-DBAO_DEMOS_WRKDIR_IMGS=./$DEMO + CONFIG=config\ + CPPFLAGS=-DBAO_WRKDIR_IMGS=./guests ''; installPhase = '' From ddc9bed674bb91360fb919888db6bbf194b46835 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:40:05 +0000 Subject: [PATCH 11/22] update(install): update bao local build to decouple from bao demos Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index d4b4ddf..f653e94 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -57,8 +57,8 @@ stdenv.mkDerivation rec { ''; installPhase = '' - mkdir -p $out/bin - cp ./bin/${platform}/$DEMO/bao.bin $out/bin + mkdir -p $out/bao + cp -r ./bin/${platform}/config/bao.bin $out/bao ''; } From ef79076c71887b450344084f35bb7df3513d1f22 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:57:56 +0000 Subject: [PATCH 12/22] fix(inputs): remove useless build inputs to bao remote build Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 69efc72..5e2769c 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -5,8 +5,7 @@ , fetchFromGitHub , fetchurl , toolchain -, guest -, demos +, bao_cfg , platform_cfg }: @@ -25,7 +24,7 @@ stdenv.mkDerivation rec { sha256 = "sha256-pCsVpSOuCCQ86HbLbyGpi6nHi5dxa7hbQIuoemE/fSA="; }; - nativeBuildInputs = [ toolchain guest demos]; #build time dependencies + nativeBuildInputs = [ toolchain ]; #build time dependencies buildPhase = '' export ARCH=${plat_arch} From d08ccb7de66ba6574edf6d64f48cb1e68cd7290f Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:57:10 +0000 Subject: [PATCH 13/22] fix(pname): rename nix script project name of bao remote build Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 5e2769c..07efcd0 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -10,7 +10,7 @@ }: stdenv.mkDerivation rec { - pname = "bao"; + pname = "bao-remote"; version = "1.0.0"; platform = platform_cfg.platform_name; From 65ef9f2715571880c9ab7abddbffb16bb141b4c8 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 15:59:10 +0000 Subject: [PATCH 14/22] fix(build): remove useless environment variable Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 07efcd0..f61ce58 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { buildPhase = '' export ARCH=${plat_arch} export CROSS_COMPILE=${plat_toolchain}- - export DEMO=baremetal + mkdir -p ./config cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ ./config/$DEMO.c From 53c38943d356f0e24317c2d5b964a34b6881351e Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 16:03:41 +0000 Subject: [PATCH 15/22] update(build): allow bao remote build to load multiple guests image Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index f61ce58..069fedc 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -7,6 +7,7 @@ , toolchain , bao_cfg , platform_cfg +, guests }: stdenv.mkDerivation rec { @@ -24,12 +25,18 @@ stdenv.mkDerivation rec { sha256 = "sha256-pCsVpSOuCCQ86HbLbyGpi6nHi5dxa7hbQIuoemE/fSA="; }; - nativeBuildInputs = [ toolchain ]; #build time dependencies + nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildPhase = '' export ARCH=${plat_arch} export CROSS_COMPILE=${plat_toolchain}- + # Load guest images + mkdir -p ./guests + for guest in ${toString guests}; do + cp $guest/bin/*.bin ./guests/ + done + mkdir -p ./config cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ ./config/$DEMO.c From 469d391b1d63df6270a470e02e6d7b892beab314 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 16:02:57 +0000 Subject: [PATCH 16/22] update(build): allow bao remote build to load different config files Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 069fedc..8bda63b 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -36,12 +36,12 @@ stdenv.mkDerivation rec { for guest in ${toString guests}; do cp $guest/bin/*.bin ./guests/ done - + + # Load bao config mkdir -p ./config - cp -L ${demos}/demos/$DEMO/configs/${platform}.c \ - ./config/$DEMO.c - mkdir -p ./$DEMO - cp -L ${guest}/bin/baremetal.bin ./$DEMO + echo "${bao_cfg}" > ./config/config.c + + # Build Bao make PLATFORM=${platform}\ CONFIG_REPO=./config\ CONFIG=$DEMO\ From 133bbcdab8bd4ecd06280e42ca97fe80fd30757c Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 16:05:32 +0000 Subject: [PATCH 17/22] update(build): update bao remote build to decouple from bao demos Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 8bda63b..cafc3d3 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -44,8 +44,8 @@ stdenv.mkDerivation rec { # Build Bao make PLATFORM=${platform}\ CONFIG_REPO=./config\ - CONFIG=$DEMO\ - CPPFLAGS=-DBAO_DEMOS_WRKDIR_IMGS=./$DEMO + CONFIG=config\ + CPPFLAGS=-DBAO_WRKDIR_IMGS=./guests ''; installPhase = '' From c479cbcd628505706a00f41eed730cb5556d58a3 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Tue, 28 Nov 2023 16:06:31 +0000 Subject: [PATCH 18/22] update(install): update bao remote build to decouple from bao demos Signed-off-by: Diogo Costa --- pkgs/bao/bao_remote.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index cafc3d3..3b58295 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -49,8 +49,8 @@ stdenv.mkDerivation rec { ''; installPhase = '' - mkdir -p $out/bin - cp ./bin/${platform}/$DEMO/bao.bin $out/bin + mkdir -p $out/bao + cp -r ./bin/${platform}/config/bao.bin $out/bao ''; } From 032436b23272c6cf3e4eb3da3066a0112abc4115 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Thu, 22 Feb 2024 13:58:49 +0000 Subject: [PATCH 19/22] fix(bao_recipe): split unpack and build phase Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 26 ++++++++++++-------------- pkgs/bao/bao_remote.nix | 26 +++++++++++++++++--------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index f653e94..a802c03 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -26,28 +26,26 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; + unpackPhase = '' mkdir -p $out - #copy everything except tests - rsync -r $src/ ./ + mkdir -p $out/srcs + mkdir -p $out/configs + mkdir -p $out/guests + + rsync -r $srcs/ $out/srcs + # cp -r ${srcs}/* $out/srcs + cp -r ${bao_cfg_repo}/* $out/configs + for guest in ${toString guests}; do + cp $guest/bin/*.bin $out/guests/ + done ''; buildPhase = '' + cd $out/srcs export ARCH=${plat_arch} export CROSS_COMPILE=${plat_toolchain}- - - # Load guest images - mkdir -p ./guests - for guest in ${toString guests}; do - cp $guest/bin/*.bin ./guests/ - done - - echo "Guests dir:" - ls ./guests - # Load bao config - mkdir -p ./config - echo "${bao_cfg}" > ./config/config.c # Build Bao make PLATFORM=${platform}\ diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 3b58295..6343a3a 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -4,6 +4,7 @@ { stdenv , fetchFromGitHub , fetchurl +, rsync , toolchain , bao_cfg , platform_cfg @@ -26,20 +27,27 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ toolchain guests ]; #build time dependencies + buildInputs = [ rsync ]; - buildPhase = '' - export ARCH=${plat_arch} - export CROSS_COMPILE=${plat_toolchain}- - # Load guest images - mkdir -p ./guests + unpackPhase = '' + mkdir -p $out + mkdir -p $out/srcs + mkdir -p $out/configs + mkdir -p $out/guests + + rsync -r $srcs/ $out/srcs + cp -r ${bao_cfg_repo}/* $out/configs for guest in ${toString guests}; do - cp $guest/bin/*.bin ./guests/ + cp $guest/bin/*.bin $out/guests/ done + ''; + + buildPhase = '' + cd $out/srcs + export ARCH=${plat_arch} + export CROSS_COMPILE=${plat_toolchain}- - # Load bao config - mkdir -p ./config - echo "${bao_cfg}" > ./config/config.c # Build Bao make PLATFORM=${platform}\ From 6c8c1aff0b54ccbf30fa19f3cf4d9e2037dd56fb Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Thu, 22 Feb 2024 13:59:42 +0000 Subject: [PATCH 20/22] fix(bao_recipe): update local sources variable naming Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index a802c03..182f542 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { plat_arch = platform_cfg.platforms-arch.${platform}; plat_toolchain = platform_cfg.platforms-toolchain.${platform}; - src = bao_srcs_path; + srcs = bao_srcs_path; nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; From bd9fbef52bf62d7f09884a7224381baf785fb327 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Thu, 22 Feb 2024 14:00:34 +0000 Subject: [PATCH 21/22] feat(config): add support to use the platform name as default config Signed-off-by: Diogo Costa --- pkgs/bao/bao_local.nix | 11 +++++++---- pkgs/bao/bao_remote.nix | 10 ++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao_local.nix index 182f542..4aea88a 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao_local.nix @@ -7,6 +7,8 @@ , rsync , toolchain , bao_srcs_path +, bao_cfg_repo +, bao_cfg , platform_cfg , guests }: @@ -26,6 +28,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; + bao_build_cfg = if bao_cfg == " " then platform else bao_cfg; unpackPhase = '' mkdir -p $out @@ -49,14 +52,14 @@ stdenv.mkDerivation rec { # Build Bao make PLATFORM=${platform}\ - CONFIG_REPO=./config\ - CONFIG=config\ - CPPFLAGS=-DBAO_WRKDIR_IMGS=./guests + CONFIG_REPO=$out/configs\ + CONFIG=$bao_build_cfg\ + CPPFLAGS=-DBAO_WRKDIR_IMGS=$out/guests ''; installPhase = '' mkdir -p $out/bao - cp -r ./bin/${platform}/config/bao.bin $out/bao + cp -r ./bin/${platform}/${bao_build_cfg}/bao.bin $out/bao ''; } diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix index 6343a3a..0ef6f61 100644 --- a/pkgs/bao/bao_remote.nix +++ b/pkgs/bao/bao_remote.nix @@ -6,6 +6,7 @@ , fetchurl , rsync , toolchain +, bao_cfg_repo , bao_cfg , platform_cfg , guests @@ -29,6 +30,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; + bao_build_cfg = if bao_cfg == " " then platform else bao_cfg; unpackPhase = '' mkdir -p $out @@ -51,14 +53,14 @@ stdenv.mkDerivation rec { # Build Bao make PLATFORM=${platform}\ - CONFIG_REPO=./config\ - CONFIG=config\ - CPPFLAGS=-DBAO_WRKDIR_IMGS=./guests + CONFIG_REPO=$out/configs\ + CONFIG=$bao_build_cfg\ + CPPFLAGS=-DBAO_WRKDIR_IMGS=$out/guests ''; installPhase = '' mkdir -p $out/bao - cp -r ./bin/${platform}/config/bao.bin $out/bao + cp -r ./bin/${platform}/${bao_build_cfg}/bao.bin $out/bao ''; } From 976032d85ad625ffd51ca61a4c8f5d15111858b9 Mon Sep 17 00:00:00 2001 From: Diogo Costa Date: Thu, 22 Feb 2024 14:58:08 +0000 Subject: [PATCH 22/22] ref(bao_recipe): update local/remote srcs assignment Signed-off-by: Diogo Costa --- pkgs/bao/{bao_local.nix => bao.nix} | 14 ++++-- pkgs/bao/bao_remote.nix | 68 ----------------------------- 2 files changed, 11 insertions(+), 71 deletions(-) rename pkgs/bao/{bao_local.nix => bao.nix} (78%) delete mode 100644 pkgs/bao/bao_remote.nix diff --git a/pkgs/bao/bao_local.nix b/pkgs/bao/bao.nix similarity index 78% rename from pkgs/bao/bao_local.nix rename to pkgs/bao/bao.nix index 4aea88a..19a1192 100644 --- a/pkgs/bao/bao_local.nix +++ b/pkgs/bao/bao.nix @@ -6,7 +6,7 @@ , fetchurl , rsync , toolchain -, bao_srcs_path +, bao_srcs_path ? " " , bao_cfg_repo , bao_cfg , platform_cfg @@ -23,7 +23,16 @@ stdenv.mkDerivation rec { plat_arch = platform_cfg.platforms-arch.${platform}; plat_toolchain = platform_cfg.platforms-toolchain.${platform}; - srcs = bao_srcs_path; + srcs = if bao_srcs_path == " " || bao_srcs_path == null then + fetchFromGitHub { + owner = "bao-project"; + repo = "bao-hypervisor"; + rev = "0575782359132465128491ab2fa44c16e76b57f8"; # branch: demo + sha256 = "sha256-pCsVpSOuCCQ86HbLbyGpi6nHi5dxa7hbQIuoemE/fSA="; + } + else + bao_srcs_path; + nativeBuildInputs = [ toolchain guests ]; #build time dependencies buildInputs = [ rsync ]; @@ -37,7 +46,6 @@ stdenv.mkDerivation rec { mkdir -p $out/guests rsync -r $srcs/ $out/srcs - # cp -r ${srcs}/* $out/srcs cp -r ${bao_cfg_repo}/* $out/configs for guest in ${toString guests}; do cp $guest/bin/*.bin $out/guests/ diff --git a/pkgs/bao/bao_remote.nix b/pkgs/bao/bao_remote.nix deleted file mode 100644 index 0ef6f61..0000000 --- a/pkgs/bao/bao_remote.nix +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# Copyright (c) Bao Project and Contributors. All rights reserved. - -{ stdenv -, fetchFromGitHub -, fetchurl -, rsync -, toolchain -, bao_cfg_repo -, bao_cfg -, platform_cfg -, guests -}: - -stdenv.mkDerivation rec { - pname = "bao-remote"; - version = "1.0.0"; - - platform = platform_cfg.platform_name; - plat_arch = platform_cfg.platforms-arch.${platform}; - plat_toolchain = platform_cfg.platforms-toolchain.${platform}; - - srcs = fetchFromGitHub { - owner = "bao-project"; - repo = "bao-hypervisor"; - rev = "0575782359132465128491ab2fa44c16e76b57f8"; # branch: demo - sha256 = "sha256-pCsVpSOuCCQ86HbLbyGpi6nHi5dxa7hbQIuoemE/fSA="; - }; - - nativeBuildInputs = [ toolchain guests ]; #build time dependencies - buildInputs = [ rsync ]; - - bao_build_cfg = if bao_cfg == " " then platform else bao_cfg; - - unpackPhase = '' - mkdir -p $out - mkdir -p $out/srcs - mkdir -p $out/configs - mkdir -p $out/guests - - rsync -r $srcs/ $out/srcs - cp -r ${bao_cfg_repo}/* $out/configs - for guest in ${toString guests}; do - cp $guest/bin/*.bin $out/guests/ - done - ''; - - buildPhase = '' - cd $out/srcs - export ARCH=${plat_arch} - export CROSS_COMPILE=${plat_toolchain}- - - - # Build Bao - make PLATFORM=${platform}\ - CONFIG_REPO=$out/configs\ - CONFIG=$bao_build_cfg\ - CPPFLAGS=-DBAO_WRKDIR_IMGS=$out/guests - ''; - - installPhase = '' - mkdir -p $out/bao - cp -r ./bin/${platform}/${bao_build_cfg}/bao.bin $out/bao - ''; - -} - -