	p7zip 4.20
	==========

Homepage : http://p7zip.sourceforge.net/

p7zip is a port of the Windows programs 7z.exe and 7za.exe provided by 7-zip.

7-zip is a file archiver with the highest compression ratio.
Homepage : www.7-zip.org

7z uses plugins to handle archives.
7za is a stand-alone executable.
7za handles less archive formats than 7z.exe.


CAUTION :
---------

- FIRST : DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
  - 7-zip does not store the owner/group of the file

  On Linux/Unix, in order to backup directories you must use tar !
  to backup a directory  : tar cf - directory | 7za a -si directory.tar.7z
  to restore your backup : 7za x -so directory.tar.7z | tar xf -

- if you want to send files and directories (not the owner of file)
  to others Unix/MacOS/Windows users, you can use the 7-zip format.

  example : 7za a directory.7z  directory

  do not use "-r" because this flag does not do what you think
  do not use directory/* because of ".*" files
   (example : "directory/*" does not match "directory/.profile")


BUILD :
-------

  If you have downloaded the "bin" package,
	use directly the program bin/7za.
	(tested on Redhat 9.0, Fedora 2, Mandrake 10.0, Debian 3.0)
	As the program is statically linked, its should
	run on many x86 linux.

  If you have downloaded the "source" package,
	According to your OS, copy makefile.linux,
	makefile.freebsd, makefile.cygwin, ...
        over makefile.machine

	make clean : to clean all directories
	make       : to build bin/7za
	make SFX   : to build bin/7zCon.sfx (7za can now create SFX archive)
	make 7Z    : to build bin/7z and its plugins
	make all   : to build bin/7za, bin/7z (with its plugins) and bin/7zCon.sfx

  this procedure has been tested on :
   - x86 CPU :
	Linux - Redhat 9.0 Standart
	Linux - Fedora 2 (Redhat) (gcc 3.3.3 and gcc-3.4.1 with 
                stack-smashing protector from www.trl.ibm.com/projects/security/ssp/)
	Linux - Mandrake 10.0 Official
	Linux - Debian 3.0 Stable
	FreeBSD 5.2.1 (gcc 3.3.3)
	NetBSD 
	CYGWIN_NT-5.1 1.5.9(0.112/4/2) 2004-03-18 23:05 i686 Cygwin
	Solaris 9 (x86) with gcc 3.3.2

   - alpha CPU :
	Linux - Debian 3.0 (alpha) with gcc 2.95.4

   - AMD64 CPU :
	Linux - SuSE 8 ES (AMD64 Opteron) with gcc 3.2.2

   - sparc CPU :
	Solaris 8 (sparc) with gcc 2.95.2
	Solaris 9 (sparc) with gcc 3.3.2

   - powerpc CPU :
	MacOS X 10.1/darwin 5.5 with gcc 932.1 (gcc 2.95.2)


INSTALL :
---------

  method 1
  --------
  - edit install.sh to change DEST_BIN and DEST_SHARE
  - ./install.sh : to install
  Remark : you must be "root" to install 7za in the directory "/usr/bin"

  method 2
  --------
  - 7za is a stand-alone program, you can put this program where you want.
  example :  cp bin/7za /usr/local/bin/7za

  - 7z needs its plugins. You must copy the file 7z and the two directories
  Formats and Codecs in the same destination directory.

  - if you want to be able to create SFX archive, copy bin/7zCon.sfx
  to the directory where 7za or 7z can be found.

  

USAGE:
------
  Remark : you can replace 7za with 7z.

  7za t archive.7z  : tests files in the archive archive.7z
  7za l archive.7z  : lists all files from archive archive.7z
  7za x archive.7z  : extracts all files from archive archive.7z
                   to the current directory

  7za a archive.7z file1 fileN : add files to the archive archive.7z

  7za a archive.7z  dir1 :  add all files and subdirectories from directory "dir1" to archive archive.7z 

  CAUTION : do not use the flag "-r" unless you know what you are doing ...

  7za a -sfx archive.exe dir1 : add all files from directory "dir1" to SFX archive archive.exe 
  (Remark : SFX archive MUST end with ".exe")

  You can also add or extract files to/from .zip or .tar archives.
  You can also compress/uncompress .gz or .bz2 files.

  7za a -tzip   archive.zip file1
  7za a -ttar   archive.tar file1
  7za a -tgzip  file.gz     file
  7za a -tbzip2 archive.bz2 file

  You can use password for archives:
  7za a -pmy_password archive.7z  dir1

  For more, see the documentation of 7za.exe in DOCS/MANUAL directory
  7za a -t7z  -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z  dir1 :
      adds all files from directory "dir1" to archive archive.7z
      using "ultra settings".
      -t7z     : 7z archive
      -m0=lzma : lzma method
      -mx=9    : level of compression = 9 (Ultra)
      -mfb=64  : number of fast bytes for LZMA = 64
      -md=32m  : dictionary size = 32 megabytes
      -ms=on   : solid archive = on

LIMITATIONS from 7-zip :
------------------------

  - does not support uid/gid or Unix file access permissions
  for the .tar format (so, use tar on Unix)

  - SFX archive MUST end with ".exe"

LIMITATIONS for Unix/MacOS X version only :
------------------------------------------

  - can handle properly UNICODE filenames only if the environment is UTF-8.
  Example : export LANG=en_US.UTF-8 ; unset LC_CTYPE
  Remark  : see the possible values for LANG in the directory 
            - /usr/lib/locale   : Fedora 2 / Solaris 8
            - /usr/share/locale : OpenBSD / Debian / FreeBSD / MacOS X / Mandrake 10.1 / NetBSD
  p7zip relies on LC_CTYPE and then on LANG to convert name to/from UNICODE.
  the command "locale" should display these environment variables.
  you can also do "echo $LC_CTYPE" and "echo $LANG".

  If you do not plan to export your archive, you can use the flag "-no-utf16".
  Usage :
    7za a -no-utf16 archive.7z dirOrFile1 ... dirOrFileN
    7za t -no-utf16 archive.7z
    7za l -no-utf16 archive.7z
    7za x -no-utf16 archive.7z
 
 
  - ignores Windows file access permissions (files are created with default permissions)

  see also TODO file.

DEVELOPPER CORNER:
------------------

  - WaitForMultipleObject has no equivalence on Unix.
  - Events don't exist.
  - sizeof(wchar_t) = 4 with GCC (2 with MS VC++)
  - "FIXME" in source code indicates that you should add codes
    to better handle all cases.

  - "FIXED" in source code indicates that the original code has been
    changed to work in Unix environment.

  see also TODO file.
