summaryrefslogtreecommitdiff
path: root/Build/source/utils/lzma-utils/extra
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-01-06 16:16:41 +0000
committerNorbert Preining <preining@logic.at>2008-01-06 16:16:41 +0000
commit6c31deb575708d803d45bd824f6e947d69ff7b34 (patch)
treecae988d97939a193eaae9b776f4e8849823261be /Build/source/utils/lzma-utils/extra
parent671de1e35391acc8a31f65bae5fb6f0bba7e3260 (diff)
add new lzma-utils 4.32.4
git-svn-id: svn://tug.org/texlive/trunk@6053 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/lzma-utils/extra')
-rw-r--r--Build/source/utils/lzma-utils/extra/README2
-rw-r--r--Build/source/utils/lzma-utils/extra/less/lesspipe-1.53-lzma.patch33
-rw-r--r--Build/source/utils/lzma-utils/extra/magic/lzma.magic15
-rw-r--r--Build/source/utils/lzma-utils/extra/man/man-1.6e-lzma.patch78
-rw-r--r--Build/source/utils/lzma-utils/extra/mc/mc-4.6.1.lzma.patch222
-rw-r--r--Build/source/utils/lzma-utils/extra/scanlzma/scanlzma.c85
-rw-r--r--Build/source/utils/lzma-utils/extra/tar/tar-1.15.1.patch70
-rw-r--r--Build/source/utils/lzma-utils/extra/tar/tar-1.18.patch72
-rw-r--r--Build/source/utils/lzma-utils/extra/texinfo/texinfo-4.8-lzma.patch53
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" },