Skip to content

Latest commit

 

History

History
249 lines (164 loc) · 5.98 KB

File metadata and controls

249 lines (164 loc) · 5.98 KB

This file summarizes the major and interesting changes for each release. For a detailed list of changes, please see the git history.

0.14.0 (2026-02-04)

What's new

  • Support extracting multiple archives in one call by specifying them via -F or --file. (issue #11)

0.13.1 (2026-01-25)

Fixed

  • do not panic when writing --help/--version to stdout fails (issue #34)

0.13.0 (2026-01-03)

What's new

  • use pigz for gzip compression when available (issue #32)
  • build: use LTO and only one codegen unit (issue #35)

Fixed

  • improve error message for failed getpwuid_name/getgrgid_name
  • retry getpwuid_r/getgrgid_r on ERANGE with larger buffer
  • consider ENOENT error as user/group not found

0.12.0 (2025-11-11)

What's new

  • skip special files (like block devices, character devices, fifos, and sockets) when extracting to stdout
  • improve error message for invalid file type
  • support extracting all types of special files (block devices, fifos, and sockets)
  • test: Support running the 3cpio cli tests against the installed 3cpio binary by setting the environment variable THREECPIO_BIN.

Fixed

  • Remove executable permissions from the LICENSE file (issue #30)
  • test: do not hard-code expected mode and gid in block device test (issue #28)

0.11.0 (2025-08-26)

What's new

  • set --stream-size on zstd compressor command (issue #15)
  • doc: document all public const/functions
  • introduce a Logger struct and macros and use an enum for log level
  • let --examine print the size and extracted size (issue #13)
  • Add --raw option to --examine for the current format and make a human readable format the default.

0.10.2 (2025-08-13)

Fixed

  • skip data alignment for files where PATH_MAX is exceeded

0.10.1 (2025-08-13)

Fixed

  • flush stdout at the end of each cpio

0.10.0 (2025-08-13)

What's new

  • add --data-align option to the --create mode

0.9.1 (2025-08-11)

Fixed

  • limit filename length to PATH_MAX
  • Support running tests without lzop installed

0.9.0 (2025-08-09)

What's new

  • support extract/list cpio based on globbing patterns
  • support --to-stdout on extraction
  • limit compression level to min/max (instead of ignoring invalid levels)
  • support --parts on --extract and --list (issue #14)
  • add --make-directories option for --extract
  • build: enable t64 on 32-bits architectures

Fixed

  • test:
    • manifest: allow for EPIPE as a valid compression failure mode
    • set current directory only if needed (to avoid race conditions)

0.8.1 (2025-07-31)

Fixed

  • test:
    • use temporary directory for write tests
    • canonicalize /dev/console (bug #16)

0.8.0 (2025-07-11)

What's new

  • Use a write buffer for --create for a massive performance improvement

Fixed

  • Check exit status of compressor commands
  • test:
    • Use gzip instead of true which might be a symlink
    • Skip test_file_from_line_location_* if required file is missing

0.7.0 (2025-07-10)

What's new

  • Add support for creating cpio archives from a manifest file (feature #3)
  • Print inode on --list --debug

0.6.0 (2025-06-30)

What's new

  • doc: add 3cpio man page

Fixed

  • Fix "No such file or directory" error when using --subdir
  • test: fix race condition in tests by using a lock

0.5.1 (2025-04-11)

Fixed

  • Fix directory traversal vulnerability: Prevent extracting CPIOs outside of the destination directory to prevent directory traversal attacks. This new behaviour is similar to cpio --no-absolute-filenames.

0.5.0 (2025-03-30)

What's new

  • add --count parameter

0.4.0 (2025-03-11)

What's new

  • add support for extracting character devices

Fixed

  • print major/minor of character devices in long format

0.3.2 (2024-08-19)

What's new

  • Support lzma compression (bug #8)

Fixed

  • Avoid timespec struct literal (LP: #2076903)
  • Include missing helper program name in error message (bug #4)

0.3.1 (2024-08-06)

What's new

  • Various changes to speed up 3cpio --list --verbose to make 3cpio faster than bsdcpio in all benchmarks.

0.3.0 (2024-08-03)

What's new

  • support preserving the owner/group of symlinks
  • Add --verbose mode to --list mode. The output will be similar to cpio --list --verbose and ls -l.

Fixed

  • 3cpio: fix setting the directory/file permissions (bug #5)

0.2.0 (2024-07-05)

What's new

  • Add support for extracting (--extract) cpio archives. New parameters are --directory, --preserve-permissions, and --subdir.
  • Add --verbose and --debug log levels

Changed

  • Replace command line argument parser gumdrop by lexopt, because the latter has no dependencies.
  • Drop assert_cmd and predicates dev dependencies.

Fixed

  • 3cpio: fix binary name in --version output

0.1.0 (2024-04-18)

Initial release. 3cpio only supports examining (--examine) and listing (--list) the content of the initramfs cpio.