diff options
author | Charles Duffy <charles@dyfis.net> | 2019-07-06 15:57:19 +0000 |
---|---|---|
committer | Matthieu Coudron <coudron@iij.ad.jp> | 2019-07-08 14:01:57 +0200 |
commit | f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282 (patch) | |
tree | d1ab23de20a5c054fe96334eb2b1296e29f3320d /pkgs/tools/filesystems/squashfs | |
parent | 0513ae77ff410dd7f59deae8ebbd03cc256ed8d6 (diff) | |
download | nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar.gz nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar.bz2 nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar.lz nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar.xz nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.tar.zst nixlib-f15d9d5123f9dfd97ac292ebc0643d0d7c4e7282.zip |
squashfsTools: Fix 4k-align patch (regression in 4.4dev)
The 4k-align squashfs patch was broken in the update to squashfs 4.4dev, such that the patch was no longer actually applied in full (command line option not even parsed).
Diffstat (limited to 'pkgs/tools/filesystems/squashfs')
-rw-r--r-- | pkgs/tools/filesystems/squashfs/default.nix | 2 | ||||
-rw-r--r-- | pkgs/tools/filesystems/squashfs/squashfs-tools-4.4-4k-align.patch (renamed from pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch) | 38 |
2 files changed, 17 insertions, 23 deletions
diff --git a/pkgs/tools/filesystems/squashfs/default.nix b/pkgs/tools/filesystems/squashfs/default.nix index 2fd3d52bdf67..59a786116df6 100644 --- a/pkgs/tools/filesystems/squashfs/default.nix +++ b/pkgs/tools/filesystems/squashfs/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { # This patch adds an option to pad filesystems (increasing size) in # exchange for better chunking / binary diff calculation. - ./squashfs-tools-4.3-4k-align.patch + ./squashfs-tools-4.4-4k-align.patch ] ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch; buildInputs = [ zlib xz zstd ] diff --git a/pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch b/pkgs/tools/filesystems/squashfs/squashfs-tools-4.4-4k-align.patch index cd4308b489fe..c9c3dd3d7604 100644 --- a/pkgs/tools/filesystems/squashfs/squashfs-tools-4.3-4k-align.patch +++ b/pkgs/tools/filesystems/squashfs/squashfs-tools-4.4-4k-align.patch @@ -16,24 +16,20 @@ increased_size = (number_of_unfragmented_files_in_image + number of fragments) * The 4k alignment can be enabled by flag '-4k-align' --- - squashfs-tools/mksquashfs.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c -index 8b1376f..683973d 100644 ---- a/squashfs-tools/mksquashfs.c -+++ b/squashfs-tools/mksquashfs.c -@@ -99,6 +99,8 @@ int old_exclude = TRUE; +diff -u a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c +--- a/squashfs-tools/mksquashfs.c 2019-07-06 15:50:22.214873176 +0000 ++++ b/squashfs-tools/mksquashfs.c 2019-07-06 15:51:22.244802582 +0000 +@@ -100,7 +100,9 @@ int use_regex = FALSE; int nopad = FALSE; int exit_on_error = FALSE; - static off_t squashfs_start_offset = 0; +int do_4k_align = FALSE; + static off_t squashfs_start_offset = 0; +#define ALIGN_UP(bytes, size) (bytes = (bytes + size - 1) & ~(size - 1)) - + long long global_uid = -1, global_gid = -1; - -@@ -1513,6 +1515,9 @@ void unlock_fragments() + +@@ -1495,6 +1497,9 @@ * queue at this time. */ while(!queue_empty(locked_fragment)) { @@ -41,9 +37,9 @@ index 8b1376f..683973d 100644 + if(do_4k_align) + ALIGN_UP(bytes, 4096); write_buffer = queue_get(locked_fragment); - frg = write_buffer->block; + frg = write_buffer->block; size = SQUASHFS_COMPRESSED_SIZE_BLOCK(fragment_table[frg].size); -@@ -2420,6 +2420,9 @@ +@@ -2414,6 +2419,9 @@ compressed_size = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); write_buffer->size = compressed_size; if(fragments_locked == FALSE) { @@ -53,18 +49,18 @@ index 8b1376f..683973d 100644 fragment_table[file_buffer->block].size = c_byte; fragment_table[file_buffer->block].start_block = bytes; write_buffer->block = bytes; -@@ -2761,6 +2769,10 @@ int write_file_blocks(squashfs_inode *inode, struct dir_ent *dir_ent, +@@ -2728,6 +2736,10 @@ long long sparse = 0; struct file_buffer *fragment_buffer = NULL; - + + // 4k align the start of each file. + if(do_4k_align) + ALIGN_UP(bytes, 4096); + if(pre_duplicate(read_size)) return write_file_blocks_dup(inode, dir_ent, read_buffer, dup); - -@@ -4692,6 +4704,7 @@ void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad) + +@@ -4808,6 +4820,7 @@ "compressed", no_fragments ? "no" : noF ? "uncompressed" : "compressed", no_xattrs ? "no" : noX ? "uncompressed" : "compressed", noI || noId ? "uncompressed" : "compressed"); @@ -72,7 +68,7 @@ index 8b1376f..683973d 100644 printf("\tduplicates are %sremoved\n", duplicate_checking ? "" : "not "); printf("Filesystem size %.2f Kbytes (%.2f Mbytes)\n", bytes / 1024.0, -@@ -5346,6 +5359,8 @@ print_compressor_options: +@@ -5570,6 +5583,8 @@ root_name = argv[i]; } else if(strcmp(argv[i], "-version") == 0) { VERSION(); @@ -81,7 +77,7 @@ index 8b1376f..683973d 100644 } else { ERROR("%s: invalid option\n\n", argv[0]); printOptions: -@@ -5387,6 +5402,7 @@ printOptions: +@@ -5613,6 +5628,7 @@ ERROR("\t\t\tdirectory containing that directory, " "rather than the\n"); ERROR("\t\t\tcontents of the directory\n"); @@ -89,5 +85,3 @@ index 8b1376f..683973d 100644 ERROR("\nFilesystem filter options:\n"); ERROR("-p <pseudo-definition>\tAdd pseudo file " "definition\n"); --- -2.14.1.480.gb18f417b89-goog (previously; hand-patched by charles-dyfis-net) |