Skip to content

Commit 6efa651

Browse files
authored
Merge pull request #288 from sky1122/test_auto
tools: use latest version when multiple SRPMs exist
2 parents 7aff4ff + 2007581 commit 6efa651

File tree

1 file changed

+20
-25
lines changed

1 file changed

+20
-25
lines changed

tools/latest-kernel-full-config.sh

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -210,43 +210,33 @@ fi
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
214215
for 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"
257247
done
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

Comments
 (0)