Commit 95405491 authored by Eric Andersen's avatar Eric Andersen
Browse files

Finish implementing fakeroot handling so when we tar up the

rootfs, the tarball properly inherits device table settings
and device nodes.
parent eb0ee450
Loading
Loading
Loading
Loading
+21 −8
Original line number Diff line number Diff line
@@ -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: