commit e17caec12e14eb46ae90f4a5e59401ada4ab2842
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 17:51:23 +0300

    Bump version and soname for 5.2.13

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

commit c38f850536208409674adb0d84b374f899aec7dc
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 17:49:42 +0300

    Add NEWS for 5.2.13

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

commit a59aae8d28323ecf79ad8e1dd46d15c5d8129ba9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-29 16:33:24 +0300

    Build: Update po/*.po files only when needed
    
    When po/xz.pot doesn't exist, running "make" or "make dist" will
    create it. Then the .po files will be updated but only if they
    actually would change more than the POT-Creation-Date line.
    Then the .gmo files would be generated from the .po files.
    This is the case before and after this commit.
    
    However, "make dist" and thus "make mydist" did a forced update
    to the files, updating them even if the only change was the
    POT-Creation-Date line. This had pros and cons: It made it clear
    that the .po file really is in sync with the recent strings in
    the package. On the other hand, it added noise in form of changed
    files in the source tree and distribution tarballs. It can be
    ignored with something like "diff -I'^"POT-Creation-Date: '" but
    it's still a minor annoyance *if* there's not enough value in
    having the most recent timestamp.
    
    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
    update won't happen in "make dist" anymore. However, the "mydist"
    target will use xz.pot-update target which is the same target that
    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
    ensure that the translations are up to date, without noise from
    changes that would affect only the POT-Creation-Date line.
    
    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
    in the man page translations is never the only change in .po files.
    In that sense this commit makes the message translations behave more
    similarly to the man page translations.
    
    Distribution tarballs will still have non-reproducible POT-Creation-Date
    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
    could be made reproducible from a Git timestamp if desired.
    
    (cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762)

 Makefile.am | 3 ++-
 po/Makevars | 6 +++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

commit ac0658fa6d765b26efca68e4a464c659ef74cf11
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 21:23:40 +0300

    Translations: Run po4a/update-po and cleanup unused strings
    
    The v5.2 branch won't get any translation updates so the fuzzy
    strings and obsolete strings are all useless. Cleaning them up
    makes the files smaller and less messy to compare.
    
        ./update-po
    
        for I in *.po
        do
            msgattrib --clear-fuzzy --clear-previous --empty \
                      --no-obsolete --no-wrap "$I" > tmp
            mv tmp "$I"
        done
    
    The po4a run gave "Parse error at" message from fr.po but
    after the fr.po was rewritten the error is gone.

 po4a/de.po | 4482 +++++++++++++++++-------------------------------------------
 po4a/fr.po | 1664 +++++++++++-----------
 2 files changed, 2072 insertions(+), 4074 deletions(-)

commit 2bc80e5f820a2e8548e9b1ba60dc1eda4218439e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 21:10:33 +0300

    po4a/update-po: Disable wrapping in .pot and .po files
    
    The .po files from the Translation Project come with unwrapped
    strings so this matches it.
    
    This may reduce the noise in diffs too. When the beginning of
    a paragraph had changed, the rest of the lines got rewrapped
    in msgsid. Now it's just one very long line that changes when
    a paragraph has been edited.
    
    The --add-location=file option was removed as redundant. The line
    numbers don't exist in the .pot file due to --porefs file and thus
    they cannot get copied to the .po files either.
    
    (cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599)

 po4a/update-po | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

commit 27cfdc58971700767082df1c9ce37c77550b7ec5
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 18:36:53 +0300

    Update contact info in README
    
    (cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569)

 README | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 649b1ca6e51659e8f48f301f9d211338aa837c69
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 17:46:52 +0300

    Translations: Run "make -C po update-po"
    
    In the past this wasn't done before releases; the Git repository
    just contained the files from the Translation Project. But this
    way it is clearer when comparing release tarballs against the
    Git repository.

 po/ca.po    | 340 ++++++++++++++++++++++++++++++------------------------------
 po/cs.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/da.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/de.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/eo.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/es.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/fi.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/fr.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/hr.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/hu.po    | 336 +++++++++++++++++++++++++++++------------------------------
 po/it.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/ko.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/pl.po    | 338 ++++++++++++++++++++++++++++++-----------------------------
 po/pt.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/pt_BR.po | 322 ++++++++++++++++++++++++++++----------------------------
 po/ro.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/sr.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/sv.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/tr.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/uk.po    | 322 ++++++++++++++++++++++++++++----------------------------
 po/vi.po    | 330 ++++++++++++++++++++++++++++------------------------------
 po/zh_CN.po | 336 +++++++++++++++++++++++++++++------------------------------
 po/zh_TW.po | 338 ++++++++++++++++++++++++++++++-----------------------------
 23 files changed, 3783 insertions(+), 3815 deletions(-)

commit af667d7f499a69adf9fbee02db9a20cb0feb2b24
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 13:25:07 +0300

    Translations: Use --package-name=xz-man with po4a
    
    This is to match reality. See the added comment.
    
    (cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353)

 po4a/update-po | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 6e49bd6c46a2773a3b97b21221a427cf62f560ec
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 01:17:45 +0300

    Translations: Omit man page line numbers from .pot and .po files
    
    (cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839)

 po4a/update-po | 5 +++++
 1 file changed, 5 insertions(+)

commit fd38afb62866847ce0256d704d5cf1dcdc086a44
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-28 17:10:19 +0300

    Translations: Update po/Makevars
    
    Use the template from gettext 0.22.5.
    Add --add-location=file to XGETTEXT_OPTIONS and MSGMERGE_OPTIONS.
    Add --no-wrap to MSGINIT_OPTIONS.
    
    (cherry picked from commit 451f6986a5621201367c7ace5b31c552124eac13)

 po/Makevars | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 5 deletions(-)

commit 31d3912f293056379b9640bcb0ef9eb68be8fb4a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-06 23:00:09 +0300

    liblzma: Omit an unneeded array from the x86 filter
    
    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
    (cherry picked from commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57)

 src/liblzma/simple/x86.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 891602da970788cb7b1d92400ff7d500b6736d7a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-19 22:04:21 +0300

    liblzma: Silence a warning from Coverity static analysis
    
    It is logical why it cannot know for sure that the value has
    to be at most 4 if it is less than 16.
    
    The x86 filter is based on a very old LZMA SDK version. Newer
    ones have quite a different implementation for the same filter.
    
    Thanks to Sam James.
    
    (cherry picked from commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4)

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

commit 702b9ed690828ec078f9d3fd8ecaa61ce9f3af72
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-18 00:34:07 +0300

    Fix typos
    
    Thanks to xx on #tukaani.
    
    (cherry picked from commit 4e9023857d287f624562156b60dc23d2b64c0f10)

 src/common/mythread.h                      | 2 +-
 src/common/tuklib_integer.h                | 2 +-
 src/liblzma/common/filter_buffer_decoder.c | 2 +-
 src/liblzma/common/filter_common.c         | 2 +-
 src/scripts/xzgrep.in                      | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit 37314d4d183a4c12a3b989ef2f31b7d397c186e9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-08 18:27:39 +0300

    Update maintainer and author info.
    
    The other maintainer suddenly disappeared.
    
    (cherry picked from commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4)
    (cherry picked from commit 37c46f7b67feddc164f227273770121412038ee2)

 AUTHORS                |  9 +++++++--
 README                 | 10 +++-------
 THANKS                 |  1 -
 src/liblzma/api/lzma.h |  6 +++---
 4 files changed, 13 insertions(+), 13 deletions(-)

commit 02d03186293ba65d5d1271c8ded336c08cc98d6e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-30 22:22:45 +0300

    liblzma: Fix incorrect function type error from sanitizer
    
    Clang 17 with -fsanitize=address,undefined:
    
        src/liblzma/common/filter_common.c:366:8: runtime error:
            call to function encoder_find through pointer to incorrect
            function type 'const lzma_filter_coder *(*)(unsigned long)'
        src/liblzma/common/filter_encoder.c:187: note:
            encoder_find defined here
    
    Use a wrapper function to get the correct type neatly.
    This reduces the number of casts needed too.
    
    This issue could be a problem with control flow integrity (CFI)
    methods that check the function type on indirect function calls.
    
    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
    (cherry picked from commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8)
    (cherry picked from commit 64e0a5f726c483bdda2ee35ed7ae5f515278272f)

 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
 2 files changed, 25 insertions(+), 7 deletions(-)

commit b933ef49a5b50153aa6c547d5f782b71878c128d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-30 21:41:11 +0300

    xz: Avoid arithmetic on a null pointer
    
    It's undefined behavior. The result wasn't ever used as it occurred
    in the last iteration of a loop.
    
    Clang 17 with -fsanitize=address,undefined:
    
        $ src/xz/xz --block-list=123
        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
            to null pointer
    
    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
    Co-authored-by: Sam James <sam@gentoo.org>
    (cherry picked from commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff)
    (cherry picked from commit 203d48259935bad1c26e35d42f3db3c0f414bd8c)

 src/xz/args.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit ecbc34d90b5457c9669ca2078e5acbc17422839e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-27 14:33:38 +0300

    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
    
    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
    argument wasn't touched even though the API docs say that *i = NULL
    is done if an error occurs. This obviously won't be done even now
    if i == NULL but otherwise it is best to do it due to the wording
    in the API docs.
    
    In practice this matters very little: The problem can occur only
    if the functions are called with invalid arguments, that is,
    the calling application must already have a bug.
    
    (cherry picked from commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0)
    (cherry picked from commit 214569ace8ebb34a853cdc958ac7117c8051fe03)

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

commit e0e53eb80f4bdb9348da1f1813761f1e31074a9a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-07 19:30:19 +0300

    CMake: Bump maximum policy version to 3.29
    
    (cherry picked from commit 80f72396ea391c6e3e6856b16b49433e07067865)

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

commit 46c574e70a8be8001a0ae617b25047e867ec067a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-08 21:19:38 +0300

    xz man page: Use .ft CR instead of CW to silence warnings from groff.
    
    (cherry picked from commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48)
    (cherry picked from commit 6edc2b554f1c96bb6065e8dc1d8aa6af1056747f)

 src/xz/xz.1 | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

commit 33b2a5104a1aee36ce2a36a9c89e4a1b376afe54
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-04-09 18:22:16 +0300

    Update THANKS.
    
    (cherry picked from commit db4dd74a344580e0b81436598d9741a3454245b0)
    (cherry picked from commit 995afe464604c89f15c50b22cbdfa4b4acc8b001)

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

commit e60534b03bc6877bd13858dcdcccec53897eb85f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 17:43:39 +0200

    INSTALL: Document arguments of --enable-symbol-versions.
    
    (cherry picked from commit 8a25ba024d55610c448c6e4f1400a00bae51b493)
    (cherry picked from commit 44a5c1374e9622054a20dc48c02bd146cbd51ec0)

 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
 1 file changed, 39 insertions(+), 4 deletions(-)

commit be86d78acf87f1a54857ae299eb69fa3f9f4083d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 17:15:50 +0200

    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
    
    This does the previous commit with CMake.
    
    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
    be changed to AS_IF to ensure that things wont break some day.
    See 5a5bd7f871818029d5ccbe189f087f591258c294.
    
    (cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5)
    (cherry picked from commit b03139b1d210865526ab0e945aa79b2627f8c202)

 configure.ac | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

commit 0f455c26877d0511e00d8876351ce349067a9a6b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-15 16:36:35 +0200

    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
    
    It doesn't support the __symver__ attribute or __asm__(".symver ...").
    The generic symbol versioning can still be used since it only needs
    linker support.
    
    (cherry picked from commit c273123ed0ebaebf49994057a7fe98aae7f42c40)
    (cherry picked from commit 08754772e801218e5e06dc06e51c9e712ddf3e49)

 CMakeLists.txt | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 880556e98cbf1c1f284245a535441aad76a857fb
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:38:24 +0200

    Update THANKS.
    
    (cherry picked from commit df7f487648d18a3992386a59b8a061edca862d17)
    (cherry picked from commit 9579efdbfd1499b41e17c00811bab9416165e19f)

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

commit 639d053823a51aeacfd3935e170cceb0fa2427c7
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:30:18 +0200

    liblzma: Minor comment edits.
    
    (cherry picked from commit 3217b82b3ec023bf8338249134a076bea0ea30ec)
    (cherry picked from commit 32e256c12ac703bbfcaad6c7157148a20e10a633)

 src/liblzma/delta/delta_decoder.c | 2 ++
 1 file changed, 2 insertions(+)

commit 7de966a02b57eb44b77e5b7266e49c324eaad9f6
Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
Date:   2024-03-13 13:07:13 +0100

    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
    
    NVHPC compiler has several issues that make it impossible to
    build liblzma:
      - the compiler fails to produce valid code for delta_decode if the
        vectorization is enabled, which results in failed tests.
    
    This introduces NVHPC-specific workarounds that address the issues.
    
    (This commit was contributed under 0BSD but the author confirmed
    that it is fine to backport it to the public domain branches. See
    https://github.com/tukaani-project/xz/pull/90#issuecomment-2100185936
    and the next two messages.)
    
    (cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31)
    (cherry picked from commit 65ac20807c1303e80fb8fc28ec810d740078e328)

 src/liblzma/delta/delta_decoder.c | 3 +++
 1 file changed, 3 insertions(+)

commit 13a0a0fc8fc9db6837f7d42fc3e279ca8cccff8f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 21:17:10 +0200

    CMake: Disable symbol versioning on non-glibc Linux.
    
    This better matches what configure.ac does. For example, musl has
    only basic symbol versioning support:
    
    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
    
    configure.ac tries to enable symbol versioning only with glibc
    so now CMake does the same.
    
    (cherry picked from commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62)
    (cherry picked from commit 78a015e753d40d604952d6c1e4428c5f440ea6b9)

 CMakeLists.txt | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

commit 706134d965c39e42ea69edaab178b2d03c915b2c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 20:32:46 +0200

    CMake: Make symbol versioning configurable.
    
    (cherry picked from commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4)
    (cherry picked from commit 20e590bbed2b618911acf248477bd1f81b74c05a)

 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 20 deletions(-)

commit a9b2d85120f4ad6b441346038bf8764852e8654d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-18 14:59:52 +0200

    CMake: Handle symbol versioning on MicroBlaze specially.
    
    This is to match configure.ac.
    
    (cherry picked from commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660)
    (cherry picked from commit bcac3e3aa29d476e38a8722d687776cdbac1f3dc)

 CMakeLists.txt | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

commit 93b928b2303e51f47499d4b592f675c096dea4c8
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-03-13 19:47:36 +0200

    Build: Style tweaks to configure.ac.
    
    The AC_MSG_ERROR line is overlong anyway as are a few other
    AC_MSG_ERROR lines already.
    
    (cherry picked from commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076)
    (cherry picked from commit 9e7daa8dbdc38f32696b6ec90cb4ba4ca49fa6cc)

 configure.ac | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 2dbc0fc5c29cf047099199aff359a3dfb8a3562a
Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
Date:   2024-03-12 20:03:49 +0100

    Build: Let the users override the symbol versioning variant.
    
    There are cases when the users want to decide themselves whether
    they want to have the generic (even on GNU/Linux) or the linux
    (even if we do not recommend that) symbol versioning variant.
    The former might be needed to circumvent compiler issues (i.e.
    the compiler does not support all features that are required
    for the linux versioning), the latter might help in overriding
    the assumptions made in the configure script.
    
    (This commit was contributed under 0BSD but the author confirmed
    that it is fine to backport it to the public domain branches. See
    https://github.com/tukaani-project/xz/pull/90#issuecomment-2100185936
    and the next two messages.)
    
    (cherry picked from commit f56ed6fac6619b56b005878d3b5210e2f0d721c0)
    (cherry picked from commit ce3a9fa94d6092665c3b000dc0dbe9a2900d4df2)

 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
 1 file changed, 50 insertions(+), 41 deletions(-)

commit be29fac96d19187fec9c744306dde25af7946424
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-21 17:41:32 +0200

    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
    
    (cherry picked from commit 00440f52be9ac2c7438c7b0cb1082f12399632c6)
    (cherry picked from commit a8b3fb6d2f8e662dc03b4c239116bd057f3a5f0b)

 INSTALL | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

commit 769b5d00557fa1562030eb21783a9bdd96fe302c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Delete old commented-out code.
    
    (cherry picked from commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7)
    (cherry picked from commit b4b315a2060c0771b0d0ca83b9b31fcf1db40484)

 src/xz/message.c | 19 -------------------
 1 file changed, 19 deletions(-)

commit d800c85838517efe0f67b14fb9a0d5ec8b586aae
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Tweak comments.
    
    (cherry picked from commit 7312dfbb02197c7f990c7a3cefd027a9387d1473)
    (cherry picked from commit 9c9a3e7b3f70b214cfdc2aada90d28a54466a5db)

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

commit 7d487a4c2afb326cd5735047800b248332b75000
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 23:07:35 +0200

    xz: Fix message_init() description.
    
    Also explicitly initialize progress_automatic to make it clear
    that it can be read before message_init() sets it. Static variable
    was initialized to false by default already so this is only for
    clarity.
    
    (cherry picked from commit c701a5909ad9882469fbab4fab5d2d5556d3ba78)
    (cherry picked from commit 7d3418e496d00287d08a7f5af265379b757247a6)

 src/xz/main.c    | 3 ++-
 src/xz/message.c | 2 +-
 src/xz/message.h | 5 ++++-
 3 files changed, 7 insertions(+), 3 deletions(-)

commit 9c2d1b52cec053bf3861a102f4be0c39e0f231c9
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-17 19:25:05 +0200

    Build: Don't install TODO.
    
    (cherry picked from commit f3440e78c9517db75bfa52e1a378fad60b073bbe)
    (cherry picked from commit fb6cf07ac7797d072aa04012c44def2dfd3b256b)

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

commit 2c024f60c2e51224981ecc7d1426ec821355f9b4
Author: Jia Tan <jiat0218@gmail.com>
Date:   2024-02-15 22:26:43 +0800

    Update m4/.gitignore.
    
    (cherry picked from commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e)
    (cherry picked from commit e164211b09d65f7f8663c46b1f74f12ac1c54d48)

 m4/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit fda91a5d77202fa377b053ca533e44b8ff8bfa3e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-12 17:09:10 +0200

    liblzma: Fix compilation of price_tablegen.c.
    
    It is built and run only manually so this didn't matter
    unless one wanted to regenerate the price_table.c.
    
    (cherry picked from commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4)
    (cherry picked from commit 65b5ee071697e4fe4c2a31c14c1d68b727f1654c)

 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
 src/liblzma/rangecoder/range_common.h   | 5 ++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 594b64742f86e87ef76347e04179d98c3caf45a2
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-12 23:25:54 +0200

    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
    
    (based on commit 23de53421ea258cde6a3c33a038b1e9d08f771d1)
    
    (cherry picked from commit f200c338f8d40b1b961033a3403d6512d3f34730)

 src/liblzma/api/lzma.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

commit 6aba0e2a5e32261cd9b515891291b09b2771890e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 17:20:31 +0200

    Fix SHA-256 authors.
    
    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
    in 2007 had a comment in sha256.c that the code is based on
    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
    and the AUTHORS file was updated with information that the
    code had come from Crypto++ but via 7-Zip. I know I had viewed
    7-Zip's SHA-256 code but back then the C code has been identical
    enough with Crypto++, so I don't why I thought the author info
    would need that extra step via 7-Zip for this single file.
    
    Another error is that I had mixed sha.* and shacal2.* files
    when checking for author info in Crypto++. The shacal2.* files
    aren't related to liblzma's sha256.c and thus Kevin Springle's
    code in Crypto++ isn't either.
    
    (cherry picked from commit 76946dc4336c831fe2cc26696a035d807dd3cf13)
    (cherry picked from commit 402fb45c743b736fa033b4b04881f6d1098581fd)

 AUTHORS                    |  6 ++----
 src/liblzma/check/sha256.c | 14 ++++----------
 2 files changed, 6 insertions(+), 14 deletions(-)

commit 2c89f377cd959209f7ae66851bd26d70961350b4
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 23:21:01 +0200

    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
    
    (cherry picked from commit 9860d418d296eb3c721e5384fb367c0499b579c8)
    (cherry picked from commit e5ba545f16e989ac51c38556e727c8c81988c04e)

 src/scripts/xzless.in | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

commit 3af41a23c4c0ac6f5fd116eb90591d9bea498158
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-02-09 23:00:05 +0200

    xzless: Use --show-preproc-errors with "less" 632 and newer.
    
    This makes "less" show a warning if a decompression error occurred.
    
    (cherry picked from commit fd0692b0525e6c26b496492be9e2c865cab734f8)
    (cherry picked from commit 5e7a8c0869d9b4c32c34d70b48b0935721aa37fd)

 src/scripts/xzless.in | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 74d36a57c5fe65e5447f61a6ed0b57c6bb7c4f0f
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2024-05-07 19:56:46 +0300

    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
    
    This is unlikely to be a bug in an existing application since it relies
    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
    For instance, it does not affect xz because lzma_filters_update() can
    only be used when encoding to the .xz format.
    
    (based on commit 8191720eac950a5db89c4d33d6beea6316a49b19)

 src/liblzma/lz/lz_encoder.c | 1 +
 1 file changed, 1 insertion(+)

commit 176ae9073c1ca66669d2174aba58e51e94611f6e
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 20:28:21 +0800

    liblzma: Make parameter names in function definition match declaration.
    
    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
    parameter name instead of "filters" (used by the declaration). "filters"
    is more clear since the parameter represents the list of filters passed
    to the raw encoder, each of which contains filter options.
    
    (cherry picked from commit 27ab54af848ec4adc9c17362f6c64a42a7003df5)

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

commit 94c8503486ad394245f455924fa0bbb8539d8282
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 20:18:47 +0800

    liblzma: Improve lzma encoder init function consistency.
    
    lzma_encoder_init() did not check for NULL options, but
    lzma2_encoder_init() did. This is more of a code style improvement than
    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
    more similar.
    
    (cherry picked from commit 019afd72e02339a6bf00c32bfb56f649c637dd6b)

 src/liblzma/lzma/lzma_encoder.c | 3 +++
 1 file changed, 3 insertions(+)

commit fa91e29dba074c263455ba45eeb31b21d9e54150
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-12-16 11:20:20 +0800

    Docs: Update repository URL in Changelog.
    
    (cherry picked from commit 6af9a4cbe5b677a2c48b009b370539ad30dc269a)

 ChangeLog | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6a7c0a9ab2e1544499b85d49c368dcc889d0f3a3
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-23 22:13:39 +0800

    xz: Use is_tty() in message.c.
    
    (cherry picked from commit 7dc466d62155cb7442aa5e10633e084ed384360d)

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

commit 9f00ad72f0127f83e83f44ba991ac3683c5bc860
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-23 22:04:35 +0800

    xz: Create separate is_tty() function.
    
    The new is_tty() will report if a file descriptor is a terminal or not.
    On POSIX systems, it is a wrapper around isatty(). However, the native
    Windows implementation of isatty() will return true for all character
    devices, not just terminals. So is_tty() has a special case for Windows
    so it can use alternative Windows API functions to determine if a file
    descriptor is a terminal.
    
    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
    or write to non-terminal character devices because xz thought it was a
    terminal. For instance:
    
        xz foo -c > /dev/null
    
    would fail because /dev/null was assumed to be a terminal.
    
    (cherry picked from commit 0ecfaa6df91f7c37510f370295f593b9c0b88b98)

 src/xz/util.c | 25 +++++++++++++++++++++++--
 src/xz/util.h | 14 ++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)

commit aa036419c28f2fa0140ff36ced0bafe4803007e0
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-17 20:04:58 +0800

    Tests: Fix typo in a comment.
    
    (cherry picked from commit 9b469da8f3415e12d650705c7a82256e62e7871b)

 tests/test_files.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9c47c0ea1892e10df69b1428f1f061775f1c970b
Author: Jia Tan <jiat0218@gmail.com>
Date:   2023-11-09 01:21:53 +0800

    liblzma: Add missing comments to lz_encoder.h.
    
    (cherry picked from commit 84196e8c094402cb71b669fb9e984c56ebabb145)

 src/liblzma/lz/lz_encoder.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 290c9542894743408f1859c56b1e84bd562c61ea
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-31 21:41:09 +0200

    liblzma: Fix compilation of fastpos_tablegen.c.
    
    The macro lzma_attr_visibility_hidden has to be defined to make
    fastpos.h usable. The visibility attribute is irrelevant to
    fastpos_tablegen.c so simply #define the macro to an empty value.
    
    fastpos_tablegen.c is never built by the included build systems
    and so the problem wasn't noticed earlier. It's just a standalone
    program for generating fastpos_table.c.
    
    Fixes: https://github.com/tukaani-project/xz/pull/69
    Thanks to GitHub user Jamaika1.
    
    (cherry picked from commit d90ed84db9770712e2421e170076b43bda9b64a7)

 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
 1 file changed, 2 insertions(+)

commit d7bff1341e458da86d243980b4acaa8cc6ff162e
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:59:11 +0300

    liblzma: Use lzma_always_inline in memcmplen.h.
    
    (cherry picked from commit 068ee436f4a8a706125ef43e8228b30001b1554e)

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

commit ce8d257cbbb56ce2cc4976e3c903227dcd4720db
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-30 17:43:03 +0200

    liblzma: #define lzma_always_inline in common.h.
    
    (cherry picked from commit 6cdf0a7b7974baf58c1fd20ec3278f3b84ae56e5)

 src/liblzma/common/common.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 47b3d2761e0d6c74b8205a80ead59d33e1d671ae
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:15:32 +0300

    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
    
    These variables are internal to liblzma and not exposed in the API.
    
    (cherry picked from commit 33daad3961a4f07f3902b40f13e823e6e43e85da)

 src/liblzma/check/check.h                | 7 +++++++
 src/liblzma/common/stream_flags_common.h | 3 +++
 src/liblzma/lz/lz_encoder_hash.h         | 1 +
 src/liblzma/lzma/fastpos.h               | 1 +
 src/liblzma/rangecoder/price.h           | 1 +
 5 files changed, 13 insertions(+)

commit 44c98e939997337e9469878dbae4f261497f793a
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-22 17:08:39 +0300

    liblzma: #define lzma_attr_visibility_hidden in common.h.
    
    In ELF shared libs:
    
    -fvisibility=hidden affects definitions of symbols but not
    declarations.[*] This doesn't affect direct calls to functions
    inside liblzma as a linker can replace a call to lzma_foo@plt
    with a call directly to lzma_foo when -fvisibility=hidden is used.
    
    [*] It has to be like this because otherwise every installed
        header file would need to explictly set the symbol visibility
        to default.
    
    When accessing extern variables that aren't defined in the
    same translation unit, compiler assumes that the variable has
    the default visibility and thus indirection is needed. Unlike
    function calls, linker cannot optimize this.
    
    Using __attribute__((__visibility__("hidden"))) with the extern
    variable declarations tells the compiler that indirection isn't
    needed because the definition is in the same shared library.
    
    About 15+ years ago, someone told me that it would be good if
    the CRC tables would be defined in the same translation unit
    as the C code of the CRC functions. While I understood that it
    could help a tiny amount, I didn't want to change the code because
    a separate translation unit for the CRC tables was needed for the
    x86 assembly code anyway. But when visibility attributes are
    supported, simply marking the extern declaration with the
    hidden attribute will get identical result. When there are only
    a few affected variables, this is trivial to do. I wish I had
    understood this back then already.
    
    (cherry picked from commit 6961a5ac7df178bfc2b7a181c40575847bc3035f)

 src/liblzma/common/common.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 7834108dfef0fd800050be264005317a4020bb14
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-30 22:54:28 +0300

    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
    
    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
    most recent GCC package (released 2021-02-02). The project might
    still be alive but majority of people have switched to MinGW-w64.
    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
    Building with MinGW is likely to still work but I haven't tested it
    in the recent years.
    
    (cherry picked from commit 5b9e16764905d06fa8e8339ba185ddfee304e5fb)

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

commit d9d08fb479ad5d431049ca162c0d52e6dd9ed82b
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-27 00:58:17 +0300

    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
    
    A CMake option LARGE_FILE_SUPPORT is created if and only if
    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
    
    This is needed on many 32-bit platforms and even with 64-bit builds
    with MinGW-w64 to get support for files larger than 2 GiB.
    
    (cherry picked from commit 36fabdbe67c8a8fbdc3ac695a91fc443a1328cc4)

 CMakeLists.txt                        |  7 ++++-
 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 1 deletion(-)

commit 3c026350e8d23ddaca35e34477746b428563b933
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-09-29 20:46:11 +0300

    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
    
    It properly adds -DLZMA_API_STATIC when compiling code that
    will be linked against static liblzma. Having it there on
    systems other than Windows does no harm.
    
    See: https://www.msys2.org/docs/pkgconfig/
    (cherry picked from commit 4083c8e9501a48934a5fb563d2c3ce2ae143cd27)

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

commit 23f50b81084889262916bbaef684790339ce443d
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   2023-10-01 19:10:57 +0300

    CMake/Windows: Fix the import library filename.
    
    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
    liblzma.dll and liblzma.dll.a.
    
    (cherry picked from commit da4d04e4d6e199d28b58bd2e0df4e120c52dd5d7)

