Re: [LFS Trac] #5684: xz-5.8.0

"LFS Trac" ([email protected] via lfs-book Mailing List) <[email protected]>
Newsgroups gmane.linux.lfs.book
Message-ID <[email protected]>
#5684: xz-5.8.0
-------------------------+-----------------------
 Reporter:  Bruce Dubbs  |       Owner:  lfs-book
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  12.4
Component:  Book         |     Version:  git
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+-----------------------
Comment (by Bruce Dubbs):

 XZ Utils Release Notes

 5.8.0 (2025-03-25)

     This bumps the minor version of liblzma because new features were
     added. The API and ABI are still backward compatible with liblzma
     5.6.x, 5.4.x, 5.2.x, and 5.0.x.

     * liblzma on 32/64-bit x86: When possible, use SSE2 intrinsics
       instead of memcpy() in the LZMA/LZMA2 decoder. In typical cases,
       this may reduce decompression time by 0-5 %. However, when built
       against musl libc, over 15 % time reduction was observed with
       highly compressed files.

     * CMake: Make the feature test macros match the Autotools-based
       build on NetBSD, Darwin, and mingw-w64.

     * Update the Croatian, Italian, Portuguese, and Romanian
       translations.

     * Update the German, Italian, Korean, Romanian, Serbian, and
       Ukrainian man page translations.

 Summary of changes in the 5.7.x development releases:

     * Mark the following LZMA Utils script aliases as deprecated:
       lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and lzfgrep.

     * liblzma:

         - Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
           endiannesses) and those 64-bit RISC-V processors that
           support fast unaligned access.

         - Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
           to lzma/bcj.h. These are primarily for erofs-utils.

         - x86/x86-64/E2K CLMUL CRC code was rewritten.

         - Use the CRC32 instructions on LoongArch.

     * xz:

         - Synchronize the output file and its directory using fsync()
           before deleting the input file. No syncing is done when xz
           isn't going to delete the input file.

         - Add --no-sync to disable the sync-before-delete behavior.

         - Make --single-stream imply --keep.

     * xz, xzdec, lzmainfo: When printing messages, replace
       non-printable characters with question marks.

     * xz and xzdec on Linux: Support Landlock ABI versions 5 and 6.

     * CMake: Revise the configuration variables and some of their
       options, and document them in the file INSTALL. CMake support
       is no longer experimental. (It was already not experimental
       when building for native Windows.)

     * Add build-aux/license-check.sh.

 5.7.2beta (2025-03-08)

     * On the man pages, mark the following LZMA Utils script aliases as
       deprecated: lzcmp, lzdiff, lzless, lzmore, lzgrep, lzegrep, and
       lzfgrep. The commands that start with xz* instead of lz* have
       identical behavior.

       The LZMA Utils aliases lzma, unlzma, and lzcat aren't deprecated
       because some of these aliases are still in common use. lzmadec
       and lzmainfo aren't deprecated either.

     * xz: In the ENVIRONMENT section of the man page, warn about
       problems that some uses of XZ_DEFAULTS and XZ_OPT may create.

     * Windows (native builds, not Cygwin): In xz, xzdec, and lzmadec,
       avoid an error message on broken pipe.

     * Autotools: Fix out-of-tree builds when using the bundled
       getopt_long.

     * Translations:

         - Updated: Chinese (traditional), Croatian, Finnish, Georgian,
           German, Korean, Polish, Romanian, Serbian, Spanish, Swedish,
           Turkish, and Ukrainian

         - Added: Dutch

     * Man page translations:

         - Updated: German, Korean, Romanian, and Ukrainian

         - Added: Italian and Serbian

 5.7.1alpha (2025-01-23)

     * All fixes from 5.6.4.

     * liblzma:

         - Improve LZMA/LZMA2 encoder speed on 64-bit PowerPC (both
           endiannesses) and those 64-bit RISC-V processors that
           support fast unaligned access.

         - x86/x86-64/E2K CLMUL CRC code was rewritten. It's faster and
           doesn't cause false positives from sanitizers. Attributes
           like __attribute__((__no_sanitize_address__)) are no longer
           present.

         - On 32-bit x86, CLMUL CRC and the old (but still good)
           assembly versions now co-exist with runtime detection.
           Both Autotools and CMake build systems handle this
           automatically now.

         - Use the CRC32 instructions on LoongArch to make CRC32
           calculation faster.

         - Add low-level APIs for RISC-V, ARM64, and x86 BCJ filters
           to lzma/bcj.h. These are primarily for erofs-utils.

         - Minor tweaks to ARM64 CRC32 code and BCJ filters were made.

     * xz:

         - Synchronize the output file and its directory before deleting
           the input file using fsync(). This reduces the probability of
           data loss after a system crash. However, it can be a major
           performance hit if processing many small files.

           NOTE: No syncing is done when xz isn't going to delete
           the input file.

         - Add a new option --no-sync to disable the sync-before-delete
           behavior. It's useful when compressing many small files and
           one doesn't worry about data loss in case of a system crash.

         - Make --single-stream imply --keep.

         - Use automatic word wrapping for the text in --help and
           similar situations to hopefully make the strings easier for
           majority of translators (no need to count spaces anymore).

     * xz, xzdec, lzmainfo: When printing messages, replace
       non-printable characters with question marks. This way
       malicious filenames cannot be used to send escape sequences
       to a terminal. This change is also applied to filenames shown
       in "xz --robot --list".

     * xz and xzdec on Linux: Add support for Landlock ABI versions 5
       and 6.

     * CMake updates:

         - Increase the minimum required CMake version to 3.20.

         - Revise the configuration variables and some of their options.
           Document them in the file INSTALL.

         - Attempt to produce liblzma.pc so that the paths are based on
           ${prefix}, which makes it simpler to override the paths
           if the liblzma files have been moved.

         - To enable translations, gettext-tools is now required. The
           CMake build no longer supports installing pre-compiled
           message catalog binary files (po/*.gmo).

         - Apple: Use Mach-O shared library versioning that is
           compatible with GNU Libtool. This should make it easier to
           switch between the build systems on Apple OSes that enforce
           the correct compatibility_version (macOS >= 12 doesn't?).
           This change is backward compatible: binaries linked against
           old CMake-built liblzma will run with liblzma that uses
           Libtool style versioning.

         - Windows (not Cygwin): Document CMAKE_DLL_NAME_WITH_SOVERSION
           (CMake >= 3.27) in the file INSTALL. This option should
           usually be left to its default value (OFF). It can be set
           to ON if the liblzma DLL filename must be compatible with
           the versioned filename produced by GNU Libtool. For example,
           binaries distributed in MSYS2 use a versioned DLL filename.

         - CMake support is no longer experimental. (It was already
           not experimental when building for native Windows.)

     * Windows: Building liblzma with Visual Studio 2013 is no longer
       supported. Visual Studio 2015 or later (with CMake) can be used
       to build liblzma and the command line tools.

     * Add preliminary Georgian translation. This already contains
       translations of most of the strings that are now automatically
       word wrapped.

     * Add build-aux/license-check.sh. Without arguments, it checks that
       no license information has been forgotten. With the -v argument,
       it shows the license info (or the lack of it) for each file.

       If the .git directory is available, only the files in the
       repository are checked. Without the .git directory, a clean tree
       from an extracted release tarball is expected.
-- 
Ticket URL: <https://wiki.linuxfromscratch.org/lfs/ticket/5684#comment:1>
LFS Trac <https://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.

-- 
http://lists.linuxfromscratch.org/sympa/info/lfs-book
Unsubscribe: See the above information page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.