This release provides a fix for cases where automatic image offset detection could fail to work correctly as well as further size optimizations of the release binaries. The dwarfs-universal binary now uses LibreSSL's libcrypto, whereas the binaries from the release tarball use OpenSSL's libcrypto. This is a trade-off favoring size for the universal binary and speed for the "regular" binaries. Note, however, that this will be imperceptible unless you use dwarfsck with either --check-integrity or --checksum.
| v0.11.3 | v0.12.0 | v0.12.1 | v0.12.2 | v0.12.3 | |
|---|---|---|---|---|---|
| Linux x86_64 universal binary | 5,319,916 | 2,833,280 | 2,903,624 | 2,968,252 | 2,215,464 |
| Linux aarch64 universal binary | 4,637,312 | 2,725,864 | 2,588,924 | 2,636,912 | 2,180,928 |
| Linux x86_64 fuse-extract binary (jemalloc) | - | 1,183,752 | - | 906,016 | 845,984 |
| Linux aarch64 fuse-extract binary (jemalloc) | - | 1,188,760 | - | 913,260 | 885,416 |
| Linux x86_64 fuse-extract binary (mimalloc) | - | - | 1,075,536 | 835,500 | 774,804 |
| Linux aarch64 fuse-extract binary (mimalloc) | - | - | 1,059,588 | 839,740 | 811,156 |
| Linux x86_64 binary tarball | 7,736,712 | 3,888,104 | 3,698,356 | 3,703,712 | 3,600,544 |
| Linux aarch64 binary tarball | 6,791,424 | 3,497,140 | 3,271,584 | 3,296,380 | 3,258,856 |
Bugfixes
- Automatic image offset detection (for images using a custom header) did not work correctly if the header contained a string that would be identified as the start of a v1 section header (these were only used before dwarfs-0.3.0). If there was either
"DWARFS\x02\x00"or"DWARFS\x02\x01"in the header, offset detection would fail. The check has been modified to peek further into the data and ensure this really is a v1 section header, and also checking if the next section header position can be derived from the length field. It is still possible to construct a file system image where offset detection will ultimately fail, but it is much less likely with the change.
Build
- The build process for the release binaries has been further tweaked to reduce binary size. The
dwarfs-fuse-extractbinary now again supports extracting files by pattern; I didn't realize that this was actually a widely used feature before dropping it in the last release.dwarfs-universalis now linked against LibreSSL'slibcryptoinstead of OpenSSL's. This significantly reduces the size at the expense slightly slower cryptographic hash functions. However, this will likely only be perceivable when using--tool=dwarfsckwith either--check-integrityor--checksum. The binaries from the release tarballs are still linked againstlibcryptofrom OpenSSL.
Full Changelog: v0.12.2...v0.12.3
SHA-256 Checksums
7e2c1d6f4bf8f19cedc8f050f405906e269d96197e238226f334c7ae2fb1f489 dwarfs-0.12.3-Linux-aarch64.tar.xz
9a2590deb3069d7e677604304d94226fa10b7385ccee46ba8c66f4e6c902168c dwarfs-0.12.3-Linux-x86_64.tar.xz
bd2d54178c59e229f2280eea747479a569e6f6d38340e90360220d00988f5589 dwarfs-0.12.3.tar.xz
acbfbf5a48a8fa53dd6a39d7450c8d6849ef99d305563461596ac5c52767387a dwarfs-0.12.3-Windows-AMD64.7z
16a450e6996ab59b89f69b0e30dab508d1e88c526586df5db5b7a43ede252398 dwarfs-fuse-extract-0.12.3-Linux-aarch64
e658a0513bc9168ff6f366b2dc19f6360408663fc2f0015653912075526c05a2 dwarfs-fuse-extract-0.12.3-Linux-x86_64
755599e8b52e36a87d6b90e860f38c7cf3c71bcebd8f63e11834cca0fbed9708 dwarfs-fuse-extract-mimalloc-0.12.3-Linux-aarch64
372c3090fd966e881978aaa7ccfcbb1476cf16a3cc3ddbaaddeac14cf141cb5d dwarfs-fuse-extract-mimalloc-0.12.3-Linux-x86_64
9c66639a66a122d964ee297b93a638c61f25c917e9aee49339fde17320757f2a dwarfs-universal-0.12.3-Linux-aarch64
c5e83388f41cddb59b3c490fc9fad8fbd73b134f8da5b8bba77297ab593d0efb dwarfs-universal-0.12.3-Linux-x86_64
9dbc03ce6dfc9df25e8c9e77e5ee15f624ef244aaa9b4e235fb121761c698789 dwarfs-universal-0.12.3-Windows-AMD64.exe