From patchwork Tue Mar 5 11:24:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adolf Belka X-Patchwork-Id: 7590 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature ECDSA (secp384r1)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4TptWK23gyz3ww4 for ; Tue, 5 Mar 2024 11:24:29 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature ECDSA (secp384r1)) (Client CN "mail02.haj.ipfire.org", Issuer "R3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4TptWC4VF6z2G3; Tue, 5 Mar 2024 11:24:23 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4TptWC410Jz32q0; Tue, 5 Mar 2024 11:24:23 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) client-signature ECDSA (secp384r1)) (Client CN "mail01.haj.ipfire.org", Issuer "R3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4TptW23s6jz32q7 for ; Tue, 5 Mar 2024 11:24:14 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4TptW22FcBz9M; Tue, 5 Mar 2024 11:24:14 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1709637854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OLQ5OH/YbB/wfmhL+lXoXbwBuPw7x1qX30BK8Y+iCiA=; b=MKhb7fGHJZ32myLdX8dS86V+jkh+ZB3rEaR0N1rG9M8hmuZcDE7wiW5Qcs+HGx0HBQiR8z c7o23IdZfwBb1VAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1709637854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OLQ5OH/YbB/wfmhL+lXoXbwBuPw7x1qX30BK8Y+iCiA=; b=jhm4U7bd51W7JKfJ6zN8Wa1iow3+4jSI+VHECw6vDzWOIfmxZncU/4oIxiwjD8Ow8eaA33 cSVJKotjLVP4e5zCB+pjHKWq+mRzpI1+s73rJxUj4sCuSm+yrQlCtQMUH0ylMcKRVlSOk4 X4iemJdvjIt7LLys+NOfRFlpDfFjYalxM1TsqlWFJvnWn4WFZi/UO+aqxqCldL0rLjkn++ Bo2Lb+WKWBseM/az1ySh1a2A7vrf0Epy76YUxXc3gJH3kDg5WvUzIodCzU3L+PAfC1UrUB 853nLeLHKCFh0ewy9lcyVRaH2zJGZM4dLsb3vVvMoYS/kGDK2adNGK/lB7mgEg== From: Adolf Belka To: development@lists.ipfire.org Subject: [PATCH] xz: Update to version 5.6.0 Date: Tue, 5 Mar 2024 12:24:05 +0100 Message-ID: <20240305112405.3404991-9-adolf.belka@ipfire.org> In-Reply-To: <20240305112405.3404991-1-adolf.belka@ipfire.org> References: <20240305112405.3404991-1-adolf.belka@ipfire.org> MIME-Version: 1.0 Message-ID-Hash: E6LEU3W7CLQ674AU4XIVQIQARYRLCZ2Q X-Message-ID-Hash: E6LEU3W7CLQ674AU4XIVQIQARYRLCZ2Q X-MailFrom: adolf.belka@ipfire.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: IPFire development talk Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: - Update from version 5.4.6 to 5.6.0 - Update of rootfile - Changelog 5.6.0 (2024-02-24) This bumps the minor version of liblzma because new features were added. The API and ABI are still backward compatible with liblzma 5.4.x and 5.2.x and 5.0.x. NOTE: As described in the NEWS for 5.5.2beta, the core components are now under the BSD Zero Clause License (0BSD). Since 5.5.2beta: * liblzma: - Disabled the branchless C variant in the LZMA decoder based on the benchmark results from the community. - Disabled x86-64 inline assembly on x32 to fix the build. * Sandboxing support in xz: - Landlock is now used even when xz needs to create files. In this case the sandbox is has to be more permissive than when no files need to be created. A similar thing was already in use with pledge(2) since 5.3.4alpha. - Landlock and pledge(2) are now stricter when reading from more than one input file and only writing to standard output. - Added support for Landlock ABI version 4. * CMake: - Default to -O2 instead of -O3 with CMAKE_BUILD_TYPE=Release. -O3 is not useful for speed and makes the code larger. - Now builds lzmainfo and lzmadec. - xzdiff, xzgrep, xzless, xzmore, and their symlinks are now installed. The scripts are also tested during "make test". - Added translation support for xz, lzmainfo, and the man pages. - Applied the symbol versioning workaround for MicroBlaze that is used in the Autotools build. - The general XZ Utils and liblzma API documentation is now installed. - The CMake component names were changed a little and several were added. liblzma_Runtime and liblzma_Development are unchanged. - Minimum required CMake version is now 3.14. However, translation support is disabled with CMake versions older than 3.20. - The CMake-based build is now close to feature parity with the Autotools-based build. Most importantly a few tests aren't run yet. Testing the CMake-based build on different operating systems would be welcome now. See the comment at the top of CMakeLists.txt. * Fixed a bug in the Autotools feature test for ARM64 CRC32 instruction support for old versions of Clang. This did not affect the CMake build. * Windows: - The build instructions in INSTALL and windows/INSTALL*.txt were revised completely. - windows/build-with-cmake.bat along with the instructions in windows/INSTALL-MinGW-w64_with_CMake.txt should make it very easy to build liblzma.dll and xz.exe on Windows using CMake and MinGW-w64 with either GCC or Clang/LLVM. - windows/build.bash was updated. It now works on MSYS2 and on GNU/Linux (cross-compiling) to create a .zip and .7z package for 32-bit and 64-bit x86 using GCC + MinGW-w64. * The TODO file is no longer installed as part of the documentation. The file is out of date and does not reflect the actual tasks that will be completed in the future. * Translations: - Translated lzmainfo man pages are now installed. These had been forgotten in earlier versions. - Updated Croatian, Esperanto, German, Hungarian, Korean, Polish, Romanian, Spanish, Swedish, Vietnamese, and Ukrainian translations. - Updated German, Korean, Romanian, and Ukrainian man page translations. * Added a few tests. Summary of new features added in the 5.5.x development releases: * liblzma: - LZMA decoder: Speed optimizations to the C code and added GCC & Clang compatible inline assembly for x86-64. - Added lzma_mt_block_size() to recommend a Block size for multithreaded encoding. - Added CLMUL-based CRC32 on x86-64 and E2K with runtime processor detection. Similar to CRC64, on 32-bit x86 it isn't available unless --disable-assembler is used. - Optimized the CRC32 calculation on ARM64 platforms using the CRC32 instructions. Runtime detection for the instruction is used on GNU/Linux, FreeBSD, Windows, and macOS. If the compiler flags indicate unconditional CRC32 instruction support (+crc) then the generic version is not built. - Added definitions of mask values like LZMA_INDEX_CHECK_MASK_CRC32 to . * xz: - Multithreaded mode is now the default. This improves compression speed and creates .xz files that can be decompressed in multithreaded mode. The downsides are increased memory usage and slightly worse compression ratio. - Added a new command line option --filters to set the filter chain using the liblzma filter string syntax. - Added new command line options --filters1 ... --filters9 to set additional filter chains using the liblzma filter string syntax. The --block-list option now allows specifying filter chains that were set using these new options. - Ported the command line tools to Windows MSVC. Visual Studio 2015 or later is required. * Added lz4 support to xzdiff/xzcmp and xzgrep. 5.5.2beta (2024-02-14) * Licensing change: The core components are now under the BSD Zero Clause License (0BSD). In XZ Utils 5.4.6 and older and 5.5.1alpha these components are in the public domain and obviously remain so; the change affects the new releases only. 0BSD is an extremely permissive license which doesn't require retaining or reproducing copyright or license notices when distributing the code, thus in practice there is extremely little difference to public domain. * liblzma - Significant speed optimizations to the LZMA decoder were made. There are now three variants that can be chosen at build time: * Basic C version: This is a few percent faster than 5.4.x due to some new optimizations. * Branchless C: This is currently the default on platforms for which there is no assembly code. This should be a few percent faster than the basic C version. * x86-64 inline assembly. This works with GCC and Clang. The default choice can currently be overridden by setting LZMA_RANGE_DECODER_CONFIG in CPPFLAGS: 0 means the basic version and 3 means that branchless C version. - Optimized the CRC32 calculation on ARM64 platforms using the CRC32 instructions. The instructions are optional in ARMv8.0 and are required in ARMv8.1 and later. Runtime detection for the instruction is used on GNU/Linux, FreeBSD, Windows, and macOS. If the compiler flags indicate unconditional CRC32 instruction support (+crc) then the generic version is not built. * Added lz4 support to xzdiff/xzcmp and xzgrep. * Man pages of xzdiff/xzcmp, xzgrep, and xzmore were rewritten to simplify licensing of the man page translations. * Translations: - Updated Chinese (simplified), German, Korean, Polish, Romanian, Spanish, Swedish, and Ukrainian translations. - Updated German, Korean, Romanian, and Ukrainian man page translations. * Small improvements to the tests. * Added doc/examples/11_file_info.c. It was added to the Git repository in 2017 but forgotten to be added into distribution tarballs. * Removed doc/examples_old. These were from 2012. * Removed the macos/build.sh script. It had not been updated since 2013. 5.5.1alpha (2024-01-26) * Added a new filter for RISC-V binaries. The filter can be used for 32-bit and 64-bit binaries with either little or big endianness. In liblzma, the Filter ID is LZMA_FILTER_RISCV (0x0B) and the xz option is --riscv. liblzma filter string syntax recognizes this filter as "riscv". * liblzma: - Added lzma_mt_block_size() to recommend a Block size for multithreaded encoding - Added CLMUL-based CRC32 on x86-64 and E2K with runtime processor detection. Similar to CRC64, on 32-bit x86 it isn't available unless --disable-assembler is used. - Implemented GNU indirect function (IFUNC) as a runtime function dispatching method for CRC32 and CRC64 fast implementations on x86. Only GNU/Linux (glibc) and FreeBSD builds will use IFUNC, unless --enable-ifunc is specified to configure. - Added definitions of mask values like LZMA_INDEX_CHECK_MASK_CRC32 to . - The XZ logo is now included in the Doxygen generated documentation. It is licensed under Creative Commons Attribution-ShareAlike 4.0. * xz: - Multithreaded mode is now the default. This improves compression speed and creates .xz files that can be decompressed multithreaded at the cost of increased memory usage and slightly worse compression ratio. - Added new command line option --filters to set the filter chain using liblzma filter string syntax. - Added new command line options --filters1 ... --filters9 to set additional filter chains using liblzma filter string syntax. The --block-list option now allows specifying filter chains that were set using these new options. - Added support for Linux Landlock as a sandboxing method. - xzdec now supports pledge(2), Capsicum, and Linux Landlock as sandboxing methods. - Progress indicator time stats remain accurate after pausing xz with SIGTSTP. - Ported xz and xzdec to Windows MSVC. Visual Studio 2015 or later is required. * CMake Build: - Supports pledge(2), Capsicum, and Linux Landlock sandboxing methods. - Replacement functions for getopt_long() are used on platforms that do not have it. * Enabled unaligned access by default on PowerPC64LE and on RISC-V targets that define __riscv_misaligned_fast. * Tests: - Added two new fuzz targets to OSS-Fuzz. - Implemented Continuous Integration (CI) testing using GitHub Actions. * Changed quoting style from `...' to '...' in all messages, scripts, and documentation. * Added basic Codespell support to help catch typo errors. Signed-off-by: Adolf Belka --- config/rootfiles/common/xz | 35 ++++++++++++----------------------- lfs/xz | 4 ++-- 2 files changed, 14 insertions(+), 25 deletions(-) diff --git a/config/rootfiles/common/xz b/config/rootfiles/common/xz index c38db650a..47804e133 100644 --- a/config/rootfiles/common/xz +++ b/config/rootfiles/common/xz @@ -41,17 +41,18 @@ usr/bin/xzmore #usr/lib/liblzma.la #usr/lib/liblzma.so usr/lib/liblzma.so.5 -usr/lib/liblzma.so.5.4.6 +usr/lib/liblzma.so.5.6.0 #usr/lib/pkgconfig/liblzma.pc #usr/share/doc/xz #usr/share/doc/xz/AUTHORS #usr/share/doc/xz/COPYING +#usr/share/doc/xz/COPYING.0BSD #usr/share/doc/xz/COPYING.GPLv2 #usr/share/doc/xz/NEWS #usr/share/doc/xz/README #usr/share/doc/xz/THANKS -#usr/share/doc/xz/TODO #usr/share/doc/xz/api +#usr/share/doc/xz/api/COPYING.CC-BY-SA-4.0 #usr/share/doc/xz/api/annotated.html #usr/share/doc/xz/api/base_8h.html #usr/share/doc/xz/api/bc_s.png @@ -120,16 +121,15 @@ usr/lib/liblzma.so.5.4.6 #usr/share/doc/xz/api/tabs.css #usr/share/doc/xz/api/version_8h.html #usr/share/doc/xz/api/vli_8h.html +#usr/share/doc/xz/api/xz-logo.png #usr/share/doc/xz/examples #usr/share/doc/xz/examples/00_README.txt #usr/share/doc/xz/examples/01_compress_easy.c #usr/share/doc/xz/examples/02_decompress.c #usr/share/doc/xz/examples/03_compress_custom.c #usr/share/doc/xz/examples/04_compress_easy_mt.c +#usr/share/doc/xz/examples/11_file_info.c #usr/share/doc/xz/examples/Makefile -#usr/share/doc/xz/examples_old -#usr/share/doc/xz/examples_old/xz_pipe_comp.c -#usr/share/doc/xz/examples_old/xz_pipe_decomp.c #usr/share/doc/xz/faq.txt #usr/share/doc/xz/history.txt #usr/share/doc/xz/lzma-file-format.txt @@ -168,6 +168,7 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/de/man1/lzless.1 #usr/share/man/de/man1/lzma.1 #usr/share/man/de/man1/lzmadec.1 +#usr/share/man/de/man1/lzmainfo.1 #usr/share/man/de/man1/lzmore.1 #usr/share/man/de/man1/unlzma.1 #usr/share/man/de/man1/unxz.1 @@ -184,21 +185,16 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/fr #usr/share/man/fr/man1 #usr/share/man/fr/man1/lzcat.1 -#usr/share/man/fr/man1/lzcmp.1 -#usr/share/man/fr/man1/lzdiff.1 #usr/share/man/fr/man1/lzless.1 #usr/share/man/fr/man1/lzma.1 #usr/share/man/fr/man1/lzmadec.1 -#usr/share/man/fr/man1/lzmore.1 +#usr/share/man/fr/man1/lzmainfo.1 #usr/share/man/fr/man1/unlzma.1 #usr/share/man/fr/man1/unxz.1 #usr/share/man/fr/man1/xz.1 #usr/share/man/fr/man1/xzcat.1 -#usr/share/man/fr/man1/xzcmp.1 #usr/share/man/fr/man1/xzdec.1 -#usr/share/man/fr/man1/xzdiff.1 #usr/share/man/fr/man1/xzless.1 -#usr/share/man/fr/man1/xzmore.1 #usr/share/man/ko #usr/share/man/ko/man1 #usr/share/man/ko/man1/lzcat.1 @@ -210,6 +206,7 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/ko/man1/lzless.1 #usr/share/man/ko/man1/lzma.1 #usr/share/man/ko/man1/lzmadec.1 +#usr/share/man/ko/man1/lzmainfo.1 #usr/share/man/ko/man1/lzmore.1 #usr/share/man/ko/man1/unlzma.1 #usr/share/man/ko/man1/unxz.1 @@ -249,27 +246,16 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/pt_BR #usr/share/man/pt_BR/man1 #usr/share/man/pt_BR/man1/lzcat.1 -#usr/share/man/pt_BR/man1/lzcmp.1 -#usr/share/man/pt_BR/man1/lzdiff.1 -#usr/share/man/pt_BR/man1/lzegrep.1 -#usr/share/man/pt_BR/man1/lzfgrep.1 -#usr/share/man/pt_BR/man1/lzgrep.1 #usr/share/man/pt_BR/man1/lzless.1 #usr/share/man/pt_BR/man1/lzma.1 #usr/share/man/pt_BR/man1/lzmadec.1 -#usr/share/man/pt_BR/man1/lzmore.1 +#usr/share/man/pt_BR/man1/lzmainfo.1 #usr/share/man/pt_BR/man1/unlzma.1 #usr/share/man/pt_BR/man1/unxz.1 #usr/share/man/pt_BR/man1/xz.1 #usr/share/man/pt_BR/man1/xzcat.1 -#usr/share/man/pt_BR/man1/xzcmp.1 #usr/share/man/pt_BR/man1/xzdec.1 -#usr/share/man/pt_BR/man1/xzdiff.1 -#usr/share/man/pt_BR/man1/xzegrep.1 -#usr/share/man/pt_BR/man1/xzfgrep.1 -#usr/share/man/pt_BR/man1/xzgrep.1 #usr/share/man/pt_BR/man1/xzless.1 -#usr/share/man/pt_BR/man1/xzmore.1 #usr/share/man/ro #usr/share/man/ro/man1 #usr/share/man/ro/man1/lzcat.1 @@ -281,6 +267,7 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/ro/man1/lzless.1 #usr/share/man/ro/man1/lzma.1 #usr/share/man/ro/man1/lzmadec.1 +#usr/share/man/ro/man1/lzmainfo.1 #usr/share/man/ro/man1/lzmore.1 #usr/share/man/ro/man1/unlzma.1 #usr/share/man/ro/man1/unxz.1 @@ -305,6 +292,7 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/uk/man1/lzless.1 #usr/share/man/uk/man1/lzma.1 #usr/share/man/uk/man1/lzmadec.1 +#usr/share/man/uk/man1/lzmainfo.1 #usr/share/man/uk/man1/lzmore.1 #usr/share/man/uk/man1/unlzma.1 #usr/share/man/uk/man1/unxz.1 @@ -318,3 +306,4 @@ usr/lib/liblzma.so.5.4.6 #usr/share/man/uk/man1/xzgrep.1 #usr/share/man/uk/man1/xzless.1 #usr/share/man/uk/man1/xzmore.1 + diff --git a/lfs/xz b/lfs/xz index e0b905a22..1dae1c0db 100644 --- a/lfs/xz +++ b/lfs/xz @@ -24,7 +24,7 @@ include Config -VER = 5.4.6 +VER = 5.6.0 THISAPP = xz-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -45,7 +45,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_BLAKE2 = d609590f1e9f13404988050e1bfdc623b996794b603cf2e39d2fd592be1967c97d8beaba9196eae4a0d448a432b1d7499986b7f669e736b65ec67590a04af9f7 +$(DL_FILE)_BLAKE2 = a297ad6fd1fe0c90bfdd0187dcc2d9377bc8fd047e4688676d7f3d6861b6f6d116f08f913bd1ca60b875b3b97cad04b367cde4666f95693c15e2ed7e43a17af6 install : $(TARGET)