1commit 49053c0a649f4c8bd2b8d97ce915f401fbc0f3d9
2Author: Jia Tan <jiat0218@gmail.com>
3Date:   2023-10-31 22:30:29 +0800
4
5    Bump version and soname for 5.4.5.
6
7 src/liblzma/Makefile.am        | 2 +-
8 src/liblzma/api/lzma/version.h | 2 +-
9 2 files changed, 2 insertions(+), 2 deletions(-)
10
11commit 84c0cfc556287628df871703672879e530d0391f
12Author: Jia Tan <jiat0218@gmail.com>
13Date:   2023-11-01 20:18:30 +0800
14
15    Add NEWS for 5.4.5.
16
17 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 1 file changed, 74 insertions(+)
19
20commit d90ed84db9770712e2421e170076b43bda9b64a7
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   2023-10-31 21:41:09 +0200
23
24    liblzma: Fix compilation of fastpos_tablegen.c.
25    
26    The macro lzma_attr_visibility_hidden has to be defined to make
27    fastpos.h usable. The visibility attribute is irrelevant to
28    fastpos_tablegen.c so simply #define the macro to an empty value.
29    
30    fastpos_tablegen.c is never built by the included build systems
31    and so the problem wasn't noticed earlier. It's just a standalone
32    program for generating fastpos_table.c.
33    
34    Fixes: https://github.com/tukaani-project/xz/pull/69
35    Thanks to GitHub user Jamaika1.
36
37 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
38 1 file changed, 2 insertions(+)
39
40commit 9b1268538b0b2c6c0a121f95165de65fc71ad23c
41Author: Jia Tan <jiat0218@gmail.com>
42Date:   2023-10-31 21:51:40 +0800
43
44    Build: Fix text wrapping in an output message.
45
46 configure.ac | 9 +++++----
47 1 file changed, 5 insertions(+), 4 deletions(-)
48
49commit 068ee436f4a8a706125ef43e8228b30001b1554e
50Author: Lasse Collin <lasse.collin@tukaani.org>
51Date:   2023-10-22 17:59:11 +0300
52
53    liblzma: Use lzma_always_inline in memcmplen.h.
54
55 src/liblzma/common/memcmplen.h | 3 +--
56 1 file changed, 1 insertion(+), 2 deletions(-)
57
58commit 6cdf0a7b7974baf58c1fd20ec3278f3b84ae56e5
59Author: Lasse Collin <lasse.collin@tukaani.org>
60Date:   2023-10-30 17:43:03 +0200
61
62    liblzma: #define lzma_always_inline in common.h.
63
64 src/liblzma/common/common.h | 17 +++++++++++++++++
65 1 file changed, 17 insertions(+)
66
67commit 33daad3961a4f07f3902b40f13e823e6e43e85da
68Author: Lasse Collin <lasse.collin@tukaani.org>
69Date:   2023-10-22 17:15:32 +0300
70
71    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
72    
73    These variables are internal to liblzma and not exposed in the API.
74
75 src/liblzma/check/check.h                | 7 +++++++
76 src/liblzma/common/stream_flags_common.h | 3 +++
77 src/liblzma/lz/lz_encoder_hash.h         | 1 +
78 src/liblzma/lzma/fastpos.h               | 1 +
79 src/liblzma/rangecoder/price.h           | 1 +
80 5 files changed, 13 insertions(+)
81
82commit 6961a5ac7df178bfc2b7a181c40575847bc3035f
83Author: Lasse Collin <lasse.collin@tukaani.org>
84Date:   2023-10-22 17:08:39 +0300
85
86    liblzma: #define lzma_attr_visibility_hidden in common.h.
87    
88    In ELF shared libs:
89    
90    -fvisibility=hidden affects definitions of symbols but not
91    declarations.[*] This doesn't affect direct calls to functions
92    inside liblzma as a linker can replace a call to lzma_foo@plt
93    with a call directly to lzma_foo when -fvisibility=hidden is used.
94    
95    [*] It has to be like this because otherwise every installed
96        header file would need to explictly set the symbol visibility
97        to default.
98    
99    When accessing extern variables that aren't defined in the
100    same translation unit, compiler assumes that the variable has
101    the default visibility and thus indirection is needed. Unlike
102    function calls, linker cannot optimize this.
103    
104    Using __attribute__((__visibility__("hidden"))) with the extern
105    variable declarations tells the compiler that indirection isn't
106    needed because the definition is in the same shared library.
107    
108    About 15+ years ago, someone told me that it would be good if
109    the CRC tables would be defined in the same translation unit
110    as the C code of the CRC functions. While I understood that it
111    could help a tiny amount, I didn't want to change the code because
112    a separate translation unit for the CRC tables was needed for the
113    x86 assembly code anyway. But when visibility attributes are
114    supported, simply marking the extern declaration with the
115    hidden attribute will get identical result. When there are only
116    a few affected variables, this is trivial to do. I wish I had
117    understood this back then already.
118
119 src/liblzma/common/common.h | 11 +++++++++++
120 1 file changed, 11 insertions(+)
121
122commit 5b9e16764905d06fa8e8339ba185ddfee304e5fb
123Author: Lasse Collin <lasse.collin@tukaani.org>
124Date:   2023-09-30 22:54:28 +0300
125
126    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
127    
128    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
129    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
130    most recent GCC package (released 2021-02-02). The project might
131    still be alive but majority of people have switched to MinGW-w64.
132    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
133    Building with MinGW is likely to still work but I haven't tested it
134    in the recent years.
135
136 src/liblzma/api/lzma.h         | 4 ++--
137 src/liblzma/api/lzma/version.h | 2 +-
138 2 files changed, 3 insertions(+), 3 deletions(-)
139
140commit 36fabdbe67c8a8fbdc3ac695a91fc443a1328cc4
141Author: Lasse Collin <lasse.collin@tukaani.org>
142Date:   2023-09-27 00:58:17 +0300
143
144    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
145    
146    A CMake option LARGE_FILE_SUPPORT is created if and only if
147    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
148    
149    This is needed on many 32-bit platforms and even with 64-bit builds
150    with MinGW-w64 to get support for files larger than 2 GiB.
151
152 CMakeLists.txt                        |  7 ++++-
153 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
154 2 files changed, 58 insertions(+), 1 deletion(-)
155
156commit 989c8c354cbd2d20fbae4a432a3e31f5bc1cb9bf
157Author: Lasse Collin <lasse.collin@tukaani.org>
158Date:   2023-09-30 02:14:25 +0300
159
160    CMake: Generate and install liblzma.pc if not using MSVC.
161    
162    Autotools based build uses -pthread and thus adds it to Libs.private
163    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
164    are available in libc so Libs.private doesn't get -pthread either.
165
166 CMakeLists.txt | 21 +++++++++++++++++++++
167 1 file changed, 21 insertions(+)
168
169commit 983f3b458dc79c5976a4237fdfe4f8079f8d8830
170Author: Lasse Collin <lasse.collin@tukaani.org>
171Date:   2023-09-30 01:13:13 +0300
172
173    CMake: Rearrange the PACKAGE_ variables.
174    
175    The windres workaround now replaces spaces with \x20 so
176    the package name isn't repeated.
177    
178    These changes will help with creation of liblzma.pc.
179
180 CMakeLists.txt | 26 +++++++++++++++-----------
181 1 file changed, 15 insertions(+), 11 deletions(-)
182
183commit 4083c8e9501a48934a5fb563d2c3ce2ae143cd27
184Author: Lasse Collin <lasse.collin@tukaani.org>
185Date:   2023-09-29 20:46:11 +0300
186
187    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
188    
189    It properly adds -DLZMA_API_STATIC when compiling code that
190    will be linked against static liblzma. Having it there on
191    systems other than Windows does no harm.
192    
193    See: https://www.msys2.org/docs/pkgconfig/
194
195 src/liblzma/liblzma.pc.in | 1 +
196 1 file changed, 1 insertion(+)
197
198commit 661549ecb7a9b136d72a01c137d9776c75d52d51
199Author: Lasse Collin <lasse.collin@tukaani.org>
200Date:   2023-09-27 22:46:20 +0300
201
202    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
203
204 CMakeLists.txt              | 20 ++++++++++++++++++++
205 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
206 2 files changed, 46 insertions(+)
207
208commit 0e546eb4da05c52b7d257e5bd85e15c51c4d86a3
209Author: Lasse Collin <lasse.collin@tukaani.org>
210Date:   2023-10-26 21:44:42 +0300
211
212    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
213    
214    In this case they have identical values.
215
216 CMakeLists.txt | 2 +-
217 1 file changed, 1 insertion(+), 1 deletion(-)
218
219commit da4d04e4d6e199d28b58bd2e0df4e120c52dd5d7
220Author: Lasse Collin <lasse.collin@tukaani.org>
221Date:   2023-10-01 19:10:57 +0300
222
223    CMake/Windows: Fix the import library filename.
224    
225    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
226    liblzma.dll and liblzma.dll.a.
227
228 CMakeLists.txt | 1 +
229 1 file changed, 1 insertion(+)
230
231commit 007558a358c48a0175cc8d47d11798d7967282ab
232Author: Lasse Collin <lasse.collin@tukaani.org>
233Date:   2023-10-11 19:47:44 +0300
234
235    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
236    
237    Using set(ENABLE_THREADS "posix") is confusing because it sets
238    a new normal variable and leaves the cache entry with the same
239    name unchanged. The intent wasn't to change the cache entry so
240    this switches to a different variable name.
241
242 CMakeLists.txt | 10 +++++++---
243 1 file changed, 7 insertions(+), 3 deletions(-)
244
245commit 7d01de67ee3dd76cfc12c23220e2e4cdc59708f1
246Author: Lasse Collin <lasse.collin@tukaani.org>
247Date:   2023-10-09 21:12:31 +0300
248
249    CMake: Edit threading related messages.
250    
251    It's mostly to change from "thread method" to "threading method".
252
253 CMakeLists.txt | 19 ++++++++++---------
254 1 file changed, 10 insertions(+), 9 deletions(-)
255
256commit f8edcf3da689aad4b21e139197725450f2c456a0
257Author: Lasse Collin <lasse.collin@tukaani.org>
258Date:   2023-10-09 20:59:24 +0300
259
260    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
261    
262    This way typos are caught quickly and compounding error messages
263    are avoided (a single typo could cause more than one error).
264    
265    This keeps using SEND_ERROR when the system is lacking a feature
266    (like threading library or sandboxing method). This way the whole
267    configuration log will be generated in case someone wishes to
268    report a problem upstream.
269
270 CMakeLists.txt | 28 ++++++++++++++--------------
271 1 file changed, 14 insertions(+), 14 deletions(-)
272
273commit 1695021e4a233a9388ddd428654c1447f0ea3bfb
274Author: Jia Tan <jiat0218@gmail.com>
275Date:   2023-10-19 16:09:01 +0800
276
277    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
278    
279    The option is enabled by default, but will only be visible to a user
280    listing cache variables or using a CMake GUI application if the
281    immintrin.h header file is found.
282    
283    This mirrors our Autotools build --disable-clmul-crc functionality.
284
285 CMakeLists.txt | 40 +++++++++++++++++++++++-----------------
286 1 file changed, 23 insertions(+), 17 deletions(-)
287
288commit 5056bc51071d1a07097c5667a0d5bd85242e31b9
289Author: Lasse Collin <lasse.collin@tukaani.org>
290Date:   2023-10-14 17:56:59 +0300
291
292    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
293    
294    In XZ Utils context this doesn't matter much because
295    unaligned reads and writes aren't used in hot code
296    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
297
298 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
299 1 file changed, 189 insertions(+), 67 deletions(-)
300
301commit 9e14743ee5ba79181076bc33952245d5b18fbc58
302Author: Lasse Collin <lasse.collin@tukaani.org>
303Date:   2023-09-23 02:21:49 +0300
304
305    tuklib_integer: Add missing write64be and write64le fallback functions.
306
307 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
308 1 file changed, 34 insertions(+)
309
310commit 4cc91ceb3992ef4f51302b56178c3b2c2aeaaaad
311Author: Jia Tan <jiat0218@gmail.com>
312Date:   2023-10-12 20:12:18 +0800
313
314    Build: Update visibility.m4 from Gnulib.
315    
316    Updating from version 6 -> 8 from upstream. Declarations for variables
317    and function bodies were added to avoid unnecessary failures with
318    -Werror.
319
320 m4/visibility.m4 | 9 +++++++--
321 1 file changed, 7 insertions(+), 2 deletions(-)
322
323commit 1824a6007cb1c8d5d7abcc7bf649148bc06fa72c
324Author: Lasse Collin <lasse.collin@tukaani.org>
325Date:   2023-10-06 19:36:35 +0300
326
327    Update THANKS.
328
329 THANKS | 1 +
330 1 file changed, 1 insertion(+)
331
332commit 8fdc71a27d07b10a3da52432432e080b6d577642
333Author: Jia Tan <jiat0218@gmail.com>
334Date:   2023-09-29 20:14:39 +0800
335
336    CMake: Rename xz and man page symlink custom targets.
337    
338    The Ninja Generator for CMake cannot have a custom target and its
339    BYPRODUCTS have the same name. This has prevented Ninja builds on
340    Unix-like systems since the xz symlinks were introduced in
341    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
342
343 CMakeLists.txt | 6 +++---
344 1 file changed, 3 insertions(+), 3 deletions(-)
345
346commit 38171492ded6426ddf53d0c200fa8c93fcd02a60
347Author: Lasse Collin <lasse.collin@tukaani.org>
348Date:   2023-09-27 19:54:35 +0300
349
350    CMake: Fix Windows build with Clang/LLVM 17.
351    
352    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
353    the hack for GNU windres must now be used with llvm-windres too.
354    
355    LLVM 16.0.6 has the old behavior and there likely won't be more
356    16.x releases. So we can simply check for >= 17.0.0.
357    
358    The workaround must not be used with Clang that is acting in
359    MSVC mode. This checks for the known environments that need
360    the workaround instead of using "NOT MSVC".
361    
362    See also:
363    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
364
365 CMakeLists.txt | 26 ++++++++++++++------------
366 1 file changed, 14 insertions(+), 12 deletions(-)
367
368commit 1bce6fe48334b5df33d0487a9cbe41950122230e
369Author: Jia Tan <jiat0218@gmail.com>
370Date:   2023-09-27 00:02:11 +0800
371
372    liblzma: Avoid compiler warning without creating extra symbol.
373    
374    When the generic fast crc64 method is used, then we omit
375    lzma_crc64_table[][].
376    
377    The C standards don't allow an empty translation unit which can be
378    avoided by declaring something, without exporting any symbols.
379
380 src/liblzma/check/crc64_table.c | 6 ++----
381 1 file changed, 2 insertions(+), 4 deletions(-)
382
383commit dce95a593e6cd9779110aa1e314abd8b35c75f6b
384Author: Lasse Collin <lasse.collin@tukaani.org>
385Date:   2023-09-26 17:24:15 +0300
386
387    Build: Update the comment about -Werror usage in checks.
388
389 configure.ac | 10 ++++++++--
390 1 file changed, 8 insertions(+), 2 deletions(-)
391
392commit f3c32762ae309afa2fe330e7fb397acfdedc4d37
393Author: Lasse Collin <lasse.collin@tukaani.org>
394Date:   2023-09-26 13:51:31 +0300
395
396    Build: Fix underquoted AC_LANG_SOURCE.
397    
398    It made no practical difference in this case.
399
400 configure.ac | 2 +-
401 1 file changed, 1 insertion(+), 1 deletion(-)
402
403commit 7dd57f2f2c8fde93fa42b4dbf6d9860717723b41
404Author: Lasse Collin <lasse.collin@tukaani.org>
405Date:   2023-09-26 13:14:37 +0300
406
407    Build: Silence Autoconf warning.
408    
409    There was a use of AC_COMPILE_IFELSE that didn't use
410    AC_LANG_SOURCE and Autoconf warned about this. The omission
411    had been intentional but it turned out that this didn't do
412    what I thought it would.
413    
414    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
415    inserts all #defines that have been made with AC_DEFINE so
416    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
417    would mean that only the exact code included in the
418    AC_COMPILE_IFELSE call would be compiled.
419    
420    With C programs this is not true: the #defines get added without
421    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
422    Thus, with the C language at least, adding AC_LANG_SOURCE makes
423    no other difference than silencing a warning from Autoconf. The
424    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
425    say that the #defines have been inserted since Autoconf 2.63b and
426    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
427    documented if one also reads the docs of macros that one isn't
428    calling directly.)
429    
430    Any extra code, including #defines, can cause problems for
431    these two tests because these tests must use -Werror.
432    CC=clang CFLAGS=-Weverything is the most extreme example.
433    It enables -Wreserved-macro-identifier which warns about
434    It's possible to write a test file that passes -Weverything but
435    it becomes impossible when Autoconf inserts confdefs.h.
436    
437    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
438    A different solution is needed for -Werror tests.
439
440 configure.ac | 5 ++---
441 1 file changed, 2 insertions(+), 3 deletions(-)
442
443commit edec253e418562f3164a01ecc8805295fa022efa
444Author: Jia Tan <jiat0218@gmail.com>
445Date:   2023-09-26 00:47:26 +0800
446
447    Build: Remove Gnulib dependency from tests.
448    
449    The tests do not use any Gnulib replacements so they do not need to link
450    libgnu.a or have /lib in the include path.
451
452 tests/Makefile.am | 7 +------
453 1 file changed, 1 insertion(+), 6 deletions(-)
454
455commit 46cb133ce7360496eecca1255b364c05f0205855
456Author: Jia Tan <jiat0218@gmail.com>
457Date:   2023-09-26 00:43:43 +0800
458
459    CMake: Remove /lib from tests include path.
460    
461    The tests never included anything from /lib, so this was not needed.
462
463 CMakeLists.txt | 1 -
464 1 file changed, 1 deletion(-)
465
466commit 4ae13cfe0dedb8ddc3cf9ded8cd1ac09361b3bd1
467Author: Lasse Collin <lasse.collin@tukaani.org>
468Date:   2023-09-24 16:32:32 +0300
469
470    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
471
472 src/common/sysdefs.h | 10 +++++++++-
473 1 file changed, 9 insertions(+), 1 deletion(-)
474
475commit 660c8c29e57d30dbd5009ef1f0ec1bbe195ccef6
476Author: Lasse Collin <lasse.collin@tukaani.org>
477Date:   2023-09-22 02:33:29 +0300
478
479    xz: Windows: Don't (de)compress to special files like "con" or "nul".
480    
481    Before this commit, the following writes "foo" to the
482    console and deletes the input file:
483    
484        echo foo | xz > con_xz
485        xz --suffix=_xz --decompress con_xz
486    
487    It cannot happen without --suffix because names like con.xz
488    are also special and so attempting to decompress con.xz
489    (or compress con to con.xz) will already fail when opening
490    the input file.
491    
492    Similar thing is possible when compressing. The following
493    writes to "nul" and the input file "n" is deleted.
494    
495        echo foo | xz > n
496        xz --suffix=ul n
497    
498    Now xz checks if the destination is a special file before
499    continuing. DOS/DJGPP version had a check for this but
500    Windows (and OS/2) didn't.
501
502 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
503 1 file changed, 28 insertions(+), 7 deletions(-)
504
505commit b7ce6e80786fc0c08ed129e8ee262ea96a5473a1
506Author: Lasse Collin <lasse.collin@tukaani.org>
507Date:   2023-09-21 20:42:52 +0300
508
509    CMake: Wrap two overlong lines that are possible to wrap.
510
511 CMakeLists.txt | 6 ++++--
512 1 file changed, 4 insertions(+), 2 deletions(-)
513
514commit 1595f454d5c8257c668cccd6a86dd68175d5c430
515Author: Lasse Collin <lasse.collin@tukaani.org>
516Date:   2023-09-21 20:36:31 +0300
517
518    CMake: Add a comment about threads on Cygwin.
519
520 CMakeLists.txt | 1 +
521 1 file changed, 1 insertion(+)
522
523commit 5be6275f19784cdd5a954f0188045c8ff4934d54
524Author: Lasse Collin <lasse.collin@tukaani.org>
525Date:   2023-09-12 21:12:34 +0300
526
527    CMake: Bump maximum policy version to 3.27.
528    
529    There are several new policies. CMP0149 may affect the Windows SDK
530    version that CMake will choose by default. The new behavior is more
531    predictable, always choosing the latest SDK version by default.
532    
533    The other new policies shouldn't affect this package.
534
535 CMakeLists.txt | 2 +-
536 1 file changed, 1 insertion(+), 1 deletion(-)
537
538commit e515643d7524851d1eb7dab73453e26d8521324c
539Author: Lasse Collin <lasse.collin@tukaani.org>
540Date:   2023-09-08 19:08:57 +0300
541
542    Doxygen: Add more C macro names to PREDEFINED.
543
544 doxygen/Doxyfile | 7 +++++--
545 1 file changed, 5 insertions(+), 2 deletions(-)
546
547commit e3478ae4f36cd06522a2fef023860893f068434d
548Author: Lasse Collin <lasse.collin@tukaani.org>
549Date:   2023-09-11 18:47:26 +0300
550
551    liblzma: Move a few __attribute__ uses in function declarations.
552    
553    The API headers have many attributes but these were left
554    as is for now.
555
556 src/liblzma/common/common.c    | 6 ++++--
557 src/liblzma/common/common.h    | 8 ++++----
558 src/liblzma/common/memcmplen.h | 3 ++-
559 3 files changed, 10 insertions(+), 7 deletions(-)
560
561commit b71b8922ef3971e5ccffd1e213888d44abe21d11
562Author: Lasse Collin <lasse.collin@tukaani.org>
563Date:   2023-09-11 19:03:35 +0300
564
565    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
566    
567    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
568    must be at the beginning of declaration (before "extern" or
569    "static", and even before any GNU C's __attribute__).
570    
571    This commit also moves all other function attributes to
572    the beginning of function declarations. "extern" is kept
573    at the beginning of a line so the attributes are listed on
574    separate lines before "extern" or "static".
575
576 src/lzmainfo/lzmainfo.c |  6 ++++--
577 src/xz/coder.c          |  3 ++-
578 src/xz/hardware.h       |  3 ++-
579 src/xz/message.h        | 30 +++++++++++++++++-------------
580 src/xz/options.c        |  3 ++-
581 src/xz/util.h           |  8 ++++----
582 src/xzdec/xzdec.c       |  9 ++++++---
583 7 files changed, 37 insertions(+), 25 deletions(-)
584
585commit 359e5c6cb128dab64ea6070d21d1c240f96cea6b
586Author: Lasse Collin <lasse.collin@tukaani.org>
587Date:   2023-09-11 18:53:31 +0300
588
589    Remove incorrect uses of __attribute__((__malloc__)).
590    
591    xrealloc() is obviously incorrect, modern GCC docs even
592    mention realloc() as an example where this attribute
593    cannot be used.
594    
595    liblzma's lzma_alloc() and lzma_alloc_zero() would be
596    correct uses most of the time but custom allocators
597    may use a memory pool or otherwise hold the pointer
598    so aliasing issues could happen in theory.
599    
600    The xstrdup() case likely was correct but I removed it anyway.
601    Now there are no __malloc__ attributes left in the code.
602    The allocations aren't in hot paths so this should make
603    no practical difference.
604
605 src/liblzma/common/common.c | 4 ++--
606 src/liblzma/common/common.h | 4 ++--
607 src/xz/util.h               | 4 ++--
608 3 files changed, 6 insertions(+), 6 deletions(-)
609
610commit 589b4cba22fccb1dbc919df5d134aefb2b5a6b01
611Author: Lasse Collin <lasse.collin@tukaani.org>
612Date:   2023-09-19 14:03:45 +0300
613
614    Update THANKS.
615
616 THANKS | 1 +
617 1 file changed, 1 insertion(+)
618
619commit 43728ed2267e921fbdfa699ee1e91b105ab0e98b
620Author: Lasse Collin <lasse.collin@tukaani.org>
621Date:   2023-09-14 16:35:46 +0300
622
623    Update THANKS.
624
625 THANKS | 1 +
626 1 file changed, 1 insertion(+)
627
628commit caf00e0988ba47842cfd93dfbb17f7d30120d6e7
629Author: Lasse Collin <lasse.collin@tukaani.org>
630Date:   2023-09-14 16:34:07 +0300
631
632    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
633    
634    Thanks to Agostino Sarubbo.
635    Fixes: https://github.com/tukaani-project/xz/issues/62
636
637 src/liblzma/check/crc64_fast.c | 8 ++++++++
638 1 file changed, 8 insertions(+)
639
640commit a70e96d2da761b8b3a77bf14e08002d871e5950b
641Author: Jia Tan <jiat0218@gmail.com>
642Date:   2023-09-12 22:36:12 +0800
643
644    CMake: Fix time.h checks not running on second CMake run.
645    
646    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
647    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
648    for librt being needed to provide HAVE_CLOCK_GETTIME was also
649    simplified.
650
651 CMakeLists.txt | 18 ++++++++++--------
652 1 file changed, 10 insertions(+), 8 deletions(-)
653
654commit d5275d83bd2a9701c5feb8666785007c074b1359
655Author: Jia Tan <jiat0218@gmail.com>
656Date:   2023-09-12 22:34:06 +0800
657
658    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
659    
660    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
661    added as a compile definition even if the check for it failed.
662
663 CMakeLists.txt | 8 +++-----
664 1 file changed, 3 insertions(+), 5 deletions(-)
665
666commit 1f6e7c68fbdeeaa9482fc77de090be63d90912fd
667Author: Lasse Collin <lasse.collin@tukaani.org>
668Date:   2023-08-31 19:50:05 +0300
669
670    xz: Refactor thousand separator detection and disable it on MSVC.
671    
672    Now the two variations of the format strings are created with
673    a macro, and the whole detection code can be easily disabled
674    on platforms where thousand separator formatting is known to
675    not work (MSVC has no support, and on DJGPP 2.05 it can have
676    problems in some cases).
677
678 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
679 1 file changed, 45 insertions(+), 44 deletions(-)
680
681commit ef71f83973a20cc28a3221f85681922026ea33f5
682Author: Lasse Collin <lasse.collin@tukaani.org>
683Date:   2023-08-31 18:14:43 +0300
684
685    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
686    
687    SSIZE_MAX isn't readily available on MSVC. Removing it means
688    that there is one thing less to worry when porting to MSVC.
689
690 src/xz/file_io.c | 5 ++---
691 src/xz/file_io.h | 4 ++--
692 2 files changed, 4 insertions(+), 5 deletions(-)
693
694commit cf8ba7c3a89e37736b926dfbe85dffeff725db47
695Author: Jia Tan <jiat0218@gmail.com>
696Date:   2023-08-28 23:14:45 +0800
697
698    Tests: Improve invalid unpadded size check in test_lzma_index_append().
699    
700    This check was extended to test the code added to fix a failing assert
701    in 68bda971bb8b666a009331455fcedb4e18d837a4.
702
703 tests/test_index.c | 26 +++++++++++++++++++++++---
704 1 file changed, 23 insertions(+), 3 deletions(-)
705
706commit 4a4180ce74788e97e90b9aab579bfd7c6dce3f59
707Author: Jia Tan <jiat0218@gmail.com>
708Date:   2023-08-28 21:54:41 +0800
709
710    Tests: Improve comments in test_index.c.
711
712 tests/test_index.c | 6 +++---
713 1 file changed, 3 insertions(+), 3 deletions(-)
714
715commit 4b23b84b89e39a5117e16f66c3b01db4f08ed3e7
716Author: Jia Tan <jiat0218@gmail.com>
717Date:   2023-08-28 21:52:54 +0800
718
719    Update THANKS.
720
721 THANKS | 1 +
722 1 file changed, 1 insertion(+)
723
724commit 773f1e8622cb1465df528cb16a749517650acd93
725Author: Jia Tan <jiat0218@gmail.com>
726Date:   2023-08-28 21:50:16 +0800
727
728    liblzma: Update assert in vli_ceil4().
729    
730    The argument to vli_ceil4() should always guarantee the return value
731    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
732    are invalid arguments. All uses of the function ensure this so the
733    assert is updated to match this.
734
735 src/liblzma/common/index.h | 2 +-
736 1 file changed, 1 insertion(+), 1 deletion(-)
737
738commit 68bda971bb8b666a009331455fcedb4e18d837a4
739Author: Jia Tan <jiat0218@gmail.com>
740Date:   2023-08-28 21:31:25 +0800
741
742    liblzma: Add overflow check for Unpadded size in lzma_index_append().
743    
744    This was not a security bug since there was no path to overflow
745    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
746    The bug was discovered by a failing assert() in vli_ceil4() when called
747    from index_file_size() when unpadded_sum (the sum of the compressed size
748    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
749    
750    Previously, the unpadded_size parameter was checked to be not greater
751    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
752    added.
753    
754    This could not have caused an integer overflow in index_file_size() when
755    called by lzma_index_append(). The calculation for file_size breaks down
756    into the sum of:
757    
758    - Compressed base from all previous Streams
759    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
760      footer)
761    - stream_padding (can be set by lzma_index_stream_padding())
762    - Compressed base from the current Stream
763    - Unpadded size (parameter to lzma_index_append())
764    
765    The sum of everything except for Unpadded size must be less than
766    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
767    that can set these values including lzma_index_stream_padding(),
768    lzma_index_append(), and lzma_index_cat(). The maximum value for
769    Unpadded size is enforced by lzma_index_append() to be less than or
770    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
771    LZMA_VLI_MAX is half of UINT64_MAX.
772    
773    Thanks to Joona Kannisto for reporting this.
774
775 src/liblzma/common/index.c | 6 ++++++
776 1 file changed, 6 insertions(+)
777
778commit b41bb79c602481d7ea93d65f5b3e3f08dc54233b
779Author: Jia Tan <jiat0218@gmail.com>
780Date:   2023-08-28 22:18:29 +0800
781
782    Translations: Update the Esperanto translation.
783
784 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
785 1 file changed, 29 insertions(+), 18 deletions(-)
786
787commit 6614e6d4bf8e2b5af6eb73930148e0ffc8d2265a
788Author: Jia Tan <jiat0218@gmail.com>
789Date:   2023-08-09 20:55:36 +0800
790
791    Docs: Update INSTALL for --enable-threads method win95.
792    
793    The Autotools build allows win95 threads and --enable-small together now
794    if the compiler supports __attribute__((__constructor__)).
795
796 INSTALL | 6 ++++--
797 1 file changed, 4 insertions(+), 2 deletions(-)
798
799commit bfb623ad96fa6f1dbc0c560403c4296e3c8e26c9
800Author: Jia Tan <jiat0218@gmail.com>
801Date:   2023-08-09 20:54:15 +0800
802
803    CMake: Conditionally allow win95 threads and --enable-small.
804
805 CMakeLists.txt | 27 +++++++++++++++++++--------
806 1 file changed, 19 insertions(+), 8 deletions(-)
807
808commit e919ebb29ac9f5270cd7176a39d0d3b4cea875a9
809Author: Jia Tan <jiat0218@gmail.com>
810Date:   2023-08-09 20:35:16 +0800
811
812    Build: Conditionally allow win95 threads and --enable-small.
813    
814    When the compiler supports __attribute__((__constructor__))
815    mythread_once() is never used, even with --enable-small. A configuration
816    with win95 threads and --enable-small will compile and be thread safe so
817    it can be allowed.
818    
819    This isn't a very common configuration since MSVC does not support
820    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
821    for MSYS2 can use win95 threads and have
822    __attribute__((__constructor__)) support.
823
824 configure.ac | 21 +++++++++++++--------
825 1 file changed, 13 insertions(+), 8 deletions(-)
826
827commit c0c0cd4a483a672b66a13761583bc4f84d86d501
828Author: Jamaika1 <lukaszcz18@wp.pl>
829Date:   2023-08-08 14:07:59 +0200
830
831    mythread.h: Fix typo error in Vista threads mythread_once().
832    
833    The "once_" variable was accidentally referred to as just "once". This
834    prevented building with Vista threads when
835    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
836
837 src/common/mythread.h | 2 +-
838 1 file changed, 1 insertion(+), 1 deletion(-)
839
840commit d93fbefcc48a8737fdf5678ce66d1c1d605752a0
841Author: Jia Tan <jiat0218@gmail.com>
842Date:   2023-08-03 20:10:21 +0800
843
844    Tests: Style fixes to test_lzip_decoder.c.
845
846 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
847 1 file changed, 24 insertions(+), 12 deletions(-)
848
849commit 65981d8e45741fd1502e007609469e1d60312e69
850Author: Jia Tan <jiat0218@gmail.com>
851Date:   2023-08-03 15:56:20 +0800
852
853    Translations: Update the Chinese (simplified) translation.
854
855 po/zh_CN.po | 2 +-
856 1 file changed, 1 insertion(+), 1 deletion(-)
857
858commit a108ed589171d683c34238a87e358b87f69e39a0
859Author: Lasse Collin <lasse.collin@tukaani.org>
860Date:   2023-08-02 17:15:12 +0300
861
862    xz: Omit an empty paragraph on the man page.
863
864 src/xz/xz.1 | 1 -
865 1 file changed, 1 deletion(-)
866
867commit 03c51c5c08fe3579d8bbc8eea8251a1128001330
868Author: Jia Tan <jiat0218@gmail.com>
869Date:   2023-08-02 20:32:20 +0800
870
871    Bump version and soname for 5.4.4.
872
873 src/liblzma/Makefile.am        | 2 +-
874 src/liblzma/api/lzma/version.h | 2 +-
875 2 files changed, 2 insertions(+), 2 deletions(-)
876
877commit d7fa3f1b58a77f79b1a4e12452418b5555632e18
878Author: Jia Tan <jiat0218@gmail.com>
879Date:   2023-08-02 20:30:07 +0800
880
881    Add NEWS for 5.4.4.
882
883 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
884 1 file changed, 43 insertions(+)
885
886commit 6a1093c0004c42eeaef312456c295671496dd67a
887Author: Lasse Collin <lasse.collin@tukaani.org>
888Date:   2023-08-02 15:19:43 +0300
889
890    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
891    
892    groff defaults to SGR escapes. Using -P-c passes -c to grotty
893    which restores the old behavior. Perhaps there is a better way to
894    get pure plain text output but this works for now.
895
896 build-aux/manconv.sh | 4 ++--
897 1 file changed, 2 insertions(+), 2 deletions(-)
898
899commit f6f9f5651a7e2d89f588981533155ab850e063f7
900Author: Lasse Collin <lasse.collin@tukaani.org>
901Date:   2023-08-01 19:10:43 +0300
902
903    Update THANKS.
904
905 THANKS | 1 +
906 1 file changed, 1 insertion(+)
907
908commit 0dd83ba8767dad722e0f0f94e0e4146e290a28cb
909Author: Lasse Collin <lasse.collin@tukaani.org>
910Date:   2023-08-01 18:22:24 +0300
911
912    Update THANKS.
913
914 THANKS | 1 +
915 1 file changed, 1 insertion(+)
916
917commit 4170a80785cc69edfc5fdfe498bed5f40db6a7ef
918Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
919Date:   2023-08-01 18:17:17 +0300
920
921    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
922    
923    signal.h in WASI SDK doesn't currently provide sigprocmask()
924    or sigset_t. liblzma doesn't need them so this change makes
925    liblzma and xzdec build against WASI SDK. xz doesn't build yet
926    and the tests don't either as tuktest needs setjmp() which
927    isn't (yet?) implemented in WASI SDK.
928    
929    Closes: https://github.com/tukaani-project/xz/pull/57
930    See also: https://github.com/tukaani-project/xz/pull/56
931    
932    (The original commit was edited a little by Lasse Collin.)
933
934 src/common/mythread.h | 2 +-
935 1 file changed, 1 insertion(+), 1 deletion(-)
936
937commit 0db6fbe0be1545a4f25fcd6993371155b37bbb26
938Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
939Date:   2023-07-31 14:02:21 +0200
940
941    Docs: Fix typos found by codespell
942
943 CMakeLists.txt                            | 4 ++--
944 NEWS                                      | 2 +-
945 configure.ac                              | 2 +-
946 src/liblzma/api/lzma/container.h          | 4 ++--
947 src/liblzma/api/lzma/filter.h             | 2 +-
948 src/liblzma/api/lzma/lzma12.h             | 4 ++--
949 src/liblzma/common/block_buffer_encoder.c | 2 +-
950 src/liblzma/common/common.h               | 2 +-
951 src/liblzma/common/file_info.c            | 2 +-
952 src/liblzma/common/lzip_decoder.c         | 2 +-
953 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
954 src/liblzma/common/string_conversion.c    | 6 +++---
955 src/liblzma/lz/lz_encoder.h               | 2 +-
956 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
957 src/xz/hardware.c                         | 4 ++--
958 tests/test_filter_flags.c                 | 4 ++--
959 tests/test_index.c                        | 2 +-
960 tests/test_vli.c                          | 2 +-
961 18 files changed, 29 insertions(+), 29 deletions(-)
962
963commit 84a3a1f4e4f146b3b5fa73fe708cacb0d9f829f3
964Author: Jia Tan <jiat0218@gmail.com>
965Date:   2023-07-26 20:26:23 +0800
966
967    Update .gitignore.
968
969 .gitignore | 4 ++++
970 1 file changed, 4 insertions(+)
971
972commit 962b3d41e0c27355ba3052ef7b7d9a887de807e5
973Author: Jia Tan <jiat0218@gmail.com>
974Date:   2023-07-28 22:03:08 +0800
975
976    CMake: Conditionally allow the creation of broken symlinks.
977    
978    The CMake build will try to create broken symlinks on Unix and Unix-like
979    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
980    broken symlinks. The value of the CYGWIN or MSYS environment variables
981    determine if broken symlinks are valid.
982    
983    The default for MSYS2 does not allow for broken symlinks, so the CMake
984    build has been broken for MSYS2 since commit
985    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
986
987 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
988 1 file changed, 75 insertions(+), 7 deletions(-)
989
990commit 19899340cf74d98304f9f5b726c72e85c7017d72
991Author: Jia Tan <jiat0218@gmail.com>
992Date:   2023-07-24 21:43:44 +0800
993
994    liblzma: Prevent an empty translation unit in Windows builds.
995    
996    To workaround Automake lacking Windows resource compiler support, an
997    empty source file is compiled to overwrite the resource files for static
998    library builds. Translation units without an external declaration are
999    not allowed by the C standard and result in a warning when used with
1000    -Wempty-translation-unit (Clang) or -pedantic (GCC).
1001
1002 src/liblzma/Makefile.am | 6 +++++-
1003 1 file changed, 5 insertions(+), 1 deletion(-)
1004
1005commit ef7fbe83937abd7f55f1637c1d08b559f1d3d6cc
1006Author: Jia Tan <jiat0218@gmail.com>
1007Date:   2023-07-21 18:05:44 +0800
1008
1009    Tests: Skip .lz files in test_files.sh if not configured.
1010    
1011    Previously if the lzip decoder was not configured then test_files.sh
1012    would pass the lzip tests instead of skipping them.
1013
1014 tests/test_files.sh | 2 +-
1015 1 file changed, 1 insertion(+), 1 deletion(-)
1016
1017commit e49815ba7aa610b72e8724025eceee23c27e7b23
1018Author: Jia Tan <jiat0218@gmail.com>
1019Date:   2023-07-20 22:11:13 +0800
1020
1021    Tests: Add ARM64 filter test to test_compress.sh.
1022
1023 tests/test_compress.sh | 1 +
1024 1 file changed, 1 insertion(+)
1025
1026commit db5b57b827c2b084586c51da1b8a3ab0984bdb40
1027Author: Jia Tan <jiat0218@gmail.com>
1028Date:   2023-07-22 18:37:56 +0800
1029
1030    Translations: Update the Vietnamese translation.
1031
1032 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
1033 1 file changed, 28 insertions(+), 17 deletions(-)
1034
1035commit e6ba5014081c98cb068253b3e5f9e372dd157f3c
1036Author: Jia Tan <jiat0218@gmail.com>
1037Date:   2023-07-20 20:30:05 +0800
1038
1039    Translations: Update the Croatian translation.
1040
1041 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
1042 1 file changed, 30 insertions(+), 19 deletions(-)
1043
1044commit 82657a1f10a25050a3e9c246c41deb785cccba3a
1045Author: Jia Tan <jiat0218@gmail.com>
1046Date:   2023-07-20 20:28:32 +0800
1047
1048    Translations: Update the Korean man page translations.
1049
1050 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
1051 1 file changed, 629 insertions(+), 626 deletions(-)
1052
1053commit fab35907d13efbe7c457e00a310123335d7bae3e
1054Author: Jia Tan <jiat0218@gmail.com>
1055Date:   2023-07-20 20:25:24 +0800
1056
1057    Translations: Update the Korean translation.
1058
1059 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
1060 1 file changed, 28 insertions(+), 17 deletions(-)
1061
1062commit f530fe1964c34797fa3b775ec5804d68007c1579
1063Author: Jia Tan <jiat0218@gmail.com>
1064Date:   2023-07-20 20:24:05 +0800
1065
1066    Translations: Update the Polish translation.
1067
1068 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
1069 1 file changed, 29 insertions(+), 18 deletions(-)
1070
1071commit 10b3500cc2617aabdbc802a63164ce0a3683ad2b
1072Author: Jia Tan <jiat0218@gmail.com>
1073Date:   2023-07-20 20:22:23 +0800
1074
1075    Translations: Update the German man page translations.
1076
1077 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
1078 1 file changed, 629 insertions(+), 626 deletions(-)
1079
1080commit 3d14e8a34dba176f975326924ae28a3ab5fee165
1081Author: Jia Tan <jiat0218@gmail.com>
1082Date:   2023-07-20 20:18:44 +0800
1083
1084    Translations: Update the German translation.
1085
1086 po/de.po | 47 +++++++++++++++++++++++++++++------------------
1087 1 file changed, 29 insertions(+), 18 deletions(-)
1088
1089commit bdcc180a2da15039c47455c1cafd1ce9aff442e4
1090Author: Jia Tan <jiat0218@gmail.com>
1091Date:   2023-07-20 20:17:10 +0800
1092
1093    Translations: Update the Chinese (simplified) translation.
1094
1095 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
1096 1 file changed, 29 insertions(+), 18 deletions(-)
1097
1098commit 844240350d33cb46ba8827b74dc8758e2abed9e5
1099Author: Jia Tan <jiat0218@gmail.com>
1100Date:   2023-07-20 20:15:47 +0800
1101
1102    Translations: Update the Swedish translation.
1103
1104 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
1105 1 file changed, 29 insertions(+), 18 deletions(-)
1106
1107commit bdc7952bcfbc20c134f723ff5cbf84ab690fb4fc
1108Author: Jia Tan <jiat0218@gmail.com>
1109Date:   2023-07-20 20:14:00 +0800
1110
1111    Translations: Update the Ukrainian man page translations.
1112
1113 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
1114 1 file changed, 628 insertions(+), 625 deletions(-)
1115
1116commit 143396e070c8d8afb56e3a5f688b214222cf71e0
1117Author: Jia Tan <jiat0218@gmail.com>
1118Date:   2023-07-20 20:09:15 +0800
1119
1120    Translations: Update the Ukrainian translation.
1121
1122 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
1123 1 file changed, 28 insertions(+), 17 deletions(-)
1124
1125commit 1b8146d64eaac51b40079f5788b85c1eb79e35de
1126Author: Jia Tan <jiat0218@gmail.com>
1127Date:   2023-07-20 20:06:57 +0800
1128
1129    Translations: Update the Spanish translation.
1130
1131 po/es.po | 47 +++++++++++++++++++++++++++++------------------
1132 1 file changed, 29 insertions(+), 18 deletions(-)
1133
1134commit f947ce09d79ef8fa6549d350c4d72e4a8a9fa697
1135Author: Jia Tan <jiat0218@gmail.com>
1136Date:   2023-07-20 20:05:19 +0800
1137
1138    Translations: Update the Romanian translation.
1139
1140 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
1141 1 file changed, 30 insertions(+), 18 deletions(-)
1142
1143commit f681301a368def3f597a7c7bea7cb3f7a2f933e7
1144Author: Jia Tan <jiat0218@gmail.com>
1145Date:   2023-07-20 20:02:56 +0800
1146
1147    Translations: Update the Romanian man page translations.
1148
1149 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
1150 1 file changed, 629 insertions(+), 625 deletions(-)
1151
1152commit 8bc3146c6be920b56283f4ee846456cb34ae4b6f
1153Author: Jia Tan <jiat0218@gmail.com>
1154Date:   2023-07-13 21:26:47 +0800
1155
1156    xz: Update man page Authors and date.
1157
1158 src/xz/xz.1 | 5 +++--
1159 1 file changed, 3 insertions(+), 2 deletions(-)
1160
1161commit c2905540ef905412b54c76488758712d3e2a0f9d
1162Author: Jia Tan <jiat0218@gmail.com>
1163Date:   2023-07-18 23:19:09 +0800
1164
1165    xz: Slight reword in xz man page for consistency.
1166    
1167    Changed will print => prints in xz --robot --version description to
1168    match --robot --info-memory description.
1169
1170 src/xz/xz.1 | 2 +-
1171 1 file changed, 1 insertion(+), 1 deletion(-)
1172
1173commit 2600d3352449faf57d9cb3fa00cbe40548a1310f
1174Author: Jia Tan <jiat0218@gmail.com>
1175Date:   2023-07-18 22:49:57 +0800
1176
1177    liblzma: Improve comment in string_conversion.c.
1178    
1179    The comment used "flag" when referring to decoder options. Just
1180    referring to them as options is more clear and consistent.
1181
1182 src/liblzma/common/string_conversion.c | 4 ++--
1183 1 file changed, 2 insertions(+), 2 deletions(-)
1184
1185commit 98fc14541eec3e1dcf694075c8533f19a3cee552
1186Author: Jia Tan <jiat0218@gmail.com>
1187Date:   2023-05-13 21:21:54 +0800
1188
1189    liblzma: Reword lzma_str_list_filters() documentation.
1190    
1191    Reword "options required" to "options read". The previous wording
1192    may have suggested that the options listed were all required when
1193    the filters are used for encoding or decoding. Now it should be
1194    more clear that the options listed are the ones relevant for
1195    encoding or decoding.
1196
1197 src/liblzma/api/lzma/filter.h | 2 +-
1198 1 file changed, 1 insertion(+), 1 deletion(-)
1199
1200commit 1ac79b4cbaecf3f4930a5d8ce6f7e1f2b63c2a01
1201Author: Lasse Collin <lasse.collin@tukaani.org>
1202Date:   2023-07-18 17:37:33 +0300
1203
1204    xz: Translate the second "%s: " in message.c since French needs "%s : ".
1205    
1206    This string is used to print a filename when using "xz -v" and
1207    stderr isn't a terminal.
1208
1209 src/xz/message.c | 2 +-
1210 1 file changed, 1 insertion(+), 1 deletion(-)
1211
1212commit 97851be2c6c64494f23c3a735601c13d4387820b
1213Author: Lasse Collin <lasse.collin@tukaani.org>
1214Date:   2023-07-18 14:35:33 +0300
1215
1216    xz: Make "%s: %s" translatable because French needs "%s : %s".
1217
1218 src/xz/args.c    |  5 ++++-
1219 src/xz/coder.c   |  8 ++++----
1220 src/xz/file_io.c |  8 ++++----
1221 src/xz/list.c    | 11 ++++++-----
1222 4 files changed, 18 insertions(+), 14 deletions(-)
1223
1224commit b406828a6dfd3caa4f77efe3ff3e3eea263eee62
1225Author: Lasse Collin <lasse.collin@tukaani.org>
1226Date:   2023-07-18 13:57:54 +0300
1227
1228    liblzma: Tweak #if condition in memcmplen.h.
1229    
1230    Maybe ICC always #defines _MSC_VER on Windows but now
1231    it's very clear which code will get used.
1232
1233 src/liblzma/common/memcmplen.h | 4 ++--
1234 1 file changed, 2 insertions(+), 2 deletions(-)
1235
1236commit ef4a07ad9434f81417395f6fe0bb331e027a703b
1237Author: Lasse Collin <lasse.collin@tukaani.org>
1238Date:   2023-07-18 13:49:43 +0300
1239
1240    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
1241
1242 src/liblzma/common/memcmplen.h | 4 ++--
1243 1 file changed, 2 insertions(+), 2 deletions(-)
1244
1245commit 64ee0caaea06654b28afaee850fb187a11bf9cb2
1246Author: Jia Tan <jiat0218@gmail.com>
1247Date:   2023-06-28 20:22:38 +0800
1248
1249    liblzma: Prevent warning for MSYS2 Windows build.
1250    
1251    In lzma_memcmplen(), the <intrin.h> header file is only included if
1252    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
1253    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
1254    not _MSC_VER so _BitScanForward64() was used without including
1255    <intrin.h>.
1256    
1257    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
1258    expected.
1259
1260 src/liblzma/common/memcmplen.h | 6 ++++--
1261 1 file changed, 4 insertions(+), 2 deletions(-)
1262
1263commit ba177057643dae6e9c167ee26471181c199c8a00
1264Author: Jia Tan <jiat0218@gmail.com>
1265Date:   2023-07-14 23:20:33 +0800
1266
1267    Docs: Add a new section to INSTALL for Tests.
1268    
1269    The new Tests section describes basic information about the tests, how
1270    to run them, and important details when cross compiling. We have had a
1271    few questions about how to compile the tests without running them, so
1272    hopefully this information will help others with the same question in the
1273    future.
1274    
1275    Fixes: https://github.com/tukaani-project/xz/issues/54
1276
1277 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
1278 1 file changed, 64 insertions(+), 17 deletions(-)
1279
1280commit 0745b900fafa5ac2c31e8ec3cfba3053457c8b1f
1281Author: Jia Tan <jiat0218@gmail.com>
1282Date:   2023-07-14 21:10:27 +0800
1283
1284    Docs: Update README.
1285    
1286    This adds an entry to "Other implementations of the .xz format" for
1287    XZ for Java.
1288
1289 README | 4 ++++
1290 1 file changed, 4 insertions(+)
1291
1292commit c972d44103c4edf88e73917ef08bde69db9d06cb
1293Author: Jia Tan <jiat0218@gmail.com>
1294Date:   2023-07-18 13:27:46 +0300
1295
1296    xz: Fix typo in man page.
1297    
1298    The Memory limit information section described three output
1299    columns when it actually has six. This was reworded to
1300    "multiple" to make it more future proof.
1301
1302 src/xz/xz.1 | 2 +-
1303 1 file changed, 1 insertion(+), 1 deletion(-)
1304
1305commit 6e21f1b4e2c580b64d258e3b81ac9e44d53b9283
1306Author: Jia Tan <jiat0218@gmail.com>
1307Date:   2023-07-14 21:30:25 +0800
1308
1309    Tests: Improve feature testing for skipping.
1310    
1311    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
1312    filters were enabled for compression but arm was disabled. Since the
1313    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
1314    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
1315    
1316    Now the config.h feature test requires " 1" at the end to prevent the
1317    prefix problem. have_feature() was also updated for this even though
1318    there were known current bugs affecting it. This is just in case future
1319    features have a similar prefix problem.
1320
1321 tests/test_compress.sh | 4 ++--
1322 tests/test_files.sh    | 2 +-
1323 2 files changed, 3 insertions(+), 3 deletions(-)
1324
1325commit 26c37d290c0884a4518a26b949575420a77fb938
1326Author: Jia Tan <jiat0218@gmail.com>
1327Date:   2023-07-10 20:56:28 +0800
1328
1329    Translations: Update the Chinese (traditional) translation.
1330
1331 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
1332 1 file changed, 377 insertions(+), 282 deletions(-)
1333
1334commit 2ec65181e28335692a3a4fac4fefc4303111d355
1335Author: Jia Tan <jiat0218@gmail.com>
1336Date:   2023-07-08 20:03:59 +0800
1337
1338    Translations: Update the Vietnamese translation.
1339
1340 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
1341 1 file changed, 349 insertions(+), 271 deletions(-)
1342
1343commit c44c7e7590db1b89c97e106f5c516bf69189e233
1344Author: Jia Tan <jiat0218@gmail.com>
1345Date:   2023-06-28 20:46:31 +0800
1346
1347    Tests: Fix memory leaks in test_index.
1348    
1349    Several tests were missing calls to lzma_index_end() to clean up the
1350    lzma_index structs. The memory leaks were discovered by using
1351    -fsanitize=address with GCC.
1352
1353 tests/test_index.c | 11 +++++++++++
1354 1 file changed, 11 insertions(+)
1355
1356commit b9499c94fccc03eba5311b5305f04149a7c5af65
1357Author: Jia Tan <jiat0218@gmail.com>
1358Date:   2023-06-28 20:43:29 +0800
1359
1360    Tests: Fix memory leaks in test_block_header.
1361    
1362    test_block_header was not properly freeing the filter options between
1363    calls to lzma_block_header_decode(). The memory leaks were discovered by
1364    using -fsanitize=address with GCC.
1365
1366 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
1367 1 file changed, 22 insertions(+), 16 deletions(-)
1368
1369commit 1155471651ad456c5f90aee6435931fae65682bf
1370Author: Jia Tan <jiat0218@gmail.com>
1371Date:   2023-06-28 20:31:11 +0800
1372
1373    liblzma: Prevent uninitialzed warning in mt stream encoder.
1374    
1375    This change only impacts the compiler warning since it was impossible
1376    for the wait_abs struct in stream_encode_mt() to be used before it was
1377    initialized since mythread_condtime_set() will always be called before
1378    mythread_cond_timedwait().
1379    
1380    Since the mythread.h code is different between the POSIX and
1381    Windows versions, this warning was only present on Windows builds.
1382    
1383    Thanks to Arthur S for reporting the warning and providing an initial
1384    patch.
1385
1386 src/liblzma/common/stream_encoder_mt.c | 2 +-
1387 1 file changed, 1 insertion(+), 1 deletion(-)
1388
1389commit 62dd1c9bf0c66679ceeebc8b99bca136ca43bcb9
1390Author: Jia Tan <jiat0218@gmail.com>
1391Date:   2023-06-07 00:10:38 +0800
1392
1393    Update THANKS.
1394
1395 THANKS | 1 +
1396 1 file changed, 1 insertion(+)
1397
1398commit d04eb78ab3892d3678c180437dd66379efa051fd
1399Author: Benjamin Buch <bebuch@users.noreply.github.com>
1400Date:   2023-06-06 15:32:45 +0200
1401
1402    CMake: Protects against double find_package
1403    
1404    Boost iostream uses `find_package` in quiet mode and then again uses
1405    `find_package` with required. This second call triggers a
1406    `add_library cannot create imported target "LibLZMA::LibLZMA"
1407    because another target with the same name already exists.`
1408    
1409    This can simply be fixed by skipping the alias part on secondary
1410    `find_package` runs.
1411
1412 CMakeLists.txt | 16 +++++++++-------
1413 1 file changed, 9 insertions(+), 7 deletions(-)
1414
1415commit 12ea1fb29763dd72376aca73d69621aff01eaa7f
1416Author: Jia Tan <jiat0218@gmail.com>
1417Date:   2023-05-31 20:26:42 +0800
1418
1419    Translations: Update the Esperanto translation.
1420
1421 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
1422 1 file changed, 92 insertions(+), 93 deletions(-)
1423
1424commit a4d45c07c1e4aa0ea9410b4eed7301c97e960319
1425Author: Jia Tan <jiat0218@gmail.com>
1426Date:   2023-05-31 20:25:00 +0800
1427
1428    Translations: Update the Croatian translation.
1429
1430 po/hr.po | 2 +-
1431 1 file changed, 1 insertion(+), 1 deletion(-)
1432
1433commit f51b7bcea6f948db9529b3e6d850e76a30cc0e96
1434Author: Jia Tan <jiat0218@gmail.com>
1435Date:   2023-05-31 20:15:53 +0800
1436
1437    Translations: Update the Chinese (simplified) translation.
1438
1439 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
1440 1 file changed, 157 insertions(+), 160 deletions(-)
1441
1442commit d5b81c19a7594fbb913bb3450360bc2145f29568
1443Author: Jia Tan <jiat0218@gmail.com>
1444Date:   2023-05-17 23:12:13 +0800
1445
1446    Translations: Update German translation of man pages.
1447
1448 po4a/de.po | 52 ++++++++++++----------------------------------------
1449 1 file changed, 12 insertions(+), 40 deletions(-)
1450
1451commit 36860a3e30d5675b4dba3a343159458d8864bceb
1452Author: Jia Tan <jiat0218@gmail.com>
1453Date:   2023-05-17 23:09:18 +0800
1454
1455    Translations: Update the German translation.
1456
1457 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
1458 1 file changed, 94 insertions(+), 95 deletions(-)
1459
1460commit f05641ef0d4990c4c58f459039d412475b94b37d
1461Author: Jia Tan <jiat0218@gmail.com>
1462Date:   2023-05-17 20:30:01 +0800
1463
1464    Translations: Update the Croatian translation.
1465
1466 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
1467 1 file changed, 93 insertions(+), 94 deletions(-)
1468
1469commit b852f6f11d43cafce871cd158c80488f86619a63
1470Author: Jia Tan <jiat0218@gmail.com>
1471Date:   2023-05-17 20:26:54 +0800
1472
1473    Translations: Update Korean translation of man pages.
1474
1475 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
1476 1 file changed, 568 insertions(+), 2447 deletions(-)
1477
1478commit fdcb78fb6f5313eda363869690685471d7ab9731
1479Author: Jia Tan <jiat0218@gmail.com>
1480Date:   2023-05-17 20:13:01 +0800
1481
1482    Translations: Update the Korean translation.
1483
1484 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
1485 1 file changed, 158 insertions(+), 161 deletions(-)
1486
1487commit 9e39cebe3ccdd4bc320ce6e7eea989bdd167c8b2
1488Author: Jia Tan <jiat0218@gmail.com>
1489Date:   2023-05-16 23:49:09 +0800
1490
1491    Translations: Update the Spanish translation.
1492
1493 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
1494 1 file changed, 158 insertions(+), 161 deletions(-)
1495
1496commit 7a578d1d8293fc1cf7c6f9df76bc6a0e55c51a14
1497Author: Jia Tan <jiat0218@gmail.com>
1498Date:   2023-05-16 23:47:23 +0800
1499
1500    Translations: Update the Romanian translation.
1501
1502 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
1503 1 file changed, 98 insertions(+), 97 deletions(-)
1504
1505commit 362320fea5383bae179763763625532bad6d10e8
1506Author: Jia Tan <jiat0218@gmail.com>
1507Date:   2023-05-16 23:45:43 +0800
1508
1509    Translations: Update Romanian translation of man pages.
1510
1511 po4a/ro.po | 19 ++++++++++---------
1512 1 file changed, 10 insertions(+), 9 deletions(-)
1513
1514commit 29c5a870be23d0a565b959404b34a8b1babef7df
1515Author: Jia Tan <jiat0218@gmail.com>
1516Date:   2023-05-16 23:43:51 +0800
1517
1518    Translations: Update Ukrainian translation of man pages.
1519
1520 po4a/uk.po | 12 ++++++------
1521 1 file changed, 6 insertions(+), 6 deletions(-)
1522
1523commit 5ee57572773207371712b1bbcd9b5b8c1baad2cc
1524Author: Jia Tan <jiat0218@gmail.com>
1525Date:   2023-05-16 23:37:54 +0800
1526
1527    Translations: Update the Ukrainian translation.
1528
1529 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
1530 1 file changed, 159 insertions(+), 162 deletions(-)
1531
1532commit dfc257bdb224780d3c8cdeca5a8e52848b9adc0a
1533Author: Jia Tan <jiat0218@gmail.com>
1534Date:   2023-05-16 23:07:35 +0800
1535
1536    Translations: Update the Polish translation.
1537
1538 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
1539 1 file changed, 155 insertions(+), 161 deletions(-)
1540
1541commit f6df4c4ab7378d2971ae1606f4eecc011ea5fc6d
1542Author: Jia Tan <jiat0218@gmail.com>
1543Date:   2023-05-16 22:52:14 +0800
1544
1545    Translations: Update the Swedish translation.
1546
1547 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
1548 1 file changed, 158 insertions(+), 161 deletions(-)
1549
1550commit 25da22e0521ec698dae4eb5e994b4cd3f4708b60
1551Author: Jia Tan <jiat0218@gmail.com>
1552Date:   2023-05-16 21:21:38 +0800
1553
1554    Translations: Update the Esperanto translation.
1555
1556 po/eo.po | 34 +++++++++++++++++-----------------
1557 1 file changed, 17 insertions(+), 17 deletions(-)
1558
1559commit 4f57a9c9915b7b9267885cf9fca58e5c8208458d
1560Author: Jia Tan <jiat0218@gmail.com>
1561Date:   2023-05-11 23:49:23 +0800
1562
1563    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
1564    
1565    None of the liblzma functions may throw an exception, so this
1566    attribute should be applied to all liblzma API functions.
1567
1568 src/liblzma/api/lzma/container.h | 5 +++--
1569 1 file changed, 3 insertions(+), 2 deletions(-)
1570
1571commit 238b4e5458b4bd2cadefb768b8ea7c6b70a191ac
1572Author: Jia Tan <jiat0218@gmail.com>
1573Date:   2023-05-04 20:38:52 +0800
1574
1575    Translations: Update the Croatian translation.
1576
1577 po/hr.po | 6 +++---
1578 1 file changed, 3 insertions(+), 3 deletions(-)
1579
1580commit 0cee63c3c6c4f9084a5e7fa7c15a1863ac8e5ffc
1581Author: Jia Tan <jiat0218@gmail.com>
1582Date:   2023-05-04 19:50:42 +0800
1583
1584    Bump version and soname for 5.4.3.
1585
1586 src/liblzma/Makefile.am        | 2 +-
1587 src/liblzma/api/lzma/version.h | 2 +-
1588 2 files changed, 2 insertions(+), 2 deletions(-)
1589
1590commit 01f937ea9a49005c5091c0165fa0c1e572dd1749
1591Author: Jia Tan <jiat0218@gmail.com>
1592Date:   2023-05-02 20:39:56 +0800
1593
1594    Add NEWS for 5.4.3.
1595
1596 NEWS | 10 ++++++++++
1597 1 file changed, 10 insertions(+)
1598
1599commit e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1
1600Author: Lasse Collin <lasse.collin@tukaani.org>
1601Date:   2023-05-03 22:46:42 +0300
1602
1603    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
1604    
1605    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
1606    Also, this has >= instead of == since ints larger than 32 bits would
1607    work too even if not relevant in practice.
1608
1609 src/common/tuklib_integer.h | 4 ++--
1610 1 file changed, 2 insertions(+), 2 deletions(-)
1611
1612commit be6e39a8622f0d905072874ec25b1ffd155b12e1
1613Author: Jia Tan <jiat0218@gmail.com>
1614Date:   2023-04-20 20:15:00 +0800
1615
1616    Update THANKS.
1617
1618 THANKS | 1 +
1619 1 file changed, 1 insertion(+)
1620
1621commit 9e343a46cf87a345799222c0b0b3a6f3358dde0c
1622Author: Jia Tan <jiat0218@gmail.com>
1623Date:   2023-04-19 22:22:16 +0800
1624
1625    Windows: Include <intrin.h> when needed.
1626    
1627    Legacy Windows did not need to #include <intrin.h> to use the MSVC
1628    intrinsics. Newer versions likely just issue a warning, but the MSVC
1629    documentation says to include the header file for the intrinsics we use.
1630    
1631    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
1632    needed in tuklib_integer.h to only include <intrin.h> when it will is
1633    actually needed.
1634
1635 src/common/tuklib_integer.h    |  6 ++++++
1636 src/liblzma/common/memcmplen.h | 10 ++++++++++
1637 2 files changed, 16 insertions(+)
1638
1639commit 12321a9390acc076b414035a46df9d7545ac379f
1640Author: Jia Tan <jiat0218@gmail.com>
1641Date:   2023-04-19 21:59:03 +0800
1642
1643    tuklib_integer: Use __builtin_clz() with Clang.
1644    
1645    Clang has support for __builtin_clz(), but previously Clang would
1646    fallback to either the MSVC intrinsic or the regular C code. This was
1647    discovered due to a bug where a new version of Clang required the
1648    <intrin.h> header file in order to use the MSVC intrinsics.
1649    
1650    Thanks to Anton Kochkov for notifying us about the bug.
1651
1652 src/common/tuklib_integer.h | 6 +++---
1653 1 file changed, 3 insertions(+), 3 deletions(-)
1654
1655commit d1f0e01c395960efd6c29ff144eda4f4c8c1c6d3
1656Author: Lasse Collin <lasse.collin@tukaani.org>
1657Date:   2023-04-14 18:42:33 +0300
1658
1659    liblzma: Update project maintainers in lzma.h.
1660    
1661    AUTHORS was updated earlier, lzma.h was simply forgotten.
1662
1663 src/liblzma/api/lzma.h | 2 +-
1664 1 file changed, 1 insertion(+), 1 deletion(-)
1665
1666commit 8204c5d1304e1e3b7487801b4acaf8e3179a6c52
1667Author: Jia Tan <jiat0218@gmail.com>
1668Date:   2023-04-13 20:45:19 +0800
1669
1670    liblzma: Cleans up old commented out code.
1671
1672 src/liblzma/common/alone_encoder.c | 11 -----------
1673 1 file changed, 11 deletions(-)
1674
1675commit 32980d1562bc031013306be1c787761fa63da87d
1676Author: Jia Tan <jiat0218@gmail.com>
1677Date:   2023-03-28 22:32:40 +0800
1678
1679    CMake: Update liblzma-config.cmake generation.
1680    
1681    Now that the threading is configurable, the liblzma CMake package only
1682    needs the threading library when using POSIX threads.
1683
1684 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
1685 1 file changed, 22 insertions(+), 11 deletions(-)
1686
1687commit 023907faa965476fb921a6344253c50e0ba795f9
1688Author: Jia Tan <jiat0218@gmail.com>
1689Date:   2023-03-28 22:25:33 +0800
1690
1691    CMake: Allows setting thread method.
1692    
1693    The thread method is now configurable for the CMake build. It matches
1694    the Autotools build by allowing ON (pick the best threading method),
1695    OFF (no threading), posix, win95, and vista. If both Windows and
1696    posix threading are both available, then ON will choose Windows
1697    threading. Windows threading will also not use:
1698    
1699    target_link_libraries(liblzma Threads::Threads)
1700    
1701    since on systems like MinGW-w64 it would link the posix threads
1702    without purpose.
1703
1704 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
1705 1 file changed, 104 insertions(+), 40 deletions(-)
1706
1707commit ba176d77cbb164b13006516660fc1ff6c59dedb5
1708Author: Jia Tan <jiat0218@gmail.com>
1709Date:   2023-03-24 20:05:59 +0800
1710
1711    CMake: Only build xzdec if decoders are enabled.
1712
1713 CMakeLists.txt | 2 +-
1714 1 file changed, 1 insertion(+), 1 deletion(-)
1715
1716commit c99d697df800e9bc47e09facf88bcfdb9e0264a5
1717Author: Jia Tan <jiat0218@gmail.com>
1718Date:   2023-03-22 15:42:04 +0800
1719
1720    Build: Removes redundant check for LZMA1 filter support.
1721
1722 src/liblzma/lzma/Makefile.inc | 5 +----
1723 1 file changed, 1 insertion(+), 4 deletions(-)
1724
1725commit 54a2fd8c850e626343b79c4cc8fcac2f638ec890
1726Author: Lasse Collin <lasse.collin@tukaani.org>
1727Date:   2023-03-23 15:14:29 +0200
1728
1729    CMake: Bump maximum policy version to 3.26.
1730    
1731    It adds only one new policy related to FOLDERS which we don't use.
1732    This makes it clear that the code is compatible with the policies
1733    up to 3.26.
1734
1735 CMakeLists.txt | 2 +-
1736 1 file changed, 1 insertion(+), 1 deletion(-)
1737
1738commit 622d0fdc02d5f565c2872d79bc70c669c95c8284
1739Author: Jia Tan <jiat0218@gmail.com>
1740Date:   2023-03-21 23:36:00 +0800
1741
1742    CMake: Conditionally build xz list.* files if decoders are enabled.
1743
1744 CMakeLists.txt | 9 +++++++--
1745 1 file changed, 7 insertions(+), 2 deletions(-)
1746
1747commit 3e2dc523c596cd770a6a7c58cacc0d0d8761e853
1748Author: Jia Tan <jiat0218@gmail.com>
1749Date:   2023-02-25 11:46:50 +0800
1750
1751    CMake: Allow configuring features as cache variables.
1752    
1753    This allows users to change the features they build either in
1754    CMakeCache.txt or by using a CMake GUI. The sources built for
1755    liblzma are affected by this too, so only the necessary files
1756    will be compiled.
1757
1758 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
1759 1 file changed, 391 insertions(+), 137 deletions(-)
1760
1761commit 0c053f97337fa4ead77acefb577e8e86f8ef388d
1762Author: Lasse Collin <lasse.collin@tukaani.org>
1763Date:   2023-03-21 14:07:51 +0200
1764
1765    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
1766    
1767    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
1768    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
1769
1770 configure.ac | 3 +++
1771 1 file changed, 3 insertions(+)
1772
1773commit 915d4f6058d52f84d2b58b0a5f3c8272eaa6c1bd
1774Author: Lasse Collin <lasse.collin@tukaani.org>
1775Date:   2023-03-21 14:04:37 +0200
1776
1777    Build: configure.ac: Use AS_IF and AS_CASE where required.
1778    
1779    This makes no functional difference in the generated configure
1780    (at least with the Autotools versions I have installed) but this
1781    change might prevent future bugs like the one that was just
1782    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
1783
1784 configure.ac | 30 +++++++++++++++---------------
1785 1 file changed, 15 insertions(+), 15 deletions(-)
1786
1787commit b848c039586ed2cddb6fb033680dac107cc5143f
1788Author: Lasse Collin <lasse.collin@tukaani.org>
1789Date:   2023-03-21 13:12:03 +0200
1790
1791    Update THANKS.
1792
1793 THANKS | 1 +
1794 1 file changed, 1 insertion(+)
1795
1796commit c775ba1602a74f29dbc2088bbe4d02c23fc32ba1
1797Author: Lasse Collin <lasse.collin@tukaani.org>
1798Date:   2023-03-21 13:11:49 +0200
1799
1800    Build: Fix --disable-threads breaking the building of shared libs.
1801    
1802    This is broken in the releases 5.2.6 to 5.4.2. A workaround
1803    for these releases is to pass EGREP='grep -E' as an argument
1804    to configure in addition to --disable-threads.
1805    
1806    The problem appeared when m4/ax_pthread.m4 was updated in
1807    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
1808    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
1809    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
1810    but this was only executed if POSIX threads were enabled.
1811    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
1812    omits it as AC_PROG_EGREP has already been required earlier.
1813    Thus, if not using POSIX threads, the shell variable EGREP
1814    would be undefined in the Libtool code in configure.
1815    
1816    ax_pthread.m4 is fine. The bug was in configure.ac which called
1817    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
1818    ensures that all AC_REQUIREs get always run.
1819    
1820    Thanks to Frank Busse for reporting the bug.
1821    Fixes: https://github.com/tukaani-project/xz/issues/45
1822
1823 configure.ac | 16 ++++++++--------
1824 1 file changed, 8 insertions(+), 8 deletions(-)
1825
1826commit 0673c9ec98b6bae12b33dc295564514aaa26e2fc
1827Author: Lasse Collin <lasse.collin@tukaani.org>
1828Date:   2023-03-19 22:45:59 +0200
1829
1830    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
1831    
1832    Thanks to Christian Hesse for reporting the issue.
1833    Fixes: https://github.com/tukaani-project/xz/issues/44
1834
1835 src/liblzma/common/memcmplen.h | 3 ++-
1836 1 file changed, 2 insertions(+), 1 deletion(-)
1837
1838commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8
1839Author: Jia Tan <jiat0218@gmail.com>
1840Date:   2023-03-18 23:22:06 +0800
1841
1842    Bump version and soname for 5.4.2.
1843
1844 src/liblzma/Makefile.am        | 2 +-
1845 src/liblzma/api/lzma/version.h | 2 +-
1846 2 files changed, 2 insertions(+), 2 deletions(-)
1847
1848commit ce4f246600db10e77fc93d492ea045b4c9830bc6
1849Author: Jia Tan <jiat0218@gmail.com>
1850Date:   2023-03-18 22:10:57 +0800
1851
1852    Add NEWS for 5.4.2.
1853
1854 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1855 1 file changed, 48 insertions(+)
1856
1857commit 3634fe330788fc0df217acdb6581031a851600a3
1858Author: Lasse Collin <lasse.collin@tukaani.org>
1859Date:   2023-03-18 16:00:54 +0200
1860
1861    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
1862
1863 COPYING.GPLv3 | 8 ++++----
1864 1 file changed, 4 insertions(+), 4 deletions(-)
1865
1866commit 97679d25ce7cb014328f1455bb338903c003d54f
1867Author: Lasse Collin <lasse.collin@tukaani.org>
1868Date:   2023-03-18 15:51:57 +0200
1869
1870    Change a few HTTP URLs to HTTPS.
1871    
1872    The xz man page timestamp was intentionally left unchanged.
1873
1874 INSTALL                    |  2 +-
1875 README                     |  8 ++++----
1876 configure.ac               |  2 +-
1877 dos/INSTALL.txt            |  4 ++--
1878 src/liblzma/api/lzma.h     |  8 ++++----
1879 src/liblzma/check/sha256.c |  2 +-
1880 src/xz/xz.1                |  2 +-
1881 windows/INSTALL-MinGW.txt  | 10 +++++-----
1882 8 files changed, 19 insertions(+), 19 deletions(-)
1883
1884commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594
1885Author: Jia Tan <jiat0218@gmail.com>
1886Date:   2023-03-18 00:40:28 +0800
1887
1888    CMake: Fix typo in a comment.
1889
1890 CMakeLists.txt | 2 +-
1891 1 file changed, 1 insertion(+), 1 deletion(-)
1892
1893commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05
1894Author: Lasse Collin <lasse.collin@tukaani.org>
1895Date:   2023-03-17 18:36:22 +0200
1896
1897    Windows: build.bash: Copy liblzma API docs to the output package.
1898
1899 windows/build.bash | 3 ++-
1900 1 file changed, 2 insertions(+), 1 deletion(-)
1901
1902commit ae252862b30b509ab88b2bbcaa08e8d51b57e928
1903Author: Lasse Collin <lasse.collin@tukaani.org>
1904Date:   2023-03-17 08:53:38 +0200
1905
1906    Windows: Add microlzma_*.c to the VS project files.
1907    
1908    These should have been included in 5.3.2alpha already.
1909
1910 windows/vs2013/liblzma.vcxproj     | 2 ++
1911 windows/vs2013/liblzma_dll.vcxproj | 2 ++
1912 windows/vs2017/liblzma.vcxproj     | 2 ++
1913 windows/vs2017/liblzma_dll.vcxproj | 2 ++
1914 windows/vs2019/liblzma.vcxproj     | 2 ++
1915 windows/vs2019/liblzma_dll.vcxproj | 2 ++
1916 6 files changed, 12 insertions(+)
1917
1918commit 147d282cc3733e2723df82622b6540ddfb52635e
1919Author: Lasse Collin <lasse.collin@tukaani.org>
1920Date:   2023-03-17 08:43:51 +0200
1921
1922    CMake: Add microlzma_*.c to the build.
1923    
1924    These should have been included in 5.3.2alpha already.
1925
1926 CMakeLists.txt | 2 ++
1927 1 file changed, 2 insertions(+)
1928
1929commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53
1930Author: Lasse Collin <lasse.collin@tukaani.org>
1931Date:   2023-03-17 08:41:36 +0200
1932
1933    Build: Update comments about unaligned access to mention 64-bit.
1934
1935 cmake/tuklib_integer.cmake | 7 +++----
1936 m4/tuklib_integer.m4       | 4 ++--
1937 2 files changed, 5 insertions(+), 6 deletions(-)
1938
1939commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9
1940Author: Lasse Collin <lasse.collin@tukaani.org>
1941Date:   2023-03-17 00:02:30 +0200
1942
1943    Tests: Update .gitignore.
1944
1945 .gitignore | 3 ++-
1946 1 file changed, 2 insertions(+), 1 deletion(-)
1947
1948commit 5d022c24921eec938604a8cb10d70aa08dbd8575
1949Author: Lasse Collin <lasse.collin@tukaani.org>
1950Date:   2023-03-14 20:04:03 +0200
1951
1952    po4a/update-po: Display the script name consistently in error messages.
1953
1954 po4a/update-po | 2 +-
1955 1 file changed, 1 insertion(+), 1 deletion(-)
1956
1957commit 896295117324f323c0b8db6a31ad6ebfaa88793d
1958Author: Jia Tan <jiat0218@gmail.com>
1959Date:   2023-03-17 01:30:36 +0800
1960
1961    Doc: Rename Doxygen HTML doc directory name liblzma => api.
1962    
1963    When the docs are installed, calling the directory "liblzma" is
1964    confusing since multiple other files in the doc directory are for
1965    liblzma. This should also make it more natural for distros when they
1966    package the documentation.
1967
1968 .gitignore             |  2 +-
1969 Makefile.am            | 18 +++++++++---------
1970 PACKAGERS              |  4 ++--
1971 doxygen/Doxyfile       |  2 +-
1972 doxygen/update-doxygen | 18 +++++++++---------
1973 5 files changed, 22 insertions(+), 22 deletions(-)
1974
1975commit 94097157fae308b2c1a5edb4e8597c68b45eeaea
1976Author: Jia Tan <jiat0218@gmail.com>
1977Date:   2023-03-16 22:07:15 +0800
1978
1979    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
1980    
1981    This was left in by mistake since an early version of the ARM64 filter
1982    used a different struct for its options.
1983
1984 src/liblzma/api/lzma/bcj.h | 2 +-
1985 1 file changed, 1 insertion(+), 1 deletion(-)
1986
1987commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e
1988Author: Lasse Collin <lasse.collin@tukaani.org>
1989Date:   2023-03-15 19:19:13 +0200
1990
1991    COPYING: Add a note about the included Doxygen-generated HTML.
1992
1993 COPYING | 11 +++++++++++
1994 1 file changed, 11 insertions(+)
1995
1996commit e57c74f9ef19201f72c106f2c347596f40229936
1997Author: Jia Tan <jiat0218@gmail.com>
1998Date:   2023-03-16 21:41:09 +0800
1999
2000    Doc: Update PACKAGERS with details about liblzma API docs install.
2001
2002 PACKAGERS | 22 ++++++++++++++++------
2003 1 file changed, 16 insertions(+), 6 deletions(-)
2004
2005commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281
2006Author: Jia Tan <jiat0218@gmail.com>
2007Date:   2023-03-16 21:38:32 +0800
2008
2009    liblzma: Add set lzma.h as the main page for Doxygen documentation.
2010    
2011    The \mainpage command is used in the first block of comments in lzma.h.
2012    This changes the previously nearly empty index.html to use the first
2013    comment block in lzma.h for its contents.
2014    
2015    lzma.h is no longer documented separately, but this is for the better
2016    since lzma.h only defined a few macros that users do not need to use.
2017    The individual API header files all have a disclaimer that they should
2018    not be #included directly, so there should be no confusion on the fact
2019    that lzma.h should be the only header used by applications.
2020    
2021    Additionally, the note "See ../lzma.h for information about liblzma as
2022    a whole." was removed since lzma.h is now the main page of the
2023    generated HTML and does not have its own page anymore. So it would be
2024    confusing in the HTML version and was only a "nice to have" when
2025    browsing the source files.
2026
2027 src/liblzma/api/lzma.h              | 1 +
2028 src/liblzma/api/lzma/base.h         | 2 --
2029 src/liblzma/api/lzma/bcj.h          | 2 --
2030 src/liblzma/api/lzma/block.h        | 2 --
2031 src/liblzma/api/lzma/check.h        | 2 --
2032 src/liblzma/api/lzma/container.h    | 2 --
2033 src/liblzma/api/lzma/delta.h        | 2 --
2034 src/liblzma/api/lzma/filter.h       | 2 --
2035 src/liblzma/api/lzma/hardware.h     | 2 --
2036 src/liblzma/api/lzma/index.h        | 2 --
2037 src/liblzma/api/lzma/index_hash.h   | 4 +---
2038 src/liblzma/api/lzma/lzma12.h       | 2 --
2039 src/liblzma/api/lzma/stream_flags.h | 2 --
2040 src/liblzma/api/lzma/version.h      | 2 --
2041 src/liblzma/api/lzma/vli.h          | 2 --
2042 15 files changed, 2 insertions(+), 29 deletions(-)
2043
2044commit d42977c7acfdf7fd9acc8803cf411eca7dc10478
2045Author: Jia Tan <jiat0218@gmail.com>
2046Date:   2023-03-16 21:37:32 +0800
2047
2048    Build: Generate doxygen documentation in autogen.sh.
2049    
2050    Another command line option (--no-doxygen) was added to disable
2051    creating the doxygen documenation in cases where it not wanted or
2052    if the doxygen tool is not installed.
2053
2054 autogen.sh | 35 +++++++++++++++++++++++++++++------
2055 1 file changed, 29 insertions(+), 6 deletions(-)
2056
2057commit 8fc712fcf41d821069c670f22b8bf628e7a4a877
2058Author: Jia Tan <jiat0218@gmail.com>
2059Date:   2023-03-16 21:35:55 +0800
2060
2061    Build: Create doxygen/update-doxygen script.
2062    
2063    This is a helper script to generate the Doxygen documentation. It can be
2064    run in 'liblzma' or 'internal' mode by setting the first argument. It
2065    will default to 'liblzma' mode and only generate documentation for the
2066    liblzma API header files.
2067    
2068    The helper script will be run during the custom mydist hook when we
2069    create releases. This hook already alters the source directory, so its
2070    fine to do it here too. This way, we can include the Doxygen generated
2071    files in the distrubtion and when installing.
2072    
2073    In 'liblzma' mode, the JavaScript is stripped from the .html files and
2074    the .js files are removed. This avoids license hassle from jQuery and
2075    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
2076
2077 Makefile.am            |   1 +
2078 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
2079 2 files changed, 112 insertions(+)
2080
2081commit 77d2c025d19fbac7277c63239cfb1338f02c66c0
2082Author: Jia Tan <jiat0218@gmail.com>
2083Date:   2023-03-16 21:34:36 +0800
2084
2085    Build: Install Doxygen docs and include in distribution if generated.
2086    
2087    Added a install-data-local target to install the Doxygen documentation
2088    only when it has been generated. In order to correctly remove the docs,
2089    a corresponding uninstall-local target was added.
2090    
2091    If the doxygen docs exist in the source tree, they will also be included
2092    in the distribution now too.
2093
2094 Makefile.am | 18 ++++++++++++++++++
2095 1 file changed, 18 insertions(+)
2096
2097commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f
2098Author: Jia Tan <jiat0218@gmail.com>
2099Date:   2023-01-03 20:37:30 +0800
2100
2101    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
2102    
2103    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
2104    can have the tags that need to be configured piped into the doxygen
2105    command through stdin with the overrides after Doxyfile's contents.
2106    
2107    Going forward, the documentation should be generated in two different
2108    modes: liblzma or internal.
2109    
2110    liblzma is useful for most users. It is the documentation for just
2111    the liblzma API header files. This is the default.
2112    
2113    internal is for people who want to understand how xz and liblzma work.
2114    It might be useful for people who want to contribute to the project.
2115
2116 .gitignore       |    3 +-
2117 Doxyfile.in      | 1234 -------------------------
2118 Makefile.am      |    1 -
2119 configure.ac     |    1 -
2120 doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
2121 5 files changed, 2686 insertions(+), 1237 deletions(-)
2122
2123commit 1c558a26928b753fcf1c0d4bce9c0643285edd86
2124Author: Jia Tan <jiat0218@gmail.com>
2125Date:   2023-02-28 23:22:36 +0800
2126
2127    Tests: Remove unused macros and functions.
2128
2129 tests/tests.h | 75 -----------------------------------------------------------
2130 1 file changed, 75 deletions(-)
2131
2132commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0
2133Author: Jia Tan <jiat0218@gmail.com>
2134Date:   2023-01-12 22:29:07 +0800
2135
2136    Tests: Refactors existing lzma_index tests.
2137    
2138    Converts the existing lzma_index tests into tuktests and covers every
2139    API function from index.h except for lzma_file_info_decoder, which can
2140    be tested in the future.
2141
2142 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
2143 1 file changed, 1492 insertions(+), 544 deletions(-)
2144
2145commit fd56d5353360279c10e8e5e05f5bc6ea03f64584
2146Author: Lasse Collin <lasse.collin@tukaani.org>
2147Date:   2023-03-07 19:59:23 +0200
2148
2149    xz: Make Capsicum sandbox more strict with stdin and stdout.
2150
2151 src/xz/file_io.c | 8 ++++++++
2152 1 file changed, 8 insertions(+)
2153
2154commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1
2155Author: Lasse Collin <lasse.collin@tukaani.org>
2156Date:   2023-03-11 19:31:40 +0200
2157
2158    xz: Don't fail if Capsicum is enabled but kernel doesn't support it.
2159    
2160    (This commit combines related commits from the master branch.)
2161    
2162    If Capsicum support is missing from the kernel or xz is being run
2163    in an emulator that lacks Capsicum suport, the syscalls will fail
2164    and set errno to ENOSYS. Previously xz would display and error and
2165    exit, making xz unusable. Now it will check for ENOSYS and run
2166    without sandbox support. Other tools like ssh behave similarly.
2167    
2168    Displaying a warning for missing Capsicum support was considered
2169    but such extra output would quickly become annoying. It would also
2170    break test_scripts.sh in "make check".
2171    
2172    Also move cap_enter() to be the first step instead of the last one.
2173    This matches the example in the cap_rights_limit(2) man page. With
2174    the current code it shouldn't make any practical difference though.
2175    
2176    Thanks to Xin Li for the bug report, suggesting a fix, and testing:
2177    https://github.com/tukaani-project/xz/pull/43
2178    
2179    Thanks to Jia Tan for most of the original commits.
2180
2181 src/xz/file_io.c | 15 ++++++++++++---
2182 1 file changed, 12 insertions(+), 3 deletions(-)
2183
2184commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776
2185Author: Jia Tan <jiat0218@gmail.com>
2186Date:   2023-02-04 21:06:35 +0800
2187
2188    Build: Adjust CMake version search regex.
2189    
2190    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
2191    macros do not need to be on consecutive lines in version.h. They can be
2192    separated by more whitespace, comments, or even other content, as long
2193    as they appear in the proper order (major, minor, patch).
2194
2195 CMakeLists.txt | 2 ++
2196 1 file changed, 2 insertions(+)
2197
2198commit b82d4831e3f2339c4cdbc47776c99462088c11b7
2199Author: Jia Tan <jiat0218@gmail.com>
2200Date:   2023-01-26 09:50:21 +0800
2201
2202    liblzma: Improve documentation for version.h.
2203    
2204    Specified parameter and return values for API functions and documented
2205    a few more of the macros.
2206
2207 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
2208 1 file changed, 22 insertions(+), 7 deletions(-)
2209
2210commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6
2211Author: Jia Tan <jiat0218@gmail.com>
2212Date:   2023-02-24 23:46:23 +0800
2213
2214    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
2215    
2216    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
2217    usable in an encoder even if it returns false (success). If liblzma
2218    is built with default configurations, then the options will always be
2219    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
2220    the options may not be usable depending on the preset level requested.
2221    
2222    The documentation was updated to reflect this complexity, since this
2223    behavior was unclear before.
2224
2225 src/liblzma/api/lzma/lzma12.h | 5 +++++
2226 1 file changed, 5 insertions(+)
2227
2228commit 594f904673ba55a833adfa60bbab6b60d4902d08
2229Author: Lasse Collin <lasse.collin@tukaani.org>
2230Date:   2023-02-27 18:38:35 +0200
2231
2232    CMake: Require that the C compiler supports C99 or a newer standard.
2233    
2234    Thanks to autoantwort for reporting the issue and suggesting
2235    a different patch:
2236    https://github.com/tukaani-project/xz/pull/42
2237
2238 CMakeLists.txt | 8 ++++++++
2239 1 file changed, 8 insertions(+)
2240
2241commit 88101143cb774bca6b7006c8335b09dc3f334140
2242Author: Jia Tan <jiat0218@gmail.com>
2243Date:   2023-02-24 18:10:37 +0800
2244
2245    Tests: Small tweak to test-vli.c.
2246    
2247    The static global variables can be disabled if encoders and decoders
2248    are not built. If they are not disabled and -Werror is used, it will
2249    cause an usused warning as an error.
2250
2251 tests/test_vli.c | 2 ++
2252 1 file changed, 2 insertions(+)
2253
2254commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9
2255Author: Jia Tan <jiat0218@gmail.com>
2256Date:   2023-02-06 21:46:43 +0800
2257
2258    liblzma: Replace '\n' -> newline in filter.h documentation.
2259    
2260    The '\n' renders as a newline when the comments are converted to html
2261    by Doxygen.
2262
2263 src/liblzma/api/lzma/filter.h | 2 +-
2264 1 file changed, 1 insertion(+), 1 deletion(-)
2265
2266commit 3971f5c5024750ce8286891c6f79ae1661047483
2267Author: Jia Tan <jiat0218@gmail.com>
2268Date:   2023-02-06 21:45:37 +0800
2269
2270    liblzma: Shorten return description for two functions in filter.h.
2271    
2272    Shorten the description for lzma_raw_encoder_memusage() and
2273    lzma_raw_decoder_memusage().
2274
2275 src/liblzma/api/lzma/filter.h | 8 ++------
2276 1 file changed, 2 insertions(+), 6 deletions(-)
2277
2278commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242
2279Author: Jia Tan <jiat0218@gmail.com>
2280Date:   2023-02-06 21:44:45 +0800
2281
2282    liblzma: Reword a few lines in filter.h
2283
2284 src/liblzma/api/lzma/filter.h | 10 +++++-----
2285 1 file changed, 5 insertions(+), 5 deletions(-)
2286
2287commit 8a53533869defa1191b41f176a0312cb53a139e2
2288Author: Jia Tan <jiat0218@gmail.com>
2289Date:   2023-02-06 21:35:06 +0800
2290
2291    liblzma: Improve documentation in filter.h.
2292    
2293    All functions now explicitly specify parameter and return values.
2294    The notes and code annotations were moved before the parameter and
2295    return value descriptions for consistency.
2296    
2297    Also, the description above lzma_filter_encoder_is_supported() about
2298    not being able to list available filters was removed since
2299    lzma_str_list_filters() will do this.
2300
2301 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
2302 1 file changed, 143 insertions(+), 83 deletions(-)
2303
2304commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f
2305Author: Lasse Collin <lasse.collin@tukaani.org>
2306Date:   2023-02-23 20:46:16 +0200
2307
2308    Update THANKS.
2309
2310 THANKS | 1 +
2311 1 file changed, 1 insertion(+)
2312
2313commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5
2314Author: Lasse Collin <lasse.collin@tukaani.org>
2315Date:   2023-02-21 22:57:10 +0200
2316
2317    liblzma: Avoid null pointer + 0 (undefined behavior in C).
2318    
2319    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
2320    adding 0 to a null pointer is undefined behavior. As of writing,
2321    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
2322    I'm not aware of any compiler that would take advantage of this
2323    when optimizing (Clang 15 included). It's good to avoid this anyway
2324    since compilers might some day infer that pointer arithmetic implies
2325    that the pointer is not NULL. That is, the following foo() would then
2326    unconditionally return 0, even for foo(NULL, 0):
2327    
2328        void bar(char *a, char *b);
2329    
2330        int foo(char *a, size_t n)
2331        {
2332            bar(a, a + n);
2333            return a == NULL;
2334        }
2335    
2336    In contrast to C, C++ explicitly allows null pointer + 0. So if
2337    the above is compiled as C++ then there is no undefined behavior
2338    in the foo(NULL, 0) call.
2339    
2340    To me it seems that changing the C standard would be the sane
2341    thing to do (just add one sentence) as it would ensure that a huge
2342    amount of old code won't break in the future. Based on web searches
2343    it seems that a large number of codebases (where null pointer + 0
2344    occurs) are being fixed instead to be future-proof in case compilers
2345    will some day optimize based on it (like making the above foo(NULL, 0)
2346    return 0) which in the worst case will cause security bugs.
2347    
2348    Some projects don't plan to change it. For example, gnulib and thus
2349    many GNU tools currently require that null pointer + 0 is defined:
2350    
2351        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
2352    
2353        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
2354    
2355    In XZ Utils null pointer + 0 issue should be fixed after this
2356    commit. This adds a few if-statements and thus branches to avoid
2357    null pointer + 0. These check for size > 0 instead of ptr != NULL
2358    because this way bugs where size > 0 && ptr == NULL will likely
2359    get caught quickly. None of them are in hot spots so it shouldn't
2360    matter for performance.
2361    
2362    A little less readable version would be replacing
2363    
2364        ptr + offset
2365    
2366    with
2367    
2368        offset != 0 ? ptr + offset : ptr
2369    
2370    or creating a macro for it:
2371    
2372        #define my_ptr_add(ptr, offset) \
2373                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
2374    
2375    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
2376    Clang >= 7, and Clang-based ICX to optimize it to the very same code
2377    as ptr + offset. That is, it won't create a branch. So for hot code
2378    this could be a good solution to avoid null pointer + 0. Unfortunately
2379    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
2380    branch from my_ptr_add().
2381    
2382    Thanks to Marcin Kowalczyk for reporting the problem:
2383    https://github.com/tukaani-project/xz/issues/36
2384
2385 src/liblzma/common/block_decoder.c |  5 ++++-
2386 src/liblzma/common/block_encoder.c |  7 +++++--
2387 src/liblzma/common/common.c        | 20 ++++++++++++++------
2388 src/liblzma/common/index_decoder.c | 13 ++++++++++---
2389 src/liblzma/common/index_encoder.c | 11 +++++++++--
2390 src/liblzma/common/index_hash.c    | 13 ++++++++++---
2391 src/liblzma/common/lzip_decoder.c  |  6 +++++-
2392 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
2393 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
2394 src/liblzma/simple/simple_coder.c  |  6 ++++--
2395 10 files changed, 77 insertions(+), 23 deletions(-)
2396
2397commit f6dce49cb656b358e2fb2a3032e35e20af34dc84
2398Author: Jia Tan <jiat0218@gmail.com>
2399Date:   2023-02-07 00:00:44 +0800
2400
2401    liblzma: Adjust container.h for consistency with filter.h.
2402
2403 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
2404 1 file changed, 9 insertions(+), 11 deletions(-)
2405
2406commit 173d240bb4763aedc8c01df4d9c83e311d954c33
2407Author: Jia Tan <jiat0218@gmail.com>
2408Date:   2023-02-07 00:00:09 +0800
2409
2410    liblzma: Fix small typos and reword a few things in filter.h.
2411
2412 src/liblzma/api/lzma/container.h | 13 ++++++-------
2413 1 file changed, 6 insertions(+), 7 deletions(-)
2414
2415commit 17797bacde3f7264048ef0976c137a600148d6cf
2416Author: Jia Tan <jiat0218@gmail.com>
2417Date:   2023-02-06 23:42:08 +0800
2418
2419    liblzma: Convert list of flags in lzma_mt to bulleted list.
2420
2421 src/liblzma/api/lzma/container.h | 9 ++++++---
2422 1 file changed, 6 insertions(+), 3 deletions(-)
2423
2424commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b
2425Author: Jia Tan <jiat0218@gmail.com>
2426Date:   2023-01-26 23:17:41 +0800
2427
2428    liblzma: Fix typo in documentation in container.h
2429    
2430    lzma_microlzma_decoder -> lzma_microlzma_encoder
2431
2432 src/liblzma/api/lzma/container.h | 2 +-
2433 1 file changed, 1 insertion(+), 1 deletion(-)
2434
2435commit b8331077c626e6bf14f4671d09b561146eaf816a
2436Author: Jia Tan <jiat0218@gmail.com>
2437Date:   2023-01-26 23:16:34 +0800
2438
2439    liblzma: Improve documentation for container.h
2440    
2441    Standardizing each function to always specify parameters and return
2442    values. Also moved the parameters and return values to the end of each
2443    function description.
2444
2445 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
2446 1 file changed, 93 insertions(+), 53 deletions(-)
2447
2448commit b9a3511bb61d3b6ce49abd33dce6155a573f5272
2449Author: Jia Tan <jiat0218@gmail.com>
2450Date:   2023-02-22 20:59:41 +0800
2451
2452    CMake: Add LZIP decoder test to list of tests.
2453
2454 CMakeLists.txt | 1 +
2455 1 file changed, 1 insertion(+)
2456
2457commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89
2458Author: Lasse Collin <lasse.collin@tukaani.org>
2459Date:   2023-02-17 20:56:49 +0200
2460
2461    Update THANKS.
2462
2463 THANKS | 1 +
2464 1 file changed, 1 insertion(+)
2465
2466commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b
2467Author: Lasse Collin <lasse.collin@tukaani.org>
2468Date:   2023-02-17 20:48:28 +0200
2469
2470    Build: Use only the generic symbol versioning on MicroBlaze.
2471    
2472    On MicroBlaze, GCC 12 is broken in sense that
2473    __has_attribute(__symver__) returns true but it still doesn't
2474    support the __symver__ attribute even though the platform is ELF
2475    and symbol versioning is supported if using the traditional
2476    __asm__(".symver ...") method. Avoiding the traditional method is
2477    good because it breaks LTO (-flto) builds with GCC.
2478    
2479    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
2480    
2481    For now the only extra symbols in liblzma_linux.map are the
2482    compatibility symbols with the patch that spread from RHEL/CentOS 7.
2483    These require the use of __symver__ attribute or __asm__(".symver ...")
2484    in the C code. Compatibility with the patch from CentOS 7 doesn't
2485    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
2486    instead. It doesn't require anything special in the C code and thus
2487    no LTO issues either.
2488    
2489    An alternative would be to detect support for __symver__
2490    attribute in configure.ac and CMakeLists.txt and fall back
2491    to __asm__(".symver ...") but then LTO would be silently broken
2492    on MicroBlaze. It sounds likely that MicroBlaze is a special
2493    case so let's treat it as a such because that is simpler. If
2494    a similar issue exists on some other platform too then hopefully
2495    someone will report it and this can be reconsidered.
2496    
2497    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
2498    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
2499    The problem breaks the build so it's easy to notice and can be fixed
2500    later.)
2501    
2502    Thanks to Vincent Fazio for reporting the problem and proposing
2503    a patch (in the end that solution wasn't used):
2504    https://github.com/tukaani-project/xz/pull/32
2505
2506 configure.ac | 12 ++++++++++--
2507 1 file changed, 10 insertions(+), 2 deletions(-)
2508
2509commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea
2510Author: Lasse Collin <lasse.collin@tukaani.org>
2511Date:   2023-02-16 21:09:00 +0200
2512
2513    liblzma: Very minor API doc tweaks.
2514    
2515    Use "member" to refer to struct members as that's the term used
2516    by the C standard.
2517    
2518    Use lzma_options_delta.dist and such in docs so that in Doxygen's
2519    HTML output they will link to the doc of the struct member.
2520    
2521    Clean up a few trailing white spaces too.
2522
2523 src/liblzma/api/lzma/block.h        |  6 +++---
2524 src/liblzma/api/lzma/delta.h        |  6 +++---
2525 src/liblzma/api/lzma/index.h        | 10 +++++-----
2526 src/liblzma/api/lzma/stream_flags.h |  6 +++---
2527 4 files changed, 14 insertions(+), 14 deletions(-)
2528
2529commit d31fbd28be5b79eb682db50004b0fb7aad5299ec
2530Author: Jia Tan <jiat0218@gmail.com>
2531Date:   2023-02-17 00:54:33 +0800
2532
2533    liblzma: Adjust spacing in doc headers in bcj.h.
2534
2535 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
2536 1 file changed, 7 insertions(+), 7 deletions(-)
2537
2538commit 701e9be6bede19771895f756082db0c017f86f07
2539Author: Jia Tan <jiat0218@gmail.com>
2540Date:   2023-02-17 00:44:44 +0800
2541
2542    liblzma: Adjust documentation in bcj.h for consistent style.
2543
2544 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
2545 1 file changed, 22 insertions(+), 21 deletions(-)
2546
2547commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503
2548Author: Jia Tan <jiat0218@gmail.com>
2549Date:   2023-02-17 00:36:05 +0800
2550
2551    liblzma: Rename field => member in documentation.
2552    
2553    Also adjusted preset value => preset level.
2554
2555 src/liblzma/api/lzma/base.h         | 18 +++++++--------
2556 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
2557 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
2558 src/liblzma/api/lzma/delta.h        | 12 +++++-----
2559 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
2560 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
2561 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
2562 7 files changed, 95 insertions(+), 95 deletions(-)
2563
2564commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a
2565Author: Lasse Collin <lasse.collin@tukaani.org>
2566Date:   2023-02-16 17:59:50 +0200
2567
2568    liblzma: Silence a warning from MSVC.
2569    
2570    It gives C4146 here since unary minus with unsigned integer
2571    is still unsigned (which is the intention here). Doing it
2572    with substraction makes it clearer and avoids the warning.
2573    
2574    Thanks to Nathan Moinvaziri for reporting this.
2575
2576 src/liblzma/check/crc64_fast.c | 2 +-
2577 1 file changed, 1 insertion(+), 1 deletion(-)
2578
2579commit d83da006b3e8dbad9112e6cde6b27049d193c9ec
2580Author: Jia Tan <jiat0218@gmail.com>
2581Date:   2023-02-16 21:04:54 +0800
2582
2583    liblzma: Improve documentation for stream_flags.h
2584    
2585    Standardizing each function to always specify parameters and return
2586    values. Also moved the parameters and return values to the end of each
2587    function description.
2588    
2589    A few small things were reworded and long sentences broken up.
2590
2591 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
2592 1 file changed, 46 insertions(+), 30 deletions(-)
2593
2594commit 2796bb4736f645d34939b5d62d5958f534e41e69
2595Author: Jia Tan <jiat0218@gmail.com>
2596Date:   2023-02-14 21:50:16 +0800
2597
2598    liblzma: Improve documentation in lzma12.h.
2599    
2600    All functions now explicitly specify parameter and return values.
2601
2602 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
2603 1 file changed, 23 insertions(+), 9 deletions(-)
2604
2605commit ebebaa8d9381afea440eb1b01917117551adf68f
2606Author: Jia Tan <jiat0218@gmail.com>
2607Date:   2023-01-27 22:44:06 +0800
2608
2609    liblzma: Improve documentation in check.h.
2610    
2611    All functions now explicitly specify parameter and return values.
2612    Also moved the note about SHA-256 functions not being exported to the
2613    top of the file.
2614
2615 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
2616 1 file changed, 28 insertions(+), 13 deletions(-)
2617
2618commit 765fa2865aab97ea713c1715922e322b3cf599a7
2619Author: Jia Tan <jiat0218@gmail.com>
2620Date:   2023-02-08 21:33:52 +0800
2621
2622    liblzma: Improve documentation in index.h
2623    
2624    All functions now explicitly specify parameter and return values.
2625
2626 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
2627 1 file changed, 126 insertions(+), 51 deletions(-)
2628
2629commit 918e208af5960728b6def01e692b395f7d8e3701
2630Author: Jia Tan <jiat0218@gmail.com>
2631Date:   2023-02-08 20:35:32 +0800
2632
2633    liblzma: Reword a comment in index.h.
2634
2635 src/liblzma/api/lzma/index.h | 4 ++--
2636 1 file changed, 2 insertions(+), 2 deletions(-)
2637
2638commit 1f157d214bc09338876d2467b549935679abc0bf
2639Author: Jia Tan <jiat0218@gmail.com>
2640Date:   2023-02-08 20:30:23 +0800
2641
2642    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
2643    
2644    Add \private above this field and its sub-fields since it is not meant
2645    to be modified by users.
2646
2647 src/liblzma/api/lzma/index.h | 9 ++++++++-
2648 1 file changed, 8 insertions(+), 1 deletion(-)
2649
2650commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc
2651Author: Jia Tan <jiat0218@gmail.com>
2652Date:   2023-01-21 21:32:03 +0800
2653
2654    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
2655    
2656    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
2657    documentation after a member.
2658
2659 src/liblzma/api/lzma/base.h | 2 +-
2660 1 file changed, 1 insertion(+), 1 deletion(-)
2661
2662commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018
2663Author: Jia Tan <jiat0218@gmail.com>
2664Date:   2023-01-21 00:29:38 +0800
2665
2666    liblzma: Improve documentation for base.h.
2667    
2668    Standardizing each function to always specify params and return values.
2669    Also fixed a small grammar mistake.
2670
2671 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
2672 1 file changed, 25 insertions(+), 5 deletions(-)
2673
2674commit 2287d5668384e289d51e72724997dc920483768e
2675Author: Jia Tan <jiat0218@gmail.com>
2676Date:   2023-02-14 00:08:33 +0800
2677
2678    liblzma: Minor improvements to vli.h.
2679    
2680    Added [out] annotations to parameters that are pointers and can have
2681    their value changed. Also added a clarification to lzma_vli_is_valid.
2682
2683 src/liblzma/api/lzma/vli.h | 15 ++++++++-------
2684 1 file changed, 8 insertions(+), 7 deletions(-)
2685
2686commit 7124b8a16ae60cb2e93218ff531868eebd673bde
2687Author: Jia Tan <jiat0218@gmail.com>
2688Date:   2023-02-10 21:38:02 +0800
2689
2690    liblzma: Add comments for macros in delta.h.
2691    
2692    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
2693    and to avoid Doxygen warnings.
2694
2695 src/liblzma/api/lzma/delta.h | 8 ++++++++
2696 1 file changed, 8 insertions(+)
2697
2698commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81
2699Author: Jia Tan <jiat0218@gmail.com>
2700Date:   2023-02-10 21:35:23 +0800
2701
2702    liblzma: Improve documentation in index_hash.h.
2703    
2704    All functions now explicitly specify parameter and return values.
2705    Also reworded the description of lzma_index_hash_init() for readability.
2706
2707 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
2708 1 file changed, 27 insertions(+), 9 deletions(-)
2709
2710commit e970c28ac3cb2e8051925f81db2fe953664c2645
2711Author: Jia Tan <jiat0218@gmail.com>
2712Date:   2023-02-03 00:33:32 +0800
2713
2714    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
2715    
2716    The bug is only a problem in applications that do not properly terminate
2717    the filters[] array with LZMA_VLI_UNKNOWN or have more than
2718    LZMA_FILTERS_MAX filters. This bug does not affect xz.
2719
2720 src/liblzma/common/string_conversion.c | 7 +++++++
2721 1 file changed, 7 insertions(+)
2722
2723commit 85e01266a96689448abb249da6c6abc3afcd4a4e
2724Author: Jia Tan <jiat0218@gmail.com>
2725Date:   2023-02-03 00:32:47 +0800
2726
2727    Tests: Create test_filter_str.c.
2728    
2729    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
2730    lzma_str_list_filters() API functions.
2731
2732 CMakeLists.txt          |   1 +
2733 tests/Makefile.am       |   2 +
2734 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
2735 3 files changed, 596 insertions(+)
2736
2737commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a
2738Author: Jia Tan <jiat0218@gmail.com>
2739Date:   2023-01-22 08:49:00 +0800
2740
2741    liblzma: Fix typos in comments in string_conversion.c.
2742
2743 src/liblzma/common/string_conversion.c | 4 ++--
2744 1 file changed, 2 insertions(+), 2 deletions(-)
2745
2746commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e
2747Author: Jia Tan <jiat0218@gmail.com>
2748Date:   2023-02-03 00:20:20 +0800
2749
2750    liblzma: Clarify block encoder and decoder documentation.
2751    
2752    Added a few sentences to the description for lzma_block_encoder() and
2753    lzma_block_decoder() to highlight that the Block Header must be coded
2754    before calling these functions.
2755
2756 src/liblzma/api/lzma/block.h | 15 +++++++++++----
2757 1 file changed, 11 insertions(+), 4 deletions(-)
2758
2759commit ccf12acbfa7331b1bbb99ec55879186eb35f879f
2760Author: Jia Tan <jiat0218@gmail.com>
2761Date:   2023-02-03 00:12:24 +0800
2762
2763    Update lzma_block documentation for lzma_block_uncomp_encode().
2764
2765 src/liblzma/api/lzma/block.h | 3 +++
2766 1 file changed, 3 insertions(+)
2767
2768commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24
2769Author: Jia Tan <jiat0218@gmail.com>
2770Date:   2023-02-03 00:11:37 +0800
2771
2772    liblzma: Minor edits to lzma_block header_size documentation.
2773
2774 src/liblzma/api/lzma/block.h | 3 ++-
2775 1 file changed, 2 insertions(+), 1 deletion(-)
2776
2777commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883
2778Author: Jia Tan <jiat0218@gmail.com>
2779Date:   2023-02-03 00:11:07 +0800
2780
2781    liblzma: Enumerate functions that read version in lzma_block.
2782
2783 src/liblzma/api/lzma/block.h | 13 +++++++++++--
2784 1 file changed, 11 insertions(+), 2 deletions(-)
2785
2786commit d6620774682830d606f57109861b6763805b3492
2787Author: Jia Tan <jiat0218@gmail.com>
2788Date:   2023-02-03 00:10:34 +0800
2789
2790    liblzma: Clarify comment in block.h.
2791
2792 src/liblzma/api/lzma/block.h | 3 ++-
2793 1 file changed, 2 insertions(+), 1 deletion(-)
2794
2795commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1
2796Author: Jia Tan <jiat0218@gmail.com>
2797Date:   2023-02-03 00:07:23 +0800
2798
2799    liblzma: Improve documentation for block.h.
2800    
2801    Standardizing each function to always specify params and return values.
2802    Output pointer parameters are also marked with doxygen style [out] to
2803    make it clear. Any note sections were also moved above the parameter and
2804    return sections for consistency.
2805
2806 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
2807 1 file changed, 75 insertions(+), 21 deletions(-)
2808
2809commit b5b1b1f061c342271e4977ce5cba604a19c0ca52
2810Author: Jia Tan <jiat0218@gmail.com>
2811Date:   2023-02-01 23:38:30 +0800
2812
2813    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
2814    
2815    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
2816    about the treatment for filters than cannot be used with .xz format
2817    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
2818    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
2819
2820 src/liblzma/api/lzma/filter.h | 5 +++--
2821 1 file changed, 3 insertions(+), 2 deletions(-)
2822
2823commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b
2824Author: Jia Tan <jiat0218@gmail.com>
2825Date:   2023-01-27 20:14:51 +0800
2826
2827    Translations: Add Brazilian Portuguese translation of man pages.
2828    
2829    Thanks to Rafael Fontenelle.
2830
2831 po4a/po4a.conf |    2 +-
2832 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2833 2 files changed, 3678 insertions(+), 1 deletion(-)
2834
2835commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6
2836Author: Jia Tan <jiat0218@gmail.com>
2837Date:   2023-01-24 20:48:50 +0800
2838
2839    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
2840    
2841    The previous documentation for lzma_str_to_filters() was technically
2842    correct, but misleading. lzma_str_to_filters() returns NULL on success,
2843    which is in practice always defined to 0. This is the same value as
2844    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
2845    be more clear.
2846
2847 src/liblzma/api/lzma/filter.h | 2 +-
2848 1 file changed, 1 insertion(+), 1 deletion(-)
2849
2850commit 99575947a58a60416c570eb78038d18a1ea4cef4
2851Author: Jia Tan <jiat0218@gmail.com>
2852Date:   2023-01-07 21:55:06 +0800
2853
2854    xz: Refactor duplicated check for custom suffix when using --format=raw
2855
2856 src/xz/args.c   |  8 ++++++++
2857 src/xz/suffix.c | 26 ++++++++------------------
2858 src/xz/suffix.h |  8 ++++++++
2859 3 files changed, 24 insertions(+), 18 deletions(-)
2860
2861commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad
2862Author: Jia Tan <jiat0218@gmail.com>
2863Date:   2023-01-20 21:53:14 +0800
2864
2865    liblzma: Set documentation on all reserved fields to private.
2866    
2867    This prevents the reserved fields from being part of the generated
2868    Doxygen documentation.
2869
2870 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
2871 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
2872 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
2873 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
2874 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
2875 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
2876 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
2877 7 files changed, 173 insertions(+)
2878
2879commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8
2880Author: Jia Tan <jiat0218@gmail.com>
2881Date:   2022-12-21 23:59:43 +0800
2882
2883    liblzma: Highlight liblzma API headers should not be included directly.
2884    
2885    This improves the generated Doxygen HTML files to better highlight
2886    how to properly use the liblzma API header files.
2887
2888 src/liblzma/api/lzma/base.h         | 5 +++--
2889 src/liblzma/api/lzma/bcj.h          | 5 +++--
2890 src/liblzma/api/lzma/block.h        | 5 +++--
2891 src/liblzma/api/lzma/check.h        | 5 +++--
2892 src/liblzma/api/lzma/container.h    | 5 +++--
2893 src/liblzma/api/lzma/delta.h        | 5 +++--
2894 src/liblzma/api/lzma/filter.h       | 5 +++--
2895 src/liblzma/api/lzma/hardware.h     | 5 +++--
2896 src/liblzma/api/lzma/index.h        | 5 +++--
2897 src/liblzma/api/lzma/index_hash.h   | 5 +++--
2898 src/liblzma/api/lzma/lzma12.h       | 5 +++--
2899 src/liblzma/api/lzma/stream_flags.h | 5 +++--
2900 src/liblzma/api/lzma/version.h      | 5 +++--
2901 src/liblzma/api/lzma/vli.h          | 5 +++--
2902 14 files changed, 42 insertions(+), 28 deletions(-)
2903
2904commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd
2905Author: Jia Tan <jiat0218@gmail.com>
2906Date:   2023-01-19 20:35:09 +0800
2907
2908    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
2909    
2910    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
2911    to retrieve a function address. The proper way to do this is to cast the
2912    return value to the type of function pointer retrieved. Unfortunately,
2913    this causes a cast-function-type warning, so the best solution is to
2914    simply ignore the warning.
2915
2916 src/common/tuklib_physmem.c | 18 ++++++++++++++++++
2917 1 file changed, 18 insertions(+)
2918
2919commit 720ad4a44282a7ee59aa9920eaf495d85d245d97
2920Author: Jia Tan <jiat0218@gmail.com>
2921Date:   2023-01-16 21:35:45 +0800
2922
2923    xz: Add missing comment for coder_set_compression_settings()
2924
2925 src/xz/coder.h | 3 ++-
2926 1 file changed, 2 insertions(+), 1 deletion(-)
2927
2928commit 88dc19163421282369c0989e997c05f9a447edc6
2929Author: Jia Tan <jiat0218@gmail.com>
2930Date:   2023-01-16 20:55:10 +0800
2931
2932    xz: Do not set compression settings with raw format in list mode.
2933    
2934    Calling coder_set_compression_settings() in list mode with verbose mode
2935    on caused the filter chain and memory requirements to print. This was
2936    unnecessary since the command results in an error and not consistent
2937    with other formats like lzma and alone.
2938
2939 src/xz/args.c | 3 ++-
2940 1 file changed, 2 insertions(+), 1 deletion(-)
2941
2942commit 039e0ab13efb144642f9d99eeeb9c668e76bb430
2943Author: Jia Tan <jiat0218@gmail.com>
2944Date:   2023-01-13 20:37:06 +0800
2945
2946    Translations: Update the Brazilian Portuguese translation.
2947
2948 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
2949 1 file changed, 344 insertions(+), 259 deletions(-)
2950
2951commit 718f7a60e740b26b8353965edaaddc7d4deb4d85
2952Author: Lasse Collin <lasse.collin@tukaani.org>
2953Date:   2023-01-12 13:04:05 +0200
2954
2955    Build: Omit -Wmissing-noreturn from the default warnings.
2956    
2957    It's not that important. It can be annoying in builds that
2958    disable many features since in those cases the tests programs
2959    will correctly trigger this warning with Clang.
2960
2961 configure.ac | 1 -
2962 1 file changed, 1 deletion(-)
2963
2964commit 3ccedb09724c998c39d708c945f6da5852c39e13
2965Author: Lasse Collin <lasse.collin@tukaani.org>
2966Date:   2023-01-12 06:05:58 +0200
2967
2968    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
2969    
2970    It makes no difference here as the return value fits into an int
2971    too and it then gets ignored but this looks better.
2972
2973 src/xz/file_io.c | 2 +-
2974 1 file changed, 1 insertion(+), 1 deletion(-)
2975
2976commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019
2977Author: Lasse Collin <lasse.collin@tukaani.org>
2978Date:   2023-01-12 06:01:12 +0200
2979
2980    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
2981
2982 src/common/tuklib_mbstr_fw.c | 2 +-
2983 src/xz/list.c                | 4 ++--
2984 2 files changed, 3 insertions(+), 3 deletions(-)
2985
2986commit 683d3f178ef1487b5418be49f331b0131a101b40
2987Author: Lasse Collin <lasse.collin@tukaani.org>
2988Date:   2023-01-12 05:38:48 +0200
2989
2990    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
2991    
2992    It doesn't warn on a 64-bit system because truncating
2993    a ptrdiff_t (signed long) to uint32_t is diagnosed under
2994    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
2995
2996 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
2997 1 file changed, 4 insertions(+), 3 deletions(-)
2998
2999commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15
3000Author: Lasse Collin <lasse.collin@tukaani.org>
3001Date:   2023-01-12 04:46:45 +0200
3002
3003    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
3004
3005 src/common/mythread.h | 4 ++--
3006 1 file changed, 2 insertions(+), 2 deletions(-)
3007
3008commit b16b9c0d22227012518595c2222facc73bd833a8
3009Author: Lasse Collin <lasse.collin@tukaani.org>
3010Date:   2023-01-12 04:17:24 +0200
3011
3012    Build: Make configure add more warning flags for GCC and Clang.
3013    
3014    -Wstrict-aliasing was removed from the list since it is enabled
3015    by -Wall already.
3016    
3017    A normal build is clean with these on GNU/Linux x86-64 with
3018    GCC 12.2.0 and Clang 14.0.6.
3019
3020 configure.ac | 36 +++++++++++++++++++++++++++++++-----
3021 1 file changed, 31 insertions(+), 5 deletions(-)
3022
3023commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94
3024Author: Lasse Collin <lasse.collin@tukaani.org>
3025Date:   2023-01-12 04:14:18 +0200
3026
3027    Tests: Fix warnings from clang --Wassign-enum.
3028    
3029    Explicitly casting the integer to lzma_check silences the warning.
3030    Since such an invalid value is needed in multiple tests, a constant
3031    INVALID_LZMA_CHECK_ID was added to tests.h.
3032    
3033    The use of 0x1000 for lzma_block.check wasn't optimal as if
3034    the underlying type is a char then 0x1000 will be truncated to 0.
3035    However, in these test cases the value is ignored, thus even with
3036    such truncation the test would have passed.
3037
3038 tests/test_block_header.c | 6 +++---
3039 tests/test_check.c        | 2 +-
3040 tests/test_stream_flags.c | 8 ++++----
3041 tests/tests.h             | 9 +++++++++
3042 4 files changed, 17 insertions(+), 8 deletions(-)
3043
3044commit 34e13ce015232968731de2a9ec3440a08b0084b1
3045Author: Lasse Collin <lasse.collin@tukaani.org>
3046Date:   2023-01-12 03:51:07 +0200
3047
3048    Tests: Silence warnings from -Wsign-conversion.
3049    
3050    Note that assigning an unsigned int to lzma_check doesn't warn
3051    on GNU/Linux x86-64 since the enum type is unsigned on that
3052    platform. The enum can be signed on some other platform though
3053    so it's best to use enumeration type lzma_check in these situations.
3054
3055 tests/test_check.c        |  6 +++---
3056 tests/test_stream_flags.c | 10 +++++-----
3057 2 files changed, 8 insertions(+), 8 deletions(-)
3058
3059commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a
3060Author: Lasse Collin <lasse.collin@tukaani.org>
3061Date:   2023-01-12 03:19:59 +0200
3062
3063    liblzma: Silence warnings from clang -Wconditional-uninitialized.
3064    
3065    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
3066    The actual initialization of the variables is done inside
3067    mythread_sync() macro. Clang doesn't seem to see that
3068    the initialization code inside the macro is always executed.
3069
3070 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
3071 src/liblzma/common/stream_encoder_mt.c | 2 +-
3072 2 files changed, 6 insertions(+), 4 deletions(-)
3073
3074commit d3e833ca1d2abda54648494c33aca73a40a47efe
3075Author: Lasse Collin <lasse.collin@tukaani.org>
3076Date:   2023-01-12 03:11:40 +0200
3077
3078    Fix warnings from clang -Wdocumentation.
3079
3080 src/liblzma/check/check.h      | 4 ----
3081 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
3082 src/xz/options.c               | 4 ++--
3083 3 files changed, 4 insertions(+), 8 deletions(-)
3084
3085commit 977dd2e26bc50efec8d30fb90380394042d24558
3086Author: Lasse Collin <lasse.collin@tukaani.org>
3087Date:   2023-01-12 03:04:28 +0200
3088
3089    Tests: test_lzip_decoder: Remove trailing white-space.
3090
3091 tests/test_lzip_decoder.c | 4 ++--
3092 1 file changed, 2 insertions(+), 2 deletions(-)
3093
3094commit c55157ed7437ab14f2afb7fecf331e321f2edf9a
3095Author: Lasse Collin <lasse.collin@tukaani.org>
3096Date:   2023-01-12 03:03:55 +0200
3097
3098    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
3099
3100 tests/test_lzip_decoder.c | 13 +++++++------
3101 1 file changed, 7 insertions(+), 6 deletions(-)
3102
3103commit 18b845e69752c975dfeda418ec00eda22605c2ee
3104Author: Lasse Collin <lasse.collin@tukaani.org>
3105Date:   2023-01-11 18:52:54 +0200
3106
3107    Bump version and soname for 5.4.1.
3108
3109 src/liblzma/Makefile.am        | 2 +-
3110 src/liblzma/api/lzma/version.h | 2 +-
3111 2 files changed, 2 insertions(+), 2 deletions(-)
3112
3113commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
3114Author: Jia Tan <jiat0218@gmail.com>
3115Date:   2023-01-11 23:58:16 +0800
3116
3117    Add NEWS for 5.4.1.
3118
3119 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3120 1 file changed, 70 insertions(+)
3121
3122commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
3123Author: Lasse Collin <lasse.collin@tukaani.org>
3124Date:   2023-01-10 11:56:11 +0200
3125
3126    sysdefs.h: Don't include strings.h anymore.
3127    
3128    On some platforms src/xz/suffix.c may need <strings.h> for
3129    strcasecmp() but suffix.c includes the header when it needs it.
3130    
3131    Unless there is an old system that otherwise supports enough C99
3132    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
3133    there should be no need to include <strings.h> in sysdefs.h.
3134
3135 src/common/sysdefs.h | 6 ------
3136 1 file changed, 6 deletions(-)
3137
3138commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
3139Author: Lasse Collin <lasse.collin@tukaani.org>
3140Date:   2023-01-10 11:23:41 +0200
3141
3142    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
3143    
3144    SUSv2 and POSIX.1���2017 declare only a few functions in <strings.h>.
3145    Of these, strcasecmp() is used on some platforms in suffix.c.
3146    Nothing else in the project needs <strings.h> (at least if
3147    building on a modern system).
3148    
3149    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
3150    defined and suffix.c relied on this.
3151    
3152    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
3153    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
3154    is also in <string.h> in DJGPP.
3155
3156 src/xz/suffix.c | 3 +++
3157 1 file changed, 3 insertions(+)
3158
3159commit aea639e81beb548e3114c74b6d9a894d6e036189
3160Author: Jia Tan <jiat0218@gmail.com>
3161Date:   2023-01-11 22:46:48 +0800
3162
3163    xz: Fix warning -Wformat-nonliteral on clang in message.c.
3164    
3165    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
3166    allow a non-literal format string as long as the function takes its
3167    format arguments as a va_list.
3168
3169 src/xz/message.c | 9 +++++++++
3170 1 file changed, 9 insertions(+)
3171
3172commit e3b42bfcb0f67988beee7c7022fed0361282be45
3173Author: Jia Tan <jiat0218@gmail.com>
3174Date:   2023-01-11 20:58:31 +0800
3175
3176    Tests: Fix test_filter_flags copy/paste error.
3177
3178 tests/test_filter_flags.c | 4 ++--
3179 1 file changed, 2 insertions(+), 2 deletions(-)
3180
3181commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
3182Author: Jia Tan <jiat0218@gmail.com>
3183Date:   2023-01-11 20:42:29 +0800
3184
3185    Tests: Fix type-limits warning in test_filter_flags.
3186    
3187    This only occurs in test_filter_flags when the BCJ filters are not
3188    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
3189    type-limits warning with the loop variable since an unsigned number will
3190    always be >= 0.
3191
3192 tests/test_filter_flags.c | 13 ++++++++++---
3193 1 file changed, 10 insertions(+), 3 deletions(-)
3194
3195commit c337983e928682d56ce3470b286a8d5b8646e0ad
3196Author: Lasse Collin <lasse.collin@tukaani.org>
3197Date:   2023-01-10 22:14:03 +0200
3198
3199    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
3200    
3201    This affects only 32-bit x86 builds. x86-64 is OK as is.
3202    
3203    I still cannot easily test this myself. The reporter has tested
3204    this and it passes the tests included in the CMake build and
3205    performance is good: raw CRC64 is 2-3 times faster than the
3206    C version of the slice-by-four method. (Note that liblzma doesn't
3207    include a MSVC-compatible version of the 32-bit x86 assembly code
3208    for the slice-by-four method.)
3209    
3210    Thanks to Iouri Kharon for figuring out a fix, testing, and
3211    benchmarking.
3212
3213 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
3214 1 file changed, 18 insertions(+)
3215
3216commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
3217Author: Jia Tan <jiat0218@gmail.com>
3218Date:   2023-01-11 01:18:50 +0800
3219
3220    Tests: Fix unused function warning in test_block_header.
3221    
3222    One of the global arrays of filters was only used in a test that
3223    required both encoders and decoders to be configured in the build.
3224
3225 tests/test_block_header.c | 4 ++++
3226 1 file changed, 4 insertions(+)
3227
3228commit 68e9ef036d18d7c3952bff0b391d5989b86934da
3229Author: Jia Tan <jiat0218@gmail.com>
3230Date:   2023-01-11 01:08:03 +0800
3231
3232    Tests: Fix unused function warning in test_index_hash.
3233    
3234    test_index_hash does not use fill_index_hash() unless both encoders
3235    and decoders are configured in the build.
3236
3237 tests/test_index_hash.c | 4 +---
3238 1 file changed, 1 insertion(+), 3 deletions(-)
3239
3240commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
3241Author: Lasse Collin <lasse.collin@tukaani.org>
3242Date:   2023-01-10 00:33:14 +0200
3243
3244    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
3245
3246 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
3247 1 file changed, 12 insertions(+), 7 deletions(-)
3248
3249commit 52902ad69518255a14b0144f0a2379e06fde5b6e
3250Author: Lasse Collin <lasse.collin@tukaani.org>
3251Date:   2023-01-10 12:47:16 +0200
3252
3253    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
3254    
3255    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
3256    
3257    It was reported that it wasn't a good enough fix and MSVC
3258    still produced (different kind of) bad code when building
3259    for 32-bit x86 if optimizations are enabled.
3260    
3261    Thanks to Iouri Kharon.
3262
3263 src/liblzma/check/crc64_fast.c | 6 ------
3264 1 file changed, 6 deletions(-)
3265
3266commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
3267Author: Lasse Collin <lasse.collin@tukaani.org>
3268Date:   2023-01-10 10:05:13 +0200
3269
3270    sysdefs.h: Fix a comment.
3271
3272 src/common/sysdefs.h | 2 +-
3273 1 file changed, 1 insertion(+), 1 deletion(-)
3274
3275commit 6e89ab58b031aa046308a0b3504ff0a5be042571
3276Author: Lasse Collin <lasse.collin@tukaani.org>
3277Date:   2023-01-10 10:04:06 +0200
3278
3279    sysdefs.h: Don't include memory.h anymore even if it were available.
3280    
3281    It quite probably was never needed, that is, any system where memory.h
3282    was required likely couldn't compile XZ Utils for other reasons anyway.
3283    
3284    XZ Utils 5.2.6 and later source packages were generated using
3285    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
3286    being removed is no longer used anyway.
3287
3288 src/common/sysdefs.h | 8 ++------
3289 1 file changed, 2 insertions(+), 6 deletions(-)
3290
3291commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
3292Author: Lasse Collin <lasse.collin@tukaani.org>
3293Date:   2023-01-10 08:50:26 +0200
3294
3295    CMake/Windows: Add a workaround for windres from GNU binutils.
3296    
3297    This is combined from the following commits in the master branch:
3298    443dfebced041adc88f10d824188eeef5b5821a9
3299    6b117d3b1fe91eb26d533ab16a2e552f84148d47
3300    5e34774c31d1b7509b5cb77a3be9973adec59ea0
3301    
3302    Thanks to Iouri Kharon for the bug report, the original patch,
3303    and testing.
3304
3305 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
3306 1 file changed, 31 insertions(+), 1 deletion(-)
3307
3308commit 43521e77acc907863fa4f94aae276366172cb9ee
3309Author: Lasse Collin <lasse.collin@tukaani.org>
3310Date:   2023-01-06 22:53:38 +0200
3311
3312    Tests: test_filter_flags: Clean up minor issues.
3313    
3314    Here are the list of the most significant issues addressed:
3315    - Avoid using internal common.h header. It's not good to copy the
3316    constants like this but common.h cannot be included for use outside
3317    of liblzma. This is the quickest thing to do that could be fixed later.
3318    
3319    - Omit the INIT_FILTER macro. Initialization should be done with just
3320    regular designated initializers.
3321    
3322    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
3323    Flags encoder and decoder don't validate the options thoroughly.
3324    257 is valid only for the x86 filter. This is a bit silly but
3325    not a significant problem in practice because the encoder and
3326    decoder initialization functions will catch bad alignment still.
3327    Perhaps this should be fixed but it's not urgent and doesn't need
3328    to be in 5.4.x.
3329    
3330    - Various tweaks to comments such as filter id -> Filter ID
3331
3332 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
3333 1 file changed, 78 insertions(+), 75 deletions(-)
3334
3335commit 6b44cead95d767414272dc3a67898a36bfdf95b3
3336Author: Jia Tan <jiat0218@gmail.com>
3337Date:   2022-12-29 23:33:33 +0800
3338
3339    Tests: Refactors existing filter flags tests.
3340    
3341    Converts the existing filter flags tests into tuktests.
3342
3343 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
3344 1 file changed, 457 insertions(+), 198 deletions(-)
3345
3346commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
3347Author: Lasse Collin <lasse.collin@tukaani.org>
3348Date:   2023-01-08 00:32:29 +0200
3349
3350    Tests: tuktest.h: Support tuktest_malloc(0).
3351    
3352    It's not needed in XZ Utils at least for now. It's good to support
3353    it still because if such use is needed later, it wouldn't be
3354    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
3355
3356 tests/tuktest.h | 4 ++--
3357 1 file changed, 2 insertions(+), 2 deletions(-)
3358
3359commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
3360Author: Lasse Collin <lasse.collin@tukaani.org>
3361Date:   2023-01-07 21:57:11 +0200
3362
3363    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
3364    
3365    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
3366    shouldn't affect this project.
3367
3368 CMakeLists.txt | 2 +-
3369 1 file changed, 1 insertion(+), 1 deletion(-)
3370
3371commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
3372Author: Lasse Collin <lasse.collin@tukaani.org>
3373Date:   2023-01-08 00:24:23 +0200
3374
3375    Update THANKS.
3376
3377 THANKS | 1 +
3378 1 file changed, 1 insertion(+)
3379
3380commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
3381Author: Lasse Collin <lasse.collin@tukaani.org>
3382Date:   2023-01-07 19:50:35 +0200
3383
3384    Update THANKS.
3385
3386 THANKS | 1 +
3387 1 file changed, 1 insertion(+)
3388
3389commit 3d45987451b1c3bb42697b29341824c0e5484cba
3390Author: Lasse Collin <lasse.collin@tukaani.org>
3391Date:   2023-01-09 11:27:24 +0200
3392
3393    CMake: Fix a copypaste error in xzdec Windows resource file handling.
3394    
3395    It was my mistake. Thanks to Iouri Kharon for the bug report.
3396
3397 CMakeLists.txt | 4 ++--
3398 1 file changed, 2 insertions(+), 2 deletions(-)
3399
3400commit 706bce5018d7cf83094e13454a0731169ec119b5
3401Author: Lasse Collin <lasse.collin@tukaani.org>
3402Date:   2023-01-07 19:50:03 +0200
3403
3404    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
3405    
3406    The command line tools cannot be built with MSVC for now but
3407    they can be built with MinGW-w64.
3408    
3409    Thanks to Iouri Kharon for the bug report and the original patch.
3410
3411 CMakeLists.txt | 16 ++++++++++++++++
3412 1 file changed, 16 insertions(+)
3413
3414commit e96dee55df04113c33b387ccdb6cb70935422d91
3415Author: Lasse Collin <lasse.collin@tukaani.org>
3416Date:   2023-01-09 12:22:05 +0200
3417
3418    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
3419    
3420    I haven't tested with MSVC myself and there doesn't seem to be
3421    information about the problem online, so I'm relying on the bug report.
3422    
3423    Thanks to Iouri Kharon for the bug report and the patch.
3424
3425 src/liblzma/check/crc64_fast.c | 6 ++++++
3426 1 file changed, 6 insertions(+)
3427
3428commit 52bc1ee34dda9bb6fb40175e5952863066681b77
3429Author: Lasse Collin <lasse.collin@tukaani.org>
3430Date:   2023-01-07 19:31:15 +0200
3431
3432    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
3433    
3434    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
3435    disabled with VS2013.
3436    
3437    Thanks to Iouri Kharon for the bug report.
3438
3439 CMakeLists.txt | 3 ++-
3440 configure.ac   | 8 ++++++--
3441 2 files changed, 8 insertions(+), 3 deletions(-)
3442
3443commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
3444Author: Jia Tan <jiat0218@gmail.com>
3445Date:   2022-12-29 00:25:18 +0800
3446
3447    Tests: Creates test_index_hash.c
3448    
3449    Tests all API functions exported from index_hash.h. Does not have a
3450    dedicated test for lzma_index_hash_end.
3451    
3452    [Minor edits were made by Lasse Collin.]
3453
3454 .gitignore              |   1 +
3455 CMakeLists.txt          |   2 +
3456 tests/Makefile.am       |   3 +
3457 tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
3458 4 files changed, 394 insertions(+)
3459
3460commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
3461Author: Jia Tan <jiat0218@gmail.com>
3462Date:   2023-01-05 20:57:25 +0800
3463
3464    liblzma: Remove common.h include from common/index.h.
3465    
3466    common/index.h is needed by liblzma internally and tests. common.h will
3467    include and define many things that are not needed by the tests.
3468    
3469    Also, this prevents include order problems because both common.h and
3470    lzma.h define LZMA_API. On most platforms it results only in a warning
3471    but on Windows it would break the build as the definition in common.h
3472    must be used only for building liblzma itself.
3473
3474 src/liblzma/common/index.c                 | 1 +
3475 src/liblzma/common/index.h                 | 9 +++++++--
3476 src/liblzma/common/index_decoder.h         | 1 +
3477 src/liblzma/common/stream_buffer_encoder.c | 1 +
3478 4 files changed, 10 insertions(+), 2 deletions(-)
3479
3480commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
3481Author: Jia Tan <jiat0218@gmail.com>
3482Date:   2022-08-17 20:20:16 +0800
3483
3484    liblzma: Add NULL check to lzma_index_hash_append.
3485    
3486    This is for consistency with lzma_index_append.
3487
3488 src/liblzma/common/index_hash.c | 2 +-
3489 1 file changed, 1 insertion(+), 1 deletion(-)
3490
3491commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
3492Author: Jia Tan <jiat0218@gmail.com>
3493Date:   2022-08-17 17:59:51 +0800
3494
3495    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
3496
3497 src/liblzma/common/index.h             | 3 +++
3498 src/liblzma/common/index_decoder.c     | 2 +-
3499 src/liblzma/common/index_encoder.c     | 2 +-
3500 src/liblzma/common/index_hash.c        | 2 +-
3501 src/liblzma/common/stream_decoder.c    | 3 ++-
3502 src/liblzma/common/stream_decoder_mt.c | 2 +-
3503 6 files changed, 9 insertions(+), 5 deletions(-)
3504
3505commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
3506Author: Jia Tan <jiat0218@gmail.com>
3507Date:   2023-01-06 20:43:31 +0800
3508
3509    Style: Change #if !defined() to #ifndef in mythread.h.
3510
3511 src/common/mythread.h | 2 +-
3512 1 file changed, 1 insertion(+), 1 deletion(-)
3513
3514commit 3f0130aa288e4ed57ace609517db9700a41223af
3515Author: Jia Tan <jiat0218@gmail.com>
3516Date:   2023-01-06 20:35:55 +0800
3517
3518    Build: Add missing stream_decoder_mt.c to .vcxproj files.
3519    
3520    The line in the .vcxproj files for building with was missing in 5.4.0.
3521    Thank to Hajin Jang for reporting the issue.
3522
3523 windows/vs2013/liblzma.vcxproj     | 1 +
3524 windows/vs2013/liblzma_dll.vcxproj | 1 +
3525 windows/vs2017/liblzma.vcxproj     | 1 +
3526 windows/vs2017/liblzma_dll.vcxproj | 1 +
3527 windows/vs2019/liblzma.vcxproj     | 1 +
3528 windows/vs2019/liblzma_dll.vcxproj | 1 +
3529 6 files changed, 6 insertions(+)
3530
3531commit f204d1050a515d17851eed9049862ce5a9c729c1
3532Author: Lasse Collin <lasse.collin@tukaani.org>
3533Date:   2023-01-04 22:40:54 +0200
3534
3535    Update THANKS.
3536
3537 THANKS | 1 +
3538 1 file changed, 1 insertion(+)
3539
3540commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
3541Author: Lasse Collin <lasse.collin@tukaani.org>
3542Date:   2023-01-04 18:40:28 +0200
3543
3544    Tests: Adjust style in test_compress.sh.
3545
3546 tests/test_compress.sh | 12 +++++++-----
3547 1 file changed, 7 insertions(+), 5 deletions(-)
3548
3549commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
3550Author: Jia Tan <jiat0218@gmail.com>
3551Date:   2023-01-04 23:58:58 +0800
3552
3553    Tests: Replace non portable shell parameter expansion
3554    
3555    The shell parameter expansion using # and ## is not supported in
3556    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
3557    portable, so we should avoid it.
3558
3559 tests/create_compress_files.c          |  2 +-
3560 tests/test_compress.sh                 | 20 +++++++++++++-------
3561 tests/test_compress_prepared_bcj_sparc |  2 +-
3562 tests/test_compress_prepared_bcj_x86   |  2 +-
3563 4 files changed, 16 insertions(+), 10 deletions(-)
3564
3565commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
3566Author: Jia Tan <jiat0218@gmail.com>
3567Date:   2023-01-03 21:02:38 +0800
3568
3569    Translations: Add Korean translation of man pages.
3570    
3571    Thanks to Seong-ho Cho
3572
3573 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3574 po4a/po4a.conf |    2 +-
3575 2 files changed, 5553 insertions(+), 1 deletion(-)
3576
3577commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
3578Author: Jia Tan <jiat0218@gmail.com>
3579Date:   2023-01-03 20:47:27 +0800
3580
3581    Translations: Update the Esperanto translation.
3582
3583 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
3584 1 file changed, 332 insertions(+), 288 deletions(-)
3585
3586commit bfba3394aed03311fe9a746d3141b2e16d8b9325
3587Author: Lasse Collin <lasse.collin@tukaani.org>
3588Date:   2023-01-02 17:05:07 +0200
3589
3590    Build: Fix config.h comments.
3591
3592 configure.ac          | 2 +-
3593 m4/tuklib_progname.m4 | 2 +-
3594 2 files changed, 2 insertions(+), 2 deletions(-)
3595
3596commit 507648ad114c2ae0cd6d181063e1ac07e8106718
3597Author: Jia Tan <jiat0218@gmail.com>
3598Date:   2023-01-02 22:33:48 +0800
3599
3600    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
3601    
3602    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
3603    HAVE_PROGRAM_INVOCATION_NAME. Previously,
3604    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
3605    building with autotools. CMake would only set this when it was 1, and the
3606    dos/config.h did not define it. The new macro definition is consistent
3607    across build systems.
3608
3609 cmake/tuklib_progname.cmake  | 5 ++---
3610 m4/tuklib_progname.m4        | 5 ++++-
3611 src/common/tuklib_progname.c | 2 +-
3612 src/common/tuklib_progname.h | 2 +-
3613 4 files changed, 8 insertions(+), 6 deletions(-)
3614
3615commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
3616Author: Lasse Collin <lasse.collin@tukaani.org>
3617Date:   2022-12-30 20:10:08 +0200
3618
3619    Tests: test_check: Test corner cases of CLMUL CRC64.
3620
3621 tests/test_check.c | 27 +++++++++++++++++++++++++++
3622 1 file changed, 27 insertions(+)
3623
3624commit 8791826f31733fda0a13b411c2ed930faaeb25aa
3625Author: Lasse Collin <lasse.collin@tukaani.org>
3626Date:   2022-12-30 19:36:49 +0200
3627
3628    Tests: Clarify a comment in test_lzip_decoder.c.
3629
3630 tests/test_lzip_decoder.c | 8 ++++++--
3631 1 file changed, 6 insertions(+), 2 deletions(-)
3632
3633commit c410d812ea12bfc74f6b727c1a799478c79f19ca
3634Author: Jia Tan <jiat0218@gmail.com>
3635Date:   2022-12-29 01:55:19 +0800
3636
3637    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
3638    
3639    Previously, mytime.c depended on mythread.h for <time.h> to be included.
3640
3641 src/xz/mytime.c | 4 +++-
3642 1 file changed, 3 insertions(+), 1 deletion(-)
3643
3644commit 501c6013d4a59fae5d4368e9657c4885493db809
3645Author: Jia Tan <jiat0218@gmail.com>
3646Date:   2022-12-29 01:15:27 +0800
3647
3648    liblzma: Includes sys/time.h conditionally in mythread
3649    
3650    Previously, <sys/time.h> was always included, even if mythread only used
3651    clock_gettime. <time.h> is still needed even if clock_gettime is not used
3652    though because struct timespec is needed for mythread_condtime.
3653
3654 src/common/mythread.h | 8 +++++++-
3655 1 file changed, 7 insertions(+), 1 deletion(-)
3656
3657commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
3658Author: Jia Tan <jiat0218@gmail.com>
3659Date:   2022-12-29 01:10:53 +0800
3660
3661    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
3662    
3663    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
3664    be set to 0 or 1. However, this macro was needed in xz so if xz was not
3665    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
3666    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
3667    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
3668    will only be set if it is 1.
3669
3670 CMakeLists.txt        | 8 +++-----
3671 configure.ac          | 5 ++++-
3672 src/common/mythread.h | 4 ++--
3673 src/xz/mytime.c       | 5 ++---
3674 4 files changed, 11 insertions(+), 11 deletions(-)
3675
3676commit 6fc3e5467911572fa9af4021ea46396261aae796
3677Author: Jia Tan <jiat0218@gmail.com>
3678Date:   2022-12-28 01:14:07 +0800
3679
3680    Translations: Add Ukrainian translations of man pages.
3681    
3682    Thanks to Yuri Chornoivan
3683
3684 po4a/po4a.conf |    2 +-
3685 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3686 2 files changed, 3677 insertions(+), 1 deletion(-)
3687
3688commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
3689Author: Jia Tan <jiat0218@gmail.com>
3690Date:   2022-12-22 23:14:53 +0800
3691
3692    liblzma: Update documentation for lzma_filter_encoder.
3693
3694 src/liblzma/common/filter_encoder.c | 7 +++++--
3695 1 file changed, 5 insertions(+), 2 deletions(-)
3696
3697commit b14b8dbba9a3b232787ae218b46430b9246383dd
3698Author: Jia Tan <jiat0218@gmail.com>
3699Date:   2022-12-21 21:12:03 +0800
3700
3701    Tests: Adds lzip decoder tests
3702
3703 .gitignore                |   1 +
3704 tests/Makefile.am         |   2 +
3705 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
3706 3 files changed, 474 insertions(+)
3707
3708commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
3709Author: Jia Cheong Tan <jiat0218@gmail.com>
3710Date:   2022-12-20 22:05:21 +0800
3711
3712    Doxygen: Update .gitignore for generating docs for in source build.
3713    
3714    In source builds are not recommended, but we should still ignore
3715    the generated artifacts.
3716
3717 .gitignore | 2 ++
3718 1 file changed, 2 insertions(+)
3719
3720commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
3721Author: Jia Tan <jiat0218@gmail.com>
3722Date:   2022-12-20 20:46:44 +0800
3723
3724    liblzma: Fix lzma_microlzma_encoder() return value.
3725    
3726    Using return_if_error on lzma_lzma_lclppb_encode was improper because
3727    return_if_error is expecting an lzma_ret value, but
3728    lzma_lzma_lclppb_encode returns a boolean. This could result in
3729    lzma_microlzma_encoder, which would be misleading for applications.
3730
3731 src/liblzma/common/microlzma_encoder.c | 3 ++-
3732 1 file changed, 2 insertions(+), 1 deletion(-)
3733
3734commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
3735Author: Lasse Collin <lasse.collin@tukaani.org>
3736Date:   2022-12-16 18:30:02 +0200
3737
3738    liblzma: Update authors list in arm64.c.
3739
3740 src/liblzma/simple/arm64.c | 1 +
3741 1 file changed, 1 insertion(+)
3742
3743commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
3744Author: Jia Tan <jiat0218@gmail.com>
3745Date:   2022-12-16 20:58:55 +0800
3746
3747    CMake: Update .gitignore for CMake artifacts from in source build.
3748    
3749    In source builds are not recommended, but we can make it easier
3750    by ignoring the generated artifacts from CMake.
3751
3752 .gitignore | 23 +++++++++++++++++++++++
3753 1 file changed, 23 insertions(+)
3754
3755commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
3756Author: Lasse Collin <lasse.collin@tukaani.org>
3757Date:   2022-12-13 20:37:17 +0200
3758
3759    Bump version to 5.4.0 and soname to 5.4.0.
3760
3761 src/liblzma/Makefile.am         | 2 +-
3762 src/liblzma/api/lzma/version.h  | 6 +++---
3763 src/liblzma/liblzma_generic.map | 2 +-
3764 src/liblzma/liblzma_linux.map   | 2 +-
3765 4 files changed, 6 insertions(+), 6 deletions(-)
3766
3767commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
3768Author: Lasse Collin <lasse.collin@tukaani.org>
3769Date:   2022-12-13 20:29:39 +0200
3770
3771    Update INSTALL: CMake on Windows isn't experimental anymore.
3772    
3773    Using CMake to build liblzma should work on a few other OSes
3774    but building the command line tools is still subtly broken.
3775    
3776    It is known that shared library versioning may differ between
3777    CMake and Libtool builds on some OSes, most notably Darwin.
3778
3779 INSTALL | 10 ++++------
3780 1 file changed, 4 insertions(+), 6 deletions(-)
3781
3782commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
3783Author: Lasse Collin <lasse.collin@tukaani.org>
3784Date:   2022-12-13 19:47:53 +0200
3785
3786    Add NEWS for 5.4.0.
3787
3788 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3789 1 file changed, 202 insertions(+)
3790
3791commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
3792Author: Lasse Collin <lasse.collin@tukaani.org>
3793Date:   2022-12-13 17:41:20 +0200
3794
3795    Fix a typo in NEWS.
3796
3797 NEWS | 2 +-
3798 1 file changed, 1 insertion(+), 1 deletion(-)
3799
3800commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
3801Author: Lasse Collin <lasse.collin@tukaani.org>
3802Date:   2022-12-13 17:41:03 +0200
3803
3804    Add NEWS for 5.2.10.
3805
3806 NEWS | 12 ++++++++++++
3807 1 file changed, 12 insertions(+)
3808
3809commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
3810Author: Lasse Collin <lasse.collin@tukaani.org>
3811Date:   2022-12-13 12:30:45 +0200
3812
3813    Tests: Fix a typo in tests/files/README.
3814
3815 tests/files/README | 2 +-
3816 1 file changed, 1 insertion(+), 1 deletion(-)
3817
3818commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
3819Author: Lasse Collin <lasse.collin@tukaani.org>
3820Date:   2022-12-13 12:30:09 +0200
3821
3822    Tests: Add two ARM64 test files.
3823
3824 tests/files/README                  |   7 +++++++
3825 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes
3826 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes
3827 tests/test_files.sh                 |   5 +++++
3828 4 files changed, 12 insertions(+)
3829
3830commit f5e419550619c548c7c35d7e367cf00580a56521
3831Author: Lasse Collin <lasse.collin@tukaani.org>
3832Date:   2022-12-12 22:44:21 +0200
3833
3834    Translations: Update the Catalan translation.
3835
3836 po/ca.po | 657 +++++++++++++++++++++++++++++----------------------------------
3837 1 file changed, 306 insertions(+), 351 deletions(-)
3838
3839commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
3840Author: Lasse Collin <lasse.collin@tukaani.org>
3841Date:   2022-12-12 19:18:12 +0200
3842
3843    Update THANKS.
3844
3845 THANKS | 1 +
3846 1 file changed, 1 insertion(+)
3847
3848commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
3849Author: Lasse Collin <lasse.collin@tukaani.org>
3850Date:   2022-12-12 19:07:58 +0200
3851
3852    Update AUTHORS.
3853
3854 AUTHORS | 12 ++++++++++++
3855 1 file changed, 12 insertions(+)
3856
3857commit f2d98e691099d82054d5f3071ef6f5e809932e44
3858Author: Lasse Collin <lasse.collin@tukaani.org>
3859Date:   2022-12-12 15:31:14 +0200
3860
3861    Docs: Omit multi-threaded decompress from TODO.
3862    
3863    The TODO file outdated still.
3864
3865 TODO | 2 --
3866 1 file changed, 2 deletions(-)
3867
3868commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
3869Author: Lasse Collin <lasse.collin@tukaani.org>
3870Date:   2022-12-11 21:16:09 +0200
3871
3872    Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
3873
3874 doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
3875 1 file changed, 22 insertions(+), 7 deletions(-)
3876
3877commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
3878Author: Lasse Collin <lasse.collin@tukaani.org>
3879Date:   2022-12-11 21:13:57 +0200
3880
3881    xz: Rename --experimental-arm64 to --arm64.
3882
3883 src/xz/args.c | 2 +-
3884 1 file changed, 1 insertion(+), 1 deletion(-)
3885
3886commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
3887Author: Lasse Collin <lasse.collin@tukaani.org>
3888Date:   2022-12-11 21:13:06 +0200
3889
3890    liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
3891
3892 src/liblzma/api/lzma/bcj.h | 6 +-----
3893 1 file changed, 1 insertion(+), 5 deletions(-)
3894
3895commit 01b3549e523edac899ec4925b282ceddd20da116
3896Author: Lasse Collin <lasse.collin@tukaani.org>
3897Date:   2022-12-08 19:24:22 +0200
3898
3899    xz: Make args_info.files_name a const pointer.
3900
3901 src/xz/args.c | 2 +-
3902 src/xz/args.h | 2 +-
3903 2 files changed, 2 insertions(+), 2 deletions(-)
3904
3905commit bc665b84ea6bf7946394a08122177efe41b26a5f
3906Author: Lasse Collin <lasse.collin@tukaani.org>
3907Date:   2022-12-08 19:18:16 +0200
3908
3909    xz: Don't modify argv[].
3910    
3911    The code that parses --memlimit options and --block-list modified
3912    the argv[] when parsing the option string from optarg. This was
3913    visible in "ps auxf" and such and could be confusing. I didn't
3914    understand it back in the day when I wrote that code. Now a copy
3915    is allocated when modifiable strings are needed.
3916
3917 src/xz/args.c | 23 +++++++++++++++++++----
3918 1 file changed, 19 insertions(+), 4 deletions(-)
3919
3920commit a13064e1c290de7933db72b6dffbd65cfce59c9f
3921Author: Lasse Collin <lasse.collin@tukaani.org>
3922Date:   2022-12-08 18:18:57 +0200
3923
3924    Translations: Update the German man page translations.
3925
3926 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------
3927 1 file changed, 1374 insertions(+), 3196 deletions(-)
3928
3929commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
3930Author: Jia Tan <jiat0218@gmail.com>
3931Date:   2022-12-06 23:05:56 +0800
3932
3933    Translations: Update the German translation.
3934
3935 po/de.po | 586 ++++++++++++++++++++++++++++++++++-----------------------------
3936 1 file changed, 315 insertions(+), 271 deletions(-)
3937
3938commit 5c304b57c24ef40ff57f864301065f0244c05bde
3939Author: Jia Tan <jiat0218@gmail.com>
3940Date:   2022-12-06 23:04:25 +0800
3941
3942    Translations: Update the Turkish translation.
3943
3944 po/tr.po | 221 +++++++++++++++++++++++++++++++--------------------------------
3945 1 file changed, 108 insertions(+), 113 deletions(-)
3946
3947commit 6d86781fdb937970486500447ebb49b98244235b
3948Author: Jia Tan <jiat0218@gmail.com>
3949Date:   2022-12-06 23:02:11 +0800
3950
3951    Translations: Update the Croatian translation.
3952
3953 po/hr.po | 228 +++++++++++++++++++++++++++++++--------------------------------
3954 1 file changed, 113 insertions(+), 115 deletions(-)
3955
3956commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
3957Author: Jia Tan <jiat0218@gmail.com>
3958Date:   2022-12-06 22:56:30 +0800
3959
3960    Translations: Add Romanian translation of man pages.
3961    
3962    Thanks to Remus-Gabriel Chelu.
3963
3964 po4a/po4a.conf |    2 +-
3965 po4a/ro.po     | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3966 2 files changed, 3693 insertions(+), 1 deletion(-)
3967
3968commit c6977e7400088177556e8771bcb839eb7d90caa3
3969Author: Jia Tan <jiat0218@gmail.com>
3970Date:   2022-12-06 22:52:13 +0800
3971
3972    Translations: Update the Romanian translation.
3973
3974 po/ro.po | 294 +++++++++++++++++++++++++++++++--------------------------------
3975 1 file changed, 147 insertions(+), 147 deletions(-)
3976
3977commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
3978Author: Lasse Collin <lasse.collin@tukaani.org>
3979Date:   2022-12-08 17:30:09 +0200
3980
3981    liblzma: Check for unexpected NULL pointers in block_header_decode().
3982    
3983    The API docs gave an impression that such checks are done
3984    but they actually weren't done. In practice it made little
3985    difference since the calling code has a bug if these are NULL.
3986    
3987    Thanks to Jia Tan for the original patch that checked for
3988    block->filters == NULL.
3989
3990 src/liblzma/common/block_header_decoder.c | 4 ++++
3991 1 file changed, 4 insertions(+)
3992
3993commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
3994Author: Lasse Collin <lasse.collin@tukaani.org>
3995Date:   2022-12-01 20:59:32 +0200
3996
3997    Bump version number for 5.3.5beta.
3998    
3999    This also sorts the symbol names alphabetically in liblzma_*.map.
4000
4001 src/liblzma/api/lzma/version.h  |  4 ++--
4002 src/liblzma/liblzma_generic.map | 10 +++++-----
4003 src/liblzma/liblzma_linux.map   | 10 +++++-----
4004 3 files changed, 12 insertions(+), 12 deletions(-)
4005
4006commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
4007Author: Lasse Collin <lasse.collin@tukaani.org>
4008Date:   2022-12-01 20:57:26 +0200
4009
4010    Add NEWS for 5.3.5beta.
4011
4012 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
4013 1 file changed, 43 insertions(+)
4014
4015commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
4016Author: Lasse Collin <lasse.collin@tukaani.org>
4017Date:   2022-12-01 20:57:09 +0200
4018
4019    Update THANKS.
4020
4021 THANKS | 3 +++
4022 1 file changed, 3 insertions(+)
4023
4024commit 62b270988ec67314d69976df484d2974c6eacfda
4025Author: Lasse Collin <lasse.collin@tukaani.org>
4026Date:   2022-12-01 20:04:17 +0200
4027
4028    liblzma: Use __has_attribute(__symver__) to fix Clang detection.
4029    
4030    If someone sets up Clang to define __GNUC__ to 10 or greater
4031    then symvers broke. __has_attribute is supported by such GCC
4032    and Clang versions that don't support __symver__ so this should
4033    be much better and simpler way to detect if __symver__ is
4034    actually supported.
4035    
4036    Thanks to Tomasz Gajc for the bug report.
4037
4038 src/liblzma/common/common.h | 15 ++++++++++++++-
4039 1 file changed, 14 insertions(+), 1 deletion(-)
4040
4041commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
4042Author: Lasse Collin <lasse.collin@tukaani.org>
4043Date:   2022-12-01 18:51:52 +0200
4044
4045    liblzma: Omit zero-skipping from ARM64 filter.
4046    
4047    It has some complicated downsides and its usefulness is more limited
4048    than I originally thought. So this change is bad for certain very
4049    specific situations but a generic solution that works for other
4050    filters (and is otherwise better too) is planned anyway. And this
4051    way 7-Zip can use the same compatible filter for the .7z format.
4052    
4053    This is still marked as experimental with a new temporary Filter ID.
4054
4055 src/liblzma/api/lzma/bcj.h |  2 +-
4056 src/liblzma/simple/arm64.c | 81 +++++++++++++---------------------------------
4057 2 files changed, 24 insertions(+), 59 deletions(-)
4058
4059commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
4060Author: Lasse Collin <lasse.collin@tukaani.org>
4061Date:   2022-12-01 18:13:27 +0200
4062
4063    xz: Omit the special notes about ARM64 filter on the man page.
4064
4065 src/xz/xz.1 | 5 ++---
4066 1 file changed, 2 insertions(+), 3 deletions(-)
4067
4068commit 0c3627b51862eb0dcdd4fc283d046250571991c6
4069Author: Lasse Collin <lasse.collin@tukaani.org>
4070Date:   2022-12-01 18:12:03 +0200
4071
4072    liblzma: Don't be over-specific in lzma_str_to_filters API doc.
4073
4074 src/liblzma/api/lzma/filter.h | 3 +--
4075 1 file changed, 1 insertion(+), 2 deletions(-)
4076
4077commit 94adf057f27b1970f493dc99cd166407d7255639
4078Author: Lasse Collin <lasse.collin@tukaani.org>
4079Date:   2022-12-01 17:54:23 +0200
4080
4081    liblzma: Silence unused variable warning when BCJ filters are disabled.
4082    
4083    Thanks to Jia Tan for the original patch.
4084
4085 src/liblzma/common/string_conversion.c | 15 +++++++++++++++
4086 1 file changed, 15 insertions(+)
4087
4088commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
4089Author: Lasse Collin <lasse.collin@tukaani.org>
4090Date:   2022-12-01 17:38:03 +0200
4091
4092    Translations: Update the Chinese (simplified) translation.
4093
4094 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++--------------------------
4095 1 file changed, 348 insertions(+), 260 deletions(-)
4096
4097commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
4098Author: Lasse Collin <lasse.collin@tukaani.org>
4099Date:   2022-11-30 18:55:03 +0200
4100
4101    Add NEWS for 5.2.9.
4102
4103 NEWS | 34 ++++++++++++++++++++++++++++++++++
4104 1 file changed, 34 insertions(+)
4105
4106commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
4107Author: Jia Tan <jiat0218@gmail.com>
4108Date:   2022-11-30 23:33:08 +0800
4109
4110    xz: Remove message_filters_to_str function prototype from message.h.
4111    
4112    This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b.
4113
4114 src/xz/message.h | 16 ----------------
4115 1 file changed, 16 deletions(-)
4116
4117commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
4118Author: Lasse Collin <lasse.collin@tukaani.org>
4119Date:   2022-11-30 18:08:34 +0200
4120
4121    Change the bug report address.
4122    
4123    It forwards to me and Jia Tan.
4124    
4125    Also update the IRC reference in README as #tukaani was moved
4126    to Libera Chat long ago.
4127
4128 CMakeLists.txt             |  2 +-
4129 README                     | 11 +++++------
4130 configure.ac               |  2 +-
4131 dos/config.h               |  2 +-
4132 windows/README-Windows.txt |  2 +-
4133 5 files changed, 9 insertions(+), 10 deletions(-)
4134
4135commit c21983c76031e01da01ad3c6cc716fe4b8a75070
4136Author: Lasse Collin <lasse.collin@tukaani.org>
4137Date:   2022-11-30 17:50:17 +0200
4138
4139    Build: Add string_conversion.c to CMake, DOS, and VS files.
4140
4141 CMakeLists.txt                     | 1 +
4142 dos/Makefile                       | 1 +
4143 windows/vs2013/liblzma.vcxproj     | 1 +
4144 windows/vs2013/liblzma_dll.vcxproj | 1 +
4145 windows/vs2017/liblzma.vcxproj     | 1 +
4146 windows/vs2017/liblzma_dll.vcxproj | 1 +
4147 windows/vs2019/liblzma.vcxproj     | 1 +
4148 windows/vs2019/liblzma_dll.vcxproj | 1 +
4149 8 files changed, 8 insertions(+)
4150
4151commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
4152Author: Lasse Collin <lasse.collin@tukaani.org>
4153Date:   2022-11-30 17:38:32 +0200
4154
4155    Update to HTTPS URLs in AUTHORS.
4156
4157 AUTHORS | 6 +++---
4158 1 file changed, 3 insertions(+), 3 deletions(-)
4159
4160commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
4161Author: Jia Tan <jiat0218@gmail.com>
4162Date:   2022-11-30 00:52:06 +0800
4163
4164    liblzma: Improve documentation for string to filter functions.
4165
4166 src/liblzma/api/lzma/filter.h | 17 +++++++++--------
4167 1 file changed, 9 insertions(+), 8 deletions(-)
4168
4169commit a6e21fcede3b196160a52dd294d965c508a4bb33
4170Author: Lasse Collin <lasse.collin@tukaani.org>
4171Date:   2022-11-29 22:27:42 +0200
4172
4173    liblzma: Two fixes to lzma_str_list_filters() API docs.
4174    
4175    Thanks to Jia Tan.
4176
4177 src/liblzma/api/lzma/filter.h | 6 +++---
4178 1 file changed, 3 insertions(+), 3 deletions(-)
4179
4180commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
4181Author: Lasse Collin <lasse.collin@tukaani.org>
4182Date:   2022-11-28 21:57:47 +0200
4183
4184    xz: Use lzma_str_from_filters().
4185    
4186    Two uses: Displaying encoder filter chain when compressing with -vv,
4187    and displaying the decoder filter chain in --list -vv.
4188
4189 src/xz/list.c    |  28 ++++++---
4190 src/xz/message.c | 175 +++----------------------------------------------------
4191 2 files changed, 28 insertions(+), 175 deletions(-)
4192
4193commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
4194Author: Lasse Collin <lasse.collin@tukaani.org>
4195Date:   2022-11-28 21:37:48 +0200
4196
4197    liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters.
4198    
4199    lzma_str_to_filters() uses static error messages which makes
4200    them not very precise. It tells the position in the string
4201    where an error occurred though which helps quite a bit if
4202    applications take advantage of it. Dynamic error messages can
4203    be added later with a new flag if it seems important enough.
4204
4205 src/liblzma/api/lzma/filter.h          |  258 +++++++
4206 src/liblzma/common/Makefile.inc        |    1 +
4207 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++
4208 src/liblzma/liblzma_generic.map        |    3 +
4209 src/liblzma/liblzma_linux.map          |    3 +
4210 5 files changed, 1567 insertions(+)
4211
4212commit 072ebf7b1335421193ffa9d4a70d5533786b8995
4213Author: Lasse Collin <lasse.collin@tukaani.org>
4214Date:   2022-11-28 21:02:19 +0200
4215
4216    liblzma: Make lzma_validate_chain() available outside filter_common.c.
4217
4218 src/liblzma/common/filter_common.c | 8 ++++----
4219 src/liblzma/common/filter_common.h | 3 +++
4220 2 files changed, 7 insertions(+), 4 deletions(-)
4221
4222commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
4223Author: Lasse Collin <lasse.collin@tukaani.org>
4224Date:   2022-11-28 10:51:03 +0200
4225
4226    liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused.
4227
4228 src/liblzma/lz/lz_decoder.c | 14 --------------
4229 src/liblzma/lz/lz_decoder.h |  3 ---
4230 2 files changed, 17 deletions(-)
4231
4232commit cee83206465b95729ab649aa2f57fdbde8dcaf89
4233Author: Lasse Collin <lasse.collin@tukaani.org>
4234Date:   2022-11-28 10:48:53 +0200
4235
4236    liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder().
4237    
4238    Here too this avoids the slightly ugly method to set
4239    the uncompressed size.
4240    
4241    Also moved the setting of dict_size to the struct initializer.
4242
4243 src/liblzma/common/microlzma_decoder.c | 15 ++++++++-------
4244 1 file changed, 8 insertions(+), 7 deletions(-)
4245
4246commit e310e8b6a490dfb468f4ed68feff246d776b323c
4247Author: Lasse Collin <lasse.collin@tukaani.org>
4248Date:   2022-11-28 10:28:20 +0200
4249
4250    liblzma: Use LZMA1EXT feature in lzma_alone_decoder().
4251    
4252    This avoids the need to use the slightly ugly method to
4253    set the uncompressed size.
4254
4255 src/liblzma/common/alone_decoder.c | 18 +++++++++++++-----
4256 1 file changed, 13 insertions(+), 5 deletions(-)
4257
4258commit 33b8a24b6646a9dbfd8358405aec466b13078559
4259Author: Lasse Collin <lasse.collin@tukaani.org>
4260Date:   2022-11-27 23:16:21 +0200
4261
4262    liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker.
4263    
4264    Some file formats need support for LZMA1 streams that don't use
4265    the end of payload marker (EOPM) alias end of stream (EOS) marker.
4266    So far liblzma API has supported decompressing such streams via
4267    lzma_alone_decoder() when .lzma header specifies a known
4268    uncompressed size. Encoding support hasn't been available in the API.
4269    
4270    Instead of adding a new LZMA1-only API for this purpose, this commit
4271    adds a new filter ID for use with raw encoder and decoder. The main
4272    benefit of this approach is that then also filter chains are possible,
4273    for example, if someone wants to implement support for .7z files that
4274    use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported
4275    in liblzma).
4276
4277 src/liblzma/api/lzma/lzma12.h           | 123 ++++++++++++++++++++++++++++++--
4278 src/liblzma/common/filter_common.c      |   7 ++
4279 src/liblzma/common/filter_decoder.c     |   6 ++
4280 src/liblzma/common/filter_encoder.c     |   9 +++
4281 src/liblzma/lzma/lzma2_encoder.c        |   2 +-
4282 src/liblzma/lzma/lzma_decoder.c         |  26 ++++++-
4283 src/liblzma/lzma/lzma_encoder.c         |  40 +++++++++--
4284 src/liblzma/lzma/lzma_encoder.h         |   3 +-
4285 src/liblzma/lzma/lzma_encoder_private.h |   3 +
4286 9 files changed, 204 insertions(+), 15 deletions(-)
4287
4288commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
4289Author: Lasse Collin <lasse.collin@tukaani.org>
4290Date:   2022-11-27 18:43:07 +0200
4291
4292    liblzma: Avoid unneeded use of void pointer in LZMA decoder.
4293
4294 src/liblzma/lzma/lzma_decoder.c | 3 +--
4295 src/liblzma/lzma/lzma_decoder.h | 2 +-
4296 2 files changed, 2 insertions(+), 3 deletions(-)
4297
4298commit 218394958c7683f892275bb40eae880620feebcc
4299Author: Lasse Collin <lasse.collin@tukaani.org>
4300Date:   2022-11-27 18:20:33 +0200
4301
4302    liblzma: Pass the Filter ID to LZ encoder and decoder.
4303    
4304    This allows using two Filter IDs with the same
4305    initialization function and data structures.
4306
4307 src/liblzma/common/alone_decoder.c     | 1 +
4308 src/liblzma/common/alone_encoder.c     | 1 +
4309 src/liblzma/common/common.h            | 7 +++++--
4310 src/liblzma/common/lzip_decoder.c      | 1 +
4311 src/liblzma/common/microlzma_decoder.c | 1 +
4312 src/liblzma/common/microlzma_encoder.c | 1 +
4313 src/liblzma/lz/lz_decoder.c            | 5 +++--
4314 src/liblzma/lz/lz_decoder.h            | 3 ++-
4315 src/liblzma/lz/lz_encoder.c            | 5 +++--
4316 src/liblzma/lz/lz_encoder.h            | 3 ++-
4317 src/liblzma/lzma/lzma2_decoder.c       | 3 ++-
4318 src/liblzma/lzma/lzma2_encoder.c       | 3 ++-
4319 src/liblzma/lzma/lzma_decoder.c        | 2 +-
4320 src/liblzma/lzma/lzma_encoder.c        | 2 +-
4321 14 files changed, 26 insertions(+), 12 deletions(-)
4322
4323commit 1663c7676b76f4c514031797f3db1896e8100f7f
4324Author: Lasse Collin <lasse.collin@tukaani.org>
4325Date:   2022-11-27 01:03:16 +0200
4326
4327    liblzma: Remove two FIXME comments.
4328
4329 src/liblzma/common/filter_encoder.c | 4 ++--
4330 1 file changed, 2 insertions(+), 2 deletions(-)
4331
4332commit 11fe708db783ac36ebeeb85da164e29e8c300910
4333Author: Lasse Collin <lasse.collin@tukaani.org>
4334Date:   2022-11-26 22:25:30 +0200
4335
4336    xz: Use lzma_filters_free().
4337
4338 src/xz/list.c | 8 ++------
4339 1 file changed, 2 insertions(+), 6 deletions(-)
4340
4341commit e782af9110d8499c7ac2929bc871540eefea5ea1
4342Author: Lasse Collin <lasse.collin@tukaani.org>
4343Date:   2022-11-26 22:21:13 +0200
4344
4345    liblzma: Use lzma_filters_free() in more places.
4346
4347 src/liblzma/common/block_header_decoder.c | 20 ++------------------
4348 src/liblzma/common/stream_decoder.c       |  4 +---
4349 src/liblzma/common/stream_decoder_mt.c    | 22 +++++-----------------
4350 3 files changed, 8 insertions(+), 38 deletions(-)
4351
4352commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
4353Author: Lasse Collin <lasse.collin@tukaani.org>
4354Date:   2022-11-25 18:04:37 +0200
4355
4356    liblzma: Omit simple coder init functions if they are disabled.
4357
4358 src/liblzma/simple/arm.c      | 4 ++++
4359 src/liblzma/simple/armthumb.c | 4 ++++
4360 src/liblzma/simple/ia64.c     | 4 ++++
4361 src/liblzma/simple/powerpc.c  | 4 ++++
4362 src/liblzma/simple/sparc.c    | 4 ++++
4363 src/liblzma/simple/x86.c      | 4 ++++
4364 6 files changed, 24 insertions(+)
4365
4366commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
4367Author: Lasse Collin <lasse.collin@tukaani.org>
4368Date:   2022-11-24 23:24:59 +0200
4369
4370    xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
4371    
4372    Now that liblzma accepts these, we avoid the extra check and
4373    there's one message less for translators too.
4374
4375 src/xz/options.c | 5 -----
4376 1 file changed, 5 deletions(-)
4377
4378commit 3be88ae071371caa279b44e13f4836fb178fe4ae
4379Author: Lasse Collin <lasse.collin@tukaani.org>
4380Date:   2022-11-24 23:23:55 +0200
4381
4382    liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
4383    
4384    That is, if the specified nice_len is smaller than the minimum
4385    of the match finder, silently use the match finder's minimum value
4386    instead of reporting an error. The old behavior is annoying to users
4387    and it complicates xz options handling too.
4388
4389 src/liblzma/lz/lz_encoder.c     | 14 +++++++++-----
4390 src/liblzma/lz/lz_encoder.h     |  9 +++++++++
4391 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++---
4392 3 files changed, 26 insertions(+), 8 deletions(-)
4393
4394commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
4395Author: Lasse Collin <lasse.collin@tukaani.org>
4396Date:   2022-11-24 16:25:10 +0200
4397
4398    liblzma: Add lzma_filters_update() support to the multi-threaded encoder.
4399    
4400    A tiny downside of this is that now a 1-4 tiny allocations are made
4401    for every Block because each worker thread needs its own copy of
4402    the filter chain.
4403
4404 src/liblzma/api/lzma/filter.h          | 36 +++++++------
4405 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++---
4406 2 files changed, 109 insertions(+), 23 deletions(-)
4407
4408commit 17ac51e689794eb41cab3e80946fec689caea2d2
4409Author: Lasse Collin <lasse.collin@tukaani.org>
4410Date:   2022-11-24 14:53:22 +0200
4411
4412    Update THANKS.
4413
4414 THANKS | 1 +
4415 1 file changed, 1 insertion(+)
4416
4417commit 06824396b2b6c84f3a235cb7c19c2a9701167797
4418Author: Lasse Collin <lasse.collin@tukaani.org>
4419Date:   2022-11-24 14:52:44 +0200
4420
4421    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
4422    
4423    It not only makes no sense to put symbol versions into a static library
4424    but it can also cause breakage.
4425    
4426    By default Libtool #defines PIC if building a shared library and
4427    doesn't define it for static libraries. This is documented in the
4428    Libtool manual. It can be overriden using --with-pic or --without-pic.
4429    configure.ac detects if --with-pic or --without-pic is used and then
4430    gives an error if neither --disable-shared nor --disable-static was
4431    used at the same time. Thus, in normal situations it works to build
4432    both shared and static library at the same time on GNU/Linux,
4433    only --with-pic or --without-pic requires that only one type of
4434    library is built.
4435    
4436    Thanks to John Paul Adrian Glaubitz from Debian for reporting
4437    the problem that occurred on ia64:
4438    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
4439
4440 CMakeLists.txt              |   5 +-
4441 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
4442 src/liblzma/common/common.h |  12 ++++
4443 3 files changed, 111 insertions(+), 49 deletions(-)
4444
4445commit e1acf7107291f8b3d6d609a7133331ff36d35d14
4446Author: Lasse Collin <lasse.collin@tukaani.org>
4447Date:   2022-11-24 01:32:16 +0200
4448
4449    liblzma: Refactor to use lzma_filters_free().
4450    
4451    lzma_filters_free() sets the options to NULL and ids to
4452    LZMA_VLI_UNKNOWN so there is no need to do it by caller;
4453    the filter arrays will always be left in a safe state.
4454    
4455    Also use memcpy() instead of a loop to copy a filter chain
4456    when it is known to be safe to copy LZMA_FILTERS_MAX + 1
4457    (even if the elements past the terminator might be uninitialized).
4458
4459 src/liblzma/common/stream_encoder.c    | 16 ++++------------
4460 src/liblzma/common/stream_encoder_mt.c | 11 ++---------
4461 2 files changed, 6 insertions(+), 21 deletions(-)
4462
4463commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
4464Author: Lasse Collin <lasse.collin@tukaani.org>
4465Date:   2022-11-24 01:26:37 +0200
4466
4467    liblzma: Fix another invalid free() after memory allocation failure.
4468    
4469    This time it can happen when lzma_stream_encoder_mt() is used
4470    to reinitialize an existing multi-threaded Stream encoder
4471    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
4472    
4473    It's very similar to the previous bug
4474    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
4475    an array of lzma_filter structures whose old options are freed
4476    but the replacement never arrives due to a memory allocation
4477    failure in lzma_filters_copy().
4478
4479 src/liblzma/common/stream_encoder_mt.c | 4 ++++
4480 1 file changed, 4 insertions(+)
4481
4482commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
4483Author: Jia Tan <jiat0218@gmail.com>
4484Date:   2022-05-05 20:53:42 +0800
4485
4486    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
4487    
4488    The documentation mentions that lzma_block_encoder() supports
4489    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
4490    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
4491    not be used with the Block encoder unless it was the next coder
4492    after something like stream_encoder() or stream_encoder_mt().
4493
4494 src/liblzma/common/block_encoder.c | 1 +
4495 1 file changed, 1 insertion(+)
4496
4497commit d0901645170b638c517f5c50866b6ef48f491c65
4498Author: Lasse Collin <lasse.collin@tukaani.org>
4499Date:   2022-11-24 01:02:50 +0200
4500
4501    liblzma: Add new API function lzma_filters_free().
4502    
4503    This is small but convenient and should have been added
4504    a long time ago.
4505
4506 src/liblzma/api/lzma/filter.h      | 21 +++++++++++++++++++++
4507 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++
4508 src/liblzma/liblzma_generic.map    |  1 +
4509 src/liblzma/liblzma_linux.map      |  1 +
4510 4 files changed, 49 insertions(+)
4511
4512commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
4513Author: Lasse Collin <lasse.collin@tukaani.org>
4514Date:   2022-11-24 00:02:31 +0200
4515
4516    CMake: Don't use symbol versioning with static library.
4517
4518 CMakeLists.txt | 10 +++++++---
4519 1 file changed, 7 insertions(+), 3 deletions(-)
4520
4521commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
4522Author: Lasse Collin <lasse.collin@tukaani.org>
4523Date:   2022-11-23 21:55:22 +0200
4524
4525    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().
4526
4527 src/liblzma/api/lzma/filter.h | 3 ++-
4528 1 file changed, 2 insertions(+), 1 deletion(-)
4529
4530commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
4531Author: Lasse Collin <lasse.collin@tukaani.org>
4532Date:   2022-11-23 21:26:21 +0200
4533
4534    liblzma: Fix invalid free() after memory allocation failure.
4535    
4536    The bug was in the single-threaded .xz Stream encoder
4537    in the code that is used for both re-initialization and for
4538    lzma_filters_update(). To trigger it, an application had
4539    to either re-initialize an existing encoder instance with
4540    lzma_stream_encoder() or use lzma_filters_update(), and
4541    then one of the 1-4 tiny allocations in lzma_filters_copy()
4542    (called from stream_encoder_update()) must fail. An error
4543    was correctly reported but the encoder state was corrupted.
4544    
4545    This is related to the recent fix in
4546    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
4547    it wasn't enough to fix the main problem in stream_encoder.c.
4548
4549 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
4550 1 file changed, 31 insertions(+), 8 deletions(-)
4551
4552commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
4553Author: Lasse Collin <lasse.collin@tukaani.org>
4554Date:   2022-11-22 16:37:15 +0200
4555
4556    liblzma: Fix language in a comment.
4557
4558 src/liblzma/common/stream_encoder.c | 2 +-
4559 1 file changed, 1 insertion(+), 1 deletion(-)
4560
4561commit c392bf8ccba857baaf50399c4b460119befacd54
4562Author: Lasse Collin <lasse.collin@tukaani.org>
4563Date:   2022-11-22 11:20:17 +0200
4564
4565    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
4566    
4567    The encoder doesn't support dictionary sizes larger than 1536 MiB.
4568    This is validated, for example, when calculating the memory usage
4569    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
4570    part of the encoder initialization. However, LZMA encoder with
4571    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
4572    such validation and that results in an infinite loop if dict_size
4573    was 2 << 30 or greater.
4574
4575 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
4576 1 file changed, 15 insertions(+), 4 deletions(-)
4577
4578commit f50534c973a591ccf65485adfc827a8a7126ca6c
4579Author: Lasse Collin <lasse.collin@tukaani.org>
4580Date:   2022-11-21 13:02:33 +0200
4581
4582    liblzma: Fix two Doxygen commands in the API headers.
4583    
4584    These were caught by clang -Wdocumentation.
4585
4586 src/liblzma/api/lzma/hardware.h   | 2 +-
4587 src/liblzma/api/lzma/index_hash.h | 2 +-
4588 2 files changed, 2 insertions(+), 2 deletions(-)
4589
4590commit 649d4872ed2f55196114a061d45b416fc4353569
4591Author: Lasse Collin <lasse.collin@tukaani.org>
4592Date:   2022-11-19 19:09:55 +0200
4593
4594    xz: Refactor duplicate code from hardware_memlimit_mtenc_get().
4595
4596 src/xz/hardware.c | 2 +-
4597 1 file changed, 1 insertion(+), 1 deletion(-)
4598
4599commit d327743bb547a53364e5951a16e5f1663fe4b9ff
4600Author: Lasse Collin <lasse.collin@tukaani.org>
4601Date:   2022-11-19 19:06:13 +0200
4602
4603    xz: Add support --threads=+N so that -T+1 gives threaded mode.
4604
4605 src/xz/args.c     | 18 +++++++++++++++---
4606 src/xz/hardware.c | 17 +++++++++++++++--
4607 src/xz/hardware.h |  1 +
4608 src/xz/xz.1       | 21 ++++++++++++++++++++-
4609 4 files changed, 51 insertions(+), 6 deletions(-)
4610
4611commit a11a2b8b5e830ba682c1d81aaa7078842b296995
4612Author: Jia Tan <jiat0218@gmail.com>
4613Date:   2022-11-19 23:18:04 +0800
4614
4615    CMake: Adds test_memlimit to CMake tests
4616
4617 CMakeLists.txt | 1 +
4618 1 file changed, 1 insertion(+)
4619
4620commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
4621Author: Lasse Collin <lasse.collin@tukaani.org>
4622Date:   2022-11-15 19:10:21 +0200
4623
4624    Translations: Update the Korean translation.
4625
4626 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++---------------------------
4627 1 file changed, 371 insertions(+), 281 deletions(-)
4628
4629commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
4630Author: Lasse Collin <lasse.collin@tukaani.org>
4631Date:   2022-11-15 19:09:28 +0200
4632
4633    Translations: Update the Turkish translation.
4634
4635 po/tr.po | 568 ++++++++++++++++++++++++++++++++++-----------------------------
4636 1 file changed, 310 insertions(+), 258 deletions(-)
4637
4638commit b9a67d9a5fa207062d4aa8a01639234609315d31
4639Author: Lasse Collin <lasse.collin@tukaani.org>
4640Date:   2022-11-15 10:58:39 +0200
4641
4642    Bump version number for 5.3.4alpha.
4643
4644 src/liblzma/api/lzma/version.h  | 2 +-
4645 src/liblzma/liblzma_generic.map | 2 +-
4646 src/liblzma/liblzma_linux.map   | 2 +-
4647 3 files changed, 3 insertions(+), 3 deletions(-)
4648
4649commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
4650Author: Lasse Collin <lasse.collin@tukaani.org>
4651Date:   2022-11-15 10:54:40 +0200
4652
4653    Add NEWS for 5.3.4alpha.
4654
4655 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4656 1 file changed, 96 insertions(+)
4657
4658commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
4659Author: Lasse Collin <lasse.collin@tukaani.org>
4660Date:   2022-11-15 10:54:08 +0200
4661
4662    Add NEWS for 5.2.8.
4663
4664 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4665 1 file changed, 79 insertions(+)
4666
4667commit b56bc8251d2736224af6bdaaae734ceb8926a879
4668Author: Lasse Collin <lasse.collin@tukaani.org>
4669Date:   2022-11-14 23:19:57 +0200
4670
4671    Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options."
4672    
4673    This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
4674    and also does equivalent change to arm64.c.
4675    
4676    Now that ARM64 filter will use lzma_options_bcj, this change
4677    is not needed anymore.
4678
4679 src/liblzma/simple/arm.c            | 2 +-
4680 src/liblzma/simple/arm64.c          | 2 +-
4681 src/liblzma/simple/armthumb.c       | 2 +-
4682 src/liblzma/simple/ia64.c           | 2 +-
4683 src/liblzma/simple/powerpc.c        | 2 +-
4684 src/liblzma/simple/simple_coder.c   | 4 ++--
4685 src/liblzma/simple/simple_private.h | 2 +-
4686 src/liblzma/simple/sparc.c          | 2 +-
4687 src/liblzma/simple/x86.c            | 3 +--
4688 9 files changed, 10 insertions(+), 11 deletions(-)
4689
4690commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
4691Author: Lasse Collin <lasse.collin@tukaani.org>
4692Date:   2022-11-14 23:14:41 +0200
4693
4694    Replace the experimental ARM64 filter with a new experimental version.
4695    
4696    This is incompatible with the previous version.
4697    
4698    This has space/tab fixes in filter_*.c and bcj.h too.
4699
4700 src/liblzma/api/lzma/bcj.h          |  41 +-----
4701 src/liblzma/common/filter_common.c  |  14 +-
4702 src/liblzma/common/filter_decoder.c |  12 +-
4703 src/liblzma/common/filter_encoder.c |  17 +--
4704 src/liblzma/simple/arm64.c          | 283 ++++++++++++++----------------------
4705 src/liblzma/simple/simple_decoder.h |   4 -
4706 src/liblzma/simple/simple_encoder.h |   2 -
4707 src/xz/args.c                       |   2 +-
4708 src/xz/message.c                    |  13 +-
4709 src/xz/options.c                    |  39 -----
4710 src/xz/options.h                    |   7 -
4711 11 files changed, 147 insertions(+), 287 deletions(-)
4712
4713commit f644473a211394447824ea00518d0a214ff3f7f2
4714Author: Lasse Collin <lasse.collin@tukaani.org>
4715Date:   2022-11-14 21:34:57 +0200
4716
4717    liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.
4718    
4719    It also works on E2K as it supports these intrinsics.
4720    
4721    On x86-64 runtime detection is used so the code keeps working on
4722    older processors too. A CLMUL-only build can be done by using
4723    -msse4.1 -mpclmul in CFLAGS and this will reduce the library
4724    size since the generic implementation and its 8 KiB lookup table
4725    will be omitted.
4726    
4727    On 32-bit x86 this isn't used by default for now because by default
4728    on 32-bit x86 the separate assembly file crc64_x86.S is used.
4729    If --disable-assembler is used then this new CLMUL code is used
4730    the same way as on 64-bit x86. However, a CLMUL-only build
4731    (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on
4732    32-bit x86 due to a currently-missing check for disabled
4733    assembler usage.
4734    
4735    The configure.ac check should be such that the code won't be
4736    built if something in the toolchain doesn't support it but
4737    --disable-clmul-crc option can be used to unconditionally
4738    disable this feature.
4739    
4740    CLMUL speeds up decompression of files that have compressed very
4741    well (assuming CRC64 is used as a check type). It is know that
4742    the CLMUL code is significantly slower than the generic code for
4743    tiny inputs (especially 1-8 bytes but up to 16 bytes). If that
4744    is a real-world problem then there is already a commented-out
4745    variant that uses the generic version for small inputs.
4746    
4747    Thanks to Ilya Kurdyukov for the original patch which was
4748    derived from a white paper from Intel [1] (published in 2009)
4749    and public domain code from [2] (released in 2016).
4750    
4751    [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
4752    [2] https://github.com/rawrunprotected/crc
4753
4754 CMakeLists.txt                  |  26 ++-
4755 INSTALL                         |  12 ++
4756 configure.ac                    |  59 +++++-
4757 src/liblzma/check/crc64_fast.c  | 449 +++++++++++++++++++++++++++++++++++++++-
4758 src/liblzma/check/crc64_table.c |  21 +-
4759 5 files changed, 554 insertions(+), 13 deletions(-)
4760
4761commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
4762Author: Lasse Collin <lasse.collin@tukaani.org>
4763Date:   2022-11-14 20:14:34 +0200
4764
4765    Translations: Update the Swedish translation one more time.
4766
4767 po/sv.po | 6 +++---
4768 1 file changed, 3 insertions(+), 3 deletions(-)
4769
4770commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
4771Author: Lasse Collin <lasse.collin@tukaani.org>
4772Date:   2022-11-14 19:34:15 +0200
4773
4774    Translations: Update the Swedish translation again.
4775
4776 po/sv.po | 16 ++++++++--------
4777 1 file changed, 8 insertions(+), 8 deletions(-)
4778
4779commit a4bc689a823a2254f29ac9d233170add5121b307
4780Author: Lasse Collin <lasse.collin@tukaani.org>
4781Date:   2022-11-14 19:07:45 +0200
4782
4783    Translations: Update the Swedish translation.
4784
4785 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++---------------------------
4786 1 file changed, 382 insertions(+), 289 deletions(-)
4787
4788commit bbf2073d824ab4ba33bed4b77f467435abd333a5
4789Author: Lasse Collin <lasse.collin@tukaani.org>
4790Date:   2022-11-14 18:58:09 +0200
4791
4792    Translations: Update the Ukrainian translation.
4793
4794 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++---------------------------
4795 1 file changed, 354 insertions(+), 264 deletions(-)
4796
4797commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
4798Author: Lasse Collin <lasse.collin@tukaani.org>
4799Date:   2022-11-14 17:58:07 +0200
4800
4801    Build: Omit x86_64 from --enable-assembler.
4802    
4803    It didn't do anything. There are only 32-bit x86 assembly files
4804    and it feels likely that new files won't be added as intrinsics
4805    in C are more portable across toolchains and OSes.
4806
4807 configure.ac | 6 ++----
4808 1 file changed, 2 insertions(+), 4 deletions(-)
4809
4810commit eb0f1450ad9f23dac03050d9c8375980240aee21
4811Author: Lasse Collin <lasse.collin@tukaani.org>
4812Date:   2022-11-14 16:00:52 +0200
4813
4814    liblzma: Use __attribute__((__constructor__)) if available.
4815    
4816    This uses it for CRC table initializations when using --disable-small.
4817    It avoids mythread_once() overhead. It also means that then
4818    --disable-small --disable-threads is thread-safe if this attribute
4819    is supported.
4820
4821 CMakeLists.txt                  | 15 +++++++++++++++
4822 INSTALL                         |  4 +++-
4823 configure.ac                    | 31 ++++++++++++++++++++++++++++---
4824 src/liblzma/check/crc32_small.c |  7 +++++++
4825 src/liblzma/check/crc64_small.c |  5 +++++
4826 src/liblzma/lz/lz_encoder.c     |  2 +-
4827 6 files changed, 59 insertions(+), 5 deletions(-)
4828
4829commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
4830Author: Lasse Collin <lasse.collin@tukaani.org>
4831Date:   2022-11-12 21:19:52 +0200
4832
4833    Translations: Update the Romanian translation.
4834
4835 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++--------------------------
4836 1 file changed, 380 insertions(+), 271 deletions(-)
4837
4838commit db97e69e12393becc29f8febd53133d0d36989bd
4839Author: Lasse Collin <lasse.collin@tukaani.org>
4840Date:   2022-11-12 21:17:45 +0200
4841
4842    Translations: Update the Hungarian translation.
4843
4844 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++---------------------------
4845 1 file changed, 357 insertions(+), 268 deletions(-)
4846
4847commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
4848Author: Lasse Collin <lasse.collin@tukaani.org>
4849Date:   2022-11-11 17:58:57 +0200
4850
4851    Translations: Update the Finnish translation.
4852
4853 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++---------------------------
4854 1 file changed, 348 insertions(+), 262 deletions(-)
4855
4856commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
4857Author: Lasse Collin <lasse.collin@tukaani.org>
4858Date:   2022-11-11 17:58:18 +0200
4859
4860    Translations: Update the Croatian translation.
4861
4862 po/hr.po | 680 +++++++++++++++++++++++++++++++++++----------------------------
4863 1 file changed, 381 insertions(+), 299 deletions(-)
4864
4865commit 26c3359eac0988d6f3986735cd1363bec1678e8e
4866Author: Lasse Collin <lasse.collin@tukaani.org>
4867Date:   2022-11-11 17:57:18 +0200
4868
4869    Translations: Update the Polish translation.
4870
4871 po/pl.po | 569 ++++++++++++++++++++++++++++++++++-----------------------------
4872 1 file changed, 309 insertions(+), 260 deletions(-)
4873
4874commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
4875Author: Lasse Collin <lasse.collin@tukaani.org>
4876Date:   2022-11-11 17:56:44 +0200
4877
4878    Translations: Update the Spanish translation.
4879
4880 po/es.po | 598 ++++++++++++++++++++++++++++++++++++---------------------------
4881 1 file changed, 344 insertions(+), 254 deletions(-)
4882
4883commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
4884Author: Lasse Collin <lasse.collin@tukaani.org>
4885Date:   2022-11-11 17:16:03 +0200
4886
4887    Update THANKS.
4888
4889 THANKS | 1 +
4890 1 file changed, 1 insertion(+)
4891
4892commit a39961ef211e1bf030b17edeea3cff29fe263b67
4893Author: Lasse Collin <lasse.collin@tukaani.org>
4894Date:   2022-11-11 17:15:25 +0200
4895
4896    liblzma: Fix building with Intel ICC (the classic compiler).
4897    
4898    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
4899    
4900    Thanks to Stephen Sachs.
4901
4902 src/liblzma/common/common.h | 2 +-
4903 1 file changed, 1 insertion(+), 1 deletion(-)
4904
4905commit c715f683dcb1a817d565da292cddfbceda643e12
4906Author: Lasse Collin <lasse.collin@tukaani.org>
4907Date:   2022-11-11 14:35:58 +0200
4908
4909    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
4910    
4911    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
4912    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
4913    instead of 387. Often the latter macro is defined if the first
4914    one is but it was still a bug.
4915
4916 src/liblzma/common/memcmplen.h | 3 +--
4917 1 file changed, 1 insertion(+), 2 deletions(-)
4918
4919commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
4920Author: Lasse Collin <lasse.collin@tukaani.org>
4921Date:   2022-11-11 13:27:06 +0200
4922
4923    Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2).
4924
4925 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4926 1 file changed, 74 insertions(+)
4927
4928commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
4929Author: Lasse Collin <lasse.collin@tukaani.org>
4930Date:   2022-11-11 13:16:21 +0200
4931
4932    xzdiff: Add support for .lz files.
4933    
4934    The other scripts don't need changes for .lz support because
4935    in those scripts it is enough that xz supports .lz.
4936
4937 src/scripts/xzdiff.in | 10 +++++-----
4938 1 file changed, 5 insertions(+), 5 deletions(-)
4939
4940commit d76c752a6d77052e5ad57ade555082585f7ac5d8
4941Author: Lasse Collin <lasse.collin@tukaani.org>
4942Date:   2022-11-11 12:23:58 +0200
4943
4944    Scripts: Ignore warnings from xz.
4945    
4946    In practice this means making the scripts work when
4947    the input files have an unsupported check type which
4948    isn't a problem in practice unless support for
4949    some check types has been disabled at build time.
4950
4951 src/scripts/xzdiff.in | 5 +++--
4952 src/scripts/xzgrep.in | 2 +-
4953 src/scripts/xzless.in | 4 ++--
4954 src/scripts/xzmore.in | 4 ++--
4955 4 files changed, 8 insertions(+), 7 deletions(-)
4956
4957commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
4958Author: Lasse Collin <lasse.collin@tukaani.org>
4959Date:   2022-11-10 12:34:43 +0200
4960
4961    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
4962    
4963    That's how it is preferred at the Translation Project.
4964    On my system /usr/share/man/fr_FR doesn't contain any
4965    other man pages than XZ Utils while /usr/share/man/fr
4966    has quite a few, so this will fix that too.
4967    
4968    Thanks to Benno Schulenberg from the Translation Project.
4969
4970 po4a/{fr_FR.po => fr.po} | 0
4971 po4a/po4a.conf           | 2 +-
4972 2 files changed, 1 insertion(+), 1 deletion(-)
4973
4974commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
4975Author: Lasse Collin <lasse.collin@tukaani.org>
4976Date:   2022-11-09 18:48:50 +0200
4977
4978    xz: Update the man page about BCJ filters, including upcoming --arm64.
4979    
4980    The --arm64 isn't actually implemented yet in the form
4981    described in this commit.
4982    
4983    Thanks to Jia Tan.
4984
4985 src/xz/xz.1 | 66 +++++++++++++++++++++++++++----------------------------------
4986 1 file changed, 29 insertions(+), 37 deletions(-)
4987
4988commit ba2ae3596f6be1587495f33b367488f6e00e56f1
4989Author: Lasse Collin <lasse.collin@tukaani.org>
4990Date:   2022-11-09 18:14:14 +0200
4991
4992    xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb).
4993    
4994    Modern 32-bit ARM in big endian mode use little endian for
4995    instruction encoding still, so the filters work on such
4996    executables too. It's likely less confusing for users this way.
4997    
4998    The --arm64 option hasn't been implemented yet (there is
4999    --experimental-arm64 but it's different). The --arm64 option
5000    is added now anyway because this is the likely result and the
5001    strings need to be ready for translators.
5002    
5003    Thanks to Jia Tan.
5004
5005 src/xz/message.c | 5 +++--
5006 1 file changed, 3 insertions(+), 2 deletions(-)
5007
5008commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
5009Author: Lasse Collin <lasse.collin@tukaani.org>
5010Date:   2022-11-09 15:12:13 +0200
5011
5012    Windows: Update the VS project files for ARM64 and .lz support.
5013
5014 windows/vs2013/config.h            | 9 +++++++++
5015 windows/vs2013/liblzma.vcxproj     | 5 ++++-
5016 windows/vs2013/liblzma_dll.vcxproj | 5 ++++-
5017 windows/vs2017/config.h            | 9 +++++++++
5018 windows/vs2017/liblzma.vcxproj     | 3 +++
5019 windows/vs2017/liblzma_dll.vcxproj | 3 +++
5020 windows/vs2019/config.h            | 9 +++++++++
5021 windows/vs2019/liblzma.vcxproj     | 5 ++++-
5022 windows/vs2019/liblzma_dll.vcxproj | 5 ++++-
5023 9 files changed, 49 insertions(+), 4 deletions(-)
5024
5025commit 5846aeda05972bc803c6094821ae836229ebe691
5026Author: Lasse Collin <lasse.collin@tukaani.org>
5027Date:   2022-11-09 14:57:48 +0200
5028
5029    DOS: Update Makefile and config.h to include ARM64 and .lz support.
5030
5031 dos/Makefile | 2 ++
5032 dos/config.h | 9 +++++++++
5033 2 files changed, 11 insertions(+)
5034
5035commit 781da8d6c44de6aa278c916375250668a0b107f2
5036Author: Lasse Collin <lasse.collin@tukaani.org>
5037Date:   2022-11-09 14:45:05 +0200
5038
5039    CMake: Add lzip decoder files and #define to the build.
5040
5041 CMakeLists.txt | 3 +++
5042 1 file changed, 3 insertions(+)
5043
5044commit df8ad4af65a9c4846b108550d0083770a69dee64
5045Author: Lasse Collin <lasse.collin@tukaani.org>
5046Date:   2022-11-09 14:41:56 +0200
5047
5048    Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
5049
5050 INSTALL   | 49 +++++++++++++++++++++++++++++++++++++++++--------
5051 PACKAGERS |  2 ++
5052 2 files changed, 43 insertions(+), 8 deletions(-)
5053
5054commit c8ef089c149afaab413c3a51be827dd1d11afe0e
5055Author: Lasse Collin <lasse.collin@tukaani.org>
5056Date:   2022-10-20 17:39:06 +0300
5057
5058    Tests: Test the .lz files in test_files.sh.
5059
5060 tests/test_files.sh | 25 +++++++++++++++++++++++++
5061 1 file changed, 25 insertions(+)
5062
5063commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
5064Author: Lasse Collin <lasse.collin@tukaani.org>
5065Date:   2022-10-20 15:35:59 +0300
5066
5067    Tests: Add .lz (lzip) test files.
5068
5069 tests/files/README                     | 109 +++++++++++++++++++++++++++++----
5070 tests/files/bad-1-v0-uncomp-size.lz    | Bin 0 -> 42 bytes
5071 tests/files/bad-1-v1-crc32.lz          | Bin 0 -> 50 bytes
5072 tests/files/bad-1-v1-dict-1.lz         | Bin 0 -> 50 bytes
5073 tests/files/bad-1-v1-dict-2.lz         | Bin 0 -> 50 bytes
5074 tests/files/bad-1-v1-magic-1.lz        | Bin 0 -> 50 bytes
5075 tests/files/bad-1-v1-magic-2.lz        | Bin 0 -> 50 bytes
5076 tests/files/bad-1-v1-member-size.lz    | Bin 0 -> 50 bytes
5077 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes
5078 tests/files/bad-1-v1-uncomp-size.lz    | Bin 0 -> 50 bytes
5079 tests/files/good-1-v0-trailing-1.lz    | Bin 0 -> 59 bytes
5080 tests/files/good-1-v0.lz               | Bin 0 -> 42 bytes
5081 tests/files/good-1-v1-trailing-1.lz    | Bin 0 -> 67 bytes
5082 tests/files/good-1-v1-trailing-2.lz    | Bin 0 -> 70 bytes
5083 tests/files/good-1-v1.lz               | Bin 0 -> 50 bytes
5084 tests/files/good-2-v0-v1.lz            | Bin 0 -> 78 bytes
5085 tests/files/good-2-v1-v0.lz            | Bin 0 -> 78 bytes
5086 tests/files/good-2-v1-v1.lz            | Bin 0 -> 86 bytes
5087 tests/files/unsupported-1-v234.lz      | Bin 0 -> 50 bytes
5088 19 files changed, 98 insertions(+), 11 deletions(-)
5089
5090commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
5091Author: Lasse Collin <lasse.collin@tukaani.org>
5092Date:   2022-10-19 22:32:51 +0300
5093
5094    xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz.
5095
5096 src/xz/args.c   | 2 --
5097 src/xz/coder.h  | 1 -
5098 src/xz/suffix.c | 9 ---------
5099 3 files changed, 12 deletions(-)
5100
5101commit 3176f992c55b8d788c4633809aaf9447376a5a12
5102Author: Lasse Collin <lasse.collin@tukaani.org>
5103Date:   2022-10-08 21:28:15 +0300
5104
5105    xz: Add .lz (lzip) decompression support.
5106    
5107    If configured with --disable-lzip-decoder then --long-help will
5108    still list `lzip' in --format but I left it like that since
5109    due to translations it would be messy to have two help strings.
5110    Features are disabled only in special situations so wrong help
5111    in such a situation shouldn't matter much.
5112    
5113    Thanks to Micha�� G��rny for the original patch.
5114
5115 src/xz/args.c    |  9 ++++++++
5116 src/xz/coder.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
5117 src/xz/coder.h   |  3 +++
5118 src/xz/message.c |  2 +-
5119 src/xz/suffix.c  | 26 ++++++++++++++++++----
5120 src/xz/xz.1      | 46 +++++++++++++++++++++++++++++++++-----
5121 6 files changed, 141 insertions(+), 13 deletions(-)
5122
5123commit 034086e1ae1459210837a24e04878435c86dc41b
5124Author: Lasse Collin <lasse.collin@tukaani.org>
5125Date:   2022-10-08 00:29:20 +0300
5126
5127    liblzma: Add .lz support to lzma_auto_decoder().
5128    
5129    Thanks to Micha�� G��rny for the original patch.
5130
5131 src/liblzma/api/lzma/container.h  | 10 ++++++----
5132 src/liblzma/common/Makefile.inc   |  3 ++-
5133 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------
5134 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++
5135 4 files changed, 47 insertions(+), 11 deletions(-)
5136
5137commit 0538db038f3cdc352007dacb42454aa1806b8e40
5138Author: Lasse Collin <lasse.collin@tukaani.org>
5139Date:   2022-10-06 15:50:20 +0300
5140
5141    liblzma: Add .lz (lzip) decompression support (format versions 0 and 1).
5142    
5143    Support for format version 0 was removed from lzip 1.18 for some
5144    reason. .lz format version 0 files are rare (and old) but some
5145    source packages were released in this format, and some people might
5146    have personal files in this format too. It's very little extra code
5147    to support it along side format version 1 so this commits adds
5148    support for both.
5149    
5150    The Sync Flush marker extentension to the original .lz format
5151    version 1 isn't supported. It would require changes to the
5152    LZMA decoder itself. Such files are very rare anyway.
5153    
5154    See the API doc for lzma_lzip_decoder() for more details about
5155    the .lz format support.
5156    
5157    Thanks to Micha�� G��rny for the original patch.
5158
5159 configure.ac                      |  21 ++
5160 src/liblzma/api/lzma/container.h  |  62 +++++-
5161 src/liblzma/common/Makefile.inc   |   5 +
5162 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++
5163 src/liblzma/liblzma_generic.map   |   1 +
5164 src/liblzma/liblzma_linux.map     |   1 +
5165 6 files changed, 501 insertions(+), 2 deletions(-)
5166
5167commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
5168Author: Lasse Collin <lasse.collin@tukaani.org>
5169Date:   2022-11-09 14:17:23 +0200
5170
5171    liblzma: Add the missing Makefile.inc change for --disable-microlzma.
5172    
5173    This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8.
5174
5175 src/liblzma/common/Makefile.inc | 12 ++++++++++--
5176 1 file changed, 10 insertions(+), 2 deletions(-)
5177
5178commit 724285dadbdc88765c8fb83eab9816575a260966
5179Author: Lasse Collin <lasse.collin@tukaani.org>
5180Date:   2022-11-09 14:10:52 +0200
5181
5182    xz: Add comments about stdin and src_st.st_size.
5183    
5184    "xz -v < regular_file > out.xz" doesn't display the percentage
5185    and estimated remaining time because it doesn't even try to
5186    check the input file size when input is read from stdin.
5187    This could be improved but for now there's just a comment
5188    to remind about it.
5189
5190 src/xz/coder.c   | 9 +++++++++
5191 src/xz/file_io.c | 4 ++++
5192 2 files changed, 13 insertions(+)
5193
5194commit f723eec68b0e44234910f669a29119de33018967
5195Author: Lasse Collin <lasse.collin@tukaani.org>
5196Date:   2022-11-09 12:48:22 +0200
5197
5198    xz: Fix displaying of file sizes in progress indicator in passthru mode.
5199    
5200    It worked for one input file since the counters are zero when
5201    xz starts but they weren't reset when starting a new file in
5202    passthru mode. For example, if files A, B, and C are one byte each,
5203    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
5204    instead of 1, 1, and 1 byte.
5205
5206 src/xz/coder.c | 6 +++++-
5207 1 file changed, 5 insertions(+), 1 deletion(-)
5208
5209commit 69265d0f223ddf1d66f799b8b047df22923e376f
5210Author: Lasse Collin <lasse.collin@tukaani.org>
5211Date:   2022-11-09 11:27:20 +0200
5212
5213    xz: Add a comment why --to-stdout is not in --help.
5214    
5215    It is on the man page still.
5216
5217 src/xz/message.c | 3 +++
5218 1 file changed, 3 insertions(+)
5219
5220commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
5221Author: Lasse Collin <lasse.collin@tukaani.org>
5222Date:   2022-11-08 23:05:37 +0200
5223
5224    xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress.
5225
5226 src/xz/list.c | 20 +++++++++++++++-----
5227 1 file changed, 15 insertions(+), 5 deletions(-)
5228
5229commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
5230Author: Lasse Collin <lasse.collin@tukaani.org>
5231Date:   2022-11-08 22:26:54 +0200
5232
5233    Docs: Update faq.txt a little.
5234
5235 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
5236 1 file changed, 43 insertions(+), 23 deletions(-)
5237
5238commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
5239Author: Lasse Collin <lasse.collin@tukaani.org>
5240Date:   2022-11-08 16:57:17 +0200
5241
5242    Translations: Update Turkish translation.
5243
5244 po/tr.po | 2 +-
5245 1 file changed, 1 insertion(+), 1 deletion(-)
5246
5247commit ed3a4822963b4940d84e6f44d47277c394fc046d
5248Author: Lasse Collin <lasse.collin@tukaani.org>
5249Date:   2022-11-08 14:55:32 +0200
5250
5251    Translations: Update Croatian translation.
5252
5253 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
5254 1 file changed, 96 insertions(+), 94 deletions(-)
5255
5256commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
5257Author: Lasse Collin <lasse.collin@tukaani.org>
5258Date:   2022-11-08 14:13:03 +0200
5259
5260    liblzma: Update API docs about decoder flags.
5261
5262 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++----
5263 1 file changed, 17 insertions(+), 4 deletions(-)
5264
5265commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
5266Author: Lasse Collin <lasse.collin@tukaani.org>
5267Date:   2022-11-08 14:01:50 +0200
5268
5269    liblzma: Use the return_if_error() macro in alone_decoder.c.
5270
5271 src/liblzma/common/alone_decoder.c | 6 ++----
5272 1 file changed, 2 insertions(+), 4 deletions(-)
5273
5274commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
5275Author: Lasse Collin <lasse.collin@tukaani.org>
5276Date:   2022-11-08 14:00:58 +0200
5277
5278    liblzma: Fix a comment in auto_decoder.c.
5279
5280 src/liblzma/common/auto_decoder.c | 4 ++--
5281 1 file changed, 2 insertions(+), 2 deletions(-)
5282
5283commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
5284Author: Lasse Collin <lasse.collin@tukaani.org>
5285Date:   2022-11-08 13:43:19 +0200
5286
5287    xz: Initialize the pledge(2) sandbox at the very beginning of main().
5288    
5289    It feels better that the initializations are sandboxed too.
5290    They don't do anything that the pledge() call wouldn't allow.
5291
5292 src/xz/main.c | 27 ++++++++++++++-------------
5293 1 file changed, 14 insertions(+), 13 deletions(-)
5294
5295commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
5296Author: Lasse Collin <lasse.collin@tukaani.org>
5297Date:   2022-11-07 22:51:16 +0200
5298
5299    xz: Extend --robot --info-memory output.
5300    
5301    Now it includes everything that the human-readable --info-memory shows.
5302
5303 src/xz/hardware.c | 24 +++++++++++++++---------
5304 src/xz/xz.1       | 47 +++++++++++++++++++++++++++++++++++++++++------
5305 2 files changed, 56 insertions(+), 15 deletions(-)
5306
5307commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
5308Author: Lasse Collin <lasse.collin@tukaani.org>
5309Date:   2022-11-07 17:22:04 +0200
5310
5311    liblzma: Include cached memory in reported memusage in threaded decoder.
5312    
5313    This affects lzma_memusage() and lzma_memlimit_set() when used
5314    with the threaded decompressor. Now all allocations are reported
5315    by lzma_memusage() (so it's not misleading) and lzma_memlimit_set()
5316    cannot lower the limit below that value.
5317    
5318    The alternative would have been to allow lowering the limit if
5319    doing so is possible by freeing the cached memory but since
5320    the primary use case of lzma_memlimit_set() is to increase
5321    memlimit after LZMA_MEMLIMIT_ERROR this simple approach
5322    was selected.
5323    
5324    The cached memory was always included when enforcing
5325    the memory usage limit while decoding.
5326    
5327    Thanks to Jia Tan.
5328
5329 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++---
5330 1 file changed, 19 insertions(+), 3 deletions(-)
5331
5332commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
5333Author: Jia Tan <jiat0218@gmail.com>
5334Date:   2022-11-07 16:24:14 +0200
5335
5336    xz: Avoid a compiler warning in progress_speed() in message.c.
5337    
5338    This should be smaller too since it avoids the string constants.
5339
5340 src/xz/message.c | 9 +++------
5341 1 file changed, 3 insertions(+), 6 deletions(-)
5342
5343commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
5344Author: Lasse Collin <lasse.collin@tukaani.org>
5345Date:   2022-10-31 16:26:05 +0200
5346
5347    Build: Clarify comment in configure.ac about SSE2.
5348
5349 configure.ac | 5 ++++-
5350 1 file changed, 4 insertions(+), 1 deletion(-)
5351
5352commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
5353Author: Lasse Collin <lasse.collin@tukaani.org>
5354Date:   2022-10-31 16:16:37 +0200
5355
5356    Build: Remove obsolete commented-out lines from configure.ac.
5357
5358 configure.ac | 4 ----
5359 1 file changed, 4 deletions(-)
5360
5361commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
5362Author: Lasse Collin <lasse.collin@tukaani.org>
5363Date:   2022-10-31 13:31:58 +0200
5364
5365    Windows: Fix mythread_once() macro with Vista threads.
5366    
5367    Don't call InitOnceComplete() if initialization was already done.
5368    
5369    So far mythread_once() has been needed only when building
5370    with --enable-small. windows/build.bash does this together
5371    with --disable-threads so the Vista-specific mythread_once()
5372    is never needed by those builds. VS project files or
5373    CMake-builds don't support HAVE_SMALL builds at all.
5374
5375 src/common/mythread.h | 7 ++++---
5376 1 file changed, 4 insertions(+), 3 deletions(-)
5377
5378commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
5379Author: Lasse Collin <lasse.collin@tukaani.org>
5380Date:   2022-10-31 11:54:44 +0200
5381
5382    liblzma: Silence -Wconversion warning from crc64_fast.c.
5383
5384 src/liblzma/check/crc64_fast.c | 5 +++--
5385 1 file changed, 3 insertions(+), 2 deletions(-)
5386
5387commit a243c617ff249d915ac123de4f536b80322c1fdb
5388Author: Lasse Collin <lasse.collin@tukaani.org>
5389Date:   2022-10-31 11:49:47 +0200
5390
5391    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
5392    
5393    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.
5394
5395 cmake/tuklib_cpucores.cmake | 5 +++++
5396 1 file changed, 5 insertions(+)
5397
5398commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
5399Author: Lasse Collin <lasse.collin@tukaani.org>
5400Date:   2022-10-27 15:49:18 +0300
5401
5402    Tests: test_files.sh: Make it not fail if features were disabled at build.
5403    
5404    It now tries to test as many files as easily possible.
5405    The exit status indicates skipping if any of the files were
5406    skipped. This way it is easy to notice if something is being
5407    skipped when it isn't expected.
5408
5409 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
5410 1 file changed, 46 insertions(+), 4 deletions(-)
5411
5412commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
5413Author: Lasse Collin <lasse.collin@tukaani.org>
5414Date:   2022-10-27 15:30:13 +0300
5415
5416    Tests: test_files.sh: Suppress an expected warning from the log.
5417    
5418    xz (but not xzdec) will normally warn about unsupported check
5419    but since we are testing specifically such a file, it's better
5420    to silence that warning so that it doesn't look suspicious in
5421    test_files.sh.log.
5422    
5423    The use of -q and -Q in xzdec is just for consistency and
5424    doesn't affect the result at least for now.
5425
5426 tests/test_files.sh | 4 ++--
5427 1 file changed, 2 insertions(+), 2 deletions(-)
5428
5429commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
5430Author: Lasse Collin <lasse.collin@tukaani.org>
5431Date:   2022-10-27 15:27:50 +0300
5432
5433    Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.
5434
5435 tests/test_files.sh | 1 +
5436 1 file changed, 1 insertion(+)
5437
5438commit c1dd8524e1af07f16b790463899de06a6a5fcc08
5439Author: Lasse Collin <lasse.collin@tukaani.org>
5440Date:   2022-10-27 01:12:40 +0300
5441
5442    Tests: Keep test_compress_* working when some filters are unavailable.
5443
5444 tests/test_compress.sh | 34 ++++++++++++++++++++--------------
5445 1 file changed, 20 insertions(+), 14 deletions(-)
5446
5447commit ce30ada91951d0746879ae438da11f1ee8a90aa0
5448Author: Jia Tan <jiat0218@gmail.com>
5449Date:   2022-10-23 21:01:08 +0800
5450
5451    Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.
5452
5453 tests/test_bcj_exact_size.c | 3 +++
5454 1 file changed, 3 insertions(+)
5455
5456commit 89c5cfcacaca7130509fac836e2f30c46b824502
5457Author: Lasse Collin <lasse.collin@tukaani.org>
5458Date:   2022-10-26 00:05:57 +0300
5459
5460    Tests: Test also unsupported-*.xz.
5461
5462 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++
5463 1 file changed, 37 insertions(+)
5464
5465commit a4b214b93ac741edef9c41e55865b0b867ca2587
5466Author: Lasse Collin <lasse.collin@tukaani.org>
5467Date:   2022-10-25 23:45:03 +0300
5468
5469    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
5470    
5471    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
5472    
5473    There is a warning about AC_PROG_CC_C99 being obsolete but
5474    it cannot be removed because it is needed with Autoconf 2.69.
5475
5476 configure.ac | 2 +-
5477 1 file changed, 1 insertion(+), 1 deletion(-)
5478
5479commit 04f299b64e73f50afc188c2590ebebc6b73ed744
5480Author: Lasse Collin <lasse.collin@tukaani.org>
5481Date:   2022-10-25 23:31:44 +0300
5482
5483    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
5484
5485 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
5486 1 file changed, 22 insertions(+), 7 deletions(-)
5487
5488commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
5489Author: Lasse Collin <lasse.collin@tukaani.org>
5490Date:   2022-10-25 23:28:34 +0300
5491
5492    Build: Add configure option --disable-microlzma.
5493    
5494    MicroLZMA was made for EROFS and used by erofs-utils.
5495    It might be used by something else in the future but
5496    those wanting a smaller build for specific situations
5497    can now disable this rarely-needed feature.
5498
5499 configure.ac | 22 ++++++++++++++++++++++
5500 1 file changed, 22 insertions(+)
5501
5502commit 054ccd6d14b2cc6eddc56897af280d3221414150
5503Author: Lasse Collin <lasse.collin@tukaani.org>
5504Date:   2022-10-25 23:09:11 +0300
5505
5506    xz: Fix --single-stream with an empty .xz Stream.
5507    
5508    Example:
5509    
5510        $ xz -dc --single-stream good-0-empty.xz
5511        xz: good-0-empty.xz: Internal error (bug)
5512    
5513    The code, that is tries to catch some input file issues early,
5514    didn't anticipate LZMA_STREAM_END which is possible in that
5515    code only when --single-stream is used.
5516
5517 src/xz/coder.c | 9 +++++++++
5518 1 file changed, 9 insertions(+)
5519
5520commit 563288ea705e83ff5cb292adf794650c263bca1d
5521Author: Lasse Collin <lasse.collin@tukaani.org>
5522Date:   2022-10-25 21:11:58 +0300
5523
5524    xz: Add support for OpenBSD's pledge() sandbox.
5525
5526 configure.ac     | 12 +++++++++---
5527 src/xz/file_io.c | 11 +++++++++++
5528 src/xz/main.c    | 13 +++++++++++++
5529 src/xz/private.h |  2 +-
5530 4 files changed, 34 insertions(+), 4 deletions(-)
5531
5532commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
5533Author: Lasse Collin <lasse.collin@tukaani.org>
5534Date:   2022-10-25 19:07:17 +0300
5535
5536    xz: Fix decompressor behavior if input uses an unsupported check type.
5537    
5538    Now files with unsupported check will make xz display
5539    a warning, set the exit status to 2 (unless --no-warn is used),
5540    and then decompress the file normally. This is how it was
5541    supposed to work since the beginning but this was broken by
5542    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
5543    a little before 5.0.0 was released. The buggy behavior displayed
5544    a message, set exit status 1 (error), and xz didn't attempt to
5545    to decompress the file.
5546    
5547    This doesn't matter today except for special builds that disable
5548    CRC64 or SHA-256 at build time (but such builds should be used
5549    in special situations only). The bug matters if new check type
5550    is added in the future and an old xz version is used to decompress
5551    such a file; however, it's likely that such files would use a new
5552    filter too and an old xz wouldn't be able to decompress the file
5553    anyway.
5554    
5555    The first hunk in the commit is the actual fix. The second hunk
5556    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
5557    
5558    There is a test file for unsupported check type but it wasn't
5559    used by test_files.sh, perhaps due to different behavior between
5560    xz and the simpler xzdec.
5561
5562 src/xz/coder.c | 19 +++++++++++++++----
5563 1 file changed, 15 insertions(+), 4 deletions(-)
5564
5565commit aa4fe145b9486adc454f44fd3e09be9add808a0f
5566Author: Lasse Collin <lasse.collin@tukaani.org>
5567Date:   2022-10-25 18:36:19 +0300
5568
5569    xz: Clarify the man page: input file isn't removed if an error occurs.
5570
5571 src/xz/xz.1 | 5 +++--
5572 1 file changed, 3 insertions(+), 2 deletions(-)
5573
5574commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
5575Author: Lasse Collin <lasse.collin@tukaani.org>
5576Date:   2022-10-25 18:30:55 +0300
5577
5578    xz: Refactor to remove is_empty_filename().
5579    
5580    Long ago it was used in list.c too but nowadays it's needed
5581    only in io_open_src() so it's nicer to avoid a separate function.
5582
5583 src/xz/file_io.c |  4 +++-
5584 src/xz/util.c    | 12 ------------
5585 src/xz/util.h    |  4 ----
5586 3 files changed, 3 insertions(+), 17 deletions(-)
5587
5588commit 85624015978b0de294cff3df79006df987c552b1
5589Author: Lasse Collin <lasse.collin@tukaani.org>
5590Date:   2022-10-25 18:23:54 +0300
5591
5592    xz: If input file cannot be removed, treat it as a warning, not error.
5593    
5594    Treating it as a warning (message + exit status 2) matches gzip
5595    and it seems more logical as at that point the output file has
5596    already been successfully closed. When it's a warning it is
5597    possible to suppress it with --no-warn.
5598
5599 src/xz/file_io.c | 4 ++--
5600 1 file changed, 2 insertions(+), 2 deletions(-)
5601
5602commit fda9f85f52c546f7ca0313cf89481da4707fecb3
5603Author: Lasse Collin <lasse.collin@tukaani.org>
5604Date:   2022-10-24 16:25:09 +0300
5605
5606    liblzma: Threaded decoder: Stop the worker threads on errors.
5607    
5608    It's waste of CPU time and electricity to leave the unfinished
5609    worker threads running when it is known that their output will
5610    get ignored.
5611
5612 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++-------
5613 1 file changed, 26 insertions(+), 7 deletions(-)
5614
5615commit 2611c4d90535652d3eb7ef4a026a6691276fab43
5616Author: Lasse Collin <lasse.collin@tukaani.org>
5617Date:   2022-10-20 20:22:50 +0300
5618
5619    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
5620    
5621    On OpenBSD the number of cores online is often less
5622    than what HW_NCPU would return because OpenBSD disables
5623    simultaneous multi-threading (SMT) by default.
5624    
5625    Thanks to Christian Weisgerber.
5626
5627 m4/tuklib_cpucores.m4        | 5 +++++
5628 src/common/tuklib_cpucores.c | 9 +++++++++
5629 2 files changed, 14 insertions(+)
5630
5631commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
5632Author: Lasse Collin <lasse.collin@tukaani.org>
5633Date:   2022-10-19 19:39:35 +0300
5634
5635    Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
5636    
5637    This isn't perfect as the scripts can still fail if only
5638    certain filters are disabled. This is still an improvement
5639    as now "make check" has better behavior when all encoders
5640    or decoders are disabled.
5641    
5642    Grepping ../config.h is simple and fairly clean but it only
5643    works if config.h was created. CMake builds don't create
5644    config.h but they don't use these test scripts either.
5645    
5646    Thanks to Sebastian Andrzej Siewior for reporting the problem.
5647    Thanks to Jia Tan for the original patch which grepped xz
5648    error messages instead of config.h.
5649
5650 tests/test_compress.sh | 12 ++++++++++++
5651 tests/test_files.sh    | 11 +++++++++++
5652 tests/test_scripts.sh  | 11 +++++++++++
5653 3 files changed, 34 insertions(+)
5654
5655commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
5656Author: Lasse Collin <lasse.collin@tukaani.org>
5657Date:   2022-10-19 18:54:34 +0300
5658
5659    Test: Remove the (exit 1) lines.
5660    
5661    I suspect that I used these in the original version because
5662    Autoconf's manual describes that such a trick is needed in
5663    some specific situations for portability reasons. None of those
5664    situations listed on Autoconf 2.71 manual apply to these test
5665    scripts though so this cleans them up.
5666
5667 tests/test_compress.sh | 10 ----------
5668 tests/test_files.sh    |  9 ---------
5669 tests/test_scripts.sh  |  6 ------
5670 3 files changed, 25 deletions(-)
5671
5672commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
5673Author: Lasse Collin <lasse.collin@tukaani.org>
5674Date:   2022-10-19 17:14:57 +0300
5675
5676    Tests: Fix a warning in test_memlimit.c when decoders are disabled.
5677
5678 tests/test_memlimit.c | 3 +++
5679 1 file changed, 3 insertions(+)
5680
5681commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
5682Author: Lasse Collin <lasse.collin@tukaani.org>
5683Date:   2022-10-19 17:11:46 +0300
5684
5685    Tests: Add test_memlimit to .gitignore.
5686    
5687    Thanks to Jia Tan.
5688
5689 .gitignore | 1 +
5690 1 file changed, 1 insertion(+)
5691
5692commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
5693Author: Jia Tan <jiat0218@gmail.com>
5694Date:   2022-10-06 21:53:09 +0300
5695
5696    Tests: Refactor test_stream_flags.c.
5697    
5698    Converts test_stream_flags to tuktest. Also the test will now
5699    compile and skip properly if encoders or decoders are disabled.
5700    
5701    Thanks to Sebastian Andrzej Siewior.
5702
5703 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++----------
5704 1 file changed, 416 insertions(+), 117 deletions(-)
5705
5706commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
5707Author: Jia Tan <jiat0218@gmail.com>
5708Date:   2022-10-06 17:00:38 +0800
5709
5710    Tests: Refactor test_block_header.c.
5711    
5712    test_block_header now achieves higher test coverage. Also the
5713    test will now compile and skip properly if encoders or decoders
5714    are disabled.
5715    
5716    Thanks to Sebastian Andrzej Siewior.
5717
5718 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++-----------
5719 1 file changed, 370 insertions(+), 116 deletions(-)
5720
5721commit 84963318952064a93bfc52edd6b0ef70593384ee
5722Author: Jia Tan <jiat0218@gmail.com>
5723Date:   2022-10-05 23:54:12 +0800
5724
5725    Tests: Fix compilation issues.
5726    
5727    test_bcj_exact_size, test_check, test_hardware, and test_index will
5728    all now compile and skip properly if encoders or decoders are disabled.
5729    
5730    Also fixed a small typo (disabed -> disabled).
5731    
5732    Thanks to Sebastian Andrzej Siewior.
5733
5734 tests/test_bcj_exact_size.c | 20 ++++++++++++++------
5735 tests/test_check.c          |  8 +++++++-
5736 tests/test_hardware.c       |  2 +-
5737 tests/test_index.c          |  6 ++++++
5738 tests/test_memlimit.c       | 16 +++++++++++++++-
5739 tests/test_vli.c            | 13 +++++++++++++
5740 6 files changed, 56 insertions(+), 9 deletions(-)
5741
5742commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
5743Author: Lasse Collin <lasse.collin@tukaani.org>
5744Date:   2022-10-05 16:20:47 +0300
5745
5746    Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.
5747
5748 tests/test_check.c    | 1 +
5749 tests/test_hardware.c | 1 +
5750 tests/test_memlimit.c | 1 +
5751 3 files changed, 3 insertions(+)
5752
5753commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
5754Author: Jia Tan <jiat0218@gmail.com>
5755Date:   2022-10-05 20:57:16 +0800
5756
5757    liblzma: Fix a compilation issue when encoders are disabled.
5758    
5759    When encoders were disabled and threading enabled, outqueue.c and
5760    outqueue.h were not compiled. The multi threaded decoder required
5761    these files, so compilation failed.
5762
5763 src/liblzma/common/Makefile.inc | 7 ++++---
5764 1 file changed, 4 insertions(+), 3 deletions(-)
5765
5766commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
5767Author: Jia Tan <jiat0218@gmail.com>
5768Date:   2022-10-05 16:41:38 +0800
5769
5770    Tests: Fix compilation error when threading support has been disabled.
5771    
5772    Now tests that require threading are skipped when threading
5773    support has been disabled.
5774    
5775    Thanks to Sebastian Andrzej Siewior.
5776
5777 tests/test_check.c    | 4 ++++
5778 tests/test_hardware.c | 4 ++++
5779 tests/test_memlimit.c | 4 ++++
5780 3 files changed, 12 insertions(+)
5781
5782commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
5783Author: Lasse Collin <lasse.collin@tukaani.org>
5784Date:   2022-10-05 14:26:00 +0300
5785
5786    tuklib_integer: Add 64-bit endianness-converting reads and writes.
5787    
5788    Also update the comment in liblzma's memcmplen.h.
5789    
5790    Thanks to Micha�� G��rny for the original patch for the reads.
5791
5792 m4/tuklib_integer.m4           |  8 ++++----
5793 src/common/tuklib_integer.h    | 46 ++++++++++++++++++++++++++++++++++++++++--
5794 src/liblzma/common/memcmplen.h |  9 +++------
5795 3 files changed, 51 insertions(+), 12 deletions(-)
5796
5797commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
5798Author: Lasse Collin <lasse.collin@tukaani.org>
5799Date:   2022-09-30 12:06:13 +0300
5800
5801    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
5802    
5803    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.
5804
5805 src/liblzma/api/lzma/base.h | 11 +++++++++++
5806 1 file changed, 11 insertions(+)
5807
5808commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
5809Author: Jia Tan <jiat0218@gmail.com>
5810Date:   2022-09-21 16:15:50 +0800
5811
5812    liblzma: Add dest and src NULL checks to lzma_index_cat.
5813    
5814    The documentation states LZMA_PROG_ERROR can be returned from
5815    lzma_index_cat. Previously, lzma_index_cat could not return
5816    LZMA_PROG_ERROR. Now, the validation is similar to
5817    lzma_index_append, which does a NULL check on the index
5818    parameter.
5819
5820 src/liblzma/common/index.c | 3 +++
5821 1 file changed, 3 insertions(+)
5822
5823commit afd5a8bf5374eba82804a999e1ea7af680784086
5824Author: Jia Tan <jiat0218@gmail.com>
5825Date:   2022-09-21 20:29:28 +0800
5826
5827    Tests: Create a test for the lzma_index_cat bug.
5828
5829 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
5830 1 file changed, 42 insertions(+), 1 deletion(-)
5831
5832commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
5833Author: Jia Tan <jiat0218@gmail.com>
5834Date:   2022-09-21 19:28:53 +0800
5835
5836    liblzma: Fix copying of check type statistics in lzma_index_cat().
5837    
5838    The check type of the last Stream in dest was never copied to
5839    dest->checks (the code tried to copy it but it was done too late).
5840    This meant that the value returned by lzma_index_checks() would
5841    only include the check type of the last Stream when multiple
5842    lzma_indexes had been concatenated.
5843    
5844    In xz --list this meant that the summary would only list the
5845    check type of the last Stream, so in this sense this was only
5846    a visual bug. However, it's possible that some applications
5847    use this information for purposes other than merely showing
5848    it to the users in an informational message. I'm not aware of
5849    such applications though and it's quite possible that such
5850    applications don't exist.
5851    
5852    Regular streamed decompression in xz or any other application
5853    doesn't use lzma_index_cat() and so this bug cannot affect them.
5854
5855 src/liblzma/common/index.c | 7 ++++++-
5856 1 file changed, 6 insertions(+), 1 deletion(-)
5857
5858commit a61d32172789735350a941e23baf6b587c49e5d9
5859Author: Lasse Collin <lasse.collin@tukaani.org>
5860Date:   2022-09-28 12:20:41 +0300
5861
5862    tuklib_physmem: Fix Unicode builds on Windows.
5863    
5864    Thanks to ArSaCiA Game.
5865
5866 src/common/tuklib_physmem.c | 2 +-
5867 1 file changed, 1 insertion(+), 1 deletion(-)
5868
5869commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
5870Author: Lasse Collin <lasse.collin@tukaani.org>
5871Date:   2022-09-28 11:12:07 +0300
5872
5873    Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.
5874
5875 tests/Makefile.am     |   2 +
5876 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
5877 2 files changed, 153 insertions(+)
5878
5879commit 660739f99ab211edec4071de98889fb32ed04e98
5880Author: Lasse Collin <lasse.collin@tukaani.org>
5881Date:   2022-09-28 11:05:15 +0300
5882
5883    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
5884    
5885    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
5886    to use lzma_memlimit_set() to increase the limit and continue
5887    decoding. This was supposed to work from the beginning but
5888    there was a bug. With other decoders (.lzma or threaded .xz)
5889    this already worked correctly.
5890
5891 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
5892 1 file changed, 13 insertions(+), 3 deletions(-)
5893
5894commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
5895Author: Lasse Collin <lasse.collin@tukaani.org>
5896Date:   2022-09-28 11:00:23 +0300
5897
5898    liblzma: Stream decoder: Fix comments.
5899
5900 src/liblzma/common/stream_decoder.c | 12 +++++-------
5901 1 file changed, 5 insertions(+), 7 deletions(-)
5902
5903commit f664cb25841fc1c478b819034a224a558e2ac6e7
5904Author: Lasse Collin <lasse.collin@tukaani.org>
5905Date:   2022-09-20 16:58:22 +0300
5906
5907    liblzma: ARM64: Add comments.
5908
5909 src/liblzma/simple/arm64.c | 13 +++++++++++++
5910 1 file changed, 13 insertions(+)
5911
5912commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
5913Author: Lasse Collin <lasse.collin@tukaani.org>
5914Date:   2022-09-20 16:27:50 +0300
5915
5916    liblzma: ARM64: Fix wrong comment in API doc.
5917    
5918    Thanks to Jia Tan.
5919
5920 src/liblzma/api/lzma/bcj.h | 4 ++--
5921 1 file changed, 2 insertions(+), 2 deletions(-)
5922
5923commit d5b0906fa55157f48c200188a3951d80df9cb308
5924Author: Lasse Collin <lasse.collin@tukaani.org>
5925Date:   2022-09-19 20:24:26 +0300
5926
5927    xz: Add --experimental-arm64[=width=WIDTH].
5928    
5929    It will be renamed to --arm64 once it is stable.
5930    
5931    Man page or --long-help weren't updated yet.
5932
5933 src/xz/args.c    |  7 +++++++
5934 src/xz/message.c |  7 +++++++
5935 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++
5936 src/xz/options.h |  7 +++++++
5937 4 files changed, 60 insertions(+)
5938
5939commit ecb966de308c255bb4735a7307ef9901c643a9de
5940Author: Lasse Collin <lasse.collin@tukaani.org>
5941Date:   2022-09-19 19:34:56 +0300
5942
5943    liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID.
5944    
5945    That is, the Filter ID will be changed once the design is final.
5946    The current version will be removed. So files created with the
5947    tempoary Filter ID won't be supported in the future.
5948
5949 CMakeLists.txt                      |   3 +
5950 configure.ac                        |   4 +-
5951 src/liblzma/api/lzma/bcj.h          |  35 +++++-
5952 src/liblzma/common/filter_common.c  |   9 ++
5953 src/liblzma/common/filter_decoder.c |   8 ++
5954 src/liblzma/common/filter_encoder.c |  11 ++
5955 src/liblzma/simple/Makefile.inc     |   4 +
5956 src/liblzma/simple/arm64.c          | 227 ++++++++++++++++++++++++++++++++++++
5957 src/liblzma/simple/simple_coder.h   |   9 ++
5958 src/liblzma/simple/simple_decoder.h |   4 +
5959 src/liblzma/simple/simple_encoder.h |   2 +
5960 11 files changed, 313 insertions(+), 3 deletions(-)
5961
5962commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
5963Author: Lasse Collin <lasse.collin@tukaani.org>
5964Date:   2022-09-17 22:42:18 +0300
5965
5966    liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
5967    
5968    This will be needed for the ARM64 BCJ filter as it will use
5969    its own options struct.
5970
5971 src/liblzma/simple/arm.c            | 2 +-
5972 src/liblzma/simple/armthumb.c       | 2 +-
5973 src/liblzma/simple/ia64.c           | 2 +-
5974 src/liblzma/simple/powerpc.c        | 2 +-
5975 src/liblzma/simple/simple_coder.c   | 4 ++--
5976 src/liblzma/simple/simple_private.h | 2 +-
5977 src/liblzma/simple/sparc.c          | 2 +-
5978 src/liblzma/simple/x86.c            | 3 ++-
5979 8 files changed, 10 insertions(+), 9 deletions(-)
5980
5981commit c3592d0a55114144686ecf960cb516d6b31c98e9
5982Author: Lasse Collin <lasse.collin@tukaani.org>
5983Date:   2022-09-16 17:08:53 +0300
5984
5985    Tests: Add a test file for lzma_index_append() integer overflow bug.
5986    
5987    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
5988    
5989    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
5990    because only then the previously-buggy code path gets tested.
5991    Normal decompression doesn't use lzma_index_append() at all.
5992    Instead, lzma_index_hash functions are used and those already
5993    did the overflow check.
5994
5995 tests/files/README                         |  10 ++++++++++
5996 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
5997 tests/test_files.sh                        |   8 ++++++++
5998 3 files changed, 18 insertions(+)
5999
6000commit 982b29f828079a2a26253a40e975127a40a7d2bd
6001Author: Lasse Collin <lasse.collin@tukaani.org>
6002Date:   2022-09-16 15:10:07 +0300
6003
6004    Translations: Add Turkish translation.
6005
6006 po/LINGUAS |   1 +
6007 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6008 2 files changed, 978 insertions(+)
6009
6010commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
6011Author: Lasse Collin <lasse.collin@tukaani.org>
6012Date:   2022-09-16 14:09:07 +0300
6013
6014    Update THANKS.
6015
6016 THANKS | 1 +
6017 1 file changed, 1 insertion(+)
6018
6019commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
6020Author: Lasse Collin <lasse.collin@tukaani.org>
6021Date:   2022-09-16 14:07:03 +0300
6022
6023    xzgrep: Fix compatibility with old shells.
6024    
6025    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
6026    
6027        xzgrep: line 231: syntax error near unexpected token `;;'
6028    
6029    On SCO OpenServer 5.0.7 with Korn Shell 93r:
6030    
6031        syntax error at line 231 : `;;' unexpected
6032    
6033    Turns out that some old shells don't like apostrophes (') inside
6034    command substitutions. For example, the following fails:
6035    
6036        x=$(echo foo
6037        # asdf'zxcv
6038        echo bar)
6039        printf '%s\n' "$x"
6040    
6041    The problem was introduced by commits
6042    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
6043    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
6044    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
6045    5.2.6 is the only stable release that included
6046    this problem.
6047    
6048    Thanks to Kevin R. Bulgrien for reporting the problem
6049    on SCO OpenServer 5.0.7 and for providing the fix.
6050
6051 src/scripts/xzgrep.in | 6 +++---
6052 1 file changed, 3 insertions(+), 3 deletions(-)
6053
6054commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
6055Author: Lasse Collin <lasse.collin@tukaani.org>
6056Date:   2022-09-09 14:12:30 +0300
6057
6058    Tests: Silence warnings about unused functions from tuktest.h.
6059    
6060    Warnings about unused tuktest_run_test conveniently tell which
6061    test programs haven't been converted to tuktest.h yet but I
6062    silenced that warning too for now anyway.
6063    
6064    It is fine to use __attribute__((__unused__)) even when the
6065    function is actually used because the attribute only means
6066    that the function might be unused.
6067
6068 tests/tuktest.h | 10 ++++++++++
6069 1 file changed, 10 insertions(+)
6070
6071commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
6072Author: Lasse Collin <lasse.collin@tukaani.org>
6073Date:   2022-09-09 13:51:57 +0300
6074
6075    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
6076    
6077    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
6078    this. Before this patch, failing lzma_filters_copy() could result
6079    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
6080    or stream_encoder_mt.c.
6081    
6082    To trigger this, allocating memory for a filter options structure
6083    has to fail. These are tiny allocations so in practice they very
6084    rarely fail.
6085    
6086    Certain badness in the filter chain array could also make
6087    lzma_filters_copy() fail but both stream_encoder.c and
6088    stream_encoder_mt.c validate the filter chain before
6089    trying to copy it, so the crash cannot occur this way.
6090
6091 src/liblzma/api/lzma/filter.h      |  4 +++-
6092 src/liblzma/common/filter_common.c | 18 ++++++++++++------
6093 2 files changed, 15 insertions(+), 7 deletions(-)
6094
6095commit 18d7facd3802b55c287581405c4d49c98708c136
6096Author: Jia Tan <jiat0218@gmail.com>
6097Date:   2022-09-02 20:18:55 +0800
6098
6099    liblzma: lzma_index_append: Add missing integer overflow check.
6100    
6101    The documentation in src/liblzma/api/lzma/index.h suggests that
6102    both the unpadded (compressed) size and the uncompressed size
6103    are checked for overflow, but only the unpadded size was checked.
6104    The uncompressed check is done first since that is more likely to
6105    occur than the unpadded or index field size overflows.
6106
6107 src/liblzma/common/index.c | 4 ++++
6108 1 file changed, 4 insertions(+)
6109
6110commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
6111Author: Lasse Collin <lasse.collin@tukaani.org>
6112Date:   2022-09-08 15:11:08 +0300
6113
6114    Update THANKS.
6115
6116 THANKS | 1 +
6117 1 file changed, 1 insertion(+)
6118
6119commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
6120Author: Jia Tan <jiat0218@gmail.com>
6121Date:   2022-09-08 15:07:00 +0300
6122
6123    CMake: Clarify a comment about Windows symlinks without file extension.
6124
6125 CMakeLists.txt | 7 +++----
6126 1 file changed, 3 insertions(+), 4 deletions(-)
6127
6128commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
6129Author: Lasse Collin <lasse.collin@tukaani.org>
6130Date:   2022-09-08 15:02:41 +0300
6131
6132    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
6133    
6134    The previous commit split liblzma.map into liblzma_linux.map and
6135    liblzma_generic.map. This commit updates the CMake build for those.
6136    
6137    common_w32res.rc dependency was listed under Linux/FreeBSD while
6138    obviously it belongs to Windows when building a DLL.
6139
6140 CMakeLists.txt | 24 +++++++++++++++++++-----
6141 1 file changed, 19 insertions(+), 5 deletions(-)
6142
6143commit 913ddc5572b9455fa0cf299be2e35c708840e922
6144Author: Lasse Collin <lasse.collin@tukaani.org>
6145Date:   2022-09-04 23:23:00 +0300
6146
6147    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
6148    
6149    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
6150    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
6151    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
6152    API/ABI compatibility tracking isn't done between development
6153    releases so newer releases didn't have XZ_5.1.2alpha anymore.
6154    
6155    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
6156    the exported symbols compatible with 5.1.2alpha. After checking
6157    the ABI changes it turned out that >= 5.2.0 ABI is backward
6158    compatible with the threaded encoder functions from 5.1.2alpha
6159    (but not vice versa as fixes and extensions to these functions
6160    were made between 5.1.2alpha and 5.2.0).
6161    
6162    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
6163    xz-5.2.2-compat-libs.patch to modify liblzma.map:
6164    
6165      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
6166        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
6167    
6168      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
6169        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
6170        has never been used in XZ Utils). So XZ_5.2.2 lists all
6171        symbols that were listed under XZ_5.2 before the patch.
6172        lzma_stream_encoder_mt and _mt_memusage are included too so
6173        they are listed both here and under XZ_5.1.2alpha.
6174    
6175    The patch didn't add any __asm__(".symver ...") lines to the .c
6176    files. Thus the resulting liblzma.so exports the threaded encoder
6177    functions under XZ_5.1.2alpha only. Listing the two functions
6178    also under XZ_5.2.2 in liblzma.map has no effect without
6179    matching .symver lines.
6180    
6181    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
6182    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
6183    This is unfortunate but this alone isn't too bad as the problem
6184    is contained within RHEL/CentOS 7 and doesn't affect users
6185    of other distributions. It could also be fixed internally in
6186    RHEL/CentOS 7.
6187    
6188    The second problem is more serious: In XZ Utils 5.2.2 the API
6189    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
6190    This is true in RHEL/CentOS 7 version too. Thus now programs
6191    using new APIs can be compiled without an extra #define. However,
6192    the programs end up depending on symbol version XZ_5.1.2alpha
6193    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
6194    with an unpatched XZ Utils 5.2.2. This means that such binaries
6195    won't run on other distributions shipping XZ Utils >= 5.2.0 as
6196    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
6197    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
6198    luckily isn't included there anymore with XZ Utils 5.2.4.)
6199    
6200    Binaries built by RHEL/CentOS 7 users get distributed and then
6201    people wonder why they don't run on some other distribution.
6202    Seems that people have found out about the patch and been copying
6203    it to some build scripts, seemingly curing the symptoms but
6204    actually spreading the illness further and outside RHEL/CentOS 7.
6205    
6206    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
6207    had spread at least to EasyBuild. I heard about the events only
6208    recently. :-(
6209    
6210    This commit splits liblzma.map into two versions: one for
6211    GNU/Linux and another for other OSes that can use symbol versioning
6212    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
6213    matching additions to .c files add full compatibility with binaries
6214    that have been built against a RHEL/CentOS-patched liblzma. Builds
6215    for OSes other than GNU/Linux won't get the vaccine as they should
6216    be immune to the problem (I really hope that no build script uses
6217    the RHEL/CentOS 7 patch outside GNU/Linux).
6218    
6219    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
6220    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
6221    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
6222    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
6223    since XZ_5.2 {...} is the first one that lists that function.
6224    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
6225    will be missing but that's still a minor problem compared to
6226    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
6227    
6228    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
6229    to be moved around. It doesn't matter where it is put.
6230    
6231    Having two similar liblzma_*.map files is a bit silly as it is,
6232    at least for now, easily possible to generate the generic one
6233    from the Linux-specific file. But that adds extra steps and
6234    increases the risk of mistakes when supporting more than one
6235    build system. So I rather maintain two files in parallel and let
6236    validate_map.sh check that they are in sync when "make mydist"
6237    is run.
6238    
6239    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
6240    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
6241    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
6242    for these two). I added these anyway because someone might
6243    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
6244    (@@XZ_5.2.2) versions were exported too.
6245    
6246    At glance one could suggest using __typeof__ to copy the function
6247    prototypes when making aliases. However, this doesn't work trivially
6248    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
6249    and it won't change symbol visibility from hidden to default (done
6250    by LZMA_API()). Attributes could be copied with __copy__ attribute
6251    but that needs GCC 9 and a fallback method would be needed anyway.
6252    
6253    This uses __symver__ attribute with GCC >= 10 and
6254    __asm__(".symver ...") with everything else. The attribute method
6255    is required for LTO (-flto) support with GCC. Using -flto with
6256    GCC older than 10 is now broken on GNU/Linux and will not be fixed
6257    (can silently result in a broken liblzma build that has dangerously
6258    incorrect symbol versions). LTO builds with Clang seem to work
6259    with the traditional __asm__(".symver ...") method.
6260    
6261    Thanks to Boud Roukema for reporting the problem and discussing
6262    the details and testing the fix.
6263
6264 configure.ac                                     |  23 +++-
6265 src/liblzma/Makefile.am                          |  10 +-
6266 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
6267 src/liblzma/common/common.c                      |  14 +++
6268 src/liblzma/common/common.h                      |  28 +++++
6269 src/liblzma/common/hardware_cputhreads.c         |  12 +++
6270 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
6271 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
6272 src/liblzma/liblzma_linux.map                    | 131 +++++++++++++++++++++++
6273 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++--
6274 10 files changed, 382 insertions(+), 15 deletions(-)
6275
6276commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
6277Author: Lasse Collin <lasse.collin@tukaani.org>
6278Date:   2022-08-31 16:42:04 +0300
6279
6280    CMake: Add xz symlinks.
6281    
6282    These are a minor thing especially since the xz build has
6283    some real problems still like lack of large file support
6284    on 32-bit systems but I'll commit this since the code exists.
6285    
6286    Thanks to Jia Tan.
6287
6288 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
6289 1 file changed, 37 insertions(+), 1 deletion(-)
6290
6291commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
6292Author: Lasse Collin <lasse.collin@tukaani.org>
6293Date:   2022-08-31 16:29:38 +0300
6294
6295    CMake: Put xz man page install under if(UNIX) like is for xzdec.
6296    
6297    Thanks to Jia Tan.
6298
6299 CMakeLists.txt | 8 +++++---
6300 1 file changed, 5 insertions(+), 3 deletions(-)
6301
6302commit c1555b1a221a1427d4d650647531016d754bc4da
6303Author: Lasse Collin <lasse.collin@tukaani.org>
6304Date:   2022-08-22 18:16:40 +0300
6305
6306    Bump version number for 5.3.3alpha.
6307
6308 src/liblzma/api/lzma/version.h | 2 +-
6309 src/liblzma/liblzma.map        | 2 +-
6310 2 files changed, 2 insertions(+), 2 deletions(-)
6311
6312commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
6313Author: Lasse Collin <lasse.collin@tukaani.org>
6314Date:   2022-08-22 18:13:56 +0300
6315
6316    Add NEWS for 5.3.3alpha.
6317
6318 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6319 1 file changed, 119 insertions(+)
6320
6321commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
6322Author: Lasse Collin <lasse.collin@tukaani.org>
6323Date:   2022-07-12 17:59:41 +0300
6324
6325    Translations: Add Portuguese translation.
6326    
6327    Jia Tan made white-space changes and also changed "Language: pt_BR\n"
6328    to pt. The translator wasn't reached so I'm hoping these changes
6329    are OK and will commit it without translator's approval.
6330    
6331    Thanks to Pedro Albuquerque and Jia Tan.
6332
6333 po/LINGUAS |    1 +
6334 po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6335 2 files changed, 1002 insertions(+)
6336
6337commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
6338Author: Lasse Collin <lasse.collin@tukaani.org>
6339Date:   2022-07-10 21:16:40 +0300
6340
6341    Translations: Add Serbian translation.
6342    
6343    Quite a few white-space changes were made by Jia Tan to make
6344    this look good. Contacting the translator didn't succeed so
6345    I'm committing this without getting translator's approval.
6346    
6347    Thanks to ���������������� �������������� (Miroslav Nikolic) and Jia Tan.
6348
6349 po/LINGUAS |   1 +
6350 po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6351 2 files changed, 988 insertions(+)
6352
6353commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
6354Author: Lasse Collin <lasse.collin@tukaani.org>
6355Date:   2022-07-04 23:51:36 +0300
6356
6357    Translations: Add Swedish translation.
6358    
6359    Thanks to Sebastian Rasmussen and Jia Tan.
6360
6361 po/LINGUAS |   1 +
6362 po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6363 2 files changed, 984 insertions(+)
6364
6365commit c613598c358b640682d0ca2aed38fa7df763e8c7
6366Author: Lasse Collin <lasse.collin@tukaani.org>
6367Date:   2022-07-04 23:40:27 +0300
6368
6369    Translations: Add Esperanto translation.
6370    
6371    Thanks to Keith Bowes and Jia Tan.
6372
6373 po/LINGUAS |   1 +
6374 po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6375 2 files changed, 985 insertions(+)
6376
6377commit 659a587d678f21e98e91d2751c31d4ce050c081a
6378Author: Lasse Collin <lasse.collin@tukaani.org>
6379Date:   2022-07-01 00:22:33 +0300
6380
6381    Translations: Add Catalan translation.
6382    
6383    Thanks to Jordi Mas and Jia Tan.
6384
6385 po/LINGUAS |    1 +
6386 po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6387 2 files changed, 1077 insertions(+)
6388
6389commit 739fd8c9bdf1d85f57d56642aad87148d4779530
6390Author: Lasse Collin <lasse.collin@tukaani.org>
6391Date:   2022-06-30 17:47:08 +0300
6392
6393    Translations: Add Ukrainian translation.
6394    
6395    Thanks to Yuri Chornoivan and Jia Tan.
6396
6397 po/LINGUAS |   1 +
6398 po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6399 2 files changed, 997 insertions(+)
6400
6401commit 73280550b111930c62a667e56add8fd574f80bc8
6402Author: Lasse Collin <lasse.collin@tukaani.org>
6403Date:   2022-06-30 17:45:26 +0300
6404
6405    Translators: Add Romanian translation.
6406    
6407    Thanks to Remus-Gabriel Chelu and Jia Tan.
6408
6409 po/LINGUAS |    1 +
6410 po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6411 2 files changed, 1017 insertions(+)
6412
6413commit 2465f5b825152714b2c357d96c2422c31109d320
6414Author: Lasse Collin <lasse.collin@tukaani.org>
6415Date:   2022-06-29 18:33:32 +0300
6416
6417    Translations: Update Brazilian Portuguese translation.
6418    
6419    One msgstr was changed. The diff is long due to changes
6420    in the source code line numbers in the comments.
6421    
6422    Thanks to Rafael Fontenelle.
6423
6424 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
6425 1 file changed, 92 insertions(+), 94 deletions(-)
6426
6427commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
6428Author: Lasse Collin <lasse.collin@tukaani.org>
6429Date:   2022-06-29 18:04:44 +0300
6430
6431    Translations: Add Croatian translation.
6432    
6433    Thanks to Bo��idar Putanec and Jia Tan.
6434
6435 po/LINGUAS |   1 +
6436 po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6437 2 files changed, 988 insertions(+)
6438
6439commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
6440Author: Lasse Collin <lasse.collin@tukaani.org>
6441Date:   2022-06-29 17:58:48 +0300
6442
6443    Translations: Add Spanish translation.
6444    
6445    Thanks to Cristian Oth��n Mart��nez Vera and Jia Tan.
6446
6447 po/LINGUAS |   1 +
6448 po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6449 2 files changed, 985 insertions(+)
6450
6451commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
6452Author: Lasse Collin <lasse.collin@tukaani.org>
6453Date:   2022-06-29 17:49:43 +0300
6454
6455    Translations: Add Korean translation.
6456    
6457    Thanks to Seong-ho Cho and Jia Tan.
6458
6459 po/LINGUAS |   1 +
6460 po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6461 2 files changed, 973 insertions(+)
6462
6463commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
6464Author: Lasse Collin <lasse.collin@tukaani.org>
6465Date:   2020-03-16 21:57:21 +0200
6466
6467    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
6468    
6469    "make dist" updates the .po files and the fuzzy strings would
6470    result in multiple very wrong translations.
6471
6472 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
6473 1 file changed, 322 insertions(+), 270 deletions(-)
6474
6475commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
6476Author: Lasse Collin <lasse.collin@tukaani.org>
6477Date:   2020-03-16 17:30:39 +0200
6478
6479    Translations: Add partial Danish translation.
6480    
6481    I made a few minor white space changes without getting them
6482    approved by the Danish translation team.
6483
6484 po/LINGUAS |   1 +
6485 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6486 2 files changed, 897 insertions(+)
6487
6488commit 43e09c62e77cb8807d932c81de4decbdb956e184
6489Author: Lasse Collin <lasse.collin@tukaani.org>
6490Date:   2020-03-11 22:37:54 +0200
6491
6492    Translations: Add hu, zh_CN, and zh_TW.
6493    
6494    I made a few white space changes to these without getting them
6495    approved by the translation teams. (I tried to contact the hu and
6496    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
6497
6498 po/LINGUAS  |   3 +
6499 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6500 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6501 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6502 4 files changed, 2907 insertions(+)
6503
6504commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
6505Author: Lasse Collin <lasse.collin@tukaani.org>
6506Date:   2020-03-11 14:33:30 +0200
6507
6508    Translations: Update vi.po to match the file from the TP.
6509    
6510    The translated strings haven't been updated but word wrapping
6511    is different.
6512
6513 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
6514 1 file changed, 179 insertions(+), 228 deletions(-)
6515
6516commit 801f39691fc4abc6dd33d7653d498781b593f3eb
6517Author: Lasse Collin <lasse.collin@tukaani.org>
6518Date:   2020-03-11 14:18:03 +0200
6519
6520    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
6521    
6522    The German translation isn't identical to the file in
6523    the Translation Project but the changes (white space changes
6524    only) were approved by the translator Mario Bl��ttermann.
6525
6526 po/LINGUAS  |    2 +
6527 po/de.po    |  476 ++++++++++++++--------------
6528 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6529 po/fr.po    |  272 ++++++++--------
6530 po/it.po    |  479 ++++++++++++----------------
6531 po/pl.po    |  239 +++++++-------
6532 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6533 7 files changed, 2697 insertions(+), 746 deletions(-)
6534
6535commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
6536Author: Lasse Collin <lasse.collin@tukaani.org>
6537Date:   2022-08-22 17:27:19 +0300
6538
6539    xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress.
6540
6541 src/xz/xz.1 | 31 +++++++++++++++++++------------
6542 1 file changed, 19 insertions(+), 12 deletions(-)
6543
6544commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
6545Author: Lasse Collin <lasse.collin@tukaani.org>
6546Date:   2022-08-22 16:46:18 +0300
6547
6548    CMake: Add liblzma tests.
6549    
6550    Thanks to Jia Tan for the patch.
6551
6552 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
6553 1 file changed, 52 insertions(+), 1 deletion(-)
6554
6555commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
6556Author: Lasse Collin <lasse.collin@tukaani.org>
6557Date:   2022-08-19 23:32:22 +0300
6558
6559    xz: Revise --info-memory output.
6560    
6561    The strings could be more descriptive but it's good
6562    to have some version of this committed now.
6563    
6564    --robot mode wasn't changed yet.
6565
6566 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------
6567 src/xz/xz.1       |  1 +
6568 2 files changed, 27 insertions(+), 6 deletions(-)
6569
6570commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
6571Author: Lasse Collin <lasse.collin@tukaani.org>
6572Date:   2022-08-19 23:12:02 +0300
6573
6574    xz: Update the man page for threaded decompression and memlimits.
6575    
6576    This documents the changes made in commits
6577    6c6da57ae2aa962aabde6892442227063d87e88c,
6578    cad299008cf73ec566f0662a9cf2b94f86a99659, and
6579    898faa97287a756231c663a3ed5165672b417207.
6580    
6581    The --info-memory bit hasn't been finished yet
6582    even though it's already mentioned in this commit
6583    under --memlimit-mt-decompress and --threads.
6584
6585 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
6586 1 file changed, 121 insertions(+), 27 deletions(-)
6587
6588commit d13bfcc0056617dd648f655a01653932fad7067f
6589Author: Lasse Collin <lasse.collin@tukaani.org>
6590Date:   2022-08-18 17:49:16 +0300
6591
6592    Build: Include the CMake files in the distribution.
6593    
6594    This was supposed to be done in 2020 with 5.2.5 release
6595    already but it was noticed only today. 5.2.5 and 5.2.6
6596    even mention experiemental CMake support in the NEWS entries.
6597    
6598    Thanks to Olivier B. for reporting the problem.
6599
6600 Makefile.am | 2 ++
6601 1 file changed, 2 insertions(+)
6602
6603commit e66787bcfefdb93f19c974f895f65969a77937b0
6604Author: Lasse Collin <lasse.collin@tukaani.org>
6605Date:   2022-08-18 17:38:05 +0300
6606
6607    Windows: Fix broken liblzma.dll build with Visual Studio project files.
6608    
6609    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
6610    "Windows: Fix building of resource files when config.h isn't used."
6611    
6612    That commit fixed liblzma.dll build with CMake while keeping it
6613    working with Autotools on Windows but the VS project files were
6614    forgotten.
6615    
6616    I haven't tested these changes.
6617    
6618    Thanks to Olivier B. for reporting the bug and for the initial patch.
6619
6620 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
6621 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
6622 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
6623 3 files changed, 18 insertions(+)
6624
6625commit c4e8e5fb311225b8b48d34157891a640b2535e0c
6626Author: Lasse Collin <lasse.collin@tukaani.org>
6627Date:   2022-08-18 17:16:49 +0300
6628
6629    liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used.
6630    
6631    It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR)
6632    if LZMA_FINISH is used and there isn't enough input to finish
6633    decoding the Block Header or the Block. The use of LZMA_DATA_ERROR
6634    is simpler and the less risky than LZMA_BUF_ERROR but this might
6635    be changed before 5.4.0.
6636
6637 src/liblzma/api/lzma/container.h       |  6 +++++
6638 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++
6639 2 files changed, 48 insertions(+)
6640
6641commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
6642Author: Lasse Collin <lasse.collin@tukaani.org>
6643Date:   2022-08-12 18:31:47 +0300
6644
6645    Add NEWS for 5.2.6.
6646
6647 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6648 1 file changed, 121 insertions(+)
6649
6650commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
6651Author: Lasse Collin <lasse.collin@tukaani.org>
6652Date:   2022-08-12 14:28:41 +0300
6653
6654    Add Jia Tan to AUTHORS.
6655
6656 AUTHORS | 2 +-
6657 1 file changed, 1 insertion(+), 1 deletion(-)
6658
6659commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
6660Author: Lasse Collin <lasse.collin@tukaani.org>
6661Date:   2022-07-25 19:28:26 +0300
6662
6663    Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
6664    
6665    This makes ChangeLog smaller.
6666
6667 Makefile.am | 2 +-
6668 1 file changed, 1 insertion(+), 1 deletion(-)
6669
6670commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
6671Author: Lasse Collin <lasse.collin@tukaani.org>
6672Date:   2022-07-25 19:11:05 +0300
6673
6674    Translations: Change the copyright comment string to use with po4a.
6675    
6676    This affects the second line in po4a/xz-man.pot. The man pages of
6677    xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
6678    while the rest of the man pages are in the public domain.
6679
6680 po4a/update-po | 2 +-
6681 1 file changed, 1 insertion(+), 1 deletion(-)
6682
6683commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
6684Author: Jia Tan <jiat0218@gmail.com>
6685Date:   2022-07-25 18:30:05 +0300
6686
6687    liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.
6688
6689 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
6690 1 file changed, 14 insertions(+), 18 deletions(-)
6691
6692commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
6693Author: Jia Tan <jiat0218@gmail.com>
6694Date:   2022-07-25 18:20:01 +0300
6695
6696    Build: Don't allow empty LIST in --enable-match-finders=LIST.
6697    
6698    It's enforced only when a match finder is needed, that is,
6699    when LZMA1 or LZMA2 encoder is enabled.
6700
6701 configure.ac | 4 ++++
6702 1 file changed, 4 insertions(+)
6703
6704commit 9cc721af5436908f2d5a828aebbc4050a32a3487
6705Author: Lasse Collin <lasse.collin@tukaani.org>
6706Date:   2022-07-24 13:27:48 +0300
6707
6708    xz: Update the man page that change to --keep will be in 5.2.6.
6709
6710 src/xz/xz.1 | 4 ++--
6711 1 file changed, 2 insertions(+), 2 deletions(-)
6712
6713commit b81bf0c7d1873e52a4086a9abb494471d652cb55
6714Author: Lasse Collin <lasse.collin@tukaani.org>
6715Date:   2022-07-19 23:23:54 +0300
6716
6717    Update THANKS.
6718
6719 THANKS | 1 +
6720 1 file changed, 1 insertion(+)
6721
6722commit 340cf1ec3927767046b8293a49da3db4e393f426
6723Author: Nicholas Jackson <nickajacks1@gmail.com>
6724Date:   2022-07-17 17:39:23 -0700
6725
6726    CMake: Add missing source file to liblzma build
6727
6728 CMakeLists.txt | 1 +
6729 1 file changed, 1 insertion(+)
6730
6731commit d796b6d7fdb8b7238b277056cf9146cce25db604
6732Author: Lasse Collin <lasse.collin@tukaani.org>
6733Date:   2022-07-19 23:19:49 +0300
6734
6735    xzgrep man page: Document exit statuses.
6736
6737 src/scripts/xzgrep.1 | 15 ++++++++++++++-
6738 1 file changed, 14 insertions(+), 1 deletion(-)
6739
6740commit 923bf96b55e5216a6c8df9d8331934f54784390e
6741Author: Lasse Collin <lasse.collin@tukaani.org>
6742Date:   2022-07-19 23:13:24 +0300
6743
6744    xzgrep: Improve error handling, especially signals.
6745    
6746    xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
6747    should have. It's quite possible that it's not perfect still
6748    but at least it's much better.
6749    
6750    If multiple exit statuses compete, now it tries to pick
6751    the largest of value.
6752    
6753    Some comments were added.
6754    
6755    The exit status handling of signals is still broken if the shell
6756    uses values larger than 255 in $? to indicate that a process
6757    died due to a signal ***and*** their "exit" command doesn't take
6758    this into account. This seems to work well with the ksh and yash
6759    versions I tried. However, there is a report in gzip/zgrep that
6760    OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
6761    the argument to 8 bits:
6762    
6763        https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
6764    
6765    Such a bug would break xzgrep but I didn't add a workaround
6766    at least for now. 5.11 is old and I don't know if the problem
6767    exists in modern descendants, or if the problem exists in other
6768    ksh implementations in use.
6769
6770 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
6771 1 file changed, 53 insertions(+), 19 deletions(-)
6772
6773commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
6774Author: Lasse Collin <lasse.collin@tukaani.org>
6775Date:   2022-07-19 00:10:55 +0300
6776
6777    xzgrep: Make the fix for ZDI-CAN-16587 more robust.
6778    
6779    I don't know if this can make a difference in the real world
6780    but it looked kind of suspicious (what happens with sed
6781    implementations that cannot process very long lines?).
6782    At least this commit shouldn't make it worse.
6783
6784 src/scripts/xzgrep.in | 5 ++++-
6785 1 file changed, 4 insertions(+), 1 deletion(-)
6786
6787commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
6788Author: Lasse Collin <lasse.collin@tukaani.org>
6789Date:   2022-07-18 21:52:31 +0300
6790
6791    xzgrep: Use grep -H --label when available (GNU, *BSDs).
6792    
6793    It avoids the use of sed for prefixing filenames to output lines.
6794    Using sed for that is slower and prone to security bugs so now
6795    the sed method is only used as a fallback.
6796    
6797    This also fixes an actual bug: When grepping a binary file,
6798    GNU grep nowadays prints its diagnostics to stderr instead of
6799    stdout and thus the sed-method for prefixing the filename doesn't
6800    work. So with this commit grepping binary files gives reasonable
6801    output with GNU grep now.
6802    
6803    This was inspired by zgrep but the implementation is different.
6804
6805 src/scripts/xzgrep.in | 21 +++++++++++++++++++++
6806 1 file changed, 21 insertions(+)
6807
6808commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
6809Author: Lasse Collin <lasse.collin@tukaani.org>
6810Date:   2022-07-18 21:10:25 +0300
6811
6812    xzgrep: Use -e to specify the pattern to grep.
6813    
6814    Now we don't need the separate test for adding the -q option
6815    as it can be added directly in the two places where it's needed.
6816
6817 src/scripts/xzgrep.in | 12 ++++--------
6818 1 file changed, 4 insertions(+), 8 deletions(-)
6819
6820commit bad61b5997e6647911974022bfb72f3d4818a594
6821Author: Lasse Collin <lasse.collin@tukaani.org>
6822Date:   2022-07-18 19:18:48 +0300
6823
6824    Scripts: Use printf instead of echo in a few places.
6825    
6826    It's a good habbit as echo has some portability corner cases
6827    when the string contents can be anything.
6828
6829 src/scripts/xzdiff.in | 6 +++---
6830 src/scripts/xzgrep.in | 4 ++--
6831 src/scripts/xzless.in | 4 ++--
6832 src/scripts/xzmore.in | 8 ++++----
6833 4 files changed, 11 insertions(+), 11 deletions(-)
6834
6835commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
6836Author: Lasse Collin <lasse.collin@tukaani.org>
6837Date:   2022-07-17 21:36:25 +0300
6838
6839    xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
6840    
6841    Also replace one use of expr with printf.
6842    
6843    The rationale for LC_ALL=C was already mentioned in
6844    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
6845    issue. However, unrelated uses weren't changed in that commit yet.
6846    
6847    POSIX says that with sed and such tools one should use LC_ALL=C
6848    to ensure predictable behavior when strings contain byte sequences
6849    that aren't valid multibyte characters in the current locale. See
6850    under "Application usage" in here:
6851    
6852    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
6853    
6854    With GNU sed invalid multibyte strings would work without this;
6855    it's documented in its Texinfo manual. Some other implementations
6856    aren't so forgiving.
6857
6858 src/scripts/xzgrep.in | 14 ++++++++------
6859 1 file changed, 8 insertions(+), 6 deletions(-)
6860
6861commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
6862Author: Lasse Collin <lasse.collin@tukaani.org>
6863Date:   2022-07-17 20:55:16 +0300
6864
6865    xzgrep: Fix parsing of certain options.
6866    
6867    Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
6868    an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
6869    instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
6870    
6871    Add -E, -F, -G, and -P to the "no argument required" list.
6872    
6873    Add -X to "argument required" list. It is an
6874    intentionally-undocumented GNU grep option so this isn't
6875    an important option for xzgrep but it seems that other grep
6876    implementations (well, those that I checked) don't support -X
6877    so I hope this change is an improvement still.
6878    
6879    grep -d (grep --directories=ACTION) requires an argument. In
6880    contrast to zgrep, I kept -d in the "no argument required" list
6881    because it's not supported in xzgrep (or zgrep). This way
6882    "xzgrep -d" gives an error about option being unsupported instead
6883    of telling that it requires an argument. Both zgrep and xzgrep
6884    tell that it's unsupported if an argument is specified.
6885    
6886    Add comments.
6887
6888 src/scripts/xzgrep.in | 19 +++++++++++++++++--
6889 1 file changed, 17 insertions(+), 2 deletions(-)
6890
6891commit 2d2201bc6315deda4d43625aa510972467bd51d4
6892Author: Lasse Collin <lasse.collin@tukaani.org>
6893Date:   2022-07-14 20:33:05 +0300
6894
6895    Tests: Add the .lzma files to test_files.sh.
6896
6897 tests/test_files.sh | 20 ++++++++++++++++++++
6898 1 file changed, 20 insertions(+)
6899
6900commit ce5549a591bf126300618879f5b24023351baff6
6901Author: Lasse Collin <lasse.collin@tukaani.org>
6902Date:   2022-07-14 19:37:42 +0300
6903
6904    Tests: Add .lzma test files.
6905
6906 tests/files/README                                 |  63 ++++++++++++++++-----
6907 tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
6908 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
6909 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
6910 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
6911 tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
6912 tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
6913 tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
6914 tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
6915 9 files changed, 50 insertions(+), 13 deletions(-)
6916
6917commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
6918Author: Lasse Collin <lasse.collin@tukaani.org>
6919Date:   2022-07-14 18:12:38 +0300
6920
6921    liblzma: Rename a variable and improve a comment.
6922
6923 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
6924 1 file changed, 9 insertions(+), 4 deletions(-)
6925
6926commit 511feb5eadb988d641b025d597f4fac7502003b8
6927Author: Lasse Collin <lasse.collin@tukaani.org>
6928Date:   2022-07-13 22:24:41 +0300
6929
6930    Update THANKS.
6931
6932 THANKS | 1 +
6933 1 file changed, 1 insertion(+)
6934
6935commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
6936Author: Lasse Collin <lasse.collin@tukaani.org>
6937Date:   2022-07-13 22:24:07 +0300
6938
6939    liblzma: Add optional autodetection of LZMA end marker.
6940    
6941    Turns out that this is needed for .lzma files as the spec in
6942    LZMA SDK says that end marker may be present even if the size
6943    is stored in the header. Such files are rare but exist in the
6944    real world. The code in liblzma is so old that the spec didn't
6945    exist in LZMA SDK back then and I had understood that such
6946    files weren't possible (the lzma tool in LZMA SDK didn't
6947    create such files).
6948    
6949    This modifies the internal API so that LZMA decoder can be told
6950    if EOPM is allowed even when the uncompressed size is known.
6951    It's allowed with .lzma and not with other uses.
6952    
6953    Thanks to Karl Beldan for reporting the problem.
6954
6955 doc/lzma-file-format.txt               | 11 +++-
6956 src/liblzma/common/alone_decoder.c     |  2 +-
6957 src/liblzma/common/microlzma_decoder.c |  2 +-
6958 src/liblzma/lz/lz_decoder.c            | 10 +++-
6959 src/liblzma/lz/lz_decoder.h            |  8 +--
6960 src/liblzma/lzma/lzma2_decoder.c       |  2 +-
6961 src/liblzma/lzma/lzma_decoder.c        | 99 ++++++++++++++++++++++++----------
6962 7 files changed, 95 insertions(+), 39 deletions(-)
6963
6964commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
6965Author: Lasse Collin <lasse.collin@tukaani.org>
6966Date:   2022-07-12 18:53:04 +0300
6967
6968    xz: Document the special memlimit case of 2000 MiB on MIPS32.
6969    
6970    See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7.
6971
6972 src/xz/xz.1 | 8 ++++++--
6973 1 file changed, 6 insertions(+), 2 deletions(-)
6974
6975commit d1bfa3dc703325ecd974167e864a8712fdfe936e
6976Author: Jia Tan <jiat0218@gmail.com>
6977Date:   2022-07-01 21:19:26 +0800
6978
6979    Created script to generate code coverage reports.
6980    
6981    The script uses lcov and genhtml after running the tests
6982    to show the code coverage statistics. The script will create
6983    a coverage directory where it is run. It can be run both in
6984    and out of the source directory.
6985
6986 .gitignore             |  4 +++
6987 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
6988 2 files changed, 83 insertions(+)
6989
6990commit 86a30b0255d8064169fabfd213d907016d2f9f2a
6991Author: Jia Tan <jiat0218@gmail.com>
6992Date:   2022-06-16 17:32:19 +0300
6993
6994    Tests: Add more tests into test_check.
6995
6996 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++--
6997 tests/tests.h      |  23 +++++
6998 2 files changed, 295 insertions(+), 7 deletions(-)
6999
7000commit 82e30fed66a89706388a8c15dc954d84e63f38fa
7001Author: Lasse Collin <lasse.collin@tukaani.org>
7002Date:   2022-06-16 15:02:57 +0300
7003
7004    Tests: Use char[][24] array for enum_strings_lzma_ret.
7005    
7006    Array of pointers to short strings is a bit pointless here
7007    and now it's fully const.
7008
7009 tests/tests.h | 2 +-
7010 1 file changed, 1 insertion(+), 1 deletion(-)
7011
7012commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
7013Author: Lasse Collin <lasse.collin@tukaani.org>
7014Date:   2022-06-16 14:12:14 +0300
7015
7016    Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.
7017
7018 tests/tuktest.h | 72 +++++++++++++++++++++++++--------------------------------
7019 1 file changed, 32 insertions(+), 40 deletions(-)
7020
7021commit b339892668da20aea22a93668c82b87a38e4a97f
7022Author: Lasse Collin <lasse.collin@tukaani.org>
7023Date:   2022-06-16 13:29:59 +0300
7024
7025    Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.
7026
7027 tests/test_bcj_exact_size.c |  4 +---
7028 tests/tuktest.h             | 52 +++++++++++++++++++++------------------------
7029 2 files changed, 25 insertions(+), 31 deletions(-)
7030
7031commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
7032Author: Lasse Collin <lasse.collin@tukaani.org>
7033Date:   2022-06-16 13:08:19 +0300
7034
7035    Tests: tuktest.h: Add malloc wrapper with automatic freeing.
7036
7037 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7038 1 file changed, 124 insertions(+)
7039
7040commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
7041Author: Lasse Collin <lasse.collin@tukaani.org>
7042Date:   2022-06-16 11:47:37 +0300
7043
7044    Tests: tuktest.h: Move a function.
7045
7046 tests/tuktest.h | 44 ++++++++++++++++++++++----------------------
7047 1 file changed, 22 insertions(+), 22 deletions(-)
7048
7049commit 70c7555f6403553ee35539e869de0025592d8564
7050Author: Lasse Collin <lasse.collin@tukaani.org>
7051Date:   2022-06-14 22:21:15 +0300
7052
7053    Tests: test_vli: Remove an invalid test-assertion.
7054    
7055    lzma_vli is unsigned so trying a signed value results in
7056    a compiler warning from -Wsign-conversion. (lzma_vli)-1
7057    equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
7058
7059 tests/test_vli.c | 2 --
7060 1 file changed, 2 deletions(-)
7061
7062commit 154b73c5a1092c3f785e01666b564ad7ff1be555
7063Author: Lasse Collin <lasse.collin@tukaani.org>
7064Date:   2022-06-14 22:10:10 +0300
7065
7066    Tests: test_vli: Add const where appropriate.
7067
7068 tests/test_vli.c | 53 ++++++++++++++++++++++++++++-------------------------
7069 1 file changed, 28 insertions(+), 25 deletions(-)
7070
7071commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
7072Author: Jia Tan <jiat75@gmail.com>
7073Date:   2022-06-13 20:27:03 +0800
7074
7075    Added vli tests to .gitignore
7076
7077 .gitignore | 1 +
7078 1 file changed, 1 insertion(+)
7079
7080commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
7081Author: Jia Tan <jiat0218@gmail.com>
7082Date:   2022-06-12 11:31:40 +0800
7083
7084    Created tests for all functions exported in vli.h
7085    
7086    Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
7087
7088 tests/Makefile.am |   4 +-
7089 tests/test_vli.c  | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
7090 2 files changed, 311 insertions(+), 1 deletion(-)
7091
7092commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
7093Author: jiat75 <jiat0218@gmail.com>
7094Date:   2022-06-03 21:24:54 +0800
7095
7096    Added parallel test artifacts to .gitignore
7097
7098 .gitignore | 2 ++
7099 1 file changed, 2 insertions(+)
7100
7101commit 00e3613f1212eaa84e721585fdb4de6967cf2476
7102Author: Lasse Collin <lasse.collin@tukaani.org>
7103Date:   2022-06-14 21:29:21 +0300
7104
7105    Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.
7106    
7107    It's much nicer this way so that the test data isn't a hardcoded
7108    table inside the C file.
7109
7110 tests/test_bcj_exact_size.c | 19 +++++++------------
7111 1 file changed, 7 insertions(+), 12 deletions(-)
7112
7113commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
7114Author: Lasse Collin <lasse.collin@tukaani.org>
7115Date:   2022-06-14 21:26:13 +0300
7116
7117    Tests: Add file reading helpers to tuktest.h.
7118
7119 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
7120 1 file changed, 176 insertions(+), 7 deletions(-)
7121
7122commit 83d2337b72dbf391c6f3b41889eea99e51679105
7123Author: Lasse Collin <lasse.collin@tukaani.org>
7124Date:   2022-06-14 18:21:57 +0300
7125
7126    Tests: tuktest.h: Move a printf from a macro to a helper function.
7127
7128 tests/tuktest.h | 26 ++++++++++++++++++--------
7129 1 file changed, 18 insertions(+), 8 deletions(-)
7130
7131commit f9e8176ea7d520797a2db2d49a5a632c285674a8
7132Author: Lasse Collin <lasse.collin@tukaani.org>
7133Date:   2022-06-14 17:20:49 +0300
7134
7135    Tests: Add test file good-1-empty-bcj-lzma2.xz.
7136    
7137    This is from test_bcj_exact_size.c.
7138    It's good to have it as a standalone file.
7139
7140 tests/files/README                    |   5 +++++
7141 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
7142 2 files changed, 5 insertions(+)
7143
7144commit aa75c5563a760aea3aa23d997d519e702e82726b
7145Author: Jia Tan <jiat0218@gmail.com>
7146Date:   2022-06-10 21:35:18 +0800
7147
7148    Tests: Created tests for hardware functions.
7149    
7150    Created tests for all API functions exported in
7151    src/liblzma/api/lzma/hardware.h. The tests are fairly trivial
7152    but are helpful because they will inform users if their machines
7153    cannot support these functions. They also improve the code
7154    coverage metrics.
7155
7156 .gitignore            |  1 +
7157 tests/Makefile.am     |  2 ++
7158 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
7159 3 files changed, 48 insertions(+)
7160
7161commit 5c8ffdca20813939818843476fb212dfae8838a3
7162Author: Lasse Collin <lasse.collin@tukaani.org>
7163Date:   2022-06-02 21:01:45 +0300
7164
7165    Tests: Convert test_check to tuktest.
7166    
7167    Thanks to Jia Tan for help with all the tests.
7168
7169 tests/test_check.c | 67 +++++++++++++++++++++++++++---------------------------
7170 1 file changed, 33 insertions(+), 34 deletions(-)
7171
7172commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
7173Author: Lasse Collin <lasse.collin@tukaani.org>
7174Date:   2022-06-02 20:31:03 +0300
7175
7176    Tests: Convert test_block_header to tuktest.
7177
7178 tests/test_block_header.c | 89 +++++++++++++++++++++++++++--------------------
7179 1 file changed, 52 insertions(+), 37 deletions(-)
7180
7181commit 754d39fbebee3782258d42f154a223d3c5770ec7
7182Author: Lasse Collin <lasse.collin@tukaani.org>
7183Date:   2022-06-02 20:28:23 +0300
7184
7185    Tests: Convert test_bcj_exact_size to tuktest.
7186    
7187    The compress() and decompress() functions were merged because
7188    the later depends on the former so they need to be a single
7189    test case.
7190
7191 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++--------------------
7192 1 file changed, 41 insertions(+), 34 deletions(-)
7193
7194commit 96da21470f9570cd08286906a050a7c22631775b
7195Author: Lasse Collin <lasse.collin@tukaani.org>
7196Date:   2022-06-02 20:27:00 +0300
7197
7198    Tests: Include tuktest.h in tests.h.
7199    
7200    This breaks -Werror because none of the tests so far use
7201    tuktest.h and thus there are warnings about unused variables
7202    and functions.
7203
7204 tests/tests.h | 47 +++++++++++++++++++++++------------------------
7205 1 file changed, 23 insertions(+), 24 deletions(-)
7206
7207commit df71ba1c991f60c3269aaadd398247e632714626
7208Author: Lasse Collin <lasse.collin@tukaani.org>
7209Date:   2022-06-02 20:25:21 +0300
7210
7211    Tests: Add tuktest.h mini-test-framework.
7212
7213 tests/Makefile.am |   1 +
7214 tests/tuktest.h   | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
7215 2 files changed, 753 insertions(+)
7216
7217commit 4773608554d1b684a05ff9c1d879cf5c42266d33
7218Author: Lasse Collin <lasse.collin@tukaani.org>
7219Date:   2022-05-23 21:31:36 +0300
7220
7221    Build: Enable Automake's parallel test harness.
7222    
7223    It has been the default for quite some time already and
7224    the old serial harness isn't discouraged. The downside is
7225    that with parallel tests one cannot print progress info or
7226    other diagnostics to the terminal; all output from the tests
7227    will be in the log files only. But now that the compression
7228    tests are separated the parallel tests will speed things up.
7229
7230 configure.ac | 2 +-
7231 1 file changed, 1 insertion(+), 1 deletion(-)
7232
7233commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
7234Author: Lasse Collin <lasse.collin@tukaani.org>
7235Date:   2022-05-23 21:17:47 +0300
7236
7237    Tests: Split test_compress.sh into separate test unit for each file.
7238    
7239    test_compress.sh now takes one command line argument:
7240    a filename to be tested. If it begins with "compress_generated_"
7241    the file will be created with create_compress_files.
7242    
7243    This will allow parallel execution of the slow tests.
7244
7245 tests/Makefile.am                      | 11 +++-
7246 tests/test_compress.sh                 | 91 +++++++++++++++++++---------------
7247 tests/test_compress_generated_abc      |  3 ++
7248 tests/test_compress_generated_random   |  3 ++
7249 tests/test_compress_generated_text     |  3 ++
7250 tests/test_compress_prepared_bcj_sparc |  3 ++
7251 tests/test_compress_prepared_bcj_x86   |  3 ++
7252 7 files changed, 77 insertions(+), 40 deletions(-)
7253
7254commit c7758ac9c734707514dd34f254173ebac5eea7f8
7255Author: Lasse Collin <lasse.collin@tukaani.org>
7256Date:   2022-05-23 20:32:49 +0300
7257
7258    Test: Make create_compress_files.c a little more flexible.
7259    
7260    If a command line argument is given, then only the test file
7261    of that type is created. It's quite dumb in sense that unknown
7262    names don't give an error but it's good enough here.
7263    
7264    Also use EXIT_FAILURE instead of 1 as exit status for errors.
7265
7266 tests/create_compress_files.c | 25 +++++++++++++++----------
7267 1 file changed, 15 insertions(+), 10 deletions(-)
7268
7269commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
7270Author: Lasse Collin <lasse.collin@tukaani.org>
7271Date:   2022-05-23 20:17:42 +0300
7272
7273    Tests: Remove unneeded commented lines from test_compress.sh.
7274
7275 tests/test_compress.sh | 13 -------------
7276 1 file changed, 13 deletions(-)
7277
7278commit 2ee50d150ee009f36135540b459e6ff328549725
7279Author: Lasse Collin <lasse.collin@tukaani.org>
7280Date:   2022-05-23 20:16:00 +0300
7281
7282    Tests: Remove progress indicator from test_compress.sh.
7283    
7284    It will be useless with Automake's parallel tests.
7285
7286 tests/test_compress.sh | 9 ---------
7287 1 file changed, 9 deletions(-)
7288
7289commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
7290Author: Lasse Collin <lasse.collin@tukaani.org>
7291Date:   2022-05-23 19:37:18 +0300
7292
7293    liblzma: Silence a warning.
7294    
7295    The actual initialization is done via mythread_sync and seems
7296    that GCC doesn't necessarily see that it gets initialized there.
7297
7298 src/liblzma/common/stream_decoder_mt.c | 2 +-
7299 1 file changed, 1 insertion(+), 1 deletion(-)
7300
7301commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
7302Author: Lasse Collin <lasse.collin@tukaani.org>
7303Date:   2022-04-14 20:53:16 +0300
7304
7305    xz: Fix build with --disable-threads.
7306
7307 src/xz/hardware.c | 4 ++++
7308 1 file changed, 4 insertions(+)
7309
7310commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
7311Author: Lasse Collin <lasse.collin@tukaani.org>
7312Date:   2022-04-14 14:50:17 +0300
7313
7314    xz: Change the cap of the default -T0 memlimit for 32-bit xz.
7315    
7316    The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room
7317    and it looks like a round (artificial) number in --info-memory
7318    once --info-memory is made to display it.
7319    
7320    Also, using #if avoids useless code on 64-bit builds.
7321
7322 src/xz/hardware.c | 4 +++-
7323 1 file changed, 3 insertions(+), 1 deletion(-)
7324
7325commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
7326Author: Lasse Collin <lasse.collin@tukaani.org>
7327Date:   2022-04-14 14:20:46 +0300
7328
7329    xz: Add a default soft memory usage limit for --threads=0.
7330    
7331    This is a soft limit in sense that it only affects the number of
7332    threads. It never makes xz fail and it never makes xz change
7333    settings that would affect the compressed output.
7334    
7335    The idea is to make -T0 have more reasonable behavior when
7336    the system has very many cores or when a memory-hungry
7337    compression options are used. This also helps with 32-bit xz,
7338    preventing it from running out of address space.
7339    
7340    The downside of this commit is that now the number of threads
7341    might become too low compared to what the user expected. I
7342    hope this to be an acceptable compromise as the old behavior
7343    has been a source of well-argued complaints for a long time.
7344
7345 src/xz/coder.c    | 28 ++++++++++++++++++++++++++--
7346 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++---------
7347 src/xz/hardware.h | 27 +++++++++++++++++++++++++++
7348 3 files changed, 82 insertions(+), 11 deletions(-)
7349
7350commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
7351Author: Lasse Collin <lasse.collin@tukaani.org>
7352Date:   2022-04-14 12:59:09 +0300
7353
7354    xz: Make -T0 use multithreaded mode on single-core systems.
7355    
7356    The main problem withi the old behavior is that the compressed
7357    output is different on single-core systems vs. multicore systems.
7358    This commit fixes it by making -T0 one thread in multithreaded mode
7359    on single-core systems.
7360    
7361    The downside of this is that it uses more memory. However, if
7362    --memlimit-compress is used, xz can (thanks to the previous commit)
7363    drop to the single-threaded mode still.
7364
7365 src/xz/coder.c    | 18 +++++++++---------
7366 src/xz/hardware.c | 14 ++++++++++++++
7367 src/xz/hardware.h |  4 ++++
7368 3 files changed, 27 insertions(+), 9 deletions(-)
7369
7370commit 898faa97287a756231c663a3ed5165672b417207
7371Author: Lasse Collin <lasse.collin@tukaani.org>
7372Date:   2022-04-14 12:38:00 +0300
7373
7374    xz: Changes to --memlimit-compress and --no-adjust.
7375    
7376    In single-threaded mode, --memlimit-compress can make xz scale down
7377    the LZMA2 dictionary size to meet the memory usage limit. This
7378    obviously affects the compressed output. However, if xz was in
7379    threaded mode, --memlimit-compress could make xz reduce the number
7380    of threads but it wouldn't make xz switch from multithreaded mode
7381    to single-threaded mode or scale down the LZMA2 dictionary size.
7382    This seemed illogical and there was even a "FIXME?" about it.
7383    
7384    Now --memlimit-compress can make xz switch to single-threaded
7385    mode if one thread in multithreaded mode uses too much memory.
7386    If memory usage is still too high, then the LZMA2 dictionary
7387    size can be scaled down too.
7388    
7389    The option --no-adjust was also changed so that it no longer
7390    prevents xz from scaling down the number of threads as that
7391    doesn't affect compressed output (only performance). After
7392    this commit --no-adjust only prevents adjustments that affect
7393    compressed output, that is, with --no-adjust xz won't switch
7394    from multithreaded mode to single-threaded mode and won't
7395    scale down the LZMA2 dictionary size.
7396    
7397    The man page wasn't updated yet.
7398
7399 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++-------------------
7400 1 file changed, 43 insertions(+), 20 deletions(-)
7401
7402commit cad299008cf73ec566f0662a9cf2b94f86a99659
7403Author: Lasse Collin <lasse.collin@tukaani.org>
7404Date:   2022-04-11 22:20:49 +0300
7405
7406    xz: Add --memlimit-mt-decompress along with a default limit value.
7407    
7408    --memlimit-mt-decompress allows specifying the limit for
7409    multithreaded decompression. This matches memlimit_threading in
7410    liblzma. This limit can only affect the number of threads being
7411    used; it will never prevent xz from decompressing a file. The
7412    old --memlimit-decompress option is still used at the same time.
7413    
7414    If the value of --memlimit-decompress (the default value or
7415    one specified by the user) is less than the value of
7416    --memlimit-mt-decompress , then --memlimit-mt-decompress is
7417    reduced to match --memlimit-decompress.
7418    
7419    Man page wasn't updated yet.
7420
7421 src/xz/args.c     | 24 +++++++++++++++-------
7422 src/xz/coder.c    | 34 ++++++++++---------------------
7423 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
7424 src/xz/hardware.h | 17 ++++++++++------
7425 src/xz/message.c  |  4 +++-
7426 5 files changed, 97 insertions(+), 42 deletions(-)
7427
7428commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
7429Author: Lasse Collin <lasse.collin@tukaani.org>
7430Date:   2022-04-06 23:11:59 +0300
7431
7432    liblzma: Threaded decoder: Improve setting of pending_error.
7433    
7434    It doesn't need to be done conditionally. The comments try
7435    to explain it.
7436
7437 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++-----------
7438 1 file changed, 35 insertions(+), 16 deletions(-)
7439
7440commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
7441Author: Lasse Collin <lasse.collin@tukaani.org>
7442Date:   2022-04-06 12:39:49 +0300
7443
7444    liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder.
7445    
7446    In most cases if the input file is corrupt the application won't
7447    care about the uncompressed content at all. With this new flag
7448    the threaded decoder will return an error as soon as any thread
7449    has detected an error; it won't wait to copy out the data before
7450    the location of the error.
7451    
7452    I don't plan to use this in xz to keep the behavior consistent
7453    between single-threaded and multi-threaded modes.
7454
7455 src/liblzma/api/lzma/container.h       | 25 ++++++++++++++++-
7456 src/liblzma/common/common.h            |  7 +++--
7457 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++---------------
7458 3 files changed, 56 insertions(+), 26 deletions(-)
7459
7460commit 64b6d496dc815a176d8307f418f6834a26783484
7461Author: Lasse Collin <lasse.collin@tukaani.org>
7462Date:   2022-04-05 12:24:57 +0300
7463
7464    liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.
7465    
7466    This makes the behavior consistent with the single-threaded
7467    decoder when handling truncated .xz files.
7468    
7469    Thanks to Jia Tan for finding this issue.
7470
7471 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++--
7472 1 file changed, 24 insertions(+), 2 deletions(-)
7473
7474commit e671bc8828b9c0c5406c3a22c541301d0eb54518
7475Author: Lasse Collin <lasse.collin@tukaani.org>
7476Date:   2022-04-02 21:49:59 +0300
7477
7478    liblzma: Threaded decoder: Support zpipe.c-style decoding loop.
7479    
7480    This makes it possible to call lzma_code() in a loop that only
7481    reads new input when lzma_code() didn't fill the output buffer
7482    completely. That isn't the calling style suggested by the
7483    liblzma example program 02_decompress.c so perhaps the usefulness
7484    of this feature is limited.
7485    
7486    Also, it is possible to write such a loop so that it works
7487    with the single-threaded decoder but not with the threaded
7488    decoder even after this commit, or so that it works only if
7489    lzma_mt.timeout = 0.
7490    
7491    The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known
7492    example of a loop where more input is read only when output isn't
7493    full. Porting this as is to liblzma would work with the
7494    single-threaded decoder (if LZMA_CONCATENATED isn't used) but it
7495    wouldn't work with threaded decoder even after this commit because
7496    the loop assumes that no more output is possible when it cannot
7497    read more input ("if (strm.avail_in == 0) break;"). This cannot
7498    be fixed at liblzma side; the loop has to be modified at least
7499    a little.
7500    
7501    I'm adding this in any case because the actual code is simple
7502    and short and should have no harmful side-effects in other
7503    situations.
7504
7505 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++-----
7506 1 file changed, 67 insertions(+), 10 deletions(-)
7507
7508commit 2ba8173e27be4793edb46497e499ac2ae753a316
7509Author: Lasse Collin <lasse.collin@tukaani.org>
7510Date:   2022-03-31 00:05:07 +0300
7511
7512    Update THANKS.
7513
7514 THANKS | 1 +
7515 1 file changed, 1 insertion(+)
7516
7517commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
7518Author: Lasse Collin <lasse.collin@tukaani.org>
7519Date:   2022-03-29 19:19:12 +0300
7520
7521    xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
7522    
7523    Malicious filenames can make xzgrep to write to arbitrary files
7524    or (with a GNU sed extension) lead to arbitrary code execution.
7525    
7526    xzgrep from XZ Utils versions up to and including 5.2.5 are
7527    affected. 5.3.1alpha and 5.3.2alpha are affected as well.
7528    This patch works for all of them.
7529    
7530    This bug was inherited from gzip's zgrep. gzip 1.12 includes
7531    a fix for zgrep.
7532    
7533    The issue with the old sed script is that with multiple newlines,
7534    the N-command will read the second line of input, then the
7535    s-commands will be skipped because it's not the end of the
7536    file yet, then a new sed cycle starts and the pattern space
7537    is printed and emptied. So only the last line or two get escaped.
7538    
7539    One way to fix this would be to read all lines into the pattern
7540    space first. However, the included fix is even simpler: All lines
7541    except the last line get a backslash appended at the end. To ensure
7542    that shell command substitution doesn't eat a possible trailing
7543    newline, a colon is appended to the filename before escaping.
7544    The colon is later used to separate the filename from the grep
7545    output so it is fine to add it here instead of a few lines later.
7546    
7547    The old code also wasn't POSIX compliant as it used \n in the
7548    replacement section of the s-command. Using \<newline> is the
7549    POSIX compatible method.
7550    
7551    LC_ALL=C was added to the two critical sed commands. POSIX sed
7552    manual recommends it when using sed to manipulate pathnames
7553    because in other locales invalid multibyte sequences might
7554    cause issues with some sed implementations. In case of GNU sed,
7555    these particular sed scripts wouldn't have such problems but some
7556    other scripts could have, see:
7557    
7558        info '(sed)Locale Considerations'
7559    
7560    This vulnerability was discovered by:
7561    cleemy desu wayo working with Trend Micro Zero Day Initiative
7562    
7563    Thanks to Jim Meyering and Paul Eggert discussing the different
7564    ways to fix this and for coordinating the patch release schedule
7565    with gzip.
7566
7567 src/scripts/xzgrep.in | 20 ++++++++++++--------
7568 1 file changed, 12 insertions(+), 8 deletions(-)
7569
7570commit bd93b776c1bd15e90661033c918cdeb354dbcc38
7571Author: Lasse Collin <lasse.collin@tukaani.org>
7572Date:   2022-03-26 01:02:44 +0200
7573
7574    liblzma: Fix a deadlock in threaded decoder.
7575    
7576    If a worker thread has consumed all input so far and it's
7577    waiting on thr->cond and then the main thread enables
7578    partial update for that thread, the code used to deadlock.
7579    This commit allows one dummy decoding pass to occur in this
7580    situation which then also does the partial update.
7581    
7582    As part of the fix, this moves thr->progress_* updates to
7583    avoid the second thr->mutex locking.
7584    
7585    Thanks to Jia Tan for finding, debugging, and reporting the bug.
7586
7587 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++---------
7588 1 file changed, 52 insertions(+), 19 deletions(-)
7589
7590commit e0394e94230f208682ac1e1f4c41f22f9ad79916
7591Author: Lasse Collin <lasse.collin@tukaani.org>
7592Date:   2022-03-23 16:34:00 +0200
7593
7594    Update THANKS.
7595
7596 THANKS | 1 +
7597 1 file changed, 1 insertion(+)
7598
7599commit 487c77d48760564b1949c5067630b675b87be4de
7600Author: Lasse Collin <lasse.collin@tukaani.org>
7601Date:   2022-03-23 16:28:55 +0200
7602
7603    liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT.
7604    
7605    LZMA_TIMED_OUT is not an error and thus stopping threads on
7606    LZMA_TIMED_OUT breaks the decoder badly.
7607    
7608    Thanks to Jia Tan for finding the bug and for the patch.
7609
7610 src/liblzma/common/stream_decoder_mt.c | 2 +-
7611 1 file changed, 1 insertion(+), 1 deletion(-)
7612
7613commit 6c6da57ae2aa962aabde6892442227063d87e88c
7614Author: Lasse Collin <lasse.collin@tukaani.org>
7615Date:   2022-03-07 00:36:16 +0200
7616
7617    xz: Add initial support for threaded decompression.
7618    
7619    If threading support is enabled at build time, this will
7620    use lzma_stream_decoder_mt() even for single-threaded mode.
7621    With memlimit_threading=0 the behavior should be identical.
7622    
7623    This needs some work like adding --memlimit-threading=LIMIT.
7624    
7625    The original patch from Sebastian Andrzej Siewior included
7626    a method to get currently available RAM on Linux. It might
7627    be one way to go but as it is Linux-only, the available-RAM
7628    approach needs work for portability or using a fallback method
7629    on other OSes.
7630    
7631    The man page wasn't updated yet.
7632
7633 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++-
7634 1 file changed, 35 insertions(+), 1 deletion(-)
7635
7636commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
7637Author: Lasse Collin <lasse.collin@tukaani.org>
7638Date:   2022-03-06 23:36:20 +0200
7639
7640    liblzma: Add threaded .xz decompressor.
7641    
7642    I realize that this is about a decade late.
7643    
7644    Big thanks to Sebastian Andrzej Siewior for the original patch.
7645    I made a bunch of smaller changes but after a while quite a few
7646    things got rewritten. So any bugs in the commit were created by me.
7647
7648 src/liblzma/api/lzma/container.h       |   90 +-
7649 src/liblzma/common/Makefile.inc        |    5 +
7650 src/liblzma/common/common.h            |    4 +
7651 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++
7652 src/liblzma/liblzma.map                |    1 +
7653 5 files changed, 1907 insertions(+), 7 deletions(-)
7654
7655commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
7656Author: Lasse Collin <lasse.collin@tukaani.org>
7657Date:   2022-03-06 16:54:23 +0200
7658
7659    liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
7660    
7661    If Check is unsupported, it will be silently ignored.
7662    It's the caller's job to handle it.
7663
7664 src/liblzma/api/lzma/block.h | 3 ---
7665 1 file changed, 3 deletions(-)
7666
7667commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
7668Author: Lasse Collin <lasse.collin@tukaani.org>
7669Date:   2022-03-06 16:41:19 +0200
7670
7671    liblzma: Add new output queue (lzma_outq) features.
7672    
7673    Add lzma_outq_clear_cache2() which may leave one buffer allocated
7674    in the cache.
7675    
7676    Add lzma_outq_outbuf_memusage() to get the memory needed for
7677    a single lzma_outbuf. This is now used internally in outqueue.c too.
7678    
7679    Track both the total amount of memory allocated and the amount of
7680    memory that is in active use (not in cache).
7681    
7682    In lzma_outbuf, allow storing the current input position that
7683    matches the current output position. This way the main thread
7684    can notice when no more output is possible without first providing
7685    more input.
7686    
7687    Allow specifying return code for lzma_outq_read() in a finished
7688    lzma_outbuf.
7689
7690 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++-------
7691 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
7692 2 files changed, 79 insertions(+), 8 deletions(-)
7693
7694commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
7695Author: Lasse Collin <lasse.collin@tukaani.org>
7696Date:   2022-03-06 15:18:58 +0200
7697
7698    liblzma: Index hash: Change return value type of hash_append() to void.
7699
7700 src/liblzma/common/index_hash.c | 11 +++++------
7701 1 file changed, 5 insertions(+), 6 deletions(-)
7702
7703commit 20e7a33e2d59c6a814447d3991f21e2702174b20
7704Author: Lasse Collin <lasse.collin@tukaani.org>
7705Date:   2022-02-22 03:42:57 +0200
7706
7707    liblzma: Minor addition to lzma_vli_size() API doc.
7708    
7709    Thanks to Jia Tan.
7710
7711 src/liblzma/api/lzma/vli.h | 2 ++
7712 1 file changed, 2 insertions(+)
7713
7714commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
7715Author: Lasse Collin <lasse.collin@tukaani.org>
7716Date:   2022-02-22 02:04:18 +0200
7717
7718    liblzma: Check the return value of lzma_index_append() in threaded encoder.
7719    
7720    If lzma_index_append() failed (most likely memory allocation failure)
7721    it could have gone unnoticed and the resulting .xz file would have
7722    an incorrect Index. Decompressing such a file would produce the
7723    correct uncompressed data but then an error would occur when
7724    verifying the Index field.
7725
7726 src/liblzma/common/stream_encoder_mt.c | 7 +++++--
7727 1 file changed, 5 insertions(+), 2 deletions(-)
7728
7729commit 5313ad66b40aab822ddca3e9905254cb99a4080d
7730Author: Lasse Collin <lasse.collin@tukaani.org>
7731Date:   2022-02-22 01:37:39 +0200
7732
7733    Update THANKS.
7734
7735 THANKS | 1 +
7736 1 file changed, 1 insertion(+)
7737
7738commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
7739Author: Ed Maste <emaste@FreeBSD.org>
7740Date:   2022-02-11 15:25:46 +0000
7741
7742    liblzma: Use non-executable stack on FreeBSD as on Linux
7743
7744 src/liblzma/check/crc32_x86.S | 4 ++--
7745 src/liblzma/check/crc64_x86.S | 4 ++--
7746 2 files changed, 4 insertions(+), 4 deletions(-)
7747
7748commit 1c9a5786d206b4abc8e427326651c8174baea753
7749Author: Lasse Collin <lasse.collin@tukaani.org>
7750Date:   2022-02-20 20:36:27 +0200
7751
7752    liblzma: Make Block decoder catch certain types of errors better.
7753    
7754    Now it limits the input and output buffer sizes that are
7755    passed to a raw decoder. This way there's no need to check
7756    if the sizes can grow too big or overflow when updating
7757    Compressed Size and Uncompressed Size counts. This also means
7758    that a corrupt file cannot cause the raw decoder to process
7759    useless extra input or output that would exceed the size info
7760    in Block Header (and thus cause LZMA_DATA_ERROR anyway).
7761    
7762    More importantly, now the size information is verified more
7763    carefully in case raw decoder returns LZMA_OK. This doesn't
7764    really matter with the current single-threaded .xz decoder
7765    as the errors would be detected slightly later anyway. But
7766    this helps avoiding corner cases in the upcoming threaded
7767    decompressor, and it might help other Block decoder uses
7768    outside liblzma too.
7769    
7770    The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
7771    With the single-threaded .xz decoder the only difference is
7772    that LZMA_DATA_ERROR is detected in a difference place now.
7773
7774 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
7775 1 file changed, 54 insertions(+), 25 deletions(-)
7776
7777commit 555de11873eb00c9b94a8be70645db502e5a9dbd
7778Author: Lasse Collin <lasse.collin@tukaani.org>
7779Date:   2022-02-20 19:38:55 +0200
7780
7781    Tests: Add bad-1-lzma2-11.xz.
7782
7783 tests/files/README            |   5 +++++
7784 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
7785 2 files changed, 5 insertions(+)
7786
7787commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
7788Author: Lasse Collin <lasse.collin@tukaani.org>
7789Date:   2022-02-18 18:51:10 +0200
7790
7791    Translations: Fix po4a failure with the French man page translations.
7792    
7793    Thanks to Mario Bl��ttermann for the patch.
7794
7795 po4a/fr_FR.po | 6 ++++--
7796 1 file changed, 4 insertions(+), 2 deletions(-)
7797
7798commit f7711d228c3c32395460c82498c60a9f730d0239
7799Author: Lasse Collin <lasse.collin@tukaani.org>
7800Date:   2022-02-07 01:14:37 +0200
7801
7802    Translations: Add French translation of man pages.
7803    
7804    This matches xz-utils 5.2.5-2 in Debian.
7805    
7806    The translation was done by "bubu", proofread by the debian-l10n-french
7807    mailing list contributors, and submitted to me on the xz-devel mailing
7808    list by Jean-Pierre Giraud. Thanks to everyone!
7809
7810 po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7811 po4a/po4a.conf |    2 +-
7812 2 files changed, 3542 insertions(+), 1 deletion(-)
7813
7814commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
7815Author: jiat75 <jiat0218@gmail.com>
7816Date:   2022-01-28 20:47:55 +0800
7817
7818    liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
7819    
7820    Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
7821    assumed that the options pointers must be non-NULL because the
7822    with these filters the API says it must never be NULL. It is
7823    good to do these checks anyway.
7824
7825 src/liblzma/lzma/lzma2_encoder.c | 3 +++
7826 src/liblzma/lzma/lzma_encoder.c  | 3 +++
7827 2 files changed, 6 insertions(+)
7828
7829commit 2523c30705f49eabd27b854aa656ae87cc224808
7830Author: Lasse Collin <lasse.collin@tukaani.org>
7831Date:   2022-02-06 23:19:32 +0200
7832
7833    liblzma: Fix uint64_t vs. size_t confusion.
7834    
7835    This broke 32-bit builds due to a pointer type mismatch.
7836    
7837    This bug was introduced with the output-size-limited encoding
7838    in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
7839    
7840    Thanks to huangqinjin for the bug report.
7841
7842 src/liblzma/rangecoder/range_encoder.h | 11 +++++++----
7843 1 file changed, 7 insertions(+), 4 deletions(-)
7844
7845commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
7846Author: huangqinjin <huangqinjin@gmail.com>
7847Date:   2021-12-13 20:49:21 +0800
7848
7849    CMake: Keep compatible with Windows 95 for 32-bit build.
7850
7851 CMakeLists.txt | 12 +++++++++++-
7852 1 file changed, 11 insertions(+), 1 deletion(-)
7853
7854commit 2024fbf2794885277d05378d40b2b8015a7c3b40
7855Author: Lasse Collin <lasse.collin@tukaani.org>
7856Date:   2021-11-13 21:04:05 +0200
7857
7858    xzgrep: Update man page timestamp.
7859
7860 src/scripts/xzgrep.1 | 2 +-
7861 1 file changed, 1 insertion(+), 1 deletion(-)
7862
7863commit 400e7a239a53282cedaad927a41f3463d7f542e5
7864Author: Lasse Collin <lasse.collin@tukaani.org>
7865Date:   2021-11-13 18:23:24 +0200
7866
7867    Update THANKS.
7868
7869 THANKS | 1 +
7870 1 file changed, 1 insertion(+)
7871
7872commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
7873Author: Ville Skytt�� <ville.skytta@iki.fi>
7874Date:   2021-11-13 10:11:57 +0200
7875
7876    xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
7877    
7878    `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
7879    current post 3.7 Git they have been made to emit obsolescence warnings:
7880    https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
7881
7882 src/scripts/xzgrep.1  | 8 ++++----
7883 src/scripts/xzgrep.in | 4 ++--
7884 2 files changed, 6 insertions(+), 6 deletions(-)
7885
7886commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
7887Author: Lasse Collin <lasse.collin@tukaani.org>
7888Date:   2021-10-28 23:02:11 +0300
7889
7890    Bump the version number for 5.3.2alpha.
7891
7892 src/liblzma/api/lzma/version.h | 2 +-
7893 src/liblzma/liblzma.map        | 2 +-
7894 2 files changed, 2 insertions(+), 2 deletions(-)
7895
7896commit ea8c948655a86290524efe59cff067e06a886709
7897Author: Lasse Collin <lasse.collin@tukaani.org>
7898Date:   2021-10-28 22:59:52 +0300
7899
7900    Add NEWS for 5.3.2alpha.
7901
7902 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7903 1 file changed, 86 insertions(+)
7904
7905commit 52435f302f4724157ec50b4210cbe42b285c3cbc
7906Author: Lasse Collin <lasse.collin@tukaani.org>
7907Date:   2021-10-27 23:27:48 +0300
7908
7909    Update THANKS.
7910
7911 THANKS | 1 +
7912 1 file changed, 1 insertion(+)
7913
7914commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
7915Author: Lasse Collin <lasse.collin@tukaani.org>
7916Date:   2021-10-27 23:23:11 +0300
7917
7918    xz: Change the coding style of the previous commit.
7919    
7920    It isn't any better now but it's consistent with
7921    the rest of the code base.
7922
7923 src/xz/file_io.c | 11 ++++++-----
7924 1 file changed, 6 insertions(+), 5 deletions(-)
7925
7926commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
7927Author: Alexander Bluhm <alexander.bluhm@gmx.net>
7928Date:   2021-10-05 23:33:16 +0200
7929
7930    xz: Avoid fchown(2) failure.
7931    
7932    OpenBSD does not allow to change the group of a file if the user
7933    does not belong to this group.  In contrast to Linux, OpenBSD also
7934    fails if the new group is the same as the old one.  Do not call
7935    fchown(2) in this case, it would change nothing anyway.
7936    
7937    This fixes an issue with Perl Alien::Build module.
7938    https://github.com/PerlAlien/Alien-Build/issues/62
7939
7940 src/xz/file_io.c | 8 +++++++-
7941 1 file changed, 7 insertions(+), 1 deletion(-)
7942
7943commit 2b509c868cae3988bf21cd693fbf9021cdc85628
7944Author: Lasse Collin <lasse.collin@tukaani.org>
7945Date:   2021-09-17 17:31:11 +0300
7946
7947    liblzma: Fix liblzma.map for the lzma_microlzma_* symbols.
7948    
7949    This should have been part of d267d109c370a40b502e73f8664b154b15e4f253.
7950    
7951    Thanks to Gao Xiang.
7952
7953 src/liblzma/liblzma.map | 4 ++--
7954 1 file changed, 2 insertions(+), 2 deletions(-)
7955
7956commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
7957Author: Lasse Collin <lasse.collin@tukaani.org>
7958Date:   2021-09-09 22:21:07 +0300
7959
7960    Update THANKS.
7961
7962 THANKS | 1 +
7963 1 file changed, 1 insertion(+)
7964
7965commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
7966Author: Lasse Collin <lasse.collin@tukaani.org>
7967Date:   2021-09-09 21:41:51 +0300
7968
7969    liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
7970    
7971    By default, MSVC always sets __cplusplus to 199711L. The real
7972    C++ standard version is available in _MSVC_LANG (or one could
7973    use /Zc:__cplusplus to set __cplusplus correctly).
7974    
7975    Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
7976    
7977    Thanks to Dan Weiss.
7978
7979 src/liblzma/api/lzma.h | 3 ++-
7980 1 file changed, 2 insertions(+), 1 deletion(-)
7981
7982commit d267d109c370a40b502e73f8664b154b15e4f253
7983Author: Lasse Collin <lasse.collin@tukaani.org>
7984Date:   2021-09-05 20:38:12 +0300
7985
7986    liblzma: Rename EROFS LZMA to MicroLZMA.
7987    
7988    It still exists primarily for EROFS but MicroLZMA is
7989    a more generic name (that hopefully doesn't clash with
7990    something that already exists).
7991
7992 src/liblzma/api/lzma/container.h                   | 33 +++++++++++++---------
7993 src/liblzma/common/Makefile.inc                    |  4 +--
7994 .../{erofs_decoder.c => microlzma_decoder.c}       | 32 ++++++++++-----------
7995 .../{erofs_encoder.c => microlzma_encoder.c}       | 30 ++++++++++----------
7996 4 files changed, 52 insertions(+), 47 deletions(-)
7997
7998commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
7999Author: Lasse Collin <lasse.collin@tukaani.org>
8000Date:   2021-06-04 19:02:38 +0300
8001
8002    xzdiff: Update the man page about the exit status.
8003    
8004    This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.
8005
8006 src/scripts/xzdiff.1 | 4 ++--
8007 1 file changed, 2 insertions(+), 2 deletions(-)
8008
8009commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
8010Author: Lasse Collin <lasse.collin@tukaani.org>
8011Date:   2021-06-04 18:52:48 +0300
8012
8013    xzless: Fix less(1) version detection when it contains a dot.
8014    
8015    Sometimes the version number from "less -V" contains a dot,
8016    sometimes not. xzless failed detect the version number when
8017    it does contain a dot. This fixes it.
8018    
8019    Thanks to nick87720z for reporting this. Apparently it had been
8020    reported here <https://bugs.gentoo.org/489362> in 2013.
8021
8022 src/scripts/xzless.in | 2 +-
8023 1 file changed, 1 insertion(+), 1 deletion(-)
8024
8025commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
8026Author: Lasse Collin <lasse.collin@tukaani.org>
8027Date:   2021-04-11 19:58:10 +0300
8028
8029    Update THANKS.
8030
8031 THANKS | 2 ++
8032 1 file changed, 2 insertions(+)
8033
8034commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
8035Author: Ivan A. Melnikov <iv@altlinux.org>
8036Date:   2021-04-09 11:45:10 +0300
8037
8038    Reduce maximum possible memory limit on MIPS32
8039    
8040    Due to architectural limitations, address space available to a single
8041    userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
8042    that have more physical RAM -- e.g. 64-bit systems with 32-bit
8043    userspace, or systems that use XPA (an extension similar to x86's PAE).
8044    
8045    So, for MIPS32, we have to impose stronger memory limits. I've chosen
8046    2000MiB to give the process some headroom.
8047
8048 src/xz/hardware.c | 6 ++++++
8049 1 file changed, 6 insertions(+)
8050
8051commit e7da44d5151e21f153925781ad29334ae0786101
8052Author: Lasse Collin <lasse.collin@tukaani.org>
8053Date:   2021-02-13 23:31:27 +0200
8054
8055    CMake: Use interface library for better FindLibLZMA compatibility.
8056    
8057    https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
8058    
8059    Thanks to Markus Rickert.
8060
8061 CMakeLists.txt | 11 +++++++++--
8062 1 file changed, 9 insertions(+), 2 deletions(-)
8063
8064commit a61dd82ada39030f41b4ffca9ea551714908bedc
8065Author: Lasse Collin <lasse.collin@tukaani.org>
8066Date:   2021-01-30 18:36:04 +0200
8067
8068    CMake: Try to improve compatibility with the FindLibLZMA module.
8069    
8070    The naming conflict with FindLibLZMA module gets worse.
8071    Not avoiding it in the first place was stupid.
8072    
8073    Normally find_package(LibLZMA) will use the module and
8074    find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
8075    file even with a case insensitive file system. However, if
8076    CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
8077    is case insensitive, find_package(LibLZMA) will find our liblzma
8078    config file instead of using FindLibLZMA module.
8079    
8080    One big problem with this is that FindLibLZMA uses
8081    LibLZMA::LibLZMA and we use liblzma::liblzma as the target
8082    name. With target names CMake happens to be case sensitive.
8083    To workaround this, this commit adds
8084    
8085        add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
8086    
8087    to the config file. Then both spellings work.
8088    
8089    To make the behavior consistent between case sensitive and
8090    insensitive file systems, the config and related files are
8091    renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
8092    With this style CMake looks for lowercase version of the package
8093    name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
8094    to find our config file.
8095    
8096    There are other differences between our config file and
8097    FindLibLZMA so it's still possible that things break for
8098    reasons other than the spelling of the target name. Hopefully
8099    those situations aren't too common.
8100    
8101    When the config file is available, it should always give as good or
8102    better results as FindLibLZMA so this commit doesn't affect the
8103    recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
8104    which explicitly avoids FindLibLZMA.
8105    
8106    Thanks to Markus Rickert.
8107
8108 CMakeLists.txt | 21 +++++++++++++--------
8109 1 file changed, 13 insertions(+), 8 deletions(-)
8110
8111commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
8112Author: Lasse Collin <lasse.collin@tukaani.org>
8113Date:   2021-01-29 21:19:43 +0200
8114
8115    Update THANKS.
8116
8117 THANKS | 1 +
8118 1 file changed, 1 insertion(+)
8119
8120commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
8121Author: Lasse Collin <lasse.collin@tukaani.org>
8122Date:   2021-01-29 21:19:08 +0200
8123
8124    liblzma: Fix unitialized variable.
8125    
8126    This was introduced two weeks ago in the commit
8127    625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
8128    
8129    Thanks to Nathan Moinvaziri.
8130
8131 src/liblzma/lzma/lzma_encoder.c | 1 +
8132 1 file changed, 1 insertion(+)
8133
8134commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
8135Author: Lasse Collin <lasse.collin@tukaani.org>
8136Date:   2021-01-24 22:32:41 +0200
8137
8138    Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.
8139
8140 tests/files/README            |  11 +++++++++--
8141 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
8142 tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
8143 3 files changed, 9 insertions(+), 2 deletions(-)
8144
8145commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
8146Author: Lasse Collin <lasse.collin@tukaani.org>
8147Date:   2021-01-24 19:22:35 +0200
8148
8149    liblzma: Fix a wrong comment in stream_encoder_mt.c.
8150
8151 src/liblzma/common/stream_encoder_mt.c | 10 +++++++---
8152 1 file changed, 7 insertions(+), 3 deletions(-)
8153
8154commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
8155Author: Lasse Collin <lasse.collin@tukaani.org>
8156Date:   2021-01-24 18:51:51 +0200
8157
8158    Tests: Add bad-1-lzma2-9.xz.
8159
8160 tests/files/README           |   4 ++++
8161 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
8162 2 files changed, 4 insertions(+)
8163
8164commit fdd30032f8531ac89519b48c21d810ecf06825f6
8165Author: Lasse Collin <lasse.collin@tukaani.org>
8166Date:   2021-01-24 17:02:00 +0200
8167
8168    Tests: Add bad-1-check-crc32-2.xz.
8169
8170 tests/files/README                 |   7 +++++++
8171 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
8172 2 files changed, 7 insertions(+)
8173
8174commit db465419ae26ec7fb9b9472183911ff521620c77
8175Author: Lasse Collin <lasse.collin@tukaani.org>
8176Date:   2021-01-17 19:20:50 +0200
8177
8178    liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end.
8179    
8180    When the uncompressed size is known to be exact, after decompressing
8181    the stream exactly comp_size bytes of input must have been consumed.
8182    This is a minor improvement to error detection.
8183
8184 src/liblzma/common/erofs_decoder.c | 7 ++++++-
8185 1 file changed, 6 insertions(+), 1 deletion(-)
8186
8187commit 774cc0118ba2496581cb2621505a04bb6598cc75
8188Author: Lasse Collin <lasse.collin@tukaani.org>
8189Date:   2021-01-17 18:53:34 +0200
8190
8191    liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known.
8192    
8193    The caller must still not specify an uncompressed size bigger
8194    than the actual uncompressed size.
8195    
8196    As a downside, this now needs the exact compressed size.
8197
8198 src/liblzma/api/lzma/container.h   | 23 ++++++++---
8199 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++----
8200 2 files changed, 91 insertions(+), 12 deletions(-)
8201
8202commit 421b0aa352da244075db10205cf33712f91b9835
8203Author: Lasse Collin <lasse.collin@tukaani.org>
8204Date:   2021-01-14 20:57:11 +0200
8205
8206    liblzma: Fix missing normalization in rc_encode_dummy().
8207    
8208    Without this fix it could attempt to create too much output.
8209
8210 src/liblzma/rangecoder/range_encoder.h | 7 ++++++-
8211 1 file changed, 6 insertions(+), 1 deletion(-)
8212
8213commit 601ec0311e769fc704daaaa7dac0ca840aff080e
8214Author: Lasse Collin <lasse.collin@tukaani.org>
8215Date:   2021-01-14 20:07:01 +0200
8216
8217    liblzma: Add EROFS LZMA encoder and decoder.
8218    
8219    Right now this is just a planned extra-compact format for use
8220    in the EROFS file system in Linux. At this point it's possible
8221    that the format will either change or be abandoned and removed
8222    completely.
8223    
8224    The special thing about the encoder is that it uses the
8225    output-size-limited encoding added in the previous commit.
8226    EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed
8227    data so the compressors must be able to create valid streams
8228    that fill the given block size.
8229
8230 src/liblzma/api/lzma/container.h   |  76 +++++++++++++++++++
8231 src/liblzma/common/Makefile.inc    |   2 +
8232 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++
8233 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++
8234 src/liblzma/liblzma.map            |   2 +
8235 5 files changed, 367 insertions(+)
8236
8237commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
8238Author: Lasse Collin <lasse.collin@tukaani.org>
8239Date:   2021-01-13 19:16:32 +0200
8240
8241    liblzma: Add rough support for output-size-limited encoding in LZMA1.
8242    
8243    With this it is possible to encode LZMA1 data without EOPM so that
8244    the encoder will encode as much input as it can without exceeding
8245    the specified output size limit. The resulting LZMA1 stream will
8246    be a normal LZMA1 stream without EOPM. The actual uncompressed size
8247    will be available to the caller via the uncomp_size pointer.
8248    
8249    One missing thing is that the LZMA layer doesn't inform the LZ layer
8250    when the encoding is finished and thus the LZ may read more input
8251    when it won't be used. However, this doesn't matter if encoding is
8252    done with a single call (which is the planned use case for now).
8253    For proper multi-call encoding this should be improved.
8254    
8255    This commit only adds the functionality for internal use.
8256    Nothing uses it yet.
8257
8258 src/liblzma/common/common.h             |  11 +++
8259 src/liblzma/lz/lz_encoder.c             |  16 ++++
8260 src/liblzma/lz/lz_encoder.h             |   4 +
8261 src/liblzma/lzma/lzma_encoder.c         | 127 +++++++++++++++++++++++---------
8262 src/liblzma/lzma/lzma_encoder_private.h |  12 +++
8263 src/liblzma/rangecoder/range_encoder.h  | 111 ++++++++++++++++++++++++++++
8264 6 files changed, 246 insertions(+), 35 deletions(-)
8265
8266commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
8267Author: Lasse Collin <lasse.collin@tukaani.org>
8268Date:   2021-01-11 23:57:11 +0200
8269
8270    Scripts: Add zstd support to xzdiff.
8271
8272 src/scripts/xzdiff.1  |  6 ++++--
8273 src/scripts/xzdiff.in | 16 +++++++++++-----
8274 2 files changed, 15 insertions(+), 7 deletions(-)
8275
8276commit d9ec3add97cf4c999a7f594c6529680227b6c274
8277Author: Lasse Collin <lasse.collin@tukaani.org>
8278Date:   2021-01-11 23:41:30 +0200
8279
8280    Update THANKS.
8281
8282 THANKS | 2 ++
8283 1 file changed, 2 insertions(+)
8284
8285commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
8286Author: Lasse Collin <lasse.collin@tukaani.org>
8287Date:   2021-01-11 23:41:16 +0200
8288
8289    xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
8290    
8291    Previously this required using --force but that has other
8292    effects too which might be undesirable. Changing the behavior
8293    of --keep has a small risk of breaking existing scripts but
8294    since this is a fairly special corner case I expect the
8295    likehood of breakage to be low enough.
8296    
8297    I think the new behavior is more logical. The only reason for
8298    the old behavior was to be consistent with gzip and bzip2.
8299    
8300    Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.
8301
8302 src/xz/file_io.c |  9 +++++----
8303 src/xz/xz.1      | 16 +++++++++++++++-
8304 2 files changed, 20 insertions(+), 5 deletions(-)
8305
8306commit 73c555b3077c19dda29b6f4592ced2af876f8333
8307Author: Lasse Collin <lasse.collin@tukaani.org>
8308Date:   2021-01-11 23:28:52 +0200
8309
8310    Scripts: Fix exit status of xzgrep.
8311    
8312    Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
8313    matter. With gzip it's important because -q makes gzip replace SIGPIPE
8314    with exit status 2. With bzip2 it's important because with -q bzip2
8315    is completely silent if input is corrupt while other decompressors
8316    still give an error message.
8317    
8318    Avoiding exit status 2 from gzip is important because bzip2 uses
8319    exit status 2 to indicate corrupt input. Before this commit xzgrep
8320    didn't recognize corrupt .bz2 files because xzgrep was treating
8321    exit status 2 as SIGPIPE for gzip compatibility.
8322    
8323    zstd still needs -q because otherwise it is noisy in normal
8324    operation.
8325    
8326    The code to detect real SIGPIPE didn't check if the exit status
8327    was due to a signal (>= 128) and so could ignore some other exit
8328    status too.
8329
8330 src/scripts/xzgrep.in | 20 +++++++++++++-------
8331 1 file changed, 13 insertions(+), 7 deletions(-)
8332
8333commit 194029ffaf74282a81f0c299c07f73caca3232ca
8334Author: Lasse Collin <lasse.collin@tukaani.org>
8335Date:   2021-01-11 22:01:51 +0200
8336
8337    Scripts: Fix exit status of xzdiff/xzcmp.
8338    
8339    This is a minor fix since this affects only the situation when
8340    the files differ and the exit status is something else than 0.
8341    In such case there could be SIGPIPE from a decompression tool
8342    and that would result in exit status of 2 from xzdiff/xzcmp
8343    while the correct behavior would be to return 1 or whatever
8344    else diff or cmp may have returned.
8345    
8346    This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
8347    I'm not sure why the -q was used in the first place, perhaps it
8348    hides warnings in some situation that I cannot see at the moment.
8349    Hopefully the removal won't introduce a new bug.
8350    
8351    With gzip the -q option was harmful because it made gzip return 2
8352    instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
8353    from gzip) isn't practical because bzip2 uses exit status 2 to
8354    indicate corrupt input file. It's better if SIGPIPE results in
8355    exit status >= 128.
8356    
8357    With bzip2 the removal of -q seems to be good because with -q
8358    it prints nothing if input is corrupt. The other tools aren't
8359    silent in this situation even with -q. On the other hand, if
8360    zstd support is added, it will need -q since otherwise it's
8361    noisy in normal situations.
8362    
8363    Thanks to ��tienne Mollier and Sebastian Andrzej Siewior.
8364
8365 src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
8366 1 file changed, 21 insertions(+), 14 deletions(-)
8367
8368commit f7fa309e1f7178d04c7bedc03b73077639371e97
8369Author: Lasse Collin <lasse.collin@tukaani.org>
8370Date:   2021-01-09 21:14:36 +0200
8371
8372    liblzma: Make lzma_outq usable for threaded decompression too.
8373    
8374    Before this commit all output queue buffers were allocated as
8375    a single big allocation. Now each buffer is allocated separately
8376    when needed. Used buffers are cached to avoid reallocation
8377    overhead but the cache will keep only one buffer size at a time.
8378    This should make things work OK in the decompression where most
8379    of the time the buffer sizes will be the same but with some less
8380    common files the buffer sizes may vary.
8381    
8382    While this should work fine, it's still a bit preliminary
8383    and may even get reverted if it turns out to be useless for
8384    decompression.
8385
8386 src/liblzma/common/outqueue.c          | 268 +++++++++++++++++++++------------
8387 src/liblzma/common/outqueue.h          | 138 ++++++++++++-----
8388 src/liblzma/common/stream_encoder_mt.c |  52 ++++---
8389 3 files changed, 301 insertions(+), 157 deletions(-)
8390
8391commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
8392Author: Lasse Collin <lasse.collin@tukaani.org>
8393Date:   2020-12-23 17:15:49 +0200
8394
8395    Update THANKS.
8396
8397 THANKS | 1 +
8398 1 file changed, 1 insertion(+)
8399
8400commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
8401Author: H.J. Lu <hjl.tools@gmail.com>
8402Date:   2020-12-23 06:49:04 -0800
8403
8404    liblzma: Enable Intel CET in x86 CRC assembly codes
8405    
8406    When Intel CET is enabled, we need to include <cet.h> in assembly codes
8407    to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
8408    
8409    Tested on Intel Tiger Lake under CET enabled Linux.
8410
8411 src/liblzma/check/crc32_x86.S | 9 +++++++++
8412 src/liblzma/check/crc64_x86.S | 9 +++++++++
8413 2 files changed, 18 insertions(+)
8414
8415commit bb3b8c6a23e25db79f862b1de325c56052e0354b
8416Author: Lasse Collin <lasse.collin@tukaani.org>
8417Date:   2020-12-16 18:33:29 +0200
8418
8419    Update THANKS.
8420
8421 THANKS | 1 +
8422 1 file changed, 1 insertion(+)
8423
8424commit 21588ca34af98738954fc12ded1b89d7294ef646
8425Author: Lasse Collin <lasse.collin@tukaani.org>
8426Date:   2020-12-16 18:30:14 +0200
8427
8428    Build: Don't build bundles on Apple OSes.
8429    
8430    Thanks to Daniel Packard.
8431
8432 CMakeLists.txt | 3 +++
8433 1 file changed, 3 insertions(+)
8434
8435commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
8436Author: Lasse Collin <lasse.collin@tukaani.org>
8437Date:   2020-12-05 22:44:03 +0200
8438
8439    Update THANKS.
8440
8441 THANKS | 1 +
8442 1 file changed, 1 insertion(+)
8443
8444commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
8445Author: Adam Borowski <kilobyte@angband.pl>
8446Date:   2020-09-25 03:35:18 +0200
8447
8448    Scripts: Add zstd support to xzgrep.
8449    
8450    Thanks to Adam Borowski.
8451
8452 src/scripts/xzgrep.1  | 9 ++++++---
8453 src/scripts/xzgrep.in | 1 +
8454 2 files changed, 7 insertions(+), 3 deletions(-)
8455
8456commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
8457Author: Lasse Collin <lasse.collin@tukaani.org>
8458Date:   2020-11-17 20:51:48 +0200
8459
8460    CMake: Fix compatibility with CMake 3.13.
8461    
8462    The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
8463    In some other places the code treats the cache variables
8464    like normal variables already (${FOO} or if(FOO) is used,
8465    not ${CACHE{FOO}).
8466    
8467    Thanks to ygrek for reporting the bug on IRC.
8468
8469 CMakeLists.txt              | 2 +-
8470 cmake/tuklib_cpucores.cmake | 4 ++--
8471 cmake/tuklib_physmem.cmake  | 4 ++--
8472 3 files changed, 5 insertions(+), 5 deletions(-)
8473
8474commit 5af726a79273fafa5de5745b117e567f21c90e49
8475Author: Lasse Collin <lasse.collin@tukaani.org>
8476Date:   2020-11-01 22:56:43 +0200
8477
8478    Update THANKS.
8479
8480 THANKS | 4 +++-
8481 1 file changed, 3 insertions(+), 1 deletion(-)
8482
8483commit 4575d9d365c756ec189899f9f743e0b3515ce72d
8484Author: Lasse Collin <lasse.collin@tukaani.org>
8485Date:   2020-11-01 22:34:25 +0200
8486
8487    xz: Avoid unneeded \f escapes on the man page.
8488    
8489    I don't want to use \c in macro arguments but groff_man(7)
8490    suggests that \f has better portability. \f would be needed
8491    for the .TP strings for portability reasons anyway.
8492    
8493    Thanks to Bjarni Ingi Gislason.
8494
8495 src/xz/xz.1 | 31 ++++++++++++++++++++++---------
8496 1 file changed, 22 insertions(+), 9 deletions(-)
8497
8498commit 620b32f5339f86710cb4435e01ecdac972ccac73
8499Author: Lasse Collin <lasse.collin@tukaani.org>
8500Date:   2020-11-01 19:09:53 +0200
8501
8502    xz: Use non-breaking spaces when intentionally using more than one space.
8503    
8504    This silences some style checker warnings. Seems that spaces
8505    in the beginning of a line don't need this treatment.
8506    
8507    Thanks to Bjarni Ingi Gislason.
8508
8509 src/xz/xz.1 | 2 +-
8510 1 file changed, 1 insertion(+), 1 deletion(-)
8511
8512commit cb1f34988c8a4130485091b2f8b641303d8f701b
8513Author: Lasse Collin <lasse.collin@tukaani.org>
8514Date:   2020-11-01 18:49:37 +0200
8515
8516    xz: Protect the ellipsis (...) on the man page with \&.
8517    
8518    This does it only when ... appears outside macro calls.
8519    
8520    Thanks to Bjarni Ingi Gislason.
8521
8522 src/xz/xz.1 | 4 ++--
8523 1 file changed, 2 insertions(+), 2 deletions(-)
8524
8525commit 5d224da3da87400f2fab313abbd7c710e7169ef9
8526Author: Lasse Collin <lasse.collin@tukaani.org>
8527Date:   2020-11-01 18:41:21 +0200
8528
8529    xz: Avoid the abbreviation "e.g." on the man page.
8530    
8531    A few are simply omitted, most are converted to "for example"
8532    and surrounded with commas. Sounds like that this is better
8533    style, for example, man-pages(7) recommends avoiding such
8534    abbreviations except in parenthesis.
8535    
8536    Thanks to Bjarni Ingi Gislason.
8537
8538 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
8539 1 file changed, 33 insertions(+), 33 deletions(-)
8540
8541commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
8542Author: Lasse Collin <lasse.collin@tukaani.org>
8543Date:   2020-07-12 23:10:03 +0300
8544
8545    xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
8546    
8547    Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
8548    and \- was used for both minus and en-dash. I don't know how
8549    portable \(en is nowadays but it can be changed back if someone
8550    complains. At least GNU groff and OpenBSD's mandoc support it.
8551    
8552    Thanks to Bjarni Ingi Gislason for the patch.
8553
8554 src/xz/xz.1 | 16 ++++++++--------
8555 1 file changed, 8 insertions(+), 8 deletions(-)
8556
8557commit 352ba2d69af2136bc814aa1df1a132559d445616
8558Author: Lasse Collin <lasse.collin@tukaani.org>
8559Date:   2020-07-12 20:46:24 +0300
8560
8561    Windows: Fix building of resource files when config.h isn't used.
8562    
8563    Now CMake + Visual Studio works for building liblzma.dll.
8564    
8565    Thanks to Markus Rickert.
8566
8567 src/common/common_w32res.rc | 4 +++-
8568 1 file changed, 3 insertions(+), 1 deletion(-)
8569
8570commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
8571Author: Lasse Collin <lasse.collin@tukaani.org>
8572Date:   2020-04-06 19:31:50 +0300
8573
8574    src/scripts/xzgrep.1: Filenames to xzgrep are optional.
8575    
8576    xzgrep --help was correct already.
8577
8578 src/scripts/xzgrep.1 | 2 +-
8579 1 file changed, 1 insertion(+), 1 deletion(-)
8580
8581commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
8582Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8583Date:   2020-03-26 22:17:31 +0000
8584
8585    src/script/xzgrep.1: Remove superfluous '.RB'
8586    
8587    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
8588    
8589      [ "test-groff" is a developmental version of "groff" ]
8590    
8591    Input file is ./src/scripts/xzgrep.1
8592    
8593    <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
8594    <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
8595    <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
8596    <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
8597    <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
8598    
8599     "abc..." does not mean the same as "abc ...".
8600    
8601      The output from nroff and troff is unchanged except for the space
8602    between "file" and "...".
8603    
8604    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8605
8606 src/scripts/xzgrep.1 | 12 ++++++------
8607 1 file changed, 6 insertions(+), 6 deletions(-)
8608
8609commit 133d498db0f4b14f066d192d64dbcade45deae6b
8610Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8611Date:   2020-03-30 21:56:36 +0000
8612
8613    xzgrep.1: Delete superfluous '.PP'
8614    
8615    Summary:
8616    
8617    mandoc -T lint xzgrep.1 :
8618    mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
8619    
8620      There is no change in the output of "nroff" and "troff".
8621    
8622    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8623
8624 src/scripts/xzgrep.1 | 1 -
8625 1 file changed, 1 deletion(-)
8626
8627commit 057839ca982f886387b66746bffe749cb14fd8cd
8628Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8629Date:   2020-03-26 21:16:18 +0000
8630
8631    src/xz/xz.1: Correct misused two-fonts macros
8632    
8633    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
8634    
8635      [ "test-groff" is a developmental version of "groff" ]
8636    
8637    Input file is ./src/xz/xz.1
8638    
8639    <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
8640    <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
8641    <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
8642    <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
8643    <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
8644    
8645      Output from nroff and troff is unchanged, except for a font change of a
8646    full stop (.).
8647    
8648    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
8649
8650 src/xz/xz.1 | 10 +++++-----
8651 1 file changed, 5 insertions(+), 5 deletions(-)
8652
8653commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
8654Author: Lasse Collin <lasse.collin@tukaani.org>
8655Date:   2020-03-23 18:07:50 +0200
8656
8657    Typo fixes from fossies.org.
8658    
8659    https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
8660
8661 Makefile.am                     | 2 +-
8662 doc/examples/01_compress_easy.c | 2 +-
8663 src/liblzma/api/lzma/base.h     | 2 +-
8664 src/liblzma/check/crc32_x86.S   | 2 +-
8665 src/liblzma/common/index.c      | 2 +-
8666 src/xz/xz.1                     | 4 ++--
8667 6 files changed, 7 insertions(+), 7 deletions(-)
8668
8669commit 869b9d1b4edd6df07f819d360d306251f8147353
8670Author: Lasse Collin <lasse.collin@tukaani.org>
8671Date:   2020-03-17 16:24:28 +0200
8672
8673    Update NEWS for 5.2.5.
8674
8675 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8676 1 file changed, 105 insertions(+)
8677
8678commit a048e3a92d238c65f050a765174d9c75417231d4
8679Author: Lasse Collin <lasse.collin@tukaani.org>
8680Date:   2020-03-16 20:01:37 +0200
8681
8682    README: Update outdated sections.
8683
8684 README | 21 +++++++++++----------
8685 1 file changed, 11 insertions(+), 10 deletions(-)
8686
8687commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
8688Author: Lasse Collin <lasse.collin@tukaani.org>
8689Date:   2020-03-16 19:39:45 +0200
8690
8691    README: Mention that man pages can be translated.
8692
8693 README | 7 ++++---
8694 1 file changed, 4 insertions(+), 3 deletions(-)
8695
8696commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
8697Author: Lasse Collin <lasse.collin@tukaani.org>
8698Date:   2020-03-16 16:43:29 +0200
8699
8700    Update INSTALL.generic from Automake 1.16.1.
8701
8702 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
8703 1 file changed, 162 insertions(+), 159 deletions(-)
8704
8705commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
8706Author: Lasse Collin <lasse.collin@tukaani.org>
8707Date:   2020-03-15 15:27:22 +0200
8708
8709    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
8710
8711 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
8712 1 file changed, 41 insertions(+), 10 deletions(-)
8713
8714commit a3148c0446dc7fa96363752df414d22539c9007b
8715Author: Lasse Collin <lasse.collin@tukaani.org>
8716Date:   2020-03-15 15:26:20 +0200
8717
8718    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
8719
8720 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
8721 1 file changed, 117 insertions(+), 102 deletions(-)
8722
8723commit 7812002dd3ed319e42a14662a8531802cca8ca67
8724Author: Lasse Collin <lasse.collin@tukaani.org>
8725Date:   2020-03-11 21:15:35 +0200
8726
8727    xz: Never use thousand separators in DJGPP builds.
8728    
8729    DJGPP 2.05 added support for thousands separators but it's
8730    broken at least under WinXP with Finnish locale that uses
8731    a non-breaking space as the thousands separator. Workaround
8732    by disabling thousands separators for DJGPP builds.
8733
8734 src/xz/util.c | 14 ++++++++++++--
8735 1 file changed, 12 insertions(+), 2 deletions(-)
8736
8737commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
8738Author: Lasse Collin <lasse.collin@tukaani.org>
8739Date:   2020-03-11 19:38:08 +0200
8740
8741    DOS: Update dos/Makefile for DJGPP 2.05.
8742    
8743    It doesn't need -fgnu89-inline like 2.04beta did.
8744
8745 dos/Makefile | 4 +---
8746 1 file changed, 1 insertion(+), 3 deletions(-)
8747
8748commit 319ca928d73de87940c54e30bffe69f9fa65efdf
8749Author: Lasse Collin <lasse.collin@tukaani.org>
8750Date:   2020-03-11 19:36:07 +0200
8751
8752    DOS: Update instructions in dos/INSTALL.txt.
8753
8754 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
8755 1 file changed, 29 insertions(+), 30 deletions(-)
8756
8757commit cb6b227ce39932824812ccd8a0647bd968de27d2
8758Author: Lasse Collin <lasse.collin@tukaani.org>
8759Date:   2020-03-11 17:58:51 +0200
8760
8761    DOS: Update config.h.
8762    
8763    The added defines assume GCC >= 4.8.
8764
8765 dos/config.h | 8 ++++++++
8766 1 file changed, 8 insertions(+)
8767
8768commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
8769Author: Lasse Collin <lasse.collin@tukaani.org>
8770Date:   2020-03-02 13:54:33 +0200
8771
8772    liblzma: Fix a comment and RC_SYMBOLS_MAX.
8773    
8774    The comment didn't match the value of RC_SYMBOLS_MAX and the value
8775    itself was slightly larger than actually needed. The only harm
8776    about this was that memory usage was a few bytes larger.
8777
8778 src/liblzma/rangecoder/range_encoder.h | 4 ++--
8779 1 file changed, 2 insertions(+), 2 deletions(-)
8780
8781commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
8782Author: Lasse Collin <lasse.collin@tukaani.org>
8783Date:   2020-02-27 20:58:52 +0200
8784
8785    Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails.
8786
8787 CMakeLists.txt | 18 ++++++++++++++++++
8788 1 file changed, 18 insertions(+)
8789
8790commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
8791Author: Lasse Collin <lasse.collin@tukaani.org>
8792Date:   2020-02-27 20:24:27 +0200
8793
8794    Build: Add support for --no-po4a option to autogen.sh.
8795    
8796    Normally, if po4a isn't available, autogen.sh will return
8797    with non-zero exit status. The option --no-po4a can be useful
8798    when one knows that po4a isn't available but wants autogen.sh
8799    to still return with zero exit status.
8800
8801 autogen.sh | 11 ++++++++++-
8802 1 file changed, 10 insertions(+), 1 deletion(-)
8803
8804commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
8805Author: Lasse Collin <lasse.collin@tukaani.org>
8806Date:   2020-02-25 21:35:14 +0200
8807
8808    Update THANKS.
8809
8810 THANKS | 1 +
8811 1 file changed, 1 insertion(+)
8812
8813commit 474320e9908786ba2021035f9013191e16cde08a
8814Author: Lasse Collin <lasse.collin@tukaani.org>
8815Date:   2020-02-25 20:42:31 +0200
8816
8817    Build: Fix bugs in the CMake files.
8818    
8819    Seems that the phrase "add more quotes" from sh/bash scripting
8820    applies to CMake as well. E.g. passing an unquoted list ${FOO}
8821    to a function that expects one argument results in only the
8822    first element of the list being passed as an argument and
8823    the rest get ignored. Adding quotes helps ("${FOO}").
8824    
8825    list(INSERT ...) is weird. Inserting an empty string to an empty
8826    variable results in empty list, but inserting it to a non-empty
8827    variable does insert an empty element to the list.
8828    
8829    Since INSERT requires at least one element,
8830    "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt.
8831    It might result in an empty element in the list. It seems to not
8832    matter as empty elements consistently get ignored in that variable.
8833    In fact, calling cmake_check_push_state() and cmake_check_pop_state()
8834    will strip the empty elements from CMAKE_REQUIRED_LIBRARIES!
8835    
8836    In addition to quoting fixes, this fixes checks for the cache
8837    variables in tuklib_cpucores.cmake and tuklib_physmem.cmake.
8838    
8839    Thanks to Martin Matu��ka for testing and reporting the problems.
8840    These fixes aren't tested yet but hopefully they soon will be.
8841
8842 CMakeLists.txt              | 52 ++++++++++++++++++++++-----------------------
8843 cmake/tuklib_common.cmake   |  8 ++++---
8844 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------
8845 cmake/tuklib_integer.cmake  | 34 +++++++++++++++--------------
8846 cmake/tuklib_mbstr.cmake    |  6 +++---
8847 cmake/tuklib_physmem.cmake  | 29 +++++++++++++------------
8848 cmake/tuklib_progname.cmake |  4 ++--
8849 7 files changed, 85 insertions(+), 78 deletions(-)
8850
8851commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
8852Author: Lasse Collin <lasse.collin@tukaani.org>
8853Date:   2020-02-24 23:38:16 +0200
8854
8855    Build: Add very limited experimental CMake support.
8856    
8857    This does *NOT* replace the Autotools-based build system in
8858    the foreseeable future. See the comment in the beginning
8859    of CMakeLists.txt.
8860    
8861    So far this has been tested only on GNU/Linux but I commit
8862    it anyway to make it easier for others to test. Since I
8863    haven't played much with CMake before, it's likely that
8864    there are things that have been done in a silly or wrong
8865    way and need to be fixed.
8866
8867 CMakeLists.txt              | 643 ++++++++++++++++++++++++++++++++++++++++++++
8868 cmake/tuklib_common.cmake   |  47 ++++
8869 cmake/tuklib_cpucores.cmake | 173 ++++++++++++
8870 cmake/tuklib_integer.cmake  | 100 +++++++
8871 cmake/tuklib_mbstr.cmake    |  20 ++
8872 cmake/tuklib_physmem.cmake  | 149 ++++++++++
8873 cmake/tuklib_progname.cmake |  19 ++
8874 7 files changed, 1151 insertions(+)
8875
8876commit 21bd4701fca3e9002ce78bc135debca369ed8545
8877Author: Lasse Collin <lasse.collin@tukaani.org>
8878Date:   2020-02-24 23:37:07 +0200
8879
8880    Update m4/.gitignore.
8881
8882 m4/.gitignore | 1 +
8883 1 file changed, 1 insertion(+)
8884
8885commit e094d1d0f196a91ec703e8d0055948feef349ae8
8886Author: Lasse Collin <lasse.collin@tukaani.org>
8887Date:   2020-02-24 23:29:35 +0200
8888
8889    tuklib: Omit an unneeded <sys/types.h> from a tests.
8890    
8891    tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h>
8892    even via other files in this package, so clearly that header isn't
8893    needed in the tests either (no one has reported build problems due
8894    to a missing header in a .c file).
8895
8896 m4/tuklib_cpucores.m4 | 1 -
8897 m4/tuklib_physmem.m4  | 1 -
8898 2 files changed, 2 deletions(-)
8899
8900commit b3ed19a55fe99a45bd77614e149d39d18498075c
8901Author: Lasse Collin <lasse.collin@tukaani.org>
8902Date:   2020-02-24 23:01:00 +0200
8903
8904    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
8905    
8906    This file only generates fastpos_table.c.
8907    It isn't built as a part of liblzma.
8908
8909 src/liblzma/lzma/fastpos_tablegen.c | 1 -
8910 1 file changed, 1 deletion(-)
8911
8912commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
8913Author: Lasse Collin <lasse.collin@tukaani.org>
8914Date:   2020-02-22 14:15:07 +0200
8915
8916    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
8917    
8918    This should silence the equivalent of -Wundef in compilers that
8919    don't define __GNUC__.
8920
8921 src/common/sysdefs.h   | 3 ++-
8922 src/liblzma/api/lzma.h | 5 +++--
8923 2 files changed, 5 insertions(+), 3 deletions(-)
8924
8925commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
8926Author: Lasse Collin <lasse.collin@tukaani.org>
8927Date:   2020-02-21 17:40:02 +0200
8928
8929    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
8930    
8931    This gives a tiny encoder speed improvement. This could have been done
8932    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
8933    it was forgotten.
8934
8935 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
8936 1 file changed, 10 insertions(+), 6 deletions(-)
8937
8938commit 59e6eb4840b9f52fa3a61544974017279b448216
8939Author: Lasse Collin <lasse.collin@tukaani.org>
8940Date:   2020-02-21 17:01:15 +0200
8941
8942    Build: Add visibility.m4 from gnulib.
8943    
8944    Appears that this file used to get included as a side effect of
8945    gettext. After the change to gettext version requirements this file
8946    no longer got copied to the package and so the build was broken.
8947
8948 m4/.gitignore    |  1 -
8949 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8950 2 files changed, 77 insertions(+), 1 deletion(-)
8951
8952commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
8953Author: Lasse Collin <lasse.collin@tukaani.org>
8954Date:   2020-02-21 16:10:44 +0200
8955
8956    xz: Silence a warning when sig_atomic_t is long int.
8957    
8958    It can be true at least on z/OS.
8959
8960 src/xz/signals.c | 2 +-
8961 1 file changed, 1 insertion(+), 1 deletion(-)
8962
8963commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
8964Author: Lasse Collin <lasse.collin@tukaani.org>
8965Date:   2020-02-21 15:59:26 +0200
8966
8967    xz: Avoid unneeded access of a volatile variable.
8968
8969 src/xz/signals.c | 2 +-
8970 1 file changed, 1 insertion(+), 1 deletion(-)
8971
8972commit 524c2f12c762032b819757aeda8af7c47c4cabce
8973Author: Lasse Collin <lasse.collin@tukaani.org>
8974Date:   2020-02-21 01:24:18 +0200
8975
8976    tuklib_integer.m4: Optimize the check order.
8977    
8978    The __builtin byteswapping is the preferred one so check for it first.
8979
8980 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
8981 1 file changed, 29 insertions(+), 27 deletions(-)
8982
8983commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
8984Author: Lasse Collin <lasse.collin@tukaani.org>
8985Date:   2020-02-20 18:54:04 +0200
8986
8987    tuklib_exit: Add missing header.
8988    
8989    strerror() needs <string.h> which happened to be included via
8990    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
8991    was defined. This wasn't tested without config.h before so it
8992    had worked fine.
8993
8994 src/common/tuklib_exit.c | 1 +
8995 1 file changed, 1 insertion(+)
8996
8997commit fddd31175e74a538997a939d930462fde17d2dd4
8998Author: Lasse Collin <lasse.collin@tukaani.org>
8999Date:   2020-02-18 19:12:35 +0200
9000
9001    Revert the previous commit and add a comment.
9002    
9003    The previous commit broke crc32_tablegen.c.
9004    
9005    If the whole package is built without config.h (with defines
9006    set on the compiler command line) this should still work fine
9007    as long as these headers conform to C99 well enough.
9008
9009 src/common/tuklib_config.h | 17 ++++++++++-------
9010 1 file changed, 10 insertions(+), 7 deletions(-)
9011
9012commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
9013Author: Lasse Collin <lasse.collin@tukaani.org>
9014Date:   2020-02-17 23:37:20 +0200
9015
9016    Do not check for HAVE_CONFIG_H in tuklib_config.h.
9017    
9018    In XZ Utils sysdefs.h takes care of it and the required headers.
9019
9020 src/common/tuklib_config.h | 15 +++++++--------
9021 1 file changed, 7 insertions(+), 8 deletions(-)
9022
9023commit 2d4cef954feba82073951358466a1d614141cf33
9024Author: Lasse Collin <lasse.collin@tukaani.org>
9025Date:   2020-02-16 11:18:28 +0200
9026
9027    sysdefs.h: Omit the conditionals around string.h and limits.h.
9028    
9029    string.h is used unconditionally elsewhere in the project and
9030    configure has always stopped if limits.h is missing, so these
9031    headers must have been always available even on the weirdest
9032    systems.
9033
9034 src/common/sysdefs.h | 8 ++------
9035 1 file changed, 2 insertions(+), 6 deletions(-)
9036
9037commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
9038Author: Lasse Collin <lasse.collin@tukaani.org>
9039Date:   2020-02-15 15:07:11 +0200
9040
9041    Build: Bump Autoconf and Libtool version requirements.
9042    
9043    There is no specific reason for this other than blocking
9044    the most ancient versions. These are still old:
9045    
9046    Autoconf 2.69 (2012)
9047    Automake 1.12 (2012)
9048    gettext 0.19.6 (2015)
9049    Libtool 2.4 (2010)
9050
9051 configure.ac | 4 ++--
9052 1 file changed, 2 insertions(+), 2 deletions(-)
9053
9054commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
9055Author: Lasse Collin <lasse.collin@tukaani.org>
9056Date:   2020-02-15 03:08:32 +0200
9057
9058    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
9059    
9060    This bumps the version requirement from 0.19 (from 2014) to
9061    0.19.6 (2015).
9062    
9063    Using only the old AM_GNU_GETTEXT_VERSION results in old
9064    gettext infrastructure being placed in the package. By using
9065    both macros we get the latest gettext files while the other
9066    programs in the Autotools family can still see the old macro.
9067
9068 configure.ac | 6 +++++-
9069 1 file changed, 5 insertions(+), 1 deletion(-)
9070
9071commit fa792b8befaf7cb3960b655e0a9410da866d756f
9072Author: Lasse Collin <lasse.collin@tukaani.org>
9073Date:   2020-02-14 20:42:06 +0200
9074
9075    Translations: Add German translation of the man pages.
9076    
9077    Thanks to Mario Bl��ttermann.
9078
9079 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9080 po4a/po4a.conf |    2 +-
9081 2 files changed, 5533 insertions(+), 1 deletion(-)
9082
9083commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
9084Author: Lasse Collin <lasse.collin@tukaani.org>
9085Date:   2020-02-07 15:32:21 +0200
9086
9087    Build: Add support for translated man pages using po4a.
9088    
9089    The dependency on po4a is optional. It's never required to install
9090    the translated man pages when xz is built from a release tarball.
9091    If po4a is missing when building from xz.git, the translated man
9092    pages won't be generated but otherwise the build will work normally.
9093    
9094    The translations are only updated automatically by autogen.sh and
9095    by "make mydist". This makes it easy to keep po4a as an optional
9096    dependency and ensures that I won't forget to put updated
9097    translations to a release tarball.
9098    
9099    The translated man pages aren't installed if --disable-nls is used.
9100    
9101    The installation of translated man pages abuses Automake internals
9102    by calling "install-man" with redefined dist_man_MANS and man_MANS.
9103    This makes the hairy script code slightly less hairy. If it breaks
9104    some day, this code needs to be fixed; don't blame Automake developers.
9105    
9106    Also, this adds more quotes to the existing shell script code in
9107    the Makefile.am "-hook"s.
9108
9109 Makefile.am             |  4 ++++
9110 autogen.sh              |  8 ++++---
9111 po4a/.gitignore         |  2 ++
9112 po4a/po4a.conf          | 14 +++++++++++
9113 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
9114 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
9115 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
9116 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
9117 8 files changed, 197 insertions(+), 45 deletions(-)
9118
9119commit 426f9e5819ff7710a5ff573a96c02940be65d52f
9120Author: Lasse Collin <lasse.collin@tukaani.org>
9121Date:   2020-02-06 17:31:38 +0200
9122
9123    Update THANKS.
9124
9125 THANKS | 1 +
9126 1 file changed, 1 insertion(+)
9127
9128commit e3a4481d020e4de89efa037f335cf50f3ca55592
9129Author: Lasse Collin <lasse.collin@tukaani.org>
9130Date:   2020-02-05 22:35:06 +0200
9131
9132    Update tests/.gitignore.
9133
9134 .gitignore | 4 ++++
9135 1 file changed, 4 insertions(+)
9136
9137commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
9138Author: Lasse Collin <lasse.collin@tukaani.org>
9139Date:   2020-02-05 22:28:51 +0200
9140
9141    Update m4/.gitignore.
9142
9143 m4/.gitignore | 1 +
9144 1 file changed, 1 insertion(+)
9145
9146commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
9147Author: Lasse Collin <lasse.collin@tukaani.org>
9148Date:   2020-02-05 20:47:38 +0200
9149
9150    Update THANKS.
9151
9152 THANKS | 1 +
9153 1 file changed, 1 insertion(+)
9154
9155commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
9156Author: Lasse Collin <lasse.collin@tukaani.org>
9157Date:   2020-02-05 20:40:14 +0200
9158
9159    xz: Make it a fatal error if enabling the sandbox fails.
9160    
9161    Perhaps it's too drastic but on the other hand it will let me
9162    learn about possible problems if people report the errors.
9163    This won't be backported to the v5.2 branch.
9164
9165 src/xz/file_io.c | 2 +-
9166 1 file changed, 1 insertion(+), 1 deletion(-)
9167
9168commit af0fb386ef55db66654ae39e2deec6e04190c4ff
9169Author: Lasse Collin <lasse.collin@tukaani.org>
9170Date:   2020-02-05 20:33:50 +0200
9171
9172    xz: Comment out annoying sandboxing messages.
9173
9174 src/xz/file_io.c | 10 +++++++---
9175 1 file changed, 7 insertions(+), 3 deletions(-)
9176
9177commit 986d8c9b52b824474088e5bb3b6940651660f0e2
9178Author: Lasse Collin <lasse.collin@tukaani.org>
9179Date:   2020-02-05 19:33:37 +0200
9180
9181    Build: Workaround a POSIX shell detection problem on Solaris.
9182    
9183    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
9184    or if xzgrep does something that isn't in POSIX. The workaround
9185    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
9186    gl_cv_posix_shell wasn't overriden on the configure command line,
9187    use that shell for xzgrep and other scripts. That shell is known
9188    to work and exists on most Solaris systems.
9189
9190 configure.ac | 10 ++++++++++
9191 1 file changed, 10 insertions(+)
9192
9193commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
9194Author: Lasse Collin <lasse.collin@tukaani.org>
9195Date:   2020-02-03 22:03:50 +0200
9196
9197    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
9198
9199 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
9200 1 file changed, 279 insertions(+), 119 deletions(-)
9201
9202commit 353970510895f6a80adfe60cf71b70a95adfa8bc
9203Author: Lasse Collin <lasse.collin@tukaani.org>
9204Date:   2020-02-01 19:56:18 +0200
9205
9206    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
9207    
9208    See the code comment for reasoning. It's far from perfect but
9209    hopefully good enough for certain cases while hopefully doing
9210    nothing bad in other situations.
9211    
9212    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
9213    on how xz scales down the number of threads.
9214    
9215    The limit has to be a few MiB below 4096 MiB because otherwise
9216    things like "xz --lzma2=dict=500MiB" won't scale down the dict
9217    size enough and xz cannot allocate enough memory. With
9218    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
9219    to be no more than 4085 MiB. Some safety margin is good though.
9220    
9221    This is hack but it should be useful when running 32-bit xz on
9222    a 64-bit kernel that gives full 4 GiB address space to xz.
9223    Hopefully this is enough to solve this:
9224    
9225    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
9226    
9227    FreeBSD has a patch that limits the result in tuklib_physmem()
9228    to SIZE_MAX on 32-bit systems. While I think it's not the way
9229    to do it, the results on --memlimit-compress have been good. This
9230    commit should achieve practically identical results for compression
9231    while leaving decompression and tuklib_physmem() and thus
9232    lzma_physmem() unaffected.
9233
9234 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
9235 src/xz/xz.1       | 21 ++++++++++++++++++++-
9236 2 files changed, 51 insertions(+), 2 deletions(-)
9237
9238commit ba76d67585f88677af9f48b48e7bdc3bb7687def
9239Author: Lasse Collin <lasse.collin@tukaani.org>
9240Date:   2020-01-26 20:53:25 +0200
9241
9242    xz: Set the --flush-timeout deadline when the first input byte arrives.
9243    
9244    xz --flush-timeout=2000, old version:
9245    
9246      1. xz is started. The next flush will happen after two seconds.
9247      2. No input for one second.
9248      3. A burst of a few kilobytes of input.
9249      4. No input for one second.
9250      5. Two seconds have passed and flushing starts.
9251    
9252    The first second counted towards the flush-timeout even though
9253    there was no pending data. This can cause flushing to occur more
9254    often than needed.
9255    
9256    xz --flush-timeout=2000, after this commit:
9257    
9258      1. xz is started.
9259      2. No input for one second.
9260      3. A burst of a few kilobytes of input. The next flush will
9261         happen after two seconds counted from the time when the
9262         first bytes of the burst were read.
9263      4. No input for one second.
9264      5. No input for another second.
9265      6. Two seconds have passed and flushing starts.
9266
9267 src/xz/coder.c   | 6 +-----
9268 src/xz/file_io.c | 6 +++++-
9269 src/xz/mytime.c  | 1 -
9270 3 files changed, 6 insertions(+), 7 deletions(-)
9271
9272commit fd47fd62bbb1bfd13ab63869137971d8b390025f
9273Author: Lasse Collin <lasse.collin@tukaani.org>
9274Date:   2020-01-26 20:19:19 +0200
9275
9276    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
9277
9278 src/xz/coder.c   | 3 ++-
9279 src/xz/file_io.c | 3 ++-
9280 src/xz/file_io.h | 3 +++
9281 src/xz/mytime.c  | 3 ---
9282 src/xz/mytime.h  | 4 ----
9283 5 files changed, 7 insertions(+), 9 deletions(-)
9284
9285commit 815035681063d5774d3640fc20b8ede783dd574e
9286Author: Lasse Collin <lasse.collin@tukaani.org>
9287Date:   2020-01-26 14:49:22 +0200
9288
9289    xz: coder.c: Make writing output a separate function.
9290    
9291    The same code sequence repeats so it's nicer as a separate function.
9292    Note that in one case there was no test for opt_mode != MODE_TEST,
9293    but that was only because that condition would always be true, so
9294    this commit doesn't change the behavior there.
9295
9296 src/xz/coder.c | 30 +++++++++++++++++-------------
9297 1 file changed, 17 insertions(+), 13 deletions(-)
9298
9299commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
9300Author: Lasse Collin <lasse.collin@tukaani.org>
9301Date:   2020-01-26 14:13:42 +0200
9302
9303    xz: Fix semi-busy-waiting in xz --flush-timeout.
9304    
9305    When input blocked, xz --flush-timeout=1 would wake up every
9306    millisecond and initiate flushing which would have nothing to
9307    flush and thus would just waste CPU time. The fix disables the
9308    timeout when no input has been seen since the previous flush.
9309
9310 src/xz/coder.c   |  4 ++++
9311 src/xz/file_io.c | 15 +++++++++++----
9312 src/xz/file_io.h |  4 ++++
9313 3 files changed, 19 insertions(+), 4 deletions(-)
9314
9315commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
9316Author: Lasse Collin <lasse.collin@tukaani.org>
9317Date:   2020-01-26 13:47:31 +0200
9318
9319    xz: Refactor io_read() a bit.
9320
9321 src/xz/file_io.c | 17 ++++++++---------
9322 1 file changed, 8 insertions(+), 9 deletions(-)
9323
9324commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
9325Author: Lasse Collin <lasse.collin@tukaani.org>
9326Date:   2020-01-26 13:37:08 +0200
9327
9328    xz: Update a comment in file_io.h.
9329
9330 src/xz/file_io.h | 5 ++++-
9331 1 file changed, 4 insertions(+), 1 deletion(-)
9332
9333commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
9334Author: Lasse Collin <lasse.collin@tukaani.org>
9335Date:   2020-01-26 13:27:51 +0200
9336
9337    xz: Move the setting of flush_needed in file_io.c to a nicer location.
9338
9339 src/xz/file_io.c | 6 ++----
9340 1 file changed, 2 insertions(+), 4 deletions(-)
9341
9342commit cf2df0f05ac98c1158c6e48145900b773223605d
9343Author: Lasse Collin <lasse.collin@tukaani.org>
9344Date:   2020-01-19 21:54:33 +0200
9345
9346    Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
9347    
9348    https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048
9349    
9350    Thanks to Bhargava Shastry for sending the patch.
9351
9352 tests/ossfuzz/Makefile | 2 +-
9353 1 file changed, 1 insertion(+), 1 deletion(-)
9354
9355commit 7136f1735c60ac6967c4b8e277fcde53d485234f
9356Author: Lasse Collin <lasse.collin@tukaani.org>
9357Date:   2019-12-31 00:41:28 +0200
9358
9359    Rename unaligned_read32ne to read32ne, and similarly for the others.
9360
9361 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
9362 src/liblzma/common/alone_encoder.c        |  2 +-
9363 src/liblzma/common/block_header_decoder.c |  2 +-
9364 src/liblzma/common/block_header_encoder.c |  2 +-
9365 src/liblzma/common/memcmplen.h            |  9 ++---
9366 src/liblzma/common/stream_flags_decoder.c |  6 +--
9367 src/liblzma/common/stream_flags_encoder.c |  8 ++--
9368 src/liblzma/lz/lz_encoder_hash.h          |  2 +-
9369 src/liblzma/lzma/lzma_decoder.c           |  2 +-
9370 src/liblzma/lzma/lzma_encoder.c           |  2 +-
9371 src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
9372 src/liblzma/simple/simple_decoder.c       |  2 +-
9373 src/liblzma/simple/simple_encoder.c       |  2 +-
9374 tests/test_block_header.c                 |  4 +-
9375 tests/test_stream_flags.c                 |  6 +--
9376 15 files changed, 54 insertions(+), 62 deletions(-)
9377
9378commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
9379Author: Lasse Collin <lasse.collin@tukaani.org>
9380Date:   2019-12-31 00:29:48 +0200
9381
9382    Rename read32ne to aligned_read32ne, and similarly for the others.
9383    
9384    Using the aligned methods requires more care to ensure that
9385    the address really is aligned, so it's nicer if the aligned
9386    methods are prefixed. The next commit will remove the unaligned_
9387    prefix from the unaligned methods which in liblzma are used in
9388    more places than the aligned ones.
9389
9390 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
9391 src/liblzma/check/crc32_fast.c |  4 +--
9392 src/liblzma/check/crc64_fast.c |  4 +--
9393 3 files changed, 32 insertions(+), 32 deletions(-)
9394
9395commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
9396Author: Lasse Collin <lasse.collin@tukaani.org>
9397Date:   2019-12-31 00:18:24 +0200
9398
9399    Revise tuklib_integer.h and .m4.
9400    
9401    Add a configure option --enable-unsafe-type-punning to get the
9402    old non-conforming memory access methods. It can be useful with
9403    old compilers or in some other less typical situations but
9404    shouldn't normally be used.
9405    
9406    Omit the packed struct trick for unaligned access. While it's
9407    best in some cases, this is simpler. If the memcpy trick doesn't
9408    work, one can request unsafe type punning from configure.
9409    
9410    Because CRC32/CRC64 code needs fast aligned reads, if no very
9411    safe way to do it is found, type punning is used as a fallback.
9412    This sucks but since it currently works in practice, it seems to
9413    be the least bad option. It's never needed with GCC >= 4.7 or
9414    Clang >= 3.6 since these support __builtin_assume_aligned and
9415    thus fast aligned access can be done with the memcpy trick.
9416    
9417    Other things:
9418      - Support GCC/Clang __builtin_bswapXX
9419      - Cleaner bswap fallback macros
9420      - Minor cleanups
9421
9422 m4/tuklib_integer.m4        |  46 ++++-
9423 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
9424 2 files changed, 316 insertions(+), 218 deletions(-)
9425
9426commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
9427Author: Lasse Collin <lasse.collin@tukaani.org>
9428Date:   2019-12-29 22:51:58 +0200
9429
9430    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
9431    
9432    Thanks to Daniel Richard G.
9433
9434 tests/test_check.c | 9 +++++++--
9435 1 file changed, 7 insertions(+), 2 deletions(-)
9436
9437commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
9438Author: Lasse Collin <lasse.collin@tukaani.org>
9439Date:   2019-09-24 23:02:40 +0300
9440
9441    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
9442    
9443    This adds a configure option --enable-path-for-scripts=PREFIX
9444    which defaults to empty except on Solaris it is /usr/xpg4/bin
9445    to make POSIX grep and others available. The Solaris case had
9446    been documented in INSTALL with a manual fix but it's better
9447    to do this automatically since it is needed on most Solaris
9448    systems anyway.
9449    
9450    Thanks to Daniel Richard G.
9451
9452 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
9453 configure.ac          | 26 ++++++++++++++++++++++++++
9454 src/scripts/xzdiff.in |  1 +
9455 src/scripts/xzgrep.in |  1 +
9456 src/scripts/xzless.in |  1 +
9457 src/scripts/xzmore.in |  1 +
9458 6 files changed, 65 insertions(+), 8 deletions(-)
9459
9460commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
9461Author: Lasse Collin <lasse.collin@tukaani.org>
9462Date:   2019-07-12 18:57:43 +0300
9463
9464    Fix comment typos in tuklib_mbstr* files.
9465
9466 src/common/tuklib_mbstr.h       | 2 +-
9467 src/common/tuklib_mbstr_fw.c    | 2 +-
9468 src/common/tuklib_mbstr_width.c | 2 +-
9469 3 files changed, 3 insertions(+), 3 deletions(-)
9470
9471commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
9472Author: Lasse Collin <lasse.collin@tukaani.org>
9473Date:   2019-07-12 18:30:46 +0300
9474
9475    Add missing include to tuklib_mbstr_width.c.
9476    
9477    It didn't matter in XZ Utils because sysdefs.h
9478    includes string.h anyway.
9479
9480 src/common/tuklib_mbstr_width.c | 1 +
9481 1 file changed, 1 insertion(+)
9482
9483commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
9484Author: Lasse Collin <lasse.collin@tukaani.org>
9485Date:   2019-07-12 18:10:57 +0300
9486
9487    Update tuklib base headers to include stdbool.h.
9488
9489 src/common/tuklib_common.h | 2 +-
9490 src/common/tuklib_config.h | 1 +
9491 2 files changed, 2 insertions(+), 1 deletion(-)
9492
9493commit de1f47b2b40e960b7bc3acba754f66dd19705921
9494Author: Lasse Collin <lasse.collin@tukaani.org>
9495Date:   2019-06-28 00:54:31 +0300
9496
9497    xz: Automatically align the strings in --info-memory.
9498    
9499    This makes it easier to translate the strings.
9500    
9501    Also, the string for amount of RAM was shortened.
9502
9503 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++-----------
9504 1 file changed, 34 insertions(+), 11 deletions(-)
9505
9506commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
9507Author: Lasse Collin <lasse.collin@tukaani.org>
9508Date:   2019-06-25 23:15:21 +0300
9509
9510    liblzma: Fix a buggy comment.
9511
9512 src/liblzma/lz/lz_encoder_mf.c | 2 +-
9513 1 file changed, 1 insertion(+), 1 deletion(-)
9514
9515commit fc77929e92e869f6869bf88931066103fd75f376
9516Author: Lasse Collin <lasse.collin@tukaani.org>
9517Date:   2019-06-25 00:16:06 +0300
9518
9519    configure.ac: Fix a typo in a comment.
9520
9521 configure.ac | 2 +-
9522 1 file changed, 1 insertion(+), 1 deletion(-)
9523
9524commit e873902641794210ad7db59743f98e3e1cd6139f
9525Author: Lasse Collin <lasse.collin@tukaani.org>
9526Date:   2019-06-25 00:08:13 +0300
9527
9528    Tests: Silence warnings from clang -Wassign-enum.
9529    
9530    Also changed 999 to 99 so it fits even if lzma_check happened
9531    to be 8 bits wide.
9532
9533 tests/test_block_header.c | 3 ++-
9534 tests/test_stream_flags.c | 2 +-
9535 2 files changed, 3 insertions(+), 2 deletions(-)
9536
9537commit d499e467d99efeaae688564eedc4548837c1416a
9538Author: Lasse Collin <lasse.collin@tukaani.org>
9539Date:   2019-06-24 23:52:17 +0300
9540
9541    liblzma: Add a comment.
9542
9543 src/liblzma/common/stream_encoder_mt.c | 2 +-
9544 1 file changed, 1 insertion(+), 1 deletion(-)
9545
9546commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
9547Author: Lasse Collin <lasse.collin@tukaani.org>
9548Date:   2019-06-24 23:45:21 +0300
9549
9550    liblzma: Silence clang -Wmissing-variable-declarations.
9551
9552 src/liblzma/check/crc32_table.c | 3 +++
9553 src/liblzma/check/crc64_table.c | 3 +++
9554 2 files changed, 6 insertions(+)
9555
9556commit 1b4675cebf7471f7cc9b7072c950e3de97147063
9557Author: Lasse Collin <lasse.collin@tukaani.org>
9558Date:   2019-06-24 23:25:41 +0300
9559
9560    Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
9561    
9562    LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
9563    enumeration. Previously it was #defined to 32 and cast to lzma_ret.
9564    That way it wasn't visible in the public API, but this was hackish.
9565    
9566    Now the public API has eight LZMA_RET_INTERNALx members and
9567    LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
9568    the code is cleaner overall although the public API has a few
9569    extra mysterious enum members.
9570
9571 src/liblzma/api/lzma/base.h | 15 ++++++++++++++-
9572 src/liblzma/common/common.c |  4 +---
9573 src/liblzma/common/common.h |  5 ++---
9574 src/xz/message.c            |  8 ++++++++
9575 4 files changed, 25 insertions(+), 7 deletions(-)
9576
9577commit 159c43875eb25deea626ed651274464bae3e32ef
9578Author: Lasse Collin <lasse.collin@tukaani.org>
9579Date:   2019-06-24 22:57:43 +0300
9580
9581    xz: Silence a warning from clang -Wsign-conversion in main.c.
9582
9583 src/xz/main.c | 2 +-
9584 1 file changed, 1 insertion(+), 1 deletion(-)
9585
9586commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
9587Author: Lasse Collin <lasse.collin@tukaani.org>
9588Date:   2019-06-24 22:52:20 +0300
9589
9590    xz: Make "headings" static in list.c.
9591    
9592    Caught by clang -Wmissing-variable-declarations.
9593
9594 src/xz/list.c | 2 +-
9595 1 file changed, 1 insertion(+), 1 deletion(-)
9596
9597commit 608517b9b76c41fac6613dbda1193d6f41338e19
9598Author: Lasse Collin <lasse.collin@tukaani.org>
9599Date:   2019-06-24 22:47:39 +0300
9600
9601    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
9602    
9603    Caught by clang -Wused-but-marked-unused.
9604
9605 src/liblzma/common/alone_decoder.c | 3 +--
9606 src/liblzma/common/alone_encoder.c | 3 +--
9607 src/liblzma/lz/lz_decoder.c        | 3 +--
9608 3 files changed, 3 insertions(+), 6 deletions(-)
9609
9610commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
9611Author: Lasse Collin <lasse.collin@tukaani.org>
9612Date:   2019-06-24 20:53:55 +0300
9613
9614    Tests: Silence a warning from -Wsign-conversion.
9615
9616 tests/create_compress_files.c | 8 ++++----
9617 1 file changed, 4 insertions(+), 4 deletions(-)
9618
9619commit 2402f7873dcae719d0ebddd23bb579074519ac52
9620Author: Lasse Collin <lasse.collin@tukaani.org>
9621Date:   2019-06-24 20:45:49 +0300
9622
9623    xz: Fix an integer overflow with 32-bit off_t.
9624    
9625    Or any off_t which isn't very big (like signed 64 bit integer
9626    that most system have). A small off_t could overflow if the
9627    file being decompressed had long enough run of zero bytes,
9628    which would result in corrupt output.
9629
9630 src/xz/file_io.c | 11 +++++++++--
9631 1 file changed, 9 insertions(+), 2 deletions(-)
9632
9633commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
9634Author: Lasse Collin <lasse.collin@tukaani.org>
9635Date:   2019-06-24 01:24:17 +0300
9636
9637    xz: Cleanup io_seek_src() a bit.
9638    
9639    lseek() returns -1 on error and checking for -1 is nicer.
9640
9641 src/xz/file_io.c | 4 +---
9642 1 file changed, 1 insertion(+), 3 deletions(-)
9643
9644commit dfda7cf6afa486e10df035327d68753896dfb48a
9645Author: Lasse Collin <lasse.collin@tukaani.org>
9646Date:   2019-06-24 00:57:23 +0300
9647
9648    Tests: Remove a duplicate branch from tests/tests.h.
9649    
9650    The duplication was introduced about eleven years ago and
9651    should have been cleaned up back then already.
9652    
9653    This was caught by -Wduplicated-branches.
9654
9655 tests/tests.h | 9 ++-------
9656 1 file changed, 2 insertions(+), 7 deletions(-)
9657
9658commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
9659Author: Lasse Collin <lasse.collin@tukaani.org>
9660Date:   2019-06-24 00:40:45 +0300
9661
9662    xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
9663    
9664    This helps fixing warnings from -Wsign-conversion and makes the
9665    code look better too.
9666
9667 src/xz/file_io.c | 16 ++++++++++++----
9668 src/xz/file_io.h |  4 ++--
9669 src/xz/list.c    |  9 ++++-----
9670 3 files changed, 18 insertions(+), 11 deletions(-)
9671
9672commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
9673Author: Lasse Collin <lasse.collin@tukaani.org>
9674Date:   2019-06-24 00:12:38 +0300
9675
9676    xz: list.c: Fix some warnings from -Wsign-conversion.
9677
9678 src/xz/list.c | 7 ++++---
9679 1 file changed, 4 insertions(+), 3 deletions(-)
9680
9681commit d0a78751eb54fb1572002746c533936a118e4e42
9682Author: Lasse Collin <lasse.collin@tukaani.org>
9683Date:   2019-06-23 23:22:45 +0300
9684
9685    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
9686
9687 src/common/tuklib_mbstr_width.c | 2 +-
9688 1 file changed, 1 insertion(+), 1 deletion(-)
9689
9690commit 7883d73530b4b2a701ddd7d50c35676cbc158039
9691Author: Lasse Collin <lasse.collin@tukaani.org>
9692Date:   2019-06-23 23:19:34 +0300
9693
9694    xz: Fix some of the warnings from -Wsign-conversion.
9695
9696 src/xz/args.c    | 4 ++--
9697 src/xz/coder.c   | 4 ++--
9698 src/xz/file_io.c | 5 +++--
9699 src/xz/message.c | 4 ++--
9700 src/xz/mytime.c  | 4 ++--
9701 src/xz/options.c | 2 +-
9702 src/xz/util.c    | 4 ++--
9703 7 files changed, 14 insertions(+), 13 deletions(-)
9704
9705commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
9706Author: Lasse Collin <lasse.collin@tukaani.org>
9707Date:   2019-06-23 22:27:45 +0300
9708
9709    tuklib_cpucores: Silence warnings from -Wsign-conversion.
9710
9711 src/common/tuklib_cpucores.c | 10 +++++-----
9712 1 file changed, 5 insertions(+), 5 deletions(-)
9713
9714commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
9715Author: Lasse Collin <lasse.collin@tukaani.org>
9716Date:   2019-06-23 21:40:47 +0300
9717
9718    xzdec: Fix warnings from -Wsign-conversion.
9719
9720 src/xzdec/xzdec.c | 2 +-
9721 1 file changed, 1 insertion(+), 1 deletion(-)
9722
9723commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
9724Author: Lasse Collin <lasse.collin@tukaani.org>
9725Date:   2019-06-23 21:38:56 +0300
9726
9727    liblzma: Fix warnings from -Wsign-conversion.
9728    
9729    Also, more parentheses were added to the literal_subcoder
9730    macro in lzma_comon.h (better style but no functional change
9731    in the current usage).
9732
9733 src/liblzma/common/block_header_decoder.c |  2 +-
9734 src/liblzma/delta/delta_decoder.c         |  2 +-
9735 src/liblzma/lzma/fastpos.h                |  2 +-
9736 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
9737 src/liblzma/lzma/lzma_common.h            |  3 ++-
9738 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
9739 src/liblzma/simple/arm.c                  |  6 +++---
9740 src/liblzma/simple/armthumb.c             |  8 ++++----
9741 src/liblzma/simple/ia64.c                 |  2 +-
9742 src/liblzma/simple/powerpc.c              |  9 +++++----
9743 src/liblzma/simple/x86.c                  |  2 +-
9744 11 files changed, 31 insertions(+), 29 deletions(-)
9745
9746commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
9747Author: Lasse Collin <lasse.collin@tukaani.org>
9748Date:   2019-06-23 19:33:55 +0300
9749
9750    tuklib_integer: Silence warnings from -Wsign-conversion.
9751
9752 src/common/tuklib_integer.h | 6 +++---
9753 1 file changed, 3 insertions(+), 3 deletions(-)
9754
9755commit 3ce05d235f736d392347a05086b8033416874b87
9756Author: Lasse Collin <lasse.collin@tukaani.org>
9757Date:   2019-06-20 19:40:30 +0300
9758
9759    tuklib_integer: Fix usage of conv macros.
9760    
9761    Use a temporary variable instead of e.g.
9762    conv32le(unaligned_read32ne(buf)) because the macro can
9763    evaluate its argument multiple times.
9764
9765 src/common/tuklib_integer.h | 12 ++++++++----
9766 1 file changed, 8 insertions(+), 4 deletions(-)
9767
9768commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
9769Author: Lasse Collin <lasse.collin@tukaani.org>
9770Date:   2019-06-03 20:44:19 +0300
9771
9772    Update THANKS.
9773
9774 THANKS | 1 +
9775 1 file changed, 1 insertion(+)
9776
9777commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
9778Author: Lasse Collin <lasse.collin@tukaani.org>
9779Date:   2019-06-03 20:41:54 +0300
9780
9781    liblzma: Fix comments.
9782    
9783    Thanks to Bruce Stark.
9784
9785 src/liblzma/common/alone_encoder.c        | 4 ++--
9786 src/liblzma/common/block_util.c           | 2 +-
9787 src/liblzma/common/common.c               | 2 +-
9788 src/liblzma/common/filter_common.h        | 2 +-
9789 src/liblzma/common/filter_decoder.h       | 2 +-
9790 src/liblzma/common/filter_flags_encoder.c | 2 +-
9791 6 files changed, 7 insertions(+), 7 deletions(-)
9792
9793commit c460f6defebc5a81bbca90adc2476154ca244f69
9794Author: Lasse Collin <lasse.collin@tukaani.org>
9795Date:   2019-06-02 00:50:59 +0300
9796
9797    liblzma: Fix one more unaligned read to use unaligned_read16ne().
9798
9799 src/liblzma/lz/lz_encoder_hash.h | 2 +-
9800 1 file changed, 1 insertion(+), 1 deletion(-)
9801
9802commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
9803Author: Lasse Collin <lasse.collin@tukaani.org>
9804Date:   2019-06-01 21:41:55 +0300
9805
9806    Update THANKS.
9807
9808 THANKS | 1 +
9809 1 file changed, 1 insertion(+)
9810
9811commit 386394fc9fcde2615391f804eaa466749f96f4ef
9812Author: Lasse Collin <lasse.collin@tukaani.org>
9813Date:   2019-06-01 21:36:13 +0300
9814
9815    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
9816    
9817    The same compiler-specific #ifdefs are already in tuklib_integer.h
9818
9819 src/liblzma/common/memcmplen.h | 10 +---------
9820 1 file changed, 1 insertion(+), 9 deletions(-)
9821
9822commit 264ab971ce2994baac41b1579c9c35aba7743fc8
9823Author: Lasse Collin <lasse.collin@tukaani.org>
9824Date:   2019-06-01 21:30:03 +0300
9825
9826    tuklib_integer: Cleanup MSVC-specific code.
9827
9828 src/common/tuklib_integer.h | 20 +++++++++-----------
9829 1 file changed, 9 insertions(+), 11 deletions(-)
9830
9831commit 33773c6f2a8711d4aa6656795db52c59a28580ec
9832Author: Lasse Collin <lasse.collin@tukaani.org>
9833Date:   2019-06-01 19:01:21 +0300
9834
9835    liblzma: Use unaligned_readXXne functions instead of type punning.
9836    
9837    Now gcc -fsanitize=undefined should be clean.
9838    
9839    Thanks to Jeffrey Walton.
9840
9841 src/liblzma/common/memcmplen.h          | 12 ++++++------
9842 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
9843 2 files changed, 7 insertions(+), 7 deletions(-)
9844
9845commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
9846Author: Lasse Collin <lasse.collin@tukaani.org>
9847Date:   2019-06-01 18:46:54 +0300
9848
9849    tuklib_integer: Autodetect support for unaligned access on ARM.
9850    
9851    The result is used as the default for --enable-unaligned-access.
9852    The test should work with GCC and Clang.
9853
9854 m4/tuklib_integer.m4 | 11 +++++++++++
9855 1 file changed, 11 insertions(+)
9856
9857commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
9858Author: Lasse Collin <lasse.collin@tukaani.org>
9859Date:   2019-06-01 18:41:16 +0300
9860
9861    tuklib_integer: Improve unaligned memory access.
9862    
9863    Now memcpy() or GNU C packed structs for unaligned access instead
9864    of type punning. See the comment in this commit for details.
9865    
9866    Avoiding type punning with unaligned access is needed to
9867    silence gcc -fsanitize=undefined.
9868    
9869    New functions: unaliged_readXXne and unaligned_writeXXne where
9870    XX is 16, 32, or 64.
9871
9872 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
9873 1 file changed, 168 insertions(+), 12 deletions(-)
9874
9875commit 2a22de439ec63da1927b640eda309296a1e8dce5
9876Author: Lasse Collin <lasse.collin@tukaani.org>
9877Date:   2019-05-13 20:05:17 +0300
9878
9879    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
9880    
9881    I should have always known this but I didn't. Here is an example
9882    as a reminder to myself:
9883    
9884        int mycopy(void *dest, void *src, size_t n)
9885        {
9886            memcpy(dest, src, n);
9887            return dest == NULL;
9888        }
9889    
9890    In the example, a compiler may assume that dest != NULL because
9891    passing NULL to memcpy() would be undefined behavior. Testing
9892    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
9893    With -O2 the return value is 0 because the compiler infers that
9894    dest cannot be NULL because it was already used with memcpy()
9895    and thus the test for NULL gets optimized out.
9896    
9897    In liblzma, if a null-pointer was passed to memcpy(), there were
9898    no checks for NULL *after* the memcpy() call, so I cautiously
9899    suspect that it shouldn't have caused bad behavior in practice,
9900    but it's hard to be sure, and the problematic cases had to be
9901    fixed anyway.
9902    
9903    Thanks to Jeffrey Walton.
9904
9905 src/liblzma/common/common.c       |  6 +++++-
9906 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
9907 src/liblzma/simple/simple_coder.c | 10 +++++++++-
9908 3 files changed, 23 insertions(+), 5 deletions(-)
9909
9910commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
9911Author: Lasse Collin <lasse.collin@tukaani.org>
9912Date:   2019-05-11 20:56:08 +0300
9913
9914    Update THANKS.
9915
9916 THANKS | 1 +
9917 1 file changed, 1 insertion(+)
9918
9919commit 4adb8288ab61d5f14e212007b8742df0710baf73
9920Author: Lasse Collin <lasse.collin@tukaani.org>
9921Date:   2019-05-11 20:54:12 +0300
9922
9923    xz: Update xz man page date.
9924
9925 src/xz/xz.1 | 2 +-
9926 1 file changed, 1 insertion(+), 1 deletion(-)
9927
9928commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
9929Author: Antoine C��ur <antoine.coeur@ef.com>
9930Date:   2019-05-08 13:30:57 +0800
9931
9932    spelling
9933
9934 Doxyfile.in                            | 2 +-
9935 NEWS                                   | 2 +-
9936 doc/examples/11_file_info.c            | 2 +-
9937 src/liblzma/api/lzma/block.h           | 2 +-
9938 src/liblzma/api/lzma/hardware.h        | 2 +-
9939 src/liblzma/api/lzma/lzma12.h          | 2 +-
9940 src/liblzma/api/lzma/vli.h             | 2 +-
9941 src/liblzma/common/file_info.c         | 4 ++--
9942 src/liblzma/common/hardware_physmem.c  | 2 +-
9943 src/liblzma/common/index.c             | 4 ++--
9944 src/liblzma/common/stream_encoder_mt.c | 2 +-
9945 src/liblzma/common/vli_decoder.c       | 2 +-
9946 src/liblzma/lz/lz_decoder.c            | 2 +-
9947 src/scripts/xzgrep.in                  | 2 +-
9948 src/xz/args.c                          | 2 +-
9949 src/xz/coder.c                         | 4 ++--
9950 src/xz/list.c                          | 4 ++--
9951 src/xz/main.c                          | 2 +-
9952 src/xz/mytime.h                        | 2 +-
9953 src/xz/private.h                       | 2 +-
9954 src/xz/xz.1                            | 2 +-
9955 windows/build.bash                     | 2 +-
9956 22 files changed, 26 insertions(+), 26 deletions(-)
9957
9958commit 4ed339606156bd313ed99237485cb8ed0362d64f
9959Author: Lasse Collin <lasse.collin@tukaani.org>
9960Date:   2019-05-01 18:43:10 +0300
9961
9962    xz: In xz -lvv look at the widths of the check names too.
9963    
9964    Now the widths of the check names is used to adjust the width
9965    of the Check column. This way there no longer is a need to restrict
9966    the widths of the check names to be at most ten terminal-columns.
9967
9968 src/xz/list.c | 32 ++++++++++++++++++++++++++------
9969 1 file changed, 26 insertions(+), 6 deletions(-)
9970
9971commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
9972Author: Lasse Collin <lasse.collin@tukaani.org>
9973Date:   2019-05-01 18:33:25 +0300
9974
9975    xz: Fix xz -lvv column alignment to look at the translated strings.
9976
9977 src/xz/list.c | 4 ++--
9978 1 file changed, 2 insertions(+), 2 deletions(-)
9979
9980commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
9981Author: Lasse Collin <lasse.collin@tukaani.org>
9982Date:   2019-05-01 16:52:36 +0300
9983
9984    Update THANKS.
9985
9986 THANKS | 1 +
9987 1 file changed, 1 insertion(+)
9988
9989commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
9990Author: Lasse Collin <lasse.collin@tukaani.org>
9991Date:   2019-05-01 16:43:16 +0300
9992
9993    Windows: Update VS version in windows/vs2019/config.h.
9994
9995 windows/vs2019/config.h | 2 +-
9996 1 file changed, 1 insertion(+), 1 deletion(-)
9997
9998commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
9999Author: Julien Marrec <julien.marrec@gmail.com>
10000Date:   2019-04-25 17:44:06 +0200
10001
10002    Windows: Upgrade solution itself
10003
10004 windows/vs2019/xz_win.sln | 7 +++++--
10005 1 file changed, 5 insertions(+), 2 deletions(-)
10006
10007commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
10008Author: Julien Marrec <julien.marrec@gmail.com>
10009Date:   2019-04-25 17:40:24 +0200
10010
10011    Windows: Upgrade solution with VS2019
10012
10013 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
10014 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
10015 2 files changed, 16 insertions(+), 14 deletions(-)
10016
10017commit be25a0c37ba92a20c390b4d17fe502457fe96b71
10018Author: Julien Marrec <julien.marrec@gmail.com>
10019Date:   2019-04-25 17:39:32 +0200
10020
10021    Windows: Duplicate windows/vs2017 before upgrading
10022
10023 windows/vs2019/config.h            | 148 ++++++++++++++
10024 windows/vs2019/liblzma.vcxproj     | 356 ++++++++++++++++++++++++++++++++++
10025 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++
10026 windows/vs2019/xz_win.sln          |  48 +++++
10027 4 files changed, 937 insertions(+)
10028
10029commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
10030Author: Lasse Collin <lasse.collin@tukaani.org>
10031Date:   2019-03-04 22:49:04 +0200
10032
10033    README: Update translation instructions.
10034    
10035    XZ Utils is now part of the Translation Project
10036    <https://translationproject.org/>.
10037
10038 README | 32 +++++++++++++-------------------
10039 1 file changed, 13 insertions(+), 19 deletions(-)
10040
10041commit a750c35a7d45a16c11c1d40fecee8443c32a9996
10042Author: Lasse Collin <lasse.collin@tukaani.org>
10043Date:   2019-03-04 21:20:39 +0200
10044
10045    xz: Automatically align column headings in xz -lvv.
10046
10047 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------
10048 1 file changed, 212 insertions(+), 51 deletions(-)
10049
10050commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
10051Author: Lasse Collin <lasse.collin@tukaani.org>
10052Date:   2019-03-04 01:07:59 +0200
10053
10054    xz: Automatically align strings ending in a colon in --list output.
10055    
10056    This should avoid alignment errors in translations with these
10057    strings.
10058
10059 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
10060 1 file changed, 102 insertions(+), 12 deletions(-)
10061
10062commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
10063Author: Lasse Collin <lasse.collin@tukaani.org>
10064Date:   2019-01-13 17:29:23 +0200
10065
10066    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
10067    
10068    I understood that if a WTPV is specified, it's often wrong
10069    because different VS installations have different SDK version
10070    installed. Omitting the WTPV tag makes VS2017 default to
10071    Windows SDK 8.1 which often is also missing, so in any case
10072    people may need to specify the WTPV before building. But some
10073    day in the future a missing WTPV tag will start to default to
10074    the latest installed SDK which sounds reasonable:
10075    
10076    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
10077    
10078    Thanks to "dom".
10079
10080 windows/INSTALL-MSVC.txt           | 4 ++++
10081 windows/vs2017/liblzma.vcxproj     | 1 -
10082 windows/vs2017/liblzma_dll.vcxproj | 1 -
10083 3 files changed, 4 insertions(+), 2 deletions(-)
10084
10085commit 4d86076332aece6314063d3712a5f364172bbb0f
10086Author: Lasse Collin <lasse.collin@tukaani.org>
10087Date:   2018-12-20 20:42:29 +0200
10088
10089    Update THANKS.
10090
10091 THANKS | 1 +
10092 1 file changed, 1 insertion(+)
10093
10094commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
10095Author: Lasse Collin <lasse.collin@tukaani.org>
10096Date:   2018-12-14 20:34:30 +0200
10097
10098    xz: Fix a crash in progress indicator when in passthru mode.
10099    
10100    "xz -dcfv not_an_xz_file" crashed (all four options are
10101    required to trigger it). It caused xz to call
10102    lzma_get_progress(&strm, ...) when no coder was initialized
10103    in strm. In this situation strm.internal is NULL which leads
10104    to a crash in lzma_get_progress().
10105    
10106    The bug was introduced when xz started using lzma_get_progress()
10107    to get progress info for multi-threaded compression, so the
10108    bug is present in versions 5.1.3alpha and higher.
10109    
10110    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
10111    the bug report.
10112
10113 src/xz/coder.c   | 11 +++++++----
10114 src/xz/message.c | 18 ++++++++++++++++--
10115 src/xz/message.h |  3 ++-
10116 3 files changed, 25 insertions(+), 7 deletions(-)
10117
10118commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
10119Author: Lasse Collin <lasse.collin@tukaani.org>
10120Date:   2018-11-22 17:20:31 +0200
10121
10122    xz: Update man page timestamp.
10123
10124 src/xz/xz.1 | 2 +-
10125 1 file changed, 1 insertion(+), 1 deletion(-)
10126
10127commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
10128Author: Pavel Raiskup <praiskup@redhat.com>
10129Date:   2018-11-22 15:14:34 +0100
10130
10131    'have have' typos
10132
10133 src/xz/signals.c | 2 +-
10134 src/xz/xz.1      | 2 +-
10135 2 files changed, 2 insertions(+), 2 deletions(-)
10136
10137commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
10138Author: Lasse Collin <lasse.collin@tukaani.org>
10139Date:   2018-11-02 20:40:48 +0200
10140
10141    Update THANKS.
10142
10143 THANKS | 1 +
10144 1 file changed, 1 insertion(+)
10145
10146commit 106d1a663d4ba42b63231caa289f531548df81c1
10147Author: Lasse Collin <lasse.collin@tukaani.org>
10148Date:   2018-11-02 20:18:45 +0200
10149
10150    Tests: Add a fuzz test program and a config file for OSS-Fuzz.
10151    
10152    Thanks to Bhargava Shastry and Github user pdknsk.
10153
10154 tests/Makefile.am                 |  1 +
10155 tests/ossfuzz/Makefile            |  7 ++++
10156 tests/ossfuzz/config/fuzz.dict    |  2 +
10157 tests/ossfuzz/config/fuzz.options |  2 +
10158 tests/ossfuzz/fuzz.c              | 82 +++++++++++++++++++++++++++++++++++++++
10159 5 files changed, 94 insertions(+)
10160
10161commit a18ae42a79a19b1394b41eb3e238139fd28012ec
10162Author: Lasse Collin <lasse.collin@tukaani.org>
10163Date:   2018-10-26 22:49:10 +0300
10164
10165    liblzma: Don't verify header CRC32s if building for fuzz testing.
10166    
10167    FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
10168    is being built for fuzz testing.
10169    
10170    Most fuzzed inputs would normally get rejected because of incorrect
10171    CRC32 and the actual header decoding code wouldn't get fuzzed.
10172    Disabling CRC32 checks avoids this problem. The fuzzer program
10173    must still use LZMA_IGNORE_CHECK flag to disable verification of
10174    integrity checks of uncompressed data.
10175
10176 src/liblzma/common/block_header_decoder.c |  5 ++++-
10177 src/liblzma/common/index_decoder.c        |  5 ++++-
10178 src/liblzma/common/index_hash.c           |  5 ++++-
10179 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++--
10180 4 files changed, 20 insertions(+), 5 deletions(-)
10181
10182commit f76f7516d6a1c832f61810c82e92d151cc80966c
10183Author: Lasse Collin <lasse.collin@tukaani.org>
10184Date:   2018-07-27 18:10:44 +0300
10185
10186    xzless: Rename unused variables to silence static analysers.
10187    
10188    In this particular case I don't see this affecting readability
10189    of the code.
10190    
10191    Thanks to Pavel Raiskup.
10192
10193 src/scripts/xzless.in | 2 +-
10194 1 file changed, 1 insertion(+), 1 deletion(-)
10195
10196commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
10197Author: Lasse Collin <lasse.collin@tukaani.org>
10198Date:   2018-07-27 16:02:58 +0300
10199
10200    liblzma: Remove an always-true condition from lzma_index_cat().
10201    
10202    This should help static analysis tools to see that newg
10203    isn't leaked.
10204    
10205    Thanks to Pavel Raiskup.
10206
10207 src/liblzma/common/index.c | 4 ++--
10208 1 file changed, 2 insertions(+), 2 deletions(-)
10209
10210commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
10211Author: Lasse Collin <lasse.collin@tukaani.org>
10212Date:   2018-05-19 21:23:25 +0300
10213
10214    liblzma: Improve lzma_properties_decode() API documentation.
10215
10216 src/liblzma/api/lzma/filter.h | 7 ++++---
10217 1 file changed, 4 insertions(+), 3 deletions(-)
10218
10219commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
10220Author: Lasse Collin <lasse.collin@tukaani.org>
10221Date:   2018-04-29 18:58:19 +0300
10222
10223    Bump the version number to 5.3.1alpha.
10224
10225 src/liblzma/api/lzma/version.h | 2 +-
10226 src/liblzma/liblzma.map        | 2 +-
10227 2 files changed, 2 insertions(+), 2 deletions(-)
10228
10229commit cee3021d30704858e4bdd22240e7d28e570d7451
10230Author: Lasse Collin <lasse.collin@tukaani.org>
10231Date:   2018-04-29 18:48:00 +0300
10232
10233    extra/scanlzma: Fix compiler warnings.
10234
10235 extra/scanlzma/scanlzma.c | 6 +++++-
10236 1 file changed, 5 insertions(+), 1 deletion(-)
10237
10238commit c5c7ceb08a011b97d261798033e2c39613a69eb7
10239Author: Lasse Collin <lasse.collin@tukaani.org>
10240Date:   2018-04-29 18:44:47 +0300
10241
10242    DOS: Add file_info.c to the list of files to build.
10243
10244 dos/Makefile | 1 +
10245 1 file changed, 1 insertion(+)
10246
10247commit 114cab97af766b21e0fc8620479202fb1e7a5e41
10248Author: Lasse Collin <lasse.collin@tukaani.org>
10249Date:   2018-04-29 18:33:10 +0300
10250
10251    Update NEWS for 5.3.1alpha.
10252
10253 NEWS | 11 +++++++++++
10254 1 file changed, 11 insertions(+)
10255
10256commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
10257Author: Lasse Collin <lasse.collin@tukaani.org>
10258Date:   2018-04-29 18:15:37 +0300
10259
10260    Add NEWS for 5.2.4.
10261
10262 NEWS | 27 +++++++++++++++++++++++++++
10263 1 file changed, 27 insertions(+)
10264
10265commit 47b59d47cfd904a420fbd45629d168ca1973721d
10266Author: Lasse Collin <lasse.collin@tukaani.org>
10267Date:   2018-02-06 19:36:30 +0200
10268
10269    Update THANKS.
10270
10271 THANKS | 2 ++
10272 1 file changed, 2 insertions(+)
10273
10274commit bc197991690ede24ab143665b5b0f0f9cb35cc46
10275Author: Ben Boeckel <mathstuf@gmail.com>
10276Date:   2018-01-29 13:58:18 -0500
10277
10278    nothrow: use noexcept for C++11 and newer
10279    
10280    In C++11, the `throw()` specifier is deprecated and `noexcept` is
10281    preffered instead.
10282
10283 src/liblzma/api/lzma.h | 6 +++++-
10284 1 file changed, 5 insertions(+), 1 deletion(-)
10285
10286commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
10287Author: Lasse Collin <lasse.collin@tukaani.org>
10288Date:   2018-02-06 18:02:48 +0200
10289
10290    liblzma: Remove incorrect #ifdef from range_common.h.
10291    
10292    In most cases it was harmless but it could affect some
10293    custom build systems.
10294    
10295    Thanks to Pippijn van Steenhoven.
10296
10297 src/liblzma/rangecoder/range_common.h | 4 +---
10298 1 file changed, 1 insertion(+), 3 deletions(-)
10299
10300commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
10301Author: Lasse Collin <lasse.collin@tukaani.org>
10302Date:   2018-01-10 22:10:39 +0200
10303
10304    Update THANKS.
10305
10306 THANKS | 1 +
10307 1 file changed, 1 insertion(+)
10308
10309commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
10310Author: Lasse Collin <lasse.collin@tukaani.org>
10311Date:   2018-01-10 21:54:27 +0200
10312
10313    tuklib_integer: New Intel C compiler needs immintrin.h.
10314    
10315    Thanks to Melanie Blower (Intel) for the patch.
10316
10317 src/common/tuklib_integer.h | 11 +++++++++++
10318 1 file changed, 11 insertions(+)
10319
10320commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
10321Author: Lasse Collin <lasse.collin@tukaani.org>
10322Date:   2017-09-24 20:04:24 +0300
10323
10324    Update THANKS.
10325
10326 THANKS | 1 +
10327 1 file changed, 1 insertion(+)
10328
10329commit a1e2c568de29c0b57d873eab40a2879b749da429
10330Author: Lasse Collin <lasse.collin@tukaani.org>
10331Date:   2017-09-16 20:36:20 +0300
10332
10333    Windows: Fix paths in VS project files.
10334    
10335    Some paths use slashes instead of backslashes as directory
10336    separators... now it should work (I tested VS2013 version).
10337
10338 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
10339 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
10340 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
10341 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
10342 4 files changed, 36 insertions(+), 36 deletions(-)
10343
10344commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
10345Author: Lasse Collin <lasse.collin@tukaani.org>
10346Date:   2017-09-16 12:56:20 +0300
10347
10348    Windows: Update VS2017 project files to include file info decoder.
10349
10350 windows/vs2017/liblzma.vcxproj     | 2 ++
10351 windows/vs2017/liblzma_dll.vcxproj | 2 ++
10352 2 files changed, 4 insertions(+)
10353
10354commit 95d563db3ee497b223e522b699c4d4c29943eef0
10355Author: Lasse Collin <lasse.collin@tukaani.org>
10356Date:   2017-09-16 12:54:23 +0300
10357
10358    Windows: Add project files for VS2017.
10359    
10360    These files match the v5.2 branch (no file info decoder).
10361
10362 windows/vs2017/config.h            | 148 ++++++++++++++
10363 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
10364 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
10365 windows/vs2017/xz_win.sln          |  48 +++++
10366 4 files changed, 935 insertions(+)
10367
10368commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
10369Author: Lasse Collin <lasse.collin@tukaani.org>
10370Date:   2017-09-16 12:45:50 +0300
10371
10372    Windows: Update VS2013 project files to include file info decoder.
10373
10374 windows/vs2013/liblzma.vcxproj     | 2 ++
10375 windows/vs2013/liblzma_dll.vcxproj | 2 ++
10376 2 files changed, 4 insertions(+)
10377
10378commit 82388980187b0e3794d187762054200bbdcc9a53
10379Author: Lasse Collin <lasse.collin@tukaani.org>
10380Date:   2017-09-16 12:39:43 +0300
10381
10382    Windows: Move VS2013 files into windows/vs2013 directory.
10383
10384 windows/{ => vs2013}/config.h            |   0
10385 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
10386 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
10387 windows/{ => vs2013}/xz_win.sln          |   0
10388 4 files changed, 279 insertions(+), 279 deletions(-)
10389
10390commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
10391Author: Lasse Collin <lasse.collin@tukaani.org>
10392Date:   2017-08-14 20:08:33 +0300
10393
10394    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
10395
10396 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
10397 src/xz/list.c                   | 2 ++
10398 2 files changed, 8 insertions(+)
10399
10400commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
10401Author: Alexey Tourbin <alexey.tourbin@gmail.com>
10402Date:   2017-05-16 23:56:35 +0300
10403
10404    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
10405
10406 doc/examples/02_decompress.c | 2 +-
10407 1 file changed, 1 insertion(+), 1 deletion(-)
10408
10409commit a015cd1f90116e655be4eaf4aad42c4c911c2807
10410Author: Lasse Collin <lasse.collin@tukaani.org>
10411Date:   2017-05-23 18:34:43 +0300
10412
10413    xz: Fix "xz --list --robot missing_or_bad_file.xz".
10414    
10415    It ended up printing an uninitialized char-array when trying to
10416    print the check names (column 7) on the "totals" line.
10417    
10418    This also changes the column 12 (minimum xz version) to
10419    50000002 (xz 5.0.0) instead of 0 when there are no valid
10420    input files.
10421    
10422    Thanks to kidmin for the bug report.
10423
10424 src/xz/list.c | 8 ++++++--
10425 1 file changed, 6 insertions(+), 2 deletions(-)
10426
10427commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
10428Author: Lasse Collin <lasse.collin@tukaani.org>
10429Date:   2017-04-24 20:20:11 +0300
10430
10431    Docs: Add doc/examples/11_file_info.c.
10432
10433 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++
10434 doc/examples/Makefile       |   3 +-
10435 2 files changed, 208 insertions(+), 1 deletion(-)
10436
10437commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
10438Author: Lasse Collin <lasse.collin@tukaani.org>
10439Date:   2017-04-24 19:48:47 +0300
10440
10441    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
10442    
10443    It makes ChangeLog significantly smaller.
10444
10445 Makefile.am | 3 ++-
10446 1 file changed, 2 insertions(+), 1 deletion(-)
10447
10448commit 8269782283806c90a8509c2ac2a308344f70e171
10449Author: Lasse Collin <lasse.collin@tukaani.org>
10450Date:   2017-04-24 19:48:23 +0300
10451
10452    xz: Use lzma_file_info_decoder() for --list.
10453
10454 src/xz/list.c | 254 ++++++++++------------------------------------------------
10455 1 file changed, 44 insertions(+), 210 deletions(-)
10456
10457commit e353d0b1cc0d3997ae5048faa8e6786414953e06
10458Author: Lasse Collin <lasse.collin@tukaani.org>
10459Date:   2017-04-24 19:35:50 +0300
10460
10461    liblzma: Add lzma_file_info_decoder().
10462
10463 src/liblzma/api/lzma/index.h    |  66 ++++
10464 src/liblzma/common/Makefile.inc |   1 +
10465 src/liblzma/common/file_info.c  | 855 ++++++++++++++++++++++++++++++++++++++++
10466 src/liblzma/liblzma.map         |   7 +-
10467 4 files changed, 928 insertions(+), 1 deletion(-)
10468
10469commit 144ef9e19e9496c995b21505dd1e111c442968d1
10470Author: Lasse Collin <lasse.collin@tukaani.org>
10471Date:   2017-04-24 19:30:22 +0300
10472
10473    Update the Git repository URL to HTTPS in ChangeLog.
10474
10475 ChangeLog | 2 +-
10476 1 file changed, 1 insertion(+), 1 deletion(-)
10477
10478commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
10479Author: Lasse Collin <lasse.collin@tukaani.org>
10480Date:   2017-04-21 15:05:16 +0300
10481
10482    liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
10483
10484 src/liblzma/api/lzma/base.h | 18 +++++++++---------
10485 src/liblzma/common/common.c |  2 +-
10486 src/xz/message.c            |  2 +-
10487 3 files changed, 11 insertions(+), 11 deletions(-)
10488
10489commit 662b27c417cab248cb365dd7682121bdec4d5ae7
10490Author: Lasse Collin <lasse.collin@tukaani.org>
10491Date:   2017-04-19 22:17:35 +0300
10492
10493    Update the home page URLs to HTTPS.
10494
10495 COPYING                     | 2 +-
10496 README                      | 2 +-
10497 configure.ac                | 2 +-
10498 doc/faq.txt                 | 4 ++--
10499 dos/config.h                | 2 +-
10500 src/common/common_w32res.rc | 2 +-
10501 src/xz/xz.1                 | 6 +++---
10502 src/xzdec/xzdec.1           | 4 ++--
10503 windows/README-Windows.txt  | 2 +-
10504 windows/config.h            | 2 +-
10505 10 files changed, 14 insertions(+), 14 deletions(-)
10506
10507commit c28f0b3d00af87b92dda229831548d8eb0067d1d
10508Author: Lasse Collin <lasse.collin@tukaani.org>
10509Date:   2017-04-05 18:47:22 +0300
10510
10511    xz: Add io_seek_src().
10512
10513 src/xz/file_io.c | 20 +++++++++++++++++---
10514 src/xz/file_io.h | 13 +++++++++++++
10515 2 files changed, 30 insertions(+), 3 deletions(-)
10516
10517commit bba477257d7319c8764890f3669175b866d24944
10518Author: Lasse Collin <lasse.collin@tukaani.org>
10519Date:   2017-03-30 22:01:54 +0300
10520
10521    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
10522    
10523    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
10524    wrong.
10525
10526 src/xz/file_io.c | 10 ++++++++--
10527 1 file changed, 8 insertions(+), 2 deletions(-)
10528
10529commit 310d19816d1652b0c8bb1b82574d46345d924752
10530Author: Lasse Collin <lasse.collin@tukaani.org>
10531Date:   2017-03-30 20:03:05 +0300
10532
10533    liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
10534    
10535    This is to allow other functions to use it without going
10536    via the public API (lzma_index_decoder()).
10537
10538 src/liblzma/common/Makefile.inc    |  1 +
10539 src/liblzma/common/index_decoder.c | 10 +++++-----
10540 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++
10541 3 files changed, 30 insertions(+), 5 deletions(-)
10542
10543commit a27920002dbc469f778a134fc665b7c3ea73701b
10544Author: Lasse Collin <lasse.collin@tukaani.org>
10545Date:   2017-03-30 20:00:09 +0300
10546
10547    liblzma: Add generic support for input seeking (LZMA_SEEK).
10548    
10549    Also mention LZMA_SEEK in xz/message.c to silence a warning.
10550
10551 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++-
10552 src/liblzma/common/common.c | 12 +++++++++++-
10553 src/xz/message.c            |  1 +
10554 3 files changed, 42 insertions(+), 2 deletions(-)
10555
10556commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
10557Author: Lasse Collin <lasse.collin@tukaani.org>
10558Date:   2017-03-30 19:47:45 +0300
10559
10560    liblzma: Fix lzma_memlimit_set(strm, 0).
10561    
10562    The 0 got treated specially in a buggy way and as a result
10563    the function did nothing. The API doc said that 0 was supposed
10564    to return LZMA_PROG_ERROR but it didn't.
10565    
10566    Now 0 is treated as if 1 had been specified. This is done because
10567    0 is already used to indicate an error from lzma_memlimit_get()
10568    and lzma_memusage().
10569    
10570    In addition, lzma_memlimit_set() no longer checks that the new
10571    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
10572    for the Index decoder and was actually needed only by the
10573    auto decoder. Auto decoder has now been modified to check for
10574    LZMA_MEMUSAGE_BASE.
10575
10576 src/liblzma/api/lzma/base.h       | 7 ++++++-
10577 src/liblzma/common/auto_decoder.c | 3 +++
10578 src/liblzma/common/common.c       | 6 ++++--
10579 3 files changed, 13 insertions(+), 3 deletions(-)
10580
10581commit 84462afaada61379f5878e46f8f00e25a1cdcf29
10582Author: Lasse Collin <lasse.collin@tukaani.org>
10583Date:   2017-03-30 19:16:55 +0300
10584
10585    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
10586
10587 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
10588 src/liblzma/common/alone_decoder.c  |  5 +----
10589 src/liblzma/common/auto_decoder.c   |  5 +----
10590 src/liblzma/common/stream_decoder.c |  5 +----
10591 4 files changed, 20 insertions(+), 16 deletions(-)
10592
10593commit cbc74017939690d13441b8926bb743fb03211b83
10594Author: Lasse Collin <lasse.collin@tukaani.org>
10595Date:   2017-03-30 18:58:18 +0300
10596
10597    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
10598    
10599    It returned LZMA_PROG_ERROR, which was done to avoid zero as
10600    the limit (because it's a special value elsewhere), but using
10601    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
10602    
10603    The fix/workaround is to treat 0 as if it were 1 byte. It's
10604    effectively the same thing. The only weird consequence is
10605    that then lzma_memlimit_get() will return 1 even when 0 was
10606    specified as the limit.
10607    
10608    This fixes a very rare corner case in xz --list where a specific
10609    memory usage limit and a multi-stream file could print the
10610    error message "Internal error (bug)" instead of saying that
10611    the memory usage limit is too low.
10612
10613 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
10614 src/liblzma/common/index_decoder.c |  4 ++--
10615 2 files changed, 13 insertions(+), 9 deletions(-)
10616
10617commit 78ae13bced912b1b92ae927992c99cbcc463cae7
10618Author: Lasse Collin <lasse.collin@tukaani.org>
10619Date:   2016-12-30 13:25:10 +0200
10620
10621    Update NEWS for 5.2.3.
10622
10623 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
10624 1 file changed, 39 insertions(+)
10625
10626commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
10627Author: Lasse Collin <lasse.collin@tukaani.org>
10628Date:   2016-12-26 20:55:52 +0200
10629
10630    Document --enable-sandbox configure option in INSTALL.
10631
10632 INSTALL | 23 +++++++++++++++++++++++
10633 1 file changed, 23 insertions(+)
10634
10635commit d4a0462abe5478193521c14625e1c81fead87f9f
10636Author: Lasse Collin <lasse.collin@tukaani.org>
10637Date:   2016-11-21 20:24:50 +0200
10638
10639    liblzma: Avoid multiple definitions of lzma_coder structures.
10640    
10641    Only one definition was visible in a translation unit.
10642    It avoided a few casts and temp variables but seems that
10643    this hack doesn't work with link-time optimizations in compilers
10644    as it's not C99/C11 compliant.
10645    
10646    Fixes:
10647    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
10648
10649 src/liblzma/common/alone_decoder.c             |  44 +++++----
10650 src/liblzma/common/alone_encoder.c             |  34 ++++---
10651 src/liblzma/common/auto_decoder.c              |  35 ++++---
10652 src/liblzma/common/block_decoder.c             |  41 ++++----
10653 src/liblzma/common/block_encoder.c             |  40 ++++----
10654 src/liblzma/common/common.h                    |  18 ++--
10655 src/liblzma/common/index_decoder.c             |  33 ++++---
10656 src/liblzma/common/index_encoder.c             |  16 ++--
10657 src/liblzma/common/stream_decoder.c            |  50 +++++-----
10658 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
10659 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
10660 src/liblzma/delta/delta_common.c               |  25 ++---
10661 src/liblzma/delta/delta_decoder.c              |   6 +-
10662 src/liblzma/delta/delta_encoder.c              |  12 ++-
10663 src/liblzma/delta/delta_private.h              |   4 +-
10664 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
10665 src/liblzma/lz/lz_decoder.h                    |  13 ++-
10666 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
10667 src/liblzma/lz/lz_encoder.h                    |   9 +-
10668 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
10669 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
10670 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
10671 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
10672 src/liblzma/lzma/lzma_encoder.h                |   9 +-
10673 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
10674 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
10675 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
10676 src/liblzma/simple/arm.c                       |   2 +-
10677 src/liblzma/simple/armthumb.c                  |   2 +-
10678 src/liblzma/simple/ia64.c                      |   2 +-
10679 src/liblzma/simple/powerpc.c                   |   2 +-
10680 src/liblzma/simple/simple_coder.c              |  61 ++++++------
10681 src/liblzma/simple/simple_private.h            |  12 +--
10682 src/liblzma/simple/sparc.c                     |   2 +-
10683 src/liblzma/simple/x86.c                       |  15 +--
10684 35 files changed, 532 insertions(+), 423 deletions(-)
10685
10686commit a01794c52add98263b49119842c3e7141d1b9ced
10687Author: Lasse Collin <lasse.collin@tukaani.org>
10688Date:   2016-10-24 18:53:25 +0300
10689
10690    Update THANKS.
10691
10692 THANKS | 1 +
10693 1 file changed, 1 insertion(+)
10694
10695commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
10696Author: Lasse Collin <lasse.collin@tukaani.org>
10697Date:   2016-10-24 18:51:36 +0300
10698
10699    tuklib_cpucores: Add support for sched_getaffinity().
10700    
10701    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
10702    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
10703    gives the number of cores available to the process instead of
10704    the total number of cores online.
10705    
10706    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
10707    configure would detect the FreeBSD-specific cpuset_getaffinity()
10708    but it wouldn't actually work because on GNU/kFreeBSD it requires
10709    using -lfreebsd-glue when linking. Now the glibc-specific function
10710    will be used instead.
10711    
10712    Thanks to Sebastian Andrzej Siewior for the original patch
10713    and testing.
10714
10715 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
10716 src/common/tuklib_cpucores.c |  9 +++++++++
10717 2 files changed, 38 insertions(+), 1 deletion(-)
10718
10719commit 446e4318fa79788e09299d5953b5dd428953d14b
10720Author: Lasse Collin <lasse.collin@tukaani.org>
10721Date:   2016-06-30 20:27:36 +0300
10722
10723    xz: Fix copying of timestamps on Windows.
10724    
10725    xz used to call utime() on Windows, but its result gets lost
10726    on close(). Using _futime() seems to work.
10727    
10728    Thanks to Martok for reporting the bug:
10729    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
10730
10731 configure.ac     |  2 +-
10732 src/xz/file_io.c | 18 ++++++++++++++++++
10733 2 files changed, 19 insertions(+), 1 deletion(-)
10734
10735commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
10736Author: Lasse Collin <lasse.collin@tukaani.org>
10737Date:   2016-06-16 22:46:02 +0300
10738
10739    xz: Silence warnings from -Wlogical-op.
10740    
10741    Thanks to Evan Nemerson.
10742
10743 src/xz/file_io.c | 12 ++++++++++--
10744 1 file changed, 10 insertions(+), 2 deletions(-)
10745
10746commit c83b7a03342c3325ff10400b22ee21edfcd1e026
10747Author: Lasse Collin <lasse.collin@tukaani.org>
10748Date:   2016-04-10 20:55:49 +0300
10749
10750    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
10751    
10752    Thanks to Christian Kujau.
10753
10754 src/xz/Makefile.am | 2 +-
10755 1 file changed, 1 insertion(+), 1 deletion(-)
10756
10757commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
10758Author: Lasse Collin <lasse.collin@tukaani.org>
10759Date:   2016-04-10 20:54:17 +0300
10760
10761    Build: Bump GNU Gettext version requirement to 0.19.
10762    
10763    It silences a few warnings and most people probably have
10764    0.19 even on stable distributions.
10765    
10766    Thanks to Christian Kujau.
10767
10768 configure.ac | 2 +-
10769 1 file changed, 1 insertion(+), 1 deletion(-)
10770
10771commit ac398c3bafa6e4c80e20571373a96947db863b3d
10772Author: Lasse Collin <lasse.collin@tukaani.org>
10773Date:   2016-03-13 20:21:49 +0200
10774
10775    liblzma: Disable external SHA-256 by default.
10776    
10777    This is the sane thing to do. The conflict with OpenSSL
10778    on some OSes and especially that the OS-provided versions
10779    can be significantly slower makes it clear that it was
10780    a mistake to have the external SHA-256 support enabled by
10781    default.
10782    
10783    Those who want it can now pass --enable-external-sha256 to
10784    configure. INSTALL was updated with notes about OSes where
10785    this can be a bad idea.
10786    
10787    The SHA-256 detection code in configure.ac had some bugs that
10788    could lead to a build failure in some situations. These were
10789    fixed, although it doesn't matter that much now that the
10790    external SHA-256 is disabled by default.
10791    
10792    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
10793    in libc instead of libutil. Support for the libutil version
10794    was removed.
10795
10796 INSTALL                   | 36 ++++++++++++++++++++++
10797 configure.ac              | 76 +++++++++++++++++++++++------------------------
10798 src/liblzma/check/check.h | 16 ++++------
10799 3 files changed, 79 insertions(+), 49 deletions(-)
10800
10801commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
10802Author: Lasse Collin <lasse.collin@tukaani.org>
10803Date:   2016-03-10 20:27:05 +0200
10804
10805    Update THANKS.
10806
10807 THANKS | 1 +
10808 1 file changed, 1 insertion(+)
10809
10810commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
10811Author: Lasse Collin <lasse.collin@tukaani.org>
10812Date:   2016-03-10 20:26:49 +0200
10813
10814    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
10815    
10816    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
10817    with libcrypto from OpenSSL. The OpenSSL version has
10818    different sizeof(SHA256_CTX) and it can cause weird
10819    problems if wrong SHA256_Init gets used.
10820    
10821    Looking at the source, MINIX 3 seems to have a similar issue but
10822    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
10823    
10824    NetBSD has SHA256_Init in libc and they had a similar problem,
10825    but they already fixed it in 2009.
10826    
10827    Thanks to Jim Wilcoxson for the bug report that helped
10828    in finding the problem.
10829
10830 configure.ac | 27 +++++++++++++++++++++------
10831 1 file changed, 21 insertions(+), 6 deletions(-)
10832
10833commit faf302137e54d605b44ecf0373cb51a6403a2de1
10834Author: Lasse Collin <lasse.collin@tukaani.org>
10835Date:   2015-11-08 20:16:10 +0200
10836
10837    tuklib_physmem: Hopefully silence a warning on Windows.
10838
10839 src/common/tuklib_physmem.c | 3 ++-
10840 1 file changed, 2 insertions(+), 1 deletion(-)
10841
10842commit e52e9151cf8613022d1de4712ff39dbcb666e991
10843Author: Lasse Collin <lasse.collin@tukaani.org>
10844Date:   2015-11-04 23:17:43 +0200
10845
10846    Update THANKS.
10847
10848 THANKS | 1 +
10849 1 file changed, 1 insertion(+)
10850
10851commit 14115f84a38161d55eaa2d070f08739bde37e966
10852Author: Lasse Collin <lasse.collin@tukaani.org>
10853Date:   2015-11-04 23:14:00 +0200
10854
10855    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
10856    
10857    When optimizing, GCC can reorder code so that an uninitialized
10858    value gets used in a comparison, which makes Valgrind unhappy.
10859    It doesn't happen when compiled with -O0, which I tend to use
10860    when running Valgrind.
10861    
10862    Thanks to Rich Prohaska. I remember this being mentioned long
10863    ago by someone else but nothing was done back then.
10864
10865 src/liblzma/lz/lz_encoder.c | 4 ++++
10866 1 file changed, 4 insertions(+)
10867
10868commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
10869Author: Lasse Collin <lasse.collin@tukaani.org>
10870Date:   2015-11-03 20:55:45 +0200
10871
10872    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
10873    
10874    It would be too annoying to update other build systems
10875    just because of this.
10876
10877 src/liblzma/lzma/Makefile.inc                               | 2 +-
10878 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
10879 2 files changed, 2 insertions(+), 2 deletions(-)
10880
10881commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
10882Author: Lasse Collin <lasse.collin@tukaani.org>
10883Date:   2015-11-03 20:47:07 +0200
10884
10885    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
10886    
10887    They all need decoder support and if that isn't available,
10888    there's no point trying to build them.
10889
10890 configure.ac | 3 +++
10891 1 file changed, 3 insertions(+)
10892
10893commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
10894Author: Lasse Collin <lasse.collin@tukaani.org>
10895Date:   2015-11-03 20:35:19 +0200
10896
10897    Build: Simplify $enable_{encoders,decoders} usage a bit.
10898
10899 configure.ac | 6 ++++--
10900 1 file changed, 4 insertions(+), 2 deletions(-)
10901
10902commit af13781886c8e7a0aabebb5141ea282dc364f5c6
10903Author: Lasse Collin <lasse.collin@tukaani.org>
10904Date:   2015-11-03 20:31:31 +0200
10905
10906    Windows/MSVC: Update config.h.
10907
10908 windows/config.h | 6 ++++++
10909 1 file changed, 6 insertions(+)
10910
10911commit 9fa5949330f162c5a2f6653f83025327837e8f39
10912Author: Lasse Collin <lasse.collin@tukaani.org>
10913Date:   2015-11-03 20:29:58 +0200
10914
10915    DOS: Update config.h.
10916
10917 dos/config.h | 6 ++++++
10918 1 file changed, 6 insertions(+)
10919
10920commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
10921Author: Lasse Collin <lasse.collin@tukaani.org>
10922Date:   2015-11-03 20:29:33 +0200
10923
10924    xz: Make xz buildable even when encoders or decoders are disabled.
10925    
10926    The patch is quite long but it's mostly about adding new #ifdefs
10927    to omit code when encoders or decoders have been disabled.
10928    
10929    This adds two new #defines to config.h: HAVE_ENCODERS and
10930    HAVE_DECODERS.
10931
10932 configure.ac       |  4 ++++
10933 src/xz/Makefile.am |  8 ++++++--
10934 src/xz/args.c      | 16 ++++++++++++++++
10935 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
10936 src/xz/main.c      |  9 +++++++--
10937 src/xz/private.h   |  5 ++++-
10938 6 files changed, 62 insertions(+), 13 deletions(-)
10939
10940commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
10941Author: Lasse Collin <lasse.collin@tukaani.org>
10942Date:   2015-11-03 18:06:40 +0200
10943
10944    Build: Build LZMA1/2 presets also when only decoder is wanted.
10945    
10946    People shouldn't rely on the presets when decoding raw streams,
10947    but xz uses the presets as the starting point for raw decoder
10948    options anyway.
10949    
10950    lzma_encocder_presets.c was renamed to lzma_presets.c to
10951    make it clear it's not used solely by the encoder code.
10952
10953 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
10954 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
10955 2 files changed, 7 insertions(+), 2 deletions(-)
10956
10957commit 23ed1d41489f632155bbc9660f323d57e09da180
10958Author: Lasse Collin <lasse.collin@tukaani.org>
10959Date:   2015-11-03 17:54:48 +0200
10960
10961    Build: Fix configure to handle LZMA1 dependency with LZMA2.
10962    
10963    Now it gives an error if LZMA1 encoder/decoder is missing
10964    when LZMA2 encoder/decoder was requested. Even better would
10965    be LZMA2 implicitly enabling LZMA1 but it would need more code.
10966
10967 configure.ac | 5 -----
10968 1 file changed, 5 deletions(-)
10969
10970commit b0bc3e03852af13419ea2960881824258d451117
10971Author: Lasse Collin <lasse.collin@tukaani.org>
10972Date:   2015-11-03 17:41:54 +0200
10973
10974    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
10975    
10976    Previously it was omitted if encoders were disabled
10977    with --disable-encoders. It didn't make sense and
10978    it also broke the build.
10979
10980 src/liblzma/common/Makefile.inc | 5 ++++-
10981 1 file changed, 4 insertions(+), 1 deletion(-)
10982
10983commit c6bf438ab39e0fb4a47d3c81725c227919502726
10984Author: Lasse Collin <lasse.collin@tukaani.org>
10985Date:   2015-11-02 18:16:51 +0200
10986
10987    liblzma: Fix a build failure related to external SHA-256 support.
10988    
10989    If an appropriate header and structure were found by configure,
10990    but a library with a usable SHA-256 functions wasn't, the build
10991    failed.
10992
10993 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
10994 1 file changed, 23 insertions(+), 9 deletions(-)
10995
10996commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
10997Author: Lasse Collin <lasse.collin@tukaani.org>
10998Date:   2015-11-02 15:19:10 +0200
10999
11000    xz: Always close the file before trying to delete it.
11001    
11002    unlink() can return EBUSY in errno for open files on some
11003    operating systems and file systems.
11004
11005 src/xz/file_io.c | 25 ++++++++++++-------------
11006 1 file changed, 12 insertions(+), 13 deletions(-)
11007
11008commit 282e768a1484e88c8b7ec35655ee4959954ec87a
11009Author: Lasse Collin <lasse.collin@tukaani.org>
11010Date:   2015-10-12 21:08:42 +0300
11011
11012    Update THANKS.
11013
11014 THANKS | 1 +
11015 1 file changed, 1 insertion(+)
11016
11017commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
11018Author: Lasse Collin <lasse.collin@tukaani.org>
11019Date:   2015-10-12 21:07:41 +0300
11020
11021    Tests: Add tests for the two bugs fixed in index.c.
11022
11023 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
11024 1 file changed, 30 insertions(+)
11025
11026commit 21515d79d778b8730a434f151b07202d52a04611
11027Author: Lasse Collin <lasse.collin@tukaani.org>
11028Date:   2015-10-12 20:45:15 +0300
11029
11030    liblzma: Fix lzma_index_dup() for empty Streams.
11031    
11032    Stream Flags and Stream Padding weren't copied from
11033    empty Streams.
11034
11035 src/liblzma/common/index.c | 11 ++++++-----
11036 1 file changed, 6 insertions(+), 5 deletions(-)
11037
11038commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
11039Author: Lasse Collin <lasse.collin@tukaani.org>
11040Date:   2015-10-12 20:31:44 +0300
11041
11042    liblzma: Add a note to index.c for those using static analyzers.
11043
11044 src/liblzma/common/index.c | 3 +++
11045 1 file changed, 3 insertions(+)
11046
11047commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
11048Author: Lasse Collin <lasse.collin@tukaani.org>
11049Date:   2015-10-12 20:29:09 +0300
11050
11051    liblzma: Fix a memory leak in error path of lzma_index_dup().
11052    
11053    lzma_index_dup() calls index_dup_stream() which, in case of
11054    an error, calls index_stream_end() to free memory allocated
11055    by index_stream_init(). However, it illogically didn't
11056    actually free the memory. To make it logical, the tree
11057    handling code was modified a bit in addition to changing
11058    index_stream_end().
11059    
11060    Thanks to Evan Nemerson for the bug report.
11061
11062 src/liblzma/common/index.c | 18 +++++++++---------
11063 1 file changed, 9 insertions(+), 9 deletions(-)
11064
11065commit 7f05803979b4b79642d5be4218a79da7a0b12c47
11066Author: Lasse Collin <lasse.collin@tukaani.org>
11067Date:   2015-09-29 13:57:28 +0300
11068
11069    Update NEWS for 5.2.2.
11070
11071 NEWS | 18 ++++++++++++++++++
11072 1 file changed, 18 insertions(+)
11073
11074commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
11075Author: Hauke Henningsen <sqrt@entless.org>
11076Date:   2015-08-17 04:59:54 +0200
11077
11078    Update German translation, mostly wrt orthography
11079    
11080    Provide an update of the German translation.
11081    * A lot of compound words were previously written with spaces, while
11082      German orthography is relatively clear in that the components
11083      should not be separated.
11084    * When referring to the actual process of (de)compression rather than the
11085      concept, replace ���(De-)Kompression��� with ���(De-)Komprimierung���.
11086      Previously, both forms were used in this context and are now used in a
11087      manner consistent with ���Komprimierung��� being more likely to refer to
11088      a process.
11089    * Consistently translate ���standard input���/���output���
11090    * Use ���Zeichen��� instead of false friend ���Charakter��� for ���character���
11091    * Insert commas around relative clauses (as required in German)
11092    * Some other minor corrections
11093    * Capitalize �������� as ���������
11094    * Consistently start option descriptions in --help with capital letters
11095    
11096    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
11097    
11098    * Update after msgmerge
11099
11100 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
11101 1 file changed, 196 insertions(+), 187 deletions(-)
11102
11103commit cbc9e39bae715accb44168930a71888480aad569
11104Author: Lasse Collin <lasse.collin@tukaani.org>
11105Date:   2015-08-11 13:23:04 +0300
11106
11107    Build: Minor Cygwin cleanup.
11108    
11109    Some tests used "cygwin*" and some used "cygwin". I changed
11110    them all to use "cygwin". Shouldn't affect anything in practice.
11111
11112 configure.ac | 6 +++---
11113 1 file changed, 3 insertions(+), 3 deletions(-)
11114
11115commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
11116Author: Lasse Collin <lasse.collin@tukaani.org>
11117Date:   2015-08-11 13:21:52 +0300
11118
11119    Build: Support building of MSYS2 binaries.
11120
11121 configure.ac | 16 +++++++++++-----
11122 1 file changed, 11 insertions(+), 5 deletions(-)
11123
11124commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
11125Author: Lasse Collin <lasse.collin@tukaani.org>
11126Date:   2015-08-09 21:06:26 +0300
11127
11128    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
11129    
11130    src/liblzma/common/common.h uses it to set __declspec(dllexport)
11131    for the API symbols.
11132    
11133    Thanks to Adam Walling.
11134
11135 windows/liblzma_dll.vcxproj | 12 ++++++------
11136 1 file changed, 6 insertions(+), 6 deletions(-)
11137
11138commit a74525cf9b945fb0b370e64cf406104beb31729b
11139Author: Lasse Collin <lasse.collin@tukaani.org>
11140Date:   2015-08-09 21:02:20 +0300
11141
11142    Windows: Omit unneeded header files from MSVC project files.
11143
11144 windows/liblzma.vcxproj     | 5 -----
11145 windows/liblzma_dll.vcxproj | 5 -----
11146 2 files changed, 10 deletions(-)
11147
11148commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
11149Author: Lasse Collin <lasse.collin@tukaani.org>
11150Date:   2015-07-12 20:48:19 +0300
11151
11152    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
11153
11154 src/liblzma/api/lzma.h | 18 +++++++++++++-----
11155 1 file changed, 13 insertions(+), 5 deletions(-)
11156
11157commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
11158Author: Lasse Collin <lasse.collin@tukaani.org>
11159Date:   2015-06-19 20:38:55 +0300
11160
11161    Update THANKS.
11162
11163 THANKS | 2 ++
11164 1 file changed, 2 insertions(+)
11165
11166commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
11167Author: Lasse Collin <lasse.collin@tukaani.org>
11168Date:   2015-06-19 20:21:30 +0300
11169
11170    Windows: Update the docs.
11171
11172 INSTALL                                            | 29 ++++++++-----
11173 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
11174 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
11175 3 files changed, 67 insertions(+), 11 deletions(-)
11176
11177commit b0798c6aa6184efcefd0bdcca20f96121a13feda
11178Author: Lasse Collin <lasse.collin@tukaani.org>
11179Date:   2015-06-19 17:25:31 +0300
11180
11181    Windows: Add MSVC project files for building liblzma.
11182    
11183    Thanks to Adam Walling for creating these files.
11184
11185 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
11186 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
11187 windows/xz_win.sln          |  48 ++++++
11188 3 files changed, 795 insertions(+)
11189
11190commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
11191Author: Andre Noll <maan@tuebingen.mpg.de>
11192Date:   2015-05-28 15:50:00 +0200
11193
11194    Fix typo in German translation.
11195    
11196    As pointed out by Robert Pollak, there's a typo in the German
11197    translation of the compression preset option (-0 ... -9) help text.
11198    "The compressor" translates to "der Komprimierer", and the genitive
11199    form is "des Komprimierers". The old word makes no sense at all.
11200
11201 po/de.po | 2 +-
11202 1 file changed, 1 insertion(+), 1 deletion(-)
11203
11204commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
11205Author: Lasse Collin <lasse.collin@tukaani.org>
11206Date:   2015-05-13 20:57:55 +0300
11207
11208    Tests: Fix a memory leak in test_bcj_exact_size.
11209    
11210    Thanks to Cristian Rodr��guez.
11211
11212 tests/test_bcj_exact_size.c | 1 +
11213 1 file changed, 1 insertion(+)
11214
11215commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
11216Author: Lasse Collin <lasse.collin@tukaani.org>
11217Date:   2015-05-12 18:08:24 +0300
11218
11219    Fix NEWS about threading in 5.2.0.
11220    
11221    Thanks to Andy Hochhaus.
11222
11223 NEWS | 3 ++-
11224 1 file changed, 2 insertions(+), 1 deletion(-)
11225
11226commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
11227Author: Lasse Collin <lasse.collin@tukaani.org>
11228Date:   2015-05-11 21:26:16 +0300
11229
11230    xz: Document that threaded decompression hasn't been implemented yet.
11231
11232 src/xz/xz.1 | 10 +++++++++-
11233 1 file changed, 9 insertions(+), 1 deletion(-)
11234
11235commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
11236Author: Lasse Collin <lasse.collin@tukaani.org>
11237Date:   2015-04-20 20:20:29 +0300
11238
11239    Update THANKS.
11240
11241 THANKS | 1 +
11242 1 file changed, 1 insertion(+)
11243
11244commit 6bd0349c58451b13442e8f463e35de83548bf985
11245Author: Lasse Collin <lasse.collin@tukaani.org>
11246Date:   2015-04-20 19:59:18 +0300
11247
11248    Revert "xz: Use pipe2() if available."
11249    
11250    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
11251    It is a problem when libc has pipe2() but the kernel is too
11252    old to have pipe2() and thus pipe2() fails. In xz it's pointless
11253    to have a fallback for non-functioning pipe2(); it's better to
11254    avoid pipe2() completely.
11255    
11256    Thanks to Michael Fox for the bug report.
11257
11258 configure.ac     | 4 ++--
11259 src/xz/file_io.c | 9 +--------
11260 2 files changed, 3 insertions(+), 10 deletions(-)
11261
11262commit fc0df0f8db87dff45543708a711e17d29c37f632
11263Author: Lasse Collin <lasse.collin@tukaani.org>
11264Date:   2015-04-01 14:45:25 +0300
11265
11266    xz: Fix the Capsicum rights on user_abort_pipe.
11267
11268 src/xz/file_io.c | 6 +++++-
11269 1 file changed, 5 insertions(+), 1 deletion(-)
11270
11271commit 57393615b31b3788dd77280452d845bcc12d33af
11272Author: Lasse Collin <lasse.collin@tukaani.org>
11273Date:   2015-03-31 22:20:11 +0300
11274
11275    Update THANKS.
11276
11277 THANKS | 1 +
11278 1 file changed, 1 insertion(+)
11279
11280commit 1238381143a9a7ce84839c2582ccd56ff750a440
11281Author: Lasse Collin <lasse.collin@tukaani.org>
11282Date:   2015-03-31 22:19:34 +0300
11283
11284    xz: Add support for sandboxing with Capsicum.
11285    
11286    The sandboxing is used conditionally as described in main.c.
11287    This isn't optimal but it was much easier to implement than
11288    a full sandboxing solution and it still covers the most common
11289    use cases where xz is writing to standard output. This should
11290    have practically no effect on performance even with small files
11291    as fork() isn't needed.
11292    
11293    C and locale libraries can open files as needed. This has been
11294    fine in the past, but it's a problem with things like Capsicum.
11295    io_sandbox_enter() tries to ensure that various locale-related
11296    files have been loaded before cap_enter() is called, but it's
11297    possible that there are other similar problems which haven't
11298    been seen yet.
11299    
11300    Currently Capsicum is available on FreeBSD 10 and later
11301    and there is a port to Linux too.
11302    
11303    Thanks to Loganaden Velvindron for help.
11304
11305 configure.ac       | 41 +++++++++++++++++++++++++++
11306 src/xz/Makefile.am |  2 +-
11307 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11308 src/xz/file_io.h   |  6 ++++
11309 src/xz/main.c      | 18 ++++++++++++
11310 src/xz/private.h   |  4 +++
11311 6 files changed, 151 insertions(+), 1 deletion(-)
11312
11313commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
11314Author: Lasse Collin <lasse.collin@tukaani.org>
11315Date:   2015-03-31 21:12:30 +0300
11316
11317    Fix bugs and otherwise improve ax_check_capsicum.m4.
11318    
11319    AU_ALIAS was removed because the new version is incompatible
11320    with the old version.
11321    
11322    It no longer checks for <sys/capability.h> separately.
11323    It's enough to test for it as part of AC_CHECK_DECL.
11324    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
11325    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
11326    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
11327    
11328    It no longer does a useless search for the Capsicum library
11329    if the header wasn't found.
11330    
11331    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
11332    the argument omitted the default action but the given action
11333    wasn't used instead.
11334    
11335    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
11336    support is found. Previously it was part of the default
11337    ACTION-IF-FOUND which a custom action would override. Now
11338    the default action only prepends ${CAPSICUM_LIB} to LIBS.
11339    
11340    The documentation was updated.
11341    
11342    Since there as no serial number, "#serial 2" was added.
11343
11344 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
11345 1 file changed, 51 insertions(+), 52 deletions(-)
11346
11347commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
11348Author: Lasse Collin <lasse.collin@tukaani.org>
11349Date:   2015-03-31 19:20:24 +0300
11350
11351    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
11352    
11353    The file was loaded from this web page:
11354    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
11355    
11356    Thanks to Loganaden Velvindron for pointing it out for me.
11357
11358 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
11359 1 file changed, 86 insertions(+)
11360
11361commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
11362Author: Lasse Collin <lasse.collin@tukaani.org>
11363Date:   2015-03-30 22:44:02 +0300
11364
11365    Bump version to 5.3.0alpha and soname to 5.3.99.
11366    
11367    The idea of 99 is that it looks a bit weird in this context.
11368    For new features there's no API/ABI stability in devel versions.
11369
11370 src/liblzma/Makefile.am        | 2 +-
11371 src/liblzma/api/lzma/version.h | 6 +++---
11372 2 files changed, 4 insertions(+), 4 deletions(-)
11373
11374commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
11375Author: Lasse Collin <lasse.collin@tukaani.org>
11376Date:   2015-03-29 22:14:47 +0300
11377
11378    Update THANKS.
11379
11380 THANKS | 1 +
11381 1 file changed, 1 insertion(+)
11382
11383commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
11384Author: Lasse Collin <lasse.collin@tukaani.org>
11385Date:   2015-03-29 22:13:48 +0300
11386
11387    Fix the detection of installed RAM on QNX.
11388    
11389    The earlier version compiled but didn't actually work
11390    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
11391    
11392    Thanks to Ole Andr�� Vadla Ravn��s for the patch and testing.
11393
11394 m4/tuklib_physmem.m4        |  6 +++---
11395 src/common/tuklib_physmem.c | 14 +++++++++++++-
11396 2 files changed, 16 insertions(+), 4 deletions(-)
11397
11398commit 4c544d2410903d38402221cb783ed85585b6a007
11399Author: Lasse Collin <lasse.collin@tukaani.org>
11400Date:   2015-03-27 22:39:07 +0200
11401
11402    Fix CPU core count detection on QNX.
11403    
11404    It tried to use sysctl() on QNX but
11405      - it broke the build because sysctl() needs -lsocket on QNX;
11406      - sysctl() doesn't work for detecting the core count on QNX
11407        even if it compiled.
11408    
11409    sysconf() works. An alternative would have been to use
11410    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
11411    
11412    Thanks to Ole Andr�� Vadla Ravn��s.
11413
11414 m4/tuklib_cpucores.m4 | 15 +++++++++++----
11415 1 file changed, 11 insertions(+), 4 deletions(-)
11416
11417commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
11418Author: Lasse Collin <lasse.collin@tukaani.org>
11419Date:   2015-03-07 22:05:57 +0200
11420
11421    xz: size_t/uint32_t cleanup in options.c.
11422
11423 src/xz/options.c | 12 ++++++------
11424 1 file changed, 6 insertions(+), 6 deletions(-)
11425
11426commit 8bcca29a65335fd679c13814b70b35b68fa5daed
11427Author: Lasse Collin <lasse.collin@tukaani.org>
11428Date:   2015-03-07 22:04:23 +0200
11429
11430    xz: Fix a comment and silence a warning in message.c.
11431
11432 src/xz/message.c | 5 +++--
11433 1 file changed, 3 insertions(+), 2 deletions(-)
11434
11435commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
11436Author: Lasse Collin <lasse.collin@tukaani.org>
11437Date:   2015-03-07 22:01:00 +0200
11438
11439    liblzma: Silence more uint32_t vs. size_t warnings.
11440
11441 src/liblzma/lz/lz_encoder.c     | 2 +-
11442 src/liblzma/lzma/lzma_encoder.c | 2 +-
11443 2 files changed, 2 insertions(+), 2 deletions(-)
11444
11445commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
11446Author: Lasse Collin <lasse.collin@tukaani.org>
11447Date:   2015-03-07 19:54:00 +0200
11448
11449    xz: Make arg_count an unsigned int to silence a warning.
11450    
11451    Actually the value of arg_count cannot exceed INT_MAX
11452    but it's nicer as an unsigned int.
11453
11454 src/xz/args.h | 2 +-
11455 src/xz/main.c | 2 +-
11456 2 files changed, 2 insertions(+), 2 deletions(-)
11457
11458commit f6ec46801588b1be29c07c9db98558b521304002
11459Author: Lasse Collin <lasse.collin@tukaani.org>
11460Date:   2015-03-07 19:33:17 +0200
11461
11462    liblzma: Fix a warning in index.c.
11463
11464 src/liblzma/common/index.c | 4 +++-
11465 1 file changed, 3 insertions(+), 1 deletion(-)
11466
11467commit a24518971cc621315af142dd3bb7614fab04ad27
11468Author: Lasse Collin <lasse.collin@tukaani.org>
11469Date:   2015-02-26 20:46:14 +0200
11470
11471    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
11472
11473 build-aux/version.sh | 2 +-
11474 1 file changed, 1 insertion(+), 1 deletion(-)
11475
11476commit dec11497a71518423b5ff0e759100cf8aadf6c7b
11477Author: Lasse Collin <lasse.collin@tukaani.org>
11478Date:   2015-02-26 16:53:44 +0200
11479
11480    Bump version and soname for 5.2.1.
11481
11482 src/liblzma/Makefile.am        | 2 +-
11483 src/liblzma/api/lzma/version.h | 2 +-
11484 2 files changed, 2 insertions(+), 2 deletions(-)
11485
11486commit 29e39c79975ab89ee5dd671e97064534a9f3a649
11487Author: Lasse Collin <lasse.collin@tukaani.org>
11488Date:   2015-02-26 13:01:09 +0200
11489
11490    Update NEWS for 5.2.1.
11491
11492 NEWS | 14 ++++++++++++++
11493 1 file changed, 14 insertions(+)
11494
11495commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
11496Author: Lasse Collin <lasse.collin@tukaani.org>
11497Date:   2015-02-22 19:38:48 +0200
11498
11499    xz: Use pipe2() if available.
11500
11501 configure.ac     | 4 ++--
11502 src/xz/file_io.c | 9 ++++++++-
11503 2 files changed, 10 insertions(+), 3 deletions(-)
11504
11505commit 117d962685c72682c63edc9bb765367189800202
11506Author: Lasse Collin <lasse.collin@tukaani.org>
11507Date:   2015-02-21 23:40:26 +0200
11508
11509    liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
11510    
11511    The bug was added in the commit
11512    f48fce093b07aeda95c18850f5e086d9f2383380 and thus
11513    affected 5.1.4beta and 5.2.0. Luckily the bug cannot
11514    cause data corruption or other nasty things.
11515
11516 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
11517 1 file changed, 1 insertion(+), 1 deletion(-)
11518
11519commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
11520Author: Lasse Collin <lasse.collin@tukaani.org>
11521Date:   2015-02-21 23:00:19 +0200
11522
11523    xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
11524    
11525    Now it reads the old flags instead of blindly setting O_NONBLOCK.
11526    The old code may have worked correctly, but this is better.
11527
11528 src/xz/file_io.c | 16 +++++++++++-----
11529 1 file changed, 11 insertions(+), 5 deletions(-)
11530
11531commit 2205bb5853098aea36a56df6f5747037175f66b4
11532Author: Lasse Collin <lasse.collin@tukaani.org>
11533Date:   2015-02-10 15:29:34 +0200
11534
11535    Update THANKS.
11536
11537 THANKS | 1 +
11538 1 file changed, 1 insertion(+)
11539
11540commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
11541Author: Lasse Collin <lasse.collin@tukaani.org>
11542Date:   2015-02-10 15:28:30 +0200
11543
11544    tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
11545    
11546    In FreeBSD, cpuset_getaffinity() is the preferred way to get
11547    the number of available cores.
11548    
11549    Thanks to Rui Paulo for the patch. I edited it slightly, but
11550    hopefully I didn't break anything.
11551
11552 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
11553 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
11554 2 files changed, 40 insertions(+), 1 deletion(-)
11555
11556commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
11557Author: Lasse Collin <lasse.collin@tukaani.org>
11558Date:   2015-02-09 22:08:37 +0200
11559
11560    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
11561    
11562    Thanks to Rui Paulo for the fix.
11563
11564 src/scripts/xzdiff.in | 7 ++++++-
11565 1 file changed, 6 insertions(+), 1 deletion(-)
11566
11567commit b9a5b6b7a29029680af733082b6a46e0fc01623a
11568Author: Lasse Collin <lasse.collin@tukaani.org>
11569Date:   2015-02-03 21:45:53 +0200
11570
11571    Add a few casts to tuklib_integer.h to silence possible warnings.
11572    
11573    I heard that Visual Studio 2013 gave warnings without the casts.
11574    
11575    Thanks to Gabi Davar.
11576
11577 src/common/tuklib_integer.h | 24 ++++++++++++------------
11578 1 file changed, 12 insertions(+), 12 deletions(-)
11579
11580commit c45757135f40e4a0de730ba5fff0100219493982
11581Author: Lasse Collin <lasse.collin@tukaani.org>
11582Date:   2015-01-26 21:24:39 +0200
11583
11584    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
11585
11586 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
11587 1 file changed, 10 insertions(+), 5 deletions(-)
11588
11589commit 3c500174ed5485f550972a2a6109c361e875f069
11590Author: Lasse Collin <lasse.collin@tukaani.org>
11591Date:   2015-01-26 20:40:16 +0200
11592
11593    Update THANKS.
11594
11595 THANKS | 1 +
11596 1 file changed, 1 insertion(+)
11597
11598commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
11599Author: Lasse Collin <lasse.collin@tukaani.org>
11600Date:   2015-01-26 20:39:28 +0200
11601
11602    liblzma: Silence harmless Valgrind errors.
11603    
11604    Thanks to Torsten Rupp for reporting this. I had
11605    forgotten to run Valgrind before the 5.2.0 release.
11606
11607 src/liblzma/lz/lz_encoder.c | 6 ++++++
11608 1 file changed, 6 insertions(+)
11609
11610commit a9b45badfec0928d20a27c7176c005fa637f7d1e
11611Author: Lasse Collin <lasse.collin@tukaani.org>
11612Date:   2015-01-09 21:50:19 +0200
11613
11614    xz: Fix comments.
11615
11616 src/xz/file_io.c | 12 ++++++++----
11617 1 file changed, 8 insertions(+), 4 deletions(-)
11618
11619commit 541aee6dd4aa97a809aba281475a21b641bb89e2
11620Author: Lasse Collin <lasse.collin@tukaani.org>
11621Date:   2015-01-09 21:35:06 +0200
11622
11623    Update THANKS.
11624
11625 THANKS | 1 +
11626 1 file changed, 1 insertion(+)
11627
11628commit 4170edc914655310d2363baccf5e615e09b04911
11629Author: Lasse Collin <lasse.collin@tukaani.org>
11630Date:   2015-01-09 21:34:06 +0200
11631
11632    xz: Don't fail if stdout doesn't support O_NONBLOCK.
11633    
11634    This is similar to the case with stdin.
11635    
11636    Thanks to Brad Smith for the bug report and testing
11637    on OpenBSD.
11638
11639 src/xz/file_io.c | 36 +++++++++++++++---------------------
11640 1 file changed, 15 insertions(+), 21 deletions(-)
11641
11642commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
11643Author: Lasse Collin <lasse.collin@tukaani.org>
11644Date:   2015-01-07 19:18:20 +0200
11645
11646    xz: Fix a memory leak in DOS-specific code.
11647
11648 src/xz/file_io.c | 2 ++
11649 1 file changed, 2 insertions(+)
11650
11651commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
11652Author: Lasse Collin <lasse.collin@tukaani.org>
11653Date:   2015-01-07 19:08:06 +0200
11654
11655    xz: Don't fail if stdin doesn't support O_NONBLOCK.
11656    
11657    It's a problem at least on OpenBSD which doesn't support
11658    O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
11659    a problem on other OSes too since this behavior is allowed
11660    in POSIX-1.2008.
11661    
11662    The code relying on this behavior was committed in June 2013
11663    and included in 5.1.3alpha released on 2013-10-26. Clearly
11664    the development releases only get limited testing.
11665
11666 src/xz/file_io.c | 18 +++++++-----------
11667 1 file changed, 7 insertions(+), 11 deletions(-)
11668
11669commit d2d484647d9d9d679f03c75abb0404f67069271c
11670Author: Lasse Collin <lasse.collin@tukaani.org>
11671Date:   2015-01-06 20:30:15 +0200
11672
11673    Tests: Don't hide unexpected error messages in test_files.sh.
11674    
11675    Hiding them makes no sense since normally there's no error
11676    when testing the "good" files. With "bad" files errors are
11677    expected and then it makes sense to keep the messages hidden.
11678
11679 tests/test_files.sh | 4 ++--
11680 1 file changed, 2 insertions(+), 2 deletions(-)
11681
11682commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
11683Author: Lasse Collin <lasse.collin@tukaani.org>
11684Date:   2014-12-30 11:17:16 +0200
11685
11686    Update Solaris notes in INSTALL.
11687    
11688    Mention the possible "make check" failure on Solaris in the
11689    Solaris-specific section of INSTALL. It was already in
11690    section 4.5 but it is better mention it in the OS-specific
11691    section too.
11692
11693 INSTALL | 4 ++++
11694 1 file changed, 4 insertions(+)
11695
11696commit 7815112153178800a3521b9f31960e7cdc26cfba
11697Author: Lasse Collin <lasse.collin@tukaani.org>
11698Date:   2014-12-26 12:00:05 +0200
11699
11700    Build: POSIX shell isn't required if scripts are disabled.
11701
11702 INSTALL      | 3 ++-
11703 configure.ac | 2 +-
11704 2 files changed, 3 insertions(+), 2 deletions(-)
11705
11706commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
11707Author: Lasse Collin <lasse.collin@tukaani.org>
11708Date:   2014-12-21 20:48:37 +0200
11709
11710    DOS: Update Makefile.
11711
11712 dos/Makefile | 1 +
11713 1 file changed, 1 insertion(+)
11714
11715commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
11716Author: Lasse Collin <lasse.collin@tukaani.org>
11717Date:   2014-12-21 19:50:38 +0200
11718
11719    Windows: Fix bin_i486 to bin_i686 in build.bash.
11720
11721 windows/build.bash | 2 +-
11722 1 file changed, 1 insertion(+), 1 deletion(-)
11723
11724commit cbafa710918195dbba3db02c3fab4f0538235206
11725Author: Lasse Collin <lasse.collin@tukaani.org>
11726Date:   2014-12-21 18:58:44 +0200
11727
11728    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
11729
11730 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
11731 1 file changed, 26 insertions(+), 4 deletions(-)
11732
11733commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
11734Author: Lasse Collin <lasse.collin@tukaani.org>
11735Date:   2014-12-21 18:56:44 +0200
11736
11737    Docs: Update docs/examples/00_README.txt.
11738
11739 doc/examples/00_README.txt | 4 ++++
11740 1 file changed, 4 insertions(+)
11741
11742commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
11743Author: Lasse Collin <lasse.collin@tukaani.org>
11744Date:   2014-12-21 18:11:17 +0200
11745
11746    Bump version and soname for 5.2.0.
11747    
11748    I know that soname != app version, but I skip AGE=1
11749    in -version-info to make the soname match the liblzma
11750    version anyway. It doesn't hurt anything as long as
11751    it doesn't conflict with library versioning rules.
11752
11753 src/liblzma/Makefile.am        | 2 +-
11754 src/liblzma/api/lzma/version.h | 6 +++---
11755 src/liblzma/liblzma.map        | 2 +-
11756 3 files changed, 5 insertions(+), 5 deletions(-)
11757