Silly little patch to add an option to force root/root ownership in the
authorManuel Novoa III <mjn3@codepoet.org>
Tue, 30 Mar 2004 05:46:10 +0000 (05:46 -0000)
committerManuel Novoa III <mjn3@codepoet.org>
Tue, 30 Mar 2004 05:46:10 +0000 (05:46 -0000)
generated file system.

make/squashfsroot.mk
sources/squashfs.patch [new file with mode: 0644]

index 0f1c6962fd49254d627d040bb3a076ad751f6473..523d5e2a9db91789be2e7fe8b2015055a7f1aa69 100644 (file)
@@ -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
 
diff --git a/sources/squashfs.patch b/sources/squashfs.patch
new file mode 100644 (file)
index 0000000..ea75a7f
--- /dev/null
@@ -0,0 +1,36 @@
+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: