commit a522a226545730551f7e7c2685fab27cf567746c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:43 +0300

    Bump version and soname for 5.8.1

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

commit 1c462c2ad86ff85766928638431029cd0b0dc995
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:43 +0300

    Add NEWS for 5.8.1

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

commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:43 +0300

    Tests: Call lzma_code() in smaller chunks in fuzz_common.h
    
    This makes it easy to crash fuzz_decode_stream_mt when tested
    against the code from 5.8.0.
    
    Obviously this might make it harder to reach some other code path now.
    The previous code has been in use since 2018 when fuzzing was added
    in 106d1a663d4b ("Tests: Add a fuzz test program and a config file
    for OSS-Fuzz.").

 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)

commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:43 +0300

    Tests: Add a fuzzing target for the multithreaded .xz decoder
    
    It doesn't seem possible to trigger the CVE-2025-31115 bug with this
    fuzzing target at the moment. It's because the code in fuzz_common.h
    passes the whole input buffer to lzma_code() at once.

 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:42 +0300

    liblzma: mt dec: Fix lack of parallelization in single-shot decoding
    
    Single-shot decoding means calling lzma_code() by giving it the whole
    input at once and enough output buffer space to store the uncompressed
    data, and combining this with LZMA_FINISH and no timeout
    (lzma_mt.timeout = 0). This way the file is decoded with a single
    lzma_code() call if possible.
    
    The bug prevented the decoder from starting more than one worker thread
    in single-shot mode. The issue was noticed when reviewing the code;
    there are no bug reports. Thus maybe few have tried this mode.
    
    Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.")

 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 8188048854e8d11071b8a50d093c74f4c030acc9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:42 +0300

    liblzma: mt dec: Don't modify thr->in_size in the worker thread
    
    Don't set thr->in_size = 0 when returning the thread to the stack of
    available threads. Not only is it useless, but the main thread may
    read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made
    no difference if the main thread saw the original value or 0. With
    invalid inputs (when worker thread stops early), thr->in_size was
    no longer modified after the previous commit with the security fix
    ("Don't free the input buffer too early").
    
    So while the bug appears harmless now, it's important to fix it because
    the variable was being modified without proper locking. It's trivial
    to fix because there is no need to change the value. Only main thread
    needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new
    Block before the worker thread is activated.
    
    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Thanks-to: Sam James <sam@gentoo.org>

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

commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:42 +0300

    liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)
    
    The input buffer must be valid as long as the main thread is writing
    to the worker-specific input buffer. Fix it by making the worker
    thread not free the buffer on errors and not return the worker thread to
    the pool. The input buffer will be freed when threads_end() is called.
    
    With invalid input, the bug could at least result in a crash. The
    effects include heap use after free and writing to an address based
    on the null pointer plus an offset.
    
    The bug has been there since the first committed version of the threaded
    decoder and thus affects versions from 5.3.3alpha to 5.8.0.
    
    As the commit message in 4cce3e27f529 says, I had made significant
    changes on top of Sebastian's patch. This bug was indeed introduced
    by my changes; it wasn't in Sebastian's version.
    
    Thanks to Harri K. Koskinen for discovering and reporting this issue.
    
    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
    Reported-by: Harri K. Koskinen <x64nop@nannu.org>
    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Thanks-to: Sam James <sam@gentoo.org>

 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

commit c0c835964dfaeb2513a3c0bdb642105152fe9f34
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:42 +0300

    liblzma: mt dec: Simplify by removing the THR_STOP state
    
    The main thread can directly set THR_IDLE in threads_stop() which is
    called when errors are detected. threads_stop() won't return the stopped
    threads to the pool or free the memory pointed by thr->in anymore, but
    it doesn't matter because the existing workers won't be reused after
    an error. The resources will be cleaned up when threads_end() is
    called (reinitializing the decoder always calls threads_end()).
    
    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Thanks-to: Sam James <sam@gentoo.org>

 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++---------------------
 1 file changed, 29 insertions(+), 46 deletions(-)

commit 831b55b971cf579ee16a854f177c36b20d3c6999
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:42 +0300

    liblzma: mt dec: Fix a comment
    
    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Thanks-to: Sam James <sam@gentoo.org>

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

commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-03 14:34:30 +0300

    liblzma: Add assertions to lzma_bufcpy()

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

commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-04-02 16:40:22 +0300

    DOS: Update Makefile to fix the build

 dos/Makefile | 2 ++
 1 file changed, 2 insertions(+)

commit 307c02ed698a69763ef1c9c0df4ff24727442118
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-29 12:41:32 +0200

    sysdefs.h: Avoid <stdalign.h> even with C11 compilers
    
    Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in
    __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing.
    We only need alignas, so define it to _Alignas with C11/C17 compilers.
    If something included <stdalign.h> later, it shouldn't cause problems.
    
    Thanks to Ihsan Dogan for reporting the issue and testing the fix.
    
    Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38

 src/common/sysdefs.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 7ce38b318339d6c01378a77585e08169ca3a604e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-29 12:32:05 +0200

    Update THANKS

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

commit 688e51bde4c987589717b2be1a1fde9576c604fc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-29 12:21:51 +0200

    Translations: Update the Croatian translation

 po/hr.po | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

commit 173fb5c68b08a8c1369550267be258132b7760c6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 18:23:57 +0200

    doc/SHA256SUMS: Add 5.8.0

 doc/SHA256SUMS | 6 ++++++
 1 file changed, 6 insertions(+)

commit db9258e828bc2cd96e3954f1ddcc9d3530589025
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:32 +0200

    Bump version and soname for 5.8.0
    
    Also remove the LZMA_UNSTABLE macro.

 src/liblzma/Makefile.am         | 2 +-
 src/liblzma/api/lzma/bcj.h      | 2 --
 src/liblzma/api/lzma/version.h  | 6 +++---
 src/liblzma/common/common.h     | 2 --
 src/liblzma/liblzma_generic.map | 2 +-
 src/liblzma/liblzma_linux.map   | 2 +-
 6 files changed, 6 insertions(+), 10 deletions(-)

commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:32 +0200

    Add NEWS for 5.8.0

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

commit 6ccbb904da851eb0c174c8dbd43e84da31739720
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    Translations: Run "make -C po update-po"
    
    POT-Creation-Date is set to match the timestamp in 5.7.2beta which
    in the Translation Project is known as 5.8.0-pre1. The strings
    haven't changed since 5.7.1alpha but a few comments have.
    
    This is a very noisy commit, but this helps keeping the PO files
    similar between the Git repository and stable release tarballs.

 po/ca.po    | 964 ++++++++++++++++++++++++++++++++++++++++++++---------------
 po/cs.po    | 935 ++++++++++++++++++++++++++++++++++++++++++----------------
 po/da.po    | 663 ++++++++++++++++++++++++++++++-----------
 po/de.po    |   7 +-
 po/eo.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
 po/es.po    |   7 +-
 po/fi.po    |   2 +-
 po/fr.po    | 916 +++++++++++++++++++++++++++++++++++++++++---------------
 po/hu.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
 po/ka.po    |   7 +-
 po/ko.po    |   7 +-
 po/nl.po    |   7 +-
 po/pl.po    |   7 +-
 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++---------------
 po/sr.po    |   2 +-
 po/sv.po    |   7 +-
 po/tr.po    |   7 +-
 po/uk.po    |   7 +-
 po/vi.po    | 948 +++++++++++++++++++++++++++++++++++++++++++---------------
 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++--------------
 po/zh_TW.po |   2 +-
 21 files changed, 6209 insertions(+), 2120 deletions(-)

commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    Translations: Run po4a/update-po
    
    Also remove the trivial obsolete messages like man page dates.
    
    This is a noisy commit, but this helps keeping the PO files similar
    between the Git repository and stable release tarballs.

 po4a/fr.po    | 82 +++++++++++++++++++++++++++++++++++++------------------
 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------
 po4a/sr.po    | 79 ++++++++++++++++++++++++++++++++++-------------------
 3 files changed, 167 insertions(+), 82 deletions(-)

commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    Translations: Partially fix overtranslation in Serbian man pages
    
    Names of environment variables and some other strings must be present
    in the original form. The translator couldn't be reached so I'm
    changing some of the strings myself. In the "Robot mode" section,
    occurrences in the middle of sentences weren't changed to reduce
    the chance of grammar breakage, but I kept the translated strings in
    parenthesis in the headings. It's not ideal, but now people shouldn't
    need to look at the English man page to find the English strings.

 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 45 insertions(+), 21 deletions(-)

commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage

 src/liblzma/lz/lz_decoder.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 943b012d09f717f7b44284c4e4976ea41264c731
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
    
    SSE2 is supported on every x86-64 processor. The SSE2 code is used on
    32-bit x86 if compiler options permit unconditional use of SSE2.
    
    dict_repeat() copies short random-sized unaligned buffers. At least
    on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
    clearly faster than byte-by-byte copying in this use case. Compared
    to the memcpy() version, the new SSE2 version reduces decompression
    time by 0-5 % depending on the machine and libc. It should never be
    slower than the memcpy() version.
    
    However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
    Compared to the memcpy() version:
    
      - The byte-by-version takes 6-7 % less time to decompress.
      - The SSE2 version takes 16-18 % less time to decompress.
    
    The numbers are from decompressing a Linux kernel source tarball in
    single-threaded mode on older AMD and Intel systems. The tarball
    compresses well, and thus dict_repeat() performance matters more
    than with some other files.

 src/liblzma/lz/lz_decoder.c | 14 ++++++--
 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 90 insertions(+), 11 deletions(-)

commit bc14e4c94e788d42eeab984298391fc0ca46f969
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:31 +0200

    liblzma: Add "restrict" to a few functions in lz_decoder.h
    
    This doesn't make any difference in practice because compilers can
    already see that writing through the dict->buf pointer cannot modify
    the contents of *dict itself: The LZMA decoder makes a local copy of
    the lzma_dict structure, and even if it didn't, the pointer to
    lzma_dict in the LZMA decoder is already "restrict".
    
    It's nice to add "restrict" anyway. uint8_t is typically unsigned char
    which can alias anything. Without the above conditions or "restrict",
    compilers could need to assume that writing through dict->buf might
    modify *dict. This would matter in dict_repeat() because the loops
    refer to dict->buf and dict->pos instead of making local copies of
    those members for the duration of the loops. If compilers had to
    assume that writing through dict->buf can affect *dict, then compilers
    would need to emit code that reloads dict->buf and dict->pos after
    every write through dict->buf.

 src/liblzma/lz/lz_decoder.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit e82ee090c567e560f51a056775a17f534d159d65
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:30 +0200

    liblzma: Define LZ_DICT_INIT_POS for initial dictionary position
    
    It's more readable.

 src/liblzma/lz/lz_decoder.c | 4 ++--
 src/liblzma/lz/lz_decoder.h | 9 ++++++---
 2 files changed, 8 insertions(+), 5 deletions(-)

commit 8e7cd0091e5239334437decbe1989662d45a2f47
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:30 +0200

    Windows: Update README-Windows.txt about UCRT

 windows/README-Windows.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 2c24292d341e505e5579fccac3bce5bc71d839ef
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-25 15:18:15 +0200

    Update THANKS

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

commit 48053c90898fa191a216aefca01626520a7413f4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-17 15:33:25 +0200

    Translations: Update the Italian translation

 po/it.po | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-17 15:28:56 +0200

    Translations: Update the Portuguese translation
    
    The language tag in the Translation Project is pt, not pt_PT,
    thus I changed the "Language:" line to pt.

 po/pt.po | 1045 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 526 insertions(+), 519 deletions(-)

commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-14 13:02:21 +0200

    Translations: Update the Italian translation

 po/it.po | 1020 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 516 insertions(+), 504 deletions(-)

commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-12 20:48:39 +0200

    Translations: Update the Italian man page translations
    
    Only trivial additions but this keeps the file in sync with the TP.

 po4a/it.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 515b6fc8557825e1335012b3b1c8cf71e2c38775
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-12 19:38:54 +0200

    Translations: Update the Italian man page translations

 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 77 insertions(+), 52 deletions(-)

commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-10 21:00:31 +0200

    Translations: Update the Korean man page translations

 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 80 insertions(+), 59 deletions(-)

commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-10 20:56:57 +0200

    Translations: Update the German man page translations

 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 63 insertions(+), 39 deletions(-)

commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-10 13:13:30 +0200

    CMake: Fix tuklib_use_system_extensions
    
    Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
    will affect the calling scope. I had forgotten that while CMake
    functions inherit the variables from the parent scope, the changes
    to them are local unless using set(... PARENT_SCOPE).
    
    This also means that the commit message in 5bb77d0920dc is wrong. The
    commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
    is only needed for specific check_c_source_compiles() calls.
    
    Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179

 cmake/tuklib_common.cmake | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 80e48836024ec2d7cbd557575be6da3d1f055cba
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-10 11:38:55 +0200

    INSTALL: Document -bmaxdata on AIX
    
    This is based on a pull request and AIX docs. I haven't tested the
    instructions myself.
    
    Closes: https://github.com/tukaani-project/xz/pull/137

 INSTALL | 5 +++++
 1 file changed, 5 insertions(+)

commit ab319186b6d0454285ff4941a777ac95e580f60f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-10 11:37:19 +0200

    Update THANKS

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

commit 4434671a04436038f88ab0feaa251cc8d7abb683
Author: Collin Funk <collin.funk1@gmail.com>
Date:   2025-03-09 19:14:31 -0700

    tuklib_physmem: Silence -Wsign-conversion on AIX
    
    Closes: https://github.com/tukaani-project/xz/pull/168

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

commit 18bcaa4fafc935d89ffde94301fa6427907306bf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 22:10:38 +0200

    Translations: Update the Romanian man page translations

 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 66 insertions(+), 44 deletions(-)

commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 21:28:15 +0200

    Translations: Update the Croatian translation

 po/hr.po | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

commit ff85e6130d5940896915cdbb99aa9ece9d41240b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 21:23:34 +0200

    Translations: Update the Romanian translation

 po/ro.po | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

commit a5bfb33f30f77e656723d365db8b06e089d3de61
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 21:11:34 +0200

    Translations: Update the Ukrainian man page translations

 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 64 insertions(+), 43 deletions(-)

commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 14:43:07 +0200

    CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
    
    Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
    leak to the calling code.

 cmake/tuklib_cpucores.cmake | 3 +++
 cmake/tuklib_physmem.cmake  | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-09 14:06:35 +0200

    CMake: Revise tuklib_use_system_extensions
    
    Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
    these too (and a few others).
    
    Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
    makes a difference with mingw-w64.
    
    Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
    because there's always global effect because the global variable
    CMAKE_REQUIRED_DEFINITIONS is modified.

 CMakeLists.txt            |  2 +-
 cmake/tuklib_common.cmake | 27 +++++++++++++++------------
 2 files changed, 16 insertions(+), 13 deletions(-)

commit 4243c45a48ef8c103d77b75d9f93d48adcb631db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-08 14:54:29 +0200

    doc/SHA256SUMS: Add 5.7.2beta

 doc/SHA256SUMS | 3 +++
 1 file changed, 3 insertions(+)

commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-08 14:29:57 +0200

    Bump version and soname for 5.7.2beta

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

commit 62e44b36167de27541776dcf677ed04077c9fd19
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-08 14:24:38 +0200

    Add NEWS for 5.7.2beta

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

commit 70f1f203789433b5d7b8b22e1655abc465d659f7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-08 14:23:00 +0200

    COPYING: Remove the note about old releases

 COPYING | 19 -------------------
 1 file changed, 19 deletions(-)

commit db9827dc38ff79de747a6fc7a99619e961dbc5e6
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-08 14:22:28 +0200

    xz: Update the man page about the environment variables again

 src/xz/xz.1 | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 99c584891bd1d946561cebded2226df9b83f1efb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-06 19:26:09 +0200

    liblzma: Edit spelling in a comment
    
    It was found with codespell.

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

commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-06 19:14:23 +0200

    xz: Update the man page about the environment variables

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

commit 808f05af3ef40730d40b3798666757bd866484f1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-06 17:37:39 +0200

    Docs: Add a few TRANSLATORS comments to man pages
    
    All translators know that --command-line-options must not be translated.
    With some other strings it's not obvious when the untranslated string
    must be preserved. These comments hopefully help.

 src/scripts/xzmore.1 |  2 ++
 src/xz/xz.1          | 22 ++++++++++++++++++++++
 2 files changed, 24 insertions(+)

commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-06 16:34:32 +0200

    Scripts: Mark the LZMA Utils script aliases as deprecated
    
    The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
    lzgrep, lzegrep, and lzfgrep. The commands that start with
    the xz prefix have identical behavior, for example, both
    lzgrep and xzgrep handle all supported file formats.
    
    This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
    The last release of LZMA Utils was made in 2008, but the lzma
    compatibility alias for the gzip-like tool is still in common use.
    Deprecating it would cause unnecessary breakage.

 src/scripts/xzdiff.1 | 5 ++++-
 src/scripts/xzgrep.1 | 6 +++++-
 src/scripts/xzless.1 | 4 +++-
 src/scripts/xzmore.1 | 4 +++-
 4 files changed, 15 insertions(+), 4 deletions(-)

commit 4941ea454c02cf15a64d6434a0778fc2a81282fc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-02 21:13:04 +0200

    Translations: Add Serbian man page translations

 po4a/po4a.conf |    2 +-
 po4a/sr.po     | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 3893 insertions(+), 1 deletion(-)

commit d142d96f24daa451edaabfca8594e202932b3c0b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-03-02 20:42:14 +0200

    Translations: Update Georgian translation

 po/ka.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9b7e45d841195c8fd8d286e26f810df28c53dd16
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-28 21:07:21 +0200

    Update THANKS

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

commit 9351592710e0df3238b09d39c545a643c50ac88f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-22 16:04:58 +0200

    Update THANKS

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

commit 9023be7831faca2f28def55e16c39e3a42e1e262
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-19 16:33:52 +0200

    Translations: Update the Croatian translation

 po/hr.po | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-17 21:46:15 +0200

    Build: Fix out-of-tree builds when using the replacement getopt_long
    
    Nowaways $(top_builddir)/lib/getopt.h depends on headers in
    $(top_srcdir)/lib, so both have to be in the include path.
    CMake-based build already did this.
    
    Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca

 src/lzmainfo/Makefile.am | 6 ++++--
 src/xz/Makefile.am       | 6 ++++--
 src/xzdec/Makefile.am    | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)

commit 41322b2c60cd2c67a1053cb40d27e573420185b7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-17 18:25:52 +0200

    m4/getopt.m4: Remove an outdated comment

 m4/getopt.m4 | 3 ---
 1 file changed, 3 deletions(-)

commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-17 18:11:58 +0200

    Build: Allow forcing the use of the replacement getopt_long
    
    Now one can pass gl_replace_getopt=yes to configure to force the use
    of GNU getopt_long from the lib directory. This only checks that the
    value of gl_replace_getopt is non-empty, so one cannot force the
    replacement to be disabled.
    
    Closes: https://github.com/tukaani-project/xz/pull/166

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

commit c23b837d15960ecc0d537f0260f389904e1e7f02
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-17 18:11:42 +0200

    Update THANKS

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

commit 2672a38f1159babf9ba3cca429f644bb823a8bdd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-12 19:23:31 +0200

    Update THANKS

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-11 12:13:41 +0200

    Update THANKS

 THANKS | 3 +++
 1 file changed, 3 insertions(+)

commit 0d553568f1af9a35779ecac41392a6c871786930
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-08 11:39:08 +0200

    Translations: Update the Polish translation

 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 464 insertions(+), 338 deletions(-)

commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-07 19:12:03 +0200

    Docs: Update TODO a little

 TODO | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

commit f5aa292c534f87b9dd588e667d1c65ed31e5f289
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-07 18:50:56 +0200

    Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS
    
    These are specific phrases that were included in the advisories and
    NEWS. It's nice to have them in THANKS as well.

 THANKS | 4 ++++
 1 file changed, 4 insertions(+)

commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-07 18:43:00 +0200

    Update THANKS

 THANKS | 5 +++++
 1 file changed, 5 insertions(+)

commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-04 14:12:46 +0200

    Docs: Update the "Translations" section in README
    
    Make it clearer that translations cannot be accepted if they don't
    come via the Translation Project.
    
    Column headings have been handled automatically for years and now --help
    is autowrapped too, so the related instructions can be removed.

 README | 107 ++++++++++++++++++++++++-----------------------------------------
 1 file changed, 39 insertions(+), 68 deletions(-)

commit 2c7aee94936babf84b61b55420e503a0b2629ec1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-04 13:23:53 +0200

    debug/translations.bash: Revise a little
    
    Make it work for out-of-tree builds without requiring one to specify
    the location of the xz executable.
    
    Add xz --filters-help.
    
    Make the output shorter by reducing the number of xz -lvv test files.
    
    Show the value of LANGUAGE environment variable.
    
    Show the xz.git version using git describe --abbrev=8 instead of =4.

 debug/translation.bash | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

commit c6b15e7045209002bbbf4979c48072af01c20d8d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-04 13:20:52 +0200

    Build: Use "git describe --abbrev=8" in snapshot tarball names
    
    8 is more likely to be reproducible than the old 4 without being
    excessively long for a small repository like this.

 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-04 19:37:17 +0200

    Update THANKS

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 353c33355cb12e5016d49052fd1e90d15568aa37
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-03 16:29:31 +0200

    Translations: Update the Serbian translation

 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 458 insertions(+), 347 deletions(-)

commit 887dc281885052bced32b3aa309506ea58a2e78e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-03 16:15:38 +0200

    Translations: Update Chinese (traditional) translation
    
    Since there are no spaces between words, the unsophisticated automatic
    word wrapping code needs some help. Compared to the version in the
    Translation Project, I added a few \t characters which the word
    wrapping code interprets as zero width spaces (hopefully they are
    placed correctly). These edits can be seen with this command:
    
        grep -v ^# po/zh_TW.po | grep --color -F '\t'

 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 471 insertions(+), 372 deletions(-)

commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-03 16:12:44 +0200

    Update THANKS

 THANKS | 2 ++
 1 file changed, 2 insertions(+)

commit 23ea031820086d302a213be005a091df763b8a7b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-02 14:15:07 +0200

    Build: Update posix-shell.m4 from Gnulib
    
    Tabs have been converted to spaces and a "serial" number has been
    added. The previous version was from 2008/2009. There are no functional
    changes since then but now it's clearer that the copy in XZ Utils
    isn't outdated.
    
    The new file was picked from the Gnulib commit
    81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds
    a warranty disclaimer to the license, which obviously is fine,
    but I didn't find a SPDX license identifier for the new license,
    so for simplicity I used the earlier commit.

 m4/posix-shell.m4 | 31 ++++++++++++++++---------------
 1 file changed, 16 insertions(+), 15 deletions(-)

commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-02-02 12:51:03 +0200

    Build: Check for -fsanitize= also in $CC
    
    People may put -fsanitize in CC instead of CFLAGS so check both.
    Landlock sandbox isn't compatible with sanitizers so it's nice
    to catch the incompatible options at configure time.
    
    Don't attempt to do the same in CMakeLists.txt; the check for
    CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from
    the CC environment variable go into the undocumented internal variable
    CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable).
    Peeking the internal variable merely for improved diagnostics isn't
    worth it.
    
    Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179

 configure.ac | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit a7304ea4a7daede9789a8fe422b714e372737120
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-26 19:11:20 +0300

    Build: Remove the FIXME about -Werror checks

