summaryrefslogtreecommitdiffstats
path: root/zlib/README.rsync
blob: 5440bfde0353ded33e94978e5c156dcc6b4283fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
READ THIS BEFORE TRYING TO DYNAMICALLY LINK RSYNC AND ZLIB!

zlib has been adapted slightly for use in rsync. Please don't bother
the zlib authors with problems related to the use of zlib in rsync as
any bugs are likely to be our fault and not theirs.

Specific changes that have been made to zlib for rsync include:

- add Z_INSERT_ONLY to allow for efficient history updating without
  actually emitting any data. This is used to compress the matched
  blocks that don't cross the wire, which gives better compression
  ratios on the literal data.

- fixed a number of minor compilation issues. (redefinition of MAX and
  other such trivial things)

- include rsync.h to ensure that we get a consistent set of includes
  for all C code in rsync and to take advantage of autoconf

As a result of the first item, the streams from rsync's version of
zlib are *not compatible* with those produced by the upstream version
of rsync.  In other words, if you link rsync against your system's
copy, it will not be able to interoperate with any other version if
the -z option is used.  (Sorry.  Sometimes standard is better than
better.)

The rsync maintainers hope to fix this problem in the future by either
merging our changes into the upstream version, or backing them out of
rsync in a way that preserves wire compatibility.  But in the meantime
this version must be maintained in parallel.