Skip to content

dwarfs-0.12.3

Compare
Choose a tag to compare
@mhx mhx released this 21 Apr 19:19
· 35 commits to main since this release

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-extract binary 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-universal is now linked against LibreSSL's libcrypto instead 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=dwarfsck with either --check-integrity or --checksum. The binaries from the release tarballs are still linked against libcrypto from 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