Skip to content

Commit

Permalink
[Build]: Support to use the base image version when a package version…
Browse files Browse the repository at this point in the history
… not specified (#10971)

Why I did it
It is to fix issue: #10952
[Build]: Support to use the base image version when a package version not specified
  • Loading branch information
xumia authored May 30, 2022
1 parent ed27eff commit b9ecaa3
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
53 changes: 53 additions & 0 deletions src/sonic-build-hooks/scripts/buildinfo_base.sh
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,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")
Expand Down
1 change: 1 addition & 0 deletions src/sonic-build-hooks/scripts/pre_run_buildinfo
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit b9ecaa3

Please sign in to comment.