mirror of
https://github.com/flatcar/scripts.git
synced 2025-12-10 20:01:36 +01:00
build_sysext: optimise squashfs for size
Signed-off-by: Thilo Fromm <thilofromm@microsoft.com>
This commit is contained in:
parent
37cc05ce11
commit
d744d32733
12
build_sysext
12
build_sysext
@ -33,6 +33,8 @@ DEFINE_string base_pkginfo "" \
|
|||||||
"Colon-separated list of pkginfo squashfs paths / files generated via 'generate_pkginfo' to base this sysext on. The corresponding base sysexts are expected to be merged with the sysext generated."
|
"Colon-separated list of pkginfo squashfs paths / files generated via 'generate_pkginfo' to base this sysext on. The corresponding base sysexts are expected to be merged with the sysext generated."
|
||||||
DEFINE_string compression "zstd" \
|
DEFINE_string compression "zstd" \
|
||||||
"Compression to use for sysext squashfs. One of 'gzip', 'lzo', 'lz4', 'xz', or 'zstd'. Must be supported by the Flatcar squashfs kernel module in order for the sysext to work."
|
"Compression to use for sysext squashfs. One of 'gzip', 'lzo', 'lz4', 'xz', or 'zstd'. Must be supported by the Flatcar squashfs kernel module in order for the sysext to work."
|
||||||
|
DEFINE_string mksquashfs_opts "" \
|
||||||
|
"Additional command line options to pass to mksquashfs. See 'man 1 mksquashfs'. If <compression> is 'zstd' (the default), this option defaults to '-Xcompression-level 22 -b 512K'. Otherwise the default is empty."
|
||||||
DEFINE_boolean ignore_version_mismatch "${FLAGS_FALSE}" \
|
DEFINE_boolean ignore_version_mismatch "${FLAGS_FALSE}" \
|
||||||
"Ignore version mismatch between SDK board packages and base squashfs. DANGEROUS."
|
"Ignore version mismatch between SDK board packages and base squashfs. DANGEROUS."
|
||||||
|
|
||||||
@ -100,6 +102,10 @@ fi
|
|||||||
BUILD_DIR=$(realpath "${FLAGS_image_builddir}")
|
BUILD_DIR=$(realpath "${FLAGS_image_builddir}")
|
||||||
mkdir -p "${BUILD_DIR}"
|
mkdir -p "${BUILD_DIR}"
|
||||||
|
|
||||||
|
if [[ "${FLAGS_compression}" = "zstd" && -z "${FLAGS_mksquashfs_opts}" ]] ; then
|
||||||
|
FLAGS_mksquashfs_opts="-Xcompression-level 22 -b 512k"
|
||||||
|
fi
|
||||||
|
|
||||||
source "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1
|
source "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1
|
||||||
source "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1
|
source "${BUILD_LIBRARY_DIR}/board_options.sh" || exit 1
|
||||||
source "${BUILD_LIBRARY_DIR}/reports_util.sh" || exit 1
|
source "${BUILD_LIBRARY_DIR}/reports_util.sh" || exit 1
|
||||||
@ -217,7 +223,8 @@ if [[ "$FLAGS_generate_pkginfo" = "${FLAGS_TRUE}" ]] ; then
|
|||||||
info " Creating pkginfo squashfs '${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw'"
|
info " Creating pkginfo squashfs '${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw'"
|
||||||
mkdir -p "${BUILD_DIR}/img-pkginfo/var/db"
|
mkdir -p "${BUILD_DIR}/img-pkginfo/var/db"
|
||||||
cp -R "${BUILD_DIR}/install-root/var/db/pkg" "${BUILD_DIR}/img-pkginfo/var/db/"
|
cp -R "${BUILD_DIR}/install-root/var/db/pkg" "${BUILD_DIR}/img-pkginfo/var/db/"
|
||||||
mksquashfs "${BUILD_DIR}/img-pkginfo" "${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw" -noappend -comp "${FLAGS_compression}"
|
mksquashfs "${BUILD_DIR}/img-pkginfo" "${BUILD_DIR}/${SYSEXTNAME}_pkginfo.raw" \
|
||||||
|
-noappend -comp "${FLAGS_compression}" ${FLAGS_mksquashfs_opts}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "${FLAGS_manglefs_script}" ]]; then
|
if [[ -n "${FLAGS_manglefs_script}" ]]; then
|
||||||
@ -247,7 +254,8 @@ all_fields=(
|
|||||||
"ARCHITECTURE=${ARCH}"
|
"ARCHITECTURE=${ARCH}"
|
||||||
)
|
)
|
||||||
printf '%s\n' "${all_fields[@]}" >"${BUILD_DIR}/install-root/usr/lib/extension-release.d/extension-release.${SYSEXTNAME}"
|
printf '%s\n' "${all_fields[@]}" >"${BUILD_DIR}/install-root/usr/lib/extension-release.d/extension-release.${SYSEXTNAME}"
|
||||||
mksquashfs "${BUILD_DIR}/install-root" "${BUILD_DIR}/${SYSEXTNAME}.raw" -noappend -comp "${FLAGS_compression}"
|
mksquashfs "${BUILD_DIR}/install-root" "${BUILD_DIR}/${SYSEXTNAME}.raw" \
|
||||||
|
-noappend -comp "${FLAGS_compression}" ${FLAGS_mksquashfs_opts}
|
||||||
rm -rf "${BUILD_DIR}"/{fs-root,install-root,workdir}
|
rm -rf "${BUILD_DIR}"/{fs-root,install-root,workdir}
|
||||||
|
|
||||||
# Generate reports
|
# Generate reports
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user