Revision: 5762 Author: pebender Date: Sat Oct 31 12:44:46 2009 Log: - Patched the kernel to support for lzma in squashfs. - Swiched SquashFS from gzip to lzma.
http://code.google.com/p/minimyth/source/detail?r=5762 Added: /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-squashfs_lzma.patch Modified: /trunk/gar-minimyth/html/minimyth/document-changelog.txt /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config /trunk/gar-minimyth/script/meta/minimyth/files/source/Makefile /trunk/gar-minimyth/script/utils/squashfs/Makefile /trunk/gar-minimyth/script/utils/squashfs/checksums ======================================= --- /dev/null +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-squashfs_lzma.patch Sat Oct 31 12:44:46 2009 @@ -0,0 +1,1061 @@ +diff -Naur linux-2.6.31.5-old/fs/squashfs/block.c linux-2.6.31.5-new/fs/squashfs/block.c +--- linux-2.6.31.5-old/fs/squashfs/block.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/block.c 2009-10-31 10:12:43.000000000 -0700 +@@ -29,16 +29,14 @@ + #include <linux/fs.h> + #include <linux/vfs.h> + #include <linux/slab.h> +-#include <linux/mutex.h> + #include <linux/string.h> + #include <linux/buffer_head.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" + #include "squashfs_fs_i.h" + #include "squashfs.h" +- ++#include "decompressor.h" + /* + * Read the metadata block length, this is stored in the first two + * bytes of the metadata block. +@@ -153,72 +151,10 @@ + } + + if (compressed) { +- int zlib_err = 0, zlib_init = 0; +- +- /* +- * Uncompress block. +- */ +- +- mutex_lock(&msblk->read_data_mutex); +- +- msblk->stream.avail_out = 0; +- msblk->stream.avail_in = 0; +- +- bytes = length; +- do { +- if (msblk->stream.avail_in == 0 && k < b) { +- avail = min(bytes, msblk->devblksize - offset); +- bytes -= avail; +- wait_on_buffer(bh[k]); +- if (!buffer_uptodate(bh[k])) +- goto release_mutex; +- +- if (avail == 0) { +- offset = 0; +- put_bh(bh[k++]); +- continue; +- } +- +- msblk->stream.next_in = bh[k]->b_data + offset; +- msblk->stream.avail_in = avail; +- offset = 0; +- } +- +- if (msblk->stream.avail_out == 0 && page < pages) { +- msblk->stream.next_out = buffer[page++]; +- msblk->stream.avail_out = PAGE_CACHE_SIZE; +- } +- +- if (!zlib_init) { +- zlib_err = zlib_inflateInit(&msblk->stream); +- if (zlib_err != Z_OK) { +- ERROR("zlib_inflateInit returned" +- " unexpected result 0x%x," +- " srclength %d\n", zlib_err, +- srclength); +- goto release_mutex; +- } +- zlib_init = 1; +- } +- +- zlib_err = zlib_inflate(&msblk->stream, Z_SYNC_FLUSH); +- +- if (msblk->stream.avail_in == 0 && k < b) +- put_bh(bh[k++]); +- } while (zlib_err == Z_OK); +- +- if (zlib_err != Z_STREAM_END) { +- ERROR("zlib_inflate error, data probably corrupt\n"); +- goto release_mutex; +- } +- +- zlib_err = zlib_inflateEnd(&msblk->stream); +- if (zlib_err != Z_OK) { +- ERROR("zlib_inflate error, data probably corrupt\n"); +- goto release_mutex; +- } +- length = msblk->stream.total_out; +- mutex_unlock(&msblk->read_data_mutex); ++ length = squashfs_decompress(msblk, buffer, bh, b, offset, ++ length, srclength, pages); ++ if (length < 0) ++ goto read_failure; + } else { + /* + * Block is uncompressed. +@@ -255,9 +191,6 @@ + kfree(bh); + return length; + +-release_mutex: +- mutex_unlock(&msblk->read_data_mutex); +- + block_release: + for (; k < b; k++) + put_bh(bh[k]); +diff -Naur linux-2.6.31.5-old/fs/squashfs/cache.c linux-2.6.31.5-new/fs/squashfs/cache.c +--- linux-2.6.31.5-old/fs/squashfs/cache.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/cache.c 2009-10-31 10:12:43.000000000 -0700 +@@ -51,7 +51,6 @@ + #include <linux/sched.h> + #include <linux/spinlock.h> + #include <linux/wait.h> +-#include <linux/zlib.h> + #include <linux/pagemap.h> + + #include "squashfs_fs.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/decompressor.c linux-2.6.31.5-new/fs/squashfs/decompressor.c +--- linux-2.6.31.5-old/fs/squashfs/decompressor.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/fs/squashfs/decompressor.c 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,72 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 ++ * Phillip Lougher <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ * decompressor.c ++ */ ++ ++#include <linux/types.h> ++#include <linux/mutex.h> ++#include <linux/buffer_head.h> ++ ++#include "squashfs_fs.h" ++#include "squashfs_fs_sb.h" ++#include "squashfs_fs_i.h" ++#include "decompressor.h" ++#include "squashfs.h" ++ ++/* ++ * This file (and decompressor.h) implements a decompressor framework for ++ * Squashfs, allowing multiple decompressors to be easily supported ++ */ ++ ++static const struct squashfs_decompressor squashfs_lzma_unsupported_comp_ops = { ++ NULL, NULL, NULL, LZMA_COMPRESSION, "lzma", 0 ++}; ++ ++static const struct squashfs_decompressor squashfs_lzo_unsupported_comp_ops = { ++ NULL, NULL, NULL, LZO_COMPRESSION, "lzo", 0 ++}; ++ ++static const struct squashfs_decompressor squashfs_unknown_comp_ops = { ++ NULL, NULL, NULL, 0, "unknown", 0 ++}; ++ ++static const struct squashfs_decompressor *decompressor[] = { ++ &squashfs_zlib_comp_ops, ++#ifdef CONFIG_SQUASHFS_LZMA ++ &squashfs_lzma_comp_ops, ++#else ++ &squashfs_lzma_unsupported_comp_ops, ++#endif ++ &squashfs_lzo_unsupported_comp_ops, ++ &squashfs_unknown_comp_ops ++}; ++ ++ ++const struct squashfs_decompressor *squashfs_lookup_decompressor(int id) ++{ ++ int i; ++ ++ for (i = 0; decompressor[i]->id; i++) ++ if (id == decompressor[i]->id) ++ break; ++ ++ return decompressor[i]; ++} +diff -Naur linux-2.6.31.5-old/fs/squashfs/decompressor.h linux-2.6.31.5-new/fs/squashfs/decompressor.h +--- linux-2.6.31.5-old/fs/squashfs/decompressor.h 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/fs/squashfs/decompressor.h 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,55 @@ ++#ifndef DECOMPRESSOR_H ++#define DECOMPRESSOR_H ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 ++ * Phillip Lougher <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ * decompressor.h ++ */ ++ ++struct squashfs_decompressor { ++ void *(*init)(struct squashfs_sb_info *); ++ void (*free)(void *); ++ int (*decompress)(struct squashfs_sb_info *, void **, ++ struct buffer_head **, int, int, int, int, int); ++ int id; ++ char *name; ++ int supported; ++}; ++ ++static inline void *squashfs_decompressor_init(struct squashfs_sb_info *msblk) ++{ ++ return msblk->decompressor->init(msblk); ++} ++ ++static inline void squashfs_decompressor_free(struct squashfs_sb_info *msblk, ++ void *s) ++{ ++ if (msblk->decompressor) ++ msblk->decompressor->free(s); ++} ++ ++static inline int squashfs_decompress(struct squashfs_sb_info *msblk, ++ void **buffer, struct buffer_head **bh, int b, int offset, int length, ++ int srclength, int pages) ++{ ++ return msblk->decompressor->decompress(msblk, buffer, bh, b, offset, ++ length, srclength, pages); ++} ++#endif +diff -Naur linux-2.6.31.5-old/fs/squashfs/dir.c linux-2.6.31.5-new/fs/squashfs/dir.c +--- linux-2.6.31.5-old/fs/squashfs/dir.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/dir.c 2009-10-31 10:12:43.000000000 -0700 +@@ -30,7 +30,6 @@ + #include <linux/fs.h> + #include <linux/vfs.h> + #include <linux/slab.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/export.c linux-2.6.31.5-new/fs/squashfs/export.c +--- linux-2.6.31.5-old/fs/squashfs/export.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/export.c 2009-10-31 10:12:43.000000000 -0700 +@@ -39,7 +39,6 @@ + #include <linux/vfs.h> + #include <linux/dcache.h> + #include <linux/exportfs.h> +-#include <linux/zlib.h> + #include <linux/slab.h> + + #include "squashfs_fs.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/file.c linux-2.6.31.5-new/fs/squashfs/file.c +--- linux-2.6.31.5-old/fs/squashfs/file.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/file.c 2009-10-31 10:12:43.000000000 -0700 +@@ -47,7 +47,6 @@ + #include <linux/string.h> + #include <linux/pagemap.h> + #include <linux/mutex.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/fragment.c linux-2.6.31.5-new/fs/squashfs/fragment.c +--- linux-2.6.31.5-old/fs/squashfs/fragment.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/fragment.c 2009-10-31 10:12:43.000000000 -0700 +@@ -36,7 +36,6 @@ + #include <linux/fs.h> + #include <linux/vfs.h> + #include <linux/slab.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/id.c linux-2.6.31.5-new/fs/squashfs/id.c +--- linux-2.6.31.5-old/fs/squashfs/id.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/id.c 2009-10-31 10:12:43.000000000 -0700 +@@ -34,7 +34,6 @@ + #include <linux/fs.h> + #include <linux/vfs.h> + #include <linux/slab.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/inode.c linux-2.6.31.5-new/fs/squashfs/inode.c +--- linux-2.6.31.5-old/fs/squashfs/inode.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/inode.c 2009-10-31 10:12:43.000000000 -0700 +@@ -40,7 +40,6 @@ + + #include <linux/fs.h> + #include <linux/vfs.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/Kconfig linux-2.6.31.5-new/fs/squashfs/Kconfig +--- linux-2.6.31.5-old/fs/squashfs/Kconfig 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/Kconfig 2009-10-31 10:12:43.000000000 -0700 +@@ -26,6 +26,12 @@ + + If unsure, say N. + ++config SQUASHFS_LZMA ++ bool "Include support for LZMA compressed file systems" ++ depends on SQUASHFS ++ select DECOMPRESS_LZMA ++ select DECOMPRESS_LZMA_NEEDED ++ + config SQUASHFS_EMBEDDED + + bool "Additional option for memory-constrained systems" +diff -Naur linux-2.6.31.5-old/fs/squashfs/lzma_wrapper.c linux-2.6.31.5-new/fs/squashfs/lzma_wrapper.c +--- linux-2.6.31.5-old/fs/squashfs/lzma_wrapper.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/fs/squashfs/lzma_wrapper.c 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,151 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 ++ * Phillip Lougher <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ * lzma_wrapper.c ++ */ ++ ++#include <asm/unaligned.h> ++#include <linux/buffer_head.h> ++#include <linux/mutex.h> ++#include <linux/vmalloc.h> ++#include <linux/decompress/unlzma.h> ++ ++#include "squashfs_fs.h" ++#include "squashfs_fs_sb.h" ++#include "squashfs_fs_i.h" ++#include "squashfs.h" ++#include "decompressor.h" ++ ++struct squashfs_lzma { ++ void *input; ++ void *output; ++}; ++ ++/* decompress_unlzma.c is currently non re-entrant... */ ++DEFINE_MUTEX(lzma_mutex); ++ ++/* decompress_unlzma.c doesn't provide any context in its callbacks... */ ++static int lzma_error; ++ ++static void error(char *m) ++{ ++ ERROR("unlzma error: %s\n", m); ++ lzma_error = 1; ++} ++ ++ ++static void *lzma_init(struct squashfs_sb_info *msblk) ++{ ++ struct squashfs_lzma *stream = kzalloc(sizeof(*stream), GFP_KERNEL); ++ if (stream == NULL) ++ goto failed; ++ stream->input = vmalloc(msblk->block_size); ++ if (stream->input == NULL) ++ goto failed; ++ stream->output = vmalloc(msblk->block_size); ++ if (stream->output == NULL) ++ goto failed2; ++ ++ return stream; ++ ++failed2: ++ vfree(stream->input); ++failed: ++ ERROR("failed to allocate lzma workspace\n"); ++ kfree(stream); ++ return NULL; ++} ++ ++ ++static void lzma_free(void *strm) ++{ ++ struct squashfs_lzma *stream = strm; ++ ++ if (stream) { ++ vfree(stream->input); ++ vfree(stream->output); ++ } ++ kfree(stream); ++} ++ ++ ++static int lzma_uncompress(struct squashfs_sb_info *msblk, void **buffer, ++ struct buffer_head **bh, int b, int offset, int length, int srclength, ++ int pages) ++{ ++ struct squashfs_lzma *stream = msblk->stream; ++ void *buff = stream->input; ++ int avail, i, bytes = length, res; ++ ++ mutex_lock(&lzma_mutex); ++ ++ for (i = 0; i < b; i++) { ++ wait_on_buffer(bh[i]); ++ if (!buffer_uptodate(bh[i])) ++ goto block_release; ++ ++ avail = min(bytes, msblk->devblksize - offset); ++ memcpy(buff, bh[i]->b_data + offset, avail); ++ buff += avail; ++ bytes -= avail; ++ offset = 0; ++ put_bh(bh[i]); ++ } ++ ++ lzma_error = 0; ++ res = unlzma(stream->input, length, NULL, NULL, stream->output, NULL, ++ error); ++ if (res || lzma_error) ++ goto failed; ++ ++ /* uncompressed size is stored in the LZMA header (5 byte offset) */ ++ res = bytes = get_unaligned_le32(stream->input + 5); ++ for (i = 0, buff = stream->output; bytes && i < pages; i++) { ++ avail = min_t(int, bytes, PAGE_CACHE_SIZE); ++ memcpy(buffer[i], buff, avail); ++ buff += avail; ++ bytes -= avail; ++ } ++ if (bytes) ++ goto failed; ++ ++ mutex_unlock(&lzma_mutex); ++ return res; ++ ++block_release: ++ for (; i < b; i++) ++ put_bh(bh[i]); ++ ++failed: ++ mutex_unlock(&lzma_mutex); ++ ++ ERROR("lzma decompression failed, data probably corrupt\n"); ++ return -EIO; ++} ++ ++const struct squashfs_decompressor squashfs_lzma_comp_ops = { ++ .init = lzma_init, ++ .free = lzma_free, ++ .decompress = lzma_uncompress, ++ .id = LZMA_COMPRESSION, ++ .name = "lzma", ++ .supported = 1 ++}; ++ +diff -Naur linux-2.6.31.5-old/fs/squashfs/Makefile linux-2.6.31.5-new/fs/squashfs/Makefile +--- linux-2.6.31.5-old/fs/squashfs/Makefile 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/Makefile 2009-10-31 10:12:43.000000000 -0700 +@@ -4,4 +4,5 @@ + + obj-$(CONFIG_SQUASHFS) += squashfs.o + squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o +-squashfs-y += namei.o super.o symlink.o ++squashfs-y += namei.o super.o symlink.o zlib_wrapper.o decompressor.o ++squashfs-$(CONFIG_SQUASHFS_LZMA) += lzma_wrapper.o +diff -Naur linux-2.6.31.5-old/fs/squashfs/namei.c linux-2.6.31.5-new/fs/squashfs/namei.c +--- linux-2.6.31.5-old/fs/squashfs/namei.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/namei.c 2009-10-31 10:12:43.000000000 -0700 +@@ -57,7 +57,6 @@ + #include <linux/slab.h> + #include <linux/string.h> + #include <linux/dcache.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/squashfs_fs.h linux-2.6.31.5-new/fs/squashfs/squashfs_fs.h +--- linux-2.6.31.5-old/fs/squashfs/squashfs_fs.h 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/squashfs_fs.h 2009-10-31 10:12:43.000000000 -0700 +@@ -211,7 +211,9 @@ + /* + * definitions for structures on disk + */ +-#define ZLIB_COMPRESSION 1 ++#define ZLIB_COMPRESSION 1 ++#define LZMA_COMPRESSION 2 ++#define LZO_COMPRESSION 3 + + struct squashfs_super_block { + __le32 s_magic; +diff -Naur linux-2.6.31.5-old/fs/squashfs/squashfs_fs_sb.h linux-2.6.31.5-new/fs/squashfs/squashfs_fs_sb.h +--- linux-2.6.31.5-old/fs/squashfs/squashfs_fs_sb.h 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/squashfs_fs_sb.h 2009-10-31 10:12:43.000000000 -0700 +@@ -52,25 +52,26 @@ + }; + + struct squashfs_sb_info { +- int devblksize; +- int devblksize_log2; +- struct squashfs_cache *block_cache; +- struct squashfs_cache *fragment_cache; +- struct squashfs_cache *read_page; +- int next_meta_index; +- __le64 *id_table; +- __le64 *fragment_index; +- unsigned int *fragment_index_2; +- struct mutex read_data_mutex; +- struct mutex meta_index_mutex; +- struct meta_index *meta_index; +- z_stream stream; +- __le64 *inode_lookup_table; +- u64 inode_table; +- u64 directory_table; +- unsigned int block_size; +- unsigned short block_log; +- long long bytes_used; +- unsigned int inodes; ++ const struct squashfs_decompressor *decompressor; ++ int devblksize; ++ int devblksize_log2; ++ struct squashfs_cache *block_cache; ++ struct squashfs_cache *fragment_cache; ++ struct squashfs_cache *read_page; ++ int next_meta_index; ++ __le64 *id_table; ++ __le64 *fragment_index; ++ unsigned int *fragment_index_2; ++ struct mutex read_data_mutex; ++ struct mutex meta_index_mutex; ++ struct meta_index *meta_index; ++ void *stream; ++ __le64 *inode_lookup_table; ++ u64 inode_table; ++ u64 directory_table; ++ unsigned int block_size; ++ unsigned short block_log; ++ long long bytes_used; ++ unsigned int inodes; + }; + #endif +diff -Naur linux-2.6.31.5-old/fs/squashfs/squashfs.h linux-2.6.31.5-new/fs/squashfs/squashfs.h +--- linux-2.6.31.5-old/fs/squashfs/squashfs.h 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/squashfs.h 2009-10-31 10:12:43.000000000 -0700 +@@ -51,6 +51,9 @@ + u64, int); + extern int squashfs_read_table(struct super_block *, void *, u64, int); + ++/* decompressor.c */ ++extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int); ++ + /* export.c */ + extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64, + unsigned int); +@@ -71,7 +74,7 @@ + extern int squashfs_read_inode(struct inode *, long long); + + /* +- * Inodes and files operations ++ * Inodes, files and decompressor operations + */ + + /* dir.c */ +@@ -88,3 +91,9 @@ + + /* symlink.c */ + extern const struct address_space_operations squashfs_symlink_aops; ++ ++/* zlib_wrapper.c */ ++extern const struct squashfs_decompressor squashfs_zlib_comp_ops; ++ ++/* lzma wrapper.c */ ++extern const struct squashfs_decompressor squashfs_lzma_comp_ops; +diff -Naur linux-2.6.31.5-old/fs/squashfs/super.c linux-2.6.31.5-new/fs/squashfs/super.c +--- linux-2.6.31.5-old/fs/squashfs/super.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/super.c 2009-10-31 10:12:43.000000000 -0700 +@@ -35,34 +35,41 @@ + #include <linux/pagemap.h> + #include <linux/init.h> + #include <linux/module.h> +-#include <linux/zlib.h> + #include <linux/magic.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" + #include "squashfs_fs_i.h" + #include "squashfs.h" ++#include "decompressor.h" + + static struct file_system_type squashfs_fs_type; +-static struct super_operations squashfs_super_ops; ++static const struct super_operations squashfs_super_ops; + +-static int supported_squashfs_filesystem(short major, short minor, short comp) ++static const struct squashfs_decompressor *supported_squashfs_filesystem(short ++ major, short minor, short id) + { ++ const struct squashfs_decompressor *decompressor; ++ + if (major < SQUASHFS_MAJOR) { + ERROR("Major/Minor mismatch, older Squashfs %d.%d " + "filesystems are unsupported\n", major, minor); +- return -EINVAL; ++ return NULL; + } else if (major > SQUASHFS_MAJOR || minor > SQUASHFS_MINOR) { + ERROR("Major/Minor mismatch, trying to mount newer " + "%d.%d filesystem\n", major, minor); + ERROR("Please update your kernel\n"); +- return -EINVAL; ++ return NULL; + } + +- if (comp != ZLIB_COMPRESSION) +- return -EINVAL; ++ decompressor = squashfs_lookup_decompressor(id); ++ if (!decompressor->supported) { ++ ERROR("Filesystem uses \"%s\" compression. This is not " ++ "supported\n", decompressor->name); ++ return NULL; ++ } + +- return 0; ++ return decompressor; + } + + +@@ -87,13 +94,6 @@ + } + msblk = sb->s_fs_info; + +- msblk->stream.workspace = kmalloc(zlib_inflate_workspacesize(), +- GFP_KERNEL); +- if (msblk->stream.workspace == NULL) { +- ERROR("Failed to allocate zlib workspace\n"); +- goto failure; +- } +- + sblk = kzalloc(sizeof(*sblk), GFP_KERNEL); + if (sblk == NULL) { + ERROR("Failed to allocate squashfs_super_block\n"); +@@ -120,25 +120,25 @@ + goto failed_mount; + } + ++ err = -EINVAL; ++ + /* Check it is a SQUASHFS superblock */ + sb->s_magic = le32_to_cpu(sblk->s_magic); + if (sb->s_magic != SQUASHFS_MAGIC) { + if (!silent) + ERROR("Can't find a SQUASHFS superblock on %s\n", + bdevname(sb->s_bdev, b)); +- err = -EINVAL; + goto failed_mount; + } + +- /* Check the MAJOR & MINOR versions and compression type */ +- err = supported_squashfs_filesystem(le16_to_cpu(sblk->s_major), ++ /* Check the MAJOR & MINOR versions and lookup compression type */ ++ msblk->decompressor = supported_squashfs_filesystem( ++ le16_to_cpu(sblk->s_major), + le16_to_cpu(sblk->s_minor), + le16_to_cpu(sblk->compression)); +- if (err < 0) ++ if (msblk->decompressor == NULL) + goto failed_mount; + +- err = -EINVAL; +- + /* + * Check if there's xattrs in the filesystem. These are not + * supported in this version, so warn that they will be ignored. +@@ -205,6 +205,10 @@ + + err = -ENOMEM; + ++ msblk->stream = squashfs_decompressor_init(msblk); ++ if (msblk->stream == NULL) ++ goto failed_mount; ++ + msblk->block_cache = squashfs_cache_init("metadata", + SQUASHFS_CACHED_BLKS, SQUASHFS_METADATA_SIZE); + if (msblk->block_cache == NULL) +@@ -292,17 +296,16 @@ + squashfs_cache_delete(msblk->block_cache); + squashfs_cache_delete(msblk->fragment_cache); + squashfs_cache_delete(msblk->read_page); ++ squashfs_decompressor_free(msblk, msblk->stream); + kfree(msblk->inode_lookup_table); + kfree(msblk->fragment_index); + kfree(msblk->id_table); +- kfree(msblk->stream.workspace); + kfree(sb->s_fs_info); + sb->s_fs_info = NULL; + kfree(sblk); + return err; + + failure: +- kfree(msblk->stream.workspace); + kfree(sb->s_fs_info); + sb->s_fs_info = NULL; + return -ENOMEM; +@@ -346,10 +349,10 @@ + squashfs_cache_delete(sbi->block_cache); + squashfs_cache_delete(sbi->fragment_cache); + squashfs_cache_delete(sbi->read_page); ++ squashfs_decompressor_free(sbi, sbi->stream); + kfree(sbi->id_table); + kfree(sbi->fragment_index); + kfree(sbi->meta_index); +- kfree(sbi->stream.workspace); + kfree(sb->s_fs_info); + sb->s_fs_info = NULL; + } +@@ -444,7 +447,7 @@ + .fs_flags = FS_REQUIRES_DEV + }; + +-static struct super_operations squashfs_super_ops = { ++static const struct super_operations squashfs_super_ops = { + .alloc_inode = squashfs_alloc_inode, + .destroy_inode = squashfs_destroy_inode, + .statfs = squashfs_statfs, +diff -Naur linux-2.6.31.5-old/fs/squashfs/symlink.c linux-2.6.31.5-new/fs/squashfs/symlink.c +--- linux-2.6.31.5-old/fs/squashfs/symlink.c 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/fs/squashfs/symlink.c 2009-10-31 10:12:43.000000000 -0700 +@@ -36,7 +36,6 @@ + #include <linux/slab.h> + #include <linux/string.h> + #include <linux/pagemap.h> +-#include <linux/zlib.h> + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +diff -Naur linux-2.6.31.5-old/fs/squashfs/zlib_wrapper.c linux-2.6.31.5-new/fs/squashfs/zlib_wrapper.c +--- linux-2.6.31.5-old/fs/squashfs/zlib_wrapper.c 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/fs/squashfs/zlib_wrapper.c 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,150 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 ++ * Phillip Lougher <[email protected]> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ * ++ * zlib_wrapper.c ++ */ ++ ++ ++#include <linux/mutex.h> ++#include <linux/buffer_head.h> ++#include <linux/zlib.h> ++ ++#include "squashfs_fs.h" ++#include "squashfs_fs_sb.h" ++#include "squashfs_fs_i.h" ++#include "squashfs.h" ++#include "decompressor.h" ++ ++static void *zlib_init(struct squashfs_sb_info *dummy) ++{ ++ z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL); ++ if (stream == NULL) ++ goto failed; ++ stream->workspace = kmalloc(zlib_inflate_workspacesize(), ++ GFP_KERNEL); ++ if (stream->workspace == NULL) ++ goto failed; ++ ++ return stream; ++ ++failed: ++ ERROR("Failed to allocate zlib workspace\n"); ++ kfree(stream); ++ return NULL; ++} ++ ++ ++static void zlib_free(void *strm) ++{ ++ z_stream *stream = strm; ++ ++ if (stream) ++ kfree(stream->workspace); ++ kfree(stream); ++} ++ ++ ++static int zlib_uncompress(struct squashfs_sb_info *msblk, void **buffer, ++ struct buffer_head **bh, int b, int offset, int length, int srclength, ++ int pages) ++{ ++ int zlib_err = 0, zlib_init = 0; ++ int avail, bytes, k = 0, page = 0; ++ z_stream *stream = msblk->stream; ++ ++ mutex_lock(&msblk->read_data_mutex); ++ ++ stream->avail_out = 0; ++ stream->avail_in = 0; ++ ++ bytes = length; ++ do { ++ if (stream->avail_in == 0 && k < b) { ++ avail = min(bytes, msblk->devblksize - offset); ++ bytes -= avail; ++ wait_on_buffer(bh[k]); ++ if (!buffer_uptodate(bh[k])) ++ goto release_mutex; ++ ++ if (avail == 0) { ++ offset = 0; ++ put_bh(bh[k++]); ++ continue; ++ } ++ ++ stream->next_in = bh[k]->b_data + offset; ++ stream->avail_in = avail; ++ offset = 0; ++ } ++ ++ if (stream->avail_out == 0 && page < pages) { ++ stream->next_out = buffer[page++]; ++ stream->avail_out = PAGE_CACHE_SIZE; ++ } ++ ++ if (!zlib_init) { ++ zlib_err = zlib_inflateInit(stream); ++ if (zlib_err != Z_OK) { ++ ERROR("zlib_inflateInit returned unexpected " ++ "result 0x%x, srclength %d\n", ++ zlib_err, srclength); ++ goto release_mutex; ++ } ++ zlib_init = 1; ++ } ++ ++ zlib_err = zlib_inflate(stream, Z_SYNC_FLUSH); ++ ++ if (stream->avail_in == 0 && k < b) ++ put_bh(bh[k++]); ++ } while (zlib_err == Z_OK); ++ ++ if (zlib_err != Z_STREAM_END) { ++ ERROR("zlib_inflate error, data probably corrupt\n"); ++ goto release_mutex; ++ } ++ ++ zlib_err = zlib_inflateEnd(stream); ++ if (zlib_err != Z_OK) { ++ ERROR("zlib_inflate error, data probably corrupt\n"); ++ goto release_mutex; ++ } ++ ++ mutex_unlock(&msblk->read_data_mutex); ++ return stream->total_out; ++ ++release_mutex: ++ mutex_unlock(&msblk->read_data_mutex); ++ ++ for (; k < b; k++) ++ put_bh(bh[k]); ++ ++ return -EIO; ++} ++ ++const struct squashfs_decompressor squashfs_zlib_comp_ops = { ++ .init = zlib_init, ++ .free = zlib_free, ++ .decompress = zlib_uncompress, ++ .id = ZLIB_COMPRESSION, ++ .name = "zlib", ++ .supported = 1 ++}; ++ +diff -Naur linux-2.6.31.5-old/include/linux/decompress/bunzip2_mm.h linux-2.6.31.5-new/include/linux/decompress/bunzip2_mm.h +--- linux-2.6.31.5-old/include/linux/decompress/bunzip2_mm.h 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/include/linux/decompress/bunzip2_mm.h 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,12 @@ ++#ifndef BUNZIP2_MM_H ++#define BUNZIP2_MM_H ++ ++#ifdef STATIC ++/* Code active when included from pre-boot environment: */ ++#define INIT ++#else ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ++#endif +diff -Naur linux-2.6.31.5-old/include/linux/decompress/inflate_mm.h linux-2.6.31.5-new/include/linux/decompress/inflate_mm.h +--- linux-2.6.31.5-old/include/linux/decompress/inflate_mm.h 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/include/linux/decompress/inflate_mm.h 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,12 @@ ++#ifndef INFLATE_MM_H ++#define INFLATE_MM_H ++ ++#ifdef STATIC ++/* Code active when included from pre-boot environment: */ ++#define INIT ++#else ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ++#endif +diff -Naur linux-2.6.31.5-old/include/linux/decompress/mm.h linux-2.6.31.5-new/include/linux/decompress/mm.h +--- linux-2.6.31.5-old/include/linux/decompress/mm.h 2009-10-22 15:57:56.000000000 -0700 ++++ linux-2.6.31.5-new/include/linux/decompress/mm.h 2009-10-31 10:12:43.000000000 -0700 +@@ -53,8 +53,6 @@ + + #define set_error_fn(x) + +-#define INIT +- + #else /* STATIC */ + + /* Code active when compiled standalone for use when loading ramdisk: */ +@@ -77,7 +75,6 @@ + static void(*error)(char *m); + #define set_error_fn(x) error = x; + +-#define INIT __init + #define STATIC + + #include <linux/init.h> +diff -Naur linux-2.6.31.5-old/include/linux/decompress/unlzma_mm.h linux-2.6.31.5-new/include/linux/decompress/unlzma_mm.h +--- linux-2.6.31.5-old/include/linux/decompress/unlzma_mm.h 1969-12-31 16:00:00.000000000 -0800 ++++ linux-2.6.31.5-new/include/linux/decompress/unlzma_mm.h 2009-10-31 10:12:43.000000000 -0700 +@@ -0,0 +1,20 @@ ++#ifndef UNLZMA_MM_H ++#define UNLZMA_MM_H ++ ++#ifdef STATIC ++ ++/* Code active when included from pre-boot environment: */ ++#define INIT ++ ++#elif defined(CONFIG_DECOMPRESS_LZMA_NEEDED) ++ ++/* Make it available to non initramfs/initrd code */ ++#define INIT ++#include <linux/module.h> ++#else ++ ++/* Compile for initramfs/initrd code only */ ++#define INIT __init ++#endif ++ ***The diff for this file has been truncated for email.*** ======================================= --- /trunk/gar-minimyth/html/minimyth/document-changelog.txt Sat Oct 31 08:26:41 2009 +++ /trunk/gar-minimyth/html/minimyth/document-changelog.txt Sat Oct 31 12:44:46 2009 @@ -38,6 +38,7 @@ Modified kernel - Added Hauppauge WinTV-HVR2200 and WinTV-HVR2250 related kernel drivers (e.g. saa7164). + - Added squashfs lzma compression support. Fixed bugs - Fixed bug that caused boot to fail when huludesktop.data is not present @@ -48,6 +49,7 @@ Modified build system - Added $(DESTDIR)$(datadir)/pkgconfig to PKG_CONFIG_LIBDIR. - Changed glibc's minimum kernel version to 2.6.31. + - Swiched squashfs from gzip to lzma compression. Removed packages Removed kernel-2.6.30/*. @@ -84,6 +86,7 @@ Updated python/python. Updated system/zoneinfo. Updated utils/module-init-tools. + Updated utils/squashfs. Updated xorg-7.4/xdpyinfo. Updated xorg-7.4/xf86-input-evdev. Updated xorg-7.4/xf86-video-intel. ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/Makefile Sat Oct 31 12:44:46 2009 @@ -7,6 +7,7 @@ DISTFILES = $(DISTNAME).tar.bz2 $(CONFIGFILE) PATCHFILES = $(DISTNAME).patch.gar PATCHFILES += $(DISTNAME)-perl.patch.gar +PATCHFILES += $(DISTNAME)-squashfs_lzma.patch PATCHFILES += $(DISTNAME)-saa7164.patch PATCHFILES += $(DISTNAME)-intel_atom.patch PATCHFILES += $(DISTNAME)-bttv_lirc.patch ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/checksums Sat Oct 31 12:44:46 2009 @@ -1,13 +1,14 @@ 926bff46d24e2f303e4ee92234e394d8 download/linux-2.6.31.5.tar.bz2 31098d91dc15c07a9526bd2f6c347bef download/linux-2.6.31.5.patch.gar 8ffc444f2a635868380e55a2714d6e0f download/linux-2.6.31.5-perl.patch.gar +074b42a6cf4ac4a5c0933322026d06dc download/linux-2.6.31.5-squashfs_lzma.patch c5a1bc9c7b1226d6ab8098971c8198bd download/linux-2.6.31.5-saa7164.patch 5ff44d89c6d84935cd18e50d75597cda download/linux-2.6.31.5-intel_atom.patch 959a5c5a7cf94e9f5015ff1a8ae88c0f download/linux-2.6.31.5-bttv_lirc.patch cbd4806d46552ff4daf2d3af283f5919 download/linux-2.6.31.5-unionfs_2.5.3.patch 6e5cff9c94dbe3cb23ac2605cd70e648 download/linux-2.6.31.5-disable_dma_for_cfa.patch e78c8e28d8228cecda3ec0223fbc7f18 download/linux-2.6.31.5-defaults.patch -1da4d6cde1c21bd48c81f988c87dbfbf download/linux-2.6.31.5-i386-c3.config -57ddf0fedb634a0a95bff0061d9e2726 download/linux-2.6.31.5-i386-c3-2.config -8b7b01dab75f80de690cb69cd905942f download/linux-2.6.31.5-i386-pentium-mmx.config -eb97db539e79aae515066ef8ca7c2135 download/linux-2.6.31.5-x86_64-x86-64.config +eacd29317513f89b8d3d35e8eb98de85 download/linux-2.6.31.5-i386-c3.config +b9c8679f9ddc66f75dde2a000c7c2340 download/linux-2.6.31.5-i386-c3-2.config +e0d1ea8882f5a159a4248280048694b9 download/linux-2.6.31.5-i386-pentium-mmx.config +85ae219adfa05a0c9a45a696445118b0 download/linux-2.6.31.5-x86_64-x86-64.config ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3-2.config Sat Oct 31 12:44:46 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Sat Oct 31 07:17:36 2009 +# Sat Oct 31 11:41:38 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2187,6 +2187,7 @@ # CONFIG_EFS_FS is not set CONFIG_CRAMFS=y CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZMA=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set @@ -2372,6 +2373,7 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZMA_NEEDED=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-c3.config Sat Oct 31 12:44:46 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Sat Oct 31 07:17:24 2009 +# Sat Oct 31 11:41:27 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2185,6 +2185,7 @@ # CONFIG_EFS_FS is not set CONFIG_CRAMFS=y CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZMA=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set @@ -2370,6 +2371,7 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZMA_NEEDED=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-i386-pentium-mmx.config Sat Oct 31 12:44:46 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Sat Oct 31 07:16:42 2009 +# Sat Oct 31 11:39:33 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -2186,6 +2186,7 @@ # CONFIG_EFS_FS is not set CONFIG_CRAMFS=y CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZMA=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set @@ -2371,6 +2372,7 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZMA_NEEDED=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y ======================================= --- /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config Sat Oct 31 07:26:41 2009 +++ /trunk/gar-minimyth/script/kernel-2.6.31/linux/files/linux-2.6.31.5-x86_64-x86-64.config Sat Oct 31 12:44:46 2009 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31.5 -# Sat Oct 31 07:17:54 2009 +# Sat Oct 31 11:41:53 2009 # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -2079,6 +2079,7 @@ # CONFIG_EFS_FS is not set CONFIG_CRAMFS=y CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_LZMA=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set @@ -2262,6 +2263,7 @@ CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZMA_NEEDED=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y ======================================= --- /trunk/gar-minimyth/script/meta/minimyth/files/source/Makefile Fri Oct 16 08:39:16 2009 +++ /trunk/gar-minimyth/script/meta/minimyth/files/source/Makefile Sat Oct 31 12:44:46 2009 @@ -637,7 +637,7 @@ @echo "making the squashfs version of the root file system" @mkdir -m 0755 -p $(@D) @rm -rf $@ $...@~ - @fakeroot -i $<.fakeroot sh -c "mksquashfs $< $...@~ -no-exports -no-progress -no-fragments > /dev/null 2>&1" + @fakeroot -i $<.fakeroot sh -c "mksquashfs $< $...@~ -no-exports -no-progress -no-fragments" @chmod 0644 $...@~ @touch $...@~ @mv $...@~ $@ @@ -646,7 +646,7 @@ @echo "making the squashfs version of the extras file system" @mkdir -m 0755 -p $(@D) @rm -rf $@ $...@~ - @fakeroot sh -c "mksquashfs $< $...@~ -no-exports -no-progress -no-fragments > /dev/null 2>&1" + @fakeroot sh -c "mksquashfs $< $...@~ -no-exports -no-progress -no-fragments" @chmod 0644 $...@~ @touch $...@~ @mv $...@~ $@ @@ -657,7 +657,7 @@ @rm -rf $@ $...@~ @mkdir -m 0755 -p $...@~ @for theme in `cd $< ; ls -1` ; do \ - fakeroot sh -c "mksquashfs $</$${theme} $...@~/$${theme}.sfs -no-exports -no-progress -no-fragments > /dev/null 2>&1" ; \ + fakeroot sh -c "mksquashfs $</$${theme} $...@~/$${theme}.sfs -no-exports -no-progress -no-fragments" ; \ done @find $...@~ -depth -type d -exec chmod 0755 '{}' \; @find $...@~ -depth -type f -exec chmod 0644 '{}' \; ======================================= --- /trunk/gar-minimyth/script/utils/squashfs/Makefile Mon Sep 14 16:35:51 2009 +++ /trunk/gar-minimyth/script/utils/squashfs/Makefile Sat Oct 31 12:44:46 2009 @@ -1,9 +1,12 @@ GARNAME = squashfs -GARVERSION = 4.0 +GARVERSION = 4.0-lzma-snapshot CATEGORIES = lib -MASTER_SITES = http://easynews.dl.sourceforge.net/sourceforge/$(GARNAME)/ -DISTFILES = $(GARNAME)$(GARVERSION).tar.gz -PATCHFILES = $(DISTNAME)-multi_core_fix.patch +MASTER_SITES = http://www.kernel.org/pub/linux/kernel/people/pkl/ +MASTER_SITES += http://easynews.dl.sourceforge.net/sourceforge/$(GARNAME)/ +MASTER_SITES += http://easynews.dl.sourceforge.net/sourceforge/sevenzip/ +DISTFILES = $(GARNAME)$(GARVERSION).tgz lzma465.tar.bz2 +#DISTFILES = $(GARNAME)$(GARVERSION).tar.gz +#PATCHFILES = $(DISTNAME)-multi_core_fix.patch LICENSE = GPL2 DESCRIPTION = @@ -18,15 +21,22 @@ INSTALL_SCRIPTS = $(WORKSRC)/squashfs-tools/Makefile BUILD_ARGS = \ - CFLAGS="$(CFLAGS)" + CFLAGS="$(CFLAGS)" \ + LZMA_SUPPORT=1 \ + LZMA_DIR=$(PWD)/$(WORKDIR)/LZMA INSTALL_ARGS = \ INSTALL_DIR=$(DESTDIR)$(bindir) include ../../gar.mk -CFLAGS := $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE +CFLAGS := $(CFLAGS) -I. -I$(PWD)/$(WORKDIR)/LZMA/C -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\\\"lzma\\\" -DLZMA_SUPPORT pre-install: @rm -f $(DESTDIR)$(bindir)/mksquashfs @rm -f $(DESTDIR)$(bindir)/unsquashfs @$(MAKECOOKIE) + +extract-lzma465.tar.bz2: + @mkdir -p $(WORKDIR)/LZMA + @bzip2 -dc $(DOWNLOADDIR)/lzma465.tar.bz2 | tar -xf - -C $(WORKDIR)/LZMA + @$(MAKECOOKIE) ======================================= --- /trunk/gar-minimyth/script/utils/squashfs/checksums Mon Sep 14 16:35:51 2009 +++ /trunk/gar-minimyth/script/utils/squashfs/checksums Sat Oct 31 12:44:46 2009 @@ -1,2 +1,5 @@ a3c23391da4ebab0ac4a75021ddabf96 download/squashfs4.0.tar.gz b12e2bd8278bdafc9c51e5b0c28f6214 download/squashfs-4.0-multi_core_fix.patch + +a2e01bcd59a56cf17587d6481f341b64 download/squashfs4.0-lzma-snapshot.tgz +29d5ffd03a5a3e51aef6a74e9eafb759 download/lzma465.tar.bz2 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "minimyth-commits" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/minimyth-commits?hl=en -~----------~----~----~----~------~----~------~--~---
