| 1 | |
| 2 | v1.1.2: |
| 3 | * fix memory UB in libsais |
| 4 | * restructure src/cm.c |
| 5 | * block size check in src/libbz3.c |
| 6 | * fix shift UB in lzp |
| 7 | * -h/-v CLI switches |
| 8 | * change maximum block size to ~512M |
| 9 | |
| 10 | v1.1.3: |
| 11 | * fix a serious stdin/stdout CRLF bug on Windows that corrupted the data. |
| 12 | * imply `-c` when a stream isn't opened thus preventing potential UB. |
| 13 | * bzip3 file format documentation. |
| 14 | * increase the maximum amount of parallel workers to 24. |
| 15 | * prevent accidentally overwriting output; add the `-f` command-line flag. |
| 16 | |
| 17 | v1.1.4: |
| 18 | * increase the maximum allowed amount of parallel workers to 64. |
| 19 | * clean up the cm code |
| 20 | * set up pkg-config support |
| 21 | * CLI robustness improvements |
| 22 | |
| 23 | v1.1.5: |
| 24 | * rework the argument parsing schema to resemble UNIX utilities more. |
| 25 | * make compression the default action |
| 26 | * replace -v with -V for version information |
| 27 | * manual pages |
| 28 | * bz3cat, bz3more, bz3less, bz3grep, unbzip3 utilities |
| 29 | * disable architecture-specific optimisations in github release builds |
| 30 | |
| 31 | v1.1.6: |
| 32 | * fixed tickets: #53, #50, #45, #46 (portability issues & a verbatim block |
| 33 | decompression diagnostic issue) |
| 34 | * package unbzip3 manpage |
| 35 | * flockfile/funlockfile calls for WIN32 |
| 36 | |
| 37 | v1.1.7: |
| 38 | * rename unbzip3 as bunzip3 for bzip2/gzip/lzip/... compatibility. |
| 39 | * high level api for libbzip3: `bz3_bound`, `bz3_compress` and `bz3_decompress`. |
| 40 | * more robust decompression; safety checks for the RLE and LZP steps. |
| 41 | * documentation for the frame format. |
| 42 | * examples of bzip3 API usage, AFL fuzzing instructions. |
| 43 | * `bz3_version` API function |
| 44 | * more robust I/O handling and fsync (linux only) calls to ensure a correct I/O transaction. |
| 45 | |
| 46 | v1.1.8: |
| 47 | * add the Apache-2.0 license of `libsais`. |
| 48 | |
| 49 | v1.2.0: |
| 50 | * alias `-z` to `-e` (compatibility with bzip2). |
| 51 | * version bzip3 library. |
| 52 | * dynamically link library to the tool (eliminating the libbz3.c duplication in tool and library). |
| 53 | * add verbose output (via `-v`). |
| 54 | * add version information to the manual pages. |
| 55 | * set `rpath` in the Makefile to solve an issue with /usr/local/lib not being present in the dynamic linker search path. |
| 56 | |
| 57 | v1.2.1: |
| 58 | * fix a LZP decompression bug when a match occurred before block boundary. |
| 59 | * don't set rpath in the Makefile |
| 60 | * fix build warnings from -v |
| 61 | * add `most` support |
| 62 | * windows binary mode fix |
| 63 | |
| 64 | v1.2.2: |
| 65 | * safety fixes for the LZP pass. |
| 66 | * add the `-k` compatibility flag. |
| 67 | * use `env` to detect the shell in bzip3 utility scripts |
| 68 | * update libtool to v2.4.7 |
| 69 | |
| 70 | v1.2.3: |
| 71 | * fix an important regression introduced in pull request #55 regarding I/O in main.c |
| 72 | * slightly enlargen the SAIS buffer beyond the documented recommended size to avoid some memory errors in libsais |
| 73 | * properly handle a scenario where the individual block original size is larger than the block size declared in the file header |
| 74 | * further security fixes: strict check for size_src overflow of badly bounded b1, store mode: checking for truncation |
| 75 | mRLE: decoding bounds, bz3_bound in bz3_decompress |
| 76 | |
| 77 | v1.3.0: |
| 78 | * resolve alignment issues on SPARC/s390x. |
| 79 | * fix the security issues arising from libsais. |
| 80 | * due to these changes, updating is strongly encouraged. |
| 81 | |
| 82 | v1.3.1: |
| 83 | * Verbose mode in the tool now prints the extra statistics also during testing, not just encoding or decoding. |
| 84 | * Update the CI pipeline to Debian Bullseye. |
| 85 | * Fix a minor issue with side effects in RLE decoding. |
| 86 | * Explicitly disable `-march=native` for releases. |
| 87 | * Fix a bug in the tool reported by Adam Borowski regarding -t/-d input buffer checks. |
| 88 | * Fix an issue with the current input offset not being taken into account in bz3_compress. |
| 89 | |
| 90 | v1.3.2: |
| 91 | * Add the `-r` option ("recovery"). If a file fails to decompress fully (e.g. due to a CRC error), ignore it and write the |
| 92 | file regardless. |
| 93 | * Add preliminary CMake support. |
| 94 | * Fix the include guard macro name to work with pedantic compilers. |
| 95 | * Fix the shift direction in the crc32 check function. Because of a programming mistake, v1.3.0 and v1.3.1 |
| 96 | introduced a breaking change to the CRC calculation code. The change has been reverted in this release. |
| 97 | While the archives created with these versions of bzip3 will fail to regularly decompress due to a checksum |
| 98 | error, using the recovery option as `bzip3 -rd` to decompress will |
| 99 | restore their original contents. |
| 100 | |
| 101 | v1.4.0: |
| 102 | * Wrap up all the changes from v1.3; bump up the minor version release. |
| 103 | * Various changes for CMake; bundle CMake files with the autotools dist tarball. |
| 104 | * Support for linking with C++. |
| 105 | |
| 106 | v1.5.0: |
| 107 | * Add `--rm` option that removes the original files after successful operation. |
| 108 | * `bz3grep`: display the correct program name on invalid invocation. |
| 109 | * Improve the docstrings regarding the use of `bz3_bound` with block decompression. |
| 110 | * Tighter LZP/RLE bounds in the decoder => slightly improved compression with no |
| 111 | observable format change. |
| 112 | * Improve the documentation and available tooling for fuzzing. |
| 113 | * Rewritten the file format documentation. |
| 114 | * Add the `bz3_min_memory_needed` API. |
| 115 | * BREAKING: Change the signature of `bz3_decode_block` and `bz3_encode_block`. |
| 116 | Refer to the documentation for the new usage. This version is not ABI-compatible |
| 117 | with the previous versions of the package. |
| 118 | * Fix: the file `$dir.bz3` being created when invoked as `bzip3 -e $dir` where |
| 119 | `$dir` is a directory. |
| 120 | |
| 121 | v1.5.1: |
| 122 | * Replace getopt-based parsing with `yarg`. |
| 123 | * Change the soname to indicate a difference in the ABI. |
| 124 | |
| 125 | v1.5.2: |
| 126 | * batch mode: fall back to stdin input with no auxiliary arguments. |
| 127 | * bz3_compress (API): better bound estimation |
| 128 | * yarg: oom handling; stop relying on (GNU) asprintf, use the baked in variant. |
| 129 | * pkg-config: Add License variable |
| 130 | * bz3_decompress (API): fix a memory leak |
| 131 | |
| 132 | v1.5.3: |
| 133 | * fix oom handling in main.c and yarg.h. |
| 134 | * cmake build fixes for non-unix platforms: |
| 135 | * disable pthreads by default on windows & !mingw |
| 136 | * fix handling of dlls on windows. |
| 137 | * add missing find_dependency call to ensure Threads::threads is present in downstream find_package callers. |
| 138 | * the project moved to https://github.com/iczelia/bzip3. |