Log message:
archivers/hs-tar: Update to 0.6.2.0
0.6.2.0 Bodigrim andrew.lelechenko@gmail.com March 2024
* Fix issues with Unicode support in filenames.
0.6.1.0 Bodigrim andrew.lelechenko@gmail.com January 2024
* Support Unicode in filenames (encoded as UTF-8).
* Reduce peak memory consumption when unpacking large files.
0.6.0.0 Bodigrim andrew.lelechenko@gmail.com December 2023
This release features support for long file paths and symlinks (thanks to
Julian Ospald) and variety of changes and improvements across entire
package, fixing multiple causes of silent data corruption.
Breaking changes:
* Generalize Entries, Entry and EntryContent to GenEntries, GenEntry and
GenEntryContent.
- Functions working on entries have been generalized to more
polymorphic types, where possible.
- Modules which used to import Codec.Archive.Tar (Entry(..)) should now
import Codec.Archive.Tar (Entry, pattern Entry) and similar for other
Gen-types. Another option is to import the entire module qualified.
* Redesign Codec.Archive.Tar.Check.
- Change types of checkSecurity, checkTarbomb, checkPortability.
- Add offending path as new field to TarBombError constructor.
- Extend FileNameError with UnsafeLinkTarget constructor.
* Drop deprecated emptyIndex and finaliseIndex.
Examples of migration:
* hackage-security: \
https://github.com/haskell/hackage-security/commit/24693ce115c9769fe3c6ec9ca1d137d14d0d27ff
* archive-backpack: \
https://github.com/vmchale/archive-backpack/commit/4b3d1bdff15fcf044d6171ca649a930c775d491b
* keter: \
https://github.com/snoyberg/keter/commit/20a33d9276d5781ca6993b857d8d097085983ede
* libarchive: \
https://github.com/vmchale/libarchive/commit/c0e101fede924a6e12f1d726587626c48444e65d
* cabal-install: \
https://github.com/haskell/cabal/commit/51e6483f95ecb4f395dce36e47af296902a75143
* ghcup: \
https://github.com/haskell/ghcup-hs/commit/6ae312c1f9dd054546e4afe4c969c37cd54b09a9
* hackage-server: \
https://github.com/haskell/hackage-server/commit/6b71d1659500aba50b6a1e48aa53039046720af8
Bug fixes:
* Add support for over-long filepaths via GNU extension.
- Now entryPath corresponds to an internal, low-level path, limited to
255 characters. To list filenames properly use decodeLongNames,
followed by entryTarPath.
* Fix handling of hardlinks and symlinks.
* Handle > 8 GB files insted of silent corruption.
* Prohibit non-ASCII file names instead of silent corruption.
* Set permissions on extracted files.
* Ignore FAT32 errors when setting modification time.
* Switch to trailer parsing mode only after a full block of NUL.
New API:
* Add Traversable Entries instance.
* Add toTarPath', ToTarPathResult, longLinkEntry, longSymLinkEntry.
* Add packSymlinkEntry and symbolicLinkPermission.
* Add packAndCheck and unpackAndCheck.
* Add checkEntrySecurity, checkEntryTarbomb and checkEntryPortability.
* Add encodeLongNames, decodeLongNames, DecodeLongNamesError.
Improvements:
* Speed up fromTarPath, fromTarPathToPosixPath and
fromTarPathToWindowsPath.
* Alleviate leakage of file handles in packFileEntry.
* Fix tests on 32-bit architectures.
|