ifneq ($(CONFIG_BIG_ENDIAN),)
JFFS2OPTS := --pad --big-endian --squash -v
- SQUASHFS_OPTS := -be
else
JFFS2OPTS := --pad --little-endian --squash -v
- SQUASHFS_OPTS := -le
endif
ifeq ($(CONFIG_JFFS2_RTIME),y)
JFFS2OPTS += -x lzma
endif
-ifneq ($(CONFIG_LINUX_2_6_25),)
- USE_SQUASHFS3 := y
-endif
-
-ifneq ($(USE_SQUASHFS3),)
- MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs-lzma
-else
- MKSQUASHFS_CMD := $(STAGING_DIR_HOST)/bin/mksquashfs4
- SQUASHFS_OPTS := -comp lzma -processors 1
-endif
-
JFFS2_BLOCKSIZE ?= 64k 128k
define add_jffs2_mark
ifneq ($(CONFIG_TARGET_ROOTFS_SQUASHFS),)
define Image/mkfs/squashfs
@mkdir -p $(TARGET_DIR)/overlay
- $(MKSQUASHFS_CMD) $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned $(SQUASHFS_OPTS)
+ $(STAGING_DIR_HOST)/bin/mksquashfs4 $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned -comp lzma -processors 1
$(call Image/Build,squashfs)
endef
endif
ifneq ($(CONFIG_TARGET_ROOTFS_TARGZ),)
define Image/mkfs/targz
- $(TAR) -zcf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
+ # Preserve permissions (-p) when building as non-root user
+ $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
endef
endif
define Image/mkfs/prepare/default
- - $(FIND) $(TARGET_DIR) -type f -not -perm +0100 -not -name 'ssh_host*' -print0 | $(XARGS) -0 chmod 0644
- - $(FIND) $(TARGET_DIR) -type f -perm +0100 -print0 | $(XARGS) -0 chmod 0755
- - $(FIND) $(TARGET_DIR) -type d -print0 | $(XARGS) -0 chmod 0755
+ # Use symbolic permissions to avoid clobbering SUID/SGID/sticky bits
+ - $(FIND) $(TARGET_DIR) -type f -not -perm +0100 -not -name 'ssh_host*' -print0 | $(XARGS) -0 chmod u+rw,g+r,o+r
+ - $(FIND) $(TARGET_DIR) -type f -perm +0100 -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
+ - $(FIND) $(TARGET_DIR) -type d -print0 | $(XARGS) -0 chmod u+rwx,g+rx,o+rx
$(INSTALL_DIR) $(TARGET_DIR)/tmp
chmod 0777 $(TARGET_DIR)/tmp
endef