Skip to content

Releases: mirage/ocaml-tar

3.1.2

20 Sep 11:11
Compare
Choose a tag to compare

CHANGES:

  • Fix a wrong assumption in Tar_lwt_unix.run for Tar.Really_read _ that one
    tar block was always read. This meant that using Tar.Really_read with a
    size different from 512 would fail. (Reported by @jonahbeckford, review by @hannesm, @reynir, #153)
  • Document better the actual behavior of Tar_unix.extract and
    Tar_lwt_unix.extract (@reynir, #155)

3.1.1

13 Sep 08:23
Compare
Choose a tag to compare

CHANGES:

  • Expose Tar_lwt_unix.run as we do with Tar_unix.run and Tar_eio.run.
    This was an oversight in v3.0.0. (Reported by @jonahbeckford, @reynir, #150)

3.1.0

11 Sep 10:28
41c955a
Compare
Choose a tag to compare

CHANGES:

  • Expose Tar_lwt_unix.run as we do with Tar_unix.run and Tar_eio.run.
    This was an oversight in v3.0.0. (Reported by @jonahbeckford, @reynir, #150)

3.0.0

05 Aug 13:21
Compare
Choose a tag to compare

CHANGES:

  • Fix Header.marshal and the checksum and the length (@reynir, #145)

  • Delete a mutable field about the level into the header (@hannesm, #141)

  • BREAKING: de-functorize the package (@hannesm, @reynir, @dinosaure, #140, #143, #146)

    These PRs attempt to de-functorize Tar so that users can implement I/O
    themselves, using Tar's own element serialization/deserialization functions
    to take advantage of read/write methods. This avoids imposing on the user the
    implementation of a module that is too rigid in his/her case (which could have
    performance implications).

    Tar offers functions for serializing/deserializing tar-specific elements
    from string. It is then up to the user to know how to obtain or write these
    strings.

    To this, these PRs add "logics" (see 'a Tar.t) requiring read and/or write
    implementations and describing how to extract all entries from a tar file or
    how to write a tar file according to a "dispenser" (like Seq.to_dispenser)
    of entries.

    These logics do not depend on a particular "scheduler", and these PRs propose
    a derivation of these logics with tar-unix, tar-eio and tar-mirage.
    These latter derivations mean that the API for these packages has only been
    extended, and there are no breaking changes as such.

    These logics also make it easy to offer a compression/decompression layer with
    decompress, so you can easily manipulate and/or create a .tar.gz file.

2.6.0

07 Sep 12:25
Compare
Choose a tag to compare

CHANGES:

  • Add eio backend for tar in tar-eio (@patricoferris, review by @talex5, @reynir, #132)
  • Also apply backwards compatibility fix when GNU LongName is used.
    The compatibility fix is unfortunately also applied for unknown-to-ocaml-tar link indicators (reported by @gravicappa in #129, @reynir, #133)

2.5.1

21 Jun 13:05
Compare
Choose a tag to compare

CHANGES:

  • Treat headers with link indicator '0' or '\000' (Normal) as directories for backward compatibility (reported in #129, fix by @reynir)

2.5.0

06 Jun 07:46
Compare
Choose a tag to compare

CHANGES:

  • File names and link names are used from PAX headers when parsing (reported by @gravicappa, fixed in #128 by @reynir)

2.4.0

30 Mar 17:31
fa05f16
Compare
Choose a tag to compare

CHANGES:

  • Switch to alcotest for tests (@MisterDA, review by @reynir, #121)
  • BREAKING: fix ustar magic version. Previously, the version "0\000" was
    serialized instead of the correct version "00". This means tar archives may
    not be reproducable with older versions. (@reynir, @hannesm, #117 and #122)
  • Remove ppx_cstructdependency (@hannesm, review by @reynir, #117)
  • Properly skip Pax GlobalExtendedHeaders (@MisterDA, @reynir, #116 and #118)

2.3.0

09 Feb 16:07
7b49f66
Compare
Choose a tag to compare

CHANGES:

2.2.2

12 Dec 09:59
Compare
Choose a tag to compare

CHANGES:

  • tar-mirage: fix writing of data when data+tar header is a multiple of sector_size greater than 1 (@reynir, review by @hannesm, #100)