summaryrefslogtreecommitdiff
path: root/target/squashfs/squashfsroot.mk
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2005-06-24 05:02:00 +0000
committerEric Andersen <andersen@codepoet.org>2005-06-24 05:02:00 +0000
commitafcdf8a01a2d54edb7a217f8c7c1e74e1fb8758b (patch)
tree5ca20b55bb4894ed6d91282e96eeaf2d77982b7f /target/squashfs/squashfsroot.mk
parente83529ad36233a604b165de9c31d56137651302b (diff)
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.
Diffstat (limited to 'target/squashfs/squashfsroot.mk')
-rw-r--r--target/squashfs/squashfsroot.mk20
1 files changed, 16 insertions, 4 deletions
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