1	p7zip 9.04
2	==========
3
4Homepage : http://p7zip.sourceforge.net/
5
6p7zip is a port of the Windows programs 7z.exe and 7za.exe provided by 7-zip.
7
87-zip is a file archiver with the highest compression ratio.
9Homepage : www.7-zip.org
10
11  7z uses plugins (7z.so and Codecs/Rar29.so) to handle archives.
12  7za is a stand-alone executable.
13  7za handles less archive formats than 7z.exe.
14  7zr is a light stand-alone executable that supports only 7z/LZMA/BCJ/BCJ2.
15
16NEW:
17  7zG : see GUI/readme.txt
18
19CAUTION :
20---------
21
22- FIRST : DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
23  - 7-zip does not store the owner/group of the file
24
25  On Linux/Unix, in order to backup directories you must use tar !
26  to backup a directory  : tar cf - directory | 7za a -si directory.tar.7z
27  to restore your backup : 7za x -so directory.tar.7z | tar xf -
28
29- if you want to send files and directories (not the owner of file)
30  to others Unix/MacOS/Windows users, you can use the 7-zip format.
31
32  example : 7za a directory.7z  directory
33
34  do not use "-r" because this flag does not do what you think
35  do not use directory/* because of ".*" files
36   (example : "directory/*" does not match "directory/.profile")
37
38
39BUILD :
40-------
41
42  If you have downloaded the "bin" package,
43	use directly the program bin/7za.
44	(tested on Redhat 9.0, Fedora 2, Mandrake 10.0, Debian 3.0)
45	As the program is statically linked, its should run on many x86 linux.
46
47  If you have downloaded the "source" package,
48
49	According to your OS, copy makefile.linux,
50	makefile.freebsd, makefile.cygwin, ...
51        over makefile.machine
52
53	If you want to make a parallel build : make -j4 -f makefile.parallel_jobs TARGET
54
55	make clean    : to clean all directories
56	make          : to build bin/7za
57	make sfx      : to build bin/7zCon.sfx (7za can now create SFX archive)
58	make 7z       : to build bin/7z and its plugins :
59                          - "bin/7z.so" (GNU LGPL + AES code license)
60                          - "bin/Codecs/Rar29.so" (GNU LGPL + unRAR restriction)
61	make 7zr      : to build bin/7zr
62	make all      : to build bin/7za and bin/7zCon.sfx
63	make all2     : to build bin/7za, bin/7z (with its plugins) and bin/7zCon.sfx
64	make all3     : to build bin/7za, bin/7z (with its plugins), bin/7zr and bin/7zCon.sfx
65	make test     : to test bin/7za (extracting, archiving, password ...)
66	make test_7z  : to test bin/7z  (extracting, archiving, password ...)
67	make test_7zr : to test bin/7zr (extracting, archiving, ...)
68
69	make 7zG      : to build bin/7zG and its plugins :
70                          - "bin/7z.so" (GNU LGPL + AES code license)
71                          - "bin/Codecs/Rar29.so" (GNU LGPL + unRAR restriction)
72	make test_7zG : to test bin/7zG (extracting, archiving, ...)
73
74
75  this procedure has been tested on :
76   - x86 CPU :
77	DOS   - (built with DJGPP, see http://blairdude.googlepages.com/p7zip )
78	Linux - Redhat 9.0 Standart
79	Linux - Fedora 2 (Redhat) (gcc 3.3.3 and gcc-3.4.1 with
80                stack-smashing protector from www.trl.ibm.com/projects/security/ssp/)
81	Linux - Mandrake 10.0 Official
82	Linux - Debian 3.0 Stable
83	Linux - Ubuntu 8.04
84	FreeBSD 5.2.1 (gcc 3.3.3)
85	MacOS 10.4.8
86	NetBSD
87	CYGWIN_NT-5.1 1.5.9(0.112/4/2) 2004-03-18 23:05 i686 Cygwin
88	Solaris  9 (x86) with gcc 3.3.2
89	Solaris 10 (x86)
90
91   - alpha CPU :
92	Linux - Debian 3.0 (alpha) with gcc 2.95.4
93
94   - AMD64 CPU :
95	Linux - SuSE 8 ES (AMD64 Opteron) with gcc 3.2.2
96	Linux - Fedora 4  (AMD64 Turion)  with gcc 4.0.1
97	Linux - Ubuntu 8.10
98
99   - Itanium CPU :
100        HP-UX B.11.31 U ia64 with aCC (HP C/aC++ B3910B A.06.14 [Feb 22 2007])
101
102   - s390x CPU :
103	Linux - SUSE Enterprise Linux 10 - with gcc 4.1.2
104	( only the 32bits built works, the 64bits built does not pass the tests )
105
106   - sparc CPU :
107	Solaris 8 (sparc) with gcc 2.95.2
108	Solaris 9 (sparc) with gcc 3.3.2
109
110   - powerpc CPU :
111	MacOS X 10.1/darwin 5.5 with gcc 932.1 (gcc 2.95.2)
112	MacOS X 10.3 with XCode 1.5
113
114   - openpower CPU :
115        Linux openpower-linux1 2.6.5-7.97-pseries64 (ppc64) with gcc 3.3.3
116
117   - IBM :
118	AIX 5.3 with gcc 4.1.0
119
120   - Tru64 :
121	OSF 5.1 with gcc 3.4.2
122
123   - PA-RISC :
124	HP-UX 11.11 with aCC (HP ANSI C++ B3910B A.03.73)
125	HP-UX 11.11 with gcc 3.4.2 (7za and 7zr : OK, 7z : failed because of a buggy gcc for HP-UX,
126                                    plugins don't work because C++ constructors are not called !)
127
128
129BUILD with cmake
130----------------
131  You can only build 7za.
132
133  cd CPP/7zip/CMAKE
134
135  edit generate.sh to choose your target
136
137  ./generate.sh
138
139  the cmake project for the target is in "CPP/7zip/CMAKE/Alone".
140
141  For the target "Unix Makefiles", use "make" to compile
142
143  For others target, use the IDE (CodeBlocks, KDevelop3, Eclipse CDT4)
144
145INSTALL :
146---------
147
148  method 1
149  --------
150  - edit install.sh to change DEST_HOME
151  - ./install.sh : to install
152  Remark : you must be "root" to install 7za in the directory "/usr/local"
153
154  method 2
155  --------
156  - 7za is a stand-alone program, you can put this program where you want.
157  example :  cp bin/7za /usr/local/bin/7za
158
159  - 7z needs its plugins. You must copy the file 7z, 7z.so
160    and the directory Codecs in the same destination directory.
161
162  - if you want to be able to create SFX archive, copy bin/7zCon.sfx
163  to the directory where 7za or 7z can be found.
164
165
166USAGE:
167------
168  Remark : you can replace 7za with 7z.
169
170  7za t archive.7z  : tests files in the archive archive.7z
171  7za l archive.7z  : lists all files from archive archive.7z
172  7za x archive.7z  : extracts all files from archive archive.7z
173                   to the current directory
174
175  7za a archive.7z file1 fileN : add files to the archive archive.7z
176
177  7za a archive.7z  dir1 :  add all files and subdirectories from directory "dir1" to archive archive.7z
178
179  CAUTION : do not use the flag "-r" unless you know what you are doing ...
180
181  7za a -sfx archive.exe dir1 : add all files from directory "dir1" to SFX archive archive.exe
182  (Remark : SFX archive MUST end with ".exe")
183
184  You can also add or extract files to/from .zip or .tar archives.
185  You can also compress/uncompress .gz or .bz2 files.
186
187  7za a -tzip   archive.zip file file2 file3
188  7za a -ttar   archive.tar file
189  7za a -tgzip  file.gz     file
190  7za a -tbzip2 archive.bz2 file
191
192  You can use password for archives:
193  7za a -pmy_password archive.7z  dir1
194
195  For .7z archive only, you can enable archive header encryption with "-mhe"
196  7za a -mhe=on -pmy_password archive.7z  dir1
197
198  For more, see the documentation of 7za.exe in DOCS/MANUAL directory
199  7za a -t7z  -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z  dir1
200      adds all files from directory "dir1" to archive archive.7z
201      using "ultra settings".
202      -t7z     : 7z archive
203      -m0=lzma : lzma method
204      -mx=9    : level of compression = 9 (Ultra)
205      -mfb=64  : number of fast bytes for LZMA = 64
206      -md=32m  : dictionary size = 32 megabytes
207      -ms=on   : solid archive = on
208
209  To use the new codec "lzma2"
210  7za a -m0=lzma2 archive.7z directory
211
212
213BENCHMARKS :
214------------
215  7za b : bench LZMA codec
216  7z b -mm=crc : make internal crc check.
217
218LICENSE :
219---------
220  please read DOCS/License.txt.
221
222LIMITATIONS from 7-zip :
223------------------------
224
225  - does not support uid/gid for the .tar format (so, use tar on Unix)
226
227LIMITATIONS for Unix version only :
228-----------------------------------
229
230  - can handle properly UNICODE filenames only if the environment is UTF-8.
231  Example : export LANG=en_US.UTF-8 ; unset LC_CTYPE
232  Remark  : see the possible values for LANG in the directory
233            - /usr/lib/locale   : Fedora 2 / Solaris 8
234            - /usr/share/locale : OpenBSD / Debian / FreeBSD / MacOS X / Mandrake 10.1 / NetBSD
235
236	On Linux, to display the available locales : locale -a
237
238  p7zip relies on LC_CTYPE and then on LANG to convert name to/from UNICODE.
239  the command "locale" should display these environment variables.
240  you can also do "echo $LC_CTYPE" and "echo $LANG".
241
242  If you do not plan to export your archive, you can use the flag "-no-utf16".
243  Usage :
244    7za a -no-utf16 archive.7z dirOrFile1 ... dirOrFileN
245    7za t -no-utf16 archive.7z
246    7za l -no-utf16 archive.7z
247    7za x -no-utf16 archive.7z
248
249  - ignores Windows file access permissions (files are created with default permissions)
250
251  see also TODO file.
252
253DEVELOPPER CORNER:
254------------------
255
256  - WaitForMultipleObject has no equivalence on Unix.
257  - Events don't exist.
258  - sizeof(wchar_t) = 4 with GCC (2 with MS VC++)
259  - "FIXME" in source code indicates that you should add codes to better handle all cases.
260
261  - "FIXED" in source code indicates that the original code has been changed to work in Unix environment.
262
263  see also TODO file.
264