Skip to content

v0.14.0

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Jan 20:03
· 318 commits to master since this release
d75f8ba

Major changes were made to the organization of this repo, with the library backhand now being separated from
the backhand-cli package, which is used to install unsquashfs, replace, and add.

backhand

Changes

  • Following changes were done to allow multi-threaded applications (#278)
    • Change RefCell<Box<T>> into Arc<Mutex<T>>
    • Change RefCell<T> into Mutex<T>
    • Change Rc<T> into Arc<T>
    • Change dyn CompressionAction to dyn CompressionAction + Send + Sync for Kind uses
    • Change BufReadSeek: BufRead + Seek {} to BufReadSeek: BufRead + Seek + Send {}
  • Allow user provided read/write files to not be static (@rbran) (#285)
  • Bump MSRV to 1.67.1
  • Allow creating and reading uncompressed files (@rbran) (#365)
  • Allow calling FilesystemWriter::write with Owned and RefMut writer (@rbran) (#361)
  • Push dir, file, etc, with lifetimes unrelated to reader from from_fs_reader (@rbran) (#361)
    For example, the following is now allowed:
-   let mut output = File::create(&args.out).unwrap();
-   if let Err(e) = filesystem.write(&mut output) {
+   let output = File::create(&args.out).unwrap();
+   if let Err(e) = filesystem.write(output) {

Bug Fix

  • When creating an empty image using FilesystemWriter::default(), correctly create the ID table for UID and GID entries. Reported: (@hwittenborn) (!250), Fixed: (#275)
  • Remove manual Clone impl for FilesystemReaderFile (#277)
  • Increase DirectoryIndex::name_size length from 100 to 255. (@eatradish) (!282), Fixed: (#283)
  • Prevent push_file "file within file", will now return InvalidFilePath (@rbran) (#364)
  • Fix gid and uid for push_dir_all(..) (#360)

Security

  • Only allow root and simple filenames into DirEntry (@rbran) (#271)

backhand-cli

Changes to All

  • strip and LTO are enabled for release binaries
  • Fix macOS builds (#260)
  • Bump MSRV to 1.73.0 to use now stabilized std::os::unix::fs::lchown
  • Add color styling to help output (#387)

unsquashfs

  • Changed name to unsquashfs-backhand (#356)
  • Add progress bar for a cleaner output when extracting files (#272)
  • Add --quiet for not displaying progress bar and RUST_LOG output (#272)
  • Add multiple threads for extracing files, giving us the same performance in most cases as squashfs-tools/unsquashfs! (#278)

add

  • Changed name to add-backhand (#356)

replace

  • Changed name to replace-backhand (#356)

ci

  • Add testing and release binaries for the following platforms:(#259)
    • aarch64-unknown-linux-musl
    • arm-unknown-linux-musleabi
    • x86_64-unknown-linux-musl (previously already release supported)
  • Testing and release binaries were not added for macOS, support was tested on that platform.

testing

  • Replace curl in test dependency test-assets with ureq (#264)
  • Replace zune-inflate with libdeflater for custom decompression testing for reliability (#325)

Dependencies

  • Bump flate2 from 1.0.26 to 1.0.28 (#307)
  • Bump jemallocator from 0.5.0 to 0.5.4 (#305)
  • Bump env_logger from 0.10.0 to 0.10.1 (#341)
  • Bump clap from 4.4.7 to 4.4.12 (#340, #371, #376, #399)
  • Bump dangoslen/dependabot-changelog-helper from 3.5.0 to 3.7.0 (#342, #369)
  • Bump tracing-subscriber from 0.3.17 to 0.3.18 (#347)
  • Bump byte-unit from 4.0.19 to 5.0.3 (#367)
  • Bump actions/labeler from 4 to 5 (#377)
  • Bump test-log from 0.2.13 to 0.2.14 (#378)
  • Bump clap_complete from 4.4.4 to 4.4.5 (#393)
  • Bump thiserror from 1.0.51 to 1.0.53 (#391, #401)
  • Bump actions/upload-artifact from 3.1.3 to 4.0.0 (#380)
  • Bump tempfile from 3.8.1 to 3.9.0 (#398)
  • Bump document-features from 0.2.7 to 0.2.8 (#400)