From afcdf8a01a2d54edb7a217f8c7c1e74e1fb8758b Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 24 Jun 2005 05:02:00 +0000 Subject: Use fakeroot and makedevs to fake mksquashfs into building properly setup file permissions and device nodes into the target rootfs without needing to be root. --- target/squashfs/squashfsroot.mk | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'target/squashfs/squashfsroot.mk') diff --git a/target/squashfs/squashfsroot.mk b/target/squashfs/squashfsroot.mk index 300e07091..50aaf58fe 100644 --- a/target/squashfs/squashfsroot.mk +++ b/target/squashfs/squashfsroot.mk @@ -34,13 +34,25 @@ squashfs-dirclean: # ############################################################# -squashfsroot: squashfs - #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true; +squashfsroot: squashfs host-fakeroot makedevs + rm -f $(STAGING_DIR)/fakeroot.env + touch $(STAGING_DIR)/fakeroot.env + # Use fakeroot to pretend all target binaries are owned by root + $(STAGING_DIR)/usr/bin/fakeroot -i $(STAGING_DIR)/fakeroot.env \ + -s $(STAGING_DIR)/fakeroot.env -- \ + find $(TARGET_DIR) | xargs chown -R root:root + # Use fakeroot to pretend to create all needed device nodes + $(STAGING_DIR)/usr/bin/fakeroot -i $(STAGING_DIR)/fakeroot.env \ + -s $(STAGING_DIR)/fakeroot.env -- \ + $(STAGING_DIR)/bin/makedevs -r $(TARGET_DIR) \ + target/default/device_table.txt -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true; @rm -rf $(TARGET_DIR)/usr/man @rm -rf $(TARGET_DIR)/usr/info - #$(SQUASHFS_DIR)/squashfs-tools/mksquashfs -q -D target/default/device_table.txt $(TARGET_DIR) $(IMAGE) - $(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) $(IMAGE).squashfs -noappend -root-owned + # Use fakeroot to fake out mksquashfs per the previous fakery + $(STAGING_DIR)/usr/bin/fakeroot -i $(STAGING_DIR)/fakeroot.env -- \ + $(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) \ + $(IMAGE).squashfs -noappend squashfsroot-source: squashfs-source -- cgit v1.2.3