The compression package "zlib" is part of the zip directory. The original tar 
file can be downloaded from : http://www.zlib.org 

Only the useful code has been extracted from this tar file. It consists of: 

 zip/inc:
   crc32.h deflate.h gzguts.h inffast.h inffixed.h inflate.h
   inftrees.h trees.h zconf.h zlib.h zutil.h

 zip/src:
   adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c
   gzwrite.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c
   zutil.c

To put a new zlib version in ROOT, all these files must be replaced
and zconf.h needs to be edited to activate unistd.h when not on Win32.

The zlib version number can be found in zip/inc/zlib.h.
The current zlib is 1.2.3.

zlib is now used in TPDF to compress the "stream" part of PDF files.

The ROOT compress functions R__zip and R__unzip have also been modified
in order to use zlib. Some performance tests show very different results
depending on the machine configuration and compiler.
see two results below (the right column indicates the percentage
of gain (or loss) when using the new zlib.
The new zlib seems to slower when writing and faster when reading.

On Linux RH7.3 gcc3.2.3 Pentium IV 2.4 GHz
==========================================
                          oldzlib            zlib 1.2.1   gain(+)/loss(-)
Event 1000 1 0   1         11.59s             11.46s         + 1.12
Event 1000 1 0  20          3.83s              3.31s         +13.57
Event 1000 1 99  1         10.44s             10.98s         - 5.17
Event 1000 1 99 20          3.57s              3.17s         +11.20
stress -b 30               13.01s             12.35s         + 5.07
stress -b 1000             61.67s             58.38s         + 5.33
bench                     151.99s            151.56s         + 0.28
stressLinear               35.87s             35.77s         + 0.28

On windows VC++7.1 IBM R40 Pentium M 1.5Ghz
===========================================
                          oldzlib            zlib 1.2.1   gain(+)/loss(-)
Event 1000 1 0   1          7.53s              8.67s         -15.14
Event 1000 1 0  20          2.43s              2.30s         + 5.35
Event 1000 1 99  1          6.67s              8.76s         -31.33
Event 1000 1 99 20          2.35s              2.22s         + 5.55
stress -b 30                9.23s              9.52s         - 3.14
stress -b 1000             42.13s             47.91s         -13.72
bench                     112.53s            118.89s         - 5.65
stressLinear               37.44s             37.08s         + 0.96

To activate the new zlib it is enough to set Root.ZipMode = 1
in the system.rootrc file.
When setting Root.ZipMode to 1 (or 0) it is possible to read files
written with the old zip function.
Files written with Root.ZipMode=1 can only be read by versions
of Root >= 4.02/00

