commit 4b73f2ec19a99ef465282fbce633e8deb33691b3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-31 17:26:16 +0300

    Bump version and soname for 5.8.3

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

commit 97b7440006d69a30048ff1ffc29fc7a0615e5d51
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-31 17:26:16 +0300

    Add NEWS for 5.8.3

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

commit 8e1022cfb1d177e482e487c202a0ab43dee761a3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-31 17:10:47 +0300

    Translations: Run "make -C po update-po"
    
    Update the PO files to contain the comment fix from 4e76651dbaf6.

 po/ca.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/cs.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/da.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/de.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/eo.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/es.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/fi.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/fr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/hr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/hu.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/it.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/ka.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/ko.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/nl.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/pl.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/pt.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/pt_BR.po | 148 ++++++++++++++++++++++++++++++------------------------------
 po/ro.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/sr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/sv.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/tr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/uk.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/vi.po    | 148 ++++++++++++++++++++++++++++++------------------------------
 po/zh_CN.po | 148 ++++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 148 ++++++++++++++++++++++++++++++------------------------------
 25 files changed, 1850 insertions(+), 1850 deletions(-)

commit a3ea8832bec11128597c454f5d14d05ef6010e3f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-29 20:29:40 +0300

    Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug

 tests/test_index.c | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

commit c8c22869e780ff57c96b46939c3d79ff99395f87
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-29 19:11:21 +0300

    liblzma: Fix a buffer overflow in lzma_index_append()
    
    If lzma_index_decoder() was used to decode an Index that contained no
    Records, the resulting lzma_index had an invalid internal "prealloc"
    value. If lzma_index_append() was called on this lzma_index, too
    little memory would be allocated and a buffer overflow would occur.
    
    While this combination of the API functions is meant to work, in the
    real-world apps this call sequence is rare or might not exist at all.
    
    This bug is older than xz 5.0.0, so all stable releases are affected.
    
    Reported-by: GitHub user christos-spearbit

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

commit a37658bec72ed581a683b7498a75a70122b831b0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-27 21:15:12 +0200

    CMake: Adjust warnings with MSVC and clang-cl
    
    When using clang-cl, avoid the long list of warning options used with
    GCC and Clang because, for MSVC compatibility, clang-cl's -Wall behaves
    like -Weverything.
    
    Add warning options for MSVC. Use them with clang-cl too.

 CMakeLists.txt | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit 9e499f714cade4beade31c86dcb0de9fc72d0562
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-27 21:14:50 +0200

    CI: Don't disable individual warnings with clang-cl

 .github/workflows/msvc.yml | 13 -------------
 1 file changed, 13 deletions(-)

commit 1e00837f72e0551ab73927642a8f61aad80c958d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 12:02:48 +0200

    CI: Add Haiku

 .github/workflows/haiku.yml | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 8082851b7848ac32fea7bc7cfb84d9b3ef5537b0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:30:20 +0200

    Update THANKS

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

commit 3cdd412bcea6bb5b4c5d41d2b4104230a5a9569c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:29:30 +0200

    CI: Update MSYS2
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/msys2.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e38a4af340ca9738923a511b7e35b6390c03ec50
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:29:23 +0200

    CI: Update Solaris
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/solaris.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 40b1599217cc4f7cca6f48e0c32e709b9abd3639
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:29:14 +0200

    CI: Update OpenBSD
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/openbsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 3aaf2f136c3fcf1140b9dfa584640778be789abc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:29:08 +0200

    CI: Update NetBSD
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/netbsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b5c26a249d21d293b441b21d22a1a81e7eec436a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:28:58 +0200

    CI: Update FreeBSD
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/freebsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1a73f4f917f25d19ae557f49af2fddd9ef9f0a4a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 11:28:47 +0200

    CI: Update DragonFly BSD
    
    Closes: https://github.com/tukaani-project/xz/pull/213

 .github/workflows/dragonflybsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 5d61c5a3cf3be88b16179900ac5be82011a3a6bb
Author: Salman Muin Kayser Chishti <13schishti@gmail.com>
Date:   2026-02-28 09:10:46 +0000

    CI: Upgrade GitHub Actions for Node 24 compatibility
    
    Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
    Closes: https://github.com/tukaani-project/xz/pull/212

 .github/workflows/ci.yml           | 4 ++--
 .github/workflows/cifuzz.yml       | 2 +-
 .github/workflows/coverity.yml     | 2 +-
 .github/workflows/dragonflybsd.yml | 2 +-
 .github/workflows/freebsd.yml      | 2 +-
 .github/workflows/msvc.yml         | 2 +-
 .github/workflows/msys2.yml        | 4 ++--
 .github/workflows/netbsd.yml       | 2 +-
 .github/workflows/openbsd.yml      | 2 +-
 .github/workflows/solaris.yml      | 2 +-
 10 files changed, 12 insertions(+), 12 deletions(-)

commit 0ac3b93387c0191919ffa38de5f49f6b28164b35
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-25 19:03:00 +0200

    xz: Prevent an integer overflow in --files and --files0
    
    This requires a filename (or something that pretends to be a filename)
    of at least 2 GiB on a 32-bit platform, and that realloc() to
    SIZE_MAX / 2 + 1 bytes has succeeded.
    
    Fixes: https://github.com/tukaani-project/xz/pull/218

 src/xz/main.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 2faa141bdb47be94da2eae6df6f08858999a5911
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-23 23:43:56 +0200

    tuklib_integer: Fix inefficient aligned_writeXXne
    
    The __builtin_assume_aligned was applied to the wrong argument which
    made aligned writes worse on strict-align archs.
    
    Aligned writes aren't used in liblzma, so this bug didn't matter in
    this package; tuklib_integer.h is meant to be usable elsewhere too.

 src/common/tuklib_integer.h | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

commit 685538271e3e213a18c5a925654aaa32c0b69f1e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-03-22 10:22:09 +0200

    Build: Remove -Wpre-c2x-compat
    
    It makes clang -std=gnu23 noisy about bool. It's also noisy about
    [[__fallthrough__]] which is only used in C23 mode.
    
    Reported-by: Collin Funk <collin.funk1@gmail.com>

 CMakeLists.txt | 1 -
 configure.ac   | 1 -
 2 files changed, 2 deletions(-)

commit 3a78a82bd380c26bc7afda7565216c3383cedefe
Author: Collin Funk <collin.funk1@gmail.com>
Date:   2026-03-15 23:24:59 -0700

    xz: Don't fsync directories on QNX
    
    On QNX calling fsync on a directory fails with EINVAL. This causes the
    following test failure:
    
        $ cat tests/test_suffix.sh.log
        /data/home/root/xz-5.8.2/src/xz/.libs/lt-xz: suffix_temp: Synchronizing the directory of the file failed: Invalid argument
        Failed to decompress a file with a suffix set in raw format
        FAIL test_suffix.sh (exit status: 1)
    
    Closes: https://github.com/tukaani-project/xz/pull/216

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

commit bfc5f12a84a2a9df774ed16cd6eb58fd5ab24646
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-25 17:33:42 +0200

    Update THANKS

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

commit 5553509f1a53ee160ea3bc871c716a75ba0b1ea0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-25 00:00:49 +0200

    liblzma: Fix a copy-paste error in commented-out code
    
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2841960994
    Fixes: 96b663f67c0e ("liblzma: Refactor CRC comments.")

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

commit 4e76651dbaf6a0159f2117482d778ff69127fdea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-24 18:34:19 +0200

    Fix typos and grammar in comments and docs
    
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354505
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354515
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2820960196

 po/Makevars                                      | 2 +-
 src/common/tuklib_gettext.h                      | 4 ++--
 src/common/tuklib_mbstr_wrap.h                   | 4 ++--
 src/common/w32_application.manifest.comments.txt | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

commit cd8a6231d084ee9ce0a7a285f99dc5721d1f4317
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-24 18:24:29 +0200

    tuklib_open_stdxxx: Fix a typo in macro name
    
    It doesn't matter in this package, but it's good to fix it still.
    
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313660

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

commit bf5d32f489fd7f33b2a629f9b78f5157301b49d8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-24 18:22:25 +0200

    CMake: Fix a wrong #define
    
    HAVE_SYS_PARAM_H was misspelled HAVE_PARAM_H. This might have broken
    the build on systems where sysctl() is used to detect the amount of RAM
    or the number of processor cores/threads.
    
    The cpuset code for FreeBSD doesn't need the macro it so it was removed.
    
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313680
    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313704
    Fixes: 7e3493d40eac ("Build: Add very limited experimental CMake support.")

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

commit b0f3b64a25bcd3a6a4cebc00866dea86590fac3e
Author: Radek Zikmund <r.zikmund.rz@gmail.com>
Date:   2026-02-12 15:24:15 +0100

    liblzma/MSVC: Add a cast to fix a warning (C4057) with __cpuid()
    
    __cpuid from MSVC (and also the old Intel ICC) use int[], while
    __get_cpuid from <cpuid.h> in GCC and Clang use unsigned int[].
    Adding a cast is the simplest fix.
    
    Link: https://github.com/tukaani-project/xz/pull/208

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

commit b51d67f4a95f41ae3a64973acc0e44b9f078512f
Author: Radek Zikmund <r.zikmund.rz@gmail.com>
Date:   2026-02-23 17:50:00 +0100

    CMake: Guard script configure_file() calls with ENABLE_SCRIPTS
    
    The configure_file() calls for xzdiff, xzgrep, xzmore, and xzless
    were running unconditionally within the if(UNIX) block, even when
    ENABLE_SCRIPTS was OFF. This would cause a build failure if the
    src/scripts/*.in files were not present. Deleting those files can
    simplify license compliance when the scripts aren't needed.
    
    Move the foreach loop and related code inside if(ENABLE_SCRIPTS) guard
    so that configure_file() is only called when scripts are actually needed.
    This is mostly whitespace changes to adjust the indentation.
    
    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
    Closes: https://github.com/tukaani-project/xz/pull/210

 CMakeLists.txt | 68 ++++++++++++++++++++++++++++------------------------------
 1 file changed, 33 insertions(+), 35 deletions(-)

commit 1007bf08b5fddf088b3131e692210af4b4b7fd8c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-02-04 12:28:07 +0200

    Translations: Add Arabic man page translations
    
    Rendering of bidirectional text from man pages might not work perfectly
    in all cases.

 po4a/ar.po     | 3905 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 po4a/po4a.conf |    2 +-
 2 files changed, 3906 insertions(+), 1 deletion(-)

commit 54147ad65af12d9e4f60a8ce59094a8a30ad5919
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-01-25 13:51:09 +0200

    Update THANKS

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

commit d6bdb446f8da47ac2af8c309de8e7c80beae850e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-01-25 13:30:46 +0200

    liblzma: Add the "License" property to liblzma.pc
    
    The "License" property is a pkgconf extension. See pc(5).
    pkg-config 0.29.2 (2017) ignores unrecognized properties so this
    commit shouldn't create compatibility issues.
    
    pkgconf provides bomtool which uses the "License" property to generate
    a software bill of materials. In pkgconf.git there is spdxtool for the
    same task but with different output format.
    
    The pkgconf extensions "Copyright" and "Maintainer" would also be
    used by bomtool and spdxtool, but I don't want to add those properties
    at least for now.
    
    Co-authored-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
    Closes: https://github.com/tukaani-project/xz/pull/178

 src/liblzma/liblzma.pc.in | 1 +
 1 file changed, 1 insertion(+)

commit 687bd3e30fbe54ae906d06a93e7f2aa8b121aa7b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-01-25 12:14:46 +0200

    Update THANKS

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

commit b80b6343a4b7df6bf56dcf07715f9f536af93306
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2026-01-25 12:14:25 +0200

    liblzma: Don't try to use x86-64 inline asm on ARM64EC
    
    Reported-by: Chase Knowlden
    Fixes: https://github.com/tukaani-project/xz/issues/206

 src/liblzma/rangecoder/range_decoder.h | 1 +
 1 file changed, 1 insertion(+)

commit 47fb9d84c052912ca10dc9843cb296c860b182ac
Author: Pino Toscano <toscano.pino@tiscali.it>
Date:   2025-12-30 19:59:55 +0100

    Autotools: Enable x86 assembler on Hurd by default
    
    It has been enabled in Debian GNU/Hurd for 15+ years with no issues.
    Hence, enable it by default also in the upstream sources.
    
    The CMake build already had it enabled.
    
    Link: https://salsa.debian.org/debian/xz-utils/-/blob/debian/5.8.2-2/debian/rules?ref_type=tags#L98
    Closes: https://github.com/tukaani-project/xz/pull/204

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

commit 9f4c5a0d4817c9c7011cdfd00cfbe0ddda66a455
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-17 14:49:12 +0200

    doc/SHA256SUMS: Add 5.8.2

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

commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-17 13:36:42 +0200

    Bump version and soname for 5.8.2

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

commit fb14afd5c9bf14d8c67ee11e4139885072071ddd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-17 13:36:35 +0200

    Add NEWS for 5.8.2

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

commit 590f4713b29f0236ab944487f40069355a515dbc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-16 11:30:35 +0200

    CMake: Bump maximum policy version to 4.2
    
    CMP0186 is curious but we aren't affected.

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 26d22ed16b6e38ce8ed45cb29076f454cd488762
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-10 19:20:05 +0200

    tuklib_integer/CMake: Log a message about unaligned access check

 cmake/tuklib_integer.cmake | 8 ++++++++
 1 file changed, 8 insertions(+)

commit f7381cf927576164c17be4e4c1edeec3cdaca7cf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-10 19:11:27 +0200

    tuklib_integer/CMake: Don't run unaligned access checks unnecessarily
    
    If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set,
    the autodetection result isn't needed because the option() command
    does nothing when the cache variable is already set.
    
    This is largely white space change to indent the if...endif block.

 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++----------------------
 1 file changed, 117 insertions(+), 109 deletions(-)

commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-10 16:49:55 +0200

    tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available
    
    CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many
    platforms. The list of possible values are documented. Use this
    variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR
    is still used, thus the regexes have to include values like ^amd64 still.
    
    With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID
    is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might
    not match the target architecture.

 cmake/tuklib_integer.cmake | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit c690101dddd784b75224a8935f56cd163d3e90a3
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-10 16:49:55 +0200

    tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64
    
    On ARM64, support for fast unaligned memory access was autodetected by
    checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC
    versions up to 15.2.0 define the macro even when -mstrict-align has
    been specified. Thus, autodetection with GCC doesn't work correctly,
    and binaries built using -mstrict-align can be much slower than they
    need to be, unless the user also passes --disable-unaligned-access
    to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake.
    
    See the GCC bug:
    
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
    
    Workaround the issue by using heuristics with GCC on ARM64.
    
    With Clang, the detection using __ARM_FEATURE_UNALIGNED works.
    It also works with GCC on 32-bit ARM.
    
    Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.")

 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++-------
 m4/tuklib_integer.m4       | 78 +++++++++++++++++++++++++++++++++++-----------
 2 files changed, 110 insertions(+), 31 deletions(-)

commit d9b318f5b8a3524e90ac17471e79db7de012caf5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 18:02:23 +0200

    CI: Update MSYS2

 .github/workflows/msys2.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 18:02:05 +0200

    CI: Update DragonFly BSD

 .github/workflows/dragonflybsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a7b749389c64dfbee1c29d88e61e71186b472784
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 17:58:52 +0200

    CI: Update Solaris

 .github/workflows/solaris.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 17:56:58 +0200

    CI: Update NetBSD

 .github/workflows/netbsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fbc1046248cfe3c730437ba7d98dde89b0eced3e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 17:54:54 +0200

    CI: Update OpenBSD

 .github/workflows/openbsd.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 17:52:01 +0200

    CI: Update FreeBSD

 .github/workflows/freebsd.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit f8424b0416266c393c84a315e3bdedbc19efa0a8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 17:40:05 +0200

    Update THANKS

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

commit c4340692d4490ff80e897d4840fadc033c46d81a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 13:01:36 +0200

    Translations: Add src/xz/sandbox.c to POTFILES.in
    
    There are no strings to translate in that file now, but it's good to
    list it anyway in case translatable strings are added in the future.
    
    Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.")

 po/POTFILES.in | 1 +
 1 file changed, 1 insertion(+)

commit b8af36920b0857c0329f61414df5989093386db1
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:55:45 +0200

    xz: Never translate "Failed to enable the sandbox"
    
    This was already the case in practice because I had forgotten to list
    src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never
    translate this particular error message. It should almost never occur
    and if it does, an untranslated message is should make it easier to
    find bug reports about it.

 src/xz/sandbox.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:27:15 +0200

    Translations: Update the Swedish man page translations

 po4a/sv.po | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

commit 88531e5463d9f028387a11b78d53c9c269e6a3a0
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:26:24 +0200

    Translations: Update the Romanian man page translations

 po4a/ro.po | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:13:36 +0200

    Update THANKS

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

commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:13:36 +0200

    CMake: Autodetect unaligned access support on LoongArch
    
    This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more
    CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in
    a more defined manner, but 4.1 is too new to require for now.
    
    Thanks-to: Li Chenggang <lichenggang@deepin.org>
    Closes: https://github.com/tukaani-project/xz/pull/186

 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)

commit 7971566247914ec1854b125ff99c2a617f5c1e3a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-12-09 12:13:36 +0200

    Autotools: Autodetect unaligned access support on LoongArch
    
    According to [1] sections 7.4, 8.1, and 8.2, desktop and server
    processors support fast unaligned access, but embedded systems likely
    don't.
    
    It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when
    -mstrict-align is in use because it will result in slower binaries
    even if running on a processor that supports fast unaligned access.
    It's because compilers will translate multibyte memcpy() to multiple
    byte-by-byte instructions instead of wider loads and stores. The
    compression times from [2] show this well:
    
        Unaligned access    CFLAGS                     Compression time
            enabled         -O2 -mno-strict-align          66.1 s
            disabled        -O2 -mno-strict-align          79.5 s
            disabled        -O2 -mstrict-align             79.9 s
            enabled         -O2 -mstrict-align            129.1 s
    
    There currently (GCC 15.2) is no preprocessor macro on LoongArch
    to detect if -mstrict-align or -mno-strict-align is in effect (the
    default is -mno-strict-align). Use heuristics to detect which of the
    flags is in effect.
    
    [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
    [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304
    
    Thanks-to: Li Chenggang <lichenggang@deepin.org>
    Thanks-to: Xi Ruoyao
    See: https://github.com/tukaani-project/xz/pull/186

 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    xz: Silence clang -Wunreachable-code-break
    
    Fixes: a165d7df1964 ("xz: Add a new --filters-help option.")

 src/xz/args.c | 1 -
 1 file changed, 1 deletion(-)

commit 723cee44d076281bce9c3d7bd2c17b0680bd8884
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    liblzma: Remove unwanted semicolons
    
    These didn't affect control flow.

 src/liblzma/common/vli_decoder.c       | 2 +-
 src/liblzma/lzma/lzma_common.h         | 4 ++--
 src/liblzma/rangecoder/range_decoder.h | 6 +++---
 3 files changed, 6 insertions(+), 6 deletions(-)

commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    Tests: Remove an unwanted semicolon from a macro definition
    
    It didn't affect control flow.
    
    Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.")

 tests/test_block_header.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    Build: Use -Wextra-semi-stmt when supported

 CMakeLists.txt | 1 +
 configure.ac   | 1 +
 2 files changed, 2 insertions(+)

commit 91170c8cab72b94a697f5228f4df13483ef5be91
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    CI: Add clang-cl
    
    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136

 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

commit a3c6cb09113de978b971cbdacf5c4890d4237c28
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-26 13:50:57 +0200

    xz/Windows: Add a missing #include to fix the build with clang-cl
    
    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734
    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136

 src/xz/util.c | 4 ++++
 1 file changed, 4 insertions(+)

commit c410ccc62511ec95b20639defb10650ef9b75e8c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-25 21:05:37 +0200

    xz: Check return value of sigaction() before calling raise()
    
    Fixes: Coverity CID 456022

 src/xz/signals.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

commit 6cc2da0a4b180b71cb6e781c897052def103ad3e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-02 12:57:00 +0200

    liblzma: Refactor a loop in lzma_filters_copy()
    
    Arguably it's nicer if i doesn't wrap around when the loop terminates.
    
    Fixes: Coverity CID 464589
    Fixes: 6d118a0b9def ("Add lzma_filters_copy().")

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

commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-02 12:17:50 +0200

    liblzma: Silence two Coverity warnings
    
    lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't
    valid. alone_decoder.c and lzip_decoder.c didn't check the return
    value because in both it is known that lc/lp/pb are valid. Make them
    call the _nocheck() variant instead which skips the validation (it
    already existed for LZMA2's internal use).
    
    Fixes: Coverity CID 464658
    Fixes: Coverity CID 897069

 src/liblzma/common/alone_decoder.c |  6 ++++--
 src/liblzma/common/lzip_decoder.c  |  3 ++-
 src/liblzma/lzma/lzma_decoder.h    | 11 ++++++-----
 3 files changed, 12 insertions(+), 8 deletions(-)

commit be365b701024b9acbfef4035c6433a0fbb4be823
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-02 12:17:50 +0200

    liblzma: Fix a harmless read of shared variable without mutex
    
    The partial_update_mode enumeration had three states, _DISABLED,
    _START, and _ENABLED. Main thread changed it from _DISABLED to _START
    while holding a mutex. Once set to _START, worker thread changed it
    to _ENABLED without a mutex. Later main thread read it without a mutex,
    so it could see either _START or _ENABLED. However, it made no
    difference because the main thread checked for != _DISABLED, so
    it didn't matter if it saw _START or _ENABLED.
    
    Nevertheless, such things must not be done. It's clear it was a mistake
    because there were two comments that directly contradicted each
    other about how the variable was accessed.
    
    Split the enumeration into two booleans:
    
      - partial_update_enabled: A worker thread locks the mutex to read
        this variable and the main thread locks the mutex to change the
        value. Because only the main thread modifies the variable, the
        main thread can read the value without locking the mutex.
        This variable replaces the _DISABLED -> _START transition.
    
      - partial_update_started is for worker thread's internal use and thus
        needs no mutex. This replaces the _START -> _ENABLED transition.
    
    Fixes: Coverity CID 456025
    Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.")

 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++-------------------
 1 file changed, 34 insertions(+), 45 deletions(-)

commit 2686554da0103580a472919220931c397b1d1f7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-02 12:17:50 +0200

    CI: Add Coverity Scan
    
    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
    Fixes: https://github.com/tukaani-project/xz/issues/198

 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

commit 1b30734c9c08a3f628574d172f1a6034277a2163
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2025-11-25 13:55:35 +0200

    Change the sorting order in THANKS
    
    In short, sort the names with this command (-k1,1 isn't needed because
    the lines with names start with "  -"):
    
        LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5
    
    When THANKS was created, I wrote the names as "First Last" and attempted
    to keep them sorted by last name / surname / family name. This works
    with many names in THANKS, but it becomes complicated with names that
    don't fit that pattern. For example, names that are written as
    "Last First" can be manually sorted by family name, but only if one
    knows which part of the name is the family name.[*] And of course,
    the concept of first/last name doesn't apply to all names.
    
    [*] xz had a co-maintainer who could help me with such names,
        but fortunately he isn't working on the project anymore.
    
    Adding the names in chronological order could have worked too, although
    if something is contributed by multiple people, one would still have to
    decide how to sort the names within the batch. Another downside would
    be that if THANKS is updated in more than one work-in-progress branch,
    merge conflicts would occur more often.
    
    Don't attempt to sort by last name. Let's be happy that people tend to
    provide names that can be expressed in a reasonable number of printable
    Unicode characters. In practice, people have been even nicer: if the
    native language doesn't use a Latin script alphabet, people often provide
    a transliterated name (only or in addition to the original spelling),
    which is very much appreciated by those who don't know the native script.
    
    Treat the names as opaque strings or space-separated strings for sorting
    purposes. This means that most names will now be sorted by first name.
    There still are many choices how to sort:
    
    (1) LC_ALL=en_US.UTF-8 sort
    
        The project is in English, so this may sound like a logical choice.
        However, spaces have a lower weight than letters, which results in
        this order:
    
            - A Ba
            - Ab C
            - A Bc
            - A Bd
    
    (2) LC_ALL=en_US.UTF-8 sort -k2,2
    
        This first sorts by the first word and then by the rest of the
        string. It's -k2,2 instead of -k1,1 to skip the leading dash.
    
            - A Ba
            - A Bc
            - A Bd
            - Ab C
    
        I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too.
        With current THANKS it makes no difference but it might some day.
    
        NOTE: The ordering in en_US.UTF-8 can differ between libc versions
        and operating systems. Luckily it's not a big deal in THANKS.
    
    (3) LC_ALL=en_US.UTF-8 sort -f -k2,2
    
        Passing -f (--ignore-case) to sort affects sorting of single-byte
        characters but not multibyte characters (GNU coreutils 9.9):
    
            No -f       With -f     LC_ALL=C
            Aa          A.A         A.A
            A.A         Aa          Aa
            Ää          Ää          Ä.Ä
            Ä.Ä         Ä.Ä         Ää
    
        In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1".
        There is also a basic check that the en_US.UTF-8 locale is
        behaving as expected.
    
    (4) LC_ALL=C sort
    
        This sorts by byte order which in UTF-8 is the same as Unicode
        code point order. With the strings in (1) and (2), this produces
        the same result as in (2). The difference in (3) can be seen above.
    
