diff options
author | Leah Rowe <leah@libreboot.org> | 2024-06-30 00:40:30 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2024-06-30 00:40:30 +0100 |
commit | 789631ccb822560281c5b52f849b54e80bf92467 (patch) | |
tree | f847c533d6a4f107e81b502952c35f49a0b3748b | |
parent | a5e724e51ea8e40da72493cec36506527123e842 (diff) |
trees, multi: download bare project *before* trees
when downloading multi-tree projects, the rev can be reset
to HEAD instead of the actual rev for a given target. this
occurs when the bare repo (e.g. src/coreboot/coreboot) does
not exist and has to be downloaded first.
bare repository downloading does not rely on target.cfg, in
this context, only pkg.cfg, but it uses the same variable
names (e.g. "rev").
instead of using a separate variable name, thus increasing
code complexity (which is the exact opposite of what i want
to do), do the bare repository download first.
this means that the git.sh script is much cleaner now, for
multi-tree projects, in that it *only* copies the bare repo
then runs git_prep; in that context, the bare repo is cloned
directly by calling the relevant function from script/trees,
which is the same behaviour as when cloning single-tree
project sources.
Signed-off-by: Leah Rowe <leah@libreboot.org>
-rwxr-xr-x | include/git.sh | 2 | ||||
-rwxr-xr-x | script/trees | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/include/git.sh b/include/git.sh index e73f1ad7..12aa80d4 100755 --- a/include/git.sh +++ b/include/git.sh @@ -7,8 +7,6 @@ eval `setvars "" rev loc url bkup_url depend tree_depend xtree mdir subhash \ fetch_targets() { - [ ! -d "src/$project/$project" ] && x_ mkdir -p "src/$project" \ - && fetch_project "$project" [ -n "$tree_depend" ] && [ "$tree_depend" != "$tree" ] && \ x_ ./update trees -f "$project" "$tree_depend" e "src/$project/$tree" d || prepare_new_tree; return 0 diff --git a/script/trees b/script/trees index b5cf13f0..0a9cf90d 100755 --- a/script/trees +++ b/script/trees @@ -142,6 +142,9 @@ handle_src_tree() load_project_config() { + [ "$cmd" = "build_targets" ] && [ ! -d "src/$project/$project" ] && \ + x_ mkdir -p "src/$project" && fetch_project "$project" + eval `setvars "" xarch xlang bootstrapargs autoconfargs xtree \ tree_depend makeargs btype mkhelper` [ -f "$1/target.cfg" ] || btype="auto" |