commit d8a898eb9974683bc725c49ec76722f9a8758f48
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:33:05 +0200

    Bump version and soname for 5.2.9.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit efd4430e21f798e198a6ee8a368a79065139eb54
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:31:16 +0200

    Add NEWS for 5.2.9.

 NEWS | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

commit 2dc1bc97a562ef4d4134c8df4d344d0f403428b8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 18:08:34 +0200

    Change the bug report address.
    
    It forwards to me and Jia Tan.
    
    Also update the IRC reference in README as #tukaani was moved
    to Libera Chat long ago.

 CMakeLists.txt             |  2 +-
 README                     | 11 +++++------
 configure.ac               |  2 +-
 dos/config.h               |  2 +-
 windows/README-Windows.txt |  2 +-
 5 files changed, 9 insertions(+), 10 deletions(-)

commit fb13a234d9def06cbe2b8ed88ece7db0c6d5c39f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-30 17:38:32 +0200

    Update to HTTPS URLs in AUTHORS.

 AUTHORS | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 841448e36d4455d39ff1e1115843360934e7a507
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-27 01:03:16 +0200

    liblzma: Remove two FIXME comments.

 src/liblzma/common/filter_encoder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b61da00c7f535bd48930a878efdf6843d804983e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 14:52:44 +0200

    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
    
    It not only makes no sense to put symbol versions into a static library
    but it can also cause breakage.
    
    By default Libtool #defines PIC if building a shared library and
    doesn't define it for static libraries. This is documented in the
    Libtool manual. It can be overriden using --with-pic or --without-pic.
    configure.ac detects if --with-pic or --without-pic is used and then
    gives an error if neither --disable-shared nor --disable-static was
    used at the same time. Thus, in normal situations it works to build
    both shared and static library at the same time on GNU/Linux,
    only --with-pic or --without-pic requires that only one type of
    library is built.
    
    Thanks to John Paul Adrian Glaubitz from Debian for reporting
    the problem that occurred on ia64:
    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html

 CMakeLists.txt              |   5 +-
 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
 src/liblzma/common/common.h |  12 ++++
 3 files changed, 111 insertions(+), 49 deletions(-)

commit 6c29793b3cac292b25801d011db6d8ccade50396
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 00:02:31 +0200

    CMake: Don't use symbol versioning with static library.

 CMakeLists.txt | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 872623def5e3e5c7f9f14f366d908f3e012d1007
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-24 01:26:37 +0200

    liblzma: Fix another invalid free() after memory allocation failure.
    
    This time it can happen when lzma_stream_encoder_mt() is used
    to reinitialize an existing multi-threaded Stream encoder
    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
    
    It's very similar to the previous bug
    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
    an array of lzma_filter structures whose old options are freed
    but the replacement never arrives due to a memory allocation
    failure in lzma_filters_copy().

 src/liblzma/common/stream_encoder_mt.c | 4 ++++
 1 file changed, 4 insertions(+)

commit b0f8d9293ca5a0a56964695a59a098c9d1e82b99
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-05-05 20:53:42 +0800

    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
    
    The documentation mentions that lzma_block_encoder() supports
    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
    not be used with the Block encoder unless it was the next coder
    after something like stream_encoder() or stream_encoder_mt().

 src/liblzma/common/block_encoder.c | 1 +
 1 file changed, 1 insertion(+)

commit 6997e0b5e2339025646cfaec13a3317fb340729b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-23 21:55:22 +0200

    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().

 src/liblzma/api/lzma/filter.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit f94a3e34603c56c55777056bb5412bfd0e948f0b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-23 21:26:21 +0200

    liblzma: Fix invalid free() after memory allocation failure.
    
    The bug was in the single-threaded .xz Stream encoder
    in the code that is used for both re-initialization and for
    lzma_filters_update(). To trigger it, an application had
    to either re-initialize an existing encoder instance with
    lzma_stream_encoder() or use lzma_filters_update(), and
    then one of the 1-4 tiny allocations in lzma_filters_copy()
    (called from stream_encoder_update()) must fail. An error
    was correctly reported but the encoder state was corrupted.
    
    This is related to the recent fix in
    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
    it wasn't enough to fix the main problem in stream_encoder.c.

 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

commit 8309385b444bce23e56256e21fb008a170434008
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-22 16:37:15 +0200

    liblzma: Fix language in a comment.

 src/liblzma/common/stream_encoder.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5fecba6022cbbeed8103b49d79b2fb36086be72d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-22 11:20:17 +0200

    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
    
    The encoder doesn't support dictionary sizes larger than 1536 MiB.
    This is validated, for example, when calculating the memory usage
    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
    part of the encoder initialization. However, LZMA encoder with
    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
    such validation and that results in an infinite loop if dict_size
    was 2 << 30 or greater.

 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 1946b2b141d8b12c9325ba48d3a04ad8e8206750
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-21 13:02:33 +0200

    liblzma: Fix two Doxygen commands in the API headers.
    
    These were caught by clang -Wdocumentation.

 src/liblzma/api/lzma/hardware.h   | 2 +-
 src/liblzma/api/lzma/index_hash.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit 5476089d9c42b9b04e92b80e1800b384a98265cb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-13 19:58:47 +0200

    Bump version and soname for 5.2.8.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit f9994f395d04d37b75e879f90397258b86b466cc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-13 19:57:26 +0200

    Add NEWS for 5.2.8.

 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

commit cdf14b28993ef2f3168821372467e3aa7cf1e973
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 17:16:03 +0200

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 454f567e58bbadea5cff4f31ef450c1305e9853d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 17:15:25 +0200

    liblzma: Fix building with Intel ICC (the classic compiler).
    
    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
    
    Thanks to Stephen Sachs.

 src/liblzma/common/common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2f01169f5a81e21e7a7e5f799c32472c6277b1d5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 14:35:58 +0200

    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
    
    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
    instead of 387. Often the latter macro is defined if the first
    one is but it was still a bug.

 src/liblzma/common/memcmplen.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit fc1358679ed3994f67e5e8c869c281be82370a32
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 12:23:58 +0200

    Scripts: Ignore warnings from xz.
    
    In practice this means making the scripts work when
    the input files have an unsupported check type which
    isn't a problem in practice unless support for
    some check types has been disabled at build time.

 src/scripts/xzdiff.in | 5 +++--
 src/scripts/xzgrep.in | 2 +-
 src/scripts/xzless.in | 4 ++--
 src/scripts/xzmore.in | 4 ++--
 4 files changed, 8 insertions(+), 7 deletions(-)

commit a08be1c420501b1c75770a8f6103e3959486c895
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 14:10:52 +0200

    xz: Add comments about stdin and src_st.st_size.
    
    "xz -v < regular_file > out.xz" doesn't display the percentage
    and estimated remaining time because it doesn't even try to
    check the input file size when input is read from stdin.
    This could be improved but for now there's just a comment
    to remind about it.

 src/xz/coder.c   | 9 +++++++++
 src/xz/file_io.c | 4 ++++
 2 files changed, 13 insertions(+)

commit 3ee411cd1cd636bdced6ecede4651394bb4f9cb1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 12:48:22 +0200

    xz: Fix displaying of file sizes in progress indicator in passthru mode.
    
    It worked for one input file since the counters are zero when
    xz starts but they weren't reset when starting a new file in
    passthru mode. For example, if files A, B, and C are one byte each,
    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
    instead of 1, 1, and 1 byte.

 src/xz/coder.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit aa7fa9d960df4bb21f7727bbf7ce0503f3d211b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-09 11:27:20 +0200

    xz: Add a comment why --to-stdout is not in --help.
    
    It is on the man page still.

 src/xz/message.c | 3 +++
 1 file changed, 3 insertions(+)

commit ff49ff84a4ba3fab25ffb6d65af321dee36c1273
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 22:26:54 +0200

    Docs: Update faq.txt a little.

 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 43 insertions(+), 23 deletions(-)

commit 3489565b75b45ee514cf0a6785bb721c7dc624f3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:13:03 +0200

    liblzma: Update API docs about decoder flags.

 src/liblzma/api/lzma/container.h | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

commit e4937710805c4b660fc629c15d9a6164b2d97822
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:00:58 +0200

    liblzma: Fix a comment in auto_decoder.c.

 src/liblzma/common/auto_decoder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit d4674dfbb7d1df1feb841f5dbce6ae1f0b026879
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-11-07 16:24:14 +0200

    xz: Avoid a compiler warning in progress_speed() in message.c.
    
    This should be smaller too since it avoids the string constants.

 src/xz/message.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 4ed56d32a91ff8ff21c71db4082a54a72ae08b3d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 16:26:05 +0200

    Build: Clarify comment in configure.ac about SSE2.

 configure.ac | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit f930638797f1fec05b272367c052d4fc9de35896
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 16:16:37 +0200

    Build: Remove obsolete commented-out lines from configure.ac.

 configure.ac | 4 ----
 1 file changed, 4 deletions(-)

commit 6930f14733757592a4f8d92513f642a5dcc9ec9c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 13:31:58 +0200

    Windows: Fix mythread_once() macro with Vista threads.
    
    Don't call InitOnceComplete() if initialization was already done.
    
    So far mythread_once() has been needed only when building
    with --enable-small. windows/build.bash does this together
    with --disable-threads so the Vista-specific mythread_once()
    is never needed by those builds. VS project files or
    CMake-builds don't support HAVE_SMALL builds at all.

 src/common/mythread.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 1c8cbb5be3a97bf22e933777369c4cc28ef9ed5f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-31 11:49:47 +0200

    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
    
    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.

 cmake/tuklib_cpucores.cmake | 5 +++++
 1 file changed, 5 insertions(+)

commit fa9efb729b1827b25ec71aefcf32f3aceeaf9597
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:45:03 +0300

    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
    
    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
    
    There is a warning about AC_PROG_CC_C99 being obsolete but
    it cannot be removed because it is needed with Autoconf 2.69.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b10ba4bf39edd9c9fef42cade3e64fc3b9e3fd19
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:31:44 +0300

    Build: Update m4/ax_pthread.m4 from Autoconf Archive.

 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

commit 01744b280c6e35d331b9dc4cc64716b82bc8b3db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 23:09:11 +0300

    xz: Fix --single-stream with an empty .xz Stream.
    
    Example:
    
        $ xz -dc --single-stream good-0-empty.xz
        xz: good-0-empty.xz: Internal error (bug)
    
    The code, that is tries to catch some input file issues early,
    didn't anticipate LZMA_STREAM_END which is possible in that
    code only when --single-stream is used.

 src/xz/coder.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit a3e4606134058241bf1c396243bebcec42c2a780
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 19:07:17 +0300

    xz: Fix decompressor behavior if input uses an unsupported check type.
    
    Now files with unsupported check will make xz display
    a warning, set the exit status to 2 (unless --no-warn is used),
    and then decompress the file normally. This is how it was
    supposed to work since the beginning but this was broken by
    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
    a little before 5.0.0 was released. The buggy behavior displayed
    a message, set exit status 1 (error), and xz didn't attempt to
    to decompress the file.
    
    This doesn't matter today except for special builds that disable
    CRC64 or SHA-256 at build time (but such builds should be used
    in special situations only). The bug matters if new check type
    is added in the future and an old xz version is used to decompress
    such a file; however, it's likely that such files would use a new
    filter too and an old xz wouldn't be able to decompress the file
    anyway.
    
    The first hunk in the commit is the actual fix. The second hunk
    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
    
    There is a test file for unsupported check type but it wasn't
    used by test_files.sh, perhaps due to different behavior between
    xz and the simpler xzdec.

 src/xz/coder.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

commit 0b5e8c7e073bce07c59112af1e8a7495e3576e6c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 18:36:19 +0300

    xz: Clarify the man page: input file isn't removed if an error occurs.

 src/xz/xz.1 | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 23b7416d5ba0e3579265467bd546865d2ea4cef0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-25 18:23:54 +0300

    xz: If input file cannot be removed, treat it as a warning, not error.
    
    Treating it as a warning (message + exit status 2) matches gzip
    and it seems more logical as at that point the output file has
    already been successfully closed. When it's a warning it is
    possible to suppress it with --no-warn.

 src/xz/file_io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 5daa40454b63c4eb04ab5caeb339eddc95c94bb1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-10-20 20:22:50 +0300

    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
    
    On OpenBSD the number of cores online is often less
    than what HW_NCPU would return because OpenBSD disables
    simultaneous multi-threading (SMT) by default.
    
    Thanks to Christian Weisgerber.

 m4/tuklib_cpucores.m4        | 5 +++++
 src/common/tuklib_cpucores.c | 9 +++++++++
 2 files changed, 14 insertions(+)

commit 0af861050f375678eafc4e1136ca589ae47d31c0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-11 13:25:02 +0200

    NEWS: Omit the extra copy of 5.2.5 NEWS.
    
    It was a copy-paste error.

 NEWS | 105 -------------------------------------------------------------------
 1 file changed, 105 deletions(-)

commit f0c6a66701afed12c5926c0499b150ecd5b0a63c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-10 12:34:43 +0200

    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
    
    That's how it is preferred at the Translation Project.
    On my system /usr/share/man/fr_FR doesn't contain any
    other man pages than XZ Utils while /usr/share/man/fr
    has quite a few, so this will fix that too.
    
    Thanks to Benno Schulenberg from the Translation Project.

 po4a/{fr_FR.po => fr.po} | 0
 po4a/po4a.conf           | 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 6bf8b1f870870a1a0c3f555c34decc9ffb9f8d7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 16:57:17 +0200

    Translations: Update Turkish translation.

 po/tr.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9f8e9d3c8189d8c6f587c99b0da1cf83f72330c2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-11-08 14:55:32 +0200

    Translations: Update Croatian translation.

 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 96 insertions(+), 94 deletions(-)

commit d24a57b7fc7e5e9267b84367cb0788d3acf7f569
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 16:41:03 +0300

    Bump version and soname for 5.2.7.

 src/liblzma/Makefile.am        | 2 +-
 src/liblzma/api/lzma/version.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d2003362dd42004355a5550ee7a60ace3b3ea2d8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 16:40:39 +0300

    Add NEWS for 5.2.7.

 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

commit 369afb51991e91a5c3a23c4ae3872329a403eb31
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-30 12:06:13 +0300

    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
    
    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.

 src/liblzma/api/lzma/base.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 166431e9951613481b8136f52b570d7bc30b5a03
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 16:15:50 +0800

    liblzma: Add dest and src NULL checks to lzma_index_cat.
    
    The documentation states LZMA_PROG_ERROR can be returned from
    lzma_index_cat. Previously, lzma_index_cat could not return
    LZMA_PROG_ERROR. Now, the validation is similar to
    lzma_index_append, which does a NULL check on the index
    parameter.

 src/liblzma/common/index.c | 3 +++
 1 file changed, 3 insertions(+)

commit 5e53a6c28b87a0bb9b0cfeaf708cc99ef8e9bc66
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 20:29:28 +0800

    Tests: Create a test for the lzma_index_cat bug.

 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

commit 4ed5fd54c676b735e3f58158f214af68755d59b5
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-21 19:28:53 +0800

    liblzma: Fix copying of check type statistics in lzma_index_cat().
    
    The check type of the last Stream in dest was never copied to
    dest->checks (the code tried to copy it but it was done too late).
    This meant that the value returned by lzma_index_checks() would
    only include the check type of the last Stream when multiple
    lzma_indexes had been concatenated.
    
    In xz --list this meant that the summary would only list the
    check type of the last Stream, so in this sense this was only
    a visual bug. However, it's possible that some applications
    use this information for purposes other than merely showing
    it to the users in an informational message. I'm not aware of
    such applications though and it's quite possible that such
    applications don't exist.
    
    Regular streamed decompression in xz or any other application
    doesn't use lzma_index_cat() and so this bug cannot affect them.

 src/liblzma/common/index.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit c4476f695291a2d7376d5fa406d32e354f858858
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 12:20:41 +0300

    tuklib_physmem: Fix Unicode builds on Windows.
    
    Thanks to ArSaCiA Game.

 src/common/tuklib_physmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 976f897bbba9890a99f01a8d59c6d59c230142e6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 11:05:15 +0300

    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
    
    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
    to use lzma_memlimit_set() to increase the limit and continue
    decoding. This was supposed to work from the beginning but
    there was a bug. With other decoders (.lzma or threaded .xz)
    this already worked correctly.

 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

commit 2caa9580e5f7c5cc6668e9427a2c21f3f63bb684
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-28 11:00:23 +0300

    liblzma: Stream decoder: Fix comments.

 src/liblzma/common/stream_decoder.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

commit 51882fec5b96cf7760389b670d86c1e7a5a0ced2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 14:09:07 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 974186f7cd839f1dbf937b98e112dff670d2bd5c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 14:07:03 +0300

    xzgrep: Fix compatibility with old shells.
    
    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
    
        xzgrep: line 231: syntax error near unexpected token `;;'
    
    On SCO OpenServer 5.0.7 with Korn Shell 93r:
    
        syntax error at line 231 : `;;' unexpected
    
    Turns out that some old shells don't like apostrophes (') inside
    command substitutions. For example, the following fails:
    
        x=$(echo foo
        # asdf'zxcv
        echo bar)
        printf '%s\n' "$x"
    
    The problem was introduced by commits
    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
    5.2.6 is the only stable release that included
    this problem.
    
    Thanks to Kevin R. Bulgrien for reporting the problem
    on SCO OpenServer 5.0.7 and for providing the fix.

 src/scripts/xzgrep.in | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit f94da15120c3d3c363ca12c2262ac6cb9f321f4f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-09 13:51:57 +0300

    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
    
    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
    this. Before this patch, failing lzma_filters_copy() could result
    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
    or stream_encoder_mt.c.
    
    To trigger this, allocating memory for a filter options structure
    has to fail. These are tiny allocations so in practice they very
    rarely fail.
    
    Certain badness in the filter chain array could also make
    lzma_filters_copy() fail but both stream_encoder.c and
    stream_encoder_mt.c validate the filter chain before
    trying to copy it, so the crash cannot occur this way.

 src/liblzma/api/lzma/filter.h      |  4 +++-
 src/liblzma/common/filter_common.c | 18 ++++++++++++------
 2 files changed, 15 insertions(+), 7 deletions(-)

commit ea57b9aa2c3e1cdb667f8dd698314b1c36047018
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 17:08:53 +0300

    Tests: Add a test file for lzma_index_append() integer overflow bug.
    
    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
    
    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
    because only then the previously-buggy code path gets tested.
    Normal decompression doesn't use lzma_index_append() at all.
    Instead, lzma_index_hash functions are used and those already
    did the overflow check.

 tests/files/README                         |  10 ++++++++++
 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
 tests/test_files.sh                        |   8 ++++++++
 3 files changed, 18 insertions(+)

commit 72e1645a439a999638a63ec9abb7210671ea5415
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-02 20:18:55 +0800

    liblzma: lzma_index_append: Add missing integer overflow check.
    
    The documentation in src/liblzma/api/lzma/index.h suggests that
    both the unpadded (compressed) size and the uncompressed size
    are checked for overflow, but only the unpadded size was checked.
    The uncompressed check is done first since that is more likely to
    occur than the unpadded or index field size overflows.

 src/liblzma/common/index.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 20d82bc90781aa9d2373efe872d90ba64dc7dc62
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-08 15:11:08 +0300

    Update THANKS.

 THANKS | 1 +
 1 file changed, 1 insertion(+)

commit 31d80c6b261b24220776dfaeb8a04f80f80e0a24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-04 23:23:00 +0300

    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
    
    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
    API/ABI compatibility tracking isn't done between development
    releases so newer releases didn't have XZ_5.1.2alpha anymore.
    
    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
    the exported symbols compatible with 5.1.2alpha. After checking
    the ABI changes it turned out that >= 5.2.0 ABI is backward
    compatible with the threaded encoder functions from 5.1.2alpha
    (but not vice versa as fixes and extensions to these functions
    were made between 5.1.2alpha and 5.2.0).
    
    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
    xz-5.2.2-compat-libs.patch to modify liblzma.map:
    
      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
    
      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
        has never been used in XZ Utils). So XZ_5.2.2 lists all
        symbols that were listed under XZ_5.2 before the patch.
        lzma_stream_encoder_mt and _mt_memusage are included too so
        they are listed both here and under XZ_5.1.2alpha.
    
    The patch didn't add any __asm__(".symver ...") lines to the .c
    files. Thus the resulting liblzma.so exports the threaded encoder
    functions under XZ_5.1.2alpha only. Listing the two functions
    also under XZ_5.2.2 in liblzma.map has no effect without
    matching .symver lines.
    
    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
    This is unfortunate but this alone isn't too bad as the problem
    is contained within RHEL/CentOS 7 and doesn't affect users
    of other distributions. It could also be fixed internally in
    RHEL/CentOS 7.
    
    The second problem is more serious: In XZ Utils 5.2.2 the API
    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
    This is true in RHEL/CentOS 7 version too. Thus now programs
    using new APIs can be compiled without an extra #define. However,
    the programs end up depending on symbol version XZ_5.1.2alpha
    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
    with an unpatched XZ Utils 5.2.2. This means that such binaries
    won't run on other distributions shipping XZ Utils >= 5.2.0 as
    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
    luckily isn't included there anymore with XZ Utils 5.2.4.)
    
    Binaries built by RHEL/CentOS 7 users get distributed and then
    people wonder why they don't run on some other distribution.
    Seems that people have found out about the patch and been copying
    it to some build scripts, seemingly curing the symptoms but
    actually spreading the illness further and outside RHEL/CentOS 7.
    
    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
    had spread at least to EasyBuild. I heard about the events only
    recently. :-(
    
    This commit splits liblzma.map into two versions: one for
    GNU/Linux and another for other OSes that can use symbol versioning
    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
    matching additions to .c files add full compatibility with binaries
    that have been built against a RHEL/CentOS-patched liblzma. Builds
    for OSes other than GNU/Linux won't get the vaccine as they should
    be immune to the problem (I really hope that no build script uses
    the RHEL/CentOS 7 patch outside GNU/Linux).
    
    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
    since XZ_5.2 {...} is the first one that lists that function.
    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
    will be missing but that's still a minor problem compared to
    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
    
    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
    to be moved around. It doesn't matter where it is put.
    
    Having two similar liblzma_*.map files is a bit silly as it is,
    at least for now, easily possible to generate the generic one
    from the Linux-specific file. But that adds extra steps and
    increases the risk of mistakes when supporting more than one
    build system. So I rather maintain two files in parallel and let
    validate_map.sh check that they are in sync when "make mydist"
    is run.
    
    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
    for these two). I added these anyway because someone might
    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
    (@@XZ_5.2.2) versions were exported too.
    
    At glance one could suggest using __typeof__ to copy the function
    prototypes when making aliases. However, this doesn't work trivially
    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
    and it won't change symbol visibility from hidden to default (done
    by LZMA_API()). Attributes could be copied with __copy__ attribute
    but that needs GCC 9 and a fallback method would be needed anyway.
    
    This uses __symver__ attribute with GCC >= 10 and
    __asm__(".symver ...") with everything else. The attribute method
    is required for LTO (-flto) support with GCC. Using -flto with
    GCC older than 10 is now broken on GNU/Linux and will not be fixed
    (can silently result in a broken liblzma build that has dangerously
    incorrect symbol versions). LTO builds with Clang seem to work
    with the traditional __asm__(".symver ...") method.
    
    Thanks to Boud Roukema for reporting the problem and discussing
    the details and testing the fix.

 configure.ac                                     |  23 ++++-
 src/liblzma/Makefile.am                          |  10 +-
 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
 src/liblzma/common/common.c                      |  14 +++
 src/liblzma/common/common.h                      |  28 ++++++
 src/liblzma/common/hardware_cputhreads.c         |  12 +++
 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
 src/liblzma/liblzma_linux.map                    | 123 +++++++++++++++++++++++
 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++++--
 10 files changed, 374 insertions(+), 15 deletions(-)

commit e7a7ac744eb0f890ef52388de838596ef566c73f
Author: Jia Tan <jiat0218@gmail.com>
Date:   2022-09-08 15:07:00 +0300

    CMake: Clarify a comment about Windows symlinks without file extension.

 CMakeLists.txt | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit a273a0cb77c6000e4da627b07f28c5af41f0908c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-08 15:02:41 +0300

    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
    
    The previous commit split liblzma.map into liblzma_linux.map and
    liblzma_generic.map. This commit updates the CMake build for those.
    
    common_w32res.rc dependency was listed under Linux/FreeBSD while
    obviously it belongs to Windows when building a DLL.

 CMakeLists.txt | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

commit 5875a45be0ab399e37acc31165725a9b5291f67e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-31 16:42:04 +0300

    CMake: Add xz symlinks.
    
    These are a minor thing especially since the xz build has
    some real problems still like lack of large file support
    on 32-bit systems but I'll commit this since the code exists.
    
    Thanks to Jia Tan.

 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

commit 3523b6ebb56c447f21736f01bfe91602741aa3e7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-31 16:29:38 +0300

    CMake: Put xz man page install under if(UNIX) like is for xzdec.
    
    Thanks to Jia Tan.

 CMakeLists.txt | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 5af9e8759f748a11a408bfc5aef829df3811fc23
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-09-16 15:10:07 +0300

    Translations: Add Turkish translation.

 po/LINGUAS |   1 +
 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 978 insertions(+)

commit f05a69685e9c7f7157d751abfbd2d8ea6e3bacc7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-18 17:49:16 +0300

    Build: Include the CMake files in the distribution.
    
    This was supposed to be done in 2020 with 5.2.5 release
    already but it was noticed only today. 5.2.5 and 5.2.6
    even mention experiemental CMake support in the NEWS entries.
    
    Thanks to Olivier B. for reporting the problem.

 Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit ad5ef6d3c30bb749113c51aa0bbe8bcb5e193fbe
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2022-08-18 17:38:05 +0300

    Windows: Fix broken liblzma.dll build with Visual Studio project files.
    
    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
    "Windows: Fix building of resource files when config.h isn't used."
    
    That commit fixed liblzma.dll build with CMake while keeping it
    working with Autotools on Windows but the VS project files were
    forgotten.
    
    I haven't tested these changes.
