Merge "Set correct python version for non-chroot scripts"

This commit is contained in:
Zuul 2019-12-12 16:48:17 +00:00 committed by Gerrit Code Review
commit 74dff74907
3 changed files with 18 additions and 0 deletions

View File

@ -241,6 +241,14 @@ function cleanup_image_dir () {
rm -rf --one-file-system $TMP_IMAGE_DIR
}
function cleanup_temp_python_exec () {
if [ ! -z "$DIB_ORIGINAL_PATH" ]; then
export PATH=$DIB_ORIGINAL_PATH
fi
rm "$DIB_PYTHON_EXEC_TMP/python" || true
rmdir "$DIB_PYTHON_EXEC_TMP" || true
}
# Run a directory of hooks outside the target (that is, no chrooting).
function run_d() {
check_element

View File

@ -175,6 +175,14 @@ export DIB_DEBUG_TRACE
export DIB_IMAGE_CACHE=${DIB_IMAGE_CACHE:-~/.cache/image-create}
mkdir -p $DIB_IMAGE_CACHE
# Setup a symbolic link to the correct python exec so that element
# scripts running outside the chroot using "#!/usr/bin/env python" get
# the right python version.
export DIB_ORIGINAL_PATH=$PATH
export DIB_PYTHON_EXEC_TMP=$(mktemp -d -t --tmpdir=$HOME .DIB_PYTHON_TMP.XXXXXXXX)
ln -s "$DIB_PYTHON_EXEC" "$DIB_PYTHON_EXEC_TMP/python"
export PATH=$DIB_PYTHON_EXEC_TMP:$DIB_ORIGINAL_PATH
# We have a couple of critical sections (touching parts of the host
# system or download images to common cache) that we use flock around.
# Use this directory for lockfiles.
@ -609,6 +617,7 @@ fi
# Remove the leftovers, i.e. the temporary image directory.
cleanup_image_dir
cleanup_temp_python_exec
# Restore fd 1&2 from the outfilter.py redirect back to the original
# saved fd. Note small hack that we can't really wait properly for

View File

@ -43,6 +43,7 @@ function cleanup () {
dib-block-device umount
cleanup_build_dir
cleanup_image_dir
cleanup_temp_python_exec
}
# Helper function to run a command inside the chroot