diff options
author | Reinhard Kotucha <reinhard.kotucha@web.de> | 2007-10-01 02:30:18 +0000 |
---|---|---|
committer | Reinhard Kotucha <reinhard.kotucha@web.de> | 2007-10-01 02:30:18 +0000 |
commit | 0e63127662c0de01c303110d17f1f398df26a6da (patch) | |
tree | e1f87ef24ac4ae086a9fe47525e47a92780820dd /Build/source/utils/lzma-utils/extra | |
parent | 093fcc55591976ccded1801969b0c0f4b1410c57 (diff) |
lzma-utils: added
git-svn-id: svn://tug.org/texlive/trunk@5072 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/lzma-utils/extra')
5 files changed, 513 insertions, 0 deletions
diff --git a/Build/source/utils/lzma-utils/extra/magic/README b/Build/source/utils/lzma-utils/extra/magic/README new file mode 100644 index 00000000000..7a6dbead8b2 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/magic/README @@ -0,0 +1,3 @@ +Don't use either of these magic files, they suffer from limitations of +the `file' command that doesn't allow matching non-contiguous byte +ranges unless you want it to give empty messages. :( 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..f35bfa4af50 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/magic/lzma.magic @@ -0,0 +1,206 @@ +# It was decided to use raw LZMA stream as the file format of LZMA +# compressed files. This was an unfortunate decision since the files do +# not have any magic first bytes. + +# LZMA files have no magic bytes. Add this to the very end of +# /etc/file/magic to prevent mismatches. +# +# Some assumptions are made that limit the matching: +# - The LZMA header has 64-bit value field for uncompressed size; +# these checks assume that the uncompressed size is less than +# 2^48 bytes (256 TiB). Fix this when files this big are common. ;-) +# - Only dictionary sizes 2^n where 0 <= n <= 28 are recognized. +# - File size should be checked, the minimum is 18 bytes. +# +# LZMA header structure (first 13 bytes): +# 0 LZMA properties, 0x00 - 0xE1 +# 1-4 Dictionary size (little endian) +# 5-12 Uncompressed size, filled with 0xFF if unknown (streamed data) +# +# This file is in the public domain. You can do whatever you want with it. + +# First byte is matched only here: +0 ubyte <0xE2 +# Dictionary size: +>1 lelong 0x00 LZMA encoded data, no dictionary +# Streamed or non-streamed and uncompressed size: +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +# The rest is mostly copypasting, only dictionary size varies. :-/ +>1 lelong 0x01 LZMA encoded data, 1-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x02 LZMA encoded data, 2-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x04 LZMA encoded data, 4-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x08 LZMA encoded data, 8-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x10 LZMA encoded data, 16-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x20 LZMA encoded data, 32-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x40 LZMA encoded data, 64-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x80 LZMA encoded data, 128-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x0100 LZMA encoded data, 256-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x0200 LZMA encoded data, 512-byte dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x0400 LZMA encoded data, 1 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x0800 LZMA encoded data, 2 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x1000 LZMA encoded data, 4 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x2000 LZMA encoded data, 8 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x4000 LZMA encoded data, 16 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x8000 LZMA encoded data, 32 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x010000 LZMA encoded data, 64 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x020000 LZMA encoded data, 128 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x040000 LZMA encoded data, 256 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x080000 LZMA encoded data, 512 KiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x100000 LZMA encoded data, 1 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x200000 LZMA encoded data, 2 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x400000 LZMA encoded data, 4 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x800000 LZMA encoded data, 8 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x01000000 LZMA encoded data, 16 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x02000000 LZMA encoded data, 32 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x04000000 LZMA encoded data, 64 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x08000000 LZMA encoded data, 128 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB +>1 lelong 0x10000000 LZMA encoded data, 256 MiB dictionary +>>5 string \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, streamed, uncompressed size unknown +>>5 string !\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \b, non-streamed, uncompressed size +>>>9 string \0\0\0\0 +>>>>5 lelong x %lu bytes +>>>9 string !\0\0\0\0 over 4 GiB diff --git a/Build/source/utils/lzma-utils/extra/magic/lzma_new.magic b/Build/source/utils/lzma-utils/extra/magic/lzma_new.magic new file mode 100644 index 00000000000..6388d9a7255 --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/magic/lzma_new.magic @@ -0,0 +1,16 @@ +# It was decided to use raw LZMA stream as the file format of LZMA +# compressed files. This was an unfortunate decision since the files do +# not have any magic first bytes. It is possible to make a good guess, +# but to prevent +# +# LZMA encoded data - http://tukaani.org/lzma/ +# This file is in the public domain. + +0 ubyte <0xE2 +>1 ulelong <0x10000001 +>>5 ustring \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF LZMA encoded data (streamed) +>>>1 ulelong x \b, %u-byte dictionary +>>9 ulelong 0 +>>>5 ulelong x LZMA encoded data (non-streamed) +>>>>1 ulelong x \b, %u-byte dictionary +>>>>>5 ulelong x \b, uncompressed size %u bytes 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/tar/tar_lzma.diff b/Build/source/utils/lzma-utils/extra/tar/tar_lzma.diff new file mode 100644 index 00000000000..76e55c39f1b --- /dev/null +++ b/Build/source/utils/lzma-utils/extra/tar/tar_lzma.diff @@ -0,0 +1,66 @@ +# Description +# +# This patch adds `-Y' and a long option equivalent `--lzma' +# to GNU tar 1.15.1. +# +# Changes +# +# 2005-05-06 - Initial version using lzmash wrapper script +# +# 2005-12-23 - Updated to use the new lzma command line tool which +# replaced the ugly 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,9 @@ + { ct_compress, "\037\235", 2, "compress", "-Z" }, + { ct_gzip, "\037\213", 2, "gzip", "-z" }, + { ct_bzip2, "BZh", 3, "bzip2", "-j" }, ++ /* The first bytes of a LZMA compressed file describe some compression ++ settings and thus vary. This handles the most common case: */ ++ { ct_lzma, "]\000\000",3, "lzma", "-Y" }, + }; + + #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", 'Y', 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 'Y': ++ set_use_compress_program_option ("lzma"); ++ break; ++ + case 'z': + set_use_compress_program_option ("gzip"); + break; |