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.
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.
Libarchive 3.4.3 is a feature and bugfix release.
New features:
support for pzstd compressed files (#1357)
support for RHT.security.selinux tar extended attribute (#1348)
Important bugfixes:
various zstd fixes and improvements (#1342#1352#1359)
child process handling fixes (#1372)
Libarchive 3.4.2 is a feature and security release.
New features:
support for atomic file extraction (bsdtar -x --safe-writes) (#1289)
support for mbed TLS (PolarSSL) (#1301)
Important bugfixes:
security fixes in RAR5 reader (#1280#1326)
compression buffer fix in XAR writer (#1317)
fix uname and gname longer than 32 characters in PAX writer (#1319)
fix segfault when archiving hard links in ISO9660 and XAR writers (#1325)
fix support for extracting 7z archive entries with Delta filter (#987)
Libarchive 3.4.1 is a feature and security release.
New features:
Unicode filename support for reading lha/lzh archives
New pax write option "xattrhdr"
Important bugfixes:
security fixes in wide string processing (#1276#1298)
security fixes in RAR5 reader (#1212#1217#1296)
security fixes and optimizations to write filter logic (#351)
security fix related to use of readlink(2) (1dae5a5)
sparse file handling fixes (#1218#1260)
Thanks to all contributors and bug reporters.
Special thanks to Christos Zoulas (@zoulasc) from NetBSD for the atomic file extraction feature.
v3.0.2:
This release removes py3c from the codebase and strips out unused Python 2 support code. No functional changes are included with this release.
v3.0.1:
This release fixes an issue that prevented the OSX wheels from being published to PyPi, and contains no functional changes.
v3.0.0:
This release:
* Drops support for Python 2 (although some dead code remains for future removal)
* Adds streams support thanks to the hard work of @tSed
* Fixes a performance bug with the frame bindings - thanks to @bjonen for the careful report and reproducer
* Adds Python 3.8 support
- Check which systems need and support processing tables with tbl
The default case matches for NetBSD (no processing)
- Man pages are installed into native OS sections
PLIST must match this logic (use variables)
These PLIST files have been autogenerated by mk/haskell.mk using
HS_UPDATE_PLIST=yes during a bulk build. They will help to track changes
to the packages. The Haskell packages didn't have PLIST files because
their paths contained package hashes. These hashes are now determined by
mk/haskell.mk, which makes it easy to generate easy to read PLIST files.
Added SPECIAL_PERMS for config file (no more "wrong permissions"
warning if installed as nonprivileged user.
Changes from AN-2020-03-11:
- configure: The autoconfiguration now has an enhanced test for waitid()
that was needed since Mac OS is still not POSIX compliant and returns 0
instead of the signal number for a process that has been killed by a
signal. MacOS did pass the POSIX certification as a result of a missing
test for that problem.
Since every vertified OS needs to run an annual refresh the
certification with recent versions of the test, I guess that
Mac OS (Catalina updates) may become more compliant witin a year.
- psmake: The portable bootstrap compile environment for smake missed
a symlink for unsetenv.c to libschily since the related code has been
moved to libschily in 2018. This prevented compilation on IRIX.
Thanks to Kazuo Kuroi for reporting
- librmt: the code has been modified to allow librmt to be finally
compiled without a need to link against libschily. This makes it
easier to link ufsdump/ufsrestore from OpenSolaris against librmt.
A call to errmsg() was replaced by a call to errmsgno() that has
a private implementation in librmt already.
- librmt: the man pages have been modified to make sure that man2html
is able to correctly create links to referenced other man pages.
- libstreamar: streamarchive.4 now mentions that the POSIX.1-2001
tar extensions are based on a Sun Microsystems proposal from 1997.
- star: the man page now mentions that it is preferred to use the
source from the schilytools instead of a star specific release.
Changes from AN-2020-03-27:
Changes from AN-2020-04-18:
- librmt: A few small enhancements have been added to the man pages.
This was a result of a code review for SchilliX-ON by
Eric Ackermann
- star: The unit tests port/lpath.sh did not work on IRIX because
the "rm" command on IRIX is buggy and does not remove long path
names (path names longer than PATH_MAX). We now use a recursive
shell function to remove the long path.
- star: The new shell function in port/lpath.sh did crash Linux in
case that /bin/sh is "dash". "dash" is not POSIX compliant and
fails to support arbitrary long working directory names. Whe therefore
try to run the long path removal with "bosh", or at least "bash".
Only if none of both is present, we fall back to the system default
shell "/bin/sh".
Changes from AN-2020-05-11:
- Makefile system: A new version of the BSD make (bmake) program fixed
a bug in pattern macro substitution, so we are now able to detect
BSD make and to read BSD make program specific rules.
This could in theory allow us to support BSD make in the future,
but...
Note that we on the other side discovered a new bug with pattern
macro substitution in bsd make: The substitution:
$(FOO:%=bar/%)
is replaced by "bar/" with an empty "FOO", but of course, with an
empty FOO, the substitution should be empty as well.
This second bug (above) was fixed on May 6th, but we do not yet have
all needed make rules and we do not know whether other bugs may still
prevent the usability of BSD make. Supporting BSD make will be hard
as BSD make does not support pattern matching default rules and this
is important for placing the .o files into a sub-directory.
Also note that the portable program source for "bmake" from "pkgsrc"
is 2 years old and thus currently cannot be supported at all. If
you like to experiment on your own, you need to get this version:
http://crufty.net/help/sjg/bmake.html
see
http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz
and replace the newer files from the netbsd.org CVS tree by hand in
order to fix the first and second mentioned pattern macro substitution
bug.
- Makefile system: RULES/MKLINKS was enhanced to create a new symlink
RULES/r-bsdmake.tag that points to RULES/r-make.tag
- Makefile system: The archive makefiles.tar.bz2 has been added to the
schilytools tree to allow easy reuse of the makefile system for own
projects.
5.2.5:
* liblzma:
- Fixed several C99/C11 conformance bugs. Now the code is clean
under gcc/clang -fsanitize=undefined. Some of these changes
might have a negative effect on performance with old GCC
versions or compilers other than GCC and Clang. The configure
option --enable-unsafe-type-punning can be used to (mostly)
restore the old behavior but it shouldn't normally be used.
- Improved API documentation of lzma_properties_decode().
- Added a very minor encoder speed optimization.
* xz:
- Fixed a crash in "xz -dcfv not_an_xz_file". All four options
were required to trigger it. The crash occurred in the
progress indicator code when xz was in passthru mode where
xz works like "cat".
- Fixed an integer overflow with 32-bit off_t. It could happen
when decompressing a file that has a long run of zero bytes
which xz would try to write as a sparse file. Since the build
system enables large file support by default, off_t is
normally 64-bit even on 32-bit systems.
- Fixes for --flush-timeout:
* Fix semi-busy-waiting.
* Avoid unneeded flushes when no new input has arrived
since the previous flush was completed.
- Added a special case for 32-bit xz: If --memlimit-compress is
used to specify a limit that exceeds 4020 MiB, the limit will
be set to 4020 MiB. The values "0" and "max" aren't affected
by this and neither is decompression. This hack can be
helpful when a 32-bit xz has access to 4 GiB address space
but the specified memlimit exceeds 4 GiB. This can happen
e.g. with some scripts.
- Capsicum sandbox is now enabled by default where available
(FreeBSD >= 10). The sandbox debug messages (xz -vv) were
removed since they seemed to be more annoying than useful.
- DOS build now requires DJGPP 2.05 instead of 2.04beta.
A workaround for a locale problem with DJGPP 2.05 was added.
* xzgrep and other scripts:
- Added a configure option --enable-path-for-scripts=PREFIX.
It is disabled by default except on Solaris where the default
is /usr/xpg4/bin. See INSTALL for details.
- Added a workaround for a POSIX shell detection problem on
Solaris.
* Build systems:
- Added preliminary build instructions for z/OS. See INSTALL
section 1.2.9.
- Experimental CMake support was added. It should work to build
static liblzma on a few operating systems. It may or may not
work to build shared liblzma. On some platforms it can build
xz and xzdec too but those are only for testing. See the
comment in the beginning of CMakeLists.txt for details.
- Visual Studio project files were updated.
WindowsTargetPlatformVersion was removed from VS2017 files
and set to "10.0" in the added VS2019 files. In the future
the VS project files will be removed when CMake support is
good enough.
- New #defines in config.h: HAVE___BUILTIN_ASSUME_ALIGNED,
HAVE___BUILTIN_BSWAPXX, and TUKLIB_USE_UNSAFE_TYPE_PUNNING.
- autogen.sh has a new optional dependency on po4a and a new
option --no-po4a to skip that step. This matters only if one
wants to remake the build files. po4a is used to update the
translated man pages but as long as the man pages haven't
been modified, there's nothing to update and one can use
--no-po4a to avoid the dependency on po4a.
* Translations:
- XZ Utils translations are now handled by the Translation
Project: https://translationproject.org/domain/xz.html
- All man pages are now included in German too.
- New xz translations: Brazilian Portuguese, Finnish,
Hungarian, Chinese (simplified), Chinese (traditional),
and Danish (partial translation)
- Updated xz translations: French, German, Italian, and Polish
- Unfortunately a few new xz translations weren't included due
to technical problems like too long lines in --help output or
misaligned column headings in tables. In the future, many of
these strings will be split and e.g. the table column
alignment will be handled in software. This should make the
strings easier to translate.