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
-~----------~----~----~----~------~----~------~--~---

Reply via email to