210210# In kernel kit automation, CodePipeline updates each kernel separately.
211211# This script processes only kernels that have available RPM files,
212212# skipping any kernel packages without corresponding source RPMs.
213- kernels_to_process=()
213+ # Process kernels with available RPMs
214+ found_any_rpm=0
214215for kernel_dir in " ${KERNEL_KIT_DIR} /packages" /kernel-* ; do
215- if [[ -d " ${kernel_dir} " ]]; then
216- kernel_pkg=$( basename " ${kernel_dir} " )
217- # In CodePipeline, only one RPM exists per kernel package, but during development
218- # multiple RPMs can coexist. Use version sorting to select the latest RPM.
219- # Sorting rules: https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
220- rpm_file=$( find " ${kernel_dir} " -name " kernel*.src.rpm" | sort -V | tail -1)
221- if [[ -n " ${rpm_file} " ]]; then
222- kernels_to_process+=(" ${kernel_pkg} " )
223- echo " Found RPM for ${kernel_pkg} : $( basename " ${rpm_file} " ) "
224- else
225- echo " No RPM found for ${kernel_pkg} , skipping"
226- fi
227- else
216+ if [[ ! -d " ${kernel_dir} " ]]; then
228217 bail " No Kernel directory found for ${kernel_dir} "
229218 fi
230- done
231219
232- if [[ ${ # kernels_to_process[@]} -eq 0 ]] ; then
233- bail " No kernel RPMs found in any package directory "
234- fi
220+ kernel_pkg= $( basename " ${kernel_dir} " )
221+ # Multiple RPMs can coexist. Use version sorting to select the latest RPM.
222+ rpm_file= $( find " ${kernel_dir} " -name " kernel*.src.rpm " | sort -V | tail -1 )
235223
236- # Process available kernels
237- for kernel_pkg in " ${kernels_to_process[@]} " ; do
238- echo " Processing ${kernel_pkg} ..."
224+ if [[ -z " ${rpm_file} " ]]; then
225+ echo " No RPM found for ${kernel_pkg} , skipping"
226+ continue
227+ fi
239228
240- tmpdir =$( mktemp -d )
229+ found_any_rpm =$(( found_any_rpm + 1 ) )
241230
242- pushd " ${tmpdir} " || bail " Unable to enter temporary directory "
231+ echo " Processing ${kernel_pkg} : $( basename " ${rpm_file} " ) "
243232
244- rpm_file=$( find " ${KERNEL_KIT_DIR} /packages/${kernel_pkg} " -name " kernel*.src.rpm" | head -1)
233+ tmpdir=$( mktemp -d)
234+ pushd " ${tmpdir} " || bail " Unable to enter temporary directory"
245235
246236 cp " ${rpm_file} " kernel-source.rpm
247237
248238 version=" $( rpm --query --nosignature --queryformat ' %{VERSION}' kernel-source.rpm) "
249- majorminor=${version% .* } # Trim after last '.', e.g. 6.1.132 -> 6.1
239+ majorminor=${version% .* }
250240
251241 merge_kernel_configs " ${version} " " ${majorminor} " " ${tmpdir} "
252242
@@ -255,3 +245,8 @@ for kernel_pkg in "${kernels_to_process[@]}"; do
255245
256246 popd || bail " Could not return from temporary directory"
257247done
248+
249+ # Check if we found any RPMs at all
250+ if [ " ${found_any_rpm} " -eq 0 ]; then
251+ bail " No kernel RPMs found in any directory"
252+ fi
0 commit comments