I thought of another way to add support for --rsyncable to GNU gzip. We could use pigz's implementation <http://zlib.net/pigz/>.
pigz has many improvements over gzip. In particular, its --rsyncable implementation appears to be better than the Debian / Fedora implementation of gzip --rsyncable. A downside is that pigz does not generate output that is byte-for-byte the same as gzip output. The output is compatible with gzip, in the sense that gzip can read pigz output and generate the identical uncompressed version, and likewise for pigz reading gzip output; but the point is that "gzip foo" and "pigz foo" generate compressed files that differ slightly. Another downside is that, in my tests, pigz -9 generates output that's a bit longer than gzip's. I'm not sure why this should be, but there it is, at least with pigz 2.3: $ pigz -p 1 -9 -n -T <pigz.c >pigz.c.pigz $ gzip -9 -n <pigz.c >pigz.c.gzip $ ls -l pigz.c.???? -rw-r--r--. 1 eggert eggert 38263 Jun 12 12:27 pigz.c.gzip -rw-r--r--. 1 eggert eggert 38354 Jun 12 12:26 pigz.c.pigz Would this be a major concern? If so, we could work around this problem, by keeping the current gzip implementation unless the user specifies options that only pigz supports. These new options would include --rsyncable and --processes. But I'd rather get rid of the current gzip implmementation almost entirely, and simply substitute pigz's, as that should simplify maintenance for us.