Commit f0ebe8ab authored by Manuel Novoa III 's avatar Manuel Novoa III
Browse files

Silly little patch to add an option to force root/root ownership in the

generated file system.
parent e5da5552
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ $(DL_DIR)/$(SQUASHFS_SOURCE):

$(SQUASHFS_DIR): $(DL_DIR)/$(SQUASHFS_SOURCE) #$(SQUASHFS_PATCH)
	zcat $(DL_DIR)/$(SQUASHFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	$(SOURCE_DIR)/patch-kernel.sh $(SQUASHFS_DIR) $(SOURCE_DIR) squashfs.patch

$(SQUASHFS_DIR)/squashfs-tools/mksquashfs: $(SQUASHFS_DIR)
	$(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools;
@@ -38,7 +39,7 @@ squashfsroot: squashfs
	@rm -rf $(TARGET_DIR)/usr/man
	@rm -rf $(TARGET_DIR)/usr/info
	#$(SQUASHFS_DIR)/squashfs-tools/mksquashfs -q -D $(SOURCE_DIR)/device_table.txt $(TARGET_DIR) $(IMAGE)
	$(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) $(IMAGE) -noappend 
	$(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) $(IMAGE) -noappend -root-owned

squashfsroot-source: squashfs-source

sources/squashfs.patch

0 → 100644
+36 −0
Original line number Diff line number Diff line
This is a stupid little patch adding an option to change all uid/gid to
root/root in the generated filesystem.  We really need to teach mksquashfs
about device tables though...

--- squashfs1.3r3/squashfs-tools/mksquashfs.c-dist	2004-03-29 20:35:37.000000000 -0600
+++ squashfs1.3r3/squashfs-tools/mksquashfs.c	2004-03-29 22:28:51.000000000 -0600
@@ -136,6 +136,8 @@
 	stotal_bytes, stotal_inode_bytes, stotal_directory_bytes, sinode_count, sfile_count, ssym_count, sdev_count, sdir_count, sdup_files;
 int restore = 0;
 
+unsigned int root_owned = 0;
+
 /*flag whether destination file is a block device */
 int block_device = 0;
 
@@ -421,6 +423,11 @@
 		return SQUASHFS_INVALID;
 	}
 
+	if (root_owned) {
+		buf.st_uid = 0;
+		buf.st_gid = 0;
+	}
+
 	base->mode = SQUASHFS_MODE(buf.st_mode);
 	base->uid = get_uid(&file_type, (squashfs_uid) buf.st_uid);
 	base->inode_type = file_type;
@@ -1268,6 +1275,8 @@
 			root_name = argv[i];
 		} else if(strcmp(argv[i], "-version") == 0) {
 			VERSION();
+		} else if (strcmp(argv[i], "-root-owned") == 0) {
+			root_owned = TRUE;
 		} else {
 			ERROR("%s: invalid option\n\n", argv[0]);
 printOptions: