Skip to content

Releases: Changaco/python-libarchive-c

5.1

05 Mar 13:21
5f7008d
Compare
Choose a tag to compare

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

5.0

04 Jul 08:54
ed0e591
Compare
Choose a tag to compare
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

23 Jan 10:58
382ea82
Compare
Choose a tag to compare
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

26 Nov 16:52
8256dba
Compare
Choose a tag to compare
3.2

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

3.1

01 Jun 08:01
222f41a
Compare
Choose a tag to compare
3.1

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

25 May 09:02
9cf50ca
Compare
Choose a tag to compare
3.0

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)

2.9

20 Oct 12:57
Compare
Choose a tag to compare
2.9

Changes to the library:

  • optimized the ArchiveEntry class (#94)
  • added support for the zstd format (#90)
  • fixed the top-level __all__ list (7b97d8b)
  • updated the code to support Python 3.8 (#88)
  • improved the add_file_from_memory method (#85 and #86)
  • lowered the level of log messages from warning to info (#83)

Tests:

  • dropped testing with Python 3.4, added 3.7 and 3.8 (#88)
  • fixed unicode handling in entry tests (#84)

2.8

10 Jun 13:52
3894218
Compare
Choose a tag to compare
2.8

Changes to the library:

  • add support for setting atime, ctime, mtime and birthtime (#50 and #63)
  • tell libarchive when writing an archive is aborted due to an exception (#53)
  • add support for getting uid and gid (#57)
  • add support for high resolution timestamps (#58)
  • add two new archive readers: stream_reader and custom_reader (#60)
  • add missing archive extraction flags (#61)
  • add the lz4 and warc formats (#62)
  • add support for write options and uid/gid lookup (#72)

Tests:

  • drop python 3.3 and add 3.6
  • add segfault detection (#59)
  • test against libarchive 3.3.2 instead of 3.1.2 (#70)

2.7

17 Dec 10:15
Compare
Choose a tag to compare
2.7

Changes to the library:

  • only read regular files (#47)
  • add support for atime and ctime (#49)

2.6

29 Nov 19:15
Compare
Choose a tag to compare
2.6

Changes to the library:

  • small tweak for better compatibility with python 2.6 (#37)
  • new add_file_from_memory method (#38)
  • fix int type to allow working with large files (#41)

Tests:

  • we now use tox (#40)