diff options
Diffstat (limited to 'Build/source/utils/lzma-utils/extra')
9 files changed, 630 insertions, 0 deletions
diff --git a/Build/source/utils/lzma-utils/extra/README b/Build/source/utils/lzma-utils/extra/README new file mode 100644 index 00000000000..f743deccbc9 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/README @@ -0,0 +1,2 @@ +These patches and code are unsupported. Some work only with the old +LZMA_Alone format, and thus aren't ready to be sent upstream. diff --git a/Build/source/utils/lzma-utils/extra/less/lesspipe-1.53-lzma.patch b/Build/source/utils/lzma-utils/extra/less/lesspipe-1.53-lzma.patch new file mode 100644 index 00000000000..10b63493043 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/less/lesspipe-1.53-lzma.patch @@ -0,0 +1,33 @@ +# This patch has been put into the public domain +# by Per Øyvind Karlsen <pkarlsen@mandriva.com>. + +--- lesspipe.sh.old 2006-09-20 20:21:46.000000000 +0200 ++++ lesspipe.sh 2007-05-04 00:10:43.000000000 +0200 +@@ -180,6 +180,12 @@ get_cmd () { + set "$1" $tmp.. + fi + ++ #(peroyvind): magic bytes for lzma not okay yet, do check against file ending in stead ++ if [[ "$2" = *.lzma ]] ; then ++ cmd=(lzma -cd "$2") ++ return ++ fi ++ + if [[ "$1" = *bzip*compress* || "$1" = *compress[\'e]d\ * || "$1" = *packed\ data* ]]; then + if [[ "$3" = $sep$sep ]]; then + return +--- lesspipe.sh.in.lzma 2007-06-07 16:14:38.000000000 +0200 ++++ lesspipe.sh.in 2007-06-07 16:14:40.000000000 +0200 +@@ -183,6 +183,12 @@ get_cmd () { + set "$1" $tmp.. + fi + ++ #(peroyvind): magic bytes for lzma not okay yet, do check against file ending in stead ++ if [[ "$2" = *.lzma ]] ; then ++ cmd=(lzma -cd "$2") ++ return ++ fi ++ + if [[ "$1" = *bzip*compress* || "$1" = *compress[\'e]d\ * || "$1" = *packed\ data* ]]; then + if [[ "$3" = $sep$sep ]]; then + return diff --git a/Build/source/utils/lzma-utils/extra/magic/lzma.magic b/Build/source/utils/lzma-utils/extra/magic/lzma.magic new file mode 100644 index 00000000000..88de931e83d --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/magic/lzma.magic @@ -0,0 +1,15 @@ +# LZMA (Lempel-Ziv-Markov chain-Algorithm) file format supported by: +# - 7-Zip <http://7-zip.org/> +# - LZMA SDK <http://7-zip.org/sdk.html> +# - LZMA Utils <http://tukaani.org/lzma/> +# +# Note that this is different format than the original format created +# by LZMA_Alone from older versions of LZMA SDK. These files are +# non-trivial to detect, because they have no magic bytes. +# +# This file has been put into the public domain by Lasse Collin. +# Last updated: 2007-08-12 + +0x00 ustring \xFFLZMA\x00 lzma compressed data, +>0x06 ubyte&0x10 0x00 single-block stream +>0x06 ubyte&0x10 0x10 multi-block stream diff --git a/Build/source/utils/lzma-utils/extra/man/man-1.6e-lzma.patch b/Build/source/utils/lzma-utils/extra/man/man-1.6e-lzma.patch new file mode 100644 index 00000000000..8d28905b766 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/man/man-1.6e-lzma.patch @@ -0,0 +1,78 @@ +# This patch has been put into the public domain +# by Per Øyvind Karlsen <pkarlsen@mandriva.com>. + +--- man-1.6e/configure~ 2007-06-07 16:56:08.000000000 +0200 ++++ man-1.6e/configure 2007-06-07 17:08:47.000000000 +0200 +@@ -1027,7 +1027,7 @@ then + then + DO_COMPRESSION=true + compress= +- for i in bzip2 gzip bzip tzip pack compress freeze yabba ++ for i in bzip2 gzip lzma bzip tzip pack compress freeze yabba + do + eval F$i=missing + for j in $DEFPATH +@@ -1081,6 +1081,7 @@ then + + case $compress in + *bzip2*) ext=".bz2" ;; ++ *lzma*) ext=".lzma" ;; + *gzip*) ext=".gz" ;; + *bzip*) ext=".bz" ;; + *tzip*) ext=".tz" ;; +@@ -1122,7 +1123,7 @@ then + fi + + # unconditionally handle uncompression +-UNCOMPRESSORS="gunzip bzip2 pcat zcat fcat unyabba" ++UNCOMPRESSORS="gunzip bzip2 unlzma pcat zcat fcat unyabba" + for i in $UNCOMPRESSORS + do + eval F$i=missing +@@ -1143,6 +1144,10 @@ bzip2=missing + if [ $Fbzip2 != missing ]; then + bzip2="$Fbzip2 -c -d" + fi ++unlzma=missing ++if [ $Funlzma != missing ]; then ++ unlzma="$Funlzma -c -d" ++fi + pcat="$Fpcat" + zcat="$Fzcat" + fcat="$Ffcat" +@@ -1171,6 +1176,9 @@ if [ x$default = x ]; then + bzip2) + echo "Command to use for .bz2 files (standard bzip2)" + echo $n "[`eval echo \\$$filter`] $c" ;; ++ lzma) ++ echo "Command to use for .lzma files (standard lzma)" ++ echo $n "[`eval echo \\$$filter`] $c" ;; + pcat) + echo "Command to use for .z files (pack/unpack)" + echo $n "[`eval echo \\$$filter`] $c" ;; +@@ -1232,6 +1240,7 @@ fi + case $compress_ext in + .gz) decompress=$gunzip ;; + .bz2) decompress=$bzip2 ;; ++ .lzma) decompress=$unlzma ;; + .z) decompress=$pcat ;; + .Z) decompress=$zcat ;; + .F) decompress=$fcat ;; +@@ -1319,6 +1328,7 @@ s,@pcat@,$pcat, + s,@zcat@,$zcat, + s,@gunzip@,$gunzip, + s,@bzip2@,$bzip2, ++s,@unlzma@,$unlzma, + s,@unyabba@,$unyabba, + s,@compress@,$compress, + s,@compress_ext@,$compress_ext, +--- man-1.6e/src/man.conf.in~ 2007-06-07 16:56:08.000000000 +0200 ++++ man-1.6e/src/man.conf.in 2007-06-07 17:32:53.000000000 +0200 +@@ -139,6 +139,7 @@ MANSECT @sections@ + # + .gz @gunzip@ + .bz2 @bzip2@ ++.lzma @unlzma@ + .z @pcat@ + .Z @zcat@ + .F @fcat@ diff --git a/Build/source/utils/lzma-utils/extra/mc/mc-4.6.1.lzma.patch b/Build/source/utils/lzma-utils/extra/mc/mc-4.6.1.lzma.patch new file mode 100644 index 00000000000..ecb1f608626 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/mc/mc-4.6.1.lzma.patch @@ -0,0 +1,222 @@ +# LZMA support for Midnight Commander +# 2006-03-17 +# +# This patch adds basic support for LZMA compressed files to +# Midnight Commander 4.6.1. You should have LZMA utils 4.32.x +# or later. Older versions of LZMA utils will *not* work. +# +# Copyright (C) 2006 Lasse Collin <lasse.collin@tukaani.org> +# +# This patch 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 of the License, 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. + +diff -Naru mc-4.6.1.orig/edit/edit.c mc-4.6.1/edit/edit.c +--- mc-4.6.1.orig/edit/edit.c 2005-05-27 17:19:18.000000000 +0300 ++++ mc-4.6.1/edit/edit.c 2006-03-17 17:39:49.000000000 +0200 +@@ -179,6 +179,9 @@ + } all_filters[] = { + + { ++ "lzma -cd %s 2>&1", "lzma > %s", ".lzma" ++ }, ++ { + "bzip2 -cd %s 2>&1", "bzip2 > %s", ".bz2" + }, + { +diff -Naru mc-4.6.1.orig/lib/mc.ext.in mc-4.6.1/lib/mc.ext.in +--- mc-4.6.1.orig/lib/mc.ext.in 2005-07-23 19:51:15.000000000 +0300 ++++ mc-4.6.1/lib/mc.ext.in 2006-03-17 19:05:08.000000000 +0200 +@@ -119,6 +119,11 @@ + Open=%cd %p#utar + View=%view{ascii} bzip2 -dc %f 2>/dev/null | tar tvvf - + ++# .tar.lzma, .tlz ++regex/\.t(ar\.lzma|lz)$ ++ Open=%cd %p#utar ++ View=%view{ascii} lzma -dc %f 2>/dev/null | tar tvvf - ++ + # .tar.F - used in QNX + regex/\.tar\.F$ + # Open=%cd %p#utar +@@ -283,6 +288,10 @@ + Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more} + View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac + ++regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$ ++ Open=case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac | %var{PAGER:more} ++ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff @MAN_FLAGS@ @MANDOC@ ;; esac ++ + + ### Images ### + +@@ -527,6 +536,11 @@ + Open=gzip -dc %f | %var{PAGER:more} + View=%view{ascii} gzip -dc %f 2>/dev/null + ++# lzma ++regex/\.lzma$ ++ Open=lzma -dc %f | %var{PAGER:more} ++ View=%view{ascii} lzma -dc %f 2>/dev/null ++ + + ### Default ### + +diff -Naru mc-4.6.1.orig/src/util.c mc-4.6.1/src/util.c +--- mc-4.6.1.orig/src/util.c 2005-05-27 17:19:18.000000000 +0300 ++++ mc-4.6.1/src/util.c 2006-03-17 18:20:50.000000000 +0200 +@@ -900,7 +900,7 @@ + * Warning: this function moves the current file pointer */ + int get_compression_type (int fd) + { +- unsigned char magic[4]; ++ unsigned char magic[16]; + + /* Read the magic signature */ + if (mc_read (fd, (char *) magic, 4) != 4) +@@ -944,6 +944,31 @@ + return COMPRESSION_BZIP2; + } + } ++ ++ /* LZMA files; both LZMA_Alone and LZMA utils formats. The LZMA_Alone ++ * format is used by the LZMA_Alone tool from LZMA SDK. The LZMA utils ++ * format is the default format of LZMA utils 4.32.1 and later. */ ++ if (magic[0] < 0xE1 || (magic[0] == 0xFF && magic[1] == 'L' && ++ magic[2] == 'Z' && magic[3] == 'M')) { ++ if (mc_read (fd, (char *) magic + 4, 9) == 9) { ++ /* LZMA utils format */ ++ if (magic[0] == 0xFF && magic[4] == 'A' && magic[5] == 0x00) ++ return COMPRESSION_LZMA; ++ /* The LZMA_Alone format has no magic bytes, thus we ++ * need to play a wizard. This can give false positives, ++ * thus the detection below should be removed when ++ * the newer LZMA utils format has got popular. */ ++ if (magic[0] < 0xE1 && magic[4] < 0x20 && ++ ((magic[10] == 0x00 && magic[11] == 0x00 && ++ magic[12] == 0x00) || ++ (magic[5] == 0xFF && magic[6] == 0xFF && ++ magic[7] == 0xFF && magic[8] == 0xFF && ++ magic[9] == 0xFF && magic[10] == 0xFF && ++ magic[11] == 0xFF && magic[12] == 0xFF))) ++ return COMPRESSION_LZMA; ++ } ++ } ++ + return 0; + } + +@@ -954,6 +979,7 @@ + case COMPRESSION_GZIP: return "#ugz"; + case COMPRESSION_BZIP: return "#ubz"; + case COMPRESSION_BZIP2: return "#ubz2"; ++ case COMPRESSION_LZMA: return "#ulzma"; + } + /* Should never reach this place */ + fprintf (stderr, "Fatal: decompress_extension called with an unknown argument\n"); +diff -Naru mc-4.6.1.orig/src/util.h mc-4.6.1/src/util.h +--- mc-4.6.1.orig/src/util.h 2005-01-13 21:20:47.000000000 +0200 ++++ mc-4.6.1/src/util.h 2006-03-17 17:34:34.000000000 +0200 +@@ -169,7 +169,8 @@ + COMPRESSION_NONE, + COMPRESSION_GZIP, + COMPRESSION_BZIP, +- COMPRESSION_BZIP2 ++ COMPRESSION_BZIP2, ++ COMPRESSION_LZMA + }; + + int get_compression_type (int fd); +diff -Naru mc-4.6.1.orig/vfs/extfs/iso9660.in mc-4.6.1/vfs/extfs/iso9660.in +--- mc-4.6.1.orig/vfs/extfs/iso9660.in 2004-10-29 12:14:38.000000000 +0300 ++++ mc-4.6.1/vfs/extfs/iso9660.in 2006-03-17 17:45:28.000000000 +0200 +@@ -25,6 +25,7 @@ + mcisofs_list () { + # left as a reminder to implement compressed image support =) + case "$1" in ++ *.lzma) MYCAT="lzma -dc";; + *.bz2) MYCAT="bzip2 -dc";; + *.gz) MYCAT="gzip -dc";; + *.z) MYCAT="gzip -dc";; +diff -Naru mc-4.6.1.orig/vfs/extfs/lslR.in mc-4.6.1/vfs/extfs/lslR.in +--- mc-4.6.1.orig/vfs/extfs/lslR.in 2003-06-22 12:54:21.000000000 +0300 ++++ mc-4.6.1/vfs/extfs/lslR.in 2006-03-17 17:45:08.000000000 +0200 +@@ -12,6 +12,7 @@ + + mclslRfs_list () { + case "$1" in ++ *.lzma) MYCAT="lzma -dc";; + *.bz2) MYCAT="bzip2 -dc";; + *.gz) MYCAT="gzip -dc";; + *.z) MYCAT="gzip -dc";; +diff -Naru mc-4.6.1.orig/vfs/extfs/mailfs.in mc-4.6.1/vfs/extfs/mailfs.in +--- mc-4.6.1.orig/vfs/extfs/mailfs.in 2002-12-24 08:56:17.000000000 +0200 ++++ mc-4.6.1/vfs/extfs/mailfs.in 2006-03-17 17:53:47.000000000 +0200 +@@ -7,6 +7,7 @@ + + $zcat="zcat"; # gunzip to stdout + $bzcat="bzip2 -dc"; # bunzip2 to stdout ++$lzcat="lzma -dc"; # unlzma to stdout + $file="file"; # "file" command + $TZ='GMT'; # default timezone (for Date module) + +@@ -132,6 +133,8 @@ + exit 1 unless (open IN, "$zcat $mbox_qname|"); + } elsif (/bzip/) { + exit 1 unless (open IN, "$bzcat $mbox_qname|"); ++} elsif (/lzma/) { ++ exit 1 unless (open IN, "$lzcat $mbox_qname|"); + } else { + exit 1 unless (open IN, "<$mbox_name"); + } +diff -Naru mc-4.6.1.orig/vfs/extfs/patchfs.in mc-4.6.1/vfs/extfs/patchfs.in +--- mc-4.6.1.orig/vfs/extfs/patchfs.in 2004-11-17 01:00:40.000000000 +0200 ++++ mc-4.6.1/vfs/extfs/patchfs.in 2006-03-17 17:52:47.000000000 +0200 +@@ -12,6 +12,7 @@ + use File::Temp 'tempfile'; + + # standard binaries ++my $lzma = 'lzma'; + my $bzip = 'bzip2'; + my $gzip = 'gzip'; + my $fileutil = 'file'; +@@ -70,7 +71,9 @@ + my ($qfname)=(quotemeta $_[0]); + + $_=`$fileutil $qfname`; +- if (/bzip/) { ++ if (/lzma/) { ++ return "$lzma -dc $qfname"; ++ } elsif (/bzip/) { + return "$bzip -dc $qfname"; + } elsif (/gzip/) { + return "$gzip -dc $qfname"; +@@ -86,7 +89,9 @@ + my ($sep) = $append ? '>>' : '>'; + + $_=`$fileutil $qfname`; +- if (/bzip/) { ++ if (/lzma/) { ++ return "$lzma -c $sep $qfname"; ++ } elsif (/bzip/) { + return "$bzip -c $sep $qfname"; + } elsif (/gzip/) { + return "$gzip -c $sep $qfname"; +diff -Naru mc-4.6.1.orig/vfs/extfs/sfs.ini mc-4.6.1/vfs/extfs/sfs.ini +--- mc-4.6.1.orig/vfs/extfs/sfs.ini 1998-12-15 17:57:43.000000000 +0200 ++++ mc-4.6.1/vfs/extfs/sfs.ini 2006-03-17 17:44:01.000000000 +0200 +@@ -10,6 +10,8 @@ + ubz/1 bzip -d < %1 > %3 + bz2/1 bzip2 < %1 > %3 + ubz2/1 bzip2 -d < %1 > %3 ++lzma/1 lzma < %1 > %3 ++ulzma/1 lzma -d < %1 > %3 + tar/1 tar cf %3 %1 + tgz/1 tar czf %3 %1 + uhtml/1 lynx -force_html -dump %1 > %3 diff --git a/Build/source/utils/lzma-utils/extra/scanlzma/scanlzma.c b/Build/source/utils/lzma-utils/extra/scanlzma/scanlzma.c new file mode 100644 index 00000000000..3612f9df9c1 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/scanlzma/scanlzma.c @@ -0,0 +1,85 @@ +/* + scanlzma, scan for lzma compressed data in stdin and echo it to stdout. + Copyright (C) 2006 Timo Lindfors + + 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 of the License, 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. +*/ + +/* Usage example: + + $ wget http://www.wifi-shop.cz/Files/produkty/wa2204/wa2204av1.4.1.zip + $ unzip wa2204av1.4.1.zip + $ gcc scanlzma.c -o scanlzma -Wall + $ ./scanlzma 0 < WA2204-FW1.4.1/linux-1.4.bin | lzma -c -d | strings | grep -i "copyright" + UpdateDD version 2.5, Copyright (C) 2005 Philipp Benner. + Copyright (C) 2005 Philipp Benner. + Copyright (C) 2005 Philipp Benner. + mawk 1.3%s%s %s, Copyright (C) Michael D. Brennan + # Copyright (C) 1998, 1999, 2001 Henry Spencer. + ... + +*/ + + +/* LZMA compressed file format */ +/* --------------------------- */ +/* Offset Size Description */ +/* 0 1 Special LZMA properties for compressed data */ +/* 1 4 Dictionary size (little endian) */ +/* 5 8 Uncompressed size (little endian). -1 means unknown size */ +/* 13 Compressed data */ + +#define BUFSIZE 4096 + +int find_lzma_header(unsigned char *buf) { + return (buf[0] < 0xE1 + && buf[0] == 0x5d + && buf[4] < 0x20 + && (memcmp (buf + 10 , "\x00\x00\x00", 3) == 0 + || (memcmp (buf + 5, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8) == 0))); +} + +int main(int argc, char *argv[]) { + char buf[BUFSIZE]; + int ret, i, numlzma, blocks=0; + + if (argc != 2) { + printf("usage: %s numlzma < infile | lzma -c -d > outfile\n" + "where numlzma is index of lzma file to extract, starting from zero.\n", + argv[0]); + exit(1); + } + numlzma = atoi(argv[1]); + + for (;;) { + /* Read data. */ + ret = fread(buf, BUFSIZE, 1, stdin); + if (ret != 1) + break; + + /* Scan for signature. */ + for (i = 0; i<BUFSIZE-23; i++) { + if (find_lzma_header(buf+i) && numlzma-- <= 0) { + fwrite(buf+i, (BUFSIZE-i), 1, stdout); + for (;;) { + int ch; + ch = getchar(); + if (ch == EOF) + exit(0); + putchar(ch); + } + + } + } + blocks++; + } + return 1; +} diff --git a/Build/source/utils/lzma-utils/extra/tar/tar-1.15.1.patch b/Build/source/utils/lzma-utils/extra/tar/tar-1.15.1.patch new file mode 100644 index 00000000000..bc8b99e3d76 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/tar/tar-1.15.1.patch @@ -0,0 +1,70 @@ +# Description +# +# This patch adds `-a' and a long option equivalent `--lzma' +# to GNU tar 1.15.1. +# +# Changes +# +# 2007-08-10 - Use `-a' instead of of `-Y'. BusyBox already uses `-a' +# and that conflicts less with other tar implementations +# than `-Y'. +# +# 2006-08-16 - Updated magic byte detection for the new .lzma format. +# +# 2005-12-23 - Updated to use the new lzma command line tool which +# replaced the ugly lzmash wrapper script. +# +# 2005-05-06 - Initial version using lzmash wrapper script +# +# Copyright information +# +# GNU tar is copyright by Free Software Foundation, Inc. +# This patch was written by Lasse Collin <lasse.collin@tukaani.org>. +# +# GNU tar is distributed under the GNU GPL. However, the author of +# this patch puts the changes made by him into the public domain. + +diff -ru tar-1.15.1_orig/src/buffer.c tar-1.15.1/src/buffer.c +--- tar-1.15.1_orig/src/buffer.c 2004-12-21 17:09:24.000000000 +0200 ++++ tar-1.15.1/src/buffer.c 2005-05-06 00:04:23.000000000 +0300 +@@ -153,7 +153,8 @@ + ct_none, + ct_compress, + ct_gzip, +- ct_bzip2 ++ ct_bzip2, ++ ct_lzma + }; + + struct zip_magic +@@ -170,6 +171,7 @@ + { ct_compress, "\037\235", 2, "compress", "-Z" }, + { ct_gzip, "\037\213", 2, "gzip", "-z" }, + { ct_bzip2, "BZh", 3, "bzip2", "-j" }, ++ { ct_lzma, "\xFFLZMA", 6, "lzma", "-a" }, + }; + + #define NMAGIC (sizeof(magic)/sizeof(magic[0])) +diff -ru tar-1.15.1_orig/src/tar.c tar-1.15.1/src/tar.c +--- tar-1.15.1_orig/src/tar.c 2004-12-21 16:11:26.000000000 +0200 ++++ tar-1.15.1/src/tar.c 2005-05-06 00:04:24.000000000 +0300 +@@ -429,6 +429,8 @@ + N_("control pax keywords"), 68 }, + {"label", 'V', N_("TEXT"), 0, + N_("create archive with volume name NAME. At list/extract time, use TEXT as a globbing pattern"), 68 }, ++ {"lzma", 'a', 0, 0, ++ N_("filter the archive through lzma"), 68 }, + {"bzip2", 'j', 0, 0, + N_("filter the archive through bzip2"), 68 }, + {"gzip", 'z', 0, 0, +@@ -906,6 +908,10 @@ + " perhaps you meant -j?"))); + break; + ++ case 'a': ++ set_use_compress_program_option ("lzma"); ++ break; ++ + case 'z': + set_use_compress_program_option ("gzip"); + break; diff --git a/Build/source/utils/lzma-utils/extra/tar/tar-1.18.patch b/Build/source/utils/lzma-utils/extra/tar/tar-1.18.patch new file mode 100644 index 00000000000..c92ab235fa0 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/tar/tar-1.18.patch @@ -0,0 +1,72 @@ +# Description +# +# This patch adds `-a' and a long option equivalent `--lzma' +# to GNU tar 1.18. +# +# Changes +# +# 2007-08-10 - Updated the patch to work with GNU tar 1.18. +# +# 2007-08-10 - Use `-a' instead of of `-Y'. BusyBox already uses `-a' +# and that conflicts less with other tar implementations +# than `-Y'. +# +# 2006-08-16 - Updated magic byte detection for the new .lzma format. +# +# 2005-12-23 - Updated to use the new lzma command line tool which +# replaced the ugly lzmash wrapper script. +# +# 2005-05-06 - Initial version using lzmash wrapper script +# +# Copyright information +# +# GNU tar is copyright by Free Software Foundation, Inc. +# This patch was written by Lasse Collin <lasse.collin@tukaani.org>. +# +# GNU tar is distributed under the GNU GPL. However, the author of +# this patch puts the changes made by him into the public domain. + +diff -ru tar-1.18.orig/src/buffer.c tar-1.18/src/buffer.c +--- tar-1.18.orig/src/buffer.c 2007-06-27 16:30:31.000000000 +0300 ++++ tar-1.18/src/buffer.c 2007-08-10 23:03:33.430394635 +0300 +@@ -205,7 +205,8 @@ + ct_none, + ct_compress, + ct_gzip, +- ct_bzip2 ++ ct_bzip2, ++ ct_lzma + }; + + struct zip_magic +@@ -222,6 +223,7 @@ + { ct_compress, 2, "\037\235", "compress", "-Z" }, + { ct_gzip, 2, "\037\213", "gzip", "-z" }, + { ct_bzip2, 3, "BZh", "bzip2", "-j" }, ++ { ct_lzma, 6, "\xFFLZMA", "lzma", "-a" }, + }; + + #define NMAGIC (sizeof(magic)/sizeof(magic[0])) +diff -ru tar-1.18.orig/src/tar.c tar-1.18/src/tar.c +--- tar-1.18.orig/src/tar.c 2007-06-27 16:30:32.000000000 +0300 ++++ tar-1.18/src/tar.c 2007-08-10 23:03:33.430394635 +0300 +@@ -574,6 +574,8 @@ + N_("control pax keywords"), GRID+8 }, + {"label", 'V', N_("TEXT"), 0, + N_("create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"), GRID+8 }, ++ {"lzma", 'a', 0, 0, ++ N_("filter the archive through lzma"), GRID+8 }, + {"bzip2", 'j', 0, 0, + N_("filter the archive through bzip2"), GRID+8 }, + {"gzip", 'z', 0, 0, +@@ -1184,6 +1186,10 @@ + args->input_files = true; + break; + ++ case 'a': ++ set_use_compress_program_option ("lzma"); ++ break; ++ + case 'A': + set_subcommand_option (CAT_SUBCOMMAND); + break; diff --git a/Build/source/utils/lzma-utils/extra/texinfo/texinfo-4.8-lzma.patch b/Build/source/utils/lzma-utils/extra/texinfo/texinfo-4.8-lzma.patch new file mode 100644 index 00000000000..b96469edea5 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/texinfo/texinfo-4.8-lzma.patch @@ -0,0 +1,53 @@ +# This patch has been put into the public domain +# by Per Øyvind Karlsen <pkarlsen@mandriva.com>. + +--- texinfo-4.8/util/install-info.c.lzma 2007-06-07 21:04:02.000000000 +0200 ++++ texinfo-4.8/util/install-info.c 2007-06-07 21:12:20.000000000 +0200 +@@ -338,6 +338,11 @@ strip_info_suffix (char *fname) + len -= 4; + ret[len] = 0; + } ++ else if (len > 5 && FILENAME_CMP (ret + len - 5, ".lzma") == 0) ++ { ++ len -= 5; ++ ret[len] =0; ++ } + + if (len > 5 && FILENAME_CMP (ret + len - 5, ".info") == 0) + { +@@ -556,6 +561,12 @@ open_possibly_compressed_file (char *fil + *opened_filename = concat (filename, ".bz2", ""); + f = fopen (*opened_filename, FOPEN_RBIN); + } ++ if (!f) ++ { ++ free (*opened_filename); ++ *opened_filename = concat (filename, ".lzma", ""); ++ f = fopen (*opened_filename, FOPEN_RBIN); ++ } + + #ifdef __MSDOS__ + if (!f) +@@ -624,6 +635,12 @@ open_possibly_compressed_file (char *fil + #else + *compression_program = "bzip"; + #endif ++ else if(data[9] == '0x00' && data[10] == '0x00' && data[11] == '0x00' & data[12] == '0x00') ++#ifndef STRIP_DOT_EXE ++ *compression_program = "lzma.exe"; ++#else ++ *compression_program = "lzma"; ++#endif + else + *compression_program = NULL; + +--- texinfo-4.8/info/filesys.c.lzma 2004-07-30 19:17:40.000000000 +0200 ++++ texinfo-4.8/info/filesys.c 2007-06-07 21:21:49.000000000 +0200 +@@ -56,6 +56,7 @@ static char *info_suffixes[] = { + static COMPRESSION_ALIST compress_suffixes[] = { + { ".gz", "gunzip" }, + { ".bz2", "bunzip2" }, ++ { ".lzma", "unlzma" }, + { ".z", "gunzip" }, + { ".Z", "uncompress" }, + { ".Y", "unyabba" }, |