diff options
author | Eric Andersen <andersen@codepoet.org> | 2005-06-24 07:31:17 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2005-06-24 07:31:17 +0000 |
commit | 9540549182e3b67f717a4a15109ad848b0a5161a (patch) | |
tree | d6b598c944120bb89068e941c442b260f3655abe | |
parent | eb0ee4509d3112d80cbb210b44fb682ba7033385 (diff) | |
download | buildroot-novena-9540549182e3b67f717a4a15109ad848b0a5161a.tar.gz buildroot-novena-9540549182e3b67f717a4a15109ad848b0a5161a.zip |
Finish implementing fakeroot handling so when we tar up the
rootfs, the tarball properly inherits device table settings
and device nodes.
-rw-r--r-- | target/tar/tarroot.mk | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/target/tar/tarroot.mk b/target/tar/tarroot.mk index e85030b97..d58198f70 100644 --- a/target/tar/tarroot.mk +++ b/target/tar/tarroot.mk @@ -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: |