git: 679e92405637 - stable/14 - MFC: MFV: xz 5.6.2.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 22 Dec 2024 07:33:13 UTC
The branch stable/14 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=679e924056374cedeef858d3b150ea89c1c42946 commit 679e924056374cedeef858d3b150ea89c1c42946 Author: Xin LI <delphij@FreeBSD.org> AuthorDate: 2024-06-04 01:14:43 +0000 Commit: Xin LI <delphij@FreeBSD.org> CommitDate: 2024-12-22 07:32:38 +0000 MFC: MFV: xz 5.6.2. (cherry picked from commit 3b35e7ee8de9b0260149a2b77e87a2b9c7a36244) --- contrib/xz/AUTHORS | 49 +- contrib/xz/COPYING | 103 +- contrib/xz/COPYING.0BSD | 11 + contrib/xz/ChangeLog | 17790 ++++++++++--------- contrib/xz/README | 57 +- contrib/xz/THANKS | 13 +- contrib/xz/TODO | 4 - contrib/xz/doxygen/Doxyfile | 2698 +-- contrib/xz/doxygen/update-doxygen | 137 +- contrib/xz/src/common/mythread.h | 30 +- contrib/xz/src/common/sysdefs.h | 18 +- contrib/xz/src/common/tuklib_common.h | 27 +- contrib/xz/src/common/tuklib_config.h | 2 + contrib/xz/src/common/tuklib_cpucores.c | 5 +- contrib/xz/src/common/tuklib_cpucores.h | 5 +- contrib/xz/src/common/tuklib_exit.c | 5 +- contrib/xz/src/common/tuklib_exit.h | 9 +- contrib/xz/src/common/tuklib_gettext.h | 5 +- contrib/xz/src/common/tuklib_integer.h | 56 +- contrib/xz/src/common/tuklib_mbstr.h | 5 +- contrib/xz/src/common/tuklib_mbstr_fw.c | 5 +- contrib/xz/src/common/tuklib_mbstr_width.c | 5 +- contrib/xz/src/common/tuklib_open_stdxxx.c | 5 +- contrib/xz/src/common/tuklib_open_stdxxx.h | 5 +- contrib/xz/src/common/tuklib_physmem.c | 25 +- contrib/xz/src/common/tuklib_physmem.h | 5 +- contrib/xz/src/common/tuklib_progname.c | 5 +- contrib/xz/src/common/tuklib_progname.h | 5 +- contrib/xz/src/liblzma/api/lzma.h | 31 +- contrib/xz/src/liblzma/api/lzma/base.h | 25 +- contrib/xz/src/liblzma/api/lzma/bcj.h | 10 +- contrib/xz/src/liblzma/api/lzma/block.h | 5 +- contrib/xz/src/liblzma/api/lzma/check.h | 5 +- contrib/xz/src/liblzma/api/lzma/container.h | 17 +- contrib/xz/src/liblzma/api/lzma/delta.h | 5 +- contrib/xz/src/liblzma/api/lzma/filter.h | 11 +- contrib/xz/src/liblzma/api/lzma/hardware.h | 5 +- contrib/xz/src/liblzma/api/lzma/index.h | 42 +- contrib/xz/src/liblzma/api/lzma/index_hash.h | 5 +- contrib/xz/src/liblzma/api/lzma/lzma12.h | 7 +- contrib/xz/src/liblzma/api/lzma/stream_flags.h | 5 +- contrib/xz/src/liblzma/api/lzma/version.h | 9 +- contrib/xz/src/liblzma/api/lzma/vli.h | 10 +- contrib/xz/src/liblzma/check/check.c | 5 +- contrib/xz/src/liblzma/check/check.h | 5 +- contrib/xz/src/liblzma/check/crc32_arm64.h | 122 + contrib/xz/src/liblzma/check/crc32_fast.c | 158 +- contrib/xz/src/liblzma/check/crc32_small.c | 5 +- contrib/xz/src/liblzma/check/crc32_table.c | 34 +- contrib/xz/src/liblzma/check/crc32_table_be.h | 4 +- contrib/xz/src/liblzma/check/crc32_table_le.h | 4 +- contrib/xz/src/liblzma/check/crc32_tablegen.c | 23 +- contrib/xz/src/liblzma/check/crc32_x86.S | 5 +- contrib/xz/src/liblzma/check/crc64_fast.c | 446 +- contrib/xz/src/liblzma/check/crc64_small.c | 5 +- contrib/xz/src/liblzma/check/crc64_table.c | 16 +- contrib/xz/src/liblzma/check/crc64_table_be.h | 4 +- contrib/xz/src/liblzma/check/crc64_table_le.h | 4 +- contrib/xz/src/liblzma/check/crc64_tablegen.c | 15 +- contrib/xz/src/liblzma/check/crc64_x86.S | 5 +- contrib/xz/src/liblzma/check/crc_common.h | 137 + contrib/xz/src/liblzma/check/crc_macros.h | 30 - contrib/xz/src/liblzma/check/crc_x86_clmul.h | 428 + contrib/xz/src/liblzma/common/alone_decoder.c | 5 +- contrib/xz/src/liblzma/common/alone_decoder.h | 5 +- contrib/xz/src/liblzma/common/alone_encoder.c | 5 +- contrib/xz/src/liblzma/common/auto_decoder.c | 5 +- .../xz/src/liblzma/common/block_buffer_decoder.c | 5 +- .../xz/src/liblzma/common/block_buffer_encoder.c | 5 +- .../xz/src/liblzma/common/block_buffer_encoder.h | 5 +- contrib/xz/src/liblzma/common/block_decoder.c | 5 +- contrib/xz/src/liblzma/common/block_decoder.h | 5 +- contrib/xz/src/liblzma/common/block_encoder.c | 5 +- contrib/xz/src/liblzma/common/block_encoder.h | 5 +- .../xz/src/liblzma/common/block_header_decoder.c | 5 +- .../xz/src/liblzma/common/block_header_encoder.c | 5 +- contrib/xz/src/liblzma/common/block_util.c | 5 +- contrib/xz/src/liblzma/common/common.c | 5 +- contrib/xz/src/liblzma/common/common.h | 5 +- .../xz/src/liblzma/common/easy_buffer_encoder.c | 5 +- .../xz/src/liblzma/common/easy_decoder_memusage.c | 5 +- contrib/xz/src/liblzma/common/easy_encoder.c | 5 +- .../xz/src/liblzma/common/easy_encoder_memusage.c | 5 +- contrib/xz/src/liblzma/common/easy_preset.c | 5 +- contrib/xz/src/liblzma/common/easy_preset.h | 10 +- contrib/xz/src/liblzma/common/file_info.c | 5 +- .../xz/src/liblzma/common/filter_buffer_decoder.c | 7 +- .../xz/src/liblzma/common/filter_buffer_encoder.c | 5 +- contrib/xz/src/liblzma/common/filter_common.c | 16 +- contrib/xz/src/liblzma/common/filter_common.h | 5 +- contrib/xz/src/liblzma/common/filter_decoder.c | 28 +- contrib/xz/src/liblzma/common/filter_decoder.h | 5 +- contrib/xz/src/liblzma/common/filter_encoder.c | 38 +- contrib/xz/src/liblzma/common/filter_encoder.h | 5 +- .../xz/src/liblzma/common/filter_flags_decoder.c | 5 +- .../xz/src/liblzma/common/filter_flags_encoder.c | 5 +- .../xz/src/liblzma/common/hardware_cputhreads.c | 5 +- contrib/xz/src/liblzma/common/hardware_physmem.c | 5 +- contrib/xz/src/liblzma/common/index.c | 5 +- contrib/xz/src/liblzma/common/index.h | 5 +- contrib/xz/src/liblzma/common/index_decoder.c | 16 +- contrib/xz/src/liblzma/common/index_decoder.h | 5 +- contrib/xz/src/liblzma/common/index_encoder.c | 5 +- contrib/xz/src/liblzma/common/index_encoder.h | 5 +- contrib/xz/src/liblzma/common/index_hash.c | 5 +- contrib/xz/src/liblzma/common/lzip_decoder.c | 5 +- contrib/xz/src/liblzma/common/lzip_decoder.h | 5 +- contrib/xz/src/liblzma/common/memcmplen.h | 37 +- contrib/xz/src/liblzma/common/microlzma_decoder.c | 5 +- contrib/xz/src/liblzma/common/microlzma_encoder.c | 5 +- contrib/xz/src/liblzma/common/outqueue.c | 5 +- contrib/xz/src/liblzma/common/outqueue.h | 10 +- .../xz/src/liblzma/common/stream_buffer_decoder.c | 5 +- .../xz/src/liblzma/common/stream_buffer_encoder.c | 5 +- contrib/xz/src/liblzma/common/stream_decoder.c | 5 +- contrib/xz/src/liblzma/common/stream_decoder.h | 5 +- contrib/xz/src/liblzma/common/stream_decoder_mt.c | 5 +- contrib/xz/src/liblzma/common/stream_encoder.c | 5 +- contrib/xz/src/liblzma/common/stream_encoder_mt.c | 5 +- .../xz/src/liblzma/common/stream_flags_common.c | 5 +- .../xz/src/liblzma/common/stream_flags_common.h | 5 +- .../xz/src/liblzma/common/stream_flags_decoder.c | 5 +- .../xz/src/liblzma/common/stream_flags_encoder.c | 5 +- contrib/xz/src/liblzma/common/string_conversion.c | 26 +- contrib/xz/src/liblzma/common/vli_decoder.c | 5 +- contrib/xz/src/liblzma/common/vli_encoder.c | 5 +- contrib/xz/src/liblzma/common/vli_size.c | 5 +- contrib/xz/src/liblzma/delta/delta_common.c | 5 +- contrib/xz/src/liblzma/delta/delta_common.h | 5 +- contrib/xz/src/liblzma/delta/delta_decoder.c | 10 +- contrib/xz/src/liblzma/delta/delta_decoder.h | 5 +- contrib/xz/src/liblzma/delta/delta_encoder.c | 5 +- contrib/xz/src/liblzma/delta/delta_encoder.h | 5 +- contrib/xz/src/liblzma/delta/delta_private.h | 5 +- contrib/xz/src/liblzma/liblzma.pc.in | 6 +- contrib/xz/src/liblzma/liblzma_generic.map | 4 +- contrib/xz/src/liblzma/liblzma_linux.map | 4 +- contrib/xz/src/liblzma/lz/lz_decoder.c | 48 +- contrib/xz/src/liblzma/lz/lz_decoder.h | 116 +- contrib/xz/src/liblzma/lz/lz_encoder.c | 9 +- contrib/xz/src/liblzma/lz/lz_encoder.h | 15 +- contrib/xz/src/liblzma/lz/lz_encoder_hash.h | 5 +- contrib/xz/src/liblzma/lz/lz_encoder_hash_table.h | 4 +- contrib/xz/src/liblzma/lz/lz_encoder_mf.c | 5 +- contrib/xz/src/liblzma/lzma/fastpos.h | 5 +- contrib/xz/src/liblzma/lzma/fastpos_table.c | 4 +- contrib/xz/src/liblzma/lzma/fastpos_tablegen.c | 17 +- contrib/xz/src/liblzma/lzma/lzma2_decoder.c | 5 +- contrib/xz/src/liblzma/lzma/lzma2_decoder.h | 5 +- contrib/xz/src/liblzma/lzma/lzma2_encoder.c | 5 +- contrib/xz/src/liblzma/lzma/lzma2_encoder.h | 5 +- contrib/xz/src/liblzma/lzma/lzma_common.h | 41 +- contrib/xz/src/liblzma/lzma/lzma_decoder.c | 760 +- contrib/xz/src/liblzma/lzma/lzma_decoder.h | 5 +- contrib/xz/src/liblzma/lzma/lzma_encoder.c | 18 +- contrib/xz/src/liblzma/lzma/lzma_encoder.h | 5 +- .../src/liblzma/lzma/lzma_encoder_optimum_fast.c | 5 +- .../src/liblzma/lzma/lzma_encoder_optimum_normal.c | 7 +- contrib/xz/src/liblzma/lzma/lzma_encoder_presets.c | 5 +- contrib/xz/src/liblzma/lzma/lzma_encoder_private.h | 9 +- contrib/xz/src/liblzma/rangecoder/price.h | 5 +- contrib/xz/src/liblzma/rangecoder/price_table.c | 4 +- contrib/xz/src/liblzma/rangecoder/price_tablegen.c | 22 +- contrib/xz/src/liblzma/rangecoder/range_common.h | 14 +- contrib/xz/src/liblzma/rangecoder/range_decoder.h | 839 +- contrib/xz/src/liblzma/rangecoder/range_encoder.h | 5 +- contrib/xz/src/liblzma/simple/arm.c | 5 +- contrib/xz/src/liblzma/simple/arm64.c | 5 +- contrib/xz/src/liblzma/simple/armthumb.c | 5 +- contrib/xz/src/liblzma/simple/ia64.c | 5 +- contrib/xz/src/liblzma/simple/powerpc.c | 5 +- contrib/xz/src/liblzma/simple/riscv.c | 755 + contrib/xz/src/liblzma/simple/simple_coder.c | 5 +- contrib/xz/src/liblzma/simple/simple_coder.h | 22 +- contrib/xz/src/liblzma/simple/simple_decoder.c | 5 +- contrib/xz/src/liblzma/simple/simple_decoder.h | 5 +- contrib/xz/src/liblzma/simple/simple_encoder.c | 5 +- contrib/xz/src/liblzma/simple/simple_encoder.h | 5 +- contrib/xz/src/liblzma/simple/simple_private.h | 5 +- contrib/xz/src/liblzma/simple/sparc.c | 5 +- contrib/xz/src/liblzma/simple/x86.c | 16 +- contrib/xz/src/liblzma/validate_map.sh | 6 +- contrib/xz/src/lzmainfo/lzmainfo.1 | 4 +- contrib/xz/src/lzmainfo/lzmainfo.c | 5 +- contrib/xz/src/xz/args.c | 186 +- contrib/xz/src/xz/args.h | 8 +- contrib/xz/src/xz/coder.c | 607 +- contrib/xz/src/xz/coder.h | 42 +- contrib/xz/src/xz/file_io.c | 144 +- contrib/xz/src/xz/file_io.h | 21 +- contrib/xz/src/xz/hardware.c | 11 +- contrib/xz/src/xz/hardware.h | 5 +- contrib/xz/src/xz/list.c | 31 +- contrib/xz/src/xz/list.h | 5 +- contrib/xz/src/xz/main.c | 91 +- contrib/xz/src/xz/main.h | 5 +- contrib/xz/src/xz/message.c | 94 +- contrib/xz/src/xz/message.h | 16 +- contrib/xz/src/xz/mytime.c | 105 +- contrib/xz/src/xz/mytime.h | 11 +- contrib/xz/src/xz/options.c | 7 +- contrib/xz/src/xz/options.h | 5 +- contrib/xz/src/xz/private.h | 26 +- contrib/xz/src/xz/sandbox.c | 355 + contrib/xz/src/xz/sandbox.h | 43 + contrib/xz/src/xz/signals.c | 29 +- contrib/xz/src/xz/signals.h | 5 +- contrib/xz/src/xz/suffix.c | 17 +- contrib/xz/src/xz/suffix.h | 5 +- contrib/xz/src/xz/util.c | 36 +- contrib/xz/src/xz/util.h | 19 +- contrib/xz/src/xz/xz.1 | 469 +- contrib/xz/src/xzdec/xzdec.1 | 6 +- contrib/xz/src/xzdec/xzdec.c | 180 +- lib/liblzma/Makefile | 1 + lib/liblzma/config.h | 123 +- usr.bin/xz/Makefile | 1 + 217 files changed, 15386 insertions(+), 13436 deletions(-) diff --git a/contrib/xz/AUTHORS b/contrib/xz/AUTHORS index 69bbfc3ef609..5eff238ae413 100644 --- a/contrib/xz/AUTHORS +++ b/contrib/xz/AUTHORS @@ -2,22 +2,20 @@ Authors of XZ Utils =================== - XZ Utils is developed and maintained by Lasse Collin - <lasse.collin@tukaani.org> and Jia Tan <jiat0218@gmail.com>. + XZ Utils is developed and maintained by + Lasse Collin <lasse.collin@tukaani.org>. Major parts of liblzma are based on code written by Igor Pavlov, specifically the LZMA SDK <https://7-zip.org/sdk.html>. Without this code, XZ Utils wouldn't exist. - The SHA-256 implementation in liblzma is based on the code found from - 7-Zip <https://7-zip.org/>, which has a modified version of the SHA-256 - code found from Crypto++ <https://www.cryptopp.com/>. The SHA-256 code - in Crypto++ was written by Kevin Springle and Wei Dai. + The SHA-256 implementation in liblzma is based on code written by + Wei Dai in Crypto++ Library <https://www.cryptopp.com/>. - Some scripts have been adapted from gzip. The original versions - were written by Jean-loup Gailly, Charles Levert, and Paul Eggert. - Andrew Dudman helped adapting the scripts and their man pages for - XZ Utils. + A few scripts have been adapted from GNU gzip. The original + versions were written by Jean-loup Gailly, Charles Levert, and + Paul Eggert. Andrew Dudman helped adapting the scripts and their + man pages for XZ Utils. The initial version of the threaded .xz decompressor was written by Sebastian Andrzej Siewior. @@ -25,15 +23,36 @@ Authors of XZ Utils The initial version of the .lz (lzip) decoder was written by Michał Górny. - CLMUL-accelerated CRC code was contributed by Ilya Kurdyukov. + Architecture-specific CRC optimizations were contributed by + Ilya Kurdyukov, Hans Jansen, and Chenxi Mao. Other authors: - Jonathan Nieder - Joachim Henke - The GNU Autotools-based build system contains files from many authors, - which I'm not trying to list here. + Special author: Jia Tan was a co-maintainer in 2022-2024. He and + the team behind him inserted a backdoor (CVE-2024-3094) into + XZ Utils 5.6.0 and 5.6.1 releases. He suddenly disappeared when + this was discovered. - Several people have contributed fixes or reported bugs. Most of them - are mentioned in the file THANKS. + Many people have contributed improvements or reported bugs. + Most of these people are mentioned in the file THANKS. + + The translations of the command line tools and man pages have been + contributed by many people via the Translation Project: + + - https://translationproject.org/domain/xz.html + - https://translationproject.org/domain/xz-man.html + + The authors of the translated man pages are in the header comments + of the man page files. In the source package, the authors of the + translations are in po/*.po and po4a/*.po files. + + Third-party code whose authors aren't listed here: + + - GNU getopt_long() in the 'lib' directory is included for + platforms that don't have a usable getopt_long(). + + - The build system files from GNU Autoconf, GNU Automake, + GNU Libtool, GNU Gettext, Autoconf Archive, and related files. diff --git a/contrib/xz/COPYING b/contrib/xz/COPYING index e54eeacfbf3f..aed21531497c 100644 --- a/contrib/xz/COPYING +++ b/contrib/xz/COPYING @@ -3,74 +3,81 @@ XZ Utils Licensing ================== Different licenses apply to different files in this package. Here - is a rough summary of which licenses apply to which parts of this - package (but check the individual files to be sure!): + is a summary of which licenses apply to which parts of this package: - - liblzma is in the public domain. + - liblzma is under the BSD Zero Clause License (0BSD). - - xz, xzdec, and lzmadec command line tools are in the public - domain unless GNU getopt_long had to be compiled and linked - in from the lib directory. The getopt_long code is under - GNU LGPLv2.1+. + - The command line tools xz, xzdec, lzmadec, and lzmainfo are + under 0BSD except that, on systems that don't have a usable + getopt_long, GNU getopt_long is compiled and linked in from the + 'lib' directory. The getopt_long code is under GNU LGPLv2.1+. - The scripts to grep, diff, and view compressed files have been - adapted from gzip. These scripts and their documentation are - under GNU GPLv2+. + adapted from GNU gzip. These scripts (xzgrep, xzdiff, xzless, + and xzmore) are under GNU GPLv2+. The man pages of the scripts + are under 0BSD; they aren't based on the man pages of GNU gzip. - - All the documentation in the doc directory and most of the - XZ Utils specific documentation files in other directories - are in the public domain. + - Most of the XZ Utils specific documentation that is in + plain text files (like README, INSTALL, PACKAGERS, NEWS, + and ChangeLog) are under 0BSD unless stated otherwise in + the file itself. The files xz-file-format.txt and + lzma-file-format.xt are in the public domain but may + be distributed under the terms of 0BSD too. - Note: The JavaScript files (under the MIT license) have - been removed from the Doxygen-generated HTML version of the - liblzma API documentation. Doxygen itself is under the GNU GPL - but the remaining files generated by Doxygen are not affected - by the licenses used in Doxygen because Doxygen licensing has - the following exception: + - Translated messages and man pages are under 0BSD except that + some old translations are in the public domain. - "Documents produced by doxygen are derivative works - derived from the input used in their production; - they are not affected by this license." + - Test files and test code in the 'tests' directory, and + debugging utilities in the 'debug' directory are under + the BSD Zero Clause License (0BSD). - - Translated messages are in the public domain. + - The GNU Autotools based build system contains files that are + under GNU GPLv2+, GNU GPLv3+, and a few permissive licenses. + These files don't affect the licensing of the binaries being + built. - - The build system contains public domain files, and files that - are under GNU GPLv2+ or GNU GPLv3+. None of these files end up - in the binaries being built. + - The 'extra' directory contains files that are under various + free software licenses. These aren't built or installed as + part of XZ Utils. - - Test files and test code in the tests directory, and debugging - utilities in the debug directory are in the public domain. + For the files under the BSD Zero Clause License (0BSD), if + a copyright notice is needed, the following is sufficient: - - The extra directory may contain public domain files, and files - that are under various free software licenses. + Copyright (C) The XZ Utils authors and contributors - You can do whatever you want with the files that have been put into - the public domain. If you find public domain legally problematic, - take the previous sentence as a license grant. If you still find - the lack of copyright legally problematic, you have too many - lawyers. - - As usual, this software is provided "as is", without any warranty. - - If you copy significant amounts of public domain code from XZ Utils + If you copy significant amounts of 0BSD-licensed code from XZ Utils into your project, acknowledging this somewhere in your software is polite (especially if it is proprietary, non-free software), but - naturally it is not legally required. Here is an example of a good - notice to put into "about box" or into documentation: + it is not legally required by the license terms. Here is an example + of a good notice to put into "about box" or into documentation: This software includes code from XZ Utils <https://tukaani.org/xz/>. The following license texts are included in the following files: + - COPYING.0BSD: BSD Zero Clause License - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1 - COPYING.GPLv2: GNU General Public License version 2 - COPYING.GPLv3: GNU General Public License version 3 - Note that the toolchain (compiler, linker etc.) may add some code - pieces that are copyrighted. Thus, it is possible that e.g. liblzma - binary wouldn't actually be in the public domain in its entirety - even though it contains no copyrighted code from the XZ Utils source - package. - - If you have questions, don't hesitate to ask the author(s) for more - information. + A note about old XZ Utils releases: + + XZ Utils releases 5.4.6 and older and 5.5.1alpha have a + significant amount of code put into the public domain and + that obviously remains so. The switch from public domain to + 0BSD for newer releases was made in Febrary 2024 because + public domain has (real or perceived) legal ambiguities in + some jurisdictions. + + There is very little *practical* difference between public + domain and 0BSD. The main difference likely is that one + shouldn't claim that 0BSD-licensed code is in the public + domain; 0BSD-licensed code is copyrighted but available under + an extremely permissive license. Neither 0BSD nor public domain + require retaining or reproducing author, copyright holder, or + license notices when distributing the software. (Compare to, + for example, BSD 2-Clause "Simplified" License which does have + such requirements.) + + If you have questions, don't hesitate to ask for more information. + The contact information is in the README file. diff --git a/contrib/xz/COPYING.0BSD b/contrib/xz/COPYING.0BSD new file mode 100644 index 000000000000..4322122aecf1 --- /dev/null +++ b/contrib/xz/COPYING.0BSD @@ -0,0 +1,11 @@ +Permission to use, copy, modify, and/or distribute this +software for any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/contrib/xz/ChangeLog b/contrib/xz/ChangeLog index 4dd0978ef313..c7795974ba23 100644 --- a/contrib/xz/ChangeLog +++ b/contrib/xz/ChangeLog @@ -1,11756 +1,12662 @@ -commit 49053c0a649f4c8bd2b8d97ce915f401fbc0f3d9 -Author: Jia Tan <jiat0218@gmail.com> -Date: 2023-10-31 22:30:29 +0800 +commit 3ec664d3f652133136587a51d4505b1abe1acdd7 +Author: Lasse Collin <lasse.collin@tukaani.org> +Date: 2024-05-29 18:03:51 +0300 - Bump version and soname for 5.4.5. + Bump version and soname for 5.6.2 src/liblzma/Makefile.am | 2 +- src/liblzma/api/lzma/version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -commit 84c0cfc556287628df871703672879e530d0391f -Author: Jia Tan <jiat0218@gmail.com> -Date: 2023-11-01 20:18:30 +0800 +commit 3cc0aa702e50b786c52c6f3d3f831a635c4df197 +Author: Lasse Collin <lasse.collin@tukaani.org> +Date: 2024-05-29 18:03:04 +0300 - Add NEWS for 5.4.5. + Add NEWS for 5.6.2 - NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 74 insertions(+) + NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 130 insertions(+) -commit d90ed84db9770712e2421e170076b43bda9b64a7 +commit 526d3f7f2c2d5e134157d08b37fb5fd0b125799e Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-31 21:41:09 +0200 +Date: 2024-05-29 18:03:04 +0300 - liblzma: Fix compilation of fastpos_tablegen.c. - - The macro lzma_attr_visibility_hidden has to be defined to make - fastpos.h usable. The visibility attribute is irrelevant to - fastpos_tablegen.c so simply #define the macro to an empty value. - - fastpos_tablegen.c is never built by the included build systems - and so the problem wasn't noticed earlier. It's just a standalone - program for generating fastpos_table.c. - - Fixes: https://github.com/tukaani-project/xz/pull/69 - Thanks to GitHub user Jamaika1. + Add NEWS for 5.4.7 - src/liblzma/lzma/fastpos_tablegen.c | 2 ++ - 1 file changed, 2 insertions(+) + NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 89 insertions(+) -commit 9b1268538b0b2c6c0a121f95165de65fc71ad23c -Author: Jia Tan <jiat0218@gmail.com> -Date: 2023-10-31 21:51:40 +0800 +commit 660b09279e8f544acf120d29194d5c3051b484eb +Author: Lasse Collin <lasse.collin@tukaani.org> +Date: 2024-05-29 18:03:04 +0300 - Build: Fix text wrapping in an output message. + Add NEWS for 5.2.13 - configure.ac | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) + NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 115 insertions(+) -commit 068ee436f4a8a706125ef43e8228b30001b1554e +commit 7d76282dac766c0ced8ae24e0f7ce0005f3e377d Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-22 17:59:11 +0300 +Date: 2024-05-29 17:47:13 +0300 - liblzma: Use lzma_always_inline in memcmplen.h. + Translations: Run po4a/update-po + + Now the files are in the new formatting without source file + line numbers. Future updates should keep the diffs much smaller. - src/liblzma/common/memcmplen.h | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + po4a/de.po | 1592 ++++++++++--------- + po4a/fr.po | 4450 +++++++++++++++++----------------------------------- + po4a/ko.po | 1592 ++++++++++--------- + po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- + po4a/ro.po | 1592 ++++++++++--------- + po4a/uk.po | 1592 ++++++++++--------- + 6 files changed, 6114 insertions(+), 9521 deletions(-) -commit 6cdf0a7b7974baf58c1fd20ec3278f3b84ae56e5 +commit 4470c3f7d8954bb47b280ec07ad0bd4be2223083 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-30 17:43:03 +0200 +Date: 2024-05-29 17:44:53 +0300 - liblzma: #define lzma_always_inline in common.h. + Translations: Run "make -C po update-po" + + In the past this wasn't done before releases; the Git repository + just contained the files from the Translation Project. But this + way it is clearer when comparing release tarballs against the + Git repository. In future releases this might no longer be necessary + within a stable branch as the .po files won't change so easily anymore + when creating a tarball. - src/liblzma/common/common.h | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) + po/ca.po | 567 +++++++++++++++++++++++++--------------- + po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- + po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- + po/de.po | 403 ++++++++++++++-------------- + po/eo.po | 403 ++++++++++++++-------------- + po/es.po | 403 ++++++++++++++-------------- + po/fi.po | 578 +++++++++++++++++++++++++--------------- + po/fr.po | 538 +++++++++++++++++++++++--------------- + po/hr.po | 403 ++++++++++++++-------------- + po/hu.po | 403 ++++++++++++++-------------- + po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- + po/ko.po | 403 ++++++++++++++-------------- + po/pl.po | 403 ++++++++++++++-------------- + po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- + po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- + po/ro.po | 403 ++++++++++++++-------------- + po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- + po/sv.po | 403 ++++++++++++++-------------- + po/tr.po | 567 +++++++++++++++++++++++++--------------- + po/uk.po | 403 ++++++++++++++-------------- + po/vi.po | 403 ++++++++++++++-------------- + po/zh_CN.po | 417 +++++++++++++++-------------- + po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- + 23 files changed, 7257 insertions(+), 5132 deletions(-) -commit 33daad3961a4f07f3902b40f13e823e6e43e85da +commit 33b8a85face5392b5ac843bdbe3a72f024cad6ef Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-22 17:15:32 +0300 +Date: 2024-05-29 16:33:24 +0300 - liblzma: Use lzma_attr_visibility_hidden on private extern declarations. + Build: Update po/*.po files only when needed - These variables are internal to liblzma and not exposed in the API. + When po/xz.pot doesn't exist, running "make" or "make dist" will + create it. Then the .po files will be updated but only if they + actually would change more than the POT-Creation-Date line. + Then the .gmo files would be generated from the .po files. + This is the case before and after this commit. + + However, "make dist" and thus "make mydist" did a forced update + to the files, updating them even if the only change was the + POT-Creation-Date line. This had pros and cons: It made it clear + that the .po file really is in sync with the recent strings in + the package. On the other hand, it added noise in form of changed + files in the source tree and distribution tarballs. It can be + ignored with something like "diff -I'^"POT-Creation-Date: '" but + it's still a minor annoyance *if* there's not enough value in + having the most recent timestamp. + + Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced + update won't happen in "make dist" anymore. However, the "mydist" + target will use xz.pot-update target which is the same target that + is run when xz.pot doesn't exist at all yet. Thus "mydist" will + ensure that the translations are up to date, without noise from + changes that would affect only the POT-Creation-Date line. + + Note that po4a always uses msgmerge with --update, so POT-Creation-Date + in the man page translations is never the only change in .po files. + In that sense this commit makes the message translations behave more + similarly to the man page translations. + + Distribution tarballs will still have non-reproducible POT-Creation-Date + in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they + could be made reproducible from a Git timestamp if desired. + + (cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762) - src/liblzma/check/check.h | 7 +++++++ - src/liblzma/common/stream_flags_common.h | 3 +++ - src/liblzma/lz/lz_encoder_hash.h | 1 + - src/liblzma/lzma/fastpos.h | 1 + - src/liblzma/rangecoder/price.h | 1 + - 5 files changed, 13 insertions(+) + Makefile.am | 3 ++- + po/Makevars | 6 +++++- + 2 files changed, 7 insertions(+), 2 deletions(-) -commit 6961a5ac7df178bfc2b7a181c40575847bc3035f +commit 09daebd66b55799bbc495b84310a86c91bbfc1c8 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-22 17:08:39 +0300 +Date: 2024-05-28 21:10:33 +0300 - liblzma: #define lzma_attr_visibility_hidden in common.h. - - In ELF shared libs: + po4a/update-po: Disable wrapping in .pot and .po files - -fvisibility=hidden affects definitions of symbols but not - declarations.[*] This doesn't affect direct calls to functions - inside liblzma as a linker can replace a call to lzma_foo@plt - with a call directly to lzma_foo when -fvisibility=hidden is used. - - [*] It has to be like this because otherwise every installed - header file would need to explictly set the symbol visibility - to default. + The .po files from the Translation Project come with unwrapped + strings so this matches it. - When accessing extern variables that aren't defined in the - same translation unit, compiler assumes that the variable has - the default visibility and thus indirection is needed. Unlike - function calls, linker cannot optimize this. + This may reduce the noise in diffs too. When the beginning of + a paragraph had changed, the rest of the lines got rewrapped + in msgsid. Now it's just one very long line that changes when + a paragraph has been edited. - Using __attribute__((__visibility__("hidden"))) with the extern - variable declarations tells the compiler that indirection isn't - needed because the definition is in the same shared library. + The --add-location=file option was removed as redundant. The line + numbers don't exist in the .pot file due to --porefs file and thus + they cannot get copied to the .po files either. - About 15+ years ago, someone told me that it would be good if - the CRC tables would be defined in the same translation unit - as the C code of the CRC functions. While I understood that it - could help a tiny amount, I didn't want to change the code because - a separate translation unit for the CRC tables was needed for the - x86 assembly code anyway. But when visibility attributes are - supported, simply marking the extern declaration with the - hidden attribute will get identical result. When there are only - a few affected variables, this is trivial to do. I wish I had - understood this back then already. + (cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599) - src/liblzma/common/common.h | 11 +++++++++++ - 1 file changed, 11 insertions(+) + po4a/update-po | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) -commit 5b9e16764905d06fa8e8339ba185ddfee304e5fb +commit 51ad72dae4e516e9292f6f399bd1e4970b77f7c1 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-30 22:54:28 +0300 +Date: 2024-05-28 18:36:53 +0300 - liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. + Update contact info in README - MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project - at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the - most recent GCC package (released 2021-02-02). The project might - still be alive but majority of people have switched to MinGW-w64. - Thus it seems clearer to refer to MinGW-w64 in our API headers too. - Building with MinGW is likely to still work but I haven't tested it - in the recent years. + (cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569) - src/liblzma/api/lzma.h | 4 ++-- - src/liblzma/api/lzma/version.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) + README | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) -commit 36fabdbe67c8a8fbdc3ac695a91fc443a1328cc4 +commit 18463917f9b255b8f925fa54ab9388319735b14a Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-27 00:58:17 +0300 +Date: 2024-05-28 13:25:07 +0300 - CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. + Translations: Use --package-name=xz-man with po4a - A CMake option LARGE_FILE_SUPPORT is created if and only if - -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). + This is to match reality. See the added comment. - This is needed on many 32-bit platforms and even with 64-bit builds - with MinGW-w64 to get support for files larger than 2 GiB. + (cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353) - CMakeLists.txt | 7 ++++- - cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ - 2 files changed, 58 insertions(+), 1 deletion(-) + po4a/update-po | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) -commit 989c8c354cbd2d20fbae4a432a3e31f5bc1cb9bf +commit 26bbcb13cd2bbb56fe406544a484b4edfc7e0837 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-30 02:14:25 +0300 +Date: 2024-05-28 13:03:40 +0300 - CMake: Generate and install liblzma.pc if not using MSVC. + Translations: Omit --package-name from po/Makevars - Autotools based build uses -pthread and thus adds it to Libs.private - in liblzma.pc. CMake doesn't use -pthread at all if pthread functions - are available in libc so Libs.private doesn't get -pthread either. + This is closer to the reality in the po/*.po files. + + (cherry picked from commit eb217d016cfbbba1babc19a61095b3ea25898af6) - CMakeLists.txt | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) + po/Makevars | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) -commit 983f3b458dc79c5976a4237fdfe4f8079f8d8830 +commit c35ee804b89556d15bc8cdc16867f4316e69392f Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-30 01:13:13 +0300 +Date: 2024-05-28 01:17:45 +0300 - CMake: Rearrange the PACKAGE_ variables. + Translations: Omit man page line numbers from .pot and .po files - The windres workaround now replaces spaces with \x20 so - the package name isn't repeated. + (cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839) + + po4a/update-po | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 0f4429d47f9cfe2cdfbad115a7bc2f11221cb217 +Author: Lasse Collin <lasse.collin@tukaani.org> +Date: 2024-05-28 01:06:30 +0300 + + Translations: Use the xgettext option --add-location=file - These changes will help with creation of liblzma.pc. + (cherry picked from commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6) - CMakeLists.txt | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) + po/Makevars | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) -commit 4083c8e9501a48934a5fb563d2c3ce2ae143cd27 +commit a93e2c2d1d34a6f609d24a8e62072ce78df7a734 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-29 20:46:11 +0300 +Date: 2024-05-28 00:43:53 +0300 - liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. + Translations: Use the msgmerge option --add-location=file - It properly adds -DLZMA_API_STATIC when compiling code that - will be linked against static liblzma. Having it there on - systems other than Windows does no harm. + This way the PO file diffs are less noisy but the locations of the + strings are still present at file level, just without line numbers. - See: https://www.msys2.org/docs/pkgconfig/ + The option is available since gettext 0.19 (2014). + configure.ac requires 0.19.6. + + (cherry picked from commit fccebe2b4fd513488fc920e4dac32562ed3c7637) - src/liblzma/liblzma.pc.in | 1 + - 1 file changed, 1 insertion(+) + po/Makevars | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -commit 661549ecb7a9b136d72a01c137d9776c75d52d51 +commit d4389895592e9a8e0f6391fdad816ae0537bb07b Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-09-27 22:46:20 +0300 +Date: 2024-05-27 12:22:08 +0300 - CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. + Build: Use $(SHELL) instead of sh to run scripts in Makefile.am + + (cherry picked from commit f361d9ae85707a87eb28db400eb7229cec103d58) - CMakeLists.txt | 20 ++++++++++++++++++++ - cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ - 2 files changed, 46 insertions(+) + Makefile.am | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) -commit 0e546eb4da05c52b7d257e5bd85e15c51c4d86a3 +commit 5781414b6e3120098b0060d073aa2b0580ff6f40 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-26 21:44:42 +0300 +Date: 2024-05-23 17:25:13 +0300 - CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. + Translations: Change the home page URLs in man page translations - In this case they have identical values. + Since the source strings have changed, these would get marked as + fuzzy and the original string would be used instead. The original + and translated strings are identical in this case so it wouldn't + matter. But patching the translations helps still because then + po4a will show the correct translation percentage. + + (cherry picked from commit a26dece34793a09aac2476f954d162d03e9cf62b) - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + po4a/de.po | 8 ++++---- + po4a/fr.po | 4 ++-- + po4a/ko.po | 4 ++-- + po4a/pt_BR.po | 4 ++-- + po4a/ro.po | 8 ++++---- + po4a/uk.po | 8 ++++---- + 6 files changed, 18 insertions(+), 18 deletions(-) -commit da4d04e4d6e199d28b58bd2e0df4e120c52dd5d7 +commit 3670e0616eb9d86e7519d2b76242fd32c6e0c1ae Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-01 19:10:57 +0300 +Date: 2024-05-23 15:15:18 +0300 - CMake/Windows: Fix the import library filename. + CMake: Add manual support for 32-bit x86 assembly files - Both PREFIX and IMPORT_PERFIX have to be set to "" to get - liblzma.dll and liblzma.dll.a. + One has to pass -DENABLE_X86_ASM=ON to cmake to enable the + CRC assembly code. Autodetection isn't done. Looking at + CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname + unless cross-compilation is done using a CMake toolchain file. + + On top of this, if the code is run on modern processors that support + the CLMUL instruction, then the C code should be faster (but then + one should also be using a x86-64 build if possible). + + (cherry picked from commit 24387c234b4eed1ef9a7eaa107391740b4095568) - CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) + CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- + 1 file changed, 31 insertions(+), 3 deletions(-) -commit 007558a358c48a0175cc8d47d11798d7967282ab +commit c1b001b09e902ecacabb8a2ae1fc991018a4d1f8 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-11 19:47:44 +0300 +Date: 2024-05-23 14:26:45 +0300 - CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. + CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN - Using set(ENABLE_THREADS "posix") is confusing because it sets - a new normal variable and leaves the cache entry with the same - name unchanged. The intent wasn't to change the cache entry so - this switches to a different variable name. + It's more consistent with the other option() uses. + + (cherry picked from commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d) - CMakeLists.txt | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -commit 7d01de67ee3dd76cfc12c23220e2e4cdc59708f1 +commit 7213fe39c717d4623c92af715484a71d9a6ff8d0 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-09 21:12:31 +0300 +Date: 2024-05-22 15:21:53 +0300 - CMake: Edit threading related messages. + Use more confident language in COPYING - It's mostly to change from "thread method" to "threading method". + (cherry picked from commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a) - CMakeLists.txt | 19 ++++++++++--------- - 1 file changed, 10 insertions(+), 9 deletions(-) + COPYING | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) -commit f8edcf3da689aad4b21e139197725450f2c456a0 +commit 15358be94a4e3f9c20f331b64b3980f3e5283760 Author: Lasse Collin <lasse.collin@tukaani.org> -Date: 2023-10-09 20:59:24 +0300 +Date: 2024-04-29 17:16:38 +0300 - CMake: Use FATAL_ERROR if user-supplied options aren't understood. + Add SPDX license identifiers to files under tests/ossfuzz - This way typos are caught quickly and compounding error messages - are avoided (a single typo could cause more than one error). + (cherry picked from commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde) + + tests/ossfuzz/Makefile | 2 ++ + tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ + tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ + tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ + tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ + tests/ossfuzz/config/fuzz_xz.dict | 2 ++ + 6 files changed, 12 insertions(+) + +commit 1aa92c7ffd0bf8f9738ebf3bd1263bd6f5f096a2 +Author: Lasse Collin <lasse.collin@tukaani.org> +Date: 2024-04-29 17:16:06 +0300 + + Add SPDX license identifier to .codespellrc - This keeps using SEND_ERROR when the system is lacking a feature - (like threading library or sandboxing method). This way the whole - configuration log will be generated in case someone wishes to - report a problem upstream. + (cherry picked from commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05) - CMakeLists.txt | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) + .codespellrc | 2 ++ + 1 file changed, 2 insertions(+) -commit 1695021e4a233a9388ddd428654c1447f0ea3bfb -Author: Jia Tan <jiat0218@gmail.com> -Date: 2023-10-19 16:09:01 +0800 +commit 3c7e400fdcabc0a1b78863948fc17964667a9401 +Author: Lasse Collin <lasse.collin@tukaani.org> *** 37237 LINES SKIPPED ***