summaryrefslogtreecommitdiffstats
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)
downloadbuildroot-novena-afcdf8a01a2d54edb7a217f8c7c1e74e1fb8758b.tar.gz
buildroot-novena-afcdf8a01a2d54edb7a217f8c7c1e74e1fb8758b.zip
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