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)