diff --git a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh index 8a36bc1ebb..eb73b7332a 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -151,8 +151,17 @@ get_kernel_modules_dir() { local numeric_final_version=${version} # Every first release of a kernel is x.y, while the resulting folder would be x.y.0 + local rc=$(echo ${version} | grep -oE "\-rc[0-9]+$") + if [ -n "${rc}" ]; then + numeric_final_version="${numeric_final_version%"${rc}"}" + fi + local dots=$(echo ${version} | grep -o '\.' | wc -l) - [ "${dots}" == "1" ] && numeric_final_version="${version}.0" + [ "${dots}" == "1" ] && numeric_final_version="${numeric_final_version}.0" + + if [ -n "${rc}" ]; then + numeric_final_version="${numeric_final_version}${rc}" + fi local kernel_modules_dir="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/${kernel_name}/builddir/kata-linux-${version}-${kernel_kata_config_version}/lib/modules/${numeric_final_version}" case ${kernel_name} in diff --git a/tools/packaging/kernel/build-kernel.sh b/tools/packaging/kernel/build-kernel.sh index 8e8221cbc3..e908e2c240 100755 --- a/tools/packaging/kernel/build-kernel.sh +++ b/tools/packaging/kernel/build-kernel.sh @@ -144,26 +144,38 @@ get_kernel() { #Remove extra 'v' version=${version#v} - major_version=$(echo "${version}" | cut -d. -f1) - kernel_tarball="linux-${version}.tar.xz" + local major_version=$(echo "${version}" | cut -d. -f1) + local rc=$(echo "${version}" | grep -oE "\-rc[0-9]+$") - if [[ -f "${kernel_tarball}.sha256" ]] && (grep -qF "${kernel_tarball}" "${kernel_tarball}.sha256"); then - info "Restore valid ${kernel_tarball}.sha256 to sha256sums.asc" - cp -f "${kernel_tarball}.sha256" sha256sums.asc - else - shasum_url="https://cdn.kernel.org/pub/linux/kernel/v${major_version}.x/sha256sums.asc" - info "Download kernel checksum file: sha256sums.asc from ${shasum_url}" - curl --fail -OL "${shasum_url}" - if (grep -F "${kernel_tarball}" sha256sums.asc >"${kernel_tarball}.sha256"); then - info "sha256sums.asc is valid, ${kernel_tarball}.sha256 generated" + local tar_suffix="tar.xz" + if [ -n "${rc}" ]; then + tar_suffix="tar.gz" + fi + kernel_tarball="linux-${version}.${tar_suffix}" + + if [ -z "${rc}" ]; then + if [[ -f "${kernel_tarball}.sha256" ]] && (grep -qF "${kernel_tarball}" "${kernel_tarball}.sha256"); then + info "Restore valid ${kernel_tarball}.sha256 to sha256sums.asc" + cp -f "${kernel_tarball}.sha256" sha256sums.asc else - die "sha256sums.asc is invalid" + shasum_url="https://cdn.kernel.org/pub/linux/kernel/v${major_version}.x/sha256sums.asc" + info "Download kernel checksum file: sha256sums.asc from ${shasum_url}" + curl --fail -OL "${shasum_url}" + if (grep -F "${kernel_tarball}" sha256sums.asc >"${kernel_tarball}.sha256"); then + info "sha256sums.asc is valid, ${kernel_tarball}.sha256 generated" + else + die "sha256sums.asc is invalid" + fi fi + else + info "Release candidate kernels are not part of the official sha256sums.asc -- skipping sha256sum validation" fi - if [ -f "${kernel_tarball}" ] && ! sha256sum -c "${kernel_tarball}.sha256"; then - info "invalid kernel tarball ${kernel_tarball} removing " - rm -f "${kernel_tarball}" + if [ -f "${kernel_tarball}" ]; then + if [ -n "${rc}" ] && ! sha256sum -c "${kernel_tarball}.sha256"; then + info "invalid kernel tarball ${kernel_tarball} removing " + rm -f "${kernel_tarball}" + fi fi if [ ! -f "${kernel_tarball}" ]; then kernel_tarball_url="https://www.kernel.org/pub/linux/kernel/v${major_version}.x/${kernel_tarball}" @@ -177,7 +189,9 @@ get_kernel() { info "kernel tarball already downloaded" fi - sha256sum -c "${kernel_tarball}.sha256" + if [ -z "${rc}" ]; then + sha256sum -c "${kernel_tarball}.sha256" + fi tar xf "${kernel_tarball}"