57 lines
2.2 KiB
PHP
57 lines
2.2 KiB
PHP
#
|
|
# Copyright (C) 2026, Digi International Inc.
|
|
#
|
|
########################
|
|
# Rootfs postprocess
|
|
########################
|
|
ROOTFS_POSTPROCESS_COMMAND += "apply_container_rootfs_overlays; "
|
|
apply_container_rootfs_overlays() {
|
|
overlay_dirs="${CONTAINER_ROOTFS_OVERLAY_DIRS}"
|
|
overlay_tarballs="${CONTAINER_ROOTFS_OVERLAY_TARBALLS}"
|
|
default_overlay_dir="${CONTAINER_DEFAULT_ROOTFS_DIR}"
|
|
|
|
if [ -z "${overlay_dirs}" ] && [ -d "${default_overlay_dir}" ]; then
|
|
overlay_dirs="${default_overlay_dir}"
|
|
bbnote "Using default profile rootfs overlay: ${default_overlay_dir}"
|
|
fi
|
|
|
|
for overlay_dir in ${overlay_dirs}; do
|
|
if [ ! -d "${overlay_dir}" ]; then
|
|
bbfatal "CONTAINER_ROOTFS_OVERLAY_DIRS entry does not exist or is not a directory: ${overlay_dir}"
|
|
fi
|
|
bbnote "Applying rootfs overlay directory: ${overlay_dir}"
|
|
(
|
|
cd "${overlay_dir}" || exit 1
|
|
tar -cf - --exclude='.keep' --exclude='*/.keep' .
|
|
) | tar -xf - -C "${IMAGE_ROOTFS}"
|
|
|
|
# Ensure copied shell scripts are executable inside the container rootfs.
|
|
(
|
|
cd "${overlay_dir}" || exit 1
|
|
find . -type f -name '*.sh'
|
|
) | while IFS= read -r relpath; do
|
|
relpath="${relpath#./}"
|
|
chmod 0755 "${IMAGE_ROOTFS}/${relpath}"
|
|
done
|
|
done
|
|
|
|
for overlay_tarball in ${overlay_tarballs}; do
|
|
if [ ! -f "${overlay_tarball}" ]; then
|
|
bbfatal "CONTAINER_ROOTFS_OVERLAY_TARBALLS entry does not exist: ${overlay_tarball}"
|
|
fi
|
|
bbnote "Extracting rootfs overlay tarball: ${overlay_tarball}"
|
|
tar -xzf "${overlay_tarball}" -C "${IMAGE_ROOTFS}"
|
|
done
|
|
}
|
|
|
|
ROOTFS_POSTPROCESS_COMMAND += "apply_container_rootfs_runtime_defaults; "
|
|
apply_container_rootfs_runtime_defaults() {
|
|
if [ -n "${CONTAINER_INIT_SCRIPT}" ] && \
|
|
[ -f "${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}" ] && \
|
|
grep -q "@WAYLAND_DISPLAY@" "${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}"; then
|
|
sed -i \
|
|
-e "s|@WAYLAND_DISPLAY@|${WAYLAND_DISPLAY}|g" \
|
|
"${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}"
|
|
bbnote "Applied WAYLAND_DISPLAY='${WAYLAND_DISPLAY}' to ${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}"
|
|
fi
|
|
} |