01354e1a0f
Fixes #9386 GNU sed -i misbehaves on systems with SELinux enabled, as it tries to copy to the SELinux security context (xattr) from the source file to to the new destination file, which fails under fakeroot and leaves the file with 000 permissions, causing ubinize to fail when it cannot read to configuration file. So as a workaround, combine the install and tweak steps in a single sed with a redirect to the destination file instead. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
33 lines
1.1 KiB
Makefile
33 lines
1.1 KiB
Makefile
################################################################################
|
|
#
|
|
# Embed the ubifs image into an ubi image
|
|
#
|
|
################################################################################
|
|
|
|
UBI_UBINIZE_OPTS := -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE)
|
|
UBI_UBINIZE_OPTS += -p $(BR2_TARGET_ROOTFS_UBI_PEBSIZE)
|
|
ifneq ($(BR2_TARGET_ROOTFS_UBI_SUBSIZE),0)
|
|
UBI_UBINIZE_OPTS += -s $(BR2_TARGET_ROOTFS_UBI_SUBSIZE)
|
|
endif
|
|
|
|
UBI_UBINIZE_OPTS += $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_OPTS))
|
|
|
|
ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs
|
|
|
|
ifeq ($(BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG),y)
|
|
UBINIZE_CONFIG_FILE_PATH = $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE))
|
|
else
|
|
UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg
|
|
endif
|
|
|
|
# don't use sed -i as it misbehaves on systems with SELinux enabled when this is
|
|
# executed through fakeroot (see #9386)
|
|
define ROOTFS_UBI_CMD
|
|
sed 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' \
|
|
$(UBINIZE_CONFIG_FILE_PATH) > $(BUILD_DIR)/ubinize.cfg
|
|
$(HOST_DIR)/usr/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg
|
|
rm $(BUILD_DIR)/ubinize.cfg
|
|
endef
|
|
|
|
$(eval $(call ROOTFS_TARGET,ubi))
|