7z License
7z License
01 Sources
-------------------
License Info
------------
In brief it means:
1) You can compile and use compiled files under GNU LGPL rules, since
unRAR license almost has no restrictions for compiled files.
You can link these compiled files to LGPL programs.
2) You can fix bugs in source code and use compiled fixed version.
3) You can not use unRAR sources to re-create the RAR compression algorithm.
LZMA SDK
--------
To compile the sources to Windows binaries you need Visual Studio compiler and/or
Windows SDK.
You can use latest Windows Studio 2017/2019/2022 to compile binaries for x86, x64,
arm64 and arm platforms.
Also you can use old compilers for some platforms:
x86 : Visual C++ 6.0 with Platform SDK
x64 : Windows Server 2003 R2 Platform SDK
ia64 (itanium) : Windows Server 2003 R2 Platform SDK
arm for Windows CE : Standard SDK for Windows CE 5.0
If you use MSVC6, specify also Platform SDK directories at top of directories
lists:
Tools / Options / Directories
- Include files
- Library files
The dsp file compiling can be used for development and debug purposes.
All final 7-Zip binaries are compiled via makefiles, that provide best
optimization options.
PLATFORM
with possible values: x64, x86, arm64, arm, ia64
OLD_COMPILER
for old VC compiler, like MSCV 6.0.
MY_DYNAMIC_LINK
for dynamic linking to the run-time library (msvcrt.dll).
The default makefile option is static linking to the run-time library.
There are several options to compile 7-Zip with different compilers: gcc and clang.
Also 7-Zip code contains two versions for some parts of code: in C and in
Assembeler.
So if you compile the version with Assembeler code, you will get faster 7-Zip
binary.
7-Zip's assembler code uses the following syntax for different platforms:
At first you must change the current folder to folder that contains `makefile.gcc`:
cd CPP/7zip/Bundles/Alone2
make -j -f makefile.gcc
Also there are additional "*.mak" files in folder "CPP/7zip/" that can be used to
compile
7-Zip binaries with optimized code and optimzing options.
Also you can change some compiler options in the "mak" files:
cmpl_gcc.mak
var_gcc.mak
warn_gcc.mak
USE_JWASM=1
use JWasm assembler instead of Asmc.
Note that JWasm doesn't support AES instructions. So AES code from C version
AesOpt.c
will be used instead of assembler code from AesOpt.asm.
DISABLE_RAR=1
removes whole RAR related code from compilation.
DISABLE_RAR_COMPRESS=1
removes "not fully free" code of RAR decompression codecs from compilation.
RAR decompression codecs in 7-Zip code has some additional license restrictions,
that can be treated as not fully compatible with free-software licenses.
DISABLE_RAR_COMPRESS=1 allows to exclude such "not-fully-free" RAR code from
compilation.
if DISABLE_RAR_COMPRESS=1 is specified, 7-zip will not be able to decompress files
from rar archives, but 7-zip still will be able to open rar archives to get list of
2) 7-Zip for Linux/macOS - this package - it's new code with all changes from
latest 7-Zip for Windows.
Notes:
------
7-Zip consists of COM modules (DLL files).
But 7-Zip doesn't use standard COM interfaces for creating objects.
Look at
7zip\UI\Client7z folder for example of using DLL files of 7-Zip.
Some DLL files can use other DLL files from 7-Zip.
If you don't like it, you must use standalone version of DLL.
To compile standalone version of DLL you must include all used parts
to project and define some defs.
For example, 7zip\Bundles\Format7z is a standalone version of 7z.dll
that works with 7z format. So you can use such DLL in your project
without additional DLL files.
DOC Documentation
---
readme.txt - Readme file
src-history.txt - Sources history
7zC.txt - 7z ANSI-C Decoder description
7zFormat.txt - 7z format description
Methods.txt - Compression method IDs
lzma.txt - LZMA compression description
License.txt - license information
copying.txt - GNU LGPL license
unRarLicense.txt - License for unRAR part of source code
7zip.wxs - installer script for WIX
7zip.hhp - html help project file
Asm - Source code in Assembler : optimized code for CRC, SHA, AES, LZMA decoding.
C - Source code in C
7zip
UI
---
Igor Pavlov
http://www.7-zip.org