4
LZMA SDK Copyright (C) 1999-2008 Igor Pavlov
6
4
LZMA SDK provides the documentation, samples, header files, libraries,
7
5
and tools you need to develop applications that use LZMA compression.
23
LZMA SDK is available under any of the following licenses:
25
1) GNU Lesser General Public License (GNU LGPL)
26
2) Common Public License (CPL)
27
3) Common Development and Distribution License (CDDL) Version 1.0
28
4) Simplified license for unmodified code (read SPECIAL EXCEPTION)
30
It means that you can select one of these options and follow rules of that license.
33
1,2,3) GNU LGPL, CPL and CDDL licenses are classified as
34
- "Free software licenses" at http://www.gnu.org/
35
- "OSI-approved" at http://www.opensource.org/
37
4) Simplified license for unmodified code (read SPECIAL EXCEPTION)
39
Igor Pavlov, as the author of this code, expressly permits you
40
to statically or dynamically link your code (or bind by name)
41
to the files from LZMA SDK.
43
SPECIAL EXCEPTION allows you to use LZMA SDK in applications with closed code,
44
while you keep LZMA SDK code unmodified.
47
SPECIAL EXCEPTION #2: Igor Pavlov, as the author of this code, expressly permits
48
you to use this code under the same terms and conditions contained in the License
49
Agreement you have for any previous version of LZMA SDK developed by Igor Pavlov.
51
SPECIAL EXCEPTION #2 allows owners of proprietary licenses to use latest version
52
of LZMA SDK as update for previous versions.
54
Some files in LZMA SDK are placed in public domain.
55
Some of these "public domain" files:
63
So you can change them as you want and use "SPECIAL EXCEPTION"
64
for other unmodified files. For example, you can edit C\Types.h to solve some
65
compatibility problems with your compiler.
70
You should have received a copy of the GNU Lesser General Public
71
License along with this library; if not, write to the Free Software
72
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
74
You should have received a copy of the Common Public License
75
along with this library.
77
You should have received a copy of the Common Development and Distribution
78
License Version 1.0 along with this library.
21
LZMA SDK is written and placed in the public domain by Igor Pavlov.
107
50
methods.txt - Compression method IDs for .7z
108
51
lzma.exe - Compiled file->file LZMA encoder/decoder for Windows
109
52
history.txt - history of the LZMA SDK
110
LGPL.txt - GNU Lesser General Public License
111
CPL.html - Common Public License
112
CDDL.html - Common Development and Distribution License (CDDL)
115
55
Source code structure
473
413
- LZMA dictionary (dictionary size is encoded in LZMA properties header)
475
415
1) read LZMA properties (5 bytes) and uncompressed size (8 bytes, little-endian) to header:
476
unsigned char header[LZMA_PROPERTIES_SIZE + 8];
416
unsigned char header[LZMA_PROPS_SIZE + 8];
477
417
ReadFile(inFile, header, sizeof(header)
479
419
2) Allocate CLzmaDec structures (state + dictionary) using LZMA properties