[kernel] 2.6.30: fix lzma compressed intitramfs support, and decrease dictionary...
[openwrt-10.03/.git] / target / linux / generic-2.6 / patches-2.6.30 / 998-openwrt_lzma_options.patch
index 8e05052ea45d8aee76aecd6b15ec260be3631eba..b9c9b786831f406a2457645693082bd0ca69fd60 100644 (file)
@@ -5,4 +5,47 @@
  
  quiet_cmd_lzma = LZMA    $@
 -cmd_lzma = (lzma -9 -c $< && $(size_append) $<) >$@ || (rm -f $@ ; false)
-+cmd_lzma = lzma e $< $@ -lc1 -lp2 -pb2
++cmd_lzma = lzma e $< $@ -lc1 -lp2 -pb2 -eos
+--- a/scripts/gen_initramfs_list.sh
++++ b/scripts/gen_initramfs_list.sh
+@@ -225,7 +225,7 @@ cpio_list=
+ output="/dev/stdout"
+ output_file=""
+ is_cpio_compressed=
+-compr="gzip -9 -f"
++compr="gzip -9 -f -"
+ arg="$1"
+ case "$arg" in
+@@ -239,9 +239,9 @@ case "$arg" in
+               output_file="$1"
+               cpio_list="$(mktemp ${TMPDIR:-/tmp}/cpiolist.XXXXXX)"
+               output=${cpio_list}
+-              echo "$output_file" | grep -q "\.gz$" && compr="gzip -9 -f"
+-              echo "$output_file" | grep -q "\.bz2$" && compr="bzip2 -9 -f"
+-              echo "$output_file" | grep -q "\.lzma$" && compr="lzma -9 -f"
++              echo "$output_file" | grep -q "\.gz$" && compr="gzip -9 -f -"
++              echo "$output_file" | grep -q "\.bz2$" && compr="bzip2 -9 -f -"
++              echo "$output_file" | grep -q "\.lzma$" && compr="lzma e -d20 -lc1 -lp2 -pb2 -si -so"
+               echo "$output_file" | grep -q "\.cpio$" && compr="cat"
+               shift
+               ;;
+@@ -292,7 +292,7 @@ if [ ! -z ${output_file} ]; then
+       if [ "${is_cpio_compressed}" = "compressed" ]; then
+               cat ${cpio_tfile} > ${output_file}
+       else
+-              (cat ${cpio_tfile} | ${compr}  - > ${output_file}) \
++              (cat ${cpio_tfile} | ${compr} > ${output_file}) \
+               || (rm -f ${output_file} ; false)
+       fi
+       [ -z ${cpio_file} ] && rm ${cpio_tfile}
+--- a/lib/decompress.c
++++ b/lib/decompress.c
+@@ -32,6 +32,7 @@ static const struct compress_format {
+       { {037, 0236}, "gzip", gunzip },
+       { {0x42, 0x5a}, "bzip2", bunzip2 },
+       { {0x5d, 0x00}, "lzma", unlzma },
++      { {0x6d, 0x00}, "lzma-openwrt", unlzma },
+       { {0, 0}, NULL, NULL }
+ };