[Build]: Support to use the base image version when a package version not specified (#10971) (#10976)

Why I did it
It is to fix issue: #10952
[Build]: Support to use the base image version when a package version not specified
This commit is contained in:
xumia 2022-05-31 22:18:17 +08:00 committed by GitHub
parent 6d3f1346fb
commit aebc3a8d6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 0 deletions

View File

@ -260,6 +260,59 @@ release_apt_installation_lock()
rm -f $DPKG_INSTALLTION_LOCK_FILE
}
update_preference_deb()
{
local version_file="$VERSION_PATH/versions-deb"
if [ -f "$version_file" ]; then
rm -f $VERSION_DEB_PREFERENCE
for pacakge_version in $(cat "$version_file"); do
package=$(echo $pacakge_version | awk -F"==" '{print $1}')
version=$(echo $pacakge_version | awk -F"==" '{print $2}')
echo -e "Package: $package\nPin: version $version\nPin-Priority: 999\n\n" >> $VERSION_DEB_PREFERENCE
done
fi
}
update_version_file()
{
local version_name=$1
local pre_version_file="$(ls $PRE_VERSION_PATH/${version_name}-* 2>/dev/null | head -n 1)"
local version_file="$VERSION_PATH/$1"
if [ ! -f "$pre_version_file" ]; then
return 0
fi
local pacakge_versions="$(cat $pre_version_file)"
[ -f "$version_file" ] && pacakge_versions="$pacakge_versions $(cat $version_file)"
declare -A versions
for pacakge_version in $pacakge_versions; do
package=$(echo $pacakge_version | awk -F"==" '{print $1}')
version=$(echo $pacakge_version | awk -F"==" '{print $2}')
if [ -z "$package" ] || [ -z "$version" ]; then
continue
fi
versions[$package]=$version
done
tmp_file=$(mktemp)
for package in "${!versions[@]}"; do
echo "$package==${versions[$package]}" >> $tmp_file
done
sort -u $tmp_file > $version_file
rm -f $tmp_file
if [[ "${version_name}" == *-deb ]]; then
update_preference_deb
fi
}
update_version_files()
{
local version_names="versions-deb versions-py2 versions-py3"
for version_name in $version_names; do
update_version_file $version_name
done
}
ENABLE_VERSION_CONTROL_DEB=$(check_version_control "deb")
ENABLE_VERSION_CONTROL_PY2=$(check_version_control "py2")
ENABLE_VERSION_CONTROL_PY3=$(check_version_control "py3")

View File

@ -11,6 +11,7 @@ mkdir -p $LOG_PATH
[ -d $POST_VERSION_PATH ] && rm -rf $POST_VERSION_PATH
mkdir -p $POST_VERSION_PATH
collect_version_files $PRE_VERSION_PATH
update_version_files
symlink_build_hooks
set_reproducible_mirrors