config: calculate BOOTSOURCEDIR & friends only _after_ late_family_config hook; fixes #6144

- snafu on my part, sorry
- also: add more change-tracking variables; add more calls to change tracking in some key places, for future clarity
This commit is contained in:
Ricardo Pardini 2023-12-27 14:55:55 +01:00 committed by Igor
parent 6cd3981805
commit 04bde7ac47
2 changed files with 24 additions and 13 deletions

View File

@ -43,5 +43,6 @@ function track_config_variables() {
function track_general_config_variables() {
track_config_variables "${1}" BOARDFAMILY KERNELSOURCE KERNEL_MAJOR_MINOR KERNELBRANCH LINUXFAMILY LINUXCONFIG KERNELPATCHDIR KERNEL_PATCH_ARCHIVE_BASE
array_values="yes" track_config_variables "${1}" KERNEL_DRIVERS_SKIP
track_config_variables "${1}" BOOTSOURCE BOOTBRANCH BOOTPATCHDIR BOOTDIR BOOTCONFIG BOOTBRANCH_BOARD BOOTPATCHDIR_BOARD
track_config_variables "${1}" BOOTSOURCE BOOTSOURCEDIR BOOTBRANCH BOOTPATCHDIR BOOTDIR BOOTCONFIG BOOTBRANCH_BOARD BOOTPATCHDIR_BOARD
track_config_variables "${1}" ATFSOURCEDIR ATFDIR ATFBRANCH CRUSTSOURCEDIR CRUSTDIR CRUSTBRANCH LINUXSOURCEDIR
}

View File

@ -203,18 +203,7 @@ function config_post_main() {
display_alert "BETA" "Not yes nor no, user-built" "debug"
IMAGE_TYPE=user-built
fi
declare -g BOOTSOURCEDIR
BOOTSOURCEDIR="u-boot-worktree/${BOOTDIR}/$(branch2dir "${BOOTBRANCH}")"
if [[ -n $ATFSOURCE ]]; then
declare -g ATFSOURCEDIR
ATFSOURCEDIR="${ATFDIR}/$(branch2dir "${ATFBRANCH}")"
fi
if [[ -n $CRUSTSOURCE ]]; then
declare -g CRUSTSOURCEDIR
CRUSTSOURCEDIR="${CRUSTDIR}/$(branch2dir "${CRUSTBRANCH}")"
fi
track_general_config_variables "at beginning of config_post_main"
# So for kernel full cached rebuilds.
# We wanna be able to rebuild kernels very fast. so it only makes sense to use a dir for each built kernel.
@ -232,6 +221,25 @@ function config_post_main() {
LATE_FAMILY_CONFIG
track_general_config_variables "after late_family_config hooks"
# We need BOOTDIR and BOOTBRANCH here, bomb if not
[[ -z "${BOOTDIR}" ]] && exit_with_error "BOOTDIR not set after late_family_config"
[[ -z "${BOOTBRANCH}" ]] && exit_with_error "BOOTBRANCH not set after late_family_config"
declare -g BOOTSOURCEDIR
BOOTSOURCEDIR="u-boot-worktree/${BOOTDIR}/$(branch2dir "${BOOTBRANCH}")"
if [[ -n $ATFSOURCE ]]; then
declare -g ATFSOURCEDIR
ATFSOURCEDIR="${ATFDIR}/$(branch2dir "${ATFBRANCH}")"
fi
if [[ -n $CRUSTSOURCE ]]; then
declare -g CRUSTSOURCEDIR
CRUSTSOURCEDIR="${CRUSTDIR}/$(branch2dir "${CRUSTBRANCH}")"
fi
track_general_config_variables "before handling KERNEL_MAJOR_MINOR in config_post_main"
if [[ "${KERNELSOURCE}" != 'none' ]]; then
if [[ "x${KERNEL_MAJOR_MINOR}x" == "xx" ]]; then
display_alert "Problem: after configuration, there's not enough kernel info" "Might happen if you used the wrong BRANCH. Make sure 'BRANCH=${BRANCH}' is valid." "err"
@ -289,6 +297,7 @@ function config_post_main() {
# Do some sanity checks for userspace stuff, if RELEASE/DESKTOP_ENVIRONMENT is set.
check_config_userspace_release_and_desktop
track_general_config_variables "before calling extension_finish_config"
display_alert "Extensions: finish configuration" "extension_finish_config" "debug"
call_extension_method "extension_finish_config" <<- 'EXTENSION_FINISH_CONFIG'
*allow extensions a last chance at configuration just before it is done*
@ -296,6 +305,7 @@ function config_post_main() {
This runs *late*, and is the final step before finishing configuration.
Don't change anything not coming from other variables or meant to be configured by the user.
EXTENSION_FINISH_CONFIG
track_general_config_variables "after calling extension_finish_config"
return 0 # protect against eventual shortcircuit above
}