OLD | NEW |
1 Name: BSDiff | 1 Name: BSDiff |
2 URL: http://www.daemonology.net/bsdiff/ | 2 URL: http://www.daemonology.net/bsdiff/ |
3 Source URL: http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz | 3 Source URL: http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz |
4 Version: 4.3 | 4 Version: 4.3 |
5 License: BSD | 5 License: BSD |
6 License File: LICENSE | 6 License File: LICENSE |
7 | 7 |
8 Description: | 8 Description: |
9 Binary diff/patch utility. There are other copies of BSDiff in the Chromium | 9 Binary diff/patch utility. There are other copies of BSDiff in the Chromium |
10 repository, but they're all different. The other copies are based on Mozilla's | 10 repository, but they're all different. The other copies are based on Mozilla's |
11 fork of BSDiff, which serves a different set of needs. | 11 fork of BSDiff, which serves a different set of needs. Relative to upstream |
| 12 BSDiff, Mozilla's version removes all compression, adds a CRC-32 check of the |
| 13 original file, replaces the custom off_t encoding with signed 32-bit |
| 14 big-endian integers, and contains a total reorganization of the code. The |
| 15 version in this directory contains no Mozilla code and builds directly on the |
| 16 upstream version. It retains and enhances the compression, uses SHA1 to check |
| 17 both the original file and the patched file, uses a different off_t encoding |
| 18 more compatible with the original, and involves minimal changes to the |
| 19 original code. |
| 20 |
| 21 Theoretically, a hash of the original file should be enough to guarantee data |
| 22 integrity, but in the event of algorithmic or programming bugs or other |
| 23 unexpected conditions, a hash of the patched file provides a better guarantee. |
| 24 This implementation now checks the integrity of both the original and the |
| 25 patched files. SHA1, rather than CRC-32, is used to minimize the likelihood |
| 26 that an original file that has been intentionally tampered with will produce |
| 27 an altered patched file without being detected. |
12 | 28 |
13 Local Modifications: | 29 Local Modifications: |
14 - Added LICENSE file by copying the license block from bsdiff.c and bspatch.c. | 30 - Added LICENSE file by copying the license block from bsdiff.c and |
| 31 bspatch.c. |
| 32 - The following modifications are relative to the original unpatched version, |
| 33 checked in to the Chromium repository at r49280. |
| 34 - Created goobsdiff.gyp for GYP build system integration. |
| 35 - Renamed bsdiff.c to goobsdiff.c and bspatch.c to goobspatch.c. |
| 36 - Added #include <sys/types.h> to goobspatch.c so that it compiles. (Oops!) |
| 37 - Changed the magic number in the header from BSDIFF40 to BSDIFF4G. |
| 38 - Expanded the header to include SHA1 hashes of the original and new files, |
| 39 and added hash checks to the patcher. |
| 40 - Expanded the header to include the lengths of the control, diff, and extra |
| 41 blocks in the patch file, and added patch file length validation to the |
| 42 patcher. |
| 43 - Replaced custom off_t encoding with signed 64-bit little-endian integers. |
| 44 - The control, diff, and extra blocks can be compressed with bzip2 or gzip, |
| 45 or left uncompressed, independently of one another, depending on which is |
| 46 smallest. This often results in a net reduction in patch size of about 3%. |
| 47 - Error messages in the patcher are slightly more descriptive. |
| 48 - The patcher treats a few more unexpected read cases as errors than it did |
| 49 previously. This will theoretically cause it to exit with an error instead |
| 50 of sitting in a busy loop or crashing when certain malformatted patch files |
| 51 are provided. |
OLD | NEW |