sysext: allow for architecture-specific sysexts

This commit is contained in:
Daniel Zatovic 2025-04-07 12:12:56 +02:00
parent dba53bc7b7
commit a5ae63fbda

View File

@ -213,20 +213,30 @@ create_prod_sysexts() {
local image_name="$1"
local image_sysext_base="${image_name%.bin}_sysext.squashfs"
for sysext in "${EXTRA_SYSEXTS[@]}"; do
local name="flatcar-${sysext%%|*}"
local pkgs_and_useflags="${sysext#*|}"
local pkgs="${pkgs_and_useflags%%|*}"
local name pkgs useflags arches
IFS="|" read -r name pkgs useflags arches < <(echo "$sysext");
name="flatcar-$name"
local pkg_array=(${pkgs//,/ })
local useflags=""
if [[ "$pkgs_and_useflags" == *\|* ]]; then
useflags="${pkgs_and_useflags#*|}"
fi
local arch_array=(${arches//,/ })
local useflags_array=(${useflags//,/ })
local mangle_script="${BUILD_LIBRARY_DIR}/sysext_mangle_${name}"
if [[ ! -x "${mangle_script}" ]]; then
mangle_script=
fi
if [[ ! -z "$arches" ]]; then
should_skip=1
for arch in "${arch_array[@]}"; do
if [ "$arch" == "$ARCH" ]; then
should_skip=0
fi
done
if [ "$should_skip" -eq 1 ]; then
continue
fi
fi
sudo rm -f "${BUILD_DIR}/${name}.raw" \
"${BUILD_DIR}/flatcar-test-update-${name}.gz" \
"${BUILD_DIR}/${name}_*"