Finish implementing fakeroot handling so when we tar up the
authorEric Andersen <andersen@codepoet.org>
Fri, 24 Jun 2005 07:31:17 +0000 (07:31 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 24 Jun 2005 07:31:17 +0000 (07:31 -0000)
rootfs, the tarball properly inherits device table settings
and device nodes.

target/tar/tarroot.mk

index e85030b979eaf4ac581792db8456553080e2ea61..d58198f704c2853e5e3ffa4d66342a78f280f79d 100644 (file)
@@ -6,17 +6,30 @@
 
 TAR_OPTS := $(strip $(BR2_TARGET_ROOTFS_TAR_OPTIONS))
 
-TAR_TARGET := $(IMAGE).tar
-
-$(TAR_TARGET):
+tarroot: host-fakeroot makedevs
        -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
        @rm -rf $(TARGET_DIR)/usr/man
-       @rm -rf $(TARGET_DIR)/usr/share/man
        @rm -rf $(TARGET_DIR)/usr/info
-       tar -c$(TAR_OPTS)f $(TAR_TARGET) -C $(TARGET_DIR) .
-               
-tarroot: $(TAR_TARGET)
-       @ls -l $(TAR_TARGET)
+       # Use fakeroot to munge permissions and do root-like things
+       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 -- \
+               chown -R root:root $(TARGET_DIR)
+       # 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) \
+               -d target/generic/device_table.txt
+       # Use fakeroot to fake out mksquashfs per the previous fakery
+       $(STAGING_DIR)/usr/bin/fakeroot \
+               -i $(STAGING_DIR)/fakeroot.env \
+               -s $(STAGING_DIR)/fakeroot.env -- \
+               tar -c$(TAR_OPTS)f $(IMAGE).tar -C $(TARGET_DIR) .
 
 tarroot-source: