Libarchive-c

Latest version: v5.1

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

5.1

Fix the `format_name` property and move it from the `ArchiveEntry` class to the `ArchiveRead` class (127).

5.0

Changes to the library:

- It is now possible to specify a codec for archive entry metadata (`pathname`, `linkpath`, `uname` and `gname`) (125).
- **BREAKING:** If you use the `archive_read_class` and `archive_write_class` arguments, the classes you provide will receive a codec name as a second positional argument.
- The `timestamp_nsec` arguments of the legacy `ArchiveEntry.set_{a,c,m}time` methods are now optional (123).

Changes to the tests and packaging:

- Removed obsolete dependencies (`mock` and `six`) from `tox.ini` (119).
- Always use `UTF-8` when reading the `PKG-INFO` and `README.rst` files (120).
- Replaced `pytest-xdist` with `pytest-forked` in `tox.ini` (124).
- Dropped testing with Python 3.7. Added 3.10 and 3.11 (124).

4.0

- **BREAKING & SECURITY:** The archive extraction functions now pass 3 security flags (`SECURE_NODOTDOT`, `SECURE_NOABSOLUTEPATHS` and `SECURE_SYMLINKS`) to libarchive by default, unless the current directory is the root.
- **BREAKING:** The `ArchiveEntry` properties `atime`, `mtime`, `ctime`, `birthtime` and `size` now have the value `None` instead of `0` when they're unset.
- **BREAKING:** The `ArchiveEntry.pathname` property now attempts to decode bytes using UTF-8. This breaks reading archives that contain file names which look like UTF-8 but aren't, if such a thing exists. Proper support of encodings will probably be added in the next version.
- Multiple entries from the same archive can now be kept in memory, however only the current entry's content can be read.
- The `filetype`, `linkpath`, `size`, `mode`, `redvmajor`, `redvminor`, `uid` and `gid` attributes of an archive entry can now be modified.
- The four time properties of archive entries now have setters, so for example `entry.set_mtime(0, 0)` can be replaced by `entry.mtime = 0`.
- Archive entries have 4 new properties: `perm`, `rdev`, `uname` and `gname`.
- When adding files to an archive, a destination path can now be specified.
- The `ArchiveRead` class now has a `bytes_read` property.
- The `ArchiveWrite` class now has a `bytes_written` property.
- Python 3.6 is no longer tested.
- The documentation has been improved.

3.2

Not secure
This release fixes the `seek` callbacks passed to `libarchive` by the `custom_reader` and `stream_reader` function. See 116 for more details.

3.1

Not secure
This release is mostly meant to fix 113 (a bug introduced in 3.0), but it also contains the following changes:

- the `ffi.archive_error()` function now returns an exception instead of raising it
- `seekable_stream_reader` is now an alias of `stream_reader`
- the misleadingly named `ffi.VOID_CB` function has been removed

3.0

Not secure
Changes to the library:

- **BREAKING:** dropped support for Python 2.7 (108)
- implemented reading and writing encrypted archives (109)
- created a new context manager: `seekable_stream_reader` (107)
- added support for 64-bit `time_t` on 32-bit systems (101)
- load extra formats and filters when they're requested (95)

Tests:

- dropped testing with Python 2.7 and 3.5, added 3.9 (108)

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.