# 2.2.0
* Header values (of version made by and external attributes) are now
correctly read and written on big-endian systems (#68).
* `zip_list()` now also returns `crc32` and `offset` (#74, @jefferis).
2.3.2 (2021-07-05)
* A "dummy" release to warn about breaking changes coming in version
3.0. This updated version uses the Gem post_install_message instead of
printing to STDERR.
* 2.3.1 (2021-07-03) A "dummy" release to warn about breaking changes coming
in version 3.0.
Changelog from AN-2021-07-29:
- star: A single Linux xattr entry with a zero length value did disable
all Linux xattrs for the related file. This is now handled correctly.
Note that setfattr(1) on some Linux versions does not support to set
empty xattr entries, but star on the same system can extract files
with empty xattr entries.
Thanks to a report from Dennis Katsonis
- star: star -version now prints a new version date
Main changes:
-Now it's possible to drag all selected items, including directories.
-Added an option for only expanding top level directories when loading archives.
-Whether the option "Fit first column into available width" is checked or not,
the first header column is expanded to fill the available width.
-Added a workaround for Qt's problem with scrolling to deep non-expanded tree
items.
-Don't show the header without content.
-Resize columns appropriately on expanding/collapsing a directory item.
-Added application/x-xz, application/x-bzip and application/zstd to the
supported extractions by using 7z.
-Show the compressed size prefixed by ≥ if the file size is missing.
-Added cmake support (in addition to qmake).
Add one post-release patch.
1.8.0 [2021-06-18]
==================
* Add support for zstd (Zstandard) compression.
* Add support for lzma (ID 14) compression.
* Add `zip_source_window_create()`.
* Add `zip_source_zip_create()` variant to `zip_source_zip()`.
* Allow method specific `comp_flags` in `zip_set_file_compression()`.
* Allow `zip_source_tell()` on sources that don't support seeking and `zip_ftell()` on compressed data.
* Provide more details for consistency check errors.
* Improve output of `zipcmp`.
* In `zipcmp`, don’t ignore empty directories when comparing directory listing.
* Treat empty string as no password given in `zip_file_set_encryption()`, `zip_fopen_encrypted()`, and `zip_set_default_password()`.
Major changes in 0.3.2:
* compressor: Fix hardlink handling for new cpio format (Ondrej Holy)
* compressor: Fix hardlink detection for remote files (Ondrej Holy)
* extractor: Fix extraction of readonly folders (Ondrej Holy)
v1.5.0 (May 11, 2021)
api: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42)
`ZSTD_defaultCLevel()`
`ZSTD_getDictID_fromCDict()`
api: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42)
`ZSTD_compress_advanced()`
`ZSTD_compress_usingCDict_advanced()`
`ZSTD_compressBegin_advanced()`
`ZSTD_compressBegin_usingCDict_advanced()`
`ZSTD_initCStream_srcSize()`
`ZSTD_initCStream_usingDict()`
`ZSTD_initCStream_usingCDict()`
`ZSTD_initCStream_advanced()`
`ZSTD_initCStream_usingCDict_advanced()`
`ZSTD_resetCStream()`
api: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973)
perf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln)
perf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42)
perf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614#2630, @Cyan4973)
perf: Reduced stack usage during compression and decompression entropy stage (#2522#2524, @terrelln)
bug: Improve setting permissions of created files (#2525, @felixhandte)
bug: Fix large dictionary non-determinism (#2607, @terrelln)
bug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln)
bug: Fix various dedicated dictionary search bugs (#2540#2586, @senhuang42 @felixhandte)
bug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42)
bug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink)
bug: Fix UBSAN error in decompression (#2625, @terrelln)
bug: Fix superblock compression divide by zero bug (#2592, @senhuang42)
bug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone)
doc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln)
doc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize)
doc: Add style guide docs for open source contributors (#2626, @Cyan4973)
tests: Better regression test coverage for different dictionary modes (#2559, @senhuang42)
tests: Better test coverage of index reduction (#2603, @terrelln)
tests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42)
tests: Test coverage for ZSTD threadpool API (#2604, @senhuang42)
build: Dynamic library built multithreaded by default (#2584, @senhuang42)
build: Move `zstd_errors.h` and `zdict.h` to `lib/` root (#2597, @terrelln)
build: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973)
build: Single file library build script moved to `build/` directory (#2618, @felixhandte)
build: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42)
build: Fixed Meson build (#2548, @SupervisedThinking @kloczek)
build: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson)
build: Detect presence of `md5` on Darwin (#2609, @felixhandte)
build: Avoid SIGBUS on armv6 (#2633, @bmwiedmann)
cli: `--progress` flag added to always display progress bar (#2595, @senhuang42)
cli: Allow reading from block devices with `--force` (#2613, @felixhandte)
cli: Fix CLI filesize display bug (#2550, @Cyan4973)
cli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973)
contrib: Various fixes for linux kernel patch (#2539, @terrelln)
contrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42)
contrib: Seekable format - New seek table-only API (#2113#2518, @mdittmer @Cyan4973)
contrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng)
contrib: Seekable format - Decompression fix for large offsets, (#2594, @azat)
misc: Automatically published release tarballs available on Github (#2535, @felixhandte)
Now it should be more obvious when a package needs it as a dependency,
as it will fail loudly if it isn't declared as a tool.
While here, some duplicate dependencies on itstool were removed from the
MATE packages
0.6.2.3 Emily Pillmore <emilypi@cohomolo.gy> February 2021
* Add support for bytestring-0.11.0.0
0.6.2.2 Julian Ospald <hasufell@posteo.de> August 2020
* Bump bundled zlib to 1.2.11, fixes#26
* New build flag to force use of the bundled zlib C sources, #31
* Simpler build support for ghcjs, #25
* Add support for GHC 8.10 / base-4.14, #29
lxqt-archiver-0.4.0 / 2021-04-15
===================================
- Support opening and extracting of disk images.
- Also, support xz-compressed disk images.
- Added "application/vnd.debian.binary-package" to mimetypes list.
- Made directory view horizontally scrollable.
- Remember window settings.
Parallel XZ is a compression utility that takes advantage of running LZMA
compression of different parts of an input file on multiple cores and
processors simultaneously.
Its primary goal is to utilize all resources to speed up compression time
with minimal possible influence on compression ratio.
Packaged by ISIHARA Takanori and me in pkgsrc-wip/pxz.
Pixz (pronounced 'pixie') is a parallel, indexing version of XZ.
The existing XZ Utils provide great compression in the .xz file
format, but they produce just one big block of compressed data.
Pixz instead produces a collection of smaller blocks which makes
random access to the original data possible. This is especially
useful for large tarballs.
Originaly packaged by ISIHARA Takanori as pkgsrc-wip/pixz and
updated to 1.0.7 by me.
Major changes in 0.3.1:
* Disallow symlinks in parents completely when extracting (Ondrej Holy)
* Make AutoarExtractor documentation clearer (Ondrej Holy)
* Drop recursive delete on failure to prevent data loss (Ondrej Holy)
* Add back RAR support (Matthias)
Major changes in 0.3.0:
* Recognize MIME type aliases of extractable archives (Hernawan Fa'iz Abdillah)
* Add extraction support for password-protected archives (Felipe Borges)
* CVE-2020-36241: Prevent extraction outside the destination dir (Ondrej Holy)
Haiku OS R1/beta2 provides readpassphrase.h header file and
readpassphrase function in libbsd library.
And libarchive's configure script detects readpassphrase.h
and does not detect readpassphrase function.
In this case, libarchive try to use readpassphrase.h and
build and use internal readpassphrase inplementation.
readpassphrase.h defines readpassphrase function as non-static
and the internal implemantation is static.
This inconsistency breaks bootstrap pkgsrc under Haiku OS/x86_64 R1/beta2.
Add -lbsd to LIBS in Haiku OS case to fix the build and bootstrap.
The key updates are:
- Add --huffman/-H and --rle/U strategy options
- Fix issue when compiling for no threads
- Fail silently on a broken pipe
If you like, you can see all the details at https://github.com/madler/pigz/commits/master .
0.15.2
Backwards Compatibility Notes
ZstdCompressor.multi_compress_to_buffer() and
ZstdDecompressor.multi_decompress_to_buffer() are no longer
available when linking against a system zstd library. These
experimental features are only available when building against the
bundled single file zstd C source file distribution.
Changes
setup.py now recognizes a ZSTD_EXTRA_COMPILER_ARGS
environment variable to specify additional compiler arguments
to use when compiling the C backend.
PyPy build and test coverage has been added to CI.
Added CI jobs for building against external zstd library.
Wheels supporting macOS ARM/M1 devices are now being produced.
References to Python 2 have been removed from the in-repo Debian packaging
code.
Significant work has been made on a Rust backend. It is currently feature
complete but not yet optimized. We are not yet shipping the backend as part
of the distributed wheels until it is more mature.
The .pyi type annotations file has replaced various default argument
values with ....
1.1.7 (2021-02-18)
Merged Pull Requests
* Convert destination to a String #61 (lamont-granquist)
1.1.6 (2021-02-17)
Merged Pull Requests
* Cache gems and test on Ruby 3 #59 (tas50)
* Fix creating archives on windows with a CRLF #60 (lamont-granquist)
Lunzip is a decompressor for the lzip format written in C. Its small size
makes it well suited for embedded devices or software installers that need
to decompress files but don't need compression capabilities. Lunzip is fully
compatible with lzip 1.4 or newer.
1.0.17 (2021-02-10)
* Update chefstyle requirement from 1.2.1 to 1.3.2 #35
(dependabot-preview[bot])
* Update chefstyle requirement from 1.3.2 to 1.4.0 #36
(dependabot-preview[bot])
* Update chefstyle requirement from 1.4.0 to 1.4.2 #37
(dependabot-preview[bot])
* Update chefstyle requirement from 1.4.2 to 1.4.3 #38
(dependabot-preview[bot])
* Update chefstyle requirement from 1.4.3 to 1.4.4 #39
(dependabot-preview[bot])
* Update chefstyle requirement from 1.4.4 to 1.4.5 #40
(dependabot-preview[bot])
* Update chefstyle requirement from 1.4.5 to 1.5.0 #41
(dependabot-preview[bot])
* Update chefstyle requirement from 1.5.0 to 1.5.8 #46
(dependabot-preview[bot])
* Update chefstyle requirement from 1.5.8 to 1.5.9 #47
(dependabot-preview[bot])
* Update chefstyle requirement from 1.5.9 to 1.6.1 #48
(dependabot-preview[bot])
* Test on Ruby 3.0 #49 (tas50)
* Update chefstyle requirement from 1.6.1 to 1.6.2 #50
(dependabot-preview[bot])
* Extend the reader API to extract to destination #51 (lamont-granquist)
Changes in version 1.10:
A portability issue with Solaris 10 has been fixed.
It has been documented in the manual that 'zgrep -L' fails with GNU grep
versions 3.2 to 3.4 inclusive because of a wrong change reverted in GNU grep
3.5.
'make check' now tests empty input files with all tools except zupdate.
-Handle newlines and text tabs in item names as far as possible.
-Natural sorting of items by treating dot as a separator.
-Set the window title to the archive name.
-Added context menu to the archive path bar for copying path and opening
containing folder.
-Use 7z for uncompressed disk images and bsdtar for compressed ones.
-Added fallback icons for files and folders.
-Fixed emblemized icons with device pixel ratio.
2021-01-02 Antonio Diaz Diaz <antonio@gnu.org>
* Version 1.22 released.
* New options '-e, --reproduce', '--lzip-level', '--lzip-name',
'--reference-file', and '-E, --debug-reproduce'.
* Remove '--dump-tdata', '--remove-tdata', and '--strip-tdata'.
* main.cc (main): Report an error if a file name is empty.
Make '-o' behave like '-c', but writing to file.
Make '-c' and '-o' check whether the output is a terminal only once.
Do not open output if input is a terminal.
* main.cc (decompress): With '-i', ignore data errors, keep files.
* range_dec.cc: '-i -D' now decompresses a truncated last member.
* '-i -D' now returns 0 if only ignored errors are found.
* '-i' now considers any block > 36 with header a member, not a gap.
* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
* Fix several compiler warnings. (Reported by Nissanka Gooneratne).
* lzip_index.cc: Improve messages for corruption in last header.
* New debug options '-M, --md5sum' and '-U, --unzcrash'.
* main.cc: Set a valid invocation_name even if argc == 0.
* Document extraction from tar.lz in manual, '--help', and man page.
* New files lunzcrash.cc, md5.h, md5.cc, nrep_stats.cc, reproduce.cc.
* lziprecover.texi: New chapter 'Reproducing one sector'.
New sections 'Merging with a backup' and 'Reproducing a mailbox'.
Document the debug options for experts.
* check.sh: Lzip 1.16 or newer is required to run the tests.
* testsuite: Add 9 new test files.
v3.1.3:
This release adds support for publishing wheels to PyPi for Python 3.9. Wheel building is currently broken for Python 3.9 on Arm/Aarch64.
This release also drops building of wheels for Python 3.5.
libzzip.dylib. Pass -f along with ln -s in the APPLE cases, too, so none
of the bash install scripts exit early due to ln giving "File exists".
Bump PKGREVISION.
Changes in version 1.22:
Lzip now reports an error if a file name is empty (lzip -t "").
Option '-o, --output' now behaves like '-c, --stdout', but sending the
output unconditionally to a file instead of to standard output. See the new
description of '-o' in the manual. This change is backwards compatible only
when (de)compressing from standard input alone. Therefore commands like:
lzip -o foo.lz - bar < foo
must now be split into:
lzip -o foo.lz - < foo
lzip bar
or rewritten as:
lzip - bar < foo > foo.lz
When using '-c' or '-o', lzip now checks whether the output is a terminal
only once.
Lzip now does not even open the output file if the input file is a terminal.
Lzip can now be built, tested, and installed on systems lacking a 'make'
program. (Feature suggested by Mohammad Akhlaghi).
The words 'decompressed' and 'compressed' have been replaced with the
shorter 'out' and 'in' in the verbose output when decompressing or testing.
Option '--list' now reports corruption or truncation of the last header in a
multimenber file specifically instead of showing the generic message "Last
member in input file is truncated or corrupt."
The commands needed to extract files from a tar.lz archive have been
documented in the manual, in the output of '--help', and in the man page.
Plzip and tarlz are mentioned in the manual as alternatives for
multiprocessors.
Several fixes and improvements have been made to the manual.
9 new test files have been added to the testsuite.
Changelog:
version 1.33 - Sergey Poznyakoff, 2021-01-07
* POSIX extended format headers do not include PID by default
The intent is to make binary-equivalent PAX archives easy to create. If
POSIXLY_CORRECT is set, the POSIX standard default is used, which embeds
the pid.
* --delay-directory-restore works for archives with reversed member ordering
* Fix extraction of a symbolic link hardlinked to another symbolic link
* Wildcards in exclude-vcs-ignore mode don't match slash
* Fix the --no-overwrite-dir option
Given this option, previous versions of tar failed to preserve
permissions of empty directories and to create files under directories
owned by the current user that did not have the S_IWUSR bit set.
* Fix handling of chained renames in incremental backups
* Link counting works for file names supplied with -T
* Accept only position-sensitive (file-selection) options in file list files.
Using such options as -f, -z, etc. is senseless in a file list file and
bypasses option consistency checks in decode_options. Therefore,
only options related to file selection (a.k.a position-sensitive options)
are allowed in file list files.
This now uses cmake to build.
2021-01-04 gdraheim@github
* The testbuilds were fixed to make cmake install and automake install the same
* The cmake install did need patches for man3 installation on Unix
* The cmake install did need patches for dll installation on Windows
* The cmake install did need patches for dylib installation on MacOS
* The cmake install did need patches for pkgconfig generation
* Bump testbuilds to modern distro versions (ubuntu 20.04 centos 7.9 / 8.3)
* Takeover docker_mirror.py for air-gap testings (for testbuilds.py)
* handle UNZZIP-NOTFOUND in cmake and mark Ubuntu 'unzip' to be broken
* merge patches for zzip_pread feature from Max Kellermann
* merge patches for some bugs being found and reported via GitHub issues
* run azure-pipelines with -DZZIP_TESTCVE=OFF to skip CVE *.zip downloads
* use zziptests.py --downloadonly to get the CVE zip files for local storage
* The ninja builds for cmake were run regularly as it seems to be widely used.
* AND ... rename configure.ac to old.configure.ac to break outdated packaging scripts
* ....... see testbuilds/*-am-*.dockerfile that it still works to rename them back
* release 0.13.72
0.15.1:
Bug Fixes
setup.py no longer attempts to build the C backend on PyPy.
<sys/types.h> is now included before <sys/sysctl.h>. This was
the case in releases prior to 0.15.0 and the include order was reversed
as part of running clang-format. The old/working order has been
restored.
Include some private zstd C headers so we can build the C extension against
a system library. The previous behavior of referencing these headers is
restored. That behave is rather questionable and undermines the desire to
use the system zstd.
0.15.0:
Backwards Compatibility Notes
Support for Python 2.7 has been dropped. Python 3.5 is now the
minimum required Python version.
train_dictionary() now uses the fastcover training mechanism
(as opposed to cover). Some parameter values that worked with the old
mechanism may not work with the new one. e.g. d must be 6 or 8
if it is defined.
train_dictionary() now always calls
ZDICT_optimizeTrainFromBuffer_fastCover() instead of different APIs
depending on which arguments were passed.
The names of various Python modules have been changed. The C extension
is now built as zstandard.backend_c instead of zstd. The
CFFI extension module is now built as zstandard._cffi instead of
_zstd_cffi. The CFFI backend is now zstandard.backend_cffi instead
of zstandard.cffi.
ZstdDecompressionReader.seekable() now returns False instead of
True because not all seek operations are supported and some Python
code in the wild keys off this value to determine if seek() can be
called for all scenarios.
ZstdDecompressionReader.seek() now raises OSError instead of
ValueError when the seek cannot be fulfilled.
ZstdDecompressionReader.readline() and
ZstdDecompressionReader.readlines() now accept an integer argument.
This makes them conform with the IO interface. The methods still raise
io.UnsupportedOperation.
ZstdCompressionReader.__enter__ and ZstdDecompressionReader.__enter__
now raise ValueError if the instance was already closed.
The deprecated overlap_size_log attribute on ZstdCompressionParameters
instances has been removed. The overlap_log attribute should be used
instead.
The deprecated overlap_size_log argument to ZstdCompressionParameters
has been removed. The overlap_log argument should be used instead.
The deprecated ldm_hash_every_log attribute on
ZstdCompressionParameters instances has been removed. The
ldm_hash_rate_log attribute should be used instead.
The deprecated ldm_hash_every_log argument to
ZstdCompressionParameters has been removed. The ldm_hash_rate_log
argument should be used instead.
The deprecated CompressionParameters type alias to
ZstdCompressionParamaters has been removed. Use
ZstdCompressionParameters.
The deprecated aliases ZstdCompressor.read_from() and
ZstdDecompressor.read_from() have been removed. Use the corresponding
read_to_iter() methods instead.
The deprecated aliases ZstdCompressor.write_to() and
ZstdDecompressor.write_to() have been removed. Use the corresponding
stream_writer() methods instead.
ZstdCompressor.copy_stream(), ZstdCompressorIterator.__next__(),
and ZstdDecompressor.copy_stream() now raise the original exception
on error calling the source stream's read() instead of raising
ZstdError. This only affects the C backend.
ZstdDecompressionObj.flush() now returns bytes instead of
None. This makes it behave more similarly to flush() methods
for similar types in the Python standard library.
ZstdCompressionWriter.__exit__() now always calls close().
Previously, close() would not be called if the context manager
raised an exception. The old behavior was inconsistent with other
stream types in this package and with the behavior of Python's
standard library IO types.
Distribution metadata no longer lists cffi as an install_requires
except when running on PyPy. Instead, cffi is listed as an
extras_require.
ZstdCompressor.stream_reader() and ZstdDecompressor.stream_reader()
now default to closing the source stream when the instance is itself
closed. To change this behavior, pass closefd=False.
The CFFI backend now defines
ZstdCompressor.multi_compress_to_buffer() and
ZstdDecompressor.multi_decompress_to_buffer(). However, they
raise NotImplementedError, as they are not yet implemented.
The CFFI backend now exposes the types ZstdCompressionChunker,
ZstdCompressionObj, ZstdCompressionReader,
ZstdCompressionWriter, ZstdDecompressionObj,
ZstdDecompressionReader, and ZstdDecompressionWriter as
symbols on the zstandard module.
The CFFI backend now exposes the types BufferSegment,
BufferSegments, BufferWithSegments, and
BufferWithSegmentsCollection. However, they are not implemented.
ZstdCompressionWriter.flush() now calls flush() on the inner stream
if such a method exists. However, when close() itself calls
self.flush(), flush() is not called on the inner stream.
ZstdDecompressionWriter.close() no longer calls flush() on
the inner stream. However, ZstdDecompressionWriter.flush() still
calls flush() on the inner stream.
ZstdCompressor.stream_writer() and ZstdDecompressor.stream_writer()
now have their write_return_read argument default to True.
This brings the behavior of write() in compliance with the
io.RawIOBase interface by default. The argument may be removed
in a future release.
ZstdCompressionParameters no longer exposes a compression_strategy
property. Its constructor no longer accepts a compression_strategy
argument. Use the strategy property/argument instead.
Bug Fixes
Fix a memory leak in stream_reader decompressor when reader is closed
before reading everything. (Patch by Pierre Fersing.)
The C backend now properly checks for errors after calling IO methods
on inner streams in various methods. ZstdCompressionWriter.write()
now catches exceptions when calling the inner stream's write().
ZstdCompressionWriter.flush() on inner stream's write().
ZstdCompressor.copy_stream() on dest stream's write().
ZstdDecompressionWriter.write() on inner stream's write().
ZstdDecompressor.copy_stream() on dest stream's write().
Changes
Bundled zstandard library upgraded from 1.4.5 to 1.4.8.
The bundled zstandard library is now using the single C source file
distribution. The 2 main header files are still present, as these are
needed by CFFI to generate the CFFI bindings.
PyBuffer instances are no longer checked to be C contiguous and
have a single dimension. The former was redundant with what
PyArg_ParseTuple() already did and the latter is not necessary
in practice because very few extension modules create buffers with
more than 1 dimension.
Added Python typing stub file for the zstandard module.
The make_cffi.py script should now respect the CC environment
variable for locating the compiler.
CI now properly uses the cffi backend when running all tests.
train_dictionary() has been rewritten to use the fastcover APIs
and to consistently call ZDICT_optimizeTrainFromBuffer_fastCover()
instead of different C APIs depending on what arguments were passed.
The function also now accepts arguments f, split_point, and
accel, which are parameters unique to fastcover.
CI now tests and builds wheels for Python 3.9.
zstd.c file renamed to c-ext/backend_c.c.
All built/installed Python modules are now in the zstandard
package. Previously, there were modules in other packages.
C source code is now automatically formatted with clang-format.
ZstdCompressor.stream_writer(), ZstdCompressor.stream_reader(),
ZstdDecompressor.stream_writer(), and
ZstdDecompressor.stream_reader() now accept a closefd
argument to control whether the underlying stream should be closed
when the ZstdCompressionWriter, ZstdCompressReader,
ZstdDecompressionWriter, or ZstdDecompressionReader is closed.
There is now a zstandard.open() function for returning a file
object with zstd (de)compression.
The zstandard module now exposes a backend_features
attribute containing a set of strings denoting optional features
present in that backend. This can be used to sniff feature support
by performing a string lookup instead of sniffing for API presence
or behavior.
Python docstrings have been moved from the C backend to the CFFI
backend. Sphinx docs have been updated to generate API documentation
via the CFFI backend. Documentation for Python APIs is now fully
defined via Python docstrings instead of spread across Sphinx ReST
files and source code.
ZstdCompressionParameters now exposes a strategy property.
There are now compress() and decompress() convenience functions
on the zstandard module. These are simply wrappers around the
corresponding APIs on ZstdCompressor and ZstdDecompressor.
v1.4.8
hotfix: wrong alignment of an internal buffer
v1.4.7
perf: stronger --long mode at high compression levels
perf: stronger --patch-from at high compression levels, thanks to --long improvements
perf: faster dictionary compression at medium compression levels
perf: small speed & memory usage improvements for ZSTD_compress2()
perf: improved fast compression speeds with Visual Studio
cli : Set nb of threads with environment variable ZSTD_NBTHREADS
cli : accept decompressing files with *.zstd suffix
cli : provide a condensed summary by default when processing multiple files
cli : fix : stdin input no longer confused as user prompt
cli : improve accuracy of several error messages
api : new sequence ingestion API
api : shared thread pool: control total nb of threads used by multiple compression jobs
api : new ZSTD_getDictID_fromCDict()
api : zlibWrapper only uses public API, and is compatible with dynamic library
api : fix : multithreaded compression has predictable output even in special cases
api : fix : dictionary compression correctly respects dictionary compression level
build: fix cmake script when using path with spaces
build: improved compile-time detection of aarch64/neon platforms
build: Fix building on AIX 5.1
build: compile paramgrill with cmake on Windows, requested by @mirh
doc : clarify repcode updates in format specification
v1.4.6
fix : Always return dstSize_tooSmall when that is the case
fix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary
perf: Improve small block decompression speed by 20%+
perf: Reduce compression stack usage by 1 KB
perf: Improve decompression speed by improving ZSTD_wildcopy
perf: Improve histogram construction
cli : Add --output-dir-mirror option
cli : Warn when (de)compressing multiple files into a single output
cli : Improved progress bar and status summary when (de)compressing multiple files
cli : Call stat less often
cli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX
cli : Allow --patch-from to compress stdin with --stream-size
api : Do not install zbuff.h, since it has long been deprecated
api : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level
api : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX
build: Install pkg-config file with CMake and MinGW
build: Install DLL with CMake on Windows
build: Fix DLL install location with CMake
build: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions
build: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics
build: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC
build: Fix -Wcomma warnings
build: Remove distutils requirement for meson build
build: Fix cli compilation with uclibc
build: Fix cli compilation without st_mtime
build: Fix shadowing warnings in library
build: Fix single file library compilation with Enscripten
misc: Improve single file library and include dictBuilder
misc: Allow compression dictionaries with missing symbols
misc: Add freestanding translation script in contrib/freestanding_lib
misc: Collect all of zstd's libc dependencies into zstd_deps.h
doc : Add ZSTD_versionString() to manual
doc : Fix documentation for ZSTD_CCtxParams_setParameter()
pkgsrc update: Switch to use PHP_VERSIONS_INCOMPATIBLE.
1.19.2 (2020-11-23)
- only display libzip both headers/library versions if they differ
- report about ZSTD compression availability
- Raise E_WARNING on PHP related errors (PHP 8)
# 2.1.1
This version has no user visible changes.
# 2.1.0
* `unzip_process()` now does not fail randomly on Windows (#60).
* Now all functions handle Unicode paths correctly, on Windows
as well (#42, #53).
* `unzip_process()` now works when R library is on different drive
than `exdir` on Windows (#45)
* zip functions now have a `mode` argument to choose how files and
directories are assembled into the archive. See the docs for
details.
* zip functions now have a `root` argument, zip changes the working
directory to this before creating the archive, so all files are
relative to `root`.
* `zip()` and `zip_append()` are not deprecated any more, as it was
hard to achieve the same functionality with the other zip functions.
Documentation is mostly in Japanese (which I don't read) so no changelog
is available.
- Previous patches have ~all been integrated
- Configuration with autotools
- Is still maintained from time to time
-Avoid memory leak in "java-utils.c".
-Fixed comparison of integer expressions of different signedness.
-Removed "g_ptr_array_free_full" from "glib-utils.c" and used GLib's
"g_ptr_array_free" instead.
-Use bsdtar to handle RPM packages.
Changelog from AN-2020-11-04:
- Makefile system: include/schily/nlsdefs.h no longer by default defines
the macro __() because this is in conflict with definitions that are
present in the system include files from newer HP-UX versions.
Thanks to Rudi Blom for reporting.
- star: The ACL support code and the Linux xattr code had a typo related
to very long path names. As a result, ACLs and Linux xattrs did not work
if the path name to a file was longer than PATH_MAX.
Changelog from AN-2020-11-25:
- Makefile System: Added support for MacOS on arm64
Thanks to a hint from Ryan Schmidt from macports
Note that due to outstanding replies to recent changes in configure,
it could up to now not be verified that all configure tests now work in
a way that results in correct overall results. See below for an in
depth report on the changes.
- Makefile System: autoconf (config.guess & config.sub) now supports
the new arm64 Apple systems.
Thanks to Ryan Schmidt from macports for provinding the needed uname(1)
output.
- Makefile System: Added a new shell script "autoconf/uname" that helps
to create shell scrips that allow to emulate an alien host system in
order to test the correct behavior of configure.guess and configure.sub
on the main development platform.
This helps to adapt configure.guess and configure.sub to new platforms
in the future.
- Makefile System: The new clang compiler as published with the upcomming
ARM macs has been preconfigured with
-Werror -Wimplicit-function-declaration
as the default behavior and thus is in conflict with the existing base
assumption of the autoconf system that minimalistic C-code used for
compile/link allows to check for the existence of a specific function
in libc without a need to know which system #include file is used to
define a prototype for that function.
This clang version, as a result of this default, behaves like a C++
compiler and aborts if a function is used with no previous function
prototype. This caused most of the existing autoconf test to fail with
error messages about missing prototypes.
We implemented a workaround using these methods for the identified
problems:
- Most of the exit() calls in the various main() functions have
been replaced by return() to avoid a need to
#include <stdlib.h> in special since these test may be the
case for layered tests that #include files from the higher
level parts.
- Many autoconf tests programs now #include more system include
files, e.g. stdlib.h and unistd.h to avoid missing prototype
errors. This cannot reliably be done in tests that are used as
a base for higher level tests where the high level test
#includes own system include files, since older platforms do
not support to #include the same file twice.
So this is tricky...
- A test for a Linux glibc bug caused by incorect #pragma weak
usage inside glibc that prevents one or more functions from
ecvt()/fcvt()/gcvt() from being usable outside glibc now uses
hand-written prototypes for some of the libc interface
functions in order to avoid using the system includes. If we
did not do that, we could not use ecvt()/fcvt()/gcvt() on
MacOS anymore.
Thanks to Ryan Schmidt from macports for reporting and for the given
help that was needed for remote debugging.
Please send the needed feedback on whether the current state of the
configure script results on correct autoconf results on the M1 Macs.
Recreate patch-ba as patch-configure and add comment.
2020-04-14 gdraheim@github
* The testbuilds allow to compile and test for different os via docker
* The testbuilds allow to compare new cmake to automake install results
* Found fixes to bring base, sdl, manpages and site docs to same level
* release 0.13.71
2020-04-14 gdraheim@github
* there have been tons of bugfixes over the last two years ...
* Thanks go to Patrick Steinhardt (then at Aservo) for python3 updates
* Thanks go to Josef Moellers (working at SUSE Labs) for many CVE fixes
* and of course all the other patches that came in via github issues.
* I have cleaned up sources to only uses Python3 (as needed by 2020).
* !!! The old automake/autconf/libtool system will be dumped soon!!!
* The build system was ported to 'cmake' .. (last tested cmake 3.10.2)
* release 0.13.70
LZ4 v1.9.3 is a maintenance release, offering more than 200+ commits to fix multiple corner cases and build scenarios. Update is recommended. Existing liblz4 API is not modified, so it should be a drop-in replacement.
Changes list
Here is a more detailed list of updates introduced in v1.9.3 :
perf: highly improved speed in kernel space, by @terrelln
perf: faster speed with Visual Studio, thanks to @wolfpld and @remittor
perf: improved dictionary compression speed, by @felixhandte
perf: fixed LZ4_compress_HC_destSize() ratio, detected by @hsiangkao
perf: reduced stack usage in high compression mode, by @Yanpas
api : LZ4_decompress_safe_partial() supports unknown compressed size, requested by @jfkthame
api : improved LZ4F_compressBound() with automatic flushing, by Christopher Harvie
api : can (de)compress to/from NULL without UBs
api : fix alignment test on 32-bit systems (state initialization)
api : fix LZ4_saveDictHC() in corner case scenario, detected by @IgorKorkin
cli : compress multiple files using the legacy format, by Filipe Calasans
cli : benchmark mode supports dictionary, by @rkoradi
cli : fix --fast with large argument, detected by @picoHz
build: link to user-defined memory functions with LZ4_USER_MEMORY_FUNCTIONS
build: contrib/cmake_unofficial/ moved to build/cmake/
build: visual/* moved to build/
build: updated meson script, by @neheb
build: tinycc support, by Anton Kochkov
install: Haiku support, by Jerome Duval
doc : updated LZ4 frame format, clarify EndMark
File Roller is an archive manager for the GNOME environment. This means
that you can create and modify archives; view the content of an archive;
view and modify a file contained in the archive; extract files from the
archive.
Gnome-autoar provides functions, widgets, and gschemas for GNOME applications
which want to use archives as a convient method to tranfer directories over
the internet.
New features with AN-2020-09-04:
- autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from
uname -m; this was previously not supported and rejected by config.sub.
We now convert "arm64" into "aarch64" in config.guess to get the usual
expected results.
- Makefile system: RULES/rules.env The environment variables FIGNORE,
LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now
unexported from the enviroment.
In special FIGNORE is dangerous, as it is frequently used by bash
users but tells ksh93 to modify it's behavior with "echo *" and
this may cause strange things with our makefiles in case that
/bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and
OpenSolaris.
New features with AN-2020-10-09:
- autoconf: Added support for newer HP-UX versions on Itanium.
Thanks to Rudi Blom for reporting and making a change proposal.
v3.3.0
``Path`` objects now expose a ``.filename`` attribute
and rely on that to resolve ``.name`` and ``.parent`` when
the ``Path`` object is at the root of the zipfile.
GNU make 4.3 no longer uses \ to escape # found inside function
invocations, so the \ gets passed through to the printf commands,
causing library detection to fail.
lib/Makefile is patched on pkgsrc by copying detection logic from
programs/Makefile, which has since been updated[0] to support make
4.3 using the compatibility trick suggested in the GNU make changelog.
In particular, since we modify programs/Makefile to link the zstd
binary with the libzstd shared library, failure to detect pthread
in lib/Makefile results in a zstd built with ZSTD_MULTITHREAD to
be linked against a libzstd built without it. This causes "Unsupported
parameter" errors when it is used (except with --single-thread).
So, apply the fix for programs/Makefile to lib/Makefile as well.
[0] 06a57cf57e
v3.2.0
Mutate the passed ZipFile object
type instead of making a copy. Prevents issues when
both the local copy and the caller's copy attempt to
close the same file handle.
``Path._next`` now honors subclasses.
``Path.is_file()`` now returns False for non-existent names.
1.68 Thr 12 Mar 2020
- Switched to GitHub as issue tracker
- Replaced references to Test::MockModule in
t/23_closed_handle.t with code from PR #32, RT #110087
- Unixified line endings in t/23_closed_handle.t
- Added documentation for Archive::Zip::Member::isSymbolicLink,
RT #130524
- Implemented other, unrelated doc fixes
- Fixed examples/zipcheck.pl to skip symbolic links, RT #130525
- Described version 1.59, RT #117371 (tagged important!)
- Completely re-did test suite:
. Created new test APIs in t/common.pm and documented them in
t/README.md
. Changed tests to be less dependent on OS-specific quirks of "unzip -t"
. Changed tests to write more diagnostic information if executed in
automated test environments
. Normalized access to test data and to temporary results. Removed
references to obsolete temporary results (for example, those to
directory "extracted").
. Normalized test headers and brushed up tests in general
1.67 Sun 06 Oct 2019
- Fixed compatibility issues with zip64 format (defined-or, pack)
- Fixed hard-coded version fields introduced in version 1.66
- Fixed merge glitch with tests 26 and 27
- Fixed merge glitch with bzip passthrough
- Updated bzip test file to avoid zip bomb detection
1.66 Mon 16 Sep 2019
- Refactored low-level methods for reading and writing zip files
in zip64 format. Added new parameters and return values to
most of these. Extended constants in Archive::Zip to cover
zip64 formats and lengths.
- Added public APIs
Archive::Zip::Archive::zip64
Archive::Zip::Archive::desiredZip64Mode
Archive::Zip::Archive::versionMadeBy
Archive::Zip::Archive::versionNeededToExtract
Archive::Zip::Member::zip64
Archive::Zip::Member::desiredZip64Mode
and constants
Archive::Zip::ZIP64_AS_NEEDED
Archive::Zip::ZIP64_EOCD
Archive::Zip::ZIP64_HEADERS
plus POD on these.
- Added tests for zip64 format in t/21_zip64.t and more test zip
files below t/data. Extended tests in t/02_main.t to perform
all existing tests in all possible desired zip64 modes.
- Extended methods
Archive::Zip::Member::localExtraField
Archive::Zip::Member::cdExtraField
to perform format checks when called as setters and to reject
any zip64 extended information extra fields passed by the user.
Extended POD and tests in t/02_main.t accordingly.
- Setting {'compressedSize'} after writing central directory
header.
- Added new optional parameter $noFormatError to method
Archive::Zip::_readSignature to silence any format errros when
testing for signatures.
- Added error handling for potentially failed object conversion
after calling method Archive::Zip::Member::_become. Factored
in method Archive::Zip::Member::_becomeDirectoryIfNecessary
into caller.
- Changed methods
Archive::Zip::Archive::contents
Archive::Zip::Member::contents
(and all inheriting from these) to consistently return a pair
($contents, $status) when called in list context and a scalar
$contents when called in scalar context. Extended tests in
t/02_main.t accordingly.
- Changed method Archive::Zip::Member::extractToFileHandle to
accept a file name instead of a file handle when extracting
symbolic links. Changed lower-level and higher-level methods
to use that feature. Cleaned up code related to the handling
of symbolic links. Added creation of intermediate directories
in method Archive::Zip::Member::extractToFileNamed for symbolic
links as well. Reporting errors from symlink call as AZ-error.
Added POD and test zip file t/data/symlink.zip and tests in
t/26_symlinks.t for these changes.
- Cleaned up code and added comment related to that highly
dubious (?) {'wasWritten'} logic.
1.65 Sat 7 Sep 2019
- Fix for members using bzip compression [github/pmqs]
- NetBSD doesn't mind empty zips [github/pmqs]
- Solaris test failure, Add diag to failing test to collect data [github/pmqs]
- Test for presence of Test::MockModule [github/pmqs]
- Fix skip line for Windows [github/pmqs]
- Skip tests that assume /tmp on Windows [github/pmqs]
Version 1.0.9 contains a fix to "integer overflow" problem. This
happens when "one-shot" decoding API is used (or input chunk for
streaming API is not limited), input size (chunk size) is larger
than 2GiB, and input contains uncompressed blocks. After the overflow
happens, `memcpy` is invoked with a gigantic `num` value, that will
likely cause the crash.
innoextract 1.9 (2020-08-09)
- Added preliminary support for Inno Setup 6.1.0
- Added support for a modified Inno Setup 5.4.2 variant
- Fixed output directory being created for unsupported installers
- Fixed some safe non-ASCII characters being stripped from filenames
- Fixed handling of path separators in Japanese and Korean installers
- Fixed build with newer Boost versions
- Windows: Fixed heap corruption
- Windows: Fixed garbled output
New features with AN-2020-07-18:
- star: star could dump core if it was used as "star -t ..." or.
"star -x ..." while being in a UTF-8 based locale and trying to deal
with extremely long pathnames (more than PATH_MAX) in the archive.
This bug was caused by the dummy conversion routines _to_utf8() or
_from_utf8() that did not stop after "tolen" bytes (the current size
of the dynamically growing path structure) have been copied.
This bug has been introduced in 2018 when the dynamic path name
variables have been introduced together with support for extremely
long path names.
- star: lpath_unix.c and lhash.c renamed a local variable buflen to bflen
to avoid a gcc shadowing warning with the rest of star.
- star: star.c fixed some fallthrough warnings from lint.
- star: The FIFO code (which is 30 years old) did use an int for the size
which historically was OK, but this did limit the size of the FIFO to
2 GB. Now with modern tape drives that are really fast, a FIFO with
2 GB would only give a tape streaming reserve for approx. 8 seconds,
which is not sufficient. Approx. 30 seconds reserve are recommended.
With modern tape drives, this would need approx. 8 GB of FIFO. Be.
however careful not to use more than half of the real RAM available
in the whole system for the star FIFO.
Note that this change induced the need for a lot of derived changes
in approx. 1000 lines of code spread over the whole star project and
for this reason, it is advised to carefully test the new version and
to report if problems occur.
New features with AN-2020-08-12:
- autoconf: added a new test for the existence of <sys/auxv.h>
- autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info()
- libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info()
on FreeBSD. This was needed since readlink("/proc/curproc/file") on
FreeBSD returns random values for hardlinked files, making it impossible
to use the result in order to find out which behavior variant of a
fat binary is requested.
- star: GNU cpio archives may contain longer path names than permitted by
the AT&T documentation. This did cause problems with our automated
recognition of swapped CPIO headers. We now use a more robust method.
- star: GNU cpio archives may contain longer path names than permitted by
the AT&T documentation. This could cause star to dump core because the
cpio module did not yet call the routine to grow our new dynamic path
store.
- star: older GNU compilers seem to decide that a division:
long long / long results in a long.
We now cast the divisor to long long to definitely get the right
result for a printf argument.
- star: changed a name in a parameter list for lreadlink() to avoid
a GCC shadow warning.
- star: The variable use_fifo is also needed if the FIFO is not
available (e.g. on DOS). The previous code did not compile on platforms
that did not support to implement the FIFO. We moved
extern BOOL use_fifo out of a #ifdef FIFO
Thanks to a hint from Albert Wik.
- star: The file README.otherbugs has been changed to match the
state of today and a geocrawler based URL now includes an
archive.org prefix as geocrawler no longer exists.