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.
As of 1.24, MATE requires GNU-specific msgfmt features. meta-pkgs/mate/
Makefile.common r. 1.10 expressed this tool dependency using
USE_BUILTIN.gettext=no, but this exposed pkgsrc gettext-libs in the
build environment as well, which some MATE packages then linked
against, but gettext-libs didn't end up being declared as a run-time
dependency, so binary package installations were broken (with the
workaround of manually installing the undeclared gettext-libs
dependency). Express this dependency differently, so GNU msgfmt is
used as a tool without exposing pkgsrc gettext-libs.
(The pkgsrc tooling infrastruture could be altered to provide a
distinct "gmsgfmt" tool, same with "gxgettext", and perhaps others.
Here I'm just immediately concerned with fixing this packaging issue.)
Addresses PR pkg/55503 by Jay Patel.
Update ruby-ffi-libarchive to 1.0.3.
1.0.3 (2020-06-26)
* Optionally clone entries when iterating through an archive #30 (jatoben)
* Replace specific types with more generic equivalents. #32 (phiggins)
* Modern expeditor / buildkite setup #33 (tas50)
rarfile v3.3
Fixes:
Add the .sfx test files to MANIFEST.in for inclusion in pypi tarball.
Add all files in git to tarball.
rarfile v3.2
New features:
Support unar as decompression backend. It has much better support for RAR features than bsdtar.
Support SFX archives - archive header is searched in first 2MB of the file.
Add HACK_TMP_DIR option, to force temp files into specific directory.
Fixes:
Always use "/" for path separator in command-line, gives better results on Windows.
Cleanups:
Drop module-level options from docs, they create confusion.
Drop support for Python 2 and 3.5 and earlier. Python 2 is dead and requiring Python 3.6 gives blake2s, stdlib that supports pathlib, and ordered dict without compat hacks.
Replace PyCrypto with PyCryptodome in tests.
Use Github Actions for CI.
V0.6.0
--------
* Added an option to (not) stretch the first column.
* Added app icon.
* A workaround for a Qt bug that might give a too small height to rows if the horizontal scrollbar isn't at its minimum value when items are removed.
* Better names for extraction folders of archives without parent directories.
* Scroll to the current item when expanding or filtering.
* Fixed startup invisibility with some window managers.
* Updated the code for Qt 5.15.
Changelog from AN-2020-07-01:
- star: Backslashes are now honored when looking for the substitution
separators in options like -s /from/to/ or -pax-s /from/to/
Previously, -s '/xxx\/yy//' was interpreted in a way that made
the **to string** "yy" and the **from string** "xxx\" instead of
making the from string "xxx\/yy" and the to string empty.
Add github master site as fallback.
1.7.2 [2020-07-11]
==================
* Fixes for the CMake find_project() files.
* libzip moved to the CMake libzip:: NAMESPACE.
* CMake usage best practice cleanups.
Stop linking lib/libzip/include, does not exist since 1.3.1; and depend
on that version (from 2017).
Link bin/zipcmp for the cmake infrastructure (the cmake support
files are looking for zipcmp in the same place as the headers/library).
The latter fixes a build problem in mgba reported by nia.
0.14.0:
Backwards Compatibility Notes
-----------------------------
* This will likely be the final version supporting Python 2.7. Future
releases will likely only work on Python 3.5+.
* There is a significant possibility that future versions will use
Rust - instead of C - for compiled code.
Bug Fixes
---------
* Some internal fields of C structs are now explicitly initialized.
* The ``make_cffi.py`` script used to build the CFFI bindings now
calls ``distutils.sysconfig.customize_compiler()`` so compiler
customizations (such as honoring the ``CC`` environment variable)
are performed.
* The ``make_cffi.py`` script now sets ``LC_ALL=C`` when invoking
the preprocessor in an attempt to normalize output to ASCII.
Changes
-------
* Bundled zstandard library upgraded from 1.4.4 to 1.4.5.
* ``setup.py`` is now executable.
* Python code reformatted with black using 80 character line lengths.
Zstd v1.4.5 Release Notes
This is a fairly important release which includes performance improvements and new major CLI features. It also fixes a few corner cases, making it a recommended upgrade.
perf: Improved decompression speed (x64 >+5%, ARM >+15%), by @terrelln
perf: Automatically downsizes ZSTD_DCtx when too large for too long
perf: Improved fast compression speed on aarch64
perf: Small level 1 compression speed gains (depending on compiler)
fix: Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
api: ZDICT_finalizeDictionary() is promoted to stable
api: new experimental parameter ZSTD_d_stableOutBuffer
build: Generate a single-file libzstd library
build: Relative includes, no longer require -I flags for zstd lib subdirs
build: zstd now compiles cleanly under -pedantic
build: zstd now compiles with make-4.3
build: Support mingw cross-compilation from Linux, by @Ericson2314
build: Meson multi-thread build fix on windows
build: Some misc icc fixes backed by new ci test on travis
cli: New --patch-from command, create and apply patches from files, by @bimbashreshta
cli: --filelist= : Provide a list of files to operate upon from a file
cli: -b can now benchmark multiple files in decompression mode
cli: New --no-content-size command
cli: New --show-default-cparams command
misc: new diagnosis tool, checked_flipped_bits, in contrib/, by @felixhandte
misc: Extend largeNbDicts benchmark to compression
misc: experimental edit-distance match finder in contrib/
doc: Improved beginner CONTRIBUTING.md docs
doc: New issue templates for zstd
1.7.1 [2020-06-13]
==================
* Restore `LIBZIP_VERSION_{MAJOR,MINOR,MICRO}` symbols.
* Fixes warnings reported by PVS-Studio.
* Add `LIBZIP_DO_INSTALL` build setting to make it easier to use
libzip as subproject.
- Remove pkgsrc patches (merged upstream)
- Move OS specific helper code to devel/smake/Makefile.common
Changes from AN-2020-05-25:
- libmdgest: Added a "defined(_M_ARM)" check for MSVC byte order
definitions (byte_order.h).
Thanks to "Excalibur" for reporting.
- star: SmartOS supports aclutils.h as published include file (what we
intented to include in Schillix-ON as well, since it is needed for
libsec) and aclutils.h includes ctype.h. We thus need to
#include <ctype.h> before star.h in acl_unix.c
The problem occurred because we did already have a aclutils.h related
autoconf test, even though Schillix-ON does not yet ship aclutils.h
Thanks to Michael Bäuerle from pkgsrc for reporting.
- star: The subst command (since 2018) malloc()s the space for a copy
of the old string in case that the string Is too long for the static
storage. It did however still use the static buffer instead of a
pointer to the allocated space. We now use the allocated space if
needed.
- star: The subst command for pax now supports the \1, \2, ... escapes
for \(...\) selections in the from pattern, like it is used by sed(1).
Thanks to Kristyna Streitova for reminding on this.
- star: A new unit test for this new feature has been added, using the
example from the SUSE bug-report for the above substitute command.
- star: A new subst option -pax-s has been added that supports sed(1)
like substitutions. The old option -s continues to support change(1)
like substititions.
NOTE: Both pax -s and star -pax-s silently fall back to change(1)-like
substitutions in case that a target platform does not support "regex"
in libc.
A simple & lightweight Qt file archiver.
The core I/O functions are ported from Engrampa (a Gnome File Roller fork).
This is only a front-end (a graphical interface) to archiving programs
like tar and zip.
This is part of LXQt-0.15.0 desktop
QuaZIP is the C++ wrapper for Gilles Vollant's ZIP/UNZIP package
(AKA Minizip) using Trolltech's Qt library.
If you need to write files to a ZIP archive or read files from one
using QIODevice API, QuaZIP is exactly the kind of tool you need.