diff --git a/lib/functions/configuration/change-tracking.sh b/lib/functions/configuration/change-tracking.sh index 2592eb94a2..f784624ac0 100644 --- a/lib/functions/configuration/change-tracking.sh +++ b/lib/functions/configuration/change-tracking.sh @@ -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 } diff --git a/lib/functions/main/config-prepare.sh b/lib/functions/main/config-prepare.sh index dbd97e5e88..58c6252516 100644 --- a/lib/functions/main/config-prepare.sh +++ b/lib/functions/main/config-prepare.sh @@ -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 }