xref: /freebsd/contrib/xz/ChangeLog (revision e64fe029e9d3ce476e77a478318e0c3cd201ff08)
1commit 238b4e5458b4bd2cadefb768b8ea7c6b70a191ac
2Author: Jia Tan <jiat0218@gmail.com>
3Date:   2023-05-04 20:38:52 +0800
4
5    Translations: Update the Croatian translation.
6
7 po/hr.po | 6 +++---
8 1 file changed, 3 insertions(+), 3 deletions(-)
9
10commit 0cee63c3c6c4f9084a5e7fa7c15a1863ac8e5ffc
11Author: Jia Tan <jiat0218@gmail.com>
12Date:   2023-05-04 19:50:42 +0800
13
14    Bump version and soname for 5.4.3.
15
16 src/liblzma/Makefile.am        | 2 +-
17 src/liblzma/api/lzma/version.h | 2 +-
18 2 files changed, 2 insertions(+), 2 deletions(-)
19
20commit 01f937ea9a49005c5091c0165fa0c1e572dd1749
21Author: Jia Tan <jiat0218@gmail.com>
22Date:   2023-05-02 20:39:56 +0800
23
24    Add NEWS for 5.4.3.
25
26 NEWS | 10 ++++++++++
27 1 file changed, 10 insertions(+)
28
29commit e9b9ea953179502d5245b4e6ca4f5ffe9d5797b1
30Author: Lasse Collin <lasse.collin@tukaani.org>
31Date:   2023-05-03 22:46:42 +0300
32
33    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
34
35    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
36    Also, this has >= instead of == since ints larger than 32 bits would
37    work too even if not relevant in practice.
38
39 src/common/tuklib_integer.h | 4 ++--
40 1 file changed, 2 insertions(+), 2 deletions(-)
41
42commit be6e39a8622f0d905072874ec25b1ffd155b12e1
43Author: Jia Tan <jiat0218@gmail.com>
44Date:   2023-04-20 20:15:00 +0800
45
46    Update THANKS.
47
48 THANKS | 1 +
49 1 file changed, 1 insertion(+)
50
51commit 9e343a46cf87a345799222c0b0b3a6f3358dde0c
52Author: Jia Tan <jiat0218@gmail.com>
53Date:   2023-04-19 22:22:16 +0800
54
55    Windows: Include <intrin.h> when needed.
56
57    Legacy Windows did not need to #include <intrin.h> to use the MSVC
58    intrinsics. Newer versions likely just issue a warning, but the MSVC
59    documentation says to include the header file for the intrinsics we use.
60
61    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
62    needed in tuklib_integer.h to only include <intrin.h> when it will is
63    actually needed.
64
65 src/common/tuklib_integer.h    |  6 ++++++
66 src/liblzma/common/memcmplen.h | 10 ++++++++++
67 2 files changed, 16 insertions(+)
68
69commit 12321a9390acc076b414035a46df9d7545ac379f
70Author: Jia Tan <jiat0218@gmail.com>
71Date:   2023-04-19 21:59:03 +0800
72
73    tuklib_integer: Use __builtin_clz() with Clang.
74
75    Clang has support for __builtin_clz(), but previously Clang would
76    fallback to either the MSVC intrinsic or the regular C code. This was
77    discovered due to a bug where a new version of Clang required the
78    <intrin.h> header file in order to use the MSVC intrinsics.
79
80    Thanks to Anton Kochkov for notifying us about the bug.
81
82 src/common/tuklib_integer.h | 6 +++---
83 1 file changed, 3 insertions(+), 3 deletions(-)
84
85commit d1f0e01c395960efd6c29ff144eda4f4c8c1c6d3
86Author: Lasse Collin <lasse.collin@tukaani.org>
87Date:   2023-04-14 18:42:33 +0300
88
89    liblzma: Update project maintainers in lzma.h.
90
91    AUTHORS was updated earlier, lzma.h was simply forgotten.
92
93 src/liblzma/api/lzma.h | 2 +-
94 1 file changed, 1 insertion(+), 1 deletion(-)
95
96commit 8204c5d1304e1e3b7487801b4acaf8e3179a6c52
97Author: Jia Tan <jiat0218@gmail.com>
98Date:   2023-04-13 20:45:19 +0800
99
100    liblzma: Cleans up old commented out code.
101
102 src/liblzma/common/alone_encoder.c | 11 -----------
103 1 file changed, 11 deletions(-)
104
105commit 32980d1562bc031013306be1c787761fa63da87d
106Author: Jia Tan <jiat0218@gmail.com>
107Date:   2023-03-28 22:32:40 +0800
108
109    CMake: Update liblzma-config.cmake generation.
110
111    Now that the threading is configurable, the liblzma CMake package only
112    needs the threading library when using POSIX threads.
113
114 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
115 1 file changed, 22 insertions(+), 11 deletions(-)
116
117commit 023907faa965476fb921a6344253c50e0ba795f9
118Author: Jia Tan <jiat0218@gmail.com>
119Date:   2023-03-28 22:25:33 +0800
120
121    CMake: Allows setting thread method.
122
123    The thread method is now configurable for the CMake build. It matches
124    the Autotools build by allowing ON (pick the best threading method),
125    OFF (no threading), posix, win95, and vista. If both Windows and
126    posix threading are both available, then ON will choose Windows
127    threading. Windows threading will also not use:
128
129    target_link_libraries(liblzma Threads::Threads)
130
131    since on systems like MinGW-w64 it would link the posix threads
132    without purpose.
133
134 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
135 1 file changed, 104 insertions(+), 40 deletions(-)
136
137commit ba176d77cbb164b13006516660fc1ff6c59dedb5
138Author: Jia Tan <jiat0218@gmail.com>
139Date:   2023-03-24 20:05:59 +0800
140
141    CMake: Only build xzdec if decoders are enabled.
142
143 CMakeLists.txt | 2 +-
144 1 file changed, 1 insertion(+), 1 deletion(-)
145
146commit c99d697df800e9bc47e09facf88bcfdb9e0264a5
147Author: Jia Tan <jiat0218@gmail.com>
148Date:   2023-03-22 15:42:04 +0800
149
150    Build: Removes redundant check for LZMA1 filter support.
151
152 src/liblzma/lzma/Makefile.inc | 5 +----
153 1 file changed, 1 insertion(+), 4 deletions(-)
154
155commit 54a2fd8c850e626343b79c4cc8fcac2f638ec890
156Author: Lasse Collin <lasse.collin@tukaani.org>
157Date:   2023-03-23 15:14:29 +0200
158
159    CMake: Bump maximum policy version to 3.26.
160
161    It adds only one new policy related to FOLDERS which we don't use.
162    This makes it clear that the code is compatible with the policies
163    up to 3.26.
164
165 CMakeLists.txt | 2 +-
166 1 file changed, 1 insertion(+), 1 deletion(-)
167
168commit 622d0fdc02d5f565c2872d79bc70c669c95c8284
169Author: Jia Tan <jiat0218@gmail.com>
170Date:   2023-03-21 23:36:00 +0800
171
172    CMake: Conditionally build xz list.* files if decoders are enabled.
173
174 CMakeLists.txt | 9 +++++++--
175 1 file changed, 7 insertions(+), 2 deletions(-)
176
177commit 3e2dc523c596cd770a6a7c58cacc0d0d8761e853
178Author: Jia Tan <jiat0218@gmail.com>
179Date:   2023-02-25 11:46:50 +0800
180
181    CMake: Allow configuring features as cache variables.
182
183    This allows users to change the features they build either in
184    CMakeCache.txt or by using a CMake GUI. The sources built for
185    liblzma are affected by this too, so only the necessary files
186    will be compiled.
187
188 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
189 1 file changed, 391 insertions(+), 137 deletions(-)
190
191commit 0c053f97337fa4ead77acefb577e8e86f8ef388d
192Author: Lasse Collin <lasse.collin@tukaani.org>
193Date:   2023-03-21 14:07:51 +0200
194
195    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
196
197    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
198    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
199
200 configure.ac | 3 +++
201 1 file changed, 3 insertions(+)
202
203commit 915d4f6058d52f84d2b58b0a5f3c8272eaa6c1bd
204Author: Lasse Collin <lasse.collin@tukaani.org>
205Date:   2023-03-21 14:04:37 +0200
206
207    Build: configure.ac: Use AS_IF and AS_CASE where required.
208
209    This makes no functional difference in the generated configure
210    (at least with the Autotools versions I have installed) but this
211    change might prevent future bugs like the one that was just
212    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
213
214 configure.ac | 30 +++++++++++++++---------------
215 1 file changed, 15 insertions(+), 15 deletions(-)
216
217commit b848c039586ed2cddb6fb033680dac107cc5143f
218Author: Lasse Collin <lasse.collin@tukaani.org>
219Date:   2023-03-21 13:12:03 +0200
220
221    Update THANKS.
222
223 THANKS | 1 +
224 1 file changed, 1 insertion(+)
225
226commit c775ba1602a74f29dbc2088bbe4d02c23fc32ba1
227Author: Lasse Collin <lasse.collin@tukaani.org>
228Date:   2023-03-21 13:11:49 +0200
229
230    Build: Fix --disable-threads breaking the building of shared libs.
231
232    This is broken in the releases 5.2.6 to 5.4.2. A workaround
233    for these releases is to pass EGREP='grep -E' as an argument
234    to configure in addition to --disable-threads.
235
236    The problem appeared when m4/ax_pthread.m4 was updated in
237    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
238    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
239    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
240    but this was only executed if POSIX threads were enabled.
241    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
242    omits it as AC_PROG_EGREP has already been required earlier.
243    Thus, if not using POSIX threads, the shell variable EGREP
244    would be undefined in the Libtool code in configure.
245
246    ax_pthread.m4 is fine. The bug was in configure.ac which called
247    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
248    ensures that all AC_REQUIREs get always run.
249
250    Thanks to Frank Busse for reporting the bug.
251    Fixes: https://github.com/tukaani-project/xz/issues/45
252
253 configure.ac | 16 ++++++++--------
254 1 file changed, 8 insertions(+), 8 deletions(-)
255
256commit 0673c9ec98b6bae12b33dc295564514aaa26e2fc
257Author: Lasse Collin <lasse.collin@tukaani.org>
258Date:   2023-03-19 22:45:59 +0200
259
260    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
261
262    Thanks to Christian Hesse for reporting the issue.
263    Fixes: https://github.com/tukaani-project/xz/issues/44
264
265 src/liblzma/common/memcmplen.h | 3 ++-
266 1 file changed, 2 insertions(+), 1 deletion(-)
267
268commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8
269Author: Jia Tan <jiat0218@gmail.com>
270Date:   2023-03-18 23:22:06 +0800
271
272    Bump version and soname for 5.4.2.
273
274 src/liblzma/Makefile.am        | 2 +-
275 src/liblzma/api/lzma/version.h | 2 +-
276 2 files changed, 2 insertions(+), 2 deletions(-)
277
278commit ce4f246600db10e77fc93d492ea045b4c9830bc6
279Author: Jia Tan <jiat0218@gmail.com>
280Date:   2023-03-18 22:10:57 +0800
281
282    Add NEWS for 5.4.2.
283
284 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
285 1 file changed, 48 insertions(+)
286
287commit 3634fe330788fc0df217acdb6581031a851600a3
288Author: Lasse Collin <lasse.collin@tukaani.org>
289Date:   2023-03-18 16:00:54 +0200
290
291    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
292
293 COPYING.GPLv3 | 8 ++++----
294 1 file changed, 4 insertions(+), 4 deletions(-)
295
296commit 97679d25ce7cb014328f1455bb338903c003d54f
297Author: Lasse Collin <lasse.collin@tukaani.org>
298Date:   2023-03-18 15:51:57 +0200
299
300    Change a few HTTP URLs to HTTPS.
301
302    The xz man page timestamp was intentionally left unchanged.
303
304 INSTALL                    |  2 +-
305 README                     |  8 ++++----
306 configure.ac               |  2 +-
307 dos/INSTALL.txt            |  4 ++--
308 src/liblzma/api/lzma.h     |  8 ++++----
309 src/liblzma/check/sha256.c |  2 +-
310 src/xz/xz.1                |  2 +-
311 windows/INSTALL-MinGW.txt  | 10 +++++-----
312 8 files changed, 19 insertions(+), 19 deletions(-)
313
314commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594
315Author: Jia Tan <jiat0218@gmail.com>
316Date:   2023-03-18 00:40:28 +0800
317
318    CMake: Fix typo in a comment.
319
320 CMakeLists.txt | 2 +-
321 1 file changed, 1 insertion(+), 1 deletion(-)
322
323commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05
324Author: Lasse Collin <lasse.collin@tukaani.org>
325Date:   2023-03-17 18:36:22 +0200
326
327    Windows: build.bash: Copy liblzma API docs to the output package.
328
329 windows/build.bash | 3 ++-
330 1 file changed, 2 insertions(+), 1 deletion(-)
331
332commit ae252862b30b509ab88b2bbcaa08e8d51b57e928
333Author: Lasse Collin <lasse.collin@tukaani.org>
334Date:   2023-03-17 08:53:38 +0200
335
336    Windows: Add microlzma_*.c to the VS project files.
337
338    These should have been included in 5.3.2alpha already.
339
340 windows/vs2013/liblzma.vcxproj     | 2 ++
341 windows/vs2013/liblzma_dll.vcxproj | 2 ++
342 windows/vs2017/liblzma.vcxproj     | 2 ++
343 windows/vs2017/liblzma_dll.vcxproj | 2 ++
344 windows/vs2019/liblzma.vcxproj     | 2 ++
345 windows/vs2019/liblzma_dll.vcxproj | 2 ++
346 6 files changed, 12 insertions(+)
347
348commit 147d282cc3733e2723df82622b6540ddfb52635e
349Author: Lasse Collin <lasse.collin@tukaani.org>
350Date:   2023-03-17 08:43:51 +0200
351
352    CMake: Add microlzma_*.c to the build.
353
354    These should have been included in 5.3.2alpha already.
355
356 CMakeLists.txt | 2 ++
357 1 file changed, 2 insertions(+)
358
359commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53
360Author: Lasse Collin <lasse.collin@tukaani.org>
361Date:   2023-03-17 08:41:36 +0200
362
363    Build: Update comments about unaligned access to mention 64-bit.
364
365 cmake/tuklib_integer.cmake | 7 +++----
366 m4/tuklib_integer.m4       | 4 ++--
367 2 files changed, 5 insertions(+), 6 deletions(-)
368
369commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9
370Author: Lasse Collin <lasse.collin@tukaani.org>
371Date:   2023-03-17 00:02:30 +0200
372
373    Tests: Update .gitignore.
374
375 .gitignore | 3 ++-
376 1 file changed, 2 insertions(+), 1 deletion(-)
377
378commit 5d022c24921eec938604a8cb10d70aa08dbd8575
379Author: Lasse Collin <lasse.collin@tukaani.org>
380Date:   2023-03-14 20:04:03 +0200
381
382    po4a/update-po: Display the script name consistently in error messages.
383
384 po4a/update-po | 2 +-
385 1 file changed, 1 insertion(+), 1 deletion(-)
386
387commit 896295117324f323c0b8db6a31ad6ebfaa88793d
388Author: Jia Tan <jiat0218@gmail.com>
389Date:   2023-03-17 01:30:36 +0800
390
391    Doc: Rename Doxygen HTML doc directory name liblzma => api.
392
393    When the docs are installed, calling the directory "liblzma" is
394    confusing since multiple other files in the doc directory are for
395    liblzma. This should also make it more natural for distros when they
396    package the documentation.
397
398 .gitignore             |  2 +-
399 Makefile.am            | 18 +++++++++---------
400 PACKAGERS              |  4 ++--
401 doxygen/Doxyfile       |  2 +-
402 doxygen/update-doxygen | 18 +++++++++---------
403 5 files changed, 22 insertions(+), 22 deletions(-)
404
405commit 94097157fae308b2c1a5edb4e8597c68b45eeaea
406Author: Jia Tan <jiat0218@gmail.com>
407Date:   2023-03-16 22:07:15 +0800
408
409    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
410
411    This was left in by mistake since an early version of the ARM64 filter
412    used a different struct for its options.
413
414 src/liblzma/api/lzma/bcj.h | 2 +-
415 1 file changed, 1 insertion(+), 1 deletion(-)
416
417commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e
418Author: Lasse Collin <lasse.collin@tukaani.org>
419Date:   2023-03-15 19:19:13 +0200
420
421    COPYING: Add a note about the included Doxygen-generated HTML.
422
423 COPYING | 11 +++++++++++
424 1 file changed, 11 insertions(+)
425
426commit e57c74f9ef19201f72c106f2c347596f40229936
427Author: Jia Tan <jiat0218@gmail.com>
428Date:   2023-03-16 21:41:09 +0800
429
430    Doc: Update PACKAGERS with details about liblzma API docs install.
431
432 PACKAGERS | 22 ++++++++++++++++------
433 1 file changed, 16 insertions(+), 6 deletions(-)
434
435commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281
436Author: Jia Tan <jiat0218@gmail.com>
437Date:   2023-03-16 21:38:32 +0800
438
439    liblzma: Add set lzma.h as the main page for Doxygen documentation.
440
441    The \mainpage command is used in the first block of comments in lzma.h.
442    This changes the previously nearly empty index.html to use the first
443    comment block in lzma.h for its contents.
444
445    lzma.h is no longer documented separately, but this is for the better
446    since lzma.h only defined a few macros that users do not need to use.
447    The individual API header files all have a disclaimer that they should
448    not be #included directly, so there should be no confusion on the fact
449    that lzma.h should be the only header used by applications.
450
451    Additionally, the note "See ../lzma.h for information about liblzma as
452    a whole." was removed since lzma.h is now the main page of the
453    generated HTML and does not have its own page anymore. So it would be
454    confusing in the HTML version and was only a "nice to have" when
455    browsing the source files.
456
457 src/liblzma/api/lzma.h              | 1 +
458 src/liblzma/api/lzma/base.h         | 2 --
459 src/liblzma/api/lzma/bcj.h          | 2 --
460 src/liblzma/api/lzma/block.h        | 2 --
461 src/liblzma/api/lzma/check.h        | 2 --
462 src/liblzma/api/lzma/container.h    | 2 --
463 src/liblzma/api/lzma/delta.h        | 2 --
464 src/liblzma/api/lzma/filter.h       | 2 --
465 src/liblzma/api/lzma/hardware.h     | 2 --
466 src/liblzma/api/lzma/index.h        | 2 --
467 src/liblzma/api/lzma/index_hash.h   | 4 +---
468 src/liblzma/api/lzma/lzma12.h       | 2 --
469 src/liblzma/api/lzma/stream_flags.h | 2 --
470 src/liblzma/api/lzma/version.h      | 2 --
471 src/liblzma/api/lzma/vli.h          | 2 --
472 15 files changed, 2 insertions(+), 29 deletions(-)
473
474commit d42977c7acfdf7fd9acc8803cf411eca7dc10478
475Author: Jia Tan <jiat0218@gmail.com>
476Date:   2023-03-16 21:37:32 +0800
477
478    Build: Generate doxygen documentation in autogen.sh.
479
480    Another command line option (--no-doxygen) was added to disable
481    creating the doxygen documenation in cases where it not wanted or
482    if the doxygen tool is not installed.
483
484 autogen.sh | 35 +++++++++++++++++++++++++++++------
485 1 file changed, 29 insertions(+), 6 deletions(-)
486
487commit 8fc712fcf41d821069c670f22b8bf628e7a4a877
488Author: Jia Tan <jiat0218@gmail.com>
489Date:   2023-03-16 21:35:55 +0800
490
491    Build: Create doxygen/update-doxygen script.
492
493    This is a helper script to generate the Doxygen documentation. It can be
494    run in 'liblzma' or 'internal' mode by setting the first argument. It
495    will default to 'liblzma' mode and only generate documentation for the
496    liblzma API header files.
497
498    The helper script will be run during the custom mydist hook when we
499    create releases. This hook already alters the source directory, so its
500    fine to do it here too. This way, we can include the Doxygen generated
501    files in the distrubtion and when installing.
502
503    In 'liblzma' mode, the JavaScript is stripped from the .html files and
504    the .js files are removed. This avoids license hassle from jQuery and
505    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
506
507 Makefile.am            |   1 +
508 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
509 2 files changed, 112 insertions(+)
510
511commit 77d2c025d19fbac7277c63239cfb1338f02c66c0
512Author: Jia Tan <jiat0218@gmail.com>
513Date:   2023-03-16 21:34:36 +0800
514
515    Build: Install Doxygen docs and include in distribution if generated.
516
517    Added a install-data-local target to install the Doxygen documentation
518    only when it has been generated. In order to correctly remove the docs,
519    a corresponding uninstall-local target was added.
520
521    If the doxygen docs exist in the source tree, they will also be included
522    in the distribution now too.
523
524 Makefile.am | 18 ++++++++++++++++++
525 1 file changed, 18 insertions(+)
526
527commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f
528Author: Jia Tan <jiat0218@gmail.com>
529Date:   2023-01-03 20:37:30 +0800
530
531    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
532
533    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
534    can have the tags that need to be configured piped into the doxygen
535    command through stdin with the overrides after Doxyfile's contents.
536
537    Going forward, the documentation should be generated in two different
538    modes: liblzma or internal.
539
540    liblzma is useful for most users. It is the documentation for just
541    the liblzma API header files. This is the default.
542
543    internal is for people who want to understand how xz and liblzma work.
544    It might be useful for people who want to contribute to the project.
545
546 .gitignore       |    3 +-
547 Doxyfile.in      | 1234 -------------------------
548 Makefile.am      |    1 -
549 configure.ac     |    1 -
550 doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
551 5 files changed, 2686 insertions(+), 1237 deletions(-)
552
553commit 1c558a26928b753fcf1c0d4bce9c0643285edd86
554Author: Jia Tan <jiat0218@gmail.com>
555Date:   2023-02-28 23:22:36 +0800
556
557    Tests: Remove unused macros and functions.
558
559 tests/tests.h | 75 -----------------------------------------------------------
560 1 file changed, 75 deletions(-)
561
562commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0
563Author: Jia Tan <jiat0218@gmail.com>
564Date:   2023-01-12 22:29:07 +0800
565
566    Tests: Refactors existing lzma_index tests.
567
568    Converts the existing lzma_index tests into tuktests and covers every
569    API function from index.h except for lzma_file_info_decoder, which can
570    be tested in the future.
571
572 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
573 1 file changed, 1492 insertions(+), 544 deletions(-)
574
575commit fd56d5353360279c10e8e5e05f5bc6ea03f64584
576Author: Lasse Collin <lasse.collin@tukaani.org>
577Date:   2023-03-07 19:59:23 +0200
578
579    xz: Make Capsicum sandbox more strict with stdin and stdout.
580
581 src/xz/file_io.c | 8 ++++++++
582 1 file changed, 8 insertions(+)
583
584commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1
585Author: Lasse Collin <lasse.collin@tukaani.org>
586Date:   2023-03-11 19:31:40 +0200
587
588    xz: Don't fail if Capsicum is enabled but kernel doesn't support it.
589
590    (This commit combines related commits from the master branch.)
591
592    If Capsicum support is missing from the kernel or xz is being run
593    in an emulator that lacks Capsicum suport, the syscalls will fail
594    and set errno to ENOSYS. Previously xz would display and error and
595    exit, making xz unusable. Now it will check for ENOSYS and run
596    without sandbox support. Other tools like ssh behave similarly.
597
598    Displaying a warning for missing Capsicum support was considered
599    but such extra output would quickly become annoying. It would also
600    break test_scripts.sh in "make check".
601
602    Also move cap_enter() to be the first step instead of the last one.
603    This matches the example in the cap_rights_limit(2) man page. With
604    the current code it shouldn't make any practical difference though.
605
606    Thanks to Xin Li for the bug report, suggesting a fix, and testing:
607    https://github.com/tukaani-project/xz/pull/43
608
609    Thanks to Jia Tan for most of the original commits.
610
611 src/xz/file_io.c | 15 ++++++++++++---
612 1 file changed, 12 insertions(+), 3 deletions(-)
613
614commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776
615Author: Jia Tan <jiat0218@gmail.com>
616Date:   2023-02-04 21:06:35 +0800
617
618    Build: Adjust CMake version search regex.
619
620    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
621    macros do not need to be on consecutive lines in version.h. They can be
622    separated by more whitespace, comments, or even other content, as long
623    as they appear in the proper order (major, minor, patch).
624
625 CMakeLists.txt | 2 ++
626 1 file changed, 2 insertions(+)
627
628commit b82d4831e3f2339c4cdbc47776c99462088c11b7
629Author: Jia Tan <jiat0218@gmail.com>
630Date:   2023-01-26 09:50:21 +0800
631
632    liblzma: Improve documentation for version.h.
633
634    Specified parameter and return values for API functions and documented
635    a few more of the macros.
636
637 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
638 1 file changed, 22 insertions(+), 7 deletions(-)
639
640commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6
641Author: Jia Tan <jiat0218@gmail.com>
642Date:   2023-02-24 23:46:23 +0800
643
644    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
645
646    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
647    usable in an encoder even if it returns false (success). If liblzma
648    is built with default configurations, then the options will always be
649    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
650    the options may not be usable depending on the preset level requested.
651
652    The documentation was updated to reflect this complexity, since this
653    behavior was unclear before.
654
655 src/liblzma/api/lzma/lzma12.h | 5 +++++
656 1 file changed, 5 insertions(+)
657
658commit 594f904673ba55a833adfa60bbab6b60d4902d08
659Author: Lasse Collin <lasse.collin@tukaani.org>
660Date:   2023-02-27 18:38:35 +0200
661
662    CMake: Require that the C compiler supports C99 or a newer standard.
663
664    Thanks to autoantwort for reporting the issue and suggesting
665    a different patch:
666    https://github.com/tukaani-project/xz/pull/42
667
668 CMakeLists.txt | 8 ++++++++
669 1 file changed, 8 insertions(+)
670
671commit 88101143cb774bca6b7006c8335b09dc3f334140
672Author: Jia Tan <jiat0218@gmail.com>
673Date:   2023-02-24 18:10:37 +0800
674
675    Tests: Small tweak to test-vli.c.
676
677    The static global variables can be disabled if encoders and decoders
678    are not built. If they are not disabled and -Werror is used, it will
679    cause an usused warning as an error.
680
681 tests/test_vli.c | 2 ++
682 1 file changed, 2 insertions(+)
683
684commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9
685Author: Jia Tan <jiat0218@gmail.com>
686Date:   2023-02-06 21:46:43 +0800
687
688    liblzma: Replace '\n' -> newline in filter.h documentation.
689
690    The '\n' renders as a newline when the comments are converted to html
691    by Doxygen.
692
693 src/liblzma/api/lzma/filter.h | 2 +-
694 1 file changed, 1 insertion(+), 1 deletion(-)
695
696commit 3971f5c5024750ce8286891c6f79ae1661047483
697Author: Jia Tan <jiat0218@gmail.com>
698Date:   2023-02-06 21:45:37 +0800
699
700    liblzma: Shorten return description for two functions in filter.h.
701
702    Shorten the description for lzma_raw_encoder_memusage() and
703    lzma_raw_decoder_memusage().
704
705 src/liblzma/api/lzma/filter.h | 8 ++------
706 1 file changed, 2 insertions(+), 6 deletions(-)
707
708commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242
709Author: Jia Tan <jiat0218@gmail.com>
710Date:   2023-02-06 21:44:45 +0800
711
712    liblzma: Reword a few lines in filter.h
713
714 src/liblzma/api/lzma/filter.h | 10 +++++-----
715 1 file changed, 5 insertions(+), 5 deletions(-)
716
717commit 8a53533869defa1191b41f176a0312cb53a139e2
718Author: Jia Tan <jiat0218@gmail.com>
719Date:   2023-02-06 21:35:06 +0800
720
721    liblzma: Improve documentation in filter.h.
722
723    All functions now explicitly specify parameter and return values.
724    The notes and code annotations were moved before the parameter and
725    return value descriptions for consistency.
726
727    Also, the description above lzma_filter_encoder_is_supported() about
728    not being able to list available filters was removed since
729    lzma_str_list_filters() will do this.
730
731 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
732 1 file changed, 143 insertions(+), 83 deletions(-)
733
734commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f
735Author: Lasse Collin <lasse.collin@tukaani.org>
736Date:   2023-02-23 20:46:16 +0200
737
738    Update THANKS.
739
740 THANKS | 1 +
741 1 file changed, 1 insertion(+)
742
743commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5
744Author: Lasse Collin <lasse.collin@tukaani.org>
745Date:   2023-02-21 22:57:10 +0200
746
747    liblzma: Avoid null pointer + 0 (undefined behavior in C).
748
749    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
750    adding 0 to a null pointer is undefined behavior. As of writing,
751    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
752    I'm not aware of any compiler that would take advantage of this
753    when optimizing (Clang 15 included). It's good to avoid this anyway
754    since compilers might some day infer that pointer arithmetic implies
755    that the pointer is not NULL. That is, the following foo() would then
756    unconditionally return 0, even for foo(NULL, 0):
757
758        void bar(char *a, char *b);
759
760        int foo(char *a, size_t n)
761        {
762            bar(a, a + n);
763            return a == NULL;
764        }
765
766    In contrast to C, C++ explicitly allows null pointer + 0. So if
767    the above is compiled as C++ then there is no undefined behavior
768    in the foo(NULL, 0) call.
769
770    To me it seems that changing the C standard would be the sane
771    thing to do (just add one sentence) as it would ensure that a huge
772    amount of old code won't break in the future. Based on web searches
773    it seems that a large number of codebases (where null pointer + 0
774    occurs) are being fixed instead to be future-proof in case compilers
775    will some day optimize based on it (like making the above foo(NULL, 0)
776    return 0) which in the worst case will cause security bugs.
777
778    Some projects don't plan to change it. For example, gnulib and thus
779    many GNU tools currently require that null pointer + 0 is defined:
780
781        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
782
783        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
784
785    In XZ Utils null pointer + 0 issue should be fixed after this
786    commit. This adds a few if-statements and thus branches to avoid
787    null pointer + 0. These check for size > 0 instead of ptr != NULL
788    because this way bugs where size > 0 && ptr == NULL will likely
789    get caught quickly. None of them are in hot spots so it shouldn't
790    matter for performance.
791
792    A little less readable version would be replacing
793
794        ptr + offset
795
796    with
797
798        offset != 0 ? ptr + offset : ptr
799
800    or creating a macro for it:
801
802        #define my_ptr_add(ptr, offset) \
803                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
804
805    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
806    Clang >= 7, and Clang-based ICX to optimize it to the very same code
807    as ptr + offset. That is, it won't create a branch. So for hot code
808    this could be a good solution to avoid null pointer + 0. Unfortunately
809    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
810    branch from my_ptr_add().
811
812    Thanks to Marcin Kowalczyk for reporting the problem:
813    https://github.com/tukaani-project/xz/issues/36
814
815 src/liblzma/common/block_decoder.c |  5 ++++-
816 src/liblzma/common/block_encoder.c |  7 +++++--
817 src/liblzma/common/common.c        | 20 ++++++++++++++------
818 src/liblzma/common/index_decoder.c | 13 ++++++++++---
819 src/liblzma/common/index_encoder.c | 11 +++++++++--
820 src/liblzma/common/index_hash.c    | 13 ++++++++++---
821 src/liblzma/common/lzip_decoder.c  |  6 +++++-
822 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
823 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
824 src/liblzma/simple/simple_coder.c  |  6 ++++--
825 10 files changed, 77 insertions(+), 23 deletions(-)
826
827commit f6dce49cb656b358e2fb2a3032e35e20af34dc84
828Author: Jia Tan <jiat0218@gmail.com>
829Date:   2023-02-07 00:00:44 +0800
830
831    liblzma: Adjust container.h for consistency with filter.h.
832
833 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
834 1 file changed, 9 insertions(+), 11 deletions(-)
835
836commit 173d240bb4763aedc8c01df4d9c83e311d954c33
837Author: Jia Tan <jiat0218@gmail.com>
838Date:   2023-02-07 00:00:09 +0800
839
840    liblzma: Fix small typos and reword a few things in filter.h.
841
842 src/liblzma/api/lzma/container.h | 13 ++++++-------
843 1 file changed, 6 insertions(+), 7 deletions(-)
844
845commit 17797bacde3f7264048ef0976c137a600148d6cf
846Author: Jia Tan <jiat0218@gmail.com>
847Date:   2023-02-06 23:42:08 +0800
848
849    liblzma: Convert list of flags in lzma_mt to bulleted list.
850
851 src/liblzma/api/lzma/container.h | 9 ++++++---
852 1 file changed, 6 insertions(+), 3 deletions(-)
853
854commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b
855Author: Jia Tan <jiat0218@gmail.com>
856Date:   2023-01-26 23:17:41 +0800
857
858    liblzma: Fix typo in documentation in container.h
859
860    lzma_microlzma_decoder -> lzma_microlzma_encoder
861
862 src/liblzma/api/lzma/container.h | 2 +-
863 1 file changed, 1 insertion(+), 1 deletion(-)
864
865commit b8331077c626e6bf14f4671d09b561146eaf816a
866Author: Jia Tan <jiat0218@gmail.com>
867Date:   2023-01-26 23:16:34 +0800
868
869    liblzma: Improve documentation for container.h
870
871    Standardizing each function to always specify parameters and return
872    values. Also moved the parameters and return values to the end of each
873    function description.
874
875 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
876 1 file changed, 93 insertions(+), 53 deletions(-)
877
878commit b9a3511bb61d3b6ce49abd33dce6155a573f5272
879Author: Jia Tan <jiat0218@gmail.com>
880Date:   2023-02-22 20:59:41 +0800
881
882    CMake: Add LZIP decoder test to list of tests.
883
884 CMakeLists.txt | 1 +
885 1 file changed, 1 insertion(+)
886
887commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89
888Author: Lasse Collin <lasse.collin@tukaani.org>
889Date:   2023-02-17 20:56:49 +0200
890
891    Update THANKS.
892
893 THANKS | 1 +
894 1 file changed, 1 insertion(+)
895
896commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b
897Author: Lasse Collin <lasse.collin@tukaani.org>
898Date:   2023-02-17 20:48:28 +0200
899
900    Build: Use only the generic symbol versioning on MicroBlaze.
901
902    On MicroBlaze, GCC 12 is broken in sense that
903    __has_attribute(__symver__) returns true but it still doesn't
904    support the __symver__ attribute even though the platform is ELF
905    and symbol versioning is supported if using the traditional
906    __asm__(".symver ...") method. Avoiding the traditional method is
907    good because it breaks LTO (-flto) builds with GCC.
908
909    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
910
911    For now the only extra symbols in liblzma_linux.map are the
912    compatibility symbols with the patch that spread from RHEL/CentOS 7.
913    These require the use of __symver__ attribute or __asm__(".symver ...")
914    in the C code. Compatibility with the patch from CentOS 7 doesn't
915    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
916    instead. It doesn't require anything special in the C code and thus
917    no LTO issues either.
918
919    An alternative would be to detect support for __symver__
920    attribute in configure.ac and CMakeLists.txt and fall back
921    to __asm__(".symver ...") but then LTO would be silently broken
922    on MicroBlaze. It sounds likely that MicroBlaze is a special
923    case so let's treat it as a such because that is simpler. If
924    a similar issue exists on some other platform too then hopefully
925    someone will report it and this can be reconsidered.
926
927    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
928    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
929    The problem breaks the build so it's easy to notice and can be fixed
930    later.)
931
932    Thanks to Vincent Fazio for reporting the problem and proposing
933    a patch (in the end that solution wasn't used):
934    https://github.com/tukaani-project/xz/pull/32
935
936 configure.ac | 12 ++++++++++--
937 1 file changed, 10 insertions(+), 2 deletions(-)
938
939commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea
940Author: Lasse Collin <lasse.collin@tukaani.org>
941Date:   2023-02-16 21:09:00 +0200
942
943    liblzma: Very minor API doc tweaks.
944
945    Use "member" to refer to struct members as that's the term used
946    by the C standard.
947
948    Use lzma_options_delta.dist and such in docs so that in Doxygen's
949    HTML output they will link to the doc of the struct member.
950
951    Clean up a few trailing white spaces too.
952
953 src/liblzma/api/lzma/block.h        |  6 +++---
954 src/liblzma/api/lzma/delta.h        |  6 +++---
955 src/liblzma/api/lzma/index.h        | 10 +++++-----
956 src/liblzma/api/lzma/stream_flags.h |  6 +++---
957 4 files changed, 14 insertions(+), 14 deletions(-)
958
959commit d31fbd28be5b79eb682db50004b0fb7aad5299ec
960Author: Jia Tan <jiat0218@gmail.com>
961Date:   2023-02-17 00:54:33 +0800
962
963    liblzma: Adjust spacing in doc headers in bcj.h.
964
965 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
966 1 file changed, 7 insertions(+), 7 deletions(-)
967
968commit 701e9be6bede19771895f756082db0c017f86f07
969Author: Jia Tan <jiat0218@gmail.com>
970Date:   2023-02-17 00:44:44 +0800
971
972    liblzma: Adjust documentation in bcj.h for consistent style.
973
974 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
975 1 file changed, 22 insertions(+), 21 deletions(-)
976
977commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503
978Author: Jia Tan <jiat0218@gmail.com>
979Date:   2023-02-17 00:36:05 +0800
980
981    liblzma: Rename field => member in documentation.
982
983    Also adjusted preset value => preset level.
984
985 src/liblzma/api/lzma/base.h         | 18 +++++++--------
986 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
987 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
988 src/liblzma/api/lzma/delta.h        | 12 +++++-----
989 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
990 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
991 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
992 7 files changed, 95 insertions(+), 95 deletions(-)
993
994commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a
995Author: Lasse Collin <lasse.collin@tukaani.org>
996Date:   2023-02-16 17:59:50 +0200
997
998    liblzma: Silence a warning from MSVC.
999
1000    It gives C4146 here since unary minus with unsigned integer
1001    is still unsigned (which is the intention here). Doing it
1002    with substraction makes it clearer and avoids the warning.
1003
1004    Thanks to Nathan Moinvaziri for reporting this.
1005
1006 src/liblzma/check/crc64_fast.c | 2 +-
1007 1 file changed, 1 insertion(+), 1 deletion(-)
1008
1009commit d83da006b3e8dbad9112e6cde6b27049d193c9ec
1010Author: Jia Tan <jiat0218@gmail.com>
1011Date:   2023-02-16 21:04:54 +0800
1012
1013    liblzma: Improve documentation for stream_flags.h
1014
1015    Standardizing each function to always specify parameters and return
1016    values. Also moved the parameters and return values to the end of each
1017    function description.
1018
1019    A few small things were reworded and long sentences broken up.
1020
1021 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
1022 1 file changed, 46 insertions(+), 30 deletions(-)
1023
1024commit 2796bb4736f645d34939b5d62d5958f534e41e69
1025Author: Jia Tan <jiat0218@gmail.com>
1026Date:   2023-02-14 21:50:16 +0800
1027
1028    liblzma: Improve documentation in lzma12.h.
1029
1030    All functions now explicitly specify parameter and return values.
1031
1032 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
1033 1 file changed, 23 insertions(+), 9 deletions(-)
1034
1035commit ebebaa8d9381afea440eb1b01917117551adf68f
1036Author: Jia Tan <jiat0218@gmail.com>
1037Date:   2023-01-27 22:44:06 +0800
1038
1039    liblzma: Improve documentation in check.h.
1040
1041    All functions now explicitly specify parameter and return values.
1042    Also moved the note about SHA-256 functions not being exported to the
1043    top of the file.
1044
1045 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
1046 1 file changed, 28 insertions(+), 13 deletions(-)
1047
1048commit 765fa2865aab97ea713c1715922e322b3cf599a7
1049Author: Jia Tan <jiat0218@gmail.com>
1050Date:   2023-02-08 21:33:52 +0800
1051
1052    liblzma: Improve documentation in index.h
1053
1054    All functions now explicitly specify parameter and return values.
1055
1056 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
1057 1 file changed, 126 insertions(+), 51 deletions(-)
1058
1059commit 918e208af5960728b6def01e692b395f7d8e3701
1060Author: Jia Tan <jiat0218@gmail.com>
1061Date:   2023-02-08 20:35:32 +0800
1062
1063    liblzma: Reword a comment in index.h.
1064
1065 src/liblzma/api/lzma/index.h | 4 ++--
1066 1 file changed, 2 insertions(+), 2 deletions(-)
1067
1068commit 1f157d214bc09338876d2467b549935679abc0bf
1069Author: Jia Tan <jiat0218@gmail.com>
1070Date:   2023-02-08 20:30:23 +0800
1071
1072    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
1073
1074    Add \private above this field and its sub-fields since it is not meant
1075    to be modified by users.
1076
1077 src/liblzma/api/lzma/index.h | 9 ++++++++-
1078 1 file changed, 8 insertions(+), 1 deletion(-)
1079
1080commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc
1081Author: Jia Tan <jiat0218@gmail.com>
1082Date:   2023-01-21 21:32:03 +0800
1083
1084    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
1085
1086    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
1087    documentation after a member.
1088
1089 src/liblzma/api/lzma/base.h | 2 +-
1090 1 file changed, 1 insertion(+), 1 deletion(-)
1091
1092commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018
1093Author: Jia Tan <jiat0218@gmail.com>
1094Date:   2023-01-21 00:29:38 +0800
1095
1096    liblzma: Improve documentation for base.h.
1097
1098    Standardizing each function to always specify params and return values.
1099    Also fixed a small grammar mistake.
1100
1101 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
1102 1 file changed, 25 insertions(+), 5 deletions(-)
1103
1104commit 2287d5668384e289d51e72724997dc920483768e
1105Author: Jia Tan <jiat0218@gmail.com>
1106Date:   2023-02-14 00:08:33 +0800
1107
1108    liblzma: Minor improvements to vli.h.
1109
1110    Added [out] annotations to parameters that are pointers and can have
1111    their value changed. Also added a clarification to lzma_vli_is_valid.
1112
1113 src/liblzma/api/lzma/vli.h | 15 ++++++++-------
1114 1 file changed, 8 insertions(+), 7 deletions(-)
1115
1116commit 7124b8a16ae60cb2e93218ff531868eebd673bde
1117Author: Jia Tan <jiat0218@gmail.com>
1118Date:   2023-02-10 21:38:02 +0800
1119
1120    liblzma: Add comments for macros in delta.h.
1121
1122    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
1123    and to avoid Doxygen warnings.
1124
1125 src/liblzma/api/lzma/delta.h | 8 ++++++++
1126 1 file changed, 8 insertions(+)
1127
1128commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81
1129Author: Jia Tan <jiat0218@gmail.com>
1130Date:   2023-02-10 21:35:23 +0800
1131
1132    liblzma: Improve documentation in index_hash.h.
1133
1134    All functions now explicitly specify parameter and return values.
1135    Also reworded the description of lzma_index_hash_init() for readability.
1136
1137 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
1138 1 file changed, 27 insertions(+), 9 deletions(-)
1139
1140commit e970c28ac3cb2e8051925f81db2fe953664c2645
1141Author: Jia Tan <jiat0218@gmail.com>
1142Date:   2023-02-03 00:33:32 +0800
1143
1144    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
1145
1146    The bug is only a problem in applications that do not properly terminate
1147    the filters[] array with LZMA_VLI_UNKNOWN or have more than
1148    LZMA_FILTERS_MAX filters. This bug does not affect xz.
1149
1150 src/liblzma/common/string_conversion.c | 7 +++++++
1151 1 file changed, 7 insertions(+)
1152
1153commit 85e01266a96689448abb249da6c6abc3afcd4a4e
1154Author: Jia Tan <jiat0218@gmail.com>
1155Date:   2023-02-03 00:32:47 +0800
1156
1157    Tests: Create test_filter_str.c.
1158
1159    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
1160    lzma_str_list_filters() API functions.
1161
1162 CMakeLists.txt          |   1 +
1163 tests/Makefile.am       |   2 +
1164 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
1165 3 files changed, 596 insertions(+)
1166
1167commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a
1168Author: Jia Tan <jiat0218@gmail.com>
1169Date:   2023-01-22 08:49:00 +0800
1170
1171    liblzma: Fix typos in comments in string_conversion.c.
1172
1173 src/liblzma/common/string_conversion.c | 4 ++--
1174 1 file changed, 2 insertions(+), 2 deletions(-)
1175
1176commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e
1177Author: Jia Tan <jiat0218@gmail.com>
1178Date:   2023-02-03 00:20:20 +0800
1179
1180    liblzma: Clarify block encoder and decoder documentation.
1181
1182    Added a few sentences to the description for lzma_block_encoder() and
1183    lzma_block_decoder() to highlight that the Block Header must be coded
1184    before calling these functions.
1185
1186 src/liblzma/api/lzma/block.h | 15 +++++++++++----
1187 1 file changed, 11 insertions(+), 4 deletions(-)
1188
1189commit ccf12acbfa7331b1bbb99ec55879186eb35f879f
1190Author: Jia Tan <jiat0218@gmail.com>
1191Date:   2023-02-03 00:12:24 +0800
1192
1193    Update lzma_block documentation for lzma_block_uncomp_encode().
1194
1195 src/liblzma/api/lzma/block.h | 3 +++
1196 1 file changed, 3 insertions(+)
1197
1198commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24
1199Author: Jia Tan <jiat0218@gmail.com>
1200Date:   2023-02-03 00:11:37 +0800
1201
1202    liblzma: Minor edits to lzma_block header_size documentation.
1203
1204 src/liblzma/api/lzma/block.h | 3 ++-
1205 1 file changed, 2 insertions(+), 1 deletion(-)
1206
1207commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883
1208Author: Jia Tan <jiat0218@gmail.com>
1209Date:   2023-02-03 00:11:07 +0800
1210
1211    liblzma: Enumerate functions that read version in lzma_block.
1212
1213 src/liblzma/api/lzma/block.h | 13 +++++++++++--
1214 1 file changed, 11 insertions(+), 2 deletions(-)
1215
1216commit d6620774682830d606f57109861b6763805b3492
1217Author: Jia Tan <jiat0218@gmail.com>
1218Date:   2023-02-03 00:10:34 +0800
1219
1220    liblzma: Clarify comment in block.h.
1221
1222 src/liblzma/api/lzma/block.h | 3 ++-
1223 1 file changed, 2 insertions(+), 1 deletion(-)
1224
1225commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1
1226Author: Jia Tan <jiat0218@gmail.com>
1227Date:   2023-02-03 00:07:23 +0800
1228
1229    liblzma: Improve documentation for block.h.
1230
1231    Standardizing each function to always specify params and return values.
1232    Output pointer parameters are also marked with doxygen style [out] to
1233    make it clear. Any note sections were also moved above the parameter and
1234    return sections for consistency.
1235
1236 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
1237 1 file changed, 75 insertions(+), 21 deletions(-)
1238
1239commit b5b1b1f061c342271e4977ce5cba604a19c0ca52
1240Author: Jia Tan <jiat0218@gmail.com>
1241Date:   2023-02-01 23:38:30 +0800
1242
1243    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
1244
1245    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
1246    about the treatment for filters than cannot be used with .xz format
1247    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
1248    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
1249
1250 src/liblzma/api/lzma/filter.h | 5 +++--
1251 1 file changed, 3 insertions(+), 2 deletions(-)
1252
1253commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b
1254Author: Jia Tan <jiat0218@gmail.com>
1255Date:   2023-01-27 20:14:51 +0800
1256
1257    Translations: Add Brazilian Portuguese translation of man pages.
1258
1259    Thanks to Rafael Fontenelle.
1260
1261 po4a/po4a.conf |    2 +-
1262 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1263 2 files changed, 3678 insertions(+), 1 deletion(-)
1264
1265commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6
1266Author: Jia Tan <jiat0218@gmail.com>
1267Date:   2023-01-24 20:48:50 +0800
1268
1269    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
1270
1271    The previous documentation for lzma_str_to_filters() was technically
1272    correct, but misleading. lzma_str_to_filters() returns NULL on success,
1273    which is in practice always defined to 0. This is the same value as
1274    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
1275    be more clear.
1276
1277 src/liblzma/api/lzma/filter.h | 2 +-
1278 1 file changed, 1 insertion(+), 1 deletion(-)
1279
1280commit 99575947a58a60416c570eb78038d18a1ea4cef4
1281Author: Jia Tan <jiat0218@gmail.com>
1282Date:   2023-01-07 21:55:06 +0800
1283
1284    xz: Refactor duplicated check for custom suffix when using --format=raw
1285
1286 src/xz/args.c   |  8 ++++++++
1287 src/xz/suffix.c | 26 ++++++++------------------
1288 src/xz/suffix.h |  8 ++++++++
1289 3 files changed, 24 insertions(+), 18 deletions(-)
1290
1291commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad
1292Author: Jia Tan <jiat0218@gmail.com>
1293Date:   2023-01-20 21:53:14 +0800
1294
1295    liblzma: Set documentation on all reserved fields to private.
1296
1297    This prevents the reserved fields from being part of the generated
1298    Doxygen documentation.
1299
1300 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
1301 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
1302 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
1303 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
1304 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
1305 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
1306 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
1307 7 files changed, 173 insertions(+)
1308
1309commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8
1310Author: Jia Tan <jiat0218@gmail.com>
1311Date:   2022-12-21 23:59:43 +0800
1312
1313    liblzma: Highlight liblzma API headers should not be included directly.
1314
1315    This improves the generated Doxygen HTML files to better highlight
1316    how to properly use the liblzma API header files.
1317
1318 src/liblzma/api/lzma/base.h         | 5 +++--
1319 src/liblzma/api/lzma/bcj.h          | 5 +++--
1320 src/liblzma/api/lzma/block.h        | 5 +++--
1321 src/liblzma/api/lzma/check.h        | 5 +++--
1322 src/liblzma/api/lzma/container.h    | 5 +++--
1323 src/liblzma/api/lzma/delta.h        | 5 +++--
1324 src/liblzma/api/lzma/filter.h       | 5 +++--
1325 src/liblzma/api/lzma/hardware.h     | 5 +++--
1326 src/liblzma/api/lzma/index.h        | 5 +++--
1327 src/liblzma/api/lzma/index_hash.h   | 5 +++--
1328 src/liblzma/api/lzma/lzma12.h       | 5 +++--
1329 src/liblzma/api/lzma/stream_flags.h | 5 +++--
1330 src/liblzma/api/lzma/version.h      | 5 +++--
1331 src/liblzma/api/lzma/vli.h          | 5 +++--
1332 14 files changed, 42 insertions(+), 28 deletions(-)
1333
1334commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd
1335Author: Jia Tan <jiat0218@gmail.com>
1336Date:   2023-01-19 20:35:09 +0800
1337
1338    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
1339
1340    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
1341    to retrieve a function address. The proper way to do this is to cast the
1342    return value to the type of function pointer retrieved. Unfortunately,
1343    this causes a cast-function-type warning, so the best solution is to
1344    simply ignore the warning.
1345
1346 src/common/tuklib_physmem.c | 18 ++++++++++++++++++
1347 1 file changed, 18 insertions(+)
1348
1349commit 720ad4a44282a7ee59aa9920eaf495d85d245d97
1350Author: Jia Tan <jiat0218@gmail.com>
1351Date:   2023-01-16 21:35:45 +0800
1352
1353    xz: Add missing comment for coder_set_compression_settings()
1354
1355 src/xz/coder.h | 3 ++-
1356 1 file changed, 2 insertions(+), 1 deletion(-)
1357
1358commit 88dc19163421282369c0989e997c05f9a447edc6
1359Author: Jia Tan <jiat0218@gmail.com>
1360Date:   2023-01-16 20:55:10 +0800
1361
1362    xz: Do not set compression settings with raw format in list mode.
1363
1364    Calling coder_set_compression_settings() in list mode with verbose mode
1365    on caused the filter chain and memory requirements to print. This was
1366    unnecessary since the command results in an error and not consistent
1367    with other formats like lzma and alone.
1368
1369 src/xz/args.c | 3 ++-
1370 1 file changed, 2 insertions(+), 1 deletion(-)
1371
1372commit 039e0ab13efb144642f9d99eeeb9c668e76bb430
1373Author: Jia Tan <jiat0218@gmail.com>
1374Date:   2023-01-13 20:37:06 +0800
1375
1376    Translations: Update the Brazilian Portuguese translation.
1377
1378 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
1379 1 file changed, 344 insertions(+), 259 deletions(-)
1380
1381commit 718f7a60e740b26b8353965edaaddc7d4deb4d85
1382Author: Lasse Collin <lasse.collin@tukaani.org>
1383Date:   2023-01-12 13:04:05 +0200
1384
1385    Build: Omit -Wmissing-noreturn from the default warnings.
1386
1387    It's not that important. It can be annoying in builds that
1388    disable many features since in those cases the tests programs
1389    will correctly trigger this warning with Clang.
1390
1391 configure.ac | 1 -
1392 1 file changed, 1 deletion(-)
1393
1394commit 3ccedb09724c998c39d708c945f6da5852c39e13
1395Author: Lasse Collin <lasse.collin@tukaani.org>
1396Date:   2023-01-12 06:05:58 +0200
1397
1398    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
1399
1400    It makes no difference here as the return value fits into an int
1401    too and it then gets ignored but this looks better.
1402
1403 src/xz/file_io.c | 2 +-
1404 1 file changed, 1 insertion(+), 1 deletion(-)
1405
1406commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019
1407Author: Lasse Collin <lasse.collin@tukaani.org>
1408Date:   2023-01-12 06:01:12 +0200
1409
1410    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
1411
1412 src/common/tuklib_mbstr_fw.c | 2 +-
1413 src/xz/list.c                | 4 ++--
1414 2 files changed, 3 insertions(+), 3 deletions(-)
1415
1416commit 683d3f178ef1487b5418be49f331b0131a101b40
1417Author: Lasse Collin <lasse.collin@tukaani.org>
1418Date:   2023-01-12 05:38:48 +0200
1419
1420    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
1421
1422    It doesn't warn on a 64-bit system because truncating
1423    a ptrdiff_t (signed long) to uint32_t is diagnosed under
1424    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
1425
1426 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
1427 1 file changed, 4 insertions(+), 3 deletions(-)
1428
1429commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15
1430Author: Lasse Collin <lasse.collin@tukaani.org>
1431Date:   2023-01-12 04:46:45 +0200
1432
1433    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
1434
1435 src/common/mythread.h | 4 ++--
1436 1 file changed, 2 insertions(+), 2 deletions(-)
1437
1438commit b16b9c0d22227012518595c2222facc73bd833a8
1439Author: Lasse Collin <lasse.collin@tukaani.org>
1440Date:   2023-01-12 04:17:24 +0200
1441
1442    Build: Make configure add more warning flags for GCC and Clang.
1443
1444    -Wstrict-aliasing was removed from the list since it is enabled
1445    by -Wall already.
1446
1447    A normal build is clean with these on GNU/Linux x86-64 with
1448    GCC 12.2.0 and Clang 14.0.6.
1449
1450 configure.ac | 36 +++++++++++++++++++++++++++++++-----
1451 1 file changed, 31 insertions(+), 5 deletions(-)
1452
1453commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94
1454Author: Lasse Collin <lasse.collin@tukaani.org>
1455Date:   2023-01-12 04:14:18 +0200
1456
1457    Tests: Fix warnings from clang --Wassign-enum.
1458
1459    Explicitly casting the integer to lzma_check silences the warning.
1460    Since such an invalid value is needed in multiple tests, a constant
1461    INVALID_LZMA_CHECK_ID was added to tests.h.
1462
1463    The use of 0x1000 for lzma_block.check wasn't optimal as if
1464    the underlying type is a char then 0x1000 will be truncated to 0.
1465    However, in these test cases the value is ignored, thus even with
1466    such truncation the test would have passed.
1467
1468 tests/test_block_header.c | 6 +++---
1469 tests/test_check.c        | 2 +-
1470 tests/test_stream_flags.c | 8 ++++----
1471 tests/tests.h             | 9 +++++++++
1472 4 files changed, 17 insertions(+), 8 deletions(-)
1473
1474commit 34e13ce015232968731de2a9ec3440a08b0084b1
1475Author: Lasse Collin <lasse.collin@tukaani.org>
1476Date:   2023-01-12 03:51:07 +0200
1477
1478    Tests: Silence warnings from -Wsign-conversion.
1479
1480    Note that assigning an unsigned int to lzma_check doesn't warn
1481    on GNU/Linux x86-64 since the enum type is unsigned on that
1482    platform. The enum can be signed on some other platform though
1483    so it's best to use enumeration type lzma_check in these situations.
1484
1485 tests/test_check.c        |  6 +++---
1486 tests/test_stream_flags.c | 10 +++++-----
1487 2 files changed, 8 insertions(+), 8 deletions(-)
1488
1489commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a
1490Author: Lasse Collin <lasse.collin@tukaani.org>
1491Date:   2023-01-12 03:19:59 +0200
1492
1493    liblzma: Silence warnings from clang -Wconditional-uninitialized.
1494
1495    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
1496    The actual initialization of the variables is done inside
1497    mythread_sync() macro. Clang doesn't seem to see that
1498    the initialization code inside the macro is always executed.
1499
1500 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
1501 src/liblzma/common/stream_encoder_mt.c | 2 +-
1502 2 files changed, 6 insertions(+), 4 deletions(-)
1503
1504commit d3e833ca1d2abda54648494c33aca73a40a47efe
1505Author: Lasse Collin <lasse.collin@tukaani.org>
1506Date:   2023-01-12 03:11:40 +0200
1507
1508    Fix warnings from clang -Wdocumentation.
1509
1510 src/liblzma/check/check.h      | 4 ----
1511 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
1512 src/xz/options.c               | 4 ++--
1513 3 files changed, 4 insertions(+), 8 deletions(-)
1514
1515commit 977dd2e26bc50efec8d30fb90380394042d24558
1516Author: Lasse Collin <lasse.collin@tukaani.org>
1517Date:   2023-01-12 03:04:28 +0200
1518
1519    Tests: test_lzip_decoder: Remove trailing white-space.
1520
1521 tests/test_lzip_decoder.c | 4 ++--
1522 1 file changed, 2 insertions(+), 2 deletions(-)
1523
1524commit c55157ed7437ab14f2afb7fecf331e321f2edf9a
1525Author: Lasse Collin <lasse.collin@tukaani.org>
1526Date:   2023-01-12 03:03:55 +0200
1527
1528    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
1529
1530 tests/test_lzip_decoder.c | 13 +++++++------
1531 1 file changed, 7 insertions(+), 6 deletions(-)
1532
1533commit 18b845e69752c975dfeda418ec00eda22605c2ee
1534Author: Lasse Collin <lasse.collin@tukaani.org>
1535Date:   2023-01-11 18:52:54 +0200
1536
1537    Bump version and soname for 5.4.1.
1538
1539 src/liblzma/Makefile.am        | 2 +-
1540 src/liblzma/api/lzma/version.h | 2 +-
1541 2 files changed, 2 insertions(+), 2 deletions(-)
1542
1543commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
1544Author: Jia Tan <jiat0218@gmail.com>
1545Date:   2023-01-11 23:58:16 +0800
1546
1547    Add NEWS for 5.4.1.
1548
1549 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1550 1 file changed, 70 insertions(+)
1551
1552commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
1553Author: Lasse Collin <lasse.collin@tukaani.org>
1554Date:   2023-01-10 11:56:11 +0200
1555
1556    sysdefs.h: Don't include strings.h anymore.
1557
1558    On some platforms src/xz/suffix.c may need <strings.h> for
1559    strcasecmp() but suffix.c includes the header when it needs it.
1560
1561    Unless there is an old system that otherwise supports enough C99
1562    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
1563    there should be no need to include <strings.h> in sysdefs.h.
1564
1565 src/common/sysdefs.h | 6 ------
1566 1 file changed, 6 deletions(-)
1567
1568commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
1569Author: Lasse Collin <lasse.collin@tukaani.org>
1570Date:   2023-01-10 11:23:41 +0200
1571
1572    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
1573
1574    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
1575    Of these, strcasecmp() is used on some platforms in suffix.c.
1576    Nothing else in the project needs <strings.h> (at least if
1577    building on a modern system).
1578
1579    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
1580    defined and suffix.c relied on this.
1581
1582    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
1583    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
1584    is also in <string.h> in DJGPP.
1585
1586 src/xz/suffix.c | 3 +++
1587 1 file changed, 3 insertions(+)
1588
1589commit aea639e81beb548e3114c74b6d9a894d6e036189
1590Author: Jia Tan <jiat0218@gmail.com>
1591Date:   2023-01-11 22:46:48 +0800
1592
1593    xz: Fix warning -Wformat-nonliteral on clang in message.c.
1594
1595    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
1596    allow a non-literal format string as long as the function takes its
1597    format arguments as a va_list.
1598
1599 src/xz/message.c | 9 +++++++++
1600 1 file changed, 9 insertions(+)
1601
1602commit e3b42bfcb0f67988beee7c7022fed0361282be45
1603Author: Jia Tan <jiat0218@gmail.com>
1604Date:   2023-01-11 20:58:31 +0800
1605
1606    Tests: Fix test_filter_flags copy/paste error.
1607
1608 tests/test_filter_flags.c | 4 ++--
1609 1 file changed, 2 insertions(+), 2 deletions(-)
1610
1611commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
1612Author: Jia Tan <jiat0218@gmail.com>
1613Date:   2023-01-11 20:42:29 +0800
1614
1615    Tests: Fix type-limits warning in test_filter_flags.
1616
1617    This only occurs in test_filter_flags when the BCJ filters are not
1618    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
1619    type-limits warning with the loop variable since an unsigned number will
1620    always be >= 0.
1621
1622 tests/test_filter_flags.c | 13 ++++++++++---
1623 1 file changed, 10 insertions(+), 3 deletions(-)
1624
1625commit c337983e928682d56ce3470b286a8d5b8646e0ad
1626Author: Lasse Collin <lasse.collin@tukaani.org>
1627Date:   2023-01-10 22:14:03 +0200
1628
1629    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
1630
1631    This affects only 32-bit x86 builds. x86-64 is OK as is.
1632
1633    I still cannot easily test this myself. The reporter has tested
1634    this and it passes the tests included in the CMake build and
1635    performance is good: raw CRC64 is 2-3 times faster than the
1636    C version of the slice-by-four method. (Note that liblzma doesn't
1637    include a MSVC-compatible version of the 32-bit x86 assembly code
1638    for the slice-by-four method.)
1639
1640    Thanks to Iouri Kharon for figuring out a fix, testing, and
1641    benchmarking.
1642
1643 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
1644 1 file changed, 18 insertions(+)
1645
1646commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
1647Author: Jia Tan <jiat0218@gmail.com>
1648Date:   2023-01-11 01:18:50 +0800
1649
1650    Tests: Fix unused function warning in test_block_header.
1651
1652    One of the global arrays of filters was only used in a test that
1653    required both encoders and decoders to be configured in the build.
1654
1655 tests/test_block_header.c | 4 ++++
1656 1 file changed, 4 insertions(+)
1657
1658commit 68e9ef036d18d7c3952bff0b391d5989b86934da
1659Author: Jia Tan <jiat0218@gmail.com>
1660Date:   2023-01-11 01:08:03 +0800
1661
1662    Tests: Fix unused function warning in test_index_hash.
1663
1664    test_index_hash does not use fill_index_hash() unless both encoders
1665    and decoders are configured in the build.
1666
1667 tests/test_index_hash.c | 4 +---
1668 1 file changed, 1 insertion(+), 3 deletions(-)
1669
1670commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
1671Author: Lasse Collin <lasse.collin@tukaani.org>
1672Date:   2023-01-10 00:33:14 +0200
1673
1674    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
1675
1676 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
1677 1 file changed, 12 insertions(+), 7 deletions(-)
1678
1679commit 52902ad69518255a14b0144f0a2379e06fde5b6e
1680Author: Lasse Collin <lasse.collin@tukaani.org>
1681Date:   2023-01-10 12:47:16 +0200
1682
1683    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
1684
1685    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
1686
1687    It was reported that it wasn't a good enough fix and MSVC
1688    still produced (different kind of) bad code when building
1689    for 32-bit x86 if optimizations are enabled.
1690
1691    Thanks to Iouri Kharon.
1692
1693 src/liblzma/check/crc64_fast.c | 6 ------
1694 1 file changed, 6 deletions(-)
1695
1696commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
1697Author: Lasse Collin <lasse.collin@tukaani.org>
1698Date:   2023-01-10 10:05:13 +0200
1699
1700    sysdefs.h: Fix a comment.
1701
1702 src/common/sysdefs.h | 2 +-
1703 1 file changed, 1 insertion(+), 1 deletion(-)
1704
1705commit 6e89ab58b031aa046308a0b3504ff0a5be042571
1706Author: Lasse Collin <lasse.collin@tukaani.org>
1707Date:   2023-01-10 10:04:06 +0200
1708
1709    sysdefs.h: Don't include memory.h anymore even if it were available.
1710
1711    It quite probably was never needed, that is, any system where memory.h
1712    was required likely couldn't compile XZ Utils for other reasons anyway.
1713
1714    XZ Utils 5.2.6 and later source packages were generated using
1715    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
1716    being removed is no longer used anyway.
1717
1718 src/common/sysdefs.h | 8 ++------
1719 1 file changed, 2 insertions(+), 6 deletions(-)
1720
1721commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
1722Author: Lasse Collin <lasse.collin@tukaani.org>
1723Date:   2023-01-10 08:50:26 +0200
1724
1725    CMake/Windows: Add a workaround for windres from GNU binutils.
1726
1727    This is combined from the following commits in the master branch:
1728    443dfebced041adc88f10d824188eeef5b5821a9
1729    6b117d3b1fe91eb26d533ab16a2e552f84148d47
1730    5e34774c31d1b7509b5cb77a3be9973adec59ea0
1731
1732    Thanks to Iouri Kharon for the bug report, the original patch,
1733    and testing.
1734
1735 CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
1736 1 file changed, 31 insertions(+), 1 deletion(-)
1737
1738commit 43521e77acc907863fa4f94aae276366172cb9ee
1739Author: Lasse Collin <lasse.collin@tukaani.org>
1740Date:   2023-01-06 22:53:38 +0200
1741
1742    Tests: test_filter_flags: Clean up minor issues.
1743
1744    Here are the list of the most significant issues addressed:
1745    - Avoid using internal common.h header. It's not good to copy the
1746    constants like this but common.h cannot be included for use outside
1747    of liblzma. This is the quickest thing to do that could be fixed later.
1748
1749    - Omit the INIT_FILTER macro. Initialization should be done with just
1750    regular designated initializers.
1751
1752    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
1753    Flags encoder and decoder don't validate the options thoroughly.
1754    257 is valid only for the x86 filter. This is a bit silly but
1755    not a significant problem in practice because the encoder and
1756    decoder initialization functions will catch bad alignment still.
1757    Perhaps this should be fixed but it's not urgent and doesn't need
1758    to be in 5.4.x.
1759
1760    - Various tweaks to comments such as filter id -> Filter ID
1761
1762 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
1763 1 file changed, 78 insertions(+), 75 deletions(-)
1764
1765commit 6b44cead95d767414272dc3a67898a36bfdf95b3
1766Author: Jia Tan <jiat0218@gmail.com>
1767Date:   2022-12-29 23:33:33 +0800
1768
1769    Tests: Refactors existing filter flags tests.
1770
1771    Converts the existing filter flags tests into tuktests.
1772
1773 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
1774 1 file changed, 457 insertions(+), 198 deletions(-)
1775
1776commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
1777Author: Lasse Collin <lasse.collin@tukaani.org>
1778Date:   2023-01-08 00:32:29 +0200
1779
1780    Tests: tuktest.h: Support tuktest_malloc(0).
1781
1782    It's not needed in XZ Utils at least for now. It's good to support
1783    it still because if such use is needed later, it wouldn't be
1784    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
1785
1786 tests/tuktest.h | 4 ++--
1787 1 file changed, 2 insertions(+), 2 deletions(-)
1788
1789commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
1790Author: Lasse Collin <lasse.collin@tukaani.org>
1791Date:   2023-01-07 21:57:11 +0200
1792
1793    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
1794
1795    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
1796    shouldn't affect this project.
1797
1798 CMakeLists.txt | 2 +-
1799 1 file changed, 1 insertion(+), 1 deletion(-)
1800
1801commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
1802Author: Lasse Collin <lasse.collin@tukaani.org>
1803Date:   2023-01-08 00:24:23 +0200
1804
1805    Update THANKS.
1806
1807 THANKS | 1 +
1808 1 file changed, 1 insertion(+)
1809
1810commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
1811Author: Lasse Collin <lasse.collin@tukaani.org>
1812Date:   2023-01-07 19:50:35 +0200
1813
1814    Update THANKS.
1815
1816 THANKS | 1 +
1817 1 file changed, 1 insertion(+)
1818
1819commit 3d45987451b1c3bb42697b29341824c0e5484cba
1820Author: Lasse Collin <lasse.collin@tukaani.org>
1821Date:   2023-01-09 11:27:24 +0200
1822
1823    CMake: Fix a copypaste error in xzdec Windows resource file handling.
1824
1825    It was my mistake. Thanks to Iouri Kharon for the bug report.
1826
1827 CMakeLists.txt | 4 ++--
1828 1 file changed, 2 insertions(+), 2 deletions(-)
1829
1830commit 706bce5018d7cf83094e13454a0731169ec119b5
1831Author: Lasse Collin <lasse.collin@tukaani.org>
1832Date:   2023-01-07 19:50:03 +0200
1833
1834    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
1835
1836    The command line tools cannot be built with MSVC for now but
1837    they can be built with MinGW-w64.
1838
1839    Thanks to Iouri Kharon for the bug report and the original patch.
1840
1841 CMakeLists.txt | 16 ++++++++++++++++
1842 1 file changed, 16 insertions(+)
1843
1844commit e96dee55df04113c33b387ccdb6cb70935422d91
1845Author: Lasse Collin <lasse.collin@tukaani.org>
1846Date:   2023-01-09 12:22:05 +0200
1847
1848    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
1849
1850    I haven't tested with MSVC myself and there doesn't seem to be
1851    information about the problem online, so I'm relying on the bug report.
1852
1853    Thanks to Iouri Kharon for the bug report and the patch.
1854
1855 src/liblzma/check/crc64_fast.c | 6 ++++++
1856 1 file changed, 6 insertions(+)
1857
1858commit 52bc1ee34dda9bb6fb40175e5952863066681b77
1859Author: Lasse Collin <lasse.collin@tukaani.org>
1860Date:   2023-01-07 19:31:15 +0200
1861
1862    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
1863
1864    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
1865    disabled with VS2013.
1866
1867    Thanks to Iouri Kharon for the bug report.
1868
1869 CMakeLists.txt | 3 ++-
1870 configure.ac   | 8 ++++++--
1871 2 files changed, 8 insertions(+), 3 deletions(-)
1872
1873commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
1874Author: Jia Tan <jiat0218@gmail.com>
1875Date:   2022-12-29 00:25:18 +0800
1876
1877    Tests: Creates test_index_hash.c
1878
1879    Tests all API functions exported from index_hash.h. Does not have a
1880    dedicated test for lzma_index_hash_end.
1881
1882    [Minor edits were made by Lasse Collin.]
1883
1884 .gitignore              |   1 +
1885 CMakeLists.txt          |   2 +
1886 tests/Makefile.am       |   3 +
1887 tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
1888 4 files changed, 394 insertions(+)
1889
1890commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
1891Author: Jia Tan <jiat0218@gmail.com>
1892Date:   2023-01-05 20:57:25 +0800
1893
1894    liblzma: Remove common.h include from common/index.h.
1895
1896    common/index.h is needed by liblzma internally and tests. common.h will
1897    include and define many things that are not needed by the tests.
1898
1899    Also, this prevents include order problems because both common.h and
1900    lzma.h define LZMA_API. On most platforms it results only in a warning
1901    but on Windows it would break the build as the definition in common.h
1902    must be used only for building liblzma itself.
1903
1904 src/liblzma/common/index.c                 | 1 +
1905 src/liblzma/common/index.h                 | 9 +++++++--
1906 src/liblzma/common/index_decoder.h         | 1 +
1907 src/liblzma/common/stream_buffer_encoder.c | 1 +
1908 4 files changed, 10 insertions(+), 2 deletions(-)
1909
1910commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
1911Author: Jia Tan <jiat0218@gmail.com>
1912Date:   2022-08-17 20:20:16 +0800
1913
1914    liblzma: Add NULL check to lzma_index_hash_append.
1915
1916    This is for consistency with lzma_index_append.
1917
1918 src/liblzma/common/index_hash.c | 2 +-
1919 1 file changed, 1 insertion(+), 1 deletion(-)
1920
1921commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
1922Author: Jia Tan <jiat0218@gmail.com>
1923Date:   2022-08-17 17:59:51 +0800
1924
1925    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
1926
1927 src/liblzma/common/index.h             | 3 +++
1928 src/liblzma/common/index_decoder.c     | 2 +-
1929 src/liblzma/common/index_encoder.c     | 2 +-
1930 src/liblzma/common/index_hash.c        | 2 +-
1931 src/liblzma/common/stream_decoder.c    | 3 ++-
1932 src/liblzma/common/stream_decoder_mt.c | 2 +-
1933 6 files changed, 9 insertions(+), 5 deletions(-)
1934
1935commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
1936Author: Jia Tan <jiat0218@gmail.com>
1937Date:   2023-01-06 20:43:31 +0800
1938
1939    Style: Change #if !defined() to #ifndef in mythread.h.
1940
1941 src/common/mythread.h | 2 +-
1942 1 file changed, 1 insertion(+), 1 deletion(-)
1943
1944commit 3f0130aa288e4ed57ace609517db9700a41223af
1945Author: Jia Tan <jiat0218@gmail.com>
1946Date:   2023-01-06 20:35:55 +0800
1947
1948    Build: Add missing stream_decoder_mt.c to .vcxproj files.
1949
1950    The line in the .vcxproj files for building with was missing in 5.4.0.
1951    Thank to Hajin Jang for reporting the issue.
1952
1953 windows/vs2013/liblzma.vcxproj     | 1 +
1954 windows/vs2013/liblzma_dll.vcxproj | 1 +
1955 windows/vs2017/liblzma.vcxproj     | 1 +
1956 windows/vs2017/liblzma_dll.vcxproj | 1 +
1957 windows/vs2019/liblzma.vcxproj     | 1 +
1958 windows/vs2019/liblzma_dll.vcxproj | 1 +
1959 6 files changed, 6 insertions(+)
1960
1961commit f204d1050a515d17851eed9049862ce5a9c729c1
1962Author: Lasse Collin <lasse.collin@tukaani.org>
1963Date:   2023-01-04 22:40:54 +0200
1964
1965    Update THANKS.
1966
1967 THANKS | 1 +
1968 1 file changed, 1 insertion(+)
1969
1970commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
1971Author: Lasse Collin <lasse.collin@tukaani.org>
1972Date:   2023-01-04 18:40:28 +0200
1973
1974    Tests: Adjust style in test_compress.sh.
1975
1976 tests/test_compress.sh | 12 +++++++-----
1977 1 file changed, 7 insertions(+), 5 deletions(-)
1978
1979commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
1980Author: Jia Tan <jiat0218@gmail.com>
1981Date:   2023-01-04 23:58:58 +0800
1982
1983    Tests: Replace non portable shell parameter expansion
1984
1985    The shell parameter expansion using # and ## is not supported in
1986    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
1987    portable, so we should avoid it.
1988
1989 tests/create_compress_files.c          |  2 +-
1990 tests/test_compress.sh                 | 20 +++++++++++++-------
1991 tests/test_compress_prepared_bcj_sparc |  2 +-
1992 tests/test_compress_prepared_bcj_x86   |  2 +-
1993 4 files changed, 16 insertions(+), 10 deletions(-)
1994
1995commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
1996Author: Jia Tan <jiat0218@gmail.com>
1997Date:   2023-01-03 21:02:38 +0800
1998
1999    Translations: Add Korean translation of man pages.
2000
2001    Thanks to Seong-ho Cho
2002
2003 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2004 po4a/po4a.conf |    2 +-
2005 2 files changed, 5553 insertions(+), 1 deletion(-)
2006
2007commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
2008Author: Jia Tan <jiat0218@gmail.com>
2009Date:   2023-01-03 20:47:27 +0800
2010
2011    Translations: Update the Esperanto translation.
2012
2013 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
2014 1 file changed, 332 insertions(+), 288 deletions(-)
2015
2016commit bfba3394aed03311fe9a746d3141b2e16d8b9325
2017Author: Lasse Collin <lasse.collin@tukaani.org>
2018Date:   2023-01-02 17:05:07 +0200
2019
2020    Build: Fix config.h comments.
2021
2022 configure.ac          | 2 +-
2023 m4/tuklib_progname.m4 | 2 +-
2024 2 files changed, 2 insertions(+), 2 deletions(-)
2025
2026commit 507648ad114c2ae0cd6d181063e1ac07e8106718
2027Author: Jia Tan <jiat0218@gmail.com>
2028Date:   2023-01-02 22:33:48 +0800
2029
2030    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
2031
2032    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
2033    HAVE_PROGRAM_INVOCATION_NAME. Previously,
2034    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
2035    building with autotools. CMake would only set this when it was 1, and the
2036    dos/config.h did not define it. The new macro definition is consistent
2037    across build systems.
2038
2039 cmake/tuklib_progname.cmake  | 5 ++---
2040 m4/tuklib_progname.m4        | 5 ++++-
2041 src/common/tuklib_progname.c | 2 +-
2042 src/common/tuklib_progname.h | 2 +-
2043 4 files changed, 8 insertions(+), 6 deletions(-)
2044
2045commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
2046Author: Lasse Collin <lasse.collin@tukaani.org>
2047Date:   2022-12-30 20:10:08 +0200
2048
2049    Tests: test_check: Test corner cases of CLMUL CRC64.
2050
2051 tests/test_check.c | 27 +++++++++++++++++++++++++++
2052 1 file changed, 27 insertions(+)
2053
2054commit 8791826f31733fda0a13b411c2ed930faaeb25aa
2055Author: Lasse Collin <lasse.collin@tukaani.org>
2056Date:   2022-12-30 19:36:49 +0200
2057
2058    Tests: Clarify a comment in test_lzip_decoder.c.
2059
2060 tests/test_lzip_decoder.c | 8 ++++++--
2061 1 file changed, 6 insertions(+), 2 deletions(-)
2062
2063commit c410d812ea12bfc74f6b727c1a799478c79f19ca
2064Author: Jia Tan <jiat0218@gmail.com>
2065Date:   2022-12-29 01:55:19 +0800
2066
2067    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
2068
2069    Previously, mytime.c depended on mythread.h for <time.h> to be included.
2070
2071 src/xz/mytime.c | 4 +++-
2072 1 file changed, 3 insertions(+), 1 deletion(-)
2073
2074commit 501c6013d4a59fae5d4368e9657c4885493db809
2075Author: Jia Tan <jiat0218@gmail.com>
2076Date:   2022-12-29 01:15:27 +0800
2077
2078    liblzma: Includes sys/time.h conditionally in mythread
2079
2080    Previously, <sys/time.h> was always included, even if mythread only used
2081    clock_gettime. <time.h> is still needed even if clock_gettime is not used
2082    though because struct timespec is needed for mythread_condtime.
2083
2084 src/common/mythread.h | 8 +++++++-
2085 1 file changed, 7 insertions(+), 1 deletion(-)
2086
2087commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
2088Author: Jia Tan <jiat0218@gmail.com>
2089Date:   2022-12-29 01:10:53 +0800
2090
2091    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
2092
2093    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
2094    be set to 0 or 1. However, this macro was needed in xz so if xz was not
2095    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
2096    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
2097    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
2098    will only be set if it is 1.
2099
2100 CMakeLists.txt        | 8 +++-----
2101 configure.ac          | 5 ++++-
2102 src/common/mythread.h | 4 ++--
2103 src/xz/mytime.c       | 5 ++---
2104 4 files changed, 11 insertions(+), 11 deletions(-)
2105
2106commit 6fc3e5467911572fa9af4021ea46396261aae796
2107Author: Jia Tan <jiat0218@gmail.com>
2108Date:   2022-12-28 01:14:07 +0800
2109
2110    Translations: Add Ukrainian translations of man pages.
2111
2112    Thanks to Yuri Chornoivan
2113
2114 po4a/po4a.conf |    2 +-
2115 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2116 2 files changed, 3677 insertions(+), 1 deletion(-)
2117
2118commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
2119Author: Jia Tan <jiat0218@gmail.com>
2120Date:   2022-12-22 23:14:53 +0800
2121
2122    liblzma: Update documentation for lzma_filter_encoder.
2123
2124 src/liblzma/common/filter_encoder.c | 7 +++++--
2125 1 file changed, 5 insertions(+), 2 deletions(-)
2126
2127commit b14b8dbba9a3b232787ae218b46430b9246383dd
2128Author: Jia Tan <jiat0218@gmail.com>
2129Date:   2022-12-21 21:12:03 +0800
2130
2131    Tests: Adds lzip decoder tests
2132
2133 .gitignore                |   1 +
2134 tests/Makefile.am         |   2 +
2135 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
2136 3 files changed, 474 insertions(+)
2137
2138commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
2139Author: Jia Cheong Tan <jiat0218@gmail.com>
2140Date:   2022-12-20 22:05:21 +0800
2141
2142    Doxygen: Update .gitignore for generating docs for in source build.
2143
2144    In source builds are not recommended, but we should still ignore
2145    the generated artifacts.
2146
2147 .gitignore | 2 ++
2148 1 file changed, 2 insertions(+)
2149
2150commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
2151Author: Jia Tan <jiat0218@gmail.com>
2152Date:   2022-12-20 20:46:44 +0800
2153
2154    liblzma: Fix lzma_microlzma_encoder() return value.
2155
2156    Using return_if_error on lzma_lzma_lclppb_encode was improper because
2157    return_if_error is expecting an lzma_ret value, but
2158    lzma_lzma_lclppb_encode returns a boolean. This could result in
2159    lzma_microlzma_encoder, which would be misleading for applications.
2160
2161 src/liblzma/common/microlzma_encoder.c | 3 ++-
2162 1 file changed, 2 insertions(+), 1 deletion(-)
2163
2164commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
2165Author: Lasse Collin <lasse.collin@tukaani.org>
2166Date:   2022-12-16 18:30:02 +0200
2167
2168    liblzma: Update authors list in arm64.c.
2169
2170 src/liblzma/simple/arm64.c | 1 +
2171 1 file changed, 1 insertion(+)
2172
2173commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
2174Author: Jia Tan <jiat0218@gmail.com>
2175Date:   2022-12-16 20:58:55 +0800
2176
2177    CMake: Update .gitignore for CMake artifacts from in source build.
2178
2179    In source builds are not recommended, but we can make it easier
2180    by ignoring the generated artifacts from CMake.
2181
2182 .gitignore | 23 +++++++++++++++++++++++
2183 1 file changed, 23 insertions(+)
2184
2185commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
2186Author: Lasse Collin <lasse.collin@tukaani.org>
2187Date:   2022-12-13 20:37:17 +0200
2188
2189    Bump version to 5.4.0 and soname to 5.4.0.
2190
2191 src/liblzma/Makefile.am         | 2 +-
2192 src/liblzma/api/lzma/version.h  | 6 +++---
2193 src/liblzma/liblzma_generic.map | 2 +-
2194 src/liblzma/liblzma_linux.map   | 2 +-
2195 4 files changed, 6 insertions(+), 6 deletions(-)
2196
2197commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
2198Author: Lasse Collin <lasse.collin@tukaani.org>
2199Date:   2022-12-13 20:29:39 +0200
2200
2201    Update INSTALL: CMake on Windows isn't experimental anymore.
2202
2203    Using CMake to build liblzma should work on a few other OSes
2204    but building the command line tools is still subtly broken.
2205
2206    It is known that shared library versioning may differ between
2207    CMake and Libtool builds on some OSes, most notably Darwin.
2208
2209 INSTALL | 10 ++++------
2210 1 file changed, 4 insertions(+), 6 deletions(-)
2211
2212commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
2213Author: Lasse Collin <lasse.collin@tukaani.org>
2214Date:   2022-12-13 19:47:53 +0200
2215
2216    Add NEWS for 5.4.0.
2217
2218 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2219 1 file changed, 202 insertions(+)
2220
2221commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
2222Author: Lasse Collin <lasse.collin@tukaani.org>
2223Date:   2022-12-13 17:41:20 +0200
2224
2225    Fix a typo in NEWS.
2226
2227 NEWS | 2 +-
2228 1 file changed, 1 insertion(+), 1 deletion(-)
2229
2230commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
2231Author: Lasse Collin <lasse.collin@tukaani.org>
2232Date:   2022-12-13 17:41:03 +0200
2233
2234    Add NEWS for 5.2.10.
2235
2236 NEWS | 12 ++++++++++++
2237 1 file changed, 12 insertions(+)
2238
2239commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
2240Author: Lasse Collin <lasse.collin@tukaani.org>
2241Date:   2022-12-13 12:30:45 +0200
2242
2243    Tests: Fix a typo in tests/files/README.
2244
2245 tests/files/README | 2 +-
2246 1 file changed, 1 insertion(+), 1 deletion(-)
2247
2248commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
2249Author: Lasse Collin <lasse.collin@tukaani.org>
2250Date:   2022-12-13 12:30:09 +0200
2251
2252    Tests: Add two ARM64 test files.
2253
2254 tests/files/README                  |   7 +++++++
2255 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes
2256 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes
2257 tests/test_files.sh                 |   5 +++++
2258 4 files changed, 12 insertions(+)
2259
2260commit f5e419550619c548c7c35d7e367cf00580a56521
2261Author: Lasse Collin <lasse.collin@tukaani.org>
2262Date:   2022-12-12 22:44:21 +0200
2263
2264    Translations: Update the Catalan translation.
2265
2266 po/ca.po | 657 +++++++++++++++++++++++++++++----------------------------------
2267 1 file changed, 306 insertions(+), 351 deletions(-)
2268
2269commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
2270Author: Lasse Collin <lasse.collin@tukaani.org>
2271Date:   2022-12-12 19:18:12 +0200
2272
2273    Update THANKS.
2274
2275 THANKS | 1 +
2276 1 file changed, 1 insertion(+)
2277
2278commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
2279Author: Lasse Collin <lasse.collin@tukaani.org>
2280Date:   2022-12-12 19:07:58 +0200
2281
2282    Update AUTHORS.
2283
2284 AUTHORS | 12 ++++++++++++
2285 1 file changed, 12 insertions(+)
2286
2287commit f2d98e691099d82054d5f3071ef6f5e809932e44
2288Author: Lasse Collin <lasse.collin@tukaani.org>
2289Date:   2022-12-12 15:31:14 +0200
2290
2291    Docs: Omit multi-threaded decompress from TODO.
2292
2293    The TODO file outdated still.
2294
2295 TODO | 2 --
2296 1 file changed, 2 deletions(-)
2297
2298commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
2299Author: Lasse Collin <lasse.collin@tukaani.org>
2300Date:   2022-12-11 21:16:09 +0200
2301
2302    Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
2303
2304 doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
2305 1 file changed, 22 insertions(+), 7 deletions(-)
2306
2307commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
2308Author: Lasse Collin <lasse.collin@tukaani.org>
2309Date:   2022-12-11 21:13:57 +0200
2310
2311    xz: Rename --experimental-arm64 to --arm64.
2312
2313 src/xz/args.c | 2 +-
2314 1 file changed, 1 insertion(+), 1 deletion(-)
2315
2316commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
2317Author: Lasse Collin <lasse.collin@tukaani.org>
2318Date:   2022-12-11 21:13:06 +0200
2319
2320    liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
2321
2322 src/liblzma/api/lzma/bcj.h | 6 +-----
2323 1 file changed, 1 insertion(+), 5 deletions(-)
2324
2325commit 01b3549e523edac899ec4925b282ceddd20da116
2326Author: Lasse Collin <lasse.collin@tukaani.org>
2327Date:   2022-12-08 19:24:22 +0200
2328
2329    xz: Make args_info.files_name a const pointer.
2330
2331 src/xz/args.c | 2 +-
2332 src/xz/args.h | 2 +-
2333 2 files changed, 2 insertions(+), 2 deletions(-)
2334
2335commit bc665b84ea6bf7946394a08122177efe41b26a5f
2336Author: Lasse Collin <lasse.collin@tukaani.org>
2337Date:   2022-12-08 19:18:16 +0200
2338
2339    xz: Don't modify argv[].
2340
2341    The code that parses --memlimit options and --block-list modified
2342    the argv[] when parsing the option string from optarg. This was
2343    visible in "ps auxf" and such and could be confusing. I didn't
2344    understand it back in the day when I wrote that code. Now a copy
2345    is allocated when modifiable strings are needed.
2346
2347 src/xz/args.c | 23 +++++++++++++++++++----
2348 1 file changed, 19 insertions(+), 4 deletions(-)
2349
2350commit a13064e1c290de7933db72b6dffbd65cfce59c9f
2351Author: Lasse Collin <lasse.collin@tukaani.org>
2352Date:   2022-12-08 18:18:57 +0200
2353
2354    Translations: Update the German man page translations.
2355
2356 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------
2357 1 file changed, 1374 insertions(+), 3196 deletions(-)
2358
2359commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
2360Author: Jia Tan <jiat0218@gmail.com>
2361Date:   2022-12-06 23:05:56 +0800
2362
2363    Translations: Update the German translation.
2364
2365 po/de.po | 586 ++++++++++++++++++++++++++++++++++-----------------------------
2366 1 file changed, 315 insertions(+), 271 deletions(-)
2367
2368commit 5c304b57c24ef40ff57f864301065f0244c05bde
2369Author: Jia Tan <jiat0218@gmail.com>
2370Date:   2022-12-06 23:04:25 +0800
2371
2372    Translations: Update the Turkish translation.
2373
2374 po/tr.po | 221 +++++++++++++++++++++++++++++++--------------------------------
2375 1 file changed, 108 insertions(+), 113 deletions(-)
2376
2377commit 6d86781fdb937970486500447ebb49b98244235b
2378Author: Jia Tan <jiat0218@gmail.com>
2379Date:   2022-12-06 23:02:11 +0800
2380
2381    Translations: Update the Croatian translation.
2382
2383 po/hr.po | 228 +++++++++++++++++++++++++++++++--------------------------------
2384 1 file changed, 113 insertions(+), 115 deletions(-)
2385
2386commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
2387Author: Jia Tan <jiat0218@gmail.com>
2388Date:   2022-12-06 22:56:30 +0800
2389
2390    Translations: Add Romanian translation of man pages.
2391
2392    Thanks to Remus-Gabriel Chelu.
2393
2394 po4a/po4a.conf |    2 +-
2395 po4a/ro.po     | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2396 2 files changed, 3693 insertions(+), 1 deletion(-)
2397
2398commit c6977e7400088177556e8771bcb839eb7d90caa3
2399Author: Jia Tan <jiat0218@gmail.com>
2400Date:   2022-12-06 22:52:13 +0800
2401
2402    Translations: Update the Romanian translation.
2403
2404 po/ro.po | 294 +++++++++++++++++++++++++++++++--------------------------------
2405 1 file changed, 147 insertions(+), 147 deletions(-)
2406
2407commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
2408Author: Lasse Collin <lasse.collin@tukaani.org>
2409Date:   2022-12-08 17:30:09 +0200
2410
2411    liblzma: Check for unexpected NULL pointers in block_header_decode().
2412
2413    The API docs gave an impression that such checks are done
2414    but they actually weren't done. In practice it made little
2415    difference since the calling code has a bug if these are NULL.
2416
2417    Thanks to Jia Tan for the original patch that checked for
2418    block->filters == NULL.
2419
2420 src/liblzma/common/block_header_decoder.c | 4 ++++
2421 1 file changed, 4 insertions(+)
2422
2423commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
2424Author: Lasse Collin <lasse.collin@tukaani.org>
2425Date:   2022-12-01 20:59:32 +0200
2426
2427    Bump version number for 5.3.5beta.
2428
2429    This also sorts the symbol names alphabetically in liblzma_*.map.
2430
2431 src/liblzma/api/lzma/version.h  |  4 ++--
2432 src/liblzma/liblzma_generic.map | 10 +++++-----
2433 src/liblzma/liblzma_linux.map   | 10 +++++-----
2434 3 files changed, 12 insertions(+), 12 deletions(-)
2435
2436commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
2437Author: Lasse Collin <lasse.collin@tukaani.org>
2438Date:   2022-12-01 20:57:26 +0200
2439
2440    Add NEWS for 5.3.5beta.
2441
2442 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
2443 1 file changed, 43 insertions(+)
2444
2445commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
2446Author: Lasse Collin <lasse.collin@tukaani.org>
2447Date:   2022-12-01 20:57:09 +0200
2448
2449    Update THANKS.
2450
2451 THANKS | 3 +++
2452 1 file changed, 3 insertions(+)
2453
2454commit 62b270988ec67314d69976df484d2974c6eacfda
2455Author: Lasse Collin <lasse.collin@tukaani.org>
2456Date:   2022-12-01 20:04:17 +0200
2457
2458    liblzma: Use __has_attribute(__symver__) to fix Clang detection.
2459
2460    If someone sets up Clang to define __GNUC__ to 10 or greater
2461    then symvers broke. __has_attribute is supported by such GCC
2462    and Clang versions that don't support __symver__ so this should
2463    be much better and simpler way to detect if __symver__ is
2464    actually supported.
2465
2466    Thanks to Tomasz Gajc for the bug report.
2467
2468 src/liblzma/common/common.h | 15 ++++++++++++++-
2469 1 file changed, 14 insertions(+), 1 deletion(-)
2470
2471commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
2472Author: Lasse Collin <lasse.collin@tukaani.org>
2473Date:   2022-12-01 18:51:52 +0200
2474
2475    liblzma: Omit zero-skipping from ARM64 filter.
2476
2477    It has some complicated downsides and its usefulness is more limited
2478    than I originally thought. So this change is bad for certain very
2479    specific situations but a generic solution that works for other
2480    filters (and is otherwise better too) is planned anyway. And this
2481    way 7-Zip can use the same compatible filter for the .7z format.
2482
2483    This is still marked as experimental with a new temporary Filter ID.
2484
2485 src/liblzma/api/lzma/bcj.h |  2 +-
2486 src/liblzma/simple/arm64.c | 81 +++++++++++++---------------------------------
2487 2 files changed, 24 insertions(+), 59 deletions(-)
2488
2489commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
2490Author: Lasse Collin <lasse.collin@tukaani.org>
2491Date:   2022-12-01 18:13:27 +0200
2492
2493    xz: Omit the special notes about ARM64 filter on the man page.
2494
2495 src/xz/xz.1 | 5 ++---
2496 1 file changed, 2 insertions(+), 3 deletions(-)
2497
2498commit 0c3627b51862eb0dcdd4fc283d046250571991c6
2499Author: Lasse Collin <lasse.collin@tukaani.org>
2500Date:   2022-12-01 18:12:03 +0200
2501
2502    liblzma: Don't be over-specific in lzma_str_to_filters API doc.
2503
2504 src/liblzma/api/lzma/filter.h | 3 +--
2505 1 file changed, 1 insertion(+), 2 deletions(-)
2506
2507commit 94adf057f27b1970f493dc99cd166407d7255639
2508Author: Lasse Collin <lasse.collin@tukaani.org>
2509Date:   2022-12-01 17:54:23 +0200
2510
2511    liblzma: Silence unused variable warning when BCJ filters are disabled.
2512
2513    Thanks to Jia Tan for the original patch.
2514
2515 src/liblzma/common/string_conversion.c | 15 +++++++++++++++
2516 1 file changed, 15 insertions(+)
2517
2518commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
2519Author: Lasse Collin <lasse.collin@tukaani.org>
2520Date:   2022-12-01 17:38:03 +0200
2521
2522    Translations: Update the Chinese (simplified) translation.
2523
2524 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++--------------------------
2525 1 file changed, 348 insertions(+), 260 deletions(-)
2526
2527commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
2528Author: Lasse Collin <lasse.collin@tukaani.org>
2529Date:   2022-11-30 18:55:03 +0200
2530
2531    Add NEWS for 5.2.9.
2532
2533 NEWS | 34 ++++++++++++++++++++++++++++++++++
2534 1 file changed, 34 insertions(+)
2535
2536commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
2537Author: Jia Tan <jiat0218@gmail.com>
2538Date:   2022-11-30 23:33:08 +0800
2539
2540    xz: Remove message_filters_to_str function prototype from message.h.
2541
2542    This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b.
2543
2544 src/xz/message.h | 16 ----------------
2545 1 file changed, 16 deletions(-)
2546
2547commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
2548Author: Lasse Collin <lasse.collin@tukaani.org>
2549Date:   2022-11-30 18:08:34 +0200
2550
2551    Change the bug report address.
2552
2553    It forwards to me and Jia Tan.
2554
2555    Also update the IRC reference in README as #tukaani was moved
2556    to Libera Chat long ago.
2557
2558 CMakeLists.txt             |  2 +-
2559 README                     | 11 +++++------
2560 configure.ac               |  2 +-
2561 dos/config.h               |  2 +-
2562 windows/README-Windows.txt |  2 +-
2563 5 files changed, 9 insertions(+), 10 deletions(-)
2564
2565commit c21983c76031e01da01ad3c6cc716fe4b8a75070
2566Author: Lasse Collin <lasse.collin@tukaani.org>
2567Date:   2022-11-30 17:50:17 +0200
2568
2569    Build: Add string_conversion.c to CMake, DOS, and VS files.
2570
2571 CMakeLists.txt                     | 1 +
2572 dos/Makefile                       | 1 +
2573 windows/vs2013/liblzma.vcxproj     | 1 +
2574 windows/vs2013/liblzma_dll.vcxproj | 1 +
2575 windows/vs2017/liblzma.vcxproj     | 1 +
2576 windows/vs2017/liblzma_dll.vcxproj | 1 +
2577 windows/vs2019/liblzma.vcxproj     | 1 +
2578 windows/vs2019/liblzma_dll.vcxproj | 1 +
2579 8 files changed, 8 insertions(+)
2580
2581commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
2582Author: Lasse Collin <lasse.collin@tukaani.org>
2583Date:   2022-11-30 17:38:32 +0200
2584
2585    Update to HTTPS URLs in AUTHORS.
2586
2587 AUTHORS | 6 +++---
2588 1 file changed, 3 insertions(+), 3 deletions(-)
2589
2590commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
2591Author: Jia Tan <jiat0218@gmail.com>
2592Date:   2022-11-30 00:52:06 +0800
2593
2594    liblzma: Improve documentation for string to filter functions.
2595
2596 src/liblzma/api/lzma/filter.h | 17 +++++++++--------
2597 1 file changed, 9 insertions(+), 8 deletions(-)
2598
2599commit a6e21fcede3b196160a52dd294d965c508a4bb33
2600Author: Lasse Collin <lasse.collin@tukaani.org>
2601Date:   2022-11-29 22:27:42 +0200
2602
2603    liblzma: Two fixes to lzma_str_list_filters() API docs.
2604
2605    Thanks to Jia Tan.
2606
2607 src/liblzma/api/lzma/filter.h | 6 +++---
2608 1 file changed, 3 insertions(+), 3 deletions(-)
2609
2610commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
2611Author: Lasse Collin <lasse.collin@tukaani.org>
2612Date:   2022-11-28 21:57:47 +0200
2613
2614    xz: Use lzma_str_from_filters().
2615
2616    Two uses: Displaying encoder filter chain when compressing with -vv,
2617    and displaying the decoder filter chain in --list -vv.
2618
2619 src/xz/list.c    |  28 ++++++---
2620 src/xz/message.c | 175 +++----------------------------------------------------
2621 2 files changed, 28 insertions(+), 175 deletions(-)
2622
2623commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
2624Author: Lasse Collin <lasse.collin@tukaani.org>
2625Date:   2022-11-28 21:37:48 +0200
2626
2627    liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters.
2628
2629    lzma_str_to_filters() uses static error messages which makes
2630    them not very precise. It tells the position in the string
2631    where an error occurred though which helps quite a bit if
2632    applications take advantage of it. Dynamic error messages can
2633    be added later with a new flag if it seems important enough.
2634
2635 src/liblzma/api/lzma/filter.h          |  258 +++++++
2636 src/liblzma/common/Makefile.inc        |    1 +
2637 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++
2638 src/liblzma/liblzma_generic.map        |    3 +
2639 src/liblzma/liblzma_linux.map          |    3 +
2640 5 files changed, 1567 insertions(+)
2641
2642commit 072ebf7b1335421193ffa9d4a70d5533786b8995
2643Author: Lasse Collin <lasse.collin@tukaani.org>
2644Date:   2022-11-28 21:02:19 +0200
2645
2646    liblzma: Make lzma_validate_chain() available outside filter_common.c.
2647
2648 src/liblzma/common/filter_common.c | 8 ++++----
2649 src/liblzma/common/filter_common.h | 3 +++
2650 2 files changed, 7 insertions(+), 4 deletions(-)
2651
2652commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
2653Author: Lasse Collin <lasse.collin@tukaani.org>
2654Date:   2022-11-28 10:51:03 +0200
2655
2656    liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused.
2657
2658 src/liblzma/lz/lz_decoder.c | 14 --------------
2659 src/liblzma/lz/lz_decoder.h |  3 ---
2660 2 files changed, 17 deletions(-)
2661
2662commit cee83206465b95729ab649aa2f57fdbde8dcaf89
2663Author: Lasse Collin <lasse.collin@tukaani.org>
2664Date:   2022-11-28 10:48:53 +0200
2665
2666    liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder().
2667
2668    Here too this avoids the slightly ugly method to set
2669    the uncompressed size.
2670
2671    Also moved the setting of dict_size to the struct initializer.
2672
2673 src/liblzma/common/microlzma_decoder.c | 15 ++++++++-------
2674 1 file changed, 8 insertions(+), 7 deletions(-)
2675
2676commit e310e8b6a490dfb468f4ed68feff246d776b323c
2677Author: Lasse Collin <lasse.collin@tukaani.org>
2678Date:   2022-11-28 10:28:20 +0200
2679
2680    liblzma: Use LZMA1EXT feature in lzma_alone_decoder().
2681
2682    This avoids the need to use the slightly ugly method to
2683    set the uncompressed size.
2684
2685 src/liblzma/common/alone_decoder.c | 18 +++++++++++++-----
2686 1 file changed, 13 insertions(+), 5 deletions(-)
2687
2688commit 33b8a24b6646a9dbfd8358405aec466b13078559
2689Author: Lasse Collin <lasse.collin@tukaani.org>
2690Date:   2022-11-27 23:16:21 +0200
2691
2692    liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker.
2693
2694    Some file formats need support for LZMA1 streams that don't use
2695    the end of payload marker (EOPM) alias end of stream (EOS) marker.
2696    So far liblzma API has supported decompressing such streams via
2697    lzma_alone_decoder() when .lzma header specifies a known
2698    uncompressed size. Encoding support hasn't been available in the API.
2699
2700    Instead of adding a new LZMA1-only API for this purpose, this commit
2701    adds a new filter ID for use with raw encoder and decoder. The main
2702    benefit of this approach is that then also filter chains are possible,
2703    for example, if someone wants to implement support for .7z files that
2704    use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported
2705    in liblzma).
2706
2707 src/liblzma/api/lzma/lzma12.h           | 123 ++++++++++++++++++++++++++++++--
2708 src/liblzma/common/filter_common.c      |   7 ++
2709 src/liblzma/common/filter_decoder.c     |   6 ++
2710 src/liblzma/common/filter_encoder.c     |   9 +++
2711 src/liblzma/lzma/lzma2_encoder.c        |   2 +-
2712 src/liblzma/lzma/lzma_decoder.c         |  26 ++++++-
2713 src/liblzma/lzma/lzma_encoder.c         |  40 +++++++++--
2714 src/liblzma/lzma/lzma_encoder.h         |   3 +-
2715 src/liblzma/lzma/lzma_encoder_private.h |   3 +
2716 9 files changed, 204 insertions(+), 15 deletions(-)
2717
2718commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
2719Author: Lasse Collin <lasse.collin@tukaani.org>
2720Date:   2022-11-27 18:43:07 +0200
2721
2722    liblzma: Avoid unneeded use of void pointer in LZMA decoder.
2723
2724 src/liblzma/lzma/lzma_decoder.c | 3 +--
2725 src/liblzma/lzma/lzma_decoder.h | 2 +-
2726 2 files changed, 2 insertions(+), 3 deletions(-)
2727
2728commit 218394958c7683f892275bb40eae880620feebcc
2729Author: Lasse Collin <lasse.collin@tukaani.org>
2730Date:   2022-11-27 18:20:33 +0200
2731
2732    liblzma: Pass the Filter ID to LZ encoder and decoder.
2733
2734    This allows using two Filter IDs with the same
2735    initialization function and data structures.
2736
2737 src/liblzma/common/alone_decoder.c     | 1 +
2738 src/liblzma/common/alone_encoder.c     | 1 +
2739 src/liblzma/common/common.h            | 7 +++++--
2740 src/liblzma/common/lzip_decoder.c      | 1 +
2741 src/liblzma/common/microlzma_decoder.c | 1 +
2742 src/liblzma/common/microlzma_encoder.c | 1 +
2743 src/liblzma/lz/lz_decoder.c            | 5 +++--
2744 src/liblzma/lz/lz_decoder.h            | 3 ++-
2745 src/liblzma/lz/lz_encoder.c            | 5 +++--
2746 src/liblzma/lz/lz_encoder.h            | 3 ++-
2747 src/liblzma/lzma/lzma2_decoder.c       | 3 ++-
2748 src/liblzma/lzma/lzma2_encoder.c       | 3 ++-
2749 src/liblzma/lzma/lzma_decoder.c        | 2 +-
2750 src/liblzma/lzma/lzma_encoder.c        | 2 +-
2751 14 files changed, 26 insertions(+), 12 deletions(-)
2752
2753commit 1663c7676b76f4c514031797f3db1896e8100f7f
2754Author: Lasse Collin <lasse.collin@tukaani.org>
2755Date:   2022-11-27 01:03:16 +0200
2756
2757    liblzma: Remove two FIXME comments.
2758
2759 src/liblzma/common/filter_encoder.c | 4 ++--
2760 1 file changed, 2 insertions(+), 2 deletions(-)
2761
2762commit 11fe708db783ac36ebeeb85da164e29e8c300910
2763Author: Lasse Collin <lasse.collin@tukaani.org>
2764Date:   2022-11-26 22:25:30 +0200
2765
2766    xz: Use lzma_filters_free().
2767
2768 src/xz/list.c | 8 ++------
2769 1 file changed, 2 insertions(+), 6 deletions(-)
2770
2771commit e782af9110d8499c7ac2929bc871540eefea5ea1
2772Author: Lasse Collin <lasse.collin@tukaani.org>
2773Date:   2022-11-26 22:21:13 +0200
2774
2775    liblzma: Use lzma_filters_free() in more places.
2776
2777 src/liblzma/common/block_header_decoder.c | 20 ++------------------
2778 src/liblzma/common/stream_decoder.c       |  4 +---
2779 src/liblzma/common/stream_decoder_mt.c    | 22 +++++-----------------
2780 3 files changed, 8 insertions(+), 38 deletions(-)
2781
2782commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
2783Author: Lasse Collin <lasse.collin@tukaani.org>
2784Date:   2022-11-25 18:04:37 +0200
2785
2786    liblzma: Omit simple coder init functions if they are disabled.
2787
2788 src/liblzma/simple/arm.c      | 4 ++++
2789 src/liblzma/simple/armthumb.c | 4 ++++
2790 src/liblzma/simple/ia64.c     | 4 ++++
2791 src/liblzma/simple/powerpc.c  | 4 ++++
2792 src/liblzma/simple/sparc.c    | 4 ++++
2793 src/liblzma/simple/x86.c      | 4 ++++
2794 6 files changed, 24 insertions(+)
2795
2796commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
2797Author: Lasse Collin <lasse.collin@tukaani.org>
2798Date:   2022-11-24 23:24:59 +0200
2799
2800    xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
2801
2802    Now that liblzma accepts these, we avoid the extra check and
2803    there's one message less for translators too.
2804
2805 src/xz/options.c | 5 -----
2806 1 file changed, 5 deletions(-)
2807
2808commit 3be88ae071371caa279b44e13f4836fb178fe4ae
2809Author: Lasse Collin <lasse.collin@tukaani.org>
2810Date:   2022-11-24 23:23:55 +0200
2811
2812    liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
2813
2814    That is, if the specified nice_len is smaller than the minimum
2815    of the match finder, silently use the match finder's minimum value
2816    instead of reporting an error. The old behavior is annoying to users
2817    and it complicates xz options handling too.
2818
2819 src/liblzma/lz/lz_encoder.c     | 14 +++++++++-----
2820 src/liblzma/lz/lz_encoder.h     |  9 +++++++++
2821 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++---
2822 3 files changed, 26 insertions(+), 8 deletions(-)
2823
2824commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
2825Author: Lasse Collin <lasse.collin@tukaani.org>
2826Date:   2022-11-24 16:25:10 +0200
2827
2828    liblzma: Add lzma_filters_update() support to the multi-threaded encoder.
2829
2830    A tiny downside of this is that now a 1-4 tiny allocations are made
2831    for every Block because each worker thread needs its own copy of
2832    the filter chain.
2833
2834 src/liblzma/api/lzma/filter.h          | 36 +++++++------
2835 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++---
2836 2 files changed, 109 insertions(+), 23 deletions(-)
2837
2838commit 17ac51e689794eb41cab3e80946fec689caea2d2
2839Author: Lasse Collin <lasse.collin@tukaani.org>
2840Date:   2022-11-24 14:53:22 +0200
2841
2842    Update THANKS.
2843
2844 THANKS | 1 +
2845 1 file changed, 1 insertion(+)
2846
2847commit 06824396b2b6c84f3a235cb7c19c2a9701167797
2848Author: Lasse Collin <lasse.collin@tukaani.org>
2849Date:   2022-11-24 14:52:44 +0200
2850
2851    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
2852
2853    It not only makes no sense to put symbol versions into a static library
2854    but it can also cause breakage.
2855
2856    By default Libtool #defines PIC if building a shared library and
2857    doesn't define it for static libraries. This is documented in the
2858    Libtool manual. It can be overriden using --with-pic or --without-pic.
2859    configure.ac detects if --with-pic or --without-pic is used and then
2860    gives an error if neither --disable-shared nor --disable-static was
2861    used at the same time. Thus, in normal situations it works to build
2862    both shared and static library at the same time on GNU/Linux,
2863    only --with-pic or --without-pic requires that only one type of
2864    library is built.
2865
2866    Thanks to John Paul Adrian Glaubitz from Debian for reporting
2867    the problem that occurred on ia64:
2868    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
2869
2870 CMakeLists.txt              |   5 +-
2871 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
2872 src/liblzma/common/common.h |  12 ++++
2873 3 files changed, 111 insertions(+), 49 deletions(-)
2874
2875commit e1acf7107291f8b3d6d609a7133331ff36d35d14
2876Author: Lasse Collin <lasse.collin@tukaani.org>
2877Date:   2022-11-24 01:32:16 +0200
2878
2879    liblzma: Refactor to use lzma_filters_free().
2880
2881    lzma_filters_free() sets the options to NULL and ids to
2882    LZMA_VLI_UNKNOWN so there is no need to do it by caller;
2883    the filter arrays will always be left in a safe state.
2884
2885    Also use memcpy() instead of a loop to copy a filter chain
2886    when it is known to be safe to copy LZMA_FILTERS_MAX + 1
2887    (even if the elements past the terminator might be uninitialized).
2888
2889 src/liblzma/common/stream_encoder.c    | 16 ++++------------
2890 src/liblzma/common/stream_encoder_mt.c | 11 ++---------
2891 2 files changed, 6 insertions(+), 21 deletions(-)
2892
2893commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
2894Author: Lasse Collin <lasse.collin@tukaani.org>
2895Date:   2022-11-24 01:26:37 +0200
2896
2897    liblzma: Fix another invalid free() after memory allocation failure.
2898
2899    This time it can happen when lzma_stream_encoder_mt() is used
2900    to reinitialize an existing multi-threaded Stream encoder
2901    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
2902
2903    It's very similar to the previous bug
2904    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
2905    an array of lzma_filter structures whose old options are freed
2906    but the replacement never arrives due to a memory allocation
2907    failure in lzma_filters_copy().
2908
2909 src/liblzma/common/stream_encoder_mt.c | 4 ++++
2910 1 file changed, 4 insertions(+)
2911
2912commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
2913Author: Jia Tan <jiat0218@gmail.com>
2914Date:   2022-05-05 20:53:42 +0800
2915
2916    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
2917
2918    The documentation mentions that lzma_block_encoder() supports
2919    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
2920    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
2921    not be used with the Block encoder unless it was the next coder
2922    after something like stream_encoder() or stream_encoder_mt().
2923
2924 src/liblzma/common/block_encoder.c | 1 +
2925 1 file changed, 1 insertion(+)
2926
2927commit d0901645170b638c517f5c50866b6ef48f491c65
2928Author: Lasse Collin <lasse.collin@tukaani.org>
2929Date:   2022-11-24 01:02:50 +0200
2930
2931    liblzma: Add new API function lzma_filters_free().
2932
2933    This is small but convenient and should have been added
2934    a long time ago.
2935
2936 src/liblzma/api/lzma/filter.h      | 21 +++++++++++++++++++++
2937 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++
2938 src/liblzma/liblzma_generic.map    |  1 +
2939 src/liblzma/liblzma_linux.map      |  1 +
2940 4 files changed, 49 insertions(+)
2941
2942commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
2943Author: Lasse Collin <lasse.collin@tukaani.org>
2944Date:   2022-11-24 00:02:31 +0200
2945
2946    CMake: Don't use symbol versioning with static library.
2947
2948 CMakeLists.txt | 10 +++++++---
2949 1 file changed, 7 insertions(+), 3 deletions(-)
2950
2951commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
2952Author: Lasse Collin <lasse.collin@tukaani.org>
2953Date:   2022-11-23 21:55:22 +0200
2954
2955    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().
2956
2957 src/liblzma/api/lzma/filter.h | 3 ++-
2958 1 file changed, 2 insertions(+), 1 deletion(-)
2959
2960commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
2961Author: Lasse Collin <lasse.collin@tukaani.org>
2962Date:   2022-11-23 21:26:21 +0200
2963
2964    liblzma: Fix invalid free() after memory allocation failure.
2965
2966    The bug was in the single-threaded .xz Stream encoder
2967    in the code that is used for both re-initialization and for
2968    lzma_filters_update(). To trigger it, an application had
2969    to either re-initialize an existing encoder instance with
2970    lzma_stream_encoder() or use lzma_filters_update(), and
2971    then one of the 1-4 tiny allocations in lzma_filters_copy()
2972    (called from stream_encoder_update()) must fail. An error
2973    was correctly reported but the encoder state was corrupted.
2974
2975    This is related to the recent fix in
2976    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
2977    it wasn't enough to fix the main problem in stream_encoder.c.
2978
2979 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
2980 1 file changed, 31 insertions(+), 8 deletions(-)
2981
2982commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
2983Author: Lasse Collin <lasse.collin@tukaani.org>
2984Date:   2022-11-22 16:37:15 +0200
2985
2986    liblzma: Fix language in a comment.
2987
2988 src/liblzma/common/stream_encoder.c | 2 +-
2989 1 file changed, 1 insertion(+), 1 deletion(-)
2990
2991commit c392bf8ccba857baaf50399c4b460119befacd54
2992Author: Lasse Collin <lasse.collin@tukaani.org>
2993Date:   2022-11-22 11:20:17 +0200
2994
2995    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
2996
2997    The encoder doesn't support dictionary sizes larger than 1536 MiB.
2998    This is validated, for example, when calculating the memory usage
2999    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
3000    part of the encoder initialization. However, LZMA encoder with
3001    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
3002    such validation and that results in an infinite loop if dict_size
3003    was 2 << 30 or greater.
3004
3005 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
3006 1 file changed, 15 insertions(+), 4 deletions(-)
3007
3008commit f50534c973a591ccf65485adfc827a8a7126ca6c
3009Author: Lasse Collin <lasse.collin@tukaani.org>
3010Date:   2022-11-21 13:02:33 +0200
3011
3012    liblzma: Fix two Doxygen commands in the API headers.
3013
3014    These were caught by clang -Wdocumentation.
3015
3016 src/liblzma/api/lzma/hardware.h   | 2 +-
3017 src/liblzma/api/lzma/index_hash.h | 2 +-
3018 2 files changed, 2 insertions(+), 2 deletions(-)
3019
3020commit 649d4872ed2f55196114a061d45b416fc4353569
3021Author: Lasse Collin <lasse.collin@tukaani.org>
3022Date:   2022-11-19 19:09:55 +0200
3023
3024    xz: Refactor duplicate code from hardware_memlimit_mtenc_get().
3025
3026 src/xz/hardware.c | 2 +-
3027 1 file changed, 1 insertion(+), 1 deletion(-)
3028
3029commit d327743bb547a53364e5951a16e5f1663fe4b9ff
3030Author: Lasse Collin <lasse.collin@tukaani.org>
3031Date:   2022-11-19 19:06:13 +0200
3032
3033    xz: Add support --threads=+N so that -T+1 gives threaded mode.
3034
3035 src/xz/args.c     | 18 +++++++++++++++---
3036 src/xz/hardware.c | 17 +++++++++++++++--
3037 src/xz/hardware.h |  1 +
3038 src/xz/xz.1       | 21 ++++++++++++++++++++-
3039 4 files changed, 51 insertions(+), 6 deletions(-)
3040
3041commit a11a2b8b5e830ba682c1d81aaa7078842b296995
3042Author: Jia Tan <jiat0218@gmail.com>
3043Date:   2022-11-19 23:18:04 +0800
3044
3045    CMake: Adds test_memlimit to CMake tests
3046
3047 CMakeLists.txt | 1 +
3048 1 file changed, 1 insertion(+)
3049
3050commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
3051Author: Lasse Collin <lasse.collin@tukaani.org>
3052Date:   2022-11-15 19:10:21 +0200
3053
3054    Translations: Update the Korean translation.
3055
3056 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++---------------------------
3057 1 file changed, 371 insertions(+), 281 deletions(-)
3058
3059commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
3060Author: Lasse Collin <lasse.collin@tukaani.org>
3061Date:   2022-11-15 19:09:28 +0200
3062
3063    Translations: Update the Turkish translation.
3064
3065 po/tr.po | 568 ++++++++++++++++++++++++++++++++++-----------------------------
3066 1 file changed, 310 insertions(+), 258 deletions(-)
3067
3068commit b9a67d9a5fa207062d4aa8a01639234609315d31
3069Author: Lasse Collin <lasse.collin@tukaani.org>
3070Date:   2022-11-15 10:58:39 +0200
3071
3072    Bump version number for 5.3.4alpha.
3073
3074 src/liblzma/api/lzma/version.h  | 2 +-
3075 src/liblzma/liblzma_generic.map | 2 +-
3076 src/liblzma/liblzma_linux.map   | 2 +-
3077 3 files changed, 3 insertions(+), 3 deletions(-)
3078
3079commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
3080Author: Lasse Collin <lasse.collin@tukaani.org>
3081Date:   2022-11-15 10:54:40 +0200
3082
3083    Add NEWS for 5.3.4alpha.
3084
3085 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3086 1 file changed, 96 insertions(+)
3087
3088commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
3089Author: Lasse Collin <lasse.collin@tukaani.org>
3090Date:   2022-11-15 10:54:08 +0200
3091
3092    Add NEWS for 5.2.8.
3093
3094 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3095 1 file changed, 79 insertions(+)
3096
3097commit b56bc8251d2736224af6bdaaae734ceb8926a879
3098Author: Lasse Collin <lasse.collin@tukaani.org>
3099Date:   2022-11-14 23:19:57 +0200
3100
3101    Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options."
3102
3103    This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
3104    and also does equivalent change to arm64.c.
3105
3106    Now that ARM64 filter will use lzma_options_bcj, this change
3107    is not needed anymore.
3108
3109 src/liblzma/simple/arm.c            | 2 +-
3110 src/liblzma/simple/arm64.c          | 2 +-
3111 src/liblzma/simple/armthumb.c       | 2 +-
3112 src/liblzma/simple/ia64.c           | 2 +-
3113 src/liblzma/simple/powerpc.c        | 2 +-
3114 src/liblzma/simple/simple_coder.c   | 4 ++--
3115 src/liblzma/simple/simple_private.h | 2 +-
3116 src/liblzma/simple/sparc.c          | 2 +-
3117 src/liblzma/simple/x86.c            | 3 +--
3118 9 files changed, 10 insertions(+), 11 deletions(-)
3119
3120commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
3121Author: Lasse Collin <lasse.collin@tukaani.org>
3122Date:   2022-11-14 23:14:41 +0200
3123
3124    Replace the experimental ARM64 filter with a new experimental version.
3125
3126    This is incompatible with the previous version.
3127
3128    This has space/tab fixes in filter_*.c and bcj.h too.
3129
3130 src/liblzma/api/lzma/bcj.h          |  41 +-----
3131 src/liblzma/common/filter_common.c  |  14 +-
3132 src/liblzma/common/filter_decoder.c |  12 +-
3133 src/liblzma/common/filter_encoder.c |  17 +--
3134 src/liblzma/simple/arm64.c          | 283 ++++++++++++++----------------------
3135 src/liblzma/simple/simple_decoder.h |   4 -
3136 src/liblzma/simple/simple_encoder.h |   2 -
3137 src/xz/args.c                       |   2 +-
3138 src/xz/message.c                    |  13 +-
3139 src/xz/options.c                    |  39 -----
3140 src/xz/options.h                    |   7 -
3141 11 files changed, 147 insertions(+), 287 deletions(-)
3142
3143commit f644473a211394447824ea00518d0a214ff3f7f2
3144Author: Lasse Collin <lasse.collin@tukaani.org>
3145Date:   2022-11-14 21:34:57 +0200
3146
3147    liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.
3148
3149    It also works on E2K as it supports these intrinsics.
3150
3151    On x86-64 runtime detection is used so the code keeps working on
3152    older processors too. A CLMUL-only build can be done by using
3153    -msse4.1 -mpclmul in CFLAGS and this will reduce the library
3154    size since the generic implementation and its 8 KiB lookup table
3155    will be omitted.
3156
3157    On 32-bit x86 this isn't used by default for now because by default
3158    on 32-bit x86 the separate assembly file crc64_x86.S is used.
3159    If --disable-assembler is used then this new CLMUL code is used
3160    the same way as on 64-bit x86. However, a CLMUL-only build
3161    (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on
3162    32-bit x86 due to a currently-missing check for disabled
3163    assembler usage.
3164
3165    The configure.ac check should be such that the code won't be
3166    built if something in the toolchain doesn't support it but
3167    --disable-clmul-crc option can be used to unconditionally
3168    disable this feature.
3169
3170    CLMUL speeds up decompression of files that have compressed very
3171    well (assuming CRC64 is used as a check type). It is know that
3172    the CLMUL code is significantly slower than the generic code for
3173    tiny inputs (especially 1-8 bytes but up to 16 bytes). If that
3174    is a real-world problem then there is already a commented-out
3175    variant that uses the generic version for small inputs.
3176
3177    Thanks to Ilya Kurdyukov for the original patch which was
3178    derived from a white paper from Intel [1] (published in 2009)
3179    and public domain code from [2] (released in 2016).
3180
3181    [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
3182    [2] https://github.com/rawrunprotected/crc
3183
3184 CMakeLists.txt                  |  26 ++-
3185 INSTALL                         |  12 ++
3186 configure.ac                    |  59 +++++-
3187 src/liblzma/check/crc64_fast.c  | 449 +++++++++++++++++++++++++++++++++++++++-
3188 src/liblzma/check/crc64_table.c |  21 +-
3189 5 files changed, 554 insertions(+), 13 deletions(-)
3190
3191commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
3192Author: Lasse Collin <lasse.collin@tukaani.org>
3193Date:   2022-11-14 20:14:34 +0200
3194
3195    Translations: Update the Swedish translation one more time.
3196
3197 po/sv.po | 6 +++---
3198 1 file changed, 3 insertions(+), 3 deletions(-)
3199
3200commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
3201Author: Lasse Collin <lasse.collin@tukaani.org>
3202Date:   2022-11-14 19:34:15 +0200
3203
3204    Translations: Update the Swedish translation again.
3205
3206 po/sv.po | 16 ++++++++--------
3207 1 file changed, 8 insertions(+), 8 deletions(-)
3208
3209commit a4bc689a823a2254f29ac9d233170add5121b307
3210Author: Lasse Collin <lasse.collin@tukaani.org>
3211Date:   2022-11-14 19:07:45 +0200
3212
3213    Translations: Update the Swedish translation.
3214
3215 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++---------------------------
3216 1 file changed, 382 insertions(+), 289 deletions(-)
3217
3218commit bbf2073d824ab4ba33bed4b77f467435abd333a5
3219Author: Lasse Collin <lasse.collin@tukaani.org>
3220Date:   2022-11-14 18:58:09 +0200
3221
3222    Translations: Update the Ukrainian translation.
3223
3224 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++---------------------------
3225 1 file changed, 354 insertions(+), 264 deletions(-)
3226
3227commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
3228Author: Lasse Collin <lasse.collin@tukaani.org>
3229Date:   2022-11-14 17:58:07 +0200
3230
3231    Build: Omit x86_64 from --enable-assembler.
3232
3233    It didn't do anything. There are only 32-bit x86 assembly files
3234    and it feels likely that new files won't be added as intrinsics
3235    in C are more portable across toolchains and OSes.
3236
3237 configure.ac | 6 ++----
3238 1 file changed, 2 insertions(+), 4 deletions(-)
3239
3240commit eb0f1450ad9f23dac03050d9c8375980240aee21
3241Author: Lasse Collin <lasse.collin@tukaani.org>
3242Date:   2022-11-14 16:00:52 +0200
3243
3244    liblzma: Use __attribute__((__constructor__)) if available.
3245
3246    This uses it for CRC table initializations when using --disable-small.
3247    It avoids mythread_once() overhead. It also means that then
3248    --disable-small --disable-threads is thread-safe if this attribute
3249    is supported.
3250
3251 CMakeLists.txt                  | 15 +++++++++++++++
3252 INSTALL                         |  4 +++-
3253 configure.ac                    | 31 ++++++++++++++++++++++++++++---
3254 src/liblzma/check/crc32_small.c |  7 +++++++
3255 src/liblzma/check/crc64_small.c |  5 +++++
3256 src/liblzma/lz/lz_encoder.c     |  2 +-
3257 6 files changed, 59 insertions(+), 5 deletions(-)
3258
3259commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
3260Author: Lasse Collin <lasse.collin@tukaani.org>
3261Date:   2022-11-12 21:19:52 +0200
3262
3263    Translations: Update the Romanian translation.
3264
3265 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++--------------------------
3266 1 file changed, 380 insertions(+), 271 deletions(-)
3267
3268commit db97e69e12393becc29f8febd53133d0d36989bd
3269Author: Lasse Collin <lasse.collin@tukaani.org>
3270Date:   2022-11-12 21:17:45 +0200
3271
3272    Translations: Update the Hungarian translation.
3273
3274 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++---------------------------
3275 1 file changed, 357 insertions(+), 268 deletions(-)
3276
3277commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
3278Author: Lasse Collin <lasse.collin@tukaani.org>
3279Date:   2022-11-11 17:58:57 +0200
3280
3281    Translations: Update the Finnish translation.
3282
3283 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++---------------------------
3284 1 file changed, 348 insertions(+), 262 deletions(-)
3285
3286commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
3287Author: Lasse Collin <lasse.collin@tukaani.org>
3288Date:   2022-11-11 17:58:18 +0200
3289
3290    Translations: Update the Croatian translation.
3291
3292 po/hr.po | 680 +++++++++++++++++++++++++++++++++++----------------------------
3293 1 file changed, 381 insertions(+), 299 deletions(-)
3294
3295commit 26c3359eac0988d6f3986735cd1363bec1678e8e
3296Author: Lasse Collin <lasse.collin@tukaani.org>
3297Date:   2022-11-11 17:57:18 +0200
3298
3299    Translations: Update the Polish translation.
3300
3301 po/pl.po | 569 ++++++++++++++++++++++++++++++++++-----------------------------
3302 1 file changed, 309 insertions(+), 260 deletions(-)
3303
3304commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
3305Author: Lasse Collin <lasse.collin@tukaani.org>
3306Date:   2022-11-11 17:56:44 +0200
3307
3308    Translations: Update the Spanish translation.
3309
3310 po/es.po | 598 ++++++++++++++++++++++++++++++++++++---------------------------
3311 1 file changed, 344 insertions(+), 254 deletions(-)
3312
3313commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
3314Author: Lasse Collin <lasse.collin@tukaani.org>
3315Date:   2022-11-11 17:16:03 +0200
3316
3317    Update THANKS.
3318
3319 THANKS | 1 +
3320 1 file changed, 1 insertion(+)
3321
3322commit a39961ef211e1bf030b17edeea3cff29fe263b67
3323Author: Lasse Collin <lasse.collin@tukaani.org>
3324Date:   2022-11-11 17:15:25 +0200
3325
3326    liblzma: Fix building with Intel ICC (the classic compiler).
3327
3328    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
3329
3330    Thanks to Stephen Sachs.
3331
3332 src/liblzma/common/common.h | 2 +-
3333 1 file changed, 1 insertion(+), 1 deletion(-)
3334
3335commit c715f683dcb1a817d565da292cddfbceda643e12
3336Author: Lasse Collin <lasse.collin@tukaani.org>
3337Date:   2022-11-11 14:35:58 +0200
3338
3339    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
3340
3341    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
3342    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
3343    instead of 387. Often the latter macro is defined if the first
3344    one is but it was still a bug.
3345
3346 src/liblzma/common/memcmplen.h | 3 +--
3347 1 file changed, 1 insertion(+), 2 deletions(-)
3348
3349commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
3350Author: Lasse Collin <lasse.collin@tukaani.org>
3351Date:   2022-11-11 13:27:06 +0200
3352
3353    Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2).
3354
3355 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3356 1 file changed, 74 insertions(+)
3357
3358commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
3359Author: Lasse Collin <lasse.collin@tukaani.org>
3360Date:   2022-11-11 13:16:21 +0200
3361
3362    xzdiff: Add support for .lz files.
3363
3364    The other scripts don't need changes for .lz support because
3365    in those scripts it is enough that xz supports .lz.
3366
3367 src/scripts/xzdiff.in | 10 +++++-----
3368 1 file changed, 5 insertions(+), 5 deletions(-)
3369
3370commit d76c752a6d77052e5ad57ade555082585f7ac5d8
3371Author: Lasse Collin <lasse.collin@tukaani.org>
3372Date:   2022-11-11 12:23:58 +0200
3373
3374    Scripts: Ignore warnings from xz.
3375
3376    In practice this means making the scripts work when
3377    the input files have an unsupported check type which
3378    isn't a problem in practice unless support for
3379    some check types has been disabled at build time.
3380
3381 src/scripts/xzdiff.in | 5 +++--
3382 src/scripts/xzgrep.in | 2 +-
3383 src/scripts/xzless.in | 4 ++--
3384 src/scripts/xzmore.in | 4 ++--
3385 4 files changed, 8 insertions(+), 7 deletions(-)
3386
3387commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
3388Author: Lasse Collin <lasse.collin@tukaani.org>
3389Date:   2022-11-10 12:34:43 +0200
3390
3391    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
3392
3393    That's how it is preferred at the Translation Project.
3394    On my system /usr/share/man/fr_FR doesn't contain any
3395    other man pages than XZ Utils while /usr/share/man/fr
3396    has quite a few, so this will fix that too.
3397
3398    Thanks to Benno Schulenberg from the Translation Project.
3399
3400 po4a/{fr_FR.po => fr.po} | 0
3401 po4a/po4a.conf           | 2 +-
3402 2 files changed, 1 insertion(+), 1 deletion(-)
3403
3404commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
3405Author: Lasse Collin <lasse.collin@tukaani.org>
3406Date:   2022-11-09 18:48:50 +0200
3407
3408    xz: Update the man page about BCJ filters, including upcoming --arm64.
3409
3410    The --arm64 isn't actually implemented yet in the form
3411    described in this commit.
3412
3413    Thanks to Jia Tan.
3414
3415 src/xz/xz.1 | 66 +++++++++++++++++++++++++++----------------------------------
3416 1 file changed, 29 insertions(+), 37 deletions(-)
3417
3418commit ba2ae3596f6be1587495f33b367488f6e00e56f1
3419Author: Lasse Collin <lasse.collin@tukaani.org>
3420Date:   2022-11-09 18:14:14 +0200
3421
3422    xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb).
3423
3424    Modern 32-bit ARM in big endian mode use little endian for
3425    instruction encoding still, so the filters work on such
3426    executables too. It's likely less confusing for users this way.
3427
3428    The --arm64 option hasn't been implemented yet (there is
3429    --experimental-arm64 but it's different). The --arm64 option
3430    is added now anyway because this is the likely result and the
3431    strings need to be ready for translators.
3432
3433    Thanks to Jia Tan.
3434
3435 src/xz/message.c | 5 +++--
3436 1 file changed, 3 insertions(+), 2 deletions(-)
3437
3438commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
3439Author: Lasse Collin <lasse.collin@tukaani.org>
3440Date:   2022-11-09 15:12:13 +0200
3441
3442    Windows: Update the VS project files for ARM64 and .lz support.
3443
3444 windows/vs2013/config.h            | 9 +++++++++
3445 windows/vs2013/liblzma.vcxproj     | 5 ++++-
3446 windows/vs2013/liblzma_dll.vcxproj | 5 ++++-
3447 windows/vs2017/config.h            | 9 +++++++++
3448 windows/vs2017/liblzma.vcxproj     | 3 +++
3449 windows/vs2017/liblzma_dll.vcxproj | 3 +++
3450 windows/vs2019/config.h            | 9 +++++++++
3451 windows/vs2019/liblzma.vcxproj     | 5 ++++-
3452 windows/vs2019/liblzma_dll.vcxproj | 5 ++++-
3453 9 files changed, 49 insertions(+), 4 deletions(-)
3454
3455commit 5846aeda05972bc803c6094821ae836229ebe691
3456Author: Lasse Collin <lasse.collin@tukaani.org>
3457Date:   2022-11-09 14:57:48 +0200
3458
3459    DOS: Update Makefile and config.h to include ARM64 and .lz support.
3460
3461 dos/Makefile | 2 ++
3462 dos/config.h | 9 +++++++++
3463 2 files changed, 11 insertions(+)
3464
3465commit 781da8d6c44de6aa278c916375250668a0b107f2
3466Author: Lasse Collin <lasse.collin@tukaani.org>
3467Date:   2022-11-09 14:45:05 +0200
3468
3469    CMake: Add lzip decoder files and #define to the build.
3470
3471 CMakeLists.txt | 3 +++
3472 1 file changed, 3 insertions(+)
3473
3474commit df8ad4af65a9c4846b108550d0083770a69dee64
3475Author: Lasse Collin <lasse.collin@tukaani.org>
3476Date:   2022-11-09 14:41:56 +0200
3477
3478    Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
3479
3480 INSTALL   | 49 +++++++++++++++++++++++++++++++++++++++++--------
3481 PACKAGERS |  2 ++
3482 2 files changed, 43 insertions(+), 8 deletions(-)
3483
3484commit c8ef089c149afaab413c3a51be827dd1d11afe0e
3485Author: Lasse Collin <lasse.collin@tukaani.org>
3486Date:   2022-10-20 17:39:06 +0300
3487
3488    Tests: Test the .lz files in test_files.sh.
3489
3490 tests/test_files.sh | 25 +++++++++++++++++++++++++
3491 1 file changed, 25 insertions(+)
3492
3493commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
3494Author: Lasse Collin <lasse.collin@tukaani.org>
3495Date:   2022-10-20 15:35:59 +0300
3496
3497    Tests: Add .lz (lzip) test files.
3498
3499 tests/files/README                     | 109 +++++++++++++++++++++++++++++----
3500 tests/files/bad-1-v0-uncomp-size.lz    | Bin 0 -> 42 bytes
3501 tests/files/bad-1-v1-crc32.lz          | Bin 0 -> 50 bytes
3502 tests/files/bad-1-v1-dict-1.lz         | Bin 0 -> 50 bytes
3503 tests/files/bad-1-v1-dict-2.lz         | Bin 0 -> 50 bytes
3504 tests/files/bad-1-v1-magic-1.lz        | Bin 0 -> 50 bytes
3505 tests/files/bad-1-v1-magic-2.lz        | Bin 0 -> 50 bytes
3506 tests/files/bad-1-v1-member-size.lz    | Bin 0 -> 50 bytes
3507 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes
3508 tests/files/bad-1-v1-uncomp-size.lz    | Bin 0 -> 50 bytes
3509 tests/files/good-1-v0-trailing-1.lz    | Bin 0 -> 59 bytes
3510 tests/files/good-1-v0.lz               | Bin 0 -> 42 bytes
3511 tests/files/good-1-v1-trailing-1.lz    | Bin 0 -> 67 bytes
3512 tests/files/good-1-v1-trailing-2.lz    | Bin 0 -> 70 bytes
3513 tests/files/good-1-v1.lz               | Bin 0 -> 50 bytes
3514 tests/files/good-2-v0-v1.lz            | Bin 0 -> 78 bytes
3515 tests/files/good-2-v1-v0.lz            | Bin 0 -> 78 bytes
3516 tests/files/good-2-v1-v1.lz            | Bin 0 -> 86 bytes
3517 tests/files/unsupported-1-v234.lz      | Bin 0 -> 50 bytes
3518 19 files changed, 98 insertions(+), 11 deletions(-)
3519
3520commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
3521Author: Lasse Collin <lasse.collin@tukaani.org>
3522Date:   2022-10-19 22:32:51 +0300
3523
3524    xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz.
3525
3526 src/xz/args.c   | 2 --
3527 src/xz/coder.h  | 1 -
3528 src/xz/suffix.c | 9 ---------
3529 3 files changed, 12 deletions(-)
3530
3531commit 3176f992c55b8d788c4633809aaf9447376a5a12
3532Author: Lasse Collin <lasse.collin@tukaani.org>
3533Date:   2022-10-08 21:28:15 +0300
3534
3535    xz: Add .lz (lzip) decompression support.
3536
3537    If configured with --disable-lzip-decoder then --long-help will
3538    still list `lzip' in --format but I left it like that since
3539    due to translations it would be messy to have two help strings.
3540    Features are disabled only in special situations so wrong help
3541    in such a situation shouldn't matter much.
3542
3543    Thanks to Michał Górny for the original patch.
3544
3545 src/xz/args.c    |  9 ++++++++
3546 src/xz/coder.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
3547 src/xz/coder.h   |  3 +++
3548 src/xz/message.c |  2 +-
3549 src/xz/suffix.c  | 26 ++++++++++++++++++----
3550 src/xz/xz.1      | 46 +++++++++++++++++++++++++++++++++-----
3551 6 files changed, 141 insertions(+), 13 deletions(-)
3552
3553commit 034086e1ae1459210837a24e04878435c86dc41b
3554Author: Lasse Collin <lasse.collin@tukaani.org>
3555Date:   2022-10-08 00:29:20 +0300
3556
3557    liblzma: Add .lz support to lzma_auto_decoder().
3558
3559    Thanks to Michał Górny for the original patch.
3560
3561 src/liblzma/api/lzma/container.h  | 10 ++++++----
3562 src/liblzma/common/Makefile.inc   |  3 ++-
3563 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------
3564 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++
3565 4 files changed, 47 insertions(+), 11 deletions(-)
3566
3567commit 0538db038f3cdc352007dacb42454aa1806b8e40
3568Author: Lasse Collin <lasse.collin@tukaani.org>
3569Date:   2022-10-06 15:50:20 +0300
3570
3571    liblzma: Add .lz (lzip) decompression support (format versions 0 and 1).
3572
3573    Support for format version 0 was removed from lzip 1.18 for some
3574    reason. .lz format version 0 files are rare (and old) but some
3575    source packages were released in this format, and some people might
3576    have personal files in this format too. It's very little extra code
3577    to support it along side format version 1 so this commits adds
3578    support for both.
3579
3580    The Sync Flush marker extentension to the original .lz format
3581    version 1 isn't supported. It would require changes to the
3582    LZMA decoder itself. Such files are very rare anyway.
3583
3584    See the API doc for lzma_lzip_decoder() for more details about
3585    the .lz format support.
3586
3587    Thanks to Michał Górny for the original patch.
3588
3589 configure.ac                      |  21 ++
3590 src/liblzma/api/lzma/container.h  |  62 +++++-
3591 src/liblzma/common/Makefile.inc   |   5 +
3592 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++
3593 src/liblzma/liblzma_generic.map   |   1 +
3594 src/liblzma/liblzma_linux.map     |   1 +
3595 6 files changed, 501 insertions(+), 2 deletions(-)
3596
3597commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
3598Author: Lasse Collin <lasse.collin@tukaani.org>
3599Date:   2022-11-09 14:17:23 +0200
3600
3601    liblzma: Add the missing Makefile.inc change for --disable-microlzma.
3602
3603    This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8.
3604
3605 src/liblzma/common/Makefile.inc | 12 ++++++++++--
3606 1 file changed, 10 insertions(+), 2 deletions(-)
3607
3608commit 724285dadbdc88765c8fb83eab9816575a260966
3609Author: Lasse Collin <lasse.collin@tukaani.org>
3610Date:   2022-11-09 14:10:52 +0200
3611
3612    xz: Add comments about stdin and src_st.st_size.
3613
3614    "xz -v < regular_file > out.xz" doesn't display the percentage
3615    and estimated remaining time because it doesn't even try to
3616    check the input file size when input is read from stdin.
3617    This could be improved but for now there's just a comment
3618    to remind about it.
3619
3620 src/xz/coder.c   | 9 +++++++++
3621 src/xz/file_io.c | 4 ++++
3622 2 files changed, 13 insertions(+)
3623
3624commit f723eec68b0e44234910f669a29119de33018967
3625Author: Lasse Collin <lasse.collin@tukaani.org>
3626Date:   2022-11-09 12:48:22 +0200
3627
3628    xz: Fix displaying of file sizes in progress indicator in passthru mode.
3629
3630    It worked for one input file since the counters are zero when
3631    xz starts but they weren't reset when starting a new file in
3632    passthru mode. For example, if files A, B, and C are one byte each,
3633    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
3634    instead of 1, 1, and 1 byte.
3635
3636 src/xz/coder.c | 6 +++++-
3637 1 file changed, 5 insertions(+), 1 deletion(-)
3638
3639commit 69265d0f223ddf1d66f799b8b047df22923e376f
3640Author: Lasse Collin <lasse.collin@tukaani.org>
3641Date:   2022-11-09 11:27:20 +0200
3642
3643    xz: Add a comment why --to-stdout is not in --help.
3644
3645    It is on the man page still.
3646
3647 src/xz/message.c | 3 +++
3648 1 file changed, 3 insertions(+)
3649
3650commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
3651Author: Lasse Collin <lasse.collin@tukaani.org>
3652Date:   2022-11-08 23:05:37 +0200
3653
3654    xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress.
3655
3656 src/xz/list.c | 20 +++++++++++++++-----
3657 1 file changed, 15 insertions(+), 5 deletions(-)
3658
3659commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
3660Author: Lasse Collin <lasse.collin@tukaani.org>
3661Date:   2022-11-08 22:26:54 +0200
3662
3663    Docs: Update faq.txt a little.
3664
3665 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
3666 1 file changed, 43 insertions(+), 23 deletions(-)
3667
3668commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
3669Author: Lasse Collin <lasse.collin@tukaani.org>
3670Date:   2022-11-08 16:57:17 +0200
3671
3672    Translations: Update Turkish translation.
3673
3674 po/tr.po | 2 +-
3675 1 file changed, 1 insertion(+), 1 deletion(-)
3676
3677commit ed3a4822963b4940d84e6f44d47277c394fc046d
3678Author: Lasse Collin <lasse.collin@tukaani.org>
3679Date:   2022-11-08 14:55:32 +0200
3680
3681    Translations: Update Croatian translation.
3682
3683 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
3684 1 file changed, 96 insertions(+), 94 deletions(-)
3685
3686commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
3687Author: Lasse Collin <lasse.collin@tukaani.org>
3688Date:   2022-11-08 14:13:03 +0200
3689
3690    liblzma: Update API docs about decoder flags.
3691
3692 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++----
3693 1 file changed, 17 insertions(+), 4 deletions(-)
3694
3695commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
3696Author: Lasse Collin <lasse.collin@tukaani.org>
3697Date:   2022-11-08 14:01:50 +0200
3698
3699    liblzma: Use the return_if_error() macro in alone_decoder.c.
3700
3701 src/liblzma/common/alone_decoder.c | 6 ++----
3702 1 file changed, 2 insertions(+), 4 deletions(-)
3703
3704commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
3705Author: Lasse Collin <lasse.collin@tukaani.org>
3706Date:   2022-11-08 14:00:58 +0200
3707
3708    liblzma: Fix a comment in auto_decoder.c.
3709
3710 src/liblzma/common/auto_decoder.c | 4 ++--
3711 1 file changed, 2 insertions(+), 2 deletions(-)
3712
3713commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
3714Author: Lasse Collin <lasse.collin@tukaani.org>
3715Date:   2022-11-08 13:43:19 +0200
3716
3717    xz: Initialize the pledge(2) sandbox at the very beginning of main().
3718
3719    It feels better that the initializations are sandboxed too.
3720    They don't do anything that the pledge() call wouldn't allow.
3721
3722 src/xz/main.c | 27 ++++++++++++++-------------
3723 1 file changed, 14 insertions(+), 13 deletions(-)
3724
3725commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
3726Author: Lasse Collin <lasse.collin@tukaani.org>
3727Date:   2022-11-07 22:51:16 +0200
3728
3729    xz: Extend --robot --info-memory output.
3730
3731    Now it includes everything that the human-readable --info-memory shows.
3732
3733 src/xz/hardware.c | 24 +++++++++++++++---------
3734 src/xz/xz.1       | 47 +++++++++++++++++++++++++++++++++++++++++------
3735 2 files changed, 56 insertions(+), 15 deletions(-)
3736
3737commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
3738Author: Lasse Collin <lasse.collin@tukaani.org>
3739Date:   2022-11-07 17:22:04 +0200
3740
3741    liblzma: Include cached memory in reported memusage in threaded decoder.
3742
3743    This affects lzma_memusage() and lzma_memlimit_set() when used
3744    with the threaded decompressor. Now all allocations are reported
3745    by lzma_memusage() (so it's not misleading) and lzma_memlimit_set()
3746    cannot lower the limit below that value.
3747
3748    The alternative would have been to allow lowering the limit if
3749    doing so is possible by freeing the cached memory but since
3750    the primary use case of lzma_memlimit_set() is to increase
3751    memlimit after LZMA_MEMLIMIT_ERROR this simple approach
3752    was selected.
3753
3754    The cached memory was always included when enforcing
3755    the memory usage limit while decoding.
3756
3757    Thanks to Jia Tan.
3758
3759 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++---
3760 1 file changed, 19 insertions(+), 3 deletions(-)
3761
3762commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
3763Author: Jia Tan <jiat0218@gmail.com>
3764Date:   2022-11-07 16:24:14 +0200
3765
3766    xz: Avoid a compiler warning in progress_speed() in message.c.
3767
3768    This should be smaller too since it avoids the string constants.
3769
3770 src/xz/message.c | 9 +++------
3771 1 file changed, 3 insertions(+), 6 deletions(-)
3772
3773commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
3774Author: Lasse Collin <lasse.collin@tukaani.org>
3775Date:   2022-10-31 16:26:05 +0200
3776
3777    Build: Clarify comment in configure.ac about SSE2.
3778
3779 configure.ac | 5 ++++-
3780 1 file changed, 4 insertions(+), 1 deletion(-)
3781
3782commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
3783Author: Lasse Collin <lasse.collin@tukaani.org>
3784Date:   2022-10-31 16:16:37 +0200
3785
3786    Build: Remove obsolete commented-out lines from configure.ac.
3787
3788 configure.ac | 4 ----
3789 1 file changed, 4 deletions(-)
3790
3791commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
3792Author: Lasse Collin <lasse.collin@tukaani.org>
3793Date:   2022-10-31 13:31:58 +0200
3794
3795    Windows: Fix mythread_once() macro with Vista threads.
3796
3797    Don't call InitOnceComplete() if initialization was already done.
3798
3799    So far mythread_once() has been needed only when building
3800    with --enable-small. windows/build.bash does this together
3801    with --disable-threads so the Vista-specific mythread_once()
3802    is never needed by those builds. VS project files or
3803    CMake-builds don't support HAVE_SMALL builds at all.
3804
3805 src/common/mythread.h | 7 ++++---
3806 1 file changed, 4 insertions(+), 3 deletions(-)
3807
3808commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
3809Author: Lasse Collin <lasse.collin@tukaani.org>
3810Date:   2022-10-31 11:54:44 +0200
3811
3812    liblzma: Silence -Wconversion warning from crc64_fast.c.
3813
3814 src/liblzma/check/crc64_fast.c | 5 +++--
3815 1 file changed, 3 insertions(+), 2 deletions(-)
3816
3817commit a243c617ff249d915ac123de4f536b80322c1fdb
3818Author: Lasse Collin <lasse.collin@tukaani.org>
3819Date:   2022-10-31 11:49:47 +0200
3820
3821    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
3822
3823    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.
3824
3825 cmake/tuklib_cpucores.cmake | 5 +++++
3826 1 file changed, 5 insertions(+)
3827
3828commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
3829Author: Lasse Collin <lasse.collin@tukaani.org>
3830Date:   2022-10-27 15:49:18 +0300
3831
3832    Tests: test_files.sh: Make it not fail if features were disabled at build.
3833
3834    It now tries to test as many files as easily possible.
3835    The exit status indicates skipping if any of the files were
3836    skipped. This way it is easy to notice if something is being
3837    skipped when it isn't expected.
3838
3839 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
3840 1 file changed, 46 insertions(+), 4 deletions(-)
3841
3842commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
3843Author: Lasse Collin <lasse.collin@tukaani.org>
3844Date:   2022-10-27 15:30:13 +0300
3845
3846    Tests: test_files.sh: Suppress an expected warning from the log.
3847
3848    xz (but not xzdec) will normally warn about unsupported check
3849    but since we are testing specifically such a file, it's better
3850    to silence that warning so that it doesn't look suspicious in
3851    test_files.sh.log.
3852
3853    The use of -q and -Q in xzdec is just for consistency and
3854    doesn't affect the result at least for now.
3855
3856 tests/test_files.sh | 4 ++--
3857 1 file changed, 2 insertions(+), 2 deletions(-)
3858
3859commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
3860Author: Lasse Collin <lasse.collin@tukaani.org>
3861Date:   2022-10-27 15:27:50 +0300
3862
3863    Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.
3864
3865 tests/test_files.sh | 1 +
3866 1 file changed, 1 insertion(+)
3867
3868commit c1dd8524e1af07f16b790463899de06a6a5fcc08
3869Author: Lasse Collin <lasse.collin@tukaani.org>
3870Date:   2022-10-27 01:12:40 +0300
3871
3872    Tests: Keep test_compress_* working when some filters are unavailable.
3873
3874 tests/test_compress.sh | 34 ++++++++++++++++++++--------------
3875 1 file changed, 20 insertions(+), 14 deletions(-)
3876
3877commit ce30ada91951d0746879ae438da11f1ee8a90aa0
3878Author: Jia Tan <jiat0218@gmail.com>
3879Date:   2022-10-23 21:01:08 +0800
3880
3881    Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.
3882
3883 tests/test_bcj_exact_size.c | 3 +++
3884 1 file changed, 3 insertions(+)
3885
3886commit 89c5cfcacaca7130509fac836e2f30c46b824502
3887Author: Lasse Collin <lasse.collin@tukaani.org>
3888Date:   2022-10-26 00:05:57 +0300
3889
3890    Tests: Test also unsupported-*.xz.
3891
3892 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++
3893 1 file changed, 37 insertions(+)
3894
3895commit a4b214b93ac741edef9c41e55865b0b867ca2587
3896Author: Lasse Collin <lasse.collin@tukaani.org>
3897Date:   2022-10-25 23:45:03 +0300
3898
3899    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
3900
3901    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
3902
3903    There is a warning about AC_PROG_CC_C99 being obsolete but
3904    it cannot be removed because it is needed with Autoconf 2.69.
3905
3906 configure.ac | 2 +-
3907 1 file changed, 1 insertion(+), 1 deletion(-)
3908
3909commit 04f299b64e73f50afc188c2590ebebc6b73ed744
3910Author: Lasse Collin <lasse.collin@tukaani.org>
3911Date:   2022-10-25 23:31:44 +0300
3912
3913    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
3914
3915 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
3916 1 file changed, 22 insertions(+), 7 deletions(-)
3917
3918commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
3919Author: Lasse Collin <lasse.collin@tukaani.org>
3920Date:   2022-10-25 23:28:34 +0300
3921
3922    Build: Add configure option --disable-microlzma.
3923
3924    MicroLZMA was made for EROFS and used by erofs-utils.
3925    It might be used by something else in the future but
3926    those wanting a smaller build for specific situations
3927    can now disable this rarely-needed feature.
3928
3929 configure.ac | 22 ++++++++++++++++++++++
3930 1 file changed, 22 insertions(+)
3931
3932commit 054ccd6d14b2cc6eddc56897af280d3221414150
3933Author: Lasse Collin <lasse.collin@tukaani.org>
3934Date:   2022-10-25 23:09:11 +0300
3935
3936    xz: Fix --single-stream with an empty .xz Stream.
3937
3938    Example:
3939
3940        $ xz -dc --single-stream good-0-empty.xz
3941        xz: good-0-empty.xz: Internal error (bug)
3942
3943    The code, that is tries to catch some input file issues early,
3944    didn't anticipate LZMA_STREAM_END which is possible in that
3945    code only when --single-stream is used.
3946
3947 src/xz/coder.c | 9 +++++++++
3948 1 file changed, 9 insertions(+)
3949
3950commit 563288ea705e83ff5cb292adf794650c263bca1d
3951Author: Lasse Collin <lasse.collin@tukaani.org>
3952Date:   2022-10-25 21:11:58 +0300
3953
3954    xz: Add support for OpenBSD's pledge() sandbox.
3955
3956 configure.ac     | 12 +++++++++---
3957 src/xz/file_io.c | 11 +++++++++++
3958 src/xz/main.c    | 13 +++++++++++++
3959 src/xz/private.h |  2 +-
3960 4 files changed, 34 insertions(+), 4 deletions(-)
3961
3962commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
3963Author: Lasse Collin <lasse.collin@tukaani.org>
3964Date:   2022-10-25 19:07:17 +0300
3965
3966    xz: Fix decompressor behavior if input uses an unsupported check type.
3967
3968    Now files with unsupported check will make xz display
3969    a warning, set the exit status to 2 (unless --no-warn is used),
3970    and then decompress the file normally. This is how it was
3971    supposed to work since the beginning but this was broken by
3972    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
3973    a little before 5.0.0 was released. The buggy behavior displayed
3974    a message, set exit status 1 (error), and xz didn't attempt to
3975    to decompress the file.
3976
3977    This doesn't matter today except for special builds that disable
3978    CRC64 or SHA-256 at build time (but such builds should be used
3979    in special situations only). The bug matters if new check type
3980    is added in the future and an old xz version is used to decompress
3981    such a file; however, it's likely that such files would use a new
3982    filter too and an old xz wouldn't be able to decompress the file
3983    anyway.
3984
3985    The first hunk in the commit is the actual fix. The second hunk
3986    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
3987
3988    There is a test file for unsupported check type but it wasn't
3989    used by test_files.sh, perhaps due to different behavior between
3990    xz and the simpler xzdec.
3991
3992 src/xz/coder.c | 19 +++++++++++++++----
3993 1 file changed, 15 insertions(+), 4 deletions(-)
3994
3995commit aa4fe145b9486adc454f44fd3e09be9add808a0f
3996Author: Lasse Collin <lasse.collin@tukaani.org>
3997Date:   2022-10-25 18:36:19 +0300
3998
3999    xz: Clarify the man page: input file isn't removed if an error occurs.
4000
4001 src/xz/xz.1 | 5 +++--
4002 1 file changed, 3 insertions(+), 2 deletions(-)
4003
4004commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
4005Author: Lasse Collin <lasse.collin@tukaani.org>
4006Date:   2022-10-25 18:30:55 +0300
4007
4008    xz: Refactor to remove is_empty_filename().
4009
4010    Long ago it was used in list.c too but nowadays it's needed
4011    only in io_open_src() so it's nicer to avoid a separate function.
4012
4013 src/xz/file_io.c |  4 +++-
4014 src/xz/util.c    | 12 ------------
4015 src/xz/util.h    |  4 ----
4016 3 files changed, 3 insertions(+), 17 deletions(-)
4017
4018commit 85624015978b0de294cff3df79006df987c552b1
4019Author: Lasse Collin <lasse.collin@tukaani.org>
4020Date:   2022-10-25 18:23:54 +0300
4021
4022    xz: If input file cannot be removed, treat it as a warning, not error.
4023
4024    Treating it as a warning (message + exit status 2) matches gzip
4025    and it seems more logical as at that point the output file has
4026    already been successfully closed. When it's a warning it is
4027    possible to suppress it with --no-warn.
4028
4029 src/xz/file_io.c | 4 ++--
4030 1 file changed, 2 insertions(+), 2 deletions(-)
4031
4032commit fda9f85f52c546f7ca0313cf89481da4707fecb3
4033Author: Lasse Collin <lasse.collin@tukaani.org>
4034Date:   2022-10-24 16:25:09 +0300
4035
4036    liblzma: Threaded decoder: Stop the worker threads on errors.
4037
4038    It's waste of CPU time and electricity to leave the unfinished
4039    worker threads running when it is known that their output will
4040    get ignored.
4041
4042 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++-------
4043 1 file changed, 26 insertions(+), 7 deletions(-)
4044
4045commit 2611c4d90535652d3eb7ef4a026a6691276fab43
4046Author: Lasse Collin <lasse.collin@tukaani.org>
4047Date:   2022-10-20 20:22:50 +0300
4048
4049    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
4050
4051    On OpenBSD the number of cores online is often less
4052    than what HW_NCPU would return because OpenBSD disables
4053    simultaneous multi-threading (SMT) by default.
4054
4055    Thanks to Christian Weisgerber.
4056
4057 m4/tuklib_cpucores.m4        | 5 +++++
4058 src/common/tuklib_cpucores.c | 9 +++++++++
4059 2 files changed, 14 insertions(+)
4060
4061commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
4062Author: Lasse Collin <lasse.collin@tukaani.org>
4063Date:   2022-10-19 19:39:35 +0300
4064
4065    Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
4066
4067    This isn't perfect as the scripts can still fail if only
4068    certain filters are disabled. This is still an improvement
4069    as now "make check" has better behavior when all encoders
4070    or decoders are disabled.
4071
4072    Grepping ../config.h is simple and fairly clean but it only
4073    works if config.h was created. CMake builds don't create
4074    config.h but they don't use these test scripts either.
4075
4076    Thanks to Sebastian Andrzej Siewior for reporting the problem.
4077    Thanks to Jia Tan for the original patch which grepped xz
4078    error messages instead of config.h.
4079
4080 tests/test_compress.sh | 12 ++++++++++++
4081 tests/test_files.sh    | 11 +++++++++++
4082 tests/test_scripts.sh  | 11 +++++++++++
4083 3 files changed, 34 insertions(+)
4084
4085commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
4086Author: Lasse Collin <lasse.collin@tukaani.org>
4087Date:   2022-10-19 18:54:34 +0300
4088
4089    Test: Remove the (exit 1) lines.
4090
4091    I suspect that I used these in the original version because
4092    Autoconf's manual describes that such a trick is needed in
4093    some specific situations for portability reasons. None of those
4094    situations listed on Autoconf 2.71 manual apply to these test
4095    scripts though so this cleans them up.
4096
4097 tests/test_compress.sh | 10 ----------
4098 tests/test_files.sh    |  9 ---------
4099 tests/test_scripts.sh  |  6 ------
4100 3 files changed, 25 deletions(-)
4101
4102commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
4103Author: Lasse Collin <lasse.collin@tukaani.org>
4104Date:   2022-10-19 17:14:57 +0300
4105
4106    Tests: Fix a warning in test_memlimit.c when decoders are disabled.
4107
4108 tests/test_memlimit.c | 3 +++
4109 1 file changed, 3 insertions(+)
4110
4111commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
4112Author: Lasse Collin <lasse.collin@tukaani.org>
4113Date:   2022-10-19 17:11:46 +0300
4114
4115    Tests: Add test_memlimit to .gitignore.
4116
4117    Thanks to Jia Tan.
4118
4119 .gitignore | 1 +
4120 1 file changed, 1 insertion(+)
4121
4122commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
4123Author: Jia Tan <jiat0218@gmail.com>
4124Date:   2022-10-06 21:53:09 +0300
4125
4126    Tests: Refactor test_stream_flags.c.
4127
4128    Converts test_stream_flags to tuktest. Also the test will now
4129    compile and skip properly if encoders or decoders are disabled.
4130
4131    Thanks to Sebastian Andrzej Siewior.
4132
4133 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++----------
4134 1 file changed, 416 insertions(+), 117 deletions(-)
4135
4136commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
4137Author: Jia Tan <jiat0218@gmail.com>
4138Date:   2022-10-06 17:00:38 +0800
4139
4140    Tests: Refactor test_block_header.c.
4141
4142    test_block_header now achieves higher test coverage. Also the
4143    test will now compile and skip properly if encoders or decoders
4144    are disabled.
4145
4146    Thanks to Sebastian Andrzej Siewior.
4147
4148 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++-----------
4149 1 file changed, 370 insertions(+), 116 deletions(-)
4150
4151commit 84963318952064a93bfc52edd6b0ef70593384ee
4152Author: Jia Tan <jiat0218@gmail.com>
4153Date:   2022-10-05 23:54:12 +0800
4154
4155    Tests: Fix compilation issues.
4156
4157    test_bcj_exact_size, test_check, test_hardware, and test_index will
4158    all now compile and skip properly if encoders or decoders are disabled.
4159
4160    Also fixed a small typo (disabed -> disabled).
4161
4162    Thanks to Sebastian Andrzej Siewior.
4163
4164 tests/test_bcj_exact_size.c | 20 ++++++++++++++------
4165 tests/test_check.c          |  8 +++++++-
4166 tests/test_hardware.c       |  2 +-
4167 tests/test_index.c          |  6 ++++++
4168 tests/test_memlimit.c       | 16 +++++++++++++++-
4169 tests/test_vli.c            | 13 +++++++++++++
4170 6 files changed, 56 insertions(+), 9 deletions(-)
4171
4172commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
4173Author: Lasse Collin <lasse.collin@tukaani.org>
4174Date:   2022-10-05 16:20:47 +0300
4175
4176    Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.
4177
4178 tests/test_check.c    | 1 +
4179 tests/test_hardware.c | 1 +
4180 tests/test_memlimit.c | 1 +
4181 3 files changed, 3 insertions(+)
4182
4183commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
4184Author: Jia Tan <jiat0218@gmail.com>
4185Date:   2022-10-05 20:57:16 +0800
4186
4187    liblzma: Fix a compilation issue when encoders are disabled.
4188
4189    When encoders were disabled and threading enabled, outqueue.c and
4190    outqueue.h were not compiled. The multi threaded decoder required
4191    these files, so compilation failed.
4192
4193 src/liblzma/common/Makefile.inc | 7 ++++---
4194 1 file changed, 4 insertions(+), 3 deletions(-)
4195
4196commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
4197Author: Jia Tan <jiat0218@gmail.com>
4198Date:   2022-10-05 16:41:38 +0800
4199
4200    Tests: Fix compilation error when threading support has been disabled.
4201
4202    Now tests that require threading are skipped when threading
4203    support has been disabled.
4204
4205    Thanks to Sebastian Andrzej Siewior.
4206
4207 tests/test_check.c    | 4 ++++
4208 tests/test_hardware.c | 4 ++++
4209 tests/test_memlimit.c | 4 ++++
4210 3 files changed, 12 insertions(+)
4211
4212commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
4213Author: Lasse Collin <lasse.collin@tukaani.org>
4214Date:   2022-10-05 14:26:00 +0300
4215
4216    tuklib_integer: Add 64-bit endianness-converting reads and writes.
4217
4218    Also update the comment in liblzma's memcmplen.h.
4219
4220    Thanks to Michał Górny for the original patch for the reads.
4221
4222 m4/tuklib_integer.m4           |  8 ++++----
4223 src/common/tuklib_integer.h    | 46 ++++++++++++++++++++++++++++++++++++++++--
4224 src/liblzma/common/memcmplen.h |  9 +++------
4225 3 files changed, 51 insertions(+), 12 deletions(-)
4226
4227commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
4228Author: Lasse Collin <lasse.collin@tukaani.org>
4229Date:   2022-09-30 12:06:13 +0300
4230
4231    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
4232
4233    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.
4234
4235 src/liblzma/api/lzma/base.h | 11 +++++++++++
4236 1 file changed, 11 insertions(+)
4237
4238commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
4239Author: Jia Tan <jiat0218@gmail.com>
4240Date:   2022-09-21 16:15:50 +0800
4241
4242    liblzma: Add dest and src NULL checks to lzma_index_cat.
4243
4244    The documentation states LZMA_PROG_ERROR can be returned from
4245    lzma_index_cat. Previously, lzma_index_cat could not return
4246    LZMA_PROG_ERROR. Now, the validation is similar to
4247    lzma_index_append, which does a NULL check on the index
4248    parameter.
4249
4250 src/liblzma/common/index.c | 3 +++
4251 1 file changed, 3 insertions(+)
4252
4253commit afd5a8bf5374eba82804a999e1ea7af680784086
4254Author: Jia Tan <jiat0218@gmail.com>
4255Date:   2022-09-21 20:29:28 +0800
4256
4257    Tests: Create a test for the lzma_index_cat bug.
4258
4259 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
4260 1 file changed, 42 insertions(+), 1 deletion(-)
4261
4262commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
4263Author: Jia Tan <jiat0218@gmail.com>
4264Date:   2022-09-21 19:28:53 +0800
4265
4266    liblzma: Fix copying of check type statistics in lzma_index_cat().
4267
4268    The check type of the last Stream in dest was never copied to
4269    dest->checks (the code tried to copy it but it was done too late).
4270    This meant that the value returned by lzma_index_checks() would
4271    only include the check type of the last Stream when multiple
4272    lzma_indexes had been concatenated.
4273
4274    In xz --list this meant that the summary would only list the
4275    check type of the last Stream, so in this sense this was only
4276    a visual bug. However, it's possible that some applications
4277    use this information for purposes other than merely showing
4278    it to the users in an informational message. I'm not aware of
4279    such applications though and it's quite possible that such
4280    applications don't exist.
4281
4282    Regular streamed decompression in xz or any other application
4283    doesn't use lzma_index_cat() and so this bug cannot affect them.
4284
4285 src/liblzma/common/index.c | 7 ++++++-
4286 1 file changed, 6 insertions(+), 1 deletion(-)
4287
4288commit a61d32172789735350a941e23baf6b587c49e5d9
4289Author: Lasse Collin <lasse.collin@tukaani.org>
4290Date:   2022-09-28 12:20:41 +0300
4291
4292    tuklib_physmem: Fix Unicode builds on Windows.
4293
4294    Thanks to ArSaCiA Game.
4295
4296 src/common/tuklib_physmem.c | 2 +-
4297 1 file changed, 1 insertion(+), 1 deletion(-)
4298
4299commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
4300Author: Lasse Collin <lasse.collin@tukaani.org>
4301Date:   2022-09-28 11:12:07 +0300
4302
4303    Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.
4304
4305 tests/Makefile.am     |   2 +
4306 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
4307 2 files changed, 153 insertions(+)
4308
4309commit 660739f99ab211edec4071de98889fb32ed04e98
4310Author: Lasse Collin <lasse.collin@tukaani.org>
4311Date:   2022-09-28 11:05:15 +0300
4312
4313    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
4314
4315    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
4316    to use lzma_memlimit_set() to increase the limit and continue
4317    decoding. This was supposed to work from the beginning but
4318    there was a bug. With other decoders (.lzma or threaded .xz)
4319    this already worked correctly.
4320
4321 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
4322 1 file changed, 13 insertions(+), 3 deletions(-)
4323
4324commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
4325Author: Lasse Collin <lasse.collin@tukaani.org>
4326Date:   2022-09-28 11:00:23 +0300
4327
4328    liblzma: Stream decoder: Fix comments.
4329
4330 src/liblzma/common/stream_decoder.c | 12 +++++-------
4331 1 file changed, 5 insertions(+), 7 deletions(-)
4332
4333commit f664cb25841fc1c478b819034a224a558e2ac6e7
4334Author: Lasse Collin <lasse.collin@tukaani.org>
4335Date:   2022-09-20 16:58:22 +0300
4336
4337    liblzma: ARM64: Add comments.
4338
4339 src/liblzma/simple/arm64.c | 13 +++++++++++++
4340 1 file changed, 13 insertions(+)
4341
4342commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
4343Author: Lasse Collin <lasse.collin@tukaani.org>
4344Date:   2022-09-20 16:27:50 +0300
4345
4346    liblzma: ARM64: Fix wrong comment in API doc.
4347
4348    Thanks to Jia Tan.
4349
4350 src/liblzma/api/lzma/bcj.h | 4 ++--
4351 1 file changed, 2 insertions(+), 2 deletions(-)
4352
4353commit d5b0906fa55157f48c200188a3951d80df9cb308
4354Author: Lasse Collin <lasse.collin@tukaani.org>
4355Date:   2022-09-19 20:24:26 +0300
4356
4357    xz: Add --experimental-arm64[=width=WIDTH].
4358
4359    It will be renamed to --arm64 once it is stable.
4360
4361    Man page or --long-help weren't updated yet.
4362
4363 src/xz/args.c    |  7 +++++++
4364 src/xz/message.c |  7 +++++++
4365 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++
4366 src/xz/options.h |  7 +++++++
4367 4 files changed, 60 insertions(+)
4368
4369commit ecb966de308c255bb4735a7307ef9901c643a9de
4370Author: Lasse Collin <lasse.collin@tukaani.org>
4371Date:   2022-09-19 19:34:56 +0300
4372
4373    liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID.
4374
4375    That is, the Filter ID will be changed once the design is final.
4376    The current version will be removed. So files created with the
4377    tempoary Filter ID won't be supported in the future.
4378
4379 CMakeLists.txt                      |   3 +
4380 configure.ac                        |   4 +-
4381 src/liblzma/api/lzma/bcj.h          |  35 +++++-
4382 src/liblzma/common/filter_common.c  |   9 ++
4383 src/liblzma/common/filter_decoder.c |   8 ++
4384 src/liblzma/common/filter_encoder.c |  11 ++
4385 src/liblzma/simple/Makefile.inc     |   4 +
4386 src/liblzma/simple/arm64.c          | 227 ++++++++++++++++++++++++++++++++++++
4387 src/liblzma/simple/simple_coder.h   |   9 ++
4388 src/liblzma/simple/simple_decoder.h |   4 +
4389 src/liblzma/simple/simple_encoder.h |   2 +
4390 11 files changed, 313 insertions(+), 3 deletions(-)
4391
4392commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
4393Author: Lasse Collin <lasse.collin@tukaani.org>
4394Date:   2022-09-17 22:42:18 +0300
4395
4396    liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
4397
4398    This will be needed for the ARM64 BCJ filter as it will use
4399    its own options struct.
4400
4401 src/liblzma/simple/arm.c            | 2 +-
4402 src/liblzma/simple/armthumb.c       | 2 +-
4403 src/liblzma/simple/ia64.c           | 2 +-
4404 src/liblzma/simple/powerpc.c        | 2 +-
4405 src/liblzma/simple/simple_coder.c   | 4 ++--
4406 src/liblzma/simple/simple_private.h | 2 +-
4407 src/liblzma/simple/sparc.c          | 2 +-
4408 src/liblzma/simple/x86.c            | 3 ++-
4409 8 files changed, 10 insertions(+), 9 deletions(-)
4410
4411commit c3592d0a55114144686ecf960cb516d6b31c98e9
4412Author: Lasse Collin <lasse.collin@tukaani.org>
4413Date:   2022-09-16 17:08:53 +0300
4414
4415    Tests: Add a test file for lzma_index_append() integer overflow bug.
4416
4417    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
4418
4419    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
4420    because only then the previously-buggy code path gets tested.
4421    Normal decompression doesn't use lzma_index_append() at all.
4422    Instead, lzma_index_hash functions are used and those already
4423    did the overflow check.
4424
4425 tests/files/README                         |  10 ++++++++++
4426 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
4427 tests/test_files.sh                        |   8 ++++++++
4428 3 files changed, 18 insertions(+)
4429
4430commit 982b29f828079a2a26253a40e975127a40a7d2bd
4431Author: Lasse Collin <lasse.collin@tukaani.org>
4432Date:   2022-09-16 15:10:07 +0300
4433
4434    Translations: Add Turkish translation.
4435
4436 po/LINGUAS |   1 +
4437 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4438 2 files changed, 978 insertions(+)
4439
4440commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
4441Author: Lasse Collin <lasse.collin@tukaani.org>
4442Date:   2022-09-16 14:09:07 +0300
4443
4444    Update THANKS.
4445
4446 THANKS | 1 +
4447 1 file changed, 1 insertion(+)
4448
4449commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
4450Author: Lasse Collin <lasse.collin@tukaani.org>
4451Date:   2022-09-16 14:07:03 +0300
4452
4453    xzgrep: Fix compatibility with old shells.
4454
4455    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
4456
4457        xzgrep: line 231: syntax error near unexpected token `;;'
4458
4459    On SCO OpenServer 5.0.7 with Korn Shell 93r:
4460
4461        syntax error at line 231 : `;;' unexpected
4462
4463    Turns out that some old shells don't like apostrophes (') inside
4464    command substitutions. For example, the following fails:
4465
4466        x=$(echo foo
4467        # asdf'zxcv
4468        echo bar)
4469        printf '%s\n' "$x"
4470
4471    The problem was introduced by commits
4472    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
4473    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
4474    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
4475    5.2.6 is the only stable release that included
4476    this problem.
4477
4478    Thanks to Kevin R. Bulgrien for reporting the problem
4479    on SCO OpenServer 5.0.7 and for providing the fix.
4480
4481 src/scripts/xzgrep.in | 6 +++---
4482 1 file changed, 3 insertions(+), 3 deletions(-)
4483
4484commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
4485Author: Lasse Collin <lasse.collin@tukaani.org>
4486Date:   2022-09-09 14:12:30 +0300
4487
4488    Tests: Silence warnings about unused functions from tuktest.h.
4489
4490    Warnings about unused tuktest_run_test conveniently tell which
4491    test programs haven't been converted to tuktest.h yet but I
4492    silenced that warning too for now anyway.
4493
4494    It is fine to use __attribute__((__unused__)) even when the
4495    function is actually used because the attribute only means
4496    that the function might be unused.
4497
4498 tests/tuktest.h | 10 ++++++++++
4499 1 file changed, 10 insertions(+)
4500
4501commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
4502Author: Lasse Collin <lasse.collin@tukaani.org>
4503Date:   2022-09-09 13:51:57 +0300
4504
4505    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
4506
4507    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
4508    this. Before this patch, failing lzma_filters_copy() could result
4509    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
4510    or stream_encoder_mt.c.
4511
4512    To trigger this, allocating memory for a filter options structure
4513    has to fail. These are tiny allocations so in practice they very
4514    rarely fail.
4515
4516    Certain badness in the filter chain array could also make
4517    lzma_filters_copy() fail but both stream_encoder.c and
4518    stream_encoder_mt.c validate the filter chain before
4519    trying to copy it, so the crash cannot occur this way.
4520
4521 src/liblzma/api/lzma/filter.h      |  4 +++-
4522 src/liblzma/common/filter_common.c | 18 ++++++++++++------
4523 2 files changed, 15 insertions(+), 7 deletions(-)
4524
4525commit 18d7facd3802b55c287581405c4d49c98708c136
4526Author: Jia Tan <jiat0218@gmail.com>
4527Date:   2022-09-02 20:18:55 +0800
4528
4529    liblzma: lzma_index_append: Add missing integer overflow check.
4530
4531    The documentation in src/liblzma/api/lzma/index.h suggests that
4532    both the unpadded (compressed) size and the uncompressed size
4533    are checked for overflow, but only the unpadded size was checked.
4534    The uncompressed check is done first since that is more likely to
4535    occur than the unpadded or index field size overflows.
4536
4537 src/liblzma/common/index.c | 4 ++++
4538 1 file changed, 4 insertions(+)
4539
4540commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
4541Author: Lasse Collin <lasse.collin@tukaani.org>
4542Date:   2022-09-08 15:11:08 +0300
4543
4544    Update THANKS.
4545
4546 THANKS | 1 +
4547 1 file changed, 1 insertion(+)
4548
4549commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
4550Author: Jia Tan <jiat0218@gmail.com>
4551Date:   2022-09-08 15:07:00 +0300
4552
4553    CMake: Clarify a comment about Windows symlinks without file extension.
4554
4555 CMakeLists.txt | 7 +++----
4556 1 file changed, 3 insertions(+), 4 deletions(-)
4557
4558commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
4559Author: Lasse Collin <lasse.collin@tukaani.org>
4560Date:   2022-09-08 15:02:41 +0300
4561
4562    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
4563
4564    The previous commit split liblzma.map into liblzma_linux.map and
4565    liblzma_generic.map. This commit updates the CMake build for those.
4566
4567    common_w32res.rc dependency was listed under Linux/FreeBSD while
4568    obviously it belongs to Windows when building a DLL.
4569
4570 CMakeLists.txt | 24 +++++++++++++++++++-----
4571 1 file changed, 19 insertions(+), 5 deletions(-)
4572
4573commit 913ddc5572b9455fa0cf299be2e35c708840e922
4574Author: Lasse Collin <lasse.collin@tukaani.org>
4575Date:   2022-09-04 23:23:00 +0300
4576
4577    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
4578
4579    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
4580    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
4581    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
4582    API/ABI compatibility tracking isn't done between development
4583    releases so newer releases didn't have XZ_5.1.2alpha anymore.
4584
4585    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
4586    the exported symbols compatible with 5.1.2alpha. After checking
4587    the ABI changes it turned out that >= 5.2.0 ABI is backward
4588    compatible with the threaded encoder functions from 5.1.2alpha
4589    (but not vice versa as fixes and extensions to these functions
4590    were made between 5.1.2alpha and 5.2.0).
4591
4592    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
4593    xz-5.2.2-compat-libs.patch to modify liblzma.map:
4594
4595      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
4596        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
4597
4598      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
4599        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
4600        has never been used in XZ Utils). So XZ_5.2.2 lists all
4601        symbols that were listed under XZ_5.2 before the patch.
4602        lzma_stream_encoder_mt and _mt_memusage are included too so
4603        they are listed both here and under XZ_5.1.2alpha.
4604
4605    The patch didn't add any __asm__(".symver ...") lines to the .c
4606    files. Thus the resulting liblzma.so exports the threaded encoder
4607    functions under XZ_5.1.2alpha only. Listing the two functions
4608    also under XZ_5.2.2 in liblzma.map has no effect without
4609    matching .symver lines.
4610
4611    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
4612    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
4613    This is unfortunate but this alone isn't too bad as the problem
4614    is contained within RHEL/CentOS 7 and doesn't affect users
4615    of other distributions. It could also be fixed internally in
4616    RHEL/CentOS 7.
4617
4618    The second problem is more serious: In XZ Utils 5.2.2 the API
4619    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
4620    This is true in RHEL/CentOS 7 version too. Thus now programs
4621    using new APIs can be compiled without an extra #define. However,
4622    the programs end up depending on symbol version XZ_5.1.2alpha
4623    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
4624    with an unpatched XZ Utils 5.2.2. This means that such binaries
4625    won't run on other distributions shipping XZ Utils >= 5.2.0 as
4626    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
4627    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
4628    luckily isn't included there anymore with XZ Utils 5.2.4.)
4629
4630    Binaries built by RHEL/CentOS 7 users get distributed and then
4631    people wonder why they don't run on some other distribution.
4632    Seems that people have found out about the patch and been copying
4633    it to some build scripts, seemingly curing the symptoms but
4634    actually spreading the illness further and outside RHEL/CentOS 7.
4635
4636    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
4637    had spread at least to EasyBuild. I heard about the events only
4638    recently. :-(
4639
4640    This commit splits liblzma.map into two versions: one for
4641    GNU/Linux and another for other OSes that can use symbol versioning
4642    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
4643    matching additions to .c files add full compatibility with binaries
4644    that have been built against a RHEL/CentOS-patched liblzma. Builds
4645    for OSes other than GNU/Linux won't get the vaccine as they should
4646    be immune to the problem (I really hope that no build script uses
4647    the RHEL/CentOS 7 patch outside GNU/Linux).
4648
4649    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
4650    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
4651    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
4652    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
4653    since XZ_5.2 {...} is the first one that lists that function.
4654    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
4655    will be missing but that's still a minor problem compared to
4656    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
4657
4658    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
4659    to be moved around. It doesn't matter where it is put.
4660
4661    Having two similar liblzma_*.map files is a bit silly as it is,
4662    at least for now, easily possible to generate the generic one
4663    from the Linux-specific file. But that adds extra steps and
4664    increases the risk of mistakes when supporting more than one
4665    build system. So I rather maintain two files in parallel and let
4666    validate_map.sh check that they are in sync when "make mydist"
4667    is run.
4668
4669    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
4670    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
4671    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
4672    for these two). I added these anyway because someone might
4673    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
4674    (@@XZ_5.2.2) versions were exported too.
4675
4676    At glance one could suggest using __typeof__ to copy the function
4677    prototypes when making aliases. However, this doesn't work trivially
4678    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
4679    and it won't change symbol visibility from hidden to default (done
4680    by LZMA_API()). Attributes could be copied with __copy__ attribute
4681    but that needs GCC 9 and a fallback method would be needed anyway.
4682
4683    This uses __symver__ attribute with GCC >= 10 and
4684    __asm__(".symver ...") with everything else. The attribute method
4685    is required for LTO (-flto) support with GCC. Using -flto with
4686    GCC older than 10 is now broken on GNU/Linux and will not be fixed
4687    (can silently result in a broken liblzma build that has dangerously
4688    incorrect symbol versions). LTO builds with Clang seem to work
4689    with the traditional __asm__(".symver ...") method.
4690
4691    Thanks to Boud Roukema for reporting the problem and discussing
4692    the details and testing the fix.
4693
4694 configure.ac                                     |  23 +++-
4695 src/liblzma/Makefile.am                          |  10 +-
4696 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
4697 src/liblzma/common/common.c                      |  14 +++
4698 src/liblzma/common/common.h                      |  28 +++++
4699 src/liblzma/common/hardware_cputhreads.c         |  12 +++
4700 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
4701 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
4702 src/liblzma/liblzma_linux.map                    | 131 +++++++++++++++++++++++
4703 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++--
4704 10 files changed, 382 insertions(+), 15 deletions(-)
4705
4706commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
4707Author: Lasse Collin <lasse.collin@tukaani.org>
4708Date:   2022-08-31 16:42:04 +0300
4709
4710    CMake: Add xz symlinks.
4711
4712    These are a minor thing especially since the xz build has
4713    some real problems still like lack of large file support
4714    on 32-bit systems but I'll commit this since the code exists.
4715
4716    Thanks to Jia Tan.
4717
4718 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
4719 1 file changed, 37 insertions(+), 1 deletion(-)
4720
4721commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
4722Author: Lasse Collin <lasse.collin@tukaani.org>
4723Date:   2022-08-31 16:29:38 +0300
4724
4725    CMake: Put xz man page install under if(UNIX) like is for xzdec.
4726
4727    Thanks to Jia Tan.
4728
4729 CMakeLists.txt | 8 +++++---
4730 1 file changed, 5 insertions(+), 3 deletions(-)
4731
4732commit c1555b1a221a1427d4d650647531016d754bc4da
4733Author: Lasse Collin <lasse.collin@tukaani.org>
4734Date:   2022-08-22 18:16:40 +0300
4735
4736    Bump version number for 5.3.3alpha.
4737
4738 src/liblzma/api/lzma/version.h | 2 +-
4739 src/liblzma/liblzma.map        | 2 +-
4740 2 files changed, 2 insertions(+), 2 deletions(-)
4741
4742commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
4743Author: Lasse Collin <lasse.collin@tukaani.org>
4744Date:   2022-08-22 18:13:56 +0300
4745
4746    Add NEWS for 5.3.3alpha.
4747
4748 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4749 1 file changed, 119 insertions(+)
4750
4751commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
4752Author: Lasse Collin <lasse.collin@tukaani.org>
4753Date:   2022-07-12 17:59:41 +0300
4754
4755    Translations: Add Portuguese translation.
4756
4757    Jia Tan made white-space changes and also changed "Language: pt_BR\n"
4758    to pt. The translator wasn't reached so I'm hoping these changes
4759    are OK and will commit it without translator's approval.
4760
4761    Thanks to Pedro Albuquerque and Jia Tan.
4762
4763 po/LINGUAS |    1 +
4764 po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4765 2 files changed, 1002 insertions(+)
4766
4767commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
4768Author: Lasse Collin <lasse.collin@tukaani.org>
4769Date:   2022-07-10 21:16:40 +0300
4770
4771    Translations: Add Serbian translation.
4772
4773    Quite a few white-space changes were made by Jia Tan to make
4774    this look good. Contacting the translator didn't succeed so
4775    I'm committing this without getting translator's approval.
4776
4777    Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan.
4778
4779 po/LINGUAS |   1 +
4780 po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4781 2 files changed, 988 insertions(+)
4782
4783commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
4784Author: Lasse Collin <lasse.collin@tukaani.org>
4785Date:   2022-07-04 23:51:36 +0300
4786
4787    Translations: Add Swedish translation.
4788
4789    Thanks to Sebastian Rasmussen and Jia Tan.
4790
4791 po/LINGUAS |   1 +
4792 po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4793 2 files changed, 984 insertions(+)
4794
4795commit c613598c358b640682d0ca2aed38fa7df763e8c7
4796Author: Lasse Collin <lasse.collin@tukaani.org>
4797Date:   2022-07-04 23:40:27 +0300
4798
4799    Translations: Add Esperanto translation.
4800
4801    Thanks to Keith Bowes and Jia Tan.
4802
4803 po/LINGUAS |   1 +
4804 po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4805 2 files changed, 985 insertions(+)
4806
4807commit 659a587d678f21e98e91d2751c31d4ce050c081a
4808Author: Lasse Collin <lasse.collin@tukaani.org>
4809Date:   2022-07-01 00:22:33 +0300
4810
4811    Translations: Add Catalan translation.
4812
4813    Thanks to Jordi Mas and Jia Tan.
4814
4815 po/LINGUAS |    1 +
4816 po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4817 2 files changed, 1077 insertions(+)
4818
4819commit 739fd8c9bdf1d85f57d56642aad87148d4779530
4820Author: Lasse Collin <lasse.collin@tukaani.org>
4821Date:   2022-06-30 17:47:08 +0300
4822
4823    Translations: Add Ukrainian translation.
4824
4825    Thanks to Yuri Chornoivan and Jia Tan.
4826
4827 po/LINGUAS |   1 +
4828 po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4829 2 files changed, 997 insertions(+)
4830
4831commit 73280550b111930c62a667e56add8fd574f80bc8
4832Author: Lasse Collin <lasse.collin@tukaani.org>
4833Date:   2022-06-30 17:45:26 +0300
4834
4835    Translators: Add Romanian translation.
4836
4837    Thanks to Remus-Gabriel Chelu and Jia Tan.
4838
4839 po/LINGUAS |    1 +
4840 po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4841 2 files changed, 1017 insertions(+)
4842
4843commit 2465f5b825152714b2c357d96c2422c31109d320
4844Author: Lasse Collin <lasse.collin@tukaani.org>
4845Date:   2022-06-29 18:33:32 +0300
4846
4847    Translations: Update Brazilian Portuguese translation.
4848
4849    One msgstr was changed. The diff is long due to changes
4850    in the source code line numbers in the comments.
4851
4852    Thanks to Rafael Fontenelle.
4853
4854 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
4855 1 file changed, 92 insertions(+), 94 deletions(-)
4856
4857commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
4858Author: Lasse Collin <lasse.collin@tukaani.org>
4859Date:   2022-06-29 18:04:44 +0300
4860
4861    Translations: Add Croatian translation.
4862
4863    Thanks to Božidar Putanec and Jia Tan.
4864
4865 po/LINGUAS |   1 +
4866 po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4867 2 files changed, 988 insertions(+)
4868
4869commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
4870Author: Lasse Collin <lasse.collin@tukaani.org>
4871Date:   2022-06-29 17:58:48 +0300
4872
4873    Translations: Add Spanish translation.
4874
4875    Thanks to Cristian Othón Martínez Vera and Jia Tan.
4876
4877 po/LINGUAS |   1 +
4878 po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4879 2 files changed, 985 insertions(+)
4880
4881commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
4882Author: Lasse Collin <lasse.collin@tukaani.org>
4883Date:   2022-06-29 17:49:43 +0300
4884
4885    Translations: Add Korean translation.
4886
4887    Thanks to Seong-ho Cho and Jia Tan.
4888
4889 po/LINGUAS |   1 +
4890 po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4891 2 files changed, 973 insertions(+)
4892
4893commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
4894Author: Lasse Collin <lasse.collin@tukaani.org>
4895Date:   2020-03-16 21:57:21 +0200
4896
4897    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
4898
4899    "make dist" updates the .po files and the fuzzy strings would
4900    result in multiple very wrong translations.
4901
4902 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
4903 1 file changed, 322 insertions(+), 270 deletions(-)
4904
4905commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
4906Author: Lasse Collin <lasse.collin@tukaani.org>
4907Date:   2020-03-16 17:30:39 +0200
4908
4909    Translations: Add partial Danish translation.
4910
4911    I made a few minor white space changes without getting them
4912    approved by the Danish translation team.
4913
4914 po/LINGUAS |   1 +
4915 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4916 2 files changed, 897 insertions(+)
4917
4918commit 43e09c62e77cb8807d932c81de4decbdb956e184
4919Author: Lasse Collin <lasse.collin@tukaani.org>
4920Date:   2020-03-11 22:37:54 +0200
4921
4922    Translations: Add hu, zh_CN, and zh_TW.
4923
4924    I made a few white space changes to these without getting them
4925    approved by the translation teams. (I tried to contact the hu and
4926    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
4927
4928 po/LINGUAS  |   3 +
4929 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4930 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4931 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4932 4 files changed, 2907 insertions(+)
4933
4934commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
4935Author: Lasse Collin <lasse.collin@tukaani.org>
4936Date:   2020-03-11 14:33:30 +0200
4937
4938    Translations: Update vi.po to match the file from the TP.
4939
4940    The translated strings haven't been updated but word wrapping
4941    is different.
4942
4943 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
4944 1 file changed, 179 insertions(+), 228 deletions(-)
4945
4946commit 801f39691fc4abc6dd33d7653d498781b593f3eb
4947Author: Lasse Collin <lasse.collin@tukaani.org>
4948Date:   2020-03-11 14:18:03 +0200
4949
4950    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
4951
4952    The German translation isn't identical to the file in
4953    the Translation Project but the changes (white space changes
4954    only) were approved by the translator Mario Blättermann.
4955
4956 po/LINGUAS  |    2 +
4957 po/de.po    |  476 ++++++++++++++--------------
4958 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4959 po/fr.po    |  272 ++++++++--------
4960 po/it.po    |  479 ++++++++++++----------------
4961 po/pl.po    |  239 +++++++-------
4962 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4963 7 files changed, 2697 insertions(+), 746 deletions(-)
4964
4965commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
4966Author: Lasse Collin <lasse.collin@tukaani.org>
4967Date:   2022-08-22 17:27:19 +0300
4968
4969    xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress.
4970
4971 src/xz/xz.1 | 31 +++++++++++++++++++------------
4972 1 file changed, 19 insertions(+), 12 deletions(-)
4973
4974commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
4975Author: Lasse Collin <lasse.collin@tukaani.org>
4976Date:   2022-08-22 16:46:18 +0300
4977
4978    CMake: Add liblzma tests.
4979
4980    Thanks to Jia Tan for the patch.
4981
4982 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
4983 1 file changed, 52 insertions(+), 1 deletion(-)
4984
4985commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
4986Author: Lasse Collin <lasse.collin@tukaani.org>
4987Date:   2022-08-19 23:32:22 +0300
4988
4989    xz: Revise --info-memory output.
4990
4991    The strings could be more descriptive but it's good
4992    to have some version of this committed now.
4993
4994    --robot mode wasn't changed yet.
4995
4996 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------
4997 src/xz/xz.1       |  1 +
4998 2 files changed, 27 insertions(+), 6 deletions(-)
4999
5000commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
5001Author: Lasse Collin <lasse.collin@tukaani.org>
5002Date:   2022-08-19 23:12:02 +0300
5003
5004    xz: Update the man page for threaded decompression and memlimits.
5005
5006    This documents the changes made in commits
5007    6c6da57ae2aa962aabde6892442227063d87e88c,
5008    cad299008cf73ec566f0662a9cf2b94f86a99659, and
5009    898faa97287a756231c663a3ed5165672b417207.
5010
5011    The --info-memory bit hasn't been finished yet
5012    even though it's already mentioned in this commit
5013    under --memlimit-mt-decompress and --threads.
5014
5015 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
5016 1 file changed, 121 insertions(+), 27 deletions(-)
5017
5018commit d13bfcc0056617dd648f655a01653932fad7067f
5019Author: Lasse Collin <lasse.collin@tukaani.org>
5020Date:   2022-08-18 17:49:16 +0300
5021
5022    Build: Include the CMake files in the distribution.
5023
5024    This was supposed to be done in 2020 with 5.2.5 release
5025    already but it was noticed only today. 5.2.5 and 5.2.6
5026    even mention experiemental CMake support in the NEWS entries.
5027
5028    Thanks to Olivier B. for reporting the problem.
5029
5030 Makefile.am | 2 ++
5031 1 file changed, 2 insertions(+)
5032
5033commit e66787bcfefdb93f19c974f895f65969a77937b0
5034Author: Lasse Collin <lasse.collin@tukaani.org>
5035Date:   2022-08-18 17:38:05 +0300
5036
5037    Windows: Fix broken liblzma.dll build with Visual Studio project files.
5038
5039    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
5040    "Windows: Fix building of resource files when config.h isn't used."
5041
5042    That commit fixed liblzma.dll build with CMake while keeping it
5043    working with Autotools on Windows but the VS project files were
5044    forgotten.
5045
5046    I haven't tested these changes.
5047
5048    Thanks to Olivier B. for reporting the bug and for the initial patch.
5049
5050 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
5051 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
5052 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
5053 3 files changed, 18 insertions(+)
5054
5055commit c4e8e5fb311225b8b48d34157891a640b2535e0c
5056Author: Lasse Collin <lasse.collin@tukaani.org>
5057Date:   2022-08-18 17:16:49 +0300
5058
5059    liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used.
5060
5061    It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR)
5062    if LZMA_FINISH is used and there isn't enough input to finish
5063    decoding the Block Header or the Block. The use of LZMA_DATA_ERROR
5064    is simpler and the less risky than LZMA_BUF_ERROR but this might
5065    be changed before 5.4.0.
5066
5067 src/liblzma/api/lzma/container.h       |  6 +++++
5068 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++
5069 2 files changed, 48 insertions(+)
5070
5071commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
5072Author: Lasse Collin <lasse.collin@tukaani.org>
5073Date:   2022-08-12 18:31:47 +0300
5074
5075    Add NEWS for 5.2.6.
5076
5077 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5078 1 file changed, 121 insertions(+)
5079
5080commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
5081Author: Lasse Collin <lasse.collin@tukaani.org>
5082Date:   2022-08-12 14:28:41 +0300
5083
5084    Add Jia Tan to AUTHORS.
5085
5086 AUTHORS | 2 +-
5087 1 file changed, 1 insertion(+), 1 deletion(-)
5088
5089commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
5090Author: Lasse Collin <lasse.collin@tukaani.org>
5091Date:   2022-07-25 19:28:26 +0300
5092
5093    Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
5094
5095    This makes ChangeLog smaller.
5096
5097 Makefile.am | 2 +-
5098 1 file changed, 1 insertion(+), 1 deletion(-)
5099
5100commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
5101Author: Lasse Collin <lasse.collin@tukaani.org>
5102Date:   2022-07-25 19:11:05 +0300
5103
5104    Translations: Change the copyright comment string to use with po4a.
5105
5106    This affects the second line in po4a/xz-man.pot. The man pages of
5107    xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
5108    while the rest of the man pages are in the public domain.
5109
5110 po4a/update-po | 2 +-
5111 1 file changed, 1 insertion(+), 1 deletion(-)
5112
5113commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
5114Author: Jia Tan <jiat0218@gmail.com>
5115Date:   2022-07-25 18:30:05 +0300
5116
5117    liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.
5118
5119 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
5120 1 file changed, 14 insertions(+), 18 deletions(-)
5121
5122commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
5123Author: Jia Tan <jiat0218@gmail.com>
5124Date:   2022-07-25 18:20:01 +0300
5125
5126    Build: Don't allow empty LIST in --enable-match-finders=LIST.
5127
5128    It's enforced only when a match finder is needed, that is,
5129    when LZMA1 or LZMA2 encoder is enabled.
5130
5131 configure.ac | 4 ++++
5132 1 file changed, 4 insertions(+)
5133
5134commit 9cc721af5436908f2d5a828aebbc4050a32a3487
5135Author: Lasse Collin <lasse.collin@tukaani.org>
5136Date:   2022-07-24 13:27:48 +0300
5137
5138    xz: Update the man page that change to --keep will be in 5.2.6.
5139
5140 src/xz/xz.1 | 4 ++--
5141 1 file changed, 2 insertions(+), 2 deletions(-)
5142
5143commit b81bf0c7d1873e52a4086a9abb494471d652cb55
5144Author: Lasse Collin <lasse.collin@tukaani.org>
5145Date:   2022-07-19 23:23:54 +0300
5146
5147    Update THANKS.
5148
5149 THANKS | 1 +
5150 1 file changed, 1 insertion(+)
5151
5152commit 340cf1ec3927767046b8293a49da3db4e393f426
5153Author: Nicholas Jackson <nickajacks1@gmail.com>
5154Date:   2022-07-17 17:39:23 -0700
5155
5156    CMake: Add missing source file to liblzma build
5157
5158 CMakeLists.txt | 1 +
5159 1 file changed, 1 insertion(+)
5160
5161commit d796b6d7fdb8b7238b277056cf9146cce25db604
5162Author: Lasse Collin <lasse.collin@tukaani.org>
5163Date:   2022-07-19 23:19:49 +0300
5164
5165    xzgrep man page: Document exit statuses.
5166
5167 src/scripts/xzgrep.1 | 15 ++++++++++++++-
5168 1 file changed, 14 insertions(+), 1 deletion(-)
5169
5170commit 923bf96b55e5216a6c8df9d8331934f54784390e
5171Author: Lasse Collin <lasse.collin@tukaani.org>
5172Date:   2022-07-19 23:13:24 +0300
5173
5174    xzgrep: Improve error handling, especially signals.
5175
5176    xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
5177    should have. It's quite possible that it's not perfect still
5178    but at least it's much better.
5179
5180    If multiple exit statuses compete, now it tries to pick
5181    the largest of value.
5182
5183    Some comments were added.
5184
5185    The exit status handling of signals is still broken if the shell
5186    uses values larger than 255 in $? to indicate that a process
5187    died due to a signal ***and*** their "exit" command doesn't take
5188    this into account. This seems to work well with the ksh and yash
5189    versions I tried. However, there is a report in gzip/zgrep that
5190    OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
5191    the argument to 8 bits:
5192
5193        https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
5194
5195    Such a bug would break xzgrep but I didn't add a workaround
5196    at least for now. 5.11 is old and I don't know if the problem
5197    exists in modern descendants, or if the problem exists in other
5198    ksh implementations in use.
5199
5200 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
5201 1 file changed, 53 insertions(+), 19 deletions(-)
5202
5203commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
5204Author: Lasse Collin <lasse.collin@tukaani.org>
5205Date:   2022-07-19 00:10:55 +0300
5206
5207    xzgrep: Make the fix for ZDI-CAN-16587 more robust.
5208
5209    I don't know if this can make a difference in the real world
5210    but it looked kind of suspicious (what happens with sed
5211    implementations that cannot process very long lines?).
5212    At least this commit shouldn't make it worse.
5213
5214 src/scripts/xzgrep.in | 5 ++++-
5215 1 file changed, 4 insertions(+), 1 deletion(-)
5216
5217commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
5218Author: Lasse Collin <lasse.collin@tukaani.org>
5219Date:   2022-07-18 21:52:31 +0300
5220
5221    xzgrep: Use grep -H --label when available (GNU, *BSDs).
5222
5223    It avoids the use of sed for prefixing filenames to output lines.
5224    Using sed for that is slower and prone to security bugs so now
5225    the sed method is only used as a fallback.
5226
5227    This also fixes an actual bug: When grepping a binary file,
5228    GNU grep nowadays prints its diagnostics to stderr instead of
5229    stdout and thus the sed-method for prefixing the filename doesn't
5230    work. So with this commit grepping binary files gives reasonable
5231    output with GNU grep now.
5232
5233    This was inspired by zgrep but the implementation is different.
5234
5235 src/scripts/xzgrep.in | 21 +++++++++++++++++++++
5236 1 file changed, 21 insertions(+)
5237
5238commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
5239Author: Lasse Collin <lasse.collin@tukaani.org>
5240Date:   2022-07-18 21:10:25 +0300
5241
5242    xzgrep: Use -e to specify the pattern to grep.
5243
5244    Now we don't need the separate test for adding the -q option
5245    as it can be added directly in the two places where it's needed.
5246
5247 src/scripts/xzgrep.in | 12 ++++--------
5248 1 file changed, 4 insertions(+), 8 deletions(-)
5249
5250commit bad61b5997e6647911974022bfb72f3d4818a594
5251Author: Lasse Collin <lasse.collin@tukaani.org>
5252Date:   2022-07-18 19:18:48 +0300
5253
5254    Scripts: Use printf instead of echo in a few places.
5255
5256    It's a good habbit as echo has some portability corner cases
5257    when the string contents can be anything.
5258
5259 src/scripts/xzdiff.in | 6 +++---
5260 src/scripts/xzgrep.in | 4 ++--
5261 src/scripts/xzless.in | 4 ++--
5262 src/scripts/xzmore.in | 8 ++++----
5263 4 files changed, 11 insertions(+), 11 deletions(-)
5264
5265commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
5266Author: Lasse Collin <lasse.collin@tukaani.org>
5267Date:   2022-07-17 21:36:25 +0300
5268
5269    xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
5270
5271    Also replace one use of expr with printf.
5272
5273    The rationale for LC_ALL=C was already mentioned in
5274    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
5275    issue. However, unrelated uses weren't changed in that commit yet.
5276
5277    POSIX says that with sed and such tools one should use LC_ALL=C
5278    to ensure predictable behavior when strings contain byte sequences
5279    that aren't valid multibyte characters in the current locale. See
5280    under "Application usage" in here:
5281
5282    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
5283
5284    With GNU sed invalid multibyte strings would work without this;
5285    it's documented in its Texinfo manual. Some other implementations
5286    aren't so forgiving.
5287
5288 src/scripts/xzgrep.in | 14 ++++++++------
5289 1 file changed, 8 insertions(+), 6 deletions(-)
5290
5291commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
5292Author: Lasse Collin <lasse.collin@tukaani.org>
5293Date:   2022-07-17 20:55:16 +0300
5294
5295    xzgrep: Fix parsing of certain options.
5296
5297    Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
5298    an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
5299    instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
5300
5301    Add -E, -F, -G, and -P to the "no argument required" list.
5302
5303    Add -X to "argument required" list. It is an
5304    intentionally-undocumented GNU grep option so this isn't
5305    an important option for xzgrep but it seems that other grep
5306    implementations (well, those that I checked) don't support -X
5307    so I hope this change is an improvement still.
5308
5309    grep -d (grep --directories=ACTION) requires an argument. In
5310    contrast to zgrep, I kept -d in the "no argument required" list
5311    because it's not supported in xzgrep (or zgrep). This way
5312    "xzgrep -d" gives an error about option being unsupported instead
5313    of telling that it requires an argument. Both zgrep and xzgrep
5314    tell that it's unsupported if an argument is specified.
5315
5316    Add comments.
5317
5318 src/scripts/xzgrep.in | 19 +++++++++++++++++--
5319 1 file changed, 17 insertions(+), 2 deletions(-)
5320
5321commit 2d2201bc6315deda4d43625aa510972467bd51d4
5322Author: Lasse Collin <lasse.collin@tukaani.org>
5323Date:   2022-07-14 20:33:05 +0300
5324
5325    Tests: Add the .lzma files to test_files.sh.
5326
5327 tests/test_files.sh | 20 ++++++++++++++++++++
5328 1 file changed, 20 insertions(+)
5329
5330commit ce5549a591bf126300618879f5b24023351baff6
5331Author: Lasse Collin <lasse.collin@tukaani.org>
5332Date:   2022-07-14 19:37:42 +0300
5333
5334    Tests: Add .lzma test files.
5335
5336 tests/files/README                                 |  63 ++++++++++++++++-----
5337 tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
5338 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
5339 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
5340 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
5341 tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
5342 tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
5343 tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
5344 tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
5345 9 files changed, 50 insertions(+), 13 deletions(-)
5346
5347commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
5348Author: Lasse Collin <lasse.collin@tukaani.org>
5349Date:   2022-07-14 18:12:38 +0300
5350
5351    liblzma: Rename a variable and improve a comment.
5352
5353 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
5354 1 file changed, 9 insertions(+), 4 deletions(-)
5355
5356commit 511feb5eadb988d641b025d597f4fac7502003b8
5357Author: Lasse Collin <lasse.collin@tukaani.org>
5358Date:   2022-07-13 22:24:41 +0300
5359
5360    Update THANKS.
5361
5362 THANKS | 1 +
5363 1 file changed, 1 insertion(+)
5364
5365commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
5366Author: Lasse Collin <lasse.collin@tukaani.org>
5367Date:   2022-07-13 22:24:07 +0300
5368
5369    liblzma: Add optional autodetection of LZMA end marker.
5370
5371    Turns out that this is needed for .lzma files as the spec in
5372    LZMA SDK says that end marker may be present even if the size
5373    is stored in the header. Such files are rare but exist in the
5374    real world. The code in liblzma is so old that the spec didn't
5375    exist in LZMA SDK back then and I had understood that such
5376    files weren't possible (the lzma tool in LZMA SDK didn't
5377    create such files).
5378
5379    This modifies the internal API so that LZMA decoder can be told
5380    if EOPM is allowed even when the uncompressed size is known.
5381    It's allowed with .lzma and not with other uses.
5382
5383    Thanks to Karl Beldan for reporting the problem.
5384
5385 doc/lzma-file-format.txt               | 11 +++-
5386 src/liblzma/common/alone_decoder.c     |  2 +-
5387 src/liblzma/common/microlzma_decoder.c |  2 +-
5388 src/liblzma/lz/lz_decoder.c            | 10 +++-
5389 src/liblzma/lz/lz_decoder.h            |  8 +--
5390 src/liblzma/lzma/lzma2_decoder.c       |  2 +-
5391 src/liblzma/lzma/lzma_decoder.c        | 99 ++++++++++++++++++++++++----------
5392 7 files changed, 95 insertions(+), 39 deletions(-)
5393
5394commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
5395Author: Lasse Collin <lasse.collin@tukaani.org>
5396Date:   2022-07-12 18:53:04 +0300
5397
5398    xz: Document the special memlimit case of 2000 MiB on MIPS32.
5399
5400    See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7.
5401
5402 src/xz/xz.1 | 8 ++++++--
5403 1 file changed, 6 insertions(+), 2 deletions(-)
5404
5405commit d1bfa3dc703325ecd974167e864a8712fdfe936e
5406Author: Jia Tan <jiat0218@gmail.com>
5407Date:   2022-07-01 21:19:26 +0800
5408
5409    Created script to generate code coverage reports.
5410
5411    The script uses lcov and genhtml after running the tests
5412    to show the code coverage statistics. The script will create
5413    a coverage directory where it is run. It can be run both in
5414    and out of the source directory.
5415
5416 .gitignore             |  4 +++
5417 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
5418 2 files changed, 83 insertions(+)
5419
5420commit 86a30b0255d8064169fabfd213d907016d2f9f2a
5421Author: Jia Tan <jiat0218@gmail.com>
5422Date:   2022-06-16 17:32:19 +0300
5423
5424    Tests: Add more tests into test_check.
5425
5426 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++--
5427 tests/tests.h      |  23 +++++
5428 2 files changed, 295 insertions(+), 7 deletions(-)
5429
5430commit 82e30fed66a89706388a8c15dc954d84e63f38fa
5431Author: Lasse Collin <lasse.collin@tukaani.org>
5432Date:   2022-06-16 15:02:57 +0300
5433
5434    Tests: Use char[][24] array for enum_strings_lzma_ret.
5435
5436    Array of pointers to short strings is a bit pointless here
5437    and now it's fully const.
5438
5439 tests/tests.h | 2 +-
5440 1 file changed, 1 insertion(+), 1 deletion(-)
5441
5442commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
5443Author: Lasse Collin <lasse.collin@tukaani.org>
5444Date:   2022-06-16 14:12:14 +0300
5445
5446    Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.
5447
5448 tests/tuktest.h | 72 +++++++++++++++++++++++++--------------------------------
5449 1 file changed, 32 insertions(+), 40 deletions(-)
5450
5451commit b339892668da20aea22a93668c82b87a38e4a97f
5452Author: Lasse Collin <lasse.collin@tukaani.org>
5453Date:   2022-06-16 13:29:59 +0300
5454
5455    Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.
5456
5457 tests/test_bcj_exact_size.c |  4 +---
5458 tests/tuktest.h             | 52 +++++++++++++++++++++------------------------
5459 2 files changed, 25 insertions(+), 31 deletions(-)
5460
5461commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
5462Author: Lasse Collin <lasse.collin@tukaani.org>
5463Date:   2022-06-16 13:08:19 +0300
5464
5465    Tests: tuktest.h: Add malloc wrapper with automatic freeing.
5466
5467 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5468 1 file changed, 124 insertions(+)
5469
5470commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
5471Author: Lasse Collin <lasse.collin@tukaani.org>
5472Date:   2022-06-16 11:47:37 +0300
5473
5474    Tests: tuktest.h: Move a function.
5475
5476 tests/tuktest.h | 44 ++++++++++++++++++++++----------------------
5477 1 file changed, 22 insertions(+), 22 deletions(-)
5478
5479commit 70c7555f6403553ee35539e869de0025592d8564
5480Author: Lasse Collin <lasse.collin@tukaani.org>
5481Date:   2022-06-14 22:21:15 +0300
5482
5483    Tests: test_vli: Remove an invalid test-assertion.
5484
5485    lzma_vli is unsigned so trying a signed value results in
5486    a compiler warning from -Wsign-conversion. (lzma_vli)-1
5487    equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
5488
5489 tests/test_vli.c | 2 --
5490 1 file changed, 2 deletions(-)
5491
5492commit 154b73c5a1092c3f785e01666b564ad7ff1be555
5493Author: Lasse Collin <lasse.collin@tukaani.org>
5494Date:   2022-06-14 22:10:10 +0300
5495
5496    Tests: test_vli: Add const where appropriate.
5497
5498 tests/test_vli.c | 53 ++++++++++++++++++++++++++++-------------------------
5499 1 file changed, 28 insertions(+), 25 deletions(-)
5500
5501commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
5502Author: Jia Tan <jiat75@gmail.com>
5503Date:   2022-06-13 20:27:03 +0800
5504
5505    Added vli tests to .gitignore
5506
5507 .gitignore | 1 +
5508 1 file changed, 1 insertion(+)
5509
5510commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
5511Author: Jia Tan <jiat0218@gmail.com>
5512Date:   2022-06-12 11:31:40 +0800
5513
5514    Created tests for all functions exported in vli.h
5515
5516    Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
5517
5518 tests/Makefile.am |   4 +-
5519 tests/test_vli.c  | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5520 2 files changed, 311 insertions(+), 1 deletion(-)
5521
5522commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
5523Author: jiat75 <jiat0218@gmail.com>
5524Date:   2022-06-03 21:24:54 +0800
5525
5526    Added parallel test artifacts to .gitignore
5527
5528 .gitignore | 2 ++
5529 1 file changed, 2 insertions(+)
5530
5531commit 00e3613f1212eaa84e721585fdb4de6967cf2476
5532Author: Lasse Collin <lasse.collin@tukaani.org>
5533Date:   2022-06-14 21:29:21 +0300
5534
5535    Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.
5536
5537    It's much nicer this way so that the test data isn't a hardcoded
5538    table inside the C file.
5539
5540 tests/test_bcj_exact_size.c | 19 +++++++------------
5541 1 file changed, 7 insertions(+), 12 deletions(-)
5542
5543commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
5544Author: Lasse Collin <lasse.collin@tukaani.org>
5545Date:   2022-06-14 21:26:13 +0300
5546
5547    Tests: Add file reading helpers to tuktest.h.
5548
5549 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
5550 1 file changed, 176 insertions(+), 7 deletions(-)
5551
5552commit 83d2337b72dbf391c6f3b41889eea99e51679105
5553Author: Lasse Collin <lasse.collin@tukaani.org>
5554Date:   2022-06-14 18:21:57 +0300
5555
5556    Tests: tuktest.h: Move a printf from a macro to a helper function.
5557
5558 tests/tuktest.h | 26 ++++++++++++++++++--------
5559 1 file changed, 18 insertions(+), 8 deletions(-)
5560
5561commit f9e8176ea7d520797a2db2d49a5a632c285674a8
5562Author: Lasse Collin <lasse.collin@tukaani.org>
5563Date:   2022-06-14 17:20:49 +0300
5564
5565    Tests: Add test file good-1-empty-bcj-lzma2.xz.
5566
5567    This is from test_bcj_exact_size.c.
5568    It's good to have it as a standalone file.
5569
5570 tests/files/README                    |   5 +++++
5571 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
5572 2 files changed, 5 insertions(+)
5573
5574commit aa75c5563a760aea3aa23d997d519e702e82726b
5575Author: Jia Tan <jiat0218@gmail.com>
5576Date:   2022-06-10 21:35:18 +0800
5577
5578    Tests: Created tests for hardware functions.
5579
5580    Created tests for all API functions exported in
5581    src/liblzma/api/lzma/hardware.h. The tests are fairly trivial
5582    but are helpful because they will inform users if their machines
5583    cannot support these functions. They also improve the code
5584    coverage metrics.
5585
5586 .gitignore            |  1 +
5587 tests/Makefile.am     |  2 ++
5588 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
5589 3 files changed, 48 insertions(+)
5590
5591commit 5c8ffdca20813939818843476fb212dfae8838a3
5592Author: Lasse Collin <lasse.collin@tukaani.org>
5593Date:   2022-06-02 21:01:45 +0300
5594
5595    Tests: Convert test_check to tuktest.
5596
5597    Thanks to Jia Tan for help with all the tests.
5598
5599 tests/test_check.c | 67 +++++++++++++++++++++++++++---------------------------
5600 1 file changed, 33 insertions(+), 34 deletions(-)
5601
5602commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
5603Author: Lasse Collin <lasse.collin@tukaani.org>
5604Date:   2022-06-02 20:31:03 +0300
5605
5606    Tests: Convert test_block_header to tuktest.
5607
5608 tests/test_block_header.c | 89 +++++++++++++++++++++++++++--------------------
5609 1 file changed, 52 insertions(+), 37 deletions(-)
5610
5611commit 754d39fbebee3782258d42f154a223d3c5770ec7
5612Author: Lasse Collin <lasse.collin@tukaani.org>
5613Date:   2022-06-02 20:28:23 +0300
5614
5615    Tests: Convert test_bcj_exact_size to tuktest.
5616
5617    The compress() and decompress() functions were merged because
5618    the later depends on the former so they need to be a single
5619    test case.
5620
5621 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++--------------------
5622 1 file changed, 41 insertions(+), 34 deletions(-)
5623
5624commit 96da21470f9570cd08286906a050a7c22631775b
5625Author: Lasse Collin <lasse.collin@tukaani.org>
5626Date:   2022-06-02 20:27:00 +0300
5627
5628    Tests: Include tuktest.h in tests.h.
5629
5630    This breaks -Werror because none of the tests so far use
5631    tuktest.h and thus there are warnings about unused variables
5632    and functions.
5633
5634 tests/tests.h | 47 +++++++++++++++++++++++------------------------
5635 1 file changed, 23 insertions(+), 24 deletions(-)
5636
5637commit df71ba1c991f60c3269aaadd398247e632714626
5638Author: Lasse Collin <lasse.collin@tukaani.org>
5639Date:   2022-06-02 20:25:21 +0300
5640
5641    Tests: Add tuktest.h mini-test-framework.
5642
5643 tests/Makefile.am |   1 +
5644 tests/tuktest.h   | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5645 2 files changed, 753 insertions(+)
5646
5647commit 4773608554d1b684a05ff9c1d879cf5c42266d33
5648Author: Lasse Collin <lasse.collin@tukaani.org>
5649Date:   2022-05-23 21:31:36 +0300
5650
5651    Build: Enable Automake's parallel test harness.
5652
5653    It has been the default for quite some time already and
5654    the old serial harness isn't discouraged. The downside is
5655    that with parallel tests one cannot print progress info or
5656    other diagnostics to the terminal; all output from the tests
5657    will be in the log files only. But now that the compression
5658    tests are separated the parallel tests will speed things up.
5659
5660 configure.ac | 2 +-
5661 1 file changed, 1 insertion(+), 1 deletion(-)
5662
5663commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
5664Author: Lasse Collin <lasse.collin@tukaani.org>
5665Date:   2022-05-23 21:17:47 +0300
5666
5667    Tests: Split test_compress.sh into separate test unit for each file.
5668
5669    test_compress.sh now takes one command line argument:
5670    a filename to be tested. If it begins with "compress_generated_"
5671    the file will be created with create_compress_files.
5672
5673    This will allow parallel execution of the slow tests.
5674
5675 tests/Makefile.am                      | 11 +++-
5676 tests/test_compress.sh                 | 91 +++++++++++++++++++---------------
5677 tests/test_compress_generated_abc      |  3 ++
5678 tests/test_compress_generated_random   |  3 ++
5679 tests/test_compress_generated_text     |  3 ++
5680 tests/test_compress_prepared_bcj_sparc |  3 ++
5681 tests/test_compress_prepared_bcj_x86   |  3 ++
5682 7 files changed, 77 insertions(+), 40 deletions(-)
5683
5684commit c7758ac9c734707514dd34f254173ebac5eea7f8
5685Author: Lasse Collin <lasse.collin@tukaani.org>
5686Date:   2022-05-23 20:32:49 +0300
5687
5688    Test: Make create_compress_files.c a little more flexible.
5689
5690    If a command line argument is given, then only the test file
5691    of that type is created. It's quite dumb in sense that unknown
5692    names don't give an error but it's good enough here.
5693
5694    Also use EXIT_FAILURE instead of 1 as exit status for errors.
5695
5696 tests/create_compress_files.c | 25 +++++++++++++++----------
5697 1 file changed, 15 insertions(+), 10 deletions(-)
5698
5699commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
5700Author: Lasse Collin <lasse.collin@tukaani.org>
5701Date:   2022-05-23 20:17:42 +0300
5702
5703    Tests: Remove unneeded commented lines from test_compress.sh.
5704
5705 tests/test_compress.sh | 13 -------------
5706 1 file changed, 13 deletions(-)
5707
5708commit 2ee50d150ee009f36135540b459e6ff328549725
5709Author: Lasse Collin <lasse.collin@tukaani.org>
5710Date:   2022-05-23 20:16:00 +0300
5711
5712    Tests: Remove progress indicator from test_compress.sh.
5713
5714    It will be useless with Automake's parallel tests.
5715
5716 tests/test_compress.sh | 9 ---------
5717 1 file changed, 9 deletions(-)
5718
5719commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
5720Author: Lasse Collin <lasse.collin@tukaani.org>
5721Date:   2022-05-23 19:37:18 +0300
5722
5723    liblzma: Silence a warning.
5724
5725    The actual initialization is done via mythread_sync and seems
5726    that GCC doesn't necessarily see that it gets initialized there.
5727
5728 src/liblzma/common/stream_decoder_mt.c | 2 +-
5729 1 file changed, 1 insertion(+), 1 deletion(-)
5730
5731commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
5732Author: Lasse Collin <lasse.collin@tukaani.org>
5733Date:   2022-04-14 20:53:16 +0300
5734
5735    xz: Fix build with --disable-threads.
5736
5737 src/xz/hardware.c | 4 ++++
5738 1 file changed, 4 insertions(+)
5739
5740commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
5741Author: Lasse Collin <lasse.collin@tukaani.org>
5742Date:   2022-04-14 14:50:17 +0300
5743
5744    xz: Change the cap of the default -T0 memlimit for 32-bit xz.
5745
5746    The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room
5747    and it looks like a round (artificial) number in --info-memory
5748    once --info-memory is made to display it.
5749
5750    Also, using #if avoids useless code on 64-bit builds.
5751
5752 src/xz/hardware.c | 4 +++-
5753 1 file changed, 3 insertions(+), 1 deletion(-)
5754
5755commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
5756Author: Lasse Collin <lasse.collin@tukaani.org>
5757Date:   2022-04-14 14:20:46 +0300
5758
5759    xz: Add a default soft memory usage limit for --threads=0.
5760
5761    This is a soft limit in sense that it only affects the number of
5762    threads. It never makes xz fail and it never makes xz change
5763    settings that would affect the compressed output.
5764
5765    The idea is to make -T0 have more reasonable behavior when
5766    the system has very many cores or when a memory-hungry
5767    compression options are used. This also helps with 32-bit xz,
5768    preventing it from running out of address space.
5769
5770    The downside of this commit is that now the number of threads
5771    might become too low compared to what the user expected. I
5772    hope this to be an acceptable compromise as the old behavior
5773    has been a source of well-argued complaints for a long time.
5774
5775 src/xz/coder.c    | 28 ++++++++++++++++++++++++++--
5776 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++---------
5777 src/xz/hardware.h | 27 +++++++++++++++++++++++++++
5778 3 files changed, 82 insertions(+), 11 deletions(-)
5779
5780commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
5781Author: Lasse Collin <lasse.collin@tukaani.org>
5782Date:   2022-04-14 12:59:09 +0300
5783
5784    xz: Make -T0 use multithreaded mode on single-core systems.
5785
5786    The main problem withi the old behavior is that the compressed
5787    output is different on single-core systems vs. multicore systems.
5788    This commit fixes it by making -T0 one thread in multithreaded mode
5789    on single-core systems.
5790
5791    The downside of this is that it uses more memory. However, if
5792    --memlimit-compress is used, xz can (thanks to the previous commit)
5793    drop to the single-threaded mode still.
5794
5795 src/xz/coder.c    | 18 +++++++++---------
5796 src/xz/hardware.c | 14 ++++++++++++++
5797 src/xz/hardware.h |  4 ++++
5798 3 files changed, 27 insertions(+), 9 deletions(-)
5799
5800commit 898faa97287a756231c663a3ed5165672b417207
5801Author: Lasse Collin <lasse.collin@tukaani.org>
5802Date:   2022-04-14 12:38:00 +0300
5803
5804    xz: Changes to --memlimit-compress and --no-adjust.
5805
5806    In single-threaded mode, --memlimit-compress can make xz scale down
5807    the LZMA2 dictionary size to meet the memory usage limit. This
5808    obviously affects the compressed output. However, if xz was in
5809    threaded mode, --memlimit-compress could make xz reduce the number
5810    of threads but it wouldn't make xz switch from multithreaded mode
5811    to single-threaded mode or scale down the LZMA2 dictionary size.
5812    This seemed illogical and there was even a "FIXME?" about it.
5813
5814    Now --memlimit-compress can make xz switch to single-threaded
5815    mode if one thread in multithreaded mode uses too much memory.
5816    If memory usage is still too high, then the LZMA2 dictionary
5817    size can be scaled down too.
5818
5819    The option --no-adjust was also changed so that it no longer
5820    prevents xz from scaling down the number of threads as that
5821    doesn't affect compressed output (only performance). After
5822    this commit --no-adjust only prevents adjustments that affect
5823    compressed output, that is, with --no-adjust xz won't switch
5824    from multithreaded mode to single-threaded mode and won't
5825    scale down the LZMA2 dictionary size.
5826
5827    The man page wasn't updated yet.
5828
5829 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++-------------------
5830 1 file changed, 43 insertions(+), 20 deletions(-)
5831
5832commit cad299008cf73ec566f0662a9cf2b94f86a99659
5833Author: Lasse Collin <lasse.collin@tukaani.org>
5834Date:   2022-04-11 22:20:49 +0300
5835
5836    xz: Add --memlimit-mt-decompress along with a default limit value.
5837
5838    --memlimit-mt-decompress allows specifying the limit for
5839    multithreaded decompression. This matches memlimit_threading in
5840    liblzma. This limit can only affect the number of threads being
5841    used; it will never prevent xz from decompressing a file. The
5842    old --memlimit-decompress option is still used at the same time.
5843
5844    If the value of --memlimit-decompress (the default value or
5845    one specified by the user) is less than the value of
5846    --memlimit-mt-decompress , then --memlimit-mt-decompress is
5847    reduced to match --memlimit-decompress.
5848
5849    Man page wasn't updated yet.
5850
5851 src/xz/args.c     | 24 +++++++++++++++-------
5852 src/xz/coder.c    | 34 ++++++++++---------------------
5853 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
5854 src/xz/hardware.h | 17 ++++++++++------
5855 src/xz/message.c  |  4 +++-
5856 5 files changed, 97 insertions(+), 42 deletions(-)
5857
5858commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
5859Author: Lasse Collin <lasse.collin@tukaani.org>
5860Date:   2022-04-06 23:11:59 +0300
5861
5862    liblzma: Threaded decoder: Improve setting of pending_error.
5863
5864    It doesn't need to be done conditionally. The comments try
5865    to explain it.
5866
5867 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++-----------
5868 1 file changed, 35 insertions(+), 16 deletions(-)
5869
5870commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
5871Author: Lasse Collin <lasse.collin@tukaani.org>
5872Date:   2022-04-06 12:39:49 +0300
5873
5874    liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder.
5875
5876    In most cases if the input file is corrupt the application won't
5877    care about the uncompressed content at all. With this new flag
5878    the threaded decoder will return an error as soon as any thread
5879    has detected an error; it won't wait to copy out the data before
5880    the location of the error.
5881
5882    I don't plan to use this in xz to keep the behavior consistent
5883    between single-threaded and multi-threaded modes.
5884
5885 src/liblzma/api/lzma/container.h       | 25 ++++++++++++++++-
5886 src/liblzma/common/common.h            |  7 +++--
5887 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++---------------
5888 3 files changed, 56 insertions(+), 26 deletions(-)
5889
5890commit 64b6d496dc815a176d8307f418f6834a26783484
5891Author: Lasse Collin <lasse.collin@tukaani.org>
5892Date:   2022-04-05 12:24:57 +0300
5893
5894    liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.
5895
5896    This makes the behavior consistent with the single-threaded
5897    decoder when handling truncated .xz files.
5898
5899    Thanks to Jia Tan for finding this issue.
5900
5901 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++--
5902 1 file changed, 24 insertions(+), 2 deletions(-)
5903
5904commit e671bc8828b9c0c5406c3a22c541301d0eb54518
5905Author: Lasse Collin <lasse.collin@tukaani.org>
5906Date:   2022-04-02 21:49:59 +0300
5907
5908    liblzma: Threaded decoder: Support zpipe.c-style decoding loop.
5909
5910    This makes it possible to call lzma_code() in a loop that only
5911    reads new input when lzma_code() didn't fill the output buffer
5912    completely. That isn't the calling style suggested by the
5913    liblzma example program 02_decompress.c so perhaps the usefulness
5914    of this feature is limited.
5915
5916    Also, it is possible to write such a loop so that it works
5917    with the single-threaded decoder but not with the threaded
5918    decoder even after this commit, or so that it works only if
5919    lzma_mt.timeout = 0.
5920
5921    The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known
5922    example of a loop where more input is read only when output isn't
5923    full. Porting this as is to liblzma would work with the
5924    single-threaded decoder (if LZMA_CONCATENATED isn't used) but it
5925    wouldn't work with threaded decoder even after this commit because
5926    the loop assumes that no more output is possible when it cannot
5927    read more input ("if (strm.avail_in == 0) break;"). This cannot
5928    be fixed at liblzma side; the loop has to be modified at least
5929    a little.
5930
5931    I'm adding this in any case because the actual code is simple
5932    and short and should have no harmful side-effects in other
5933    situations.
5934
5935 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++-----
5936 1 file changed, 67 insertions(+), 10 deletions(-)
5937
5938commit 2ba8173e27be4793edb46497e499ac2ae753a316
5939Author: Lasse Collin <lasse.collin@tukaani.org>
5940Date:   2022-03-31 00:05:07 +0300
5941
5942    Update THANKS.
5943
5944 THANKS | 1 +
5945 1 file changed, 1 insertion(+)
5946
5947commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
5948Author: Lasse Collin <lasse.collin@tukaani.org>
5949Date:   2022-03-29 19:19:12 +0300
5950
5951    xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
5952
5953    Malicious filenames can make xzgrep to write to arbitrary files
5954    or (with a GNU sed extension) lead to arbitrary code execution.
5955
5956    xzgrep from XZ Utils versions up to and including 5.2.5 are
5957    affected. 5.3.1alpha and 5.3.2alpha are affected as well.
5958    This patch works for all of them.
5959
5960    This bug was inherited from gzip's zgrep. gzip 1.12 includes
5961    a fix for zgrep.
5962
5963    The issue with the old sed script is that with multiple newlines,
5964    the N-command will read the second line of input, then the
5965    s-commands will be skipped because it's not the end of the
5966    file yet, then a new sed cycle starts and the pattern space
5967    is printed and emptied. So only the last line or two get escaped.
5968
5969    One way to fix this would be to read all lines into the pattern
5970    space first. However, the included fix is even simpler: All lines
5971    except the last line get a backslash appended at the end. To ensure
5972    that shell command substitution doesn't eat a possible trailing
5973    newline, a colon is appended to the filename before escaping.
5974    The colon is later used to separate the filename from the grep
5975    output so it is fine to add it here instead of a few lines later.
5976
5977    The old code also wasn't POSIX compliant as it used \n in the
5978    replacement section of the s-command. Using \<newline> is the
5979    POSIX compatible method.
5980
5981    LC_ALL=C was added to the two critical sed commands. POSIX sed
5982    manual recommends it when using sed to manipulate pathnames
5983    because in other locales invalid multibyte sequences might
5984    cause issues with some sed implementations. In case of GNU sed,
5985    these particular sed scripts wouldn't have such problems but some
5986    other scripts could have, see:
5987
5988        info '(sed)Locale Considerations'
5989
5990    This vulnerability was discovered by:
5991    cleemy desu wayo working with Trend Micro Zero Day Initiative
5992
5993    Thanks to Jim Meyering and Paul Eggert discussing the different
5994    ways to fix this and for coordinating the patch release schedule
5995    with gzip.
5996
5997 src/scripts/xzgrep.in | 20 ++++++++++++--------
5998 1 file changed, 12 insertions(+), 8 deletions(-)
5999
6000commit bd93b776c1bd15e90661033c918cdeb354dbcc38
6001Author: Lasse Collin <lasse.collin@tukaani.org>
6002Date:   2022-03-26 01:02:44 +0200
6003
6004    liblzma: Fix a deadlock in threaded decoder.
6005
6006    If a worker thread has consumed all input so far and it's
6007    waiting on thr->cond and then the main thread enables
6008    partial update for that thread, the code used to deadlock.
6009    This commit allows one dummy decoding pass to occur in this
6010    situation which then also does the partial update.
6011
6012    As part of the fix, this moves thr->progress_* updates to
6013    avoid the second thr->mutex locking.
6014
6015    Thanks to Jia Tan for finding, debugging, and reporting the bug.
6016
6017 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++---------
6018 1 file changed, 52 insertions(+), 19 deletions(-)
6019
6020commit e0394e94230f208682ac1e1f4c41f22f9ad79916
6021Author: Lasse Collin <lasse.collin@tukaani.org>
6022Date:   2022-03-23 16:34:00 +0200
6023
6024    Update THANKS.
6025
6026 THANKS | 1 +
6027 1 file changed, 1 insertion(+)
6028
6029commit 487c77d48760564b1949c5067630b675b87be4de
6030Author: Lasse Collin <lasse.collin@tukaani.org>
6031Date:   2022-03-23 16:28:55 +0200
6032
6033    liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT.
6034
6035    LZMA_TIMED_OUT is not an error and thus stopping threads on
6036    LZMA_TIMED_OUT breaks the decoder badly.
6037
6038    Thanks to Jia Tan for finding the bug and for the patch.
6039
6040 src/liblzma/common/stream_decoder_mt.c | 2 +-
6041 1 file changed, 1 insertion(+), 1 deletion(-)
6042
6043commit 6c6da57ae2aa962aabde6892442227063d87e88c
6044Author: Lasse Collin <lasse.collin@tukaani.org>
6045Date:   2022-03-07 00:36:16 +0200
6046
6047    xz: Add initial support for threaded decompression.
6048
6049    If threading support is enabled at build time, this will
6050    use lzma_stream_decoder_mt() even for single-threaded mode.
6051    With memlimit_threading=0 the behavior should be identical.
6052
6053    This needs some work like adding --memlimit-threading=LIMIT.
6054
6055    The original patch from Sebastian Andrzej Siewior included
6056    a method to get currently available RAM on Linux. It might
6057    be one way to go but as it is Linux-only, the available-RAM
6058    approach needs work for portability or using a fallback method
6059    on other OSes.
6060
6061    The man page wasn't updated yet.
6062
6063 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++-
6064 1 file changed, 35 insertions(+), 1 deletion(-)
6065
6066commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
6067Author: Lasse Collin <lasse.collin@tukaani.org>
6068Date:   2022-03-06 23:36:20 +0200
6069
6070    liblzma: Add threaded .xz decompressor.
6071
6072    I realize that this is about a decade late.
6073
6074    Big thanks to Sebastian Andrzej Siewior for the original patch.
6075    I made a bunch of smaller changes but after a while quite a few
6076    things got rewritten. So any bugs in the commit were created by me.
6077
6078 src/liblzma/api/lzma/container.h       |   90 +-
6079 src/liblzma/common/Makefile.inc        |    5 +
6080 src/liblzma/common/common.h            |    4 +
6081 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++
6082 src/liblzma/liblzma.map                |    1 +
6083 5 files changed, 1907 insertions(+), 7 deletions(-)
6084
6085commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
6086Author: Lasse Collin <lasse.collin@tukaani.org>
6087Date:   2022-03-06 16:54:23 +0200
6088
6089    liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
6090
6091    If Check is unsupported, it will be silently ignored.
6092    It's the caller's job to handle it.
6093
6094 src/liblzma/api/lzma/block.h | 3 ---
6095 1 file changed, 3 deletions(-)
6096
6097commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
6098Author: Lasse Collin <lasse.collin@tukaani.org>
6099Date:   2022-03-06 16:41:19 +0200
6100
6101    liblzma: Add new output queue (lzma_outq) features.
6102
6103    Add lzma_outq_clear_cache2() which may leave one buffer allocated
6104    in the cache.
6105
6106    Add lzma_outq_outbuf_memusage() to get the memory needed for
6107    a single lzma_outbuf. This is now used internally in outqueue.c too.
6108
6109    Track both the total amount of memory allocated and the amount of
6110    memory that is in active use (not in cache).
6111
6112    In lzma_outbuf, allow storing the current input position that
6113    matches the current output position. This way the main thread
6114    can notice when no more output is possible without first providing
6115    more input.
6116
6117    Allow specifying return code for lzma_outq_read() in a finished
6118    lzma_outbuf.
6119
6120 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++-------
6121 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
6122 2 files changed, 79 insertions(+), 8 deletions(-)
6123
6124commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
6125Author: Lasse Collin <lasse.collin@tukaani.org>
6126Date:   2022-03-06 15:18:58 +0200
6127
6128    liblzma: Index hash: Change return value type of hash_append() to void.
6129
6130 src/liblzma/common/index_hash.c | 11 +++++------
6131 1 file changed, 5 insertions(+), 6 deletions(-)
6132
6133commit 20e7a33e2d59c6a814447d3991f21e2702174b20
6134Author: Lasse Collin <lasse.collin@tukaani.org>
6135Date:   2022-02-22 03:42:57 +0200
6136
6137    liblzma: Minor addition to lzma_vli_size() API doc.
6138
6139    Thanks to Jia Tan.
6140
6141 src/liblzma/api/lzma/vli.h | 2 ++
6142 1 file changed, 2 insertions(+)
6143
6144commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
6145Author: Lasse Collin <lasse.collin@tukaani.org>
6146Date:   2022-02-22 02:04:18 +0200
6147
6148    liblzma: Check the return value of lzma_index_append() in threaded encoder.
6149
6150    If lzma_index_append() failed (most likely memory allocation failure)
6151    it could have gone unnoticed and the resulting .xz file would have
6152    an incorrect Index. Decompressing such a file would produce the
6153    correct uncompressed data but then an error would occur when
6154    verifying the Index field.
6155
6156 src/liblzma/common/stream_encoder_mt.c | 7 +++++--
6157 1 file changed, 5 insertions(+), 2 deletions(-)
6158
6159commit 5313ad66b40aab822ddca3e9905254cb99a4080d
6160Author: Lasse Collin <lasse.collin@tukaani.org>
6161Date:   2022-02-22 01:37:39 +0200
6162
6163    Update THANKS.
6164
6165 THANKS | 1 +
6166 1 file changed, 1 insertion(+)
6167
6168commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
6169Author: Ed Maste <emaste@FreeBSD.org>
6170Date:   2022-02-11 15:25:46 +0000
6171
6172    liblzma: Use non-executable stack on FreeBSD as on Linux
6173
6174 src/liblzma/check/crc32_x86.S | 4 ++--
6175 src/liblzma/check/crc64_x86.S | 4 ++--
6176 2 files changed, 4 insertions(+), 4 deletions(-)
6177
6178commit 1c9a5786d206b4abc8e427326651c8174baea753
6179Author: Lasse Collin <lasse.collin@tukaani.org>
6180Date:   2022-02-20 20:36:27 +0200
6181
6182    liblzma: Make Block decoder catch certain types of errors better.
6183
6184    Now it limits the input and output buffer sizes that are
6185    passed to a raw decoder. This way there's no need to check
6186    if the sizes can grow too big or overflow when updating
6187    Compressed Size and Uncompressed Size counts. This also means
6188    that a corrupt file cannot cause the raw decoder to process
6189    useless extra input or output that would exceed the size info
6190    in Block Header (and thus cause LZMA_DATA_ERROR anyway).
6191
6192    More importantly, now the size information is verified more
6193    carefully in case raw decoder returns LZMA_OK. This doesn't
6194    really matter with the current single-threaded .xz decoder
6195    as the errors would be detected slightly later anyway. But
6196    this helps avoiding corner cases in the upcoming threaded
6197    decompressor, and it might help other Block decoder uses
6198    outside liblzma too.
6199
6200    The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
6201    With the single-threaded .xz decoder the only difference is
6202    that LZMA_DATA_ERROR is detected in a difference place now.
6203
6204 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
6205 1 file changed, 54 insertions(+), 25 deletions(-)
6206
6207commit 555de11873eb00c9b94a8be70645db502e5a9dbd
6208Author: Lasse Collin <lasse.collin@tukaani.org>
6209Date:   2022-02-20 19:38:55 +0200
6210
6211    Tests: Add bad-1-lzma2-11.xz.
6212
6213 tests/files/README            |   5 +++++
6214 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
6215 2 files changed, 5 insertions(+)
6216
6217commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
6218Author: Lasse Collin <lasse.collin@tukaani.org>
6219Date:   2022-02-18 18:51:10 +0200
6220
6221    Translations: Fix po4a failure with the French man page translations.
6222
6223    Thanks to Mario Blättermann for the patch.
6224
6225 po4a/fr_FR.po | 6 ++++--
6226 1 file changed, 4 insertions(+), 2 deletions(-)
6227
6228commit f7711d228c3c32395460c82498c60a9f730d0239
6229Author: Lasse Collin <lasse.collin@tukaani.org>
6230Date:   2022-02-07 01:14:37 +0200
6231
6232    Translations: Add French translation of man pages.
6233
6234    This matches xz-utils 5.2.5-2 in Debian.
6235
6236    The translation was done by "bubu", proofread by the debian-l10n-french
6237    mailing list contributors, and submitted to me on the xz-devel mailing
6238    list by Jean-Pierre Giraud. Thanks to everyone!
6239
6240 po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6241 po4a/po4a.conf |    2 +-
6242 2 files changed, 3542 insertions(+), 1 deletion(-)
6243
6244commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
6245Author: jiat75 <jiat0218@gmail.com>
6246Date:   2022-01-28 20:47:55 +0800
6247
6248    liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
6249
6250    Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
6251    assumed that the options pointers must be non-NULL because the
6252    with these filters the API says it must never be NULL. It is
6253    good to do these checks anyway.
6254
6255 src/liblzma/lzma/lzma2_encoder.c | 3 +++
6256 src/liblzma/lzma/lzma_encoder.c  | 3 +++
6257 2 files changed, 6 insertions(+)
6258
6259commit 2523c30705f49eabd27b854aa656ae87cc224808
6260Author: Lasse Collin <lasse.collin@tukaani.org>
6261Date:   2022-02-06 23:19:32 +0200
6262
6263    liblzma: Fix uint64_t vs. size_t confusion.
6264
6265    This broke 32-bit builds due to a pointer type mismatch.
6266
6267    This bug was introduced with the output-size-limited encoding
6268    in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
6269
6270    Thanks to huangqinjin for the bug report.
6271
6272 src/liblzma/rangecoder/range_encoder.h | 11 +++++++----
6273 1 file changed, 7 insertions(+), 4 deletions(-)
6274
6275commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
6276Author: huangqinjin <huangqinjin@gmail.com>
6277Date:   2021-12-13 20:49:21 +0800
6278
6279    CMake: Keep compatible with Windows 95 for 32-bit build.
6280
6281 CMakeLists.txt | 12 +++++++++++-
6282 1 file changed, 11 insertions(+), 1 deletion(-)
6283
6284commit 2024fbf2794885277d05378d40b2b8015a7c3b40
6285Author: Lasse Collin <lasse.collin@tukaani.org>
6286Date:   2021-11-13 21:04:05 +0200
6287
6288    xzgrep: Update man page timestamp.
6289
6290 src/scripts/xzgrep.1 | 2 +-
6291 1 file changed, 1 insertion(+), 1 deletion(-)
6292
6293commit 400e7a239a53282cedaad927a41f3463d7f542e5
6294Author: Lasse Collin <lasse.collin@tukaani.org>
6295Date:   2021-11-13 18:23:24 +0200
6296
6297    Update THANKS.
6298
6299 THANKS | 1 +
6300 1 file changed, 1 insertion(+)
6301
6302commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
6303Author: Ville Skyttä <ville.skytta@iki.fi>
6304Date:   2021-11-13 10:11:57 +0200
6305
6306    xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
6307
6308    `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
6309    current post 3.7 Git they have been made to emit obsolescence warnings:
6310    https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
6311
6312 src/scripts/xzgrep.1  | 8 ++++----
6313 src/scripts/xzgrep.in | 4 ++--
6314 2 files changed, 6 insertions(+), 6 deletions(-)
6315
6316commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
6317Author: Lasse Collin <lasse.collin@tukaani.org>
6318Date:   2021-10-28 23:02:11 +0300
6319
6320    Bump the version number for 5.3.2alpha.
6321
6322 src/liblzma/api/lzma/version.h | 2 +-
6323 src/liblzma/liblzma.map        | 2 +-
6324 2 files changed, 2 insertions(+), 2 deletions(-)
6325
6326commit ea8c948655a86290524efe59cff067e06a886709
6327Author: Lasse Collin <lasse.collin@tukaani.org>
6328Date:   2021-10-28 22:59:52 +0300
6329
6330    Add NEWS for 5.3.2alpha.
6331
6332 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6333 1 file changed, 86 insertions(+)
6334
6335commit 52435f302f4724157ec50b4210cbe42b285c3cbc
6336Author: Lasse Collin <lasse.collin@tukaani.org>
6337Date:   2021-10-27 23:27:48 +0300
6338
6339    Update THANKS.
6340
6341 THANKS | 1 +
6342 1 file changed, 1 insertion(+)
6343
6344commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
6345Author: Lasse Collin <lasse.collin@tukaani.org>
6346Date:   2021-10-27 23:23:11 +0300
6347
6348    xz: Change the coding style of the previous commit.
6349
6350    It isn't any better now but it's consistent with
6351    the rest of the code base.
6352
6353 src/xz/file_io.c | 11 ++++++-----
6354 1 file changed, 6 insertions(+), 5 deletions(-)
6355
6356commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
6357Author: Alexander Bluhm <alexander.bluhm@gmx.net>
6358Date:   2021-10-05 23:33:16 +0200
6359
6360    xz: Avoid fchown(2) failure.
6361
6362    OpenBSD does not allow to change the group of a file if the user
6363    does not belong to this group.  In contrast to Linux, OpenBSD also
6364    fails if the new group is the same as the old one.  Do not call
6365    fchown(2) in this case, it would change nothing anyway.
6366
6367    This fixes an issue with Perl Alien::Build module.
6368    https://github.com/PerlAlien/Alien-Build/issues/62
6369
6370 src/xz/file_io.c | 8 +++++++-
6371 1 file changed, 7 insertions(+), 1 deletion(-)
6372
6373commit 2b509c868cae3988bf21cd693fbf9021cdc85628
6374Author: Lasse Collin <lasse.collin@tukaani.org>
6375Date:   2021-09-17 17:31:11 +0300
6376
6377    liblzma: Fix liblzma.map for the lzma_microlzma_* symbols.
6378
6379    This should have been part of d267d109c370a40b502e73f8664b154b15e4f253.
6380
6381    Thanks to Gao Xiang.
6382
6383 src/liblzma/liblzma.map | 4 ++--
6384 1 file changed, 2 insertions(+), 2 deletions(-)
6385
6386commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
6387Author: Lasse Collin <lasse.collin@tukaani.org>
6388Date:   2021-09-09 22:21:07 +0300
6389
6390    Update THANKS.
6391
6392 THANKS | 1 +
6393 1 file changed, 1 insertion(+)
6394
6395commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
6396Author: Lasse Collin <lasse.collin@tukaani.org>
6397Date:   2021-09-09 21:41:51 +0300
6398
6399    liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
6400
6401    By default, MSVC always sets __cplusplus to 199711L. The real
6402    C++ standard version is available in _MSVC_LANG (or one could
6403    use /Zc:__cplusplus to set __cplusplus correctly).
6404
6405    Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
6406
6407    Thanks to Dan Weiss.
6408
6409 src/liblzma/api/lzma.h | 3 ++-
6410 1 file changed, 2 insertions(+), 1 deletion(-)
6411
6412commit d267d109c370a40b502e73f8664b154b15e4f253
6413Author: Lasse Collin <lasse.collin@tukaani.org>
6414Date:   2021-09-05 20:38:12 +0300
6415
6416    liblzma: Rename EROFS LZMA to MicroLZMA.
6417
6418    It still exists primarily for EROFS but MicroLZMA is
6419    a more generic name (that hopefully doesn't clash with
6420    something that already exists).
6421
6422 src/liblzma/api/lzma/container.h                   | 33 +++++++++++++---------
6423 src/liblzma/common/Makefile.inc                    |  4 +--
6424 .../{erofs_decoder.c => microlzma_decoder.c}       | 32 ++++++++++-----------
6425 .../{erofs_encoder.c => microlzma_encoder.c}       | 30 ++++++++++----------
6426 4 files changed, 52 insertions(+), 47 deletions(-)
6427
6428commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
6429Author: Lasse Collin <lasse.collin@tukaani.org>
6430Date:   2021-06-04 19:02:38 +0300
6431
6432    xzdiff: Update the man page about the exit status.
6433
6434    This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.
6435
6436 src/scripts/xzdiff.1 | 4 ++--
6437 1 file changed, 2 insertions(+), 2 deletions(-)
6438
6439commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
6440Author: Lasse Collin <lasse.collin@tukaani.org>
6441Date:   2021-06-04 18:52:48 +0300
6442
6443    xzless: Fix less(1) version detection when it contains a dot.
6444
6445    Sometimes the version number from "less -V" contains a dot,
6446    sometimes not. xzless failed detect the version number when
6447    it does contain a dot. This fixes it.
6448
6449    Thanks to nick87720z for reporting this. Apparently it had been
6450    reported here <https://bugs.gentoo.org/489362> in 2013.
6451
6452 src/scripts/xzless.in | 2 +-
6453 1 file changed, 1 insertion(+), 1 deletion(-)
6454
6455commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
6456Author: Lasse Collin <lasse.collin@tukaani.org>
6457Date:   2021-04-11 19:58:10 +0300
6458
6459    Update THANKS.
6460
6461 THANKS | 2 ++
6462 1 file changed, 2 insertions(+)
6463
6464commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
6465Author: Ivan A. Melnikov <iv@altlinux.org>
6466Date:   2021-04-09 11:45:10 +0300
6467
6468    Reduce maximum possible memory limit on MIPS32
6469
6470    Due to architectural limitations, address space available to a single
6471    userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
6472    that have more physical RAM -- e.g. 64-bit systems with 32-bit
6473    userspace, or systems that use XPA (an extension similar to x86's PAE).
6474
6475    So, for MIPS32, we have to impose stronger memory limits. I've chosen
6476    2000MiB to give the process some headroom.
6477
6478 src/xz/hardware.c | 6 ++++++
6479 1 file changed, 6 insertions(+)
6480
6481commit e7da44d5151e21f153925781ad29334ae0786101
6482Author: Lasse Collin <lasse.collin@tukaani.org>
6483Date:   2021-02-13 23:31:27 +0200
6484
6485    CMake: Use interface library for better FindLibLZMA compatibility.
6486
6487    https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
6488
6489    Thanks to Markus Rickert.
6490
6491 CMakeLists.txt | 11 +++++++++--
6492 1 file changed, 9 insertions(+), 2 deletions(-)
6493
6494commit a61dd82ada39030f41b4ffca9ea551714908bedc
6495Author: Lasse Collin <lasse.collin@tukaani.org>
6496Date:   2021-01-30 18:36:04 +0200
6497
6498    CMake: Try to improve compatibility with the FindLibLZMA module.
6499
6500    The naming conflict with FindLibLZMA module gets worse.
6501    Not avoiding it in the first place was stupid.
6502
6503    Normally find_package(LibLZMA) will use the module and
6504    find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
6505    file even with a case insensitive file system. However, if
6506    CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
6507    is case insensitive, find_package(LibLZMA) will find our liblzma
6508    config file instead of using FindLibLZMA module.
6509
6510    One big problem with this is that FindLibLZMA uses
6511    LibLZMA::LibLZMA and we use liblzma::liblzma as the target
6512    name. With target names CMake happens to be case sensitive.
6513    To workaround this, this commit adds
6514
6515        add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
6516
6517    to the config file. Then both spellings work.
6518
6519    To make the behavior consistent between case sensitive and
6520    insensitive file systems, the config and related files are
6521    renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
6522    With this style CMake looks for lowercase version of the package
6523    name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
6524    to find our config file.
6525
6526    There are other differences between our config file and
6527    FindLibLZMA so it's still possible that things break for
6528    reasons other than the spelling of the target name. Hopefully
6529    those situations aren't too common.
6530
6531    When the config file is available, it should always give as good or
6532    better results as FindLibLZMA so this commit doesn't affect the
6533    recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
6534    which explicitly avoids FindLibLZMA.
6535
6536    Thanks to Markus Rickert.
6537
6538 CMakeLists.txt | 21 +++++++++++++--------
6539 1 file changed, 13 insertions(+), 8 deletions(-)
6540
6541commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
6542Author: Lasse Collin <lasse.collin@tukaani.org>
6543Date:   2021-01-29 21:19:43 +0200
6544
6545    Update THANKS.
6546
6547 THANKS | 1 +
6548 1 file changed, 1 insertion(+)
6549
6550commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
6551Author: Lasse Collin <lasse.collin@tukaani.org>
6552Date:   2021-01-29 21:19:08 +0200
6553
6554    liblzma: Fix unitialized variable.
6555
6556    This was introduced two weeks ago in the commit
6557    625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
6558
6559    Thanks to Nathan Moinvaziri.
6560
6561 src/liblzma/lzma/lzma_encoder.c | 1 +
6562 1 file changed, 1 insertion(+)
6563
6564commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
6565Author: Lasse Collin <lasse.collin@tukaani.org>
6566Date:   2021-01-24 22:32:41 +0200
6567
6568    Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.
6569
6570 tests/files/README            |  11 +++++++++--
6571 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
6572 tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
6573 3 files changed, 9 insertions(+), 2 deletions(-)
6574
6575commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
6576Author: Lasse Collin <lasse.collin@tukaani.org>
6577Date:   2021-01-24 19:22:35 +0200
6578
6579    liblzma: Fix a wrong comment in stream_encoder_mt.c.
6580
6581 src/liblzma/common/stream_encoder_mt.c | 10 +++++++---
6582 1 file changed, 7 insertions(+), 3 deletions(-)
6583
6584commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
6585Author: Lasse Collin <lasse.collin@tukaani.org>
6586Date:   2021-01-24 18:51:51 +0200
6587
6588    Tests: Add bad-1-lzma2-9.xz.
6589
6590 tests/files/README           |   4 ++++
6591 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
6592 2 files changed, 4 insertions(+)
6593
6594commit fdd30032f8531ac89519b48c21d810ecf06825f6
6595Author: Lasse Collin <lasse.collin@tukaani.org>
6596Date:   2021-01-24 17:02:00 +0200
6597
6598    Tests: Add bad-1-check-crc32-2.xz.
6599
6600 tests/files/README                 |   7 +++++++
6601 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
6602 2 files changed, 7 insertions(+)
6603
6604commit db465419ae26ec7fb9b9472183911ff521620c77
6605Author: Lasse Collin <lasse.collin@tukaani.org>
6606Date:   2021-01-17 19:20:50 +0200
6607
6608    liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end.
6609
6610    When the uncompressed size is known to be exact, after decompressing
6611    the stream exactly comp_size bytes of input must have been consumed.
6612    This is a minor improvement to error detection.
6613
6614 src/liblzma/common/erofs_decoder.c | 7 ++++++-
6615 1 file changed, 6 insertions(+), 1 deletion(-)
6616
6617commit 774cc0118ba2496581cb2621505a04bb6598cc75
6618Author: Lasse Collin <lasse.collin@tukaani.org>
6619Date:   2021-01-17 18:53:34 +0200
6620
6621    liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known.
6622
6623    The caller must still not specify an uncompressed size bigger
6624    than the actual uncompressed size.
6625
6626    As a downside, this now needs the exact compressed size.
6627
6628 src/liblzma/api/lzma/container.h   | 23 ++++++++---
6629 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++----
6630 2 files changed, 91 insertions(+), 12 deletions(-)
6631
6632commit 421b0aa352da244075db10205cf33712f91b9835
6633Author: Lasse Collin <lasse.collin@tukaani.org>
6634Date:   2021-01-14 20:57:11 +0200
6635
6636    liblzma: Fix missing normalization in rc_encode_dummy().
6637
6638    Without this fix it could attempt to create too much output.
6639
6640 src/liblzma/rangecoder/range_encoder.h | 7 ++++++-
6641 1 file changed, 6 insertions(+), 1 deletion(-)
6642
6643commit 601ec0311e769fc704daaaa7dac0ca840aff080e
6644Author: Lasse Collin <lasse.collin@tukaani.org>
6645Date:   2021-01-14 20:07:01 +0200
6646
6647    liblzma: Add EROFS LZMA encoder and decoder.
6648
6649    Right now this is just a planned extra-compact format for use
6650    in the EROFS file system in Linux. At this point it's possible
6651    that the format will either change or be abandoned and removed
6652    completely.
6653
6654    The special thing about the encoder is that it uses the
6655    output-size-limited encoding added in the previous commit.
6656    EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed
6657    data so the compressors must be able to create valid streams
6658    that fill the given block size.
6659
6660 src/liblzma/api/lzma/container.h   |  76 +++++++++++++++++++
6661 src/liblzma/common/Makefile.inc    |   2 +
6662 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++
6663 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++
6664 src/liblzma/liblzma.map            |   2 +
6665 5 files changed, 367 insertions(+)
6666
6667commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
6668Author: Lasse Collin <lasse.collin@tukaani.org>
6669Date:   2021-01-13 19:16:32 +0200
6670
6671    liblzma: Add rough support for output-size-limited encoding in LZMA1.
6672
6673    With this it is possible to encode LZMA1 data without EOPM so that
6674    the encoder will encode as much input as it can without exceeding
6675    the specified output size limit. The resulting LZMA1 stream will
6676    be a normal LZMA1 stream without EOPM. The actual uncompressed size
6677    will be available to the caller via the uncomp_size pointer.
6678
6679    One missing thing is that the LZMA layer doesn't inform the LZ layer
6680    when the encoding is finished and thus the LZ may read more input
6681    when it won't be used. However, this doesn't matter if encoding is
6682    done with a single call (which is the planned use case for now).
6683    For proper multi-call encoding this should be improved.
6684
6685    This commit only adds the functionality for internal use.
6686    Nothing uses it yet.
6687
6688 src/liblzma/common/common.h             |  11 +++
6689 src/liblzma/lz/lz_encoder.c             |  16 ++++
6690 src/liblzma/lz/lz_encoder.h             |   4 +
6691 src/liblzma/lzma/lzma_encoder.c         | 127 +++++++++++++++++++++++---------
6692 src/liblzma/lzma/lzma_encoder_private.h |  12 +++
6693 src/liblzma/rangecoder/range_encoder.h  | 111 ++++++++++++++++++++++++++++
6694 6 files changed, 246 insertions(+), 35 deletions(-)
6695
6696commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
6697Author: Lasse Collin <lasse.collin@tukaani.org>
6698Date:   2021-01-11 23:57:11 +0200
6699
6700    Scripts: Add zstd support to xzdiff.
6701
6702 src/scripts/xzdiff.1  |  6 ++++--
6703 src/scripts/xzdiff.in | 16 +++++++++++-----
6704 2 files changed, 15 insertions(+), 7 deletions(-)
6705
6706commit d9ec3add97cf4c999a7f594c6529680227b6c274
6707Author: Lasse Collin <lasse.collin@tukaani.org>
6708Date:   2021-01-11 23:41:30 +0200
6709
6710    Update THANKS.
6711
6712 THANKS | 2 ++
6713 1 file changed, 2 insertions(+)
6714
6715commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
6716Author: Lasse Collin <lasse.collin@tukaani.org>
6717Date:   2021-01-11 23:41:16 +0200
6718
6719    xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
6720
6721    Previously this required using --force but that has other
6722    effects too which might be undesirable. Changing the behavior
6723    of --keep has a small risk of breaking existing scripts but
6724    since this is a fairly special corner case I expect the
6725    likehood of breakage to be low enough.
6726
6727    I think the new behavior is more logical. The only reason for
6728    the old behavior was to be consistent with gzip and bzip2.
6729
6730    Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.
6731
6732 src/xz/file_io.c |  9 +++++----
6733 src/xz/xz.1      | 16 +++++++++++++++-
6734 2 files changed, 20 insertions(+), 5 deletions(-)
6735
6736commit 73c555b3077c19dda29b6f4592ced2af876f8333
6737Author: Lasse Collin <lasse.collin@tukaani.org>
6738Date:   2021-01-11 23:28:52 +0200
6739
6740    Scripts: Fix exit status of xzgrep.
6741
6742    Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
6743    matter. With gzip it's important because -q makes gzip replace SIGPIPE
6744    with exit status 2. With bzip2 it's important because with -q bzip2
6745    is completely silent if input is corrupt while other decompressors
6746    still give an error message.
6747
6748    Avoiding exit status 2 from gzip is important because bzip2 uses
6749    exit status 2 to indicate corrupt input. Before this commit xzgrep
6750    didn't recognize corrupt .bz2 files because xzgrep was treating
6751    exit status 2 as SIGPIPE for gzip compatibility.
6752
6753    zstd still needs -q because otherwise it is noisy in normal
6754    operation.
6755
6756    The code to detect real SIGPIPE didn't check if the exit status
6757    was due to a signal (>= 128) and so could ignore some other exit
6758    status too.
6759
6760 src/scripts/xzgrep.in | 20 +++++++++++++-------
6761 1 file changed, 13 insertions(+), 7 deletions(-)
6762
6763commit 194029ffaf74282a81f0c299c07f73caca3232ca
6764Author: Lasse Collin <lasse.collin@tukaani.org>
6765Date:   2021-01-11 22:01:51 +0200
6766
6767    Scripts: Fix exit status of xzdiff/xzcmp.
6768
6769    This is a minor fix since this affects only the situation when
6770    the files differ and the exit status is something else than 0.
6771    In such case there could be SIGPIPE from a decompression tool
6772    and that would result in exit status of 2 from xzdiff/xzcmp
6773    while the correct behavior would be to return 1 or whatever
6774    else diff or cmp may have returned.
6775
6776    This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
6777    I'm not sure why the -q was used in the first place, perhaps it
6778    hides warnings in some situation that I cannot see at the moment.
6779    Hopefully the removal won't introduce a new bug.
6780
6781    With gzip the -q option was harmful because it made gzip return 2
6782    instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
6783    from gzip) isn't practical because bzip2 uses exit status 2 to
6784    indicate corrupt input file. It's better if SIGPIPE results in
6785    exit status >= 128.
6786
6787    With bzip2 the removal of -q seems to be good because with -q
6788    it prints nothing if input is corrupt. The other tools aren't
6789    silent in this situation even with -q. On the other hand, if
6790    zstd support is added, it will need -q since otherwise it's
6791    noisy in normal situations.
6792
6793    Thanks to Étienne Mollier and Sebastian Andrzej Siewior.
6794
6795 src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
6796 1 file changed, 21 insertions(+), 14 deletions(-)
6797
6798commit f7fa309e1f7178d04c7bedc03b73077639371e97
6799Author: Lasse Collin <lasse.collin@tukaani.org>
6800Date:   2021-01-09 21:14:36 +0200
6801
6802    liblzma: Make lzma_outq usable for threaded decompression too.
6803
6804    Before this commit all output queue buffers were allocated as
6805    a single big allocation. Now each buffer is allocated separately
6806    when needed. Used buffers are cached to avoid reallocation
6807    overhead but the cache will keep only one buffer size at a time.
6808    This should make things work OK in the decompression where most
6809    of the time the buffer sizes will be the same but with some less
6810    common files the buffer sizes may vary.
6811
6812    While this should work fine, it's still a bit preliminary
6813    and may even get reverted if it turns out to be useless for
6814    decompression.
6815
6816 src/liblzma/common/outqueue.c          | 268 +++++++++++++++++++++------------
6817 src/liblzma/common/outqueue.h          | 138 ++++++++++++-----
6818 src/liblzma/common/stream_encoder_mt.c |  52 ++++---
6819 3 files changed, 301 insertions(+), 157 deletions(-)
6820
6821commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
6822Author: Lasse Collin <lasse.collin@tukaani.org>
6823Date:   2020-12-23 17:15:49 +0200
6824
6825    Update THANKS.
6826
6827 THANKS | 1 +
6828 1 file changed, 1 insertion(+)
6829
6830commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
6831Author: H.J. Lu <hjl.tools@gmail.com>
6832Date:   2020-12-23 06:49:04 -0800
6833
6834    liblzma: Enable Intel CET in x86 CRC assembly codes
6835
6836    When Intel CET is enabled, we need to include <cet.h> in assembly codes
6837    to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
6838
6839    Tested on Intel Tiger Lake under CET enabled Linux.
6840
6841 src/liblzma/check/crc32_x86.S | 9 +++++++++
6842 src/liblzma/check/crc64_x86.S | 9 +++++++++
6843 2 files changed, 18 insertions(+)
6844
6845commit bb3b8c6a23e25db79f862b1de325c56052e0354b
6846Author: Lasse Collin <lasse.collin@tukaani.org>
6847Date:   2020-12-16 18:33:29 +0200
6848
6849    Update THANKS.
6850
6851 THANKS | 1 +
6852 1 file changed, 1 insertion(+)
6853
6854commit 21588ca34af98738954fc12ded1b89d7294ef646
6855Author: Lasse Collin <lasse.collin@tukaani.org>
6856Date:   2020-12-16 18:30:14 +0200
6857
6858    Build: Don't build bundles on Apple OSes.
6859
6860    Thanks to Daniel Packard.
6861
6862 CMakeLists.txt | 3 +++
6863 1 file changed, 3 insertions(+)
6864
6865commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
6866Author: Lasse Collin <lasse.collin@tukaani.org>
6867Date:   2020-12-05 22:44:03 +0200
6868
6869    Update THANKS.
6870
6871 THANKS | 1 +
6872 1 file changed, 1 insertion(+)
6873
6874commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
6875Author: Adam Borowski <kilobyte@angband.pl>
6876Date:   2020-09-25 03:35:18 +0200
6877
6878    Scripts: Add zstd support to xzgrep.
6879
6880    Thanks to Adam Borowski.
6881
6882 src/scripts/xzgrep.1  | 9 ++++++---
6883 src/scripts/xzgrep.in | 1 +
6884 2 files changed, 7 insertions(+), 3 deletions(-)
6885
6886commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
6887Author: Lasse Collin <lasse.collin@tukaani.org>
6888Date:   2020-11-17 20:51:48 +0200
6889
6890    CMake: Fix compatibility with CMake 3.13.
6891
6892    The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
6893    In some other places the code treats the cache variables
6894    like normal variables already (${FOO} or if(FOO) is used,
6895    not ${CACHE{FOO}).
6896
6897    Thanks to ygrek for reporting the bug on IRC.
6898
6899 CMakeLists.txt              | 2 +-
6900 cmake/tuklib_cpucores.cmake | 4 ++--
6901 cmake/tuklib_physmem.cmake  | 4 ++--
6902 3 files changed, 5 insertions(+), 5 deletions(-)
6903
6904commit 5af726a79273fafa5de5745b117e567f21c90e49
6905Author: Lasse Collin <lasse.collin@tukaani.org>
6906Date:   2020-11-01 22:56:43 +0200
6907
6908    Update THANKS.
6909
6910 THANKS | 4 +++-
6911 1 file changed, 3 insertions(+), 1 deletion(-)
6912
6913commit 4575d9d365c756ec189899f9f743e0b3515ce72d
6914Author: Lasse Collin <lasse.collin@tukaani.org>
6915Date:   2020-11-01 22:34:25 +0200
6916
6917    xz: Avoid unneeded \f escapes on the man page.
6918
6919    I don't want to use \c in macro arguments but groff_man(7)
6920    suggests that \f has better portability. \f would be needed
6921    for the .TP strings for portability reasons anyway.
6922
6923    Thanks to Bjarni Ingi Gislason.
6924
6925 src/xz/xz.1 | 31 ++++++++++++++++++++++---------
6926 1 file changed, 22 insertions(+), 9 deletions(-)
6927
6928commit 620b32f5339f86710cb4435e01ecdac972ccac73
6929Author: Lasse Collin <lasse.collin@tukaani.org>
6930Date:   2020-11-01 19:09:53 +0200
6931
6932    xz: Use non-breaking spaces when intentionally using more than one space.
6933
6934    This silences some style checker warnings. Seems that spaces
6935    in the beginning of a line don't need this treatment.
6936
6937    Thanks to Bjarni Ingi Gislason.
6938
6939 src/xz/xz.1 | 2 +-
6940 1 file changed, 1 insertion(+), 1 deletion(-)
6941
6942commit cb1f34988c8a4130485091b2f8b641303d8f701b
6943Author: Lasse Collin <lasse.collin@tukaani.org>
6944Date:   2020-11-01 18:49:37 +0200
6945
6946    xz: Protect the ellipsis (...) on the man page with \&.
6947
6948    This does it only when ... appears outside macro calls.
6949
6950    Thanks to Bjarni Ingi Gislason.
6951
6952 src/xz/xz.1 | 4 ++--
6953 1 file changed, 2 insertions(+), 2 deletions(-)
6954
6955commit 5d224da3da87400f2fab313abbd7c710e7169ef9
6956Author: Lasse Collin <lasse.collin@tukaani.org>
6957Date:   2020-11-01 18:41:21 +0200
6958
6959    xz: Avoid the abbreviation "e.g." on the man page.
6960
6961    A few are simply omitted, most are converted to "for example"
6962    and surrounded with commas. Sounds like that this is better
6963    style, for example, man-pages(7) recommends avoiding such
6964    abbreviations except in parenthesis.
6965
6966    Thanks to Bjarni Ingi Gislason.
6967
6968 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
6969 1 file changed, 33 insertions(+), 33 deletions(-)
6970
6971commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
6972Author: Lasse Collin <lasse.collin@tukaani.org>
6973Date:   2020-07-12 23:10:03 +0300
6974
6975    xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
6976
6977    Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
6978    and \- was used for both minus and en-dash. I don't know how
6979    portable \(en is nowadays but it can be changed back if someone
6980    complains. At least GNU groff and OpenBSD's mandoc support it.
6981
6982    Thanks to Bjarni Ingi Gislason for the patch.
6983
6984 src/xz/xz.1 | 16 ++++++++--------
6985 1 file changed, 8 insertions(+), 8 deletions(-)
6986
6987commit 352ba2d69af2136bc814aa1df1a132559d445616
6988Author: Lasse Collin <lasse.collin@tukaani.org>
6989Date:   2020-07-12 20:46:24 +0300
6990
6991    Windows: Fix building of resource files when config.h isn't used.
6992
6993    Now CMake + Visual Studio works for building liblzma.dll.
6994
6995    Thanks to Markus Rickert.
6996
6997 src/common/common_w32res.rc | 4 +++-
6998 1 file changed, 3 insertions(+), 1 deletion(-)
6999
7000commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
7001Author: Lasse Collin <lasse.collin@tukaani.org>
7002Date:   2020-04-06 19:31:50 +0300
7003
7004    src/scripts/xzgrep.1: Filenames to xzgrep are optional.
7005
7006    xzgrep --help was correct already.
7007
7008 src/scripts/xzgrep.1 | 2 +-
7009 1 file changed, 1 insertion(+), 1 deletion(-)
7010
7011commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
7012Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7013Date:   2020-03-26 22:17:31 +0000
7014
7015    src/script/xzgrep.1: Remove superfluous '.RB'
7016
7017    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
7018
7019      [ "test-groff" is a developmental version of "groff" ]
7020
7021    Input file is ./src/scripts/xzgrep.1
7022
7023    <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
7024    <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
7025    <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
7026    <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
7027    <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
7028
7029     "abc..." does not mean the same as "abc ...".
7030
7031      The output from nroff and troff is unchanged except for the space
7032    between "file" and "...".
7033
7034    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7035
7036 src/scripts/xzgrep.1 | 12 ++++++------
7037 1 file changed, 6 insertions(+), 6 deletions(-)
7038
7039commit 133d498db0f4b14f066d192d64dbcade45deae6b
7040Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7041Date:   2020-03-30 21:56:36 +0000
7042
7043    xzgrep.1: Delete superfluous '.PP'
7044
7045    Summary:
7046
7047    mandoc -T lint xzgrep.1 :
7048    mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
7049
7050      There is no change in the output of "nroff" and "troff".
7051
7052    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7053
7054 src/scripts/xzgrep.1 | 1 -
7055 1 file changed, 1 deletion(-)
7056
7057commit 057839ca982f886387b66746bffe749cb14fd8cd
7058Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7059Date:   2020-03-26 21:16:18 +0000
7060
7061    src/xz/xz.1: Correct misused two-fonts macros
7062
7063    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
7064
7065      [ "test-groff" is a developmental version of "groff" ]
7066
7067    Input file is ./src/xz/xz.1
7068
7069    <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
7070    <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
7071    <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
7072    <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
7073    <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
7074
7075      Output from nroff and troff is unchanged, except for a font change of a
7076    full stop (.).
7077
7078    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
7079
7080 src/xz/xz.1 | 10 +++++-----
7081 1 file changed, 5 insertions(+), 5 deletions(-)
7082
7083commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
7084Author: Lasse Collin <lasse.collin@tukaani.org>
7085Date:   2020-03-23 18:07:50 +0200
7086
7087    Typo fixes from fossies.org.
7088
7089    https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
7090
7091 Makefile.am                     | 2 +-
7092 doc/examples/01_compress_easy.c | 2 +-
7093 src/liblzma/api/lzma/base.h     | 2 +-
7094 src/liblzma/check/crc32_x86.S   | 2 +-
7095 src/liblzma/common/index.c      | 2 +-
7096 src/xz/xz.1                     | 4 ++--
7097 6 files changed, 7 insertions(+), 7 deletions(-)
7098
7099commit 869b9d1b4edd6df07f819d360d306251f8147353
7100Author: Lasse Collin <lasse.collin@tukaani.org>
7101Date:   2020-03-17 16:24:28 +0200
7102
7103    Update NEWS for 5.2.5.
7104
7105 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7106 1 file changed, 105 insertions(+)
7107
7108commit a048e3a92d238c65f050a765174d9c75417231d4
7109Author: Lasse Collin <lasse.collin@tukaani.org>
7110Date:   2020-03-16 20:01:37 +0200
7111
7112    README: Update outdated sections.
7113
7114 README | 21 +++++++++++----------
7115 1 file changed, 11 insertions(+), 10 deletions(-)
7116
7117commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
7118Author: Lasse Collin <lasse.collin@tukaani.org>
7119Date:   2020-03-16 19:39:45 +0200
7120
7121    README: Mention that man pages can be translated.
7122
7123 README | 7 ++++---
7124 1 file changed, 4 insertions(+), 3 deletions(-)
7125
7126commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
7127Author: Lasse Collin <lasse.collin@tukaani.org>
7128Date:   2020-03-16 16:43:29 +0200
7129
7130    Update INSTALL.generic from Automake 1.16.1.
7131
7132 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
7133 1 file changed, 162 insertions(+), 159 deletions(-)
7134
7135commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
7136Author: Lasse Collin <lasse.collin@tukaani.org>
7137Date:   2020-03-15 15:27:22 +0200
7138
7139    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
7140
7141 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
7142 1 file changed, 41 insertions(+), 10 deletions(-)
7143
7144commit a3148c0446dc7fa96363752df414d22539c9007b
7145Author: Lasse Collin <lasse.collin@tukaani.org>
7146Date:   2020-03-15 15:26:20 +0200
7147
7148    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
7149
7150 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
7151 1 file changed, 117 insertions(+), 102 deletions(-)
7152
7153commit 7812002dd3ed319e42a14662a8531802cca8ca67
7154Author: Lasse Collin <lasse.collin@tukaani.org>
7155Date:   2020-03-11 21:15:35 +0200
7156
7157    xz: Never use thousand separators in DJGPP builds.
7158
7159    DJGPP 2.05 added support for thousands separators but it's
7160    broken at least under WinXP with Finnish locale that uses
7161    a non-breaking space as the thousands separator. Workaround
7162    by disabling thousands separators for DJGPP builds.
7163
7164 src/xz/util.c | 14 ++++++++++++--
7165 1 file changed, 12 insertions(+), 2 deletions(-)
7166
7167commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
7168Author: Lasse Collin <lasse.collin@tukaani.org>
7169Date:   2020-03-11 19:38:08 +0200
7170
7171    DOS: Update dos/Makefile for DJGPP 2.05.
7172
7173    It doesn't need -fgnu89-inline like 2.04beta did.
7174
7175 dos/Makefile | 4 +---
7176 1 file changed, 1 insertion(+), 3 deletions(-)
7177
7178commit 319ca928d73de87940c54e30bffe69f9fa65efdf
7179Author: Lasse Collin <lasse.collin@tukaani.org>
7180Date:   2020-03-11 19:36:07 +0200
7181
7182    DOS: Update instructions in dos/INSTALL.txt.
7183
7184 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
7185 1 file changed, 29 insertions(+), 30 deletions(-)
7186
7187commit cb6b227ce39932824812ccd8a0647bd968de27d2
7188Author: Lasse Collin <lasse.collin@tukaani.org>
7189Date:   2020-03-11 17:58:51 +0200
7190
7191    DOS: Update config.h.
7192
7193    The added defines assume GCC >= 4.8.
7194
7195 dos/config.h | 8 ++++++++
7196 1 file changed, 8 insertions(+)
7197
7198commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
7199Author: Lasse Collin <lasse.collin@tukaani.org>
7200Date:   2020-03-02 13:54:33 +0200
7201
7202    liblzma: Fix a comment and RC_SYMBOLS_MAX.
7203
7204    The comment didn't match the value of RC_SYMBOLS_MAX and the value
7205    itself was slightly larger than actually needed. The only harm
7206    about this was that memory usage was a few bytes larger.
7207
7208 src/liblzma/rangecoder/range_encoder.h | 4 ++--
7209 1 file changed, 2 insertions(+), 2 deletions(-)
7210
7211commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
7212Author: Lasse Collin <lasse.collin@tukaani.org>
7213Date:   2020-02-27 20:58:52 +0200
7214
7215    Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails.
7216
7217 CMakeLists.txt | 18 ++++++++++++++++++
7218 1 file changed, 18 insertions(+)
7219
7220commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
7221Author: Lasse Collin <lasse.collin@tukaani.org>
7222Date:   2020-02-27 20:24:27 +0200
7223
7224    Build: Add support for --no-po4a option to autogen.sh.
7225
7226    Normally, if po4a isn't available, autogen.sh will return
7227    with non-zero exit status. The option --no-po4a can be useful
7228    when one knows that po4a isn't available but wants autogen.sh
7229    to still return with zero exit status.
7230
7231 autogen.sh | 11 ++++++++++-
7232 1 file changed, 10 insertions(+), 1 deletion(-)
7233
7234commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
7235Author: Lasse Collin <lasse.collin@tukaani.org>
7236Date:   2020-02-25 21:35:14 +0200
7237
7238    Update THANKS.
7239
7240 THANKS | 1 +
7241 1 file changed, 1 insertion(+)
7242
7243commit 474320e9908786ba2021035f9013191e16cde08a
7244Author: Lasse Collin <lasse.collin@tukaani.org>
7245Date:   2020-02-25 20:42:31 +0200
7246
7247    Build: Fix bugs in the CMake files.
7248
7249    Seems that the phrase "add more quotes" from sh/bash scripting
7250    applies to CMake as well. E.g. passing an unquoted list ${FOO}
7251    to a function that expects one argument results in only the
7252    first element of the list being passed as an argument and
7253    the rest get ignored. Adding quotes helps ("${FOO}").
7254
7255    list(INSERT ...) is weird. Inserting an empty string to an empty
7256    variable results in empty list, but inserting it to a non-empty
7257    variable does insert an empty element to the list.
7258
7259    Since INSERT requires at least one element,
7260    "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt.
7261    It might result in an empty element in the list. It seems to not
7262    matter as empty elements consistently get ignored in that variable.
7263    In fact, calling cmake_check_push_state() and cmake_check_pop_state()
7264    will strip the empty elements from CMAKE_REQUIRED_LIBRARIES!
7265
7266    In addition to quoting fixes, this fixes checks for the cache
7267    variables in tuklib_cpucores.cmake and tuklib_physmem.cmake.
7268
7269    Thanks to Martin Matuška for testing and reporting the problems.
7270    These fixes aren't tested yet but hopefully they soon will be.
7271
7272 CMakeLists.txt              | 52 ++++++++++++++++++++++-----------------------
7273 cmake/tuklib_common.cmake   |  8 ++++---
7274 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------
7275 cmake/tuklib_integer.cmake  | 34 +++++++++++++++--------------
7276 cmake/tuklib_mbstr.cmake    |  6 +++---
7277 cmake/tuklib_physmem.cmake  | 29 +++++++++++++------------
7278 cmake/tuklib_progname.cmake |  4 ++--
7279 7 files changed, 85 insertions(+), 78 deletions(-)
7280
7281commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
7282Author: Lasse Collin <lasse.collin@tukaani.org>
7283Date:   2020-02-24 23:38:16 +0200
7284
7285    Build: Add very limited experimental CMake support.
7286
7287    This does *NOT* replace the Autotools-based build system in
7288    the foreseeable future. See the comment in the beginning
7289    of CMakeLists.txt.
7290
7291    So far this has been tested only on GNU/Linux but I commit
7292    it anyway to make it easier for others to test. Since I
7293    haven't played much with CMake before, it's likely that
7294    there are things that have been done in a silly or wrong
7295    way and need to be fixed.
7296
7297 CMakeLists.txt              | 643 ++++++++++++++++++++++++++++++++++++++++++++
7298 cmake/tuklib_common.cmake   |  47 ++++
7299 cmake/tuklib_cpucores.cmake | 173 ++++++++++++
7300 cmake/tuklib_integer.cmake  | 100 +++++++
7301 cmake/tuklib_mbstr.cmake    |  20 ++
7302 cmake/tuklib_physmem.cmake  | 149 ++++++++++
7303 cmake/tuklib_progname.cmake |  19 ++
7304 7 files changed, 1151 insertions(+)
7305
7306commit 21bd4701fca3e9002ce78bc135debca369ed8545
7307Author: Lasse Collin <lasse.collin@tukaani.org>
7308Date:   2020-02-24 23:37:07 +0200
7309
7310    Update m4/.gitignore.
7311
7312 m4/.gitignore | 1 +
7313 1 file changed, 1 insertion(+)
7314
7315commit e094d1d0f196a91ec703e8d0055948feef349ae8
7316Author: Lasse Collin <lasse.collin@tukaani.org>
7317Date:   2020-02-24 23:29:35 +0200
7318
7319    tuklib: Omit an unneeded <sys/types.h> from a tests.
7320
7321    tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h>
7322    even via other files in this package, so clearly that header isn't
7323    needed in the tests either (no one has reported build problems due
7324    to a missing header in a .c file).
7325
7326 m4/tuklib_cpucores.m4 | 1 -
7327 m4/tuklib_physmem.m4  | 1 -
7328 2 files changed, 2 deletions(-)
7329
7330commit b3ed19a55fe99a45bd77614e149d39d18498075c
7331Author: Lasse Collin <lasse.collin@tukaani.org>
7332Date:   2020-02-24 23:01:00 +0200
7333
7334    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
7335
7336    This file only generates fastpos_table.c.
7337    It isn't built as a part of liblzma.
7338
7339 src/liblzma/lzma/fastpos_tablegen.c | 1 -
7340 1 file changed, 1 deletion(-)
7341
7342commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
7343Author: Lasse Collin <lasse.collin@tukaani.org>
7344Date:   2020-02-22 14:15:07 +0200
7345
7346    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
7347
7348    This should silence the equivalent of -Wundef in compilers that
7349    don't define __GNUC__.
7350
7351 src/common/sysdefs.h   | 3 ++-
7352 src/liblzma/api/lzma.h | 5 +++--
7353 2 files changed, 5 insertions(+), 3 deletions(-)
7354
7355commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
7356Author: Lasse Collin <lasse.collin@tukaani.org>
7357Date:   2020-02-21 17:40:02 +0200
7358
7359    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
7360
7361    This gives a tiny encoder speed improvement. This could have been done
7362    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
7363    it was forgotten.
7364
7365 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
7366 1 file changed, 10 insertions(+), 6 deletions(-)
7367
7368commit 59e6eb4840b9f52fa3a61544974017279b448216
7369Author: Lasse Collin <lasse.collin@tukaani.org>
7370Date:   2020-02-21 17:01:15 +0200
7371
7372    Build: Add visibility.m4 from gnulib.
7373
7374    Appears that this file used to get included as a side effect of
7375    gettext. After the change to gettext version requirements this file
7376    no longer got copied to the package and so the build was broken.
7377
7378 m4/.gitignore    |  1 -
7379 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7380 2 files changed, 77 insertions(+), 1 deletion(-)
7381
7382commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
7383Author: Lasse Collin <lasse.collin@tukaani.org>
7384Date:   2020-02-21 16:10:44 +0200
7385
7386    xz: Silence a warning when sig_atomic_t is long int.
7387
7388    It can be true at least on z/OS.
7389
7390 src/xz/signals.c | 2 +-
7391 1 file changed, 1 insertion(+), 1 deletion(-)
7392
7393commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
7394Author: Lasse Collin <lasse.collin@tukaani.org>
7395Date:   2020-02-21 15:59:26 +0200
7396
7397    xz: Avoid unneeded access of a volatile variable.
7398
7399 src/xz/signals.c | 2 +-
7400 1 file changed, 1 insertion(+), 1 deletion(-)
7401
7402commit 524c2f12c762032b819757aeda8af7c47c4cabce
7403Author: Lasse Collin <lasse.collin@tukaani.org>
7404Date:   2020-02-21 01:24:18 +0200
7405
7406    tuklib_integer.m4: Optimize the check order.
7407
7408    The __builtin byteswapping is the preferred one so check for it first.
7409
7410 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
7411 1 file changed, 29 insertions(+), 27 deletions(-)
7412
7413commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
7414Author: Lasse Collin <lasse.collin@tukaani.org>
7415Date:   2020-02-20 18:54:04 +0200
7416
7417    tuklib_exit: Add missing header.
7418
7419    strerror() needs <string.h> which happened to be included via
7420    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
7421    was defined. This wasn't tested without config.h before so it
7422    had worked fine.
7423
7424 src/common/tuklib_exit.c | 1 +
7425 1 file changed, 1 insertion(+)
7426
7427commit fddd31175e74a538997a939d930462fde17d2dd4
7428Author: Lasse Collin <lasse.collin@tukaani.org>
7429Date:   2020-02-18 19:12:35 +0200
7430
7431    Revert the previous commit and add a comment.
7432
7433    The previous commit broke crc32_tablegen.c.
7434
7435    If the whole package is built without config.h (with defines
7436    set on the compiler command line) this should still work fine
7437    as long as these headers conform to C99 well enough.
7438
7439 src/common/tuklib_config.h | 17 ++++++++++-------
7440 1 file changed, 10 insertions(+), 7 deletions(-)
7441
7442commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
7443Author: Lasse Collin <lasse.collin@tukaani.org>
7444Date:   2020-02-17 23:37:20 +0200
7445
7446    Do not check for HAVE_CONFIG_H in tuklib_config.h.
7447
7448    In XZ Utils sysdefs.h takes care of it and the required headers.
7449
7450 src/common/tuklib_config.h | 15 +++++++--------
7451 1 file changed, 7 insertions(+), 8 deletions(-)
7452
7453commit 2d4cef954feba82073951358466a1d614141cf33
7454Author: Lasse Collin <lasse.collin@tukaani.org>
7455Date:   2020-02-16 11:18:28 +0200
7456
7457    sysdefs.h: Omit the conditionals around string.h and limits.h.
7458
7459    string.h is used unconditionally elsewhere in the project and
7460    configure has always stopped if limits.h is missing, so these
7461    headers must have been always available even on the weirdest
7462    systems.
7463
7464 src/common/sysdefs.h | 8 ++------
7465 1 file changed, 2 insertions(+), 6 deletions(-)
7466
7467commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
7468Author: Lasse Collin <lasse.collin@tukaani.org>
7469Date:   2020-02-15 15:07:11 +0200
7470
7471    Build: Bump Autoconf and Libtool version requirements.
7472
7473    There is no specific reason for this other than blocking
7474    the most ancient versions. These are still old:
7475
7476    Autoconf 2.69 (2012)
7477    Automake 1.12 (2012)
7478    gettext 0.19.6 (2015)
7479    Libtool 2.4 (2010)
7480
7481 configure.ac | 4 ++--
7482 1 file changed, 2 insertions(+), 2 deletions(-)
7483
7484commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
7485Author: Lasse Collin <lasse.collin@tukaani.org>
7486Date:   2020-02-15 03:08:32 +0200
7487
7488    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
7489
7490    This bumps the version requirement from 0.19 (from 2014) to
7491    0.19.6 (2015).
7492
7493    Using only the old AM_GNU_GETTEXT_VERSION results in old
7494    gettext infrastructure being placed in the package. By using
7495    both macros we get the latest gettext files while the other
7496    programs in the Autotools family can still see the old macro.
7497
7498 configure.ac | 6 +++++-
7499 1 file changed, 5 insertions(+), 1 deletion(-)
7500
7501commit fa792b8befaf7cb3960b655e0a9410da866d756f
7502Author: Lasse Collin <lasse.collin@tukaani.org>
7503Date:   2020-02-14 20:42:06 +0200
7504
7505    Translations: Add German translation of the man pages.
7506
7507    Thanks to Mario Blättermann.
7508
7509 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7510 po4a/po4a.conf |    2 +-
7511 2 files changed, 5533 insertions(+), 1 deletion(-)
7512
7513commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
7514Author: Lasse Collin <lasse.collin@tukaani.org>
7515Date:   2020-02-07 15:32:21 +0200
7516
7517    Build: Add support for translated man pages using po4a.
7518
7519    The dependency on po4a is optional. It's never required to install
7520    the translated man pages when xz is built from a release tarball.
7521    If po4a is missing when building from xz.git, the translated man
7522    pages won't be generated but otherwise the build will work normally.
7523
7524    The translations are only updated automatically by autogen.sh and
7525    by "make mydist". This makes it easy to keep po4a as an optional
7526    dependency and ensures that I won't forget to put updated
7527    translations to a release tarball.
7528
7529    The translated man pages aren't installed if --disable-nls is used.
7530
7531    The installation of translated man pages abuses Automake internals
7532    by calling "install-man" with redefined dist_man_MANS and man_MANS.
7533    This makes the hairy script code slightly less hairy. If it breaks
7534    some day, this code needs to be fixed; don't blame Automake developers.
7535
7536    Also, this adds more quotes to the existing shell script code in
7537    the Makefile.am "-hook"s.
7538
7539 Makefile.am             |  4 ++++
7540 autogen.sh              |  8 ++++---
7541 po4a/.gitignore         |  2 ++
7542 po4a/po4a.conf          | 14 +++++++++++
7543 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
7544 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
7545 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
7546 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
7547 8 files changed, 197 insertions(+), 45 deletions(-)
7548
7549commit 426f9e5819ff7710a5ff573a96c02940be65d52f
7550Author: Lasse Collin <lasse.collin@tukaani.org>
7551Date:   2020-02-06 17:31:38 +0200
7552
7553    Update THANKS.
7554
7555 THANKS | 1 +
7556 1 file changed, 1 insertion(+)
7557
7558commit e3a4481d020e4de89efa037f335cf50f3ca55592
7559Author: Lasse Collin <lasse.collin@tukaani.org>
7560Date:   2020-02-05 22:35:06 +0200
7561
7562    Update tests/.gitignore.
7563
7564 .gitignore | 4 ++++
7565 1 file changed, 4 insertions(+)
7566
7567commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
7568Author: Lasse Collin <lasse.collin@tukaani.org>
7569Date:   2020-02-05 22:28:51 +0200
7570
7571    Update m4/.gitignore.
7572
7573 m4/.gitignore | 1 +
7574 1 file changed, 1 insertion(+)
7575
7576commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
7577Author: Lasse Collin <lasse.collin@tukaani.org>
7578Date:   2020-02-05 20:47:38 +0200
7579
7580    Update THANKS.
7581
7582 THANKS | 1 +
7583 1 file changed, 1 insertion(+)
7584
7585commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
7586Author: Lasse Collin <lasse.collin@tukaani.org>
7587Date:   2020-02-05 20:40:14 +0200
7588
7589    xz: Make it a fatal error if enabling the sandbox fails.
7590
7591    Perhaps it's too drastic but on the other hand it will let me
7592    learn about possible problems if people report the errors.
7593    This won't be backported to the v5.2 branch.
7594
7595 src/xz/file_io.c | 2 +-
7596 1 file changed, 1 insertion(+), 1 deletion(-)
7597
7598commit af0fb386ef55db66654ae39e2deec6e04190c4ff
7599Author: Lasse Collin <lasse.collin@tukaani.org>
7600Date:   2020-02-05 20:33:50 +0200
7601
7602    xz: Comment out annoying sandboxing messages.
7603
7604 src/xz/file_io.c | 10 +++++++---
7605 1 file changed, 7 insertions(+), 3 deletions(-)
7606
7607commit 986d8c9b52b824474088e5bb3b6940651660f0e2
7608Author: Lasse Collin <lasse.collin@tukaani.org>
7609Date:   2020-02-05 19:33:37 +0200
7610
7611    Build: Workaround a POSIX shell detection problem on Solaris.
7612
7613    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
7614    or if xzgrep does something that isn't in POSIX. The workaround
7615    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
7616    gl_cv_posix_shell wasn't overriden on the configure command line,
7617    use that shell for xzgrep and other scripts. That shell is known
7618    to work and exists on most Solaris systems.
7619
7620 configure.ac | 10 ++++++++++
7621 1 file changed, 10 insertions(+)
7622
7623commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
7624Author: Lasse Collin <lasse.collin@tukaani.org>
7625Date:   2020-02-03 22:03:50 +0200
7626
7627    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
7628
7629 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
7630 1 file changed, 279 insertions(+), 119 deletions(-)
7631
7632commit 353970510895f6a80adfe60cf71b70a95adfa8bc
7633Author: Lasse Collin <lasse.collin@tukaani.org>
7634Date:   2020-02-01 19:56:18 +0200
7635
7636    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
7637
7638    See the code comment for reasoning. It's far from perfect but
7639    hopefully good enough for certain cases while hopefully doing
7640    nothing bad in other situations.
7641
7642    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
7643    on how xz scales down the number of threads.
7644
7645    The limit has to be a few MiB below 4096 MiB because otherwise
7646    things like "xz --lzma2=dict=500MiB" won't scale down the dict
7647    size enough and xz cannot allocate enough memory. With
7648    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
7649    to be no more than 4085 MiB. Some safety margin is good though.
7650
7651    This is hack but it should be useful when running 32-bit xz on
7652    a 64-bit kernel that gives full 4 GiB address space to xz.
7653    Hopefully this is enough to solve this:
7654
7655    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
7656
7657    FreeBSD has a patch that limits the result in tuklib_physmem()
7658    to SIZE_MAX on 32-bit systems. While I think it's not the way
7659    to do it, the results on --memlimit-compress have been good. This
7660    commit should achieve practically identical results for compression
7661    while leaving decompression and tuklib_physmem() and thus
7662    lzma_physmem() unaffected.
7663
7664 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
7665 src/xz/xz.1       | 21 ++++++++++++++++++++-
7666 2 files changed, 51 insertions(+), 2 deletions(-)
7667
7668commit ba76d67585f88677af9f48b48e7bdc3bb7687def
7669Author: Lasse Collin <lasse.collin@tukaani.org>
7670Date:   2020-01-26 20:53:25 +0200
7671
7672    xz: Set the --flush-timeout deadline when the first input byte arrives.
7673
7674    xz --flush-timeout=2000, old version:
7675
7676      1. xz is started. The next flush will happen after two seconds.
7677      2. No input for one second.
7678      3. A burst of a few kilobytes of input.
7679      4. No input for one second.
7680      5. Two seconds have passed and flushing starts.
7681
7682    The first second counted towards the flush-timeout even though
7683    there was no pending data. This can cause flushing to occur more
7684    often than needed.
7685
7686    xz --flush-timeout=2000, after this commit:
7687
7688      1. xz is started.
7689      2. No input for one second.
7690      3. A burst of a few kilobytes of input. The next flush will
7691         happen after two seconds counted from the time when the
7692         first bytes of the burst were read.
7693      4. No input for one second.
7694      5. No input for another second.
7695      6. Two seconds have passed and flushing starts.
7696
7697 src/xz/coder.c   | 6 +-----
7698 src/xz/file_io.c | 6 +++++-
7699 src/xz/mytime.c  | 1 -
7700 3 files changed, 6 insertions(+), 7 deletions(-)
7701
7702commit fd47fd62bbb1bfd13ab63869137971d8b390025f
7703Author: Lasse Collin <lasse.collin@tukaani.org>
7704Date:   2020-01-26 20:19:19 +0200
7705
7706    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
7707
7708 src/xz/coder.c   | 3 ++-
7709 src/xz/file_io.c | 3 ++-
7710 src/xz/file_io.h | 3 +++
7711 src/xz/mytime.c  | 3 ---
7712 src/xz/mytime.h  | 4 ----
7713 5 files changed, 7 insertions(+), 9 deletions(-)
7714
7715commit 815035681063d5774d3640fc20b8ede783dd574e
7716Author: Lasse Collin <lasse.collin@tukaani.org>
7717Date:   2020-01-26 14:49:22 +0200
7718
7719    xz: coder.c: Make writing output a separate function.
7720
7721    The same code sequence repeats so it's nicer as a separate function.
7722    Note that in one case there was no test for opt_mode != MODE_TEST,
7723    but that was only because that condition would always be true, so
7724    this commit doesn't change the behavior there.
7725
7726 src/xz/coder.c | 30 +++++++++++++++++-------------
7727 1 file changed, 17 insertions(+), 13 deletions(-)
7728
7729commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
7730Author: Lasse Collin <lasse.collin@tukaani.org>
7731Date:   2020-01-26 14:13:42 +0200
7732
7733    xz: Fix semi-busy-waiting in xz --flush-timeout.
7734
7735    When input blocked, xz --flush-timeout=1 would wake up every
7736    millisecond and initiate flushing which would have nothing to
7737    flush and thus would just waste CPU time. The fix disables the
7738    timeout when no input has been seen since the previous flush.
7739
7740 src/xz/coder.c   |  4 ++++
7741 src/xz/file_io.c | 15 +++++++++++----
7742 src/xz/file_io.h |  4 ++++
7743 3 files changed, 19 insertions(+), 4 deletions(-)
7744
7745commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
7746Author: Lasse Collin <lasse.collin@tukaani.org>
7747Date:   2020-01-26 13:47:31 +0200
7748
7749    xz: Refactor io_read() a bit.
7750
7751 src/xz/file_io.c | 17 ++++++++---------
7752 1 file changed, 8 insertions(+), 9 deletions(-)
7753
7754commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
7755Author: Lasse Collin <lasse.collin@tukaani.org>
7756Date:   2020-01-26 13:37:08 +0200
7757
7758    xz: Update a comment in file_io.h.
7759
7760 src/xz/file_io.h | 5 ++++-
7761 1 file changed, 4 insertions(+), 1 deletion(-)
7762
7763commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
7764Author: Lasse Collin <lasse.collin@tukaani.org>
7765Date:   2020-01-26 13:27:51 +0200
7766
7767    xz: Move the setting of flush_needed in file_io.c to a nicer location.
7768
7769 src/xz/file_io.c | 6 ++----
7770 1 file changed, 2 insertions(+), 4 deletions(-)
7771
7772commit cf2df0f05ac98c1158c6e48145900b773223605d
7773Author: Lasse Collin <lasse.collin@tukaani.org>
7774Date:   2020-01-19 21:54:33 +0200
7775
7776    Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
7777
7778    https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048
7779
7780    Thanks to Bhargava Shastry for sending the patch.
7781
7782 tests/ossfuzz/Makefile | 2 +-
7783 1 file changed, 1 insertion(+), 1 deletion(-)
7784
7785commit 7136f1735c60ac6967c4b8e277fcde53d485234f
7786Author: Lasse Collin <lasse.collin@tukaani.org>
7787Date:   2019-12-31 00:41:28 +0200
7788
7789    Rename unaligned_read32ne to read32ne, and similarly for the others.
7790
7791 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
7792 src/liblzma/common/alone_encoder.c        |  2 +-
7793 src/liblzma/common/block_header_decoder.c |  2 +-
7794 src/liblzma/common/block_header_encoder.c |  2 +-
7795 src/liblzma/common/memcmplen.h            |  9 ++---
7796 src/liblzma/common/stream_flags_decoder.c |  6 +--
7797 src/liblzma/common/stream_flags_encoder.c |  8 ++--
7798 src/liblzma/lz/lz_encoder_hash.h          |  2 +-
7799 src/liblzma/lzma/lzma_decoder.c           |  2 +-
7800 src/liblzma/lzma/lzma_encoder.c           |  2 +-
7801 src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
7802 src/liblzma/simple/simple_decoder.c       |  2 +-
7803 src/liblzma/simple/simple_encoder.c       |  2 +-
7804 tests/test_block_header.c                 |  4 +-
7805 tests/test_stream_flags.c                 |  6 +--
7806 15 files changed, 54 insertions(+), 62 deletions(-)
7807
7808commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
7809Author: Lasse Collin <lasse.collin@tukaani.org>
7810Date:   2019-12-31 00:29:48 +0200
7811
7812    Rename read32ne to aligned_read32ne, and similarly for the others.
7813
7814    Using the aligned methods requires more care to ensure that
7815    the address really is aligned, so it's nicer if the aligned
7816    methods are prefixed. The next commit will remove the unaligned_
7817    prefix from the unaligned methods which in liblzma are used in
7818    more places than the aligned ones.
7819
7820 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
7821 src/liblzma/check/crc32_fast.c |  4 +--
7822 src/liblzma/check/crc64_fast.c |  4 +--
7823 3 files changed, 32 insertions(+), 32 deletions(-)
7824
7825commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
7826Author: Lasse Collin <lasse.collin@tukaani.org>
7827Date:   2019-12-31 00:18:24 +0200
7828
7829    Revise tuklib_integer.h and .m4.
7830
7831    Add a configure option --enable-unsafe-type-punning to get the
7832    old non-conforming memory access methods. It can be useful with
7833    old compilers or in some other less typical situations but
7834    shouldn't normally be used.
7835
7836    Omit the packed struct trick for unaligned access. While it's
7837    best in some cases, this is simpler. If the memcpy trick doesn't
7838    work, one can request unsafe type punning from configure.
7839
7840    Because CRC32/CRC64 code needs fast aligned reads, if no very
7841    safe way to do it is found, type punning is used as a fallback.
7842    This sucks but since it currently works in practice, it seems to
7843    be the least bad option. It's never needed with GCC >= 4.7 or
7844    Clang >= 3.6 since these support __builtin_assume_aligned and
7845    thus fast aligned access can be done with the memcpy trick.
7846
7847    Other things:
7848      - Support GCC/Clang __builtin_bswapXX
7849      - Cleaner bswap fallback macros
7850      - Minor cleanups
7851
7852 m4/tuklib_integer.m4        |  46 ++++-
7853 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
7854 2 files changed, 316 insertions(+), 218 deletions(-)
7855
7856commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
7857Author: Lasse Collin <lasse.collin@tukaani.org>
7858Date:   2019-12-29 22:51:58 +0200
7859
7860    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
7861
7862    Thanks to Daniel Richard G.
7863
7864 tests/test_check.c | 9 +++++++--
7865 1 file changed, 7 insertions(+), 2 deletions(-)
7866
7867commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
7868Author: Lasse Collin <lasse.collin@tukaani.org>
7869Date:   2019-09-24 23:02:40 +0300
7870
7871    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
7872
7873    This adds a configure option --enable-path-for-scripts=PREFIX
7874    which defaults to empty except on Solaris it is /usr/xpg4/bin
7875    to make POSIX grep and others available. The Solaris case had
7876    been documented in INSTALL with a manual fix but it's better
7877    to do this automatically since it is needed on most Solaris
7878    systems anyway.
7879
7880    Thanks to Daniel Richard G.
7881
7882 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
7883 configure.ac          | 26 ++++++++++++++++++++++++++
7884 src/scripts/xzdiff.in |  1 +
7885 src/scripts/xzgrep.in |  1 +
7886 src/scripts/xzless.in |  1 +
7887 src/scripts/xzmore.in |  1 +
7888 6 files changed, 65 insertions(+), 8 deletions(-)
7889
7890commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
7891Author: Lasse Collin <lasse.collin@tukaani.org>
7892Date:   2019-07-12 18:57:43 +0300
7893
7894    Fix comment typos in tuklib_mbstr* files.
7895
7896 src/common/tuklib_mbstr.h       | 2 +-
7897 src/common/tuklib_mbstr_fw.c    | 2 +-
7898 src/common/tuklib_mbstr_width.c | 2 +-
7899 3 files changed, 3 insertions(+), 3 deletions(-)
7900
7901commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
7902Author: Lasse Collin <lasse.collin@tukaani.org>
7903Date:   2019-07-12 18:30:46 +0300
7904
7905    Add missing include to tuklib_mbstr_width.c.
7906
7907    It didn't matter in XZ Utils because sysdefs.h
7908    includes string.h anyway.
7909
7910 src/common/tuklib_mbstr_width.c | 1 +
7911 1 file changed, 1 insertion(+)
7912
7913commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
7914Author: Lasse Collin <lasse.collin@tukaani.org>
7915Date:   2019-07-12 18:10:57 +0300
7916
7917    Update tuklib base headers to include stdbool.h.
7918
7919 src/common/tuklib_common.h | 2 +-
7920 src/common/tuklib_config.h | 1 +
7921 2 files changed, 2 insertions(+), 1 deletion(-)
7922
7923commit de1f47b2b40e960b7bc3acba754f66dd19705921
7924Author: Lasse Collin <lasse.collin@tukaani.org>
7925Date:   2019-06-28 00:54:31 +0300
7926
7927    xz: Automatically align the strings in --info-memory.
7928
7929    This makes it easier to translate the strings.
7930
7931    Also, the string for amount of RAM was shortened.
7932
7933 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++-----------
7934 1 file changed, 34 insertions(+), 11 deletions(-)
7935
7936commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
7937Author: Lasse Collin <lasse.collin@tukaani.org>
7938Date:   2019-06-25 23:15:21 +0300
7939
7940    liblzma: Fix a buggy comment.
7941
7942 src/liblzma/lz/lz_encoder_mf.c | 2 +-
7943 1 file changed, 1 insertion(+), 1 deletion(-)
7944
7945commit fc77929e92e869f6869bf88931066103fd75f376
7946Author: Lasse Collin <lasse.collin@tukaani.org>
7947Date:   2019-06-25 00:16:06 +0300
7948
7949    configure.ac: Fix a typo in a comment.
7950
7951 configure.ac | 2 +-
7952 1 file changed, 1 insertion(+), 1 deletion(-)
7953
7954commit e873902641794210ad7db59743f98e3e1cd6139f
7955Author: Lasse Collin <lasse.collin@tukaani.org>
7956Date:   2019-06-25 00:08:13 +0300
7957
7958    Tests: Silence warnings from clang -Wassign-enum.
7959
7960    Also changed 999 to 99 so it fits even if lzma_check happened
7961    to be 8 bits wide.
7962
7963 tests/test_block_header.c | 3 ++-
7964 tests/test_stream_flags.c | 2 +-
7965 2 files changed, 3 insertions(+), 2 deletions(-)
7966
7967commit d499e467d99efeaae688564eedc4548837c1416a
7968Author: Lasse Collin <lasse.collin@tukaani.org>
7969Date:   2019-06-24 23:52:17 +0300
7970
7971    liblzma: Add a comment.
7972
7973 src/liblzma/common/stream_encoder_mt.c | 2 +-
7974 1 file changed, 1 insertion(+), 1 deletion(-)
7975
7976commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
7977Author: Lasse Collin <lasse.collin@tukaani.org>
7978Date:   2019-06-24 23:45:21 +0300
7979
7980    liblzma: Silence clang -Wmissing-variable-declarations.
7981
7982 src/liblzma/check/crc32_table.c | 3 +++
7983 src/liblzma/check/crc64_table.c | 3 +++
7984 2 files changed, 6 insertions(+)
7985
7986commit 1b4675cebf7471f7cc9b7072c950e3de97147063
7987Author: Lasse Collin <lasse.collin@tukaani.org>
7988Date:   2019-06-24 23:25:41 +0300
7989
7990    Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
7991
7992    LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
7993    enumeration. Previously it was #defined to 32 and cast to lzma_ret.
7994    That way it wasn't visible in the public API, but this was hackish.
7995
7996    Now the public API has eight LZMA_RET_INTERNALx members and
7997    LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
7998    the code is cleaner overall although the public API has a few
7999    extra mysterious enum members.
8000
8001 src/liblzma/api/lzma/base.h | 15 ++++++++++++++-
8002 src/liblzma/common/common.c |  4 +---
8003 src/liblzma/common/common.h |  5 ++---
8004 src/xz/message.c            |  8 ++++++++
8005 4 files changed, 25 insertions(+), 7 deletions(-)
8006
8007commit 159c43875eb25deea626ed651274464bae3e32ef
8008Author: Lasse Collin <lasse.collin@tukaani.org>
8009Date:   2019-06-24 22:57:43 +0300
8010
8011    xz: Silence a warning from clang -Wsign-conversion in main.c.
8012
8013 src/xz/main.c | 2 +-
8014 1 file changed, 1 insertion(+), 1 deletion(-)
8015
8016commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
8017Author: Lasse Collin <lasse.collin@tukaani.org>
8018Date:   2019-06-24 22:52:20 +0300
8019
8020    xz: Make "headings" static in list.c.
8021
8022    Caught by clang -Wmissing-variable-declarations.
8023
8024 src/xz/list.c | 2 +-
8025 1 file changed, 1 insertion(+), 1 deletion(-)
8026
8027commit 608517b9b76c41fac6613dbda1193d6f41338e19
8028Author: Lasse Collin <lasse.collin@tukaani.org>
8029Date:   2019-06-24 22:47:39 +0300
8030
8031    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
8032
8033    Caught by clang -Wused-but-marked-unused.
8034
8035 src/liblzma/common/alone_decoder.c | 3 +--
8036 src/liblzma/common/alone_encoder.c | 3 +--
8037 src/liblzma/lz/lz_decoder.c        | 3 +--
8038 3 files changed, 3 insertions(+), 6 deletions(-)
8039
8040commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
8041Author: Lasse Collin <lasse.collin@tukaani.org>
8042Date:   2019-06-24 20:53:55 +0300
8043
8044    Tests: Silence a warning from -Wsign-conversion.
8045
8046 tests/create_compress_files.c | 8 ++++----
8047 1 file changed, 4 insertions(+), 4 deletions(-)
8048
8049commit 2402f7873dcae719d0ebddd23bb579074519ac52
8050Author: Lasse Collin <lasse.collin@tukaani.org>
8051Date:   2019-06-24 20:45:49 +0300
8052
8053    xz: Fix an integer overflow with 32-bit off_t.
8054
8055    Or any off_t which isn't very big (like signed 64 bit integer
8056    that most system have). A small off_t could overflow if the
8057    file being decompressed had long enough run of zero bytes,
8058    which would result in corrupt output.
8059
8060 src/xz/file_io.c | 11 +++++++++--
8061 1 file changed, 9 insertions(+), 2 deletions(-)
8062
8063commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
8064Author: Lasse Collin <lasse.collin@tukaani.org>
8065Date:   2019-06-24 01:24:17 +0300
8066
8067    xz: Cleanup io_seek_src() a bit.
8068
8069    lseek() returns -1 on error and checking for -1 is nicer.
8070
8071 src/xz/file_io.c | 4 +---
8072 1 file changed, 1 insertion(+), 3 deletions(-)
8073
8074commit dfda7cf6afa486e10df035327d68753896dfb48a
8075Author: Lasse Collin <lasse.collin@tukaani.org>
8076Date:   2019-06-24 00:57:23 +0300
8077
8078    Tests: Remove a duplicate branch from tests/tests.h.
8079
8080    The duplication was introduced about eleven years ago and
8081    should have been cleaned up back then already.
8082
8083    This was caught by -Wduplicated-branches.
8084
8085 tests/tests.h | 9 ++-------
8086 1 file changed, 2 insertions(+), 7 deletions(-)
8087
8088commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
8089Author: Lasse Collin <lasse.collin@tukaani.org>
8090Date:   2019-06-24 00:40:45 +0300
8091
8092    xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
8093
8094    This helps fixing warnings from -Wsign-conversion and makes the
8095    code look better too.
8096
8097 src/xz/file_io.c | 16 ++++++++++++----
8098 src/xz/file_io.h |  4 ++--
8099 src/xz/list.c    |  9 ++++-----
8100 3 files changed, 18 insertions(+), 11 deletions(-)
8101
8102commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
8103Author: Lasse Collin <lasse.collin@tukaani.org>
8104Date:   2019-06-24 00:12:38 +0300
8105
8106    xz: list.c: Fix some warnings from -Wsign-conversion.
8107
8108 src/xz/list.c | 7 ++++---
8109 1 file changed, 4 insertions(+), 3 deletions(-)
8110
8111commit d0a78751eb54fb1572002746c533936a118e4e42
8112Author: Lasse Collin <lasse.collin@tukaani.org>
8113Date:   2019-06-23 23:22:45 +0300
8114
8115    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
8116
8117 src/common/tuklib_mbstr_width.c | 2 +-
8118 1 file changed, 1 insertion(+), 1 deletion(-)
8119
8120commit 7883d73530b4b2a701ddd7d50c35676cbc158039
8121Author: Lasse Collin <lasse.collin@tukaani.org>
8122Date:   2019-06-23 23:19:34 +0300
8123
8124    xz: Fix some of the warnings from -Wsign-conversion.
8125
8126 src/xz/args.c    | 4 ++--
8127 src/xz/coder.c   | 4 ++--
8128 src/xz/file_io.c | 5 +++--
8129 src/xz/message.c | 4 ++--
8130 src/xz/mytime.c  | 4 ++--
8131 src/xz/options.c | 2 +-
8132 src/xz/util.c    | 4 ++--
8133 7 files changed, 14 insertions(+), 13 deletions(-)
8134
8135commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
8136Author: Lasse Collin <lasse.collin@tukaani.org>
8137Date:   2019-06-23 22:27:45 +0300
8138
8139    tuklib_cpucores: Silence warnings from -Wsign-conversion.
8140
8141 src/common/tuklib_cpucores.c | 10 +++++-----
8142 1 file changed, 5 insertions(+), 5 deletions(-)
8143
8144commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
8145Author: Lasse Collin <lasse.collin@tukaani.org>
8146Date:   2019-06-23 21:40:47 +0300
8147
8148    xzdec: Fix warnings from -Wsign-conversion.
8149
8150 src/xzdec/xzdec.c | 2 +-
8151 1 file changed, 1 insertion(+), 1 deletion(-)
8152
8153commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
8154Author: Lasse Collin <lasse.collin@tukaani.org>
8155Date:   2019-06-23 21:38:56 +0300
8156
8157    liblzma: Fix warnings from -Wsign-conversion.
8158
8159    Also, more parentheses were added to the literal_subcoder
8160    macro in lzma_comon.h (better style but no functional change
8161    in the current usage).
8162
8163 src/liblzma/common/block_header_decoder.c |  2 +-
8164 src/liblzma/delta/delta_decoder.c         |  2 +-
8165 src/liblzma/lzma/fastpos.h                |  2 +-
8166 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
8167 src/liblzma/lzma/lzma_common.h            |  3 ++-
8168 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
8169 src/liblzma/simple/arm.c                  |  6 +++---
8170 src/liblzma/simple/armthumb.c             |  8 ++++----
8171 src/liblzma/simple/ia64.c                 |  2 +-
8172 src/liblzma/simple/powerpc.c              |  9 +++++----
8173 src/liblzma/simple/x86.c                  |  2 +-
8174 11 files changed, 31 insertions(+), 29 deletions(-)
8175
8176commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
8177Author: Lasse Collin <lasse.collin@tukaani.org>
8178Date:   2019-06-23 19:33:55 +0300
8179
8180    tuklib_integer: Silence warnings from -Wsign-conversion.
8181
8182 src/common/tuklib_integer.h | 6 +++---
8183 1 file changed, 3 insertions(+), 3 deletions(-)
8184
8185commit 3ce05d235f736d392347a05086b8033416874b87
8186Author: Lasse Collin <lasse.collin@tukaani.org>
8187Date:   2019-06-20 19:40:30 +0300
8188
8189    tuklib_integer: Fix usage of conv macros.
8190
8191    Use a temporary variable instead of e.g.
8192    conv32le(unaligned_read32ne(buf)) because the macro can
8193    evaluate its argument multiple times.
8194
8195 src/common/tuklib_integer.h | 12 ++++++++----
8196 1 file changed, 8 insertions(+), 4 deletions(-)
8197
8198commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
8199Author: Lasse Collin <lasse.collin@tukaani.org>
8200Date:   2019-06-03 20:44:19 +0300
8201
8202    Update THANKS.
8203
8204 THANKS | 1 +
8205 1 file changed, 1 insertion(+)
8206
8207commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
8208Author: Lasse Collin <lasse.collin@tukaani.org>
8209Date:   2019-06-03 20:41:54 +0300
8210
8211    liblzma: Fix comments.
8212
8213    Thanks to Bruce Stark.
8214
8215 src/liblzma/common/alone_encoder.c        | 4 ++--
8216 src/liblzma/common/block_util.c           | 2 +-
8217 src/liblzma/common/common.c               | 2 +-
8218 src/liblzma/common/filter_common.h        | 2 +-
8219 src/liblzma/common/filter_decoder.h       | 2 +-
8220 src/liblzma/common/filter_flags_encoder.c | 2 +-
8221 6 files changed, 7 insertions(+), 7 deletions(-)
8222
8223commit c460f6defebc5a81bbca90adc2476154ca244f69
8224Author: Lasse Collin <lasse.collin@tukaani.org>
8225Date:   2019-06-02 00:50:59 +0300
8226
8227    liblzma: Fix one more unaligned read to use unaligned_read16ne().
8228
8229 src/liblzma/lz/lz_encoder_hash.h | 2 +-
8230 1 file changed, 1 insertion(+), 1 deletion(-)
8231
8232commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
8233Author: Lasse Collin <lasse.collin@tukaani.org>
8234Date:   2019-06-01 21:41:55 +0300
8235
8236    Update THANKS.
8237
8238 THANKS | 1 +
8239 1 file changed, 1 insertion(+)
8240
8241commit 386394fc9fcde2615391f804eaa466749f96f4ef
8242Author: Lasse Collin <lasse.collin@tukaani.org>
8243Date:   2019-06-01 21:36:13 +0300
8244
8245    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
8246
8247    The same compiler-specific #ifdefs are already in tuklib_integer.h
8248
8249 src/liblzma/common/memcmplen.h | 10 +---------
8250 1 file changed, 1 insertion(+), 9 deletions(-)
8251
8252commit 264ab971ce2994baac41b1579c9c35aba7743fc8
8253Author: Lasse Collin <lasse.collin@tukaani.org>
8254Date:   2019-06-01 21:30:03 +0300
8255
8256    tuklib_integer: Cleanup MSVC-specific code.
8257
8258 src/common/tuklib_integer.h | 20 +++++++++-----------
8259 1 file changed, 9 insertions(+), 11 deletions(-)
8260
8261commit 33773c6f2a8711d4aa6656795db52c59a28580ec
8262Author: Lasse Collin <lasse.collin@tukaani.org>
8263Date:   2019-06-01 19:01:21 +0300
8264
8265    liblzma: Use unaligned_readXXne functions instead of type punning.
8266
8267    Now gcc -fsanitize=undefined should be clean.
8268
8269    Thanks to Jeffrey Walton.
8270
8271 src/liblzma/common/memcmplen.h          | 12 ++++++------
8272 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
8273 2 files changed, 7 insertions(+), 7 deletions(-)
8274
8275commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
8276Author: Lasse Collin <lasse.collin@tukaani.org>
8277Date:   2019-06-01 18:46:54 +0300
8278
8279    tuklib_integer: Autodetect support for unaligned access on ARM.
8280
8281    The result is used as the default for --enable-unaligned-access.
8282    The test should work with GCC and Clang.
8283
8284 m4/tuklib_integer.m4 | 11 +++++++++++
8285 1 file changed, 11 insertions(+)
8286
8287commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
8288Author: Lasse Collin <lasse.collin@tukaani.org>
8289Date:   2019-06-01 18:41:16 +0300
8290
8291    tuklib_integer: Improve unaligned memory access.
8292
8293    Now memcpy() or GNU C packed structs for unaligned access instead
8294    of type punning. See the comment in this commit for details.
8295
8296    Avoiding type punning with unaligned access is needed to
8297    silence gcc -fsanitize=undefined.
8298
8299    New functions: unaliged_readXXne and unaligned_writeXXne where
8300    XX is 16, 32, or 64.
8301
8302 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
8303 1 file changed, 168 insertions(+), 12 deletions(-)
8304
8305commit 2a22de439ec63da1927b640eda309296a1e8dce5
8306Author: Lasse Collin <lasse.collin@tukaani.org>
8307Date:   2019-05-13 20:05:17 +0300
8308
8309    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
8310
8311    I should have always known this but I didn't. Here is an example
8312    as a reminder to myself:
8313
8314        int mycopy(void *dest, void *src, size_t n)
8315        {
8316            memcpy(dest, src, n);
8317            return dest == NULL;
8318        }
8319
8320    In the example, a compiler may assume that dest != NULL because
8321    passing NULL to memcpy() would be undefined behavior. Testing
8322    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
8323    With -O2 the return value is 0 because the compiler infers that
8324    dest cannot be NULL because it was already used with memcpy()
8325    and thus the test for NULL gets optimized out.
8326
8327    In liblzma, if a null-pointer was passed to memcpy(), there were
8328    no checks for NULL *after* the memcpy() call, so I cautiously
8329    suspect that it shouldn't have caused bad behavior in practice,
8330    but it's hard to be sure, and the problematic cases had to be
8331    fixed anyway.
8332
8333    Thanks to Jeffrey Walton.
8334
8335 src/liblzma/common/common.c       |  6 +++++-
8336 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
8337 src/liblzma/simple/simple_coder.c | 10 +++++++++-
8338 3 files changed, 23 insertions(+), 5 deletions(-)
8339
8340commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
8341Author: Lasse Collin <lasse.collin@tukaani.org>
8342Date:   2019-05-11 20:56:08 +0300
8343
8344    Update THANKS.
8345
8346 THANKS | 1 +
8347 1 file changed, 1 insertion(+)
8348
8349commit 4adb8288ab61d5f14e212007b8742df0710baf73
8350Author: Lasse Collin <lasse.collin@tukaani.org>
8351Date:   2019-05-11 20:54:12 +0300
8352
8353    xz: Update xz man page date.
8354
8355 src/xz/xz.1 | 2 +-
8356 1 file changed, 1 insertion(+), 1 deletion(-)
8357
8358commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
8359Author: Antoine Cœur <antoine.coeur@ef.com>
8360Date:   2019-05-08 13:30:57 +0800
8361
8362    spelling
8363
8364 Doxyfile.in                            | 2 +-
8365 NEWS                                   | 2 +-
8366 doc/examples/11_file_info.c            | 2 +-
8367 src/liblzma/api/lzma/block.h           | 2 +-
8368 src/liblzma/api/lzma/hardware.h        | 2 +-
8369 src/liblzma/api/lzma/lzma12.h          | 2 +-
8370 src/liblzma/api/lzma/vli.h             | 2 +-
8371 src/liblzma/common/file_info.c         | 4 ++--
8372 src/liblzma/common/hardware_physmem.c  | 2 +-
8373 src/liblzma/common/index.c             | 4 ++--
8374 src/liblzma/common/stream_encoder_mt.c | 2 +-
8375 src/liblzma/common/vli_decoder.c       | 2 +-
8376 src/liblzma/lz/lz_decoder.c            | 2 +-
8377 src/scripts/xzgrep.in                  | 2 +-
8378 src/xz/args.c                          | 2 +-
8379 src/xz/coder.c                         | 4 ++--
8380 src/xz/list.c                          | 4 ++--
8381 src/xz/main.c                          | 2 +-
8382 src/xz/mytime.h                        | 2 +-
8383 src/xz/private.h                       | 2 +-
8384 src/xz/xz.1                            | 2 +-
8385 windows/build.bash                     | 2 +-
8386 22 files changed, 26 insertions(+), 26 deletions(-)
8387
8388commit 4ed339606156bd313ed99237485cb8ed0362d64f
8389Author: Lasse Collin <lasse.collin@tukaani.org>
8390Date:   2019-05-01 18:43:10 +0300
8391
8392    xz: In xz -lvv look at the widths of the check names too.
8393
8394    Now the widths of the check names is used to adjust the width
8395    of the Check column. This way there no longer is a need to restrict
8396    the widths of the check names to be at most ten terminal-columns.
8397
8398 src/xz/list.c | 32 ++++++++++++++++++++++++++------
8399 1 file changed, 26 insertions(+), 6 deletions(-)
8400
8401commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
8402Author: Lasse Collin <lasse.collin@tukaani.org>
8403Date:   2019-05-01 18:33:25 +0300
8404
8405    xz: Fix xz -lvv column alignment to look at the translated strings.
8406
8407 src/xz/list.c | 4 ++--
8408 1 file changed, 2 insertions(+), 2 deletions(-)
8409
8410commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
8411Author: Lasse Collin <lasse.collin@tukaani.org>
8412Date:   2019-05-01 16:52:36 +0300
8413
8414    Update THANKS.
8415
8416 THANKS | 1 +
8417 1 file changed, 1 insertion(+)
8418
8419commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
8420Author: Lasse Collin <lasse.collin@tukaani.org>
8421Date:   2019-05-01 16:43:16 +0300
8422
8423    Windows: Update VS version in windows/vs2019/config.h.
8424
8425 windows/vs2019/config.h | 2 +-
8426 1 file changed, 1 insertion(+), 1 deletion(-)
8427
8428commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
8429Author: Julien Marrec <julien.marrec@gmail.com>
8430Date:   2019-04-25 17:44:06 +0200
8431
8432    Windows: Upgrade solution itself
8433
8434 windows/vs2019/xz_win.sln | 7 +++++--
8435 1 file changed, 5 insertions(+), 2 deletions(-)
8436
8437commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
8438Author: Julien Marrec <julien.marrec@gmail.com>
8439Date:   2019-04-25 17:40:24 +0200
8440
8441    Windows: Upgrade solution with VS2019
8442
8443 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
8444 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
8445 2 files changed, 16 insertions(+), 14 deletions(-)
8446
8447commit be25a0c37ba92a20c390b4d17fe502457fe96b71
8448Author: Julien Marrec <julien.marrec@gmail.com>
8449Date:   2019-04-25 17:39:32 +0200
8450
8451    Windows: Duplicate windows/vs2017 before upgrading
8452
8453 windows/vs2019/config.h            | 148 ++++++++++++++
8454 windows/vs2019/liblzma.vcxproj     | 356 ++++++++++++++++++++++++++++++++++
8455 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++
8456 windows/vs2019/xz_win.sln          |  48 +++++
8457 4 files changed, 937 insertions(+)
8458
8459commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
8460Author: Lasse Collin <lasse.collin@tukaani.org>
8461Date:   2019-03-04 22:49:04 +0200
8462
8463    README: Update translation instructions.
8464
8465    XZ Utils is now part of the Translation Project
8466    <https://translationproject.org/>.
8467
8468 README | 32 +++++++++++++-------------------
8469 1 file changed, 13 insertions(+), 19 deletions(-)
8470
8471commit a750c35a7d45a16c11c1d40fecee8443c32a9996
8472Author: Lasse Collin <lasse.collin@tukaani.org>
8473Date:   2019-03-04 21:20:39 +0200
8474
8475    xz: Automatically align column headings in xz -lvv.
8476
8477 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------
8478 1 file changed, 212 insertions(+), 51 deletions(-)
8479
8480commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
8481Author: Lasse Collin <lasse.collin@tukaani.org>
8482Date:   2019-03-04 01:07:59 +0200
8483
8484    xz: Automatically align strings ending in a colon in --list output.
8485
8486    This should avoid alignment errors in translations with these
8487    strings.
8488
8489 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
8490 1 file changed, 102 insertions(+), 12 deletions(-)
8491
8492commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
8493Author: Lasse Collin <lasse.collin@tukaani.org>
8494Date:   2019-01-13 17:29:23 +0200
8495
8496    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
8497
8498    I understood that if a WTPV is specified, it's often wrong
8499    because different VS installations have different SDK version
8500    installed. Omitting the WTPV tag makes VS2017 default to
8501    Windows SDK 8.1 which often is also missing, so in any case
8502    people may need to specify the WTPV before building. But some
8503    day in the future a missing WTPV tag will start to default to
8504    the latest installed SDK which sounds reasonable:
8505
8506    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
8507
8508    Thanks to "dom".
8509
8510 windows/INSTALL-MSVC.txt           | 4 ++++
8511 windows/vs2017/liblzma.vcxproj     | 1 -
8512 windows/vs2017/liblzma_dll.vcxproj | 1 -
8513 3 files changed, 4 insertions(+), 2 deletions(-)
8514
8515commit 4d86076332aece6314063d3712a5f364172bbb0f
8516Author: Lasse Collin <lasse.collin@tukaani.org>
8517Date:   2018-12-20 20:42:29 +0200
8518
8519    Update THANKS.
8520
8521 THANKS | 1 +
8522 1 file changed, 1 insertion(+)
8523
8524commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
8525Author: Lasse Collin <lasse.collin@tukaani.org>
8526Date:   2018-12-14 20:34:30 +0200
8527
8528    xz: Fix a crash in progress indicator when in passthru mode.
8529
8530    "xz -dcfv not_an_xz_file" crashed (all four options are
8531    required to trigger it). It caused xz to call
8532    lzma_get_progress(&strm, ...) when no coder was initialized
8533    in strm. In this situation strm.internal is NULL which leads
8534    to a crash in lzma_get_progress().
8535
8536    The bug was introduced when xz started using lzma_get_progress()
8537    to get progress info for multi-threaded compression, so the
8538    bug is present in versions 5.1.3alpha and higher.
8539
8540    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
8541    the bug report.
8542
8543 src/xz/coder.c   | 11 +++++++----
8544 src/xz/message.c | 18 ++++++++++++++++--
8545 src/xz/message.h |  3 ++-
8546 3 files changed, 25 insertions(+), 7 deletions(-)
8547
8548commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
8549Author: Lasse Collin <lasse.collin@tukaani.org>
8550Date:   2018-11-22 17:20:31 +0200
8551
8552    xz: Update man page timestamp.
8553
8554 src/xz/xz.1 | 2 +-
8555 1 file changed, 1 insertion(+), 1 deletion(-)
8556
8557commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
8558Author: Pavel Raiskup <praiskup@redhat.com>
8559Date:   2018-11-22 15:14:34 +0100
8560
8561    'have have' typos
8562
8563 src/xz/signals.c | 2 +-
8564 src/xz/xz.1      | 2 +-
8565 2 files changed, 2 insertions(+), 2 deletions(-)
8566
8567commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
8568Author: Lasse Collin <lasse.collin@tukaani.org>
8569Date:   2018-11-02 20:40:48 +0200
8570
8571    Update THANKS.
8572
8573 THANKS | 1 +
8574 1 file changed, 1 insertion(+)
8575
8576commit 106d1a663d4ba42b63231caa289f531548df81c1
8577Author: Lasse Collin <lasse.collin@tukaani.org>
8578Date:   2018-11-02 20:18:45 +0200
8579
8580    Tests: Add a fuzz test program and a config file for OSS-Fuzz.
8581
8582    Thanks to Bhargava Shastry and Github user pdknsk.
8583
8584 tests/Makefile.am                 |  1 +
8585 tests/ossfuzz/Makefile            |  7 ++++
8586 tests/ossfuzz/config/fuzz.dict    |  2 +
8587 tests/ossfuzz/config/fuzz.options |  2 +
8588 tests/ossfuzz/fuzz.c              | 82 +++++++++++++++++++++++++++++++++++++++
8589 5 files changed, 94 insertions(+)
8590
8591commit a18ae42a79a19b1394b41eb3e238139fd28012ec
8592Author: Lasse Collin <lasse.collin@tukaani.org>
8593Date:   2018-10-26 22:49:10 +0300
8594
8595    liblzma: Don't verify header CRC32s if building for fuzz testing.
8596
8597    FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
8598    is being built for fuzz testing.
8599
8600    Most fuzzed inputs would normally get rejected because of incorrect
8601    CRC32 and the actual header decoding code wouldn't get fuzzed.
8602    Disabling CRC32 checks avoids this problem. The fuzzer program
8603    must still use LZMA_IGNORE_CHECK flag to disable verification of
8604    integrity checks of uncompressed data.
8605
8606 src/liblzma/common/block_header_decoder.c |  5 ++++-
8607 src/liblzma/common/index_decoder.c        |  5 ++++-
8608 src/liblzma/common/index_hash.c           |  5 ++++-
8609 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++--
8610 4 files changed, 20 insertions(+), 5 deletions(-)
8611
8612commit f76f7516d6a1c832f61810c82e92d151cc80966c
8613Author: Lasse Collin <lasse.collin@tukaani.org>
8614Date:   2018-07-27 18:10:44 +0300
8615
8616    xzless: Rename unused variables to silence static analysers.
8617
8618    In this particular case I don't see this affecting readability
8619    of the code.
8620
8621    Thanks to Pavel Raiskup.
8622
8623 src/scripts/xzless.in | 2 +-
8624 1 file changed, 1 insertion(+), 1 deletion(-)
8625
8626commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
8627Author: Lasse Collin <lasse.collin@tukaani.org>
8628Date:   2018-07-27 16:02:58 +0300
8629
8630    liblzma: Remove an always-true condition from lzma_index_cat().
8631
8632    This should help static analysis tools to see that newg
8633    isn't leaked.
8634
8635    Thanks to Pavel Raiskup.
8636
8637 src/liblzma/common/index.c | 4 ++--
8638 1 file changed, 2 insertions(+), 2 deletions(-)
8639
8640commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
8641Author: Lasse Collin <lasse.collin@tukaani.org>
8642Date:   2018-05-19 21:23:25 +0300
8643
8644    liblzma: Improve lzma_properties_decode() API documentation.
8645
8646 src/liblzma/api/lzma/filter.h | 7 ++++---
8647 1 file changed, 4 insertions(+), 3 deletions(-)
8648
8649commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
8650Author: Lasse Collin <lasse.collin@tukaani.org>
8651Date:   2018-04-29 18:58:19 +0300
8652
8653    Bump the version number to 5.3.1alpha.
8654
8655 src/liblzma/api/lzma/version.h | 2 +-
8656 src/liblzma/liblzma.map        | 2 +-
8657 2 files changed, 2 insertions(+), 2 deletions(-)
8658
8659commit cee3021d30704858e4bdd22240e7d28e570d7451
8660Author: Lasse Collin <lasse.collin@tukaani.org>
8661Date:   2018-04-29 18:48:00 +0300
8662
8663    extra/scanlzma: Fix compiler warnings.
8664
8665 extra/scanlzma/scanlzma.c | 6 +++++-
8666 1 file changed, 5 insertions(+), 1 deletion(-)
8667
8668commit c5c7ceb08a011b97d261798033e2c39613a69eb7
8669Author: Lasse Collin <lasse.collin@tukaani.org>
8670Date:   2018-04-29 18:44:47 +0300
8671
8672    DOS: Add file_info.c to the list of files to build.
8673
8674 dos/Makefile | 1 +
8675 1 file changed, 1 insertion(+)
8676
8677commit 114cab97af766b21e0fc8620479202fb1e7a5e41
8678Author: Lasse Collin <lasse.collin@tukaani.org>
8679Date:   2018-04-29 18:33:10 +0300
8680
8681    Update NEWS for 5.3.1alpha.
8682
8683 NEWS | 11 +++++++++++
8684 1 file changed, 11 insertions(+)
8685
8686commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
8687Author: Lasse Collin <lasse.collin@tukaani.org>
8688Date:   2018-04-29 18:15:37 +0300
8689
8690    Add NEWS for 5.2.4.
8691
8692 NEWS | 27 +++++++++++++++++++++++++++
8693 1 file changed, 27 insertions(+)
8694
8695commit 47b59d47cfd904a420fbd45629d168ca1973721d
8696Author: Lasse Collin <lasse.collin@tukaani.org>
8697Date:   2018-02-06 19:36:30 +0200
8698
8699    Update THANKS.
8700
8701 THANKS | 2 ++
8702 1 file changed, 2 insertions(+)
8703
8704commit bc197991690ede24ab143665b5b0f0f9cb35cc46
8705Author: Ben Boeckel <mathstuf@gmail.com>
8706Date:   2018-01-29 13:58:18 -0500
8707
8708    nothrow: use noexcept for C++11 and newer
8709
8710    In C++11, the `throw()` specifier is deprecated and `noexcept` is
8711    preffered instead.
8712
8713 src/liblzma/api/lzma.h | 6 +++++-
8714 1 file changed, 5 insertions(+), 1 deletion(-)
8715
8716commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
8717Author: Lasse Collin <lasse.collin@tukaani.org>
8718Date:   2018-02-06 18:02:48 +0200
8719
8720    liblzma: Remove incorrect #ifdef from range_common.h.
8721
8722    In most cases it was harmless but it could affect some
8723    custom build systems.
8724
8725    Thanks to Pippijn van Steenhoven.
8726
8727 src/liblzma/rangecoder/range_common.h | 4 +---
8728 1 file changed, 1 insertion(+), 3 deletions(-)
8729
8730commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
8731Author: Lasse Collin <lasse.collin@tukaani.org>
8732Date:   2018-01-10 22:10:39 +0200
8733
8734    Update THANKS.
8735
8736 THANKS | 1 +
8737 1 file changed, 1 insertion(+)
8738
8739commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
8740Author: Lasse Collin <lasse.collin@tukaani.org>
8741Date:   2018-01-10 21:54:27 +0200
8742
8743    tuklib_integer: New Intel C compiler needs immintrin.h.
8744
8745    Thanks to Melanie Blower (Intel) for the patch.
8746
8747 src/common/tuklib_integer.h | 11 +++++++++++
8748 1 file changed, 11 insertions(+)
8749
8750commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
8751Author: Lasse Collin <lasse.collin@tukaani.org>
8752Date:   2017-09-24 20:04:24 +0300
8753
8754    Update THANKS.
8755
8756 THANKS | 1 +
8757 1 file changed, 1 insertion(+)
8758
8759commit a1e2c568de29c0b57d873eab40a2879b749da429
8760Author: Lasse Collin <lasse.collin@tukaani.org>
8761Date:   2017-09-16 20:36:20 +0300
8762
8763    Windows: Fix paths in VS project files.
8764
8765    Some paths use slashes instead of backslashes as directory
8766    separators... now it should work (I tested VS2013 version).
8767
8768 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
8769 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
8770 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
8771 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
8772 4 files changed, 36 insertions(+), 36 deletions(-)
8773
8774commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
8775Author: Lasse Collin <lasse.collin@tukaani.org>
8776Date:   2017-09-16 12:56:20 +0300
8777
8778    Windows: Update VS2017 project files to include file info decoder.
8779
8780 windows/vs2017/liblzma.vcxproj     | 2 ++
8781 windows/vs2017/liblzma_dll.vcxproj | 2 ++
8782 2 files changed, 4 insertions(+)
8783
8784commit 95d563db3ee497b223e522b699c4d4c29943eef0
8785Author: Lasse Collin <lasse.collin@tukaani.org>
8786Date:   2017-09-16 12:54:23 +0300
8787
8788    Windows: Add project files for VS2017.
8789
8790    These files match the v5.2 branch (no file info decoder).
8791
8792 windows/vs2017/config.h            | 148 ++++++++++++++
8793 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
8794 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
8795 windows/vs2017/xz_win.sln          |  48 +++++
8796 4 files changed, 935 insertions(+)
8797
8798commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
8799Author: Lasse Collin <lasse.collin@tukaani.org>
8800Date:   2017-09-16 12:45:50 +0300
8801
8802    Windows: Update VS2013 project files to include file info decoder.
8803
8804 windows/vs2013/liblzma.vcxproj     | 2 ++
8805 windows/vs2013/liblzma_dll.vcxproj | 2 ++
8806 2 files changed, 4 insertions(+)
8807
8808commit 82388980187b0e3794d187762054200bbdcc9a53
8809Author: Lasse Collin <lasse.collin@tukaani.org>
8810Date:   2017-09-16 12:39:43 +0300
8811
8812    Windows: Move VS2013 files into windows/vs2013 directory.
8813
8814 windows/{ => vs2013}/config.h            |   0
8815 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
8816 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
8817 windows/{ => vs2013}/xz_win.sln          |   0
8818 4 files changed, 279 insertions(+), 279 deletions(-)
8819
8820commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
8821Author: Lasse Collin <lasse.collin@tukaani.org>
8822Date:   2017-08-14 20:08:33 +0300
8823
8824    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
8825
8826 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
8827 src/xz/list.c                   | 2 ++
8828 2 files changed, 8 insertions(+)
8829
8830commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
8831Author: Alexey Tourbin <alexey.tourbin@gmail.com>
8832Date:   2017-05-16 23:56:35 +0300
8833
8834    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
8835
8836 doc/examples/02_decompress.c | 2 +-
8837 1 file changed, 1 insertion(+), 1 deletion(-)
8838
8839commit a015cd1f90116e655be4eaf4aad42c4c911c2807
8840Author: Lasse Collin <lasse.collin@tukaani.org>
8841Date:   2017-05-23 18:34:43 +0300
8842
8843    xz: Fix "xz --list --robot missing_or_bad_file.xz".
8844
8845    It ended up printing an uninitialized char-array when trying to
8846    print the check names (column 7) on the "totals" line.
8847
8848    This also changes the column 12 (minimum xz version) to
8849    50000002 (xz 5.0.0) instead of 0 when there are no valid
8850    input files.
8851
8852    Thanks to kidmin for the bug report.
8853
8854 src/xz/list.c | 8 ++++++--
8855 1 file changed, 6 insertions(+), 2 deletions(-)
8856
8857commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
8858Author: Lasse Collin <lasse.collin@tukaani.org>
8859Date:   2017-04-24 20:20:11 +0300
8860
8861    Docs: Add doc/examples/11_file_info.c.
8862
8863 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++
8864 doc/examples/Makefile       |   3 +-
8865 2 files changed, 208 insertions(+), 1 deletion(-)
8866
8867commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
8868Author: Lasse Collin <lasse.collin@tukaani.org>
8869Date:   2017-04-24 19:48:47 +0300
8870
8871    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
8872
8873    It makes ChangeLog significantly smaller.
8874
8875 Makefile.am | 3 ++-
8876 1 file changed, 2 insertions(+), 1 deletion(-)
8877
8878commit 8269782283806c90a8509c2ac2a308344f70e171
8879Author: Lasse Collin <lasse.collin@tukaani.org>
8880Date:   2017-04-24 19:48:23 +0300
8881
8882    xz: Use lzma_file_info_decoder() for --list.
8883
8884 src/xz/list.c | 254 ++++++++++------------------------------------------------
8885 1 file changed, 44 insertions(+), 210 deletions(-)
8886
8887commit e353d0b1cc0d3997ae5048faa8e6786414953e06
8888Author: Lasse Collin <lasse.collin@tukaani.org>
8889Date:   2017-04-24 19:35:50 +0300
8890
8891    liblzma: Add lzma_file_info_decoder().
8892
8893 src/liblzma/api/lzma/index.h    |  66 ++++
8894 src/liblzma/common/Makefile.inc |   1 +
8895 src/liblzma/common/file_info.c  | 855 ++++++++++++++++++++++++++++++++++++++++
8896 src/liblzma/liblzma.map         |   7 +-
8897 4 files changed, 928 insertions(+), 1 deletion(-)
8898
8899commit 144ef9e19e9496c995b21505dd1e111c442968d1
8900Author: Lasse Collin <lasse.collin@tukaani.org>
8901Date:   2017-04-24 19:30:22 +0300
8902
8903    Update the Git repository URL to HTTPS in ChangeLog.
8904
8905 ChangeLog | 2 +-
8906 1 file changed, 1 insertion(+), 1 deletion(-)
8907
8908commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
8909Author: Lasse Collin <lasse.collin@tukaani.org>
8910Date:   2017-04-21 15:05:16 +0300
8911
8912    liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
8913
8914 src/liblzma/api/lzma/base.h | 18 +++++++++---------
8915 src/liblzma/common/common.c |  2 +-
8916 src/xz/message.c            |  2 +-
8917 3 files changed, 11 insertions(+), 11 deletions(-)
8918
8919commit 662b27c417cab248cb365dd7682121bdec4d5ae7
8920Author: Lasse Collin <lasse.collin@tukaani.org>
8921Date:   2017-04-19 22:17:35 +0300
8922
8923    Update the home page URLs to HTTPS.
8924
8925 COPYING                     | 2 +-
8926 README                      | 2 +-
8927 configure.ac                | 2 +-
8928 doc/faq.txt                 | 4 ++--
8929 dos/config.h                | 2 +-
8930 src/common/common_w32res.rc | 2 +-
8931 src/xz/xz.1                 | 6 +++---
8932 src/xzdec/xzdec.1           | 4 ++--
8933 windows/README-Windows.txt  | 2 +-
8934 windows/config.h            | 2 +-
8935 10 files changed, 14 insertions(+), 14 deletions(-)
8936
8937commit c28f0b3d00af87b92dda229831548d8eb0067d1d
8938Author: Lasse Collin <lasse.collin@tukaani.org>
8939Date:   2017-04-05 18:47:22 +0300
8940
8941    xz: Add io_seek_src().
8942
8943 src/xz/file_io.c | 20 +++++++++++++++++---
8944 src/xz/file_io.h | 13 +++++++++++++
8945 2 files changed, 30 insertions(+), 3 deletions(-)
8946
8947commit bba477257d7319c8764890f3669175b866d24944
8948Author: Lasse Collin <lasse.collin@tukaani.org>
8949Date:   2017-03-30 22:01:54 +0300
8950
8951    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
8952
8953    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
8954    wrong.
8955
8956 src/xz/file_io.c | 10 ++++++++--
8957 1 file changed, 8 insertions(+), 2 deletions(-)
8958
8959commit 310d19816d1652b0c8bb1b82574d46345d924752
8960Author: Lasse Collin <lasse.collin@tukaani.org>
8961Date:   2017-03-30 20:03:05 +0300
8962
8963    liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
8964
8965    This is to allow other functions to use it without going
8966    via the public API (lzma_index_decoder()).
8967
8968 src/liblzma/common/Makefile.inc    |  1 +
8969 src/liblzma/common/index_decoder.c | 10 +++++-----
8970 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++
8971 3 files changed, 30 insertions(+), 5 deletions(-)
8972
8973commit a27920002dbc469f778a134fc665b7c3ea73701b
8974Author: Lasse Collin <lasse.collin@tukaani.org>
8975Date:   2017-03-30 20:00:09 +0300
8976
8977    liblzma: Add generic support for input seeking (LZMA_SEEK).
8978
8979    Also mention LZMA_SEEK in xz/message.c to silence a warning.
8980
8981 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++-
8982 src/liblzma/common/common.c | 12 +++++++++++-
8983 src/xz/message.c            |  1 +
8984 3 files changed, 42 insertions(+), 2 deletions(-)
8985
8986commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
8987Author: Lasse Collin <lasse.collin@tukaani.org>
8988Date:   2017-03-30 19:47:45 +0300
8989
8990    liblzma: Fix lzma_memlimit_set(strm, 0).
8991
8992    The 0 got treated specially in a buggy way and as a result
8993    the function did nothing. The API doc said that 0 was supposed
8994    to return LZMA_PROG_ERROR but it didn't.
8995
8996    Now 0 is treated as if 1 had been specified. This is done because
8997    0 is already used to indicate an error from lzma_memlimit_get()
8998    and lzma_memusage().
8999
9000    In addition, lzma_memlimit_set() no longer checks that the new
9001    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
9002    for the Index decoder and was actually needed only by the
9003    auto decoder. Auto decoder has now been modified to check for
9004    LZMA_MEMUSAGE_BASE.
9005
9006 src/liblzma/api/lzma/base.h       | 7 ++++++-
9007 src/liblzma/common/auto_decoder.c | 3 +++
9008 src/liblzma/common/common.c       | 6 ++++--
9009 3 files changed, 13 insertions(+), 3 deletions(-)
9010
9011commit 84462afaada61379f5878e46f8f00e25a1cdcf29
9012Author: Lasse Collin <lasse.collin@tukaani.org>
9013Date:   2017-03-30 19:16:55 +0300
9014
9015    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
9016
9017 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
9018 src/liblzma/common/alone_decoder.c  |  5 +----
9019 src/liblzma/common/auto_decoder.c   |  5 +----
9020 src/liblzma/common/stream_decoder.c |  5 +----
9021 4 files changed, 20 insertions(+), 16 deletions(-)
9022
9023commit cbc74017939690d13441b8926bb743fb03211b83
9024Author: Lasse Collin <lasse.collin@tukaani.org>
9025Date:   2017-03-30 18:58:18 +0300
9026
9027    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
9028
9029    It returned LZMA_PROG_ERROR, which was done to avoid zero as
9030    the limit (because it's a special value elsewhere), but using
9031    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
9032
9033    The fix/workaround is to treat 0 as if it were 1 byte. It's
9034    effectively the same thing. The only weird consequence is
9035    that then lzma_memlimit_get() will return 1 even when 0 was
9036    specified as the limit.
9037
9038    This fixes a very rare corner case in xz --list where a specific
9039    memory usage limit and a multi-stream file could print the
9040    error message "Internal error (bug)" instead of saying that
9041    the memory usage limit is too low.
9042
9043 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
9044 src/liblzma/common/index_decoder.c |  4 ++--
9045 2 files changed, 13 insertions(+), 9 deletions(-)
9046
9047commit 78ae13bced912b1b92ae927992c99cbcc463cae7
9048Author: Lasse Collin <lasse.collin@tukaani.org>
9049Date:   2016-12-30 13:25:10 +0200
9050
9051    Update NEWS for 5.2.3.
9052
9053 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
9054 1 file changed, 39 insertions(+)
9055
9056commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
9057Author: Lasse Collin <lasse.collin@tukaani.org>
9058Date:   2016-12-26 20:55:52 +0200
9059
9060    Document --enable-sandbox configure option in INSTALL.
9061
9062 INSTALL | 23 +++++++++++++++++++++++
9063 1 file changed, 23 insertions(+)
9064
9065commit d4a0462abe5478193521c14625e1c81fead87f9f
9066Author: Lasse Collin <lasse.collin@tukaani.org>
9067Date:   2016-11-21 20:24:50 +0200
9068
9069    liblzma: Avoid multiple definitions of lzma_coder structures.
9070
9071    Only one definition was visible in a translation unit.
9072    It avoided a few casts and temp variables but seems that
9073    this hack doesn't work with link-time optimizations in compilers
9074    as it's not C99/C11 compliant.
9075
9076    Fixes:
9077    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
9078
9079 src/liblzma/common/alone_decoder.c             |  44 +++++----
9080 src/liblzma/common/alone_encoder.c             |  34 ++++---
9081 src/liblzma/common/auto_decoder.c              |  35 ++++---
9082 src/liblzma/common/block_decoder.c             |  41 ++++----
9083 src/liblzma/common/block_encoder.c             |  40 ++++----
9084 src/liblzma/common/common.h                    |  18 ++--
9085 src/liblzma/common/index_decoder.c             |  33 ++++---
9086 src/liblzma/common/index_encoder.c             |  16 ++--
9087 src/liblzma/common/stream_decoder.c            |  50 +++++-----
9088 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
9089 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
9090 src/liblzma/delta/delta_common.c               |  25 ++---
9091 src/liblzma/delta/delta_decoder.c              |   6 +-
9092 src/liblzma/delta/delta_encoder.c              |  12 ++-
9093 src/liblzma/delta/delta_private.h              |   4 +-
9094 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
9095 src/liblzma/lz/lz_decoder.h                    |  13 ++-
9096 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
9097 src/liblzma/lz/lz_encoder.h                    |   9 +-
9098 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
9099 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
9100 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
9101 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
9102 src/liblzma/lzma/lzma_encoder.h                |   9 +-
9103 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
9104 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
9105 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
9106 src/liblzma/simple/arm.c                       |   2 +-
9107 src/liblzma/simple/armthumb.c                  |   2 +-
9108 src/liblzma/simple/ia64.c                      |   2 +-
9109 src/liblzma/simple/powerpc.c                   |   2 +-
9110 src/liblzma/simple/simple_coder.c              |  61 ++++++------
9111 src/liblzma/simple/simple_private.h            |  12 +--
9112 src/liblzma/simple/sparc.c                     |   2 +-
9113 src/liblzma/simple/x86.c                       |  15 +--
9114 35 files changed, 532 insertions(+), 423 deletions(-)
9115
9116commit a01794c52add98263b49119842c3e7141d1b9ced
9117Author: Lasse Collin <lasse.collin@tukaani.org>
9118Date:   2016-10-24 18:53:25 +0300
9119
9120    Update THANKS.
9121
9122 THANKS | 1 +
9123 1 file changed, 1 insertion(+)
9124
9125commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
9126Author: Lasse Collin <lasse.collin@tukaani.org>
9127Date:   2016-10-24 18:51:36 +0300
9128
9129    tuklib_cpucores: Add support for sched_getaffinity().
9130
9131    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
9132    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
9133    gives the number of cores available to the process instead of
9134    the total number of cores online.
9135
9136    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
9137    configure would detect the FreeBSD-specific cpuset_getaffinity()
9138    but it wouldn't actually work because on GNU/kFreeBSD it requires
9139    using -lfreebsd-glue when linking. Now the glibc-specific function
9140    will be used instead.
9141
9142    Thanks to Sebastian Andrzej Siewior for the original patch
9143    and testing.
9144
9145 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
9146 src/common/tuklib_cpucores.c |  9 +++++++++
9147 2 files changed, 38 insertions(+), 1 deletion(-)
9148
9149commit 446e4318fa79788e09299d5953b5dd428953d14b
9150Author: Lasse Collin <lasse.collin@tukaani.org>
9151Date:   2016-06-30 20:27:36 +0300
9152
9153    xz: Fix copying of timestamps on Windows.
9154
9155    xz used to call utime() on Windows, but its result gets lost
9156    on close(). Using _futime() seems to work.
9157
9158    Thanks to Martok for reporting the bug:
9159    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
9160
9161 configure.ac     |  2 +-
9162 src/xz/file_io.c | 18 ++++++++++++++++++
9163 2 files changed, 19 insertions(+), 1 deletion(-)
9164
9165commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
9166Author: Lasse Collin <lasse.collin@tukaani.org>
9167Date:   2016-06-16 22:46:02 +0300
9168
9169    xz: Silence warnings from -Wlogical-op.
9170
9171    Thanks to Evan Nemerson.
9172
9173 src/xz/file_io.c | 12 ++++++++++--
9174 1 file changed, 10 insertions(+), 2 deletions(-)
9175
9176commit c83b7a03342c3325ff10400b22ee21edfcd1e026
9177Author: Lasse Collin <lasse.collin@tukaani.org>
9178Date:   2016-04-10 20:55:49 +0300
9179
9180    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
9181
9182    Thanks to Christian Kujau.
9183
9184 src/xz/Makefile.am | 2 +-
9185 1 file changed, 1 insertion(+), 1 deletion(-)
9186
9187commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
9188Author: Lasse Collin <lasse.collin@tukaani.org>
9189Date:   2016-04-10 20:54:17 +0300
9190
9191    Build: Bump GNU Gettext version requirement to 0.19.
9192
9193    It silences a few warnings and most people probably have
9194    0.19 even on stable distributions.
9195
9196    Thanks to Christian Kujau.
9197
9198 configure.ac | 2 +-
9199 1 file changed, 1 insertion(+), 1 deletion(-)
9200
9201commit ac398c3bafa6e4c80e20571373a96947db863b3d
9202Author: Lasse Collin <lasse.collin@tukaani.org>
9203Date:   2016-03-13 20:21:49 +0200
9204
9205    liblzma: Disable external SHA-256 by default.
9206
9207    This is the sane thing to do. The conflict with OpenSSL
9208    on some OSes and especially that the OS-provided versions
9209    can be significantly slower makes it clear that it was
9210    a mistake to have the external SHA-256 support enabled by
9211    default.
9212
9213    Those who want it can now pass --enable-external-sha256 to
9214    configure. INSTALL was updated with notes about OSes where
9215    this can be a bad idea.
9216
9217    The SHA-256 detection code in configure.ac had some bugs that
9218    could lead to a build failure in some situations. These were
9219    fixed, although it doesn't matter that much now that the
9220    external SHA-256 is disabled by default.
9221
9222    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
9223    in libc instead of libutil. Support for the libutil version
9224    was removed.
9225
9226 INSTALL                   | 36 ++++++++++++++++++++++
9227 configure.ac              | 76 +++++++++++++++++++++++------------------------
9228 src/liblzma/check/check.h | 16 ++++------
9229 3 files changed, 79 insertions(+), 49 deletions(-)
9230
9231commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
9232Author: Lasse Collin <lasse.collin@tukaani.org>
9233Date:   2016-03-10 20:27:05 +0200
9234
9235    Update THANKS.
9236
9237 THANKS | 1 +
9238 1 file changed, 1 insertion(+)
9239
9240commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
9241Author: Lasse Collin <lasse.collin@tukaani.org>
9242Date:   2016-03-10 20:26:49 +0200
9243
9244    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
9245
9246    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
9247    with libcrypto from OpenSSL. The OpenSSL version has
9248    different sizeof(SHA256_CTX) and it can cause weird
9249    problems if wrong SHA256_Init gets used.
9250
9251    Looking at the source, MINIX 3 seems to have a similar issue but
9252    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
9253
9254    NetBSD has SHA256_Init in libc and they had a similar problem,
9255    but they already fixed it in 2009.
9256
9257    Thanks to Jim Wilcoxson for the bug report that helped
9258    in finding the problem.
9259
9260 configure.ac | 27 +++++++++++++++++++++------
9261 1 file changed, 21 insertions(+), 6 deletions(-)
9262
9263commit faf302137e54d605b44ecf0373cb51a6403a2de1
9264Author: Lasse Collin <lasse.collin@tukaani.org>
9265Date:   2015-11-08 20:16:10 +0200
9266
9267    tuklib_physmem: Hopefully silence a warning on Windows.
9268
9269 src/common/tuklib_physmem.c | 3 ++-
9270 1 file changed, 2 insertions(+), 1 deletion(-)
9271
9272commit e52e9151cf8613022d1de4712ff39dbcb666e991
9273Author: Lasse Collin <lasse.collin@tukaani.org>
9274Date:   2015-11-04 23:17:43 +0200
9275
9276    Update THANKS.
9277
9278 THANKS | 1 +
9279 1 file changed, 1 insertion(+)
9280
9281commit 14115f84a38161d55eaa2d070f08739bde37e966
9282Author: Lasse Collin <lasse.collin@tukaani.org>
9283Date:   2015-11-04 23:14:00 +0200
9284
9285    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
9286
9287    When optimizing, GCC can reorder code so that an uninitialized
9288    value gets used in a comparison, which makes Valgrind unhappy.
9289    It doesn't happen when compiled with -O0, which I tend to use
9290    when running Valgrind.
9291
9292    Thanks to Rich Prohaska. I remember this being mentioned long
9293    ago by someone else but nothing was done back then.
9294
9295 src/liblzma/lz/lz_encoder.c | 4 ++++
9296 1 file changed, 4 insertions(+)
9297
9298commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
9299Author: Lasse Collin <lasse.collin@tukaani.org>
9300Date:   2015-11-03 20:55:45 +0200
9301
9302    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
9303
9304    It would be too annoying to update other build systems
9305    just because of this.
9306
9307 src/liblzma/lzma/Makefile.inc                               | 2 +-
9308 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
9309 2 files changed, 2 insertions(+), 2 deletions(-)
9310
9311commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
9312Author: Lasse Collin <lasse.collin@tukaani.org>
9313Date:   2015-11-03 20:47:07 +0200
9314
9315    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
9316
9317    They all need decoder support and if that isn't available,
9318    there's no point trying to build them.
9319
9320 configure.ac | 3 +++
9321 1 file changed, 3 insertions(+)
9322
9323commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
9324Author: Lasse Collin <lasse.collin@tukaani.org>
9325Date:   2015-11-03 20:35:19 +0200
9326
9327    Build: Simplify $enable_{encoders,decoders} usage a bit.
9328
9329 configure.ac | 6 ++++--
9330 1 file changed, 4 insertions(+), 2 deletions(-)
9331
9332commit af13781886c8e7a0aabebb5141ea282dc364f5c6
9333Author: Lasse Collin <lasse.collin@tukaani.org>
9334Date:   2015-11-03 20:31:31 +0200
9335
9336    Windows/MSVC: Update config.h.
9337
9338 windows/config.h | 6 ++++++
9339 1 file changed, 6 insertions(+)
9340
9341commit 9fa5949330f162c5a2f6653f83025327837e8f39
9342Author: Lasse Collin <lasse.collin@tukaani.org>
9343Date:   2015-11-03 20:29:58 +0200
9344
9345    DOS: Update config.h.
9346
9347 dos/config.h | 6 ++++++
9348 1 file changed, 6 insertions(+)
9349
9350commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
9351Author: Lasse Collin <lasse.collin@tukaani.org>
9352Date:   2015-11-03 20:29:33 +0200
9353
9354    xz: Make xz buildable even when encoders or decoders are disabled.
9355
9356    The patch is quite long but it's mostly about adding new #ifdefs
9357    to omit code when encoders or decoders have been disabled.
9358
9359    This adds two new #defines to config.h: HAVE_ENCODERS and
9360    HAVE_DECODERS.
9361
9362 configure.ac       |  4 ++++
9363 src/xz/Makefile.am |  8 ++++++--
9364 src/xz/args.c      | 16 ++++++++++++++++
9365 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
9366 src/xz/main.c      |  9 +++++++--
9367 src/xz/private.h   |  5 ++++-
9368 6 files changed, 62 insertions(+), 13 deletions(-)
9369
9370commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
9371Author: Lasse Collin <lasse.collin@tukaani.org>
9372Date:   2015-11-03 18:06:40 +0200
9373
9374    Build: Build LZMA1/2 presets also when only decoder is wanted.
9375
9376    People shouldn't rely on the presets when decoding raw streams,
9377    but xz uses the presets as the starting point for raw decoder
9378    options anyway.
9379
9380    lzma_encocder_presets.c was renamed to lzma_presets.c to
9381    make it clear it's not used solely by the encoder code.
9382
9383 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
9384 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
9385 2 files changed, 7 insertions(+), 2 deletions(-)
9386
9387commit 23ed1d41489f632155bbc9660f323d57e09da180
9388Author: Lasse Collin <lasse.collin@tukaani.org>
9389Date:   2015-11-03 17:54:48 +0200
9390
9391    Build: Fix configure to handle LZMA1 dependency with LZMA2.
9392
9393    Now it gives an error if LZMA1 encoder/decoder is missing
9394    when LZMA2 encoder/decoder was requested. Even better would
9395    be LZMA2 implicitly enabling LZMA1 but it would need more code.
9396
9397 configure.ac | 5 -----
9398 1 file changed, 5 deletions(-)
9399
9400commit b0bc3e03852af13419ea2960881824258d451117
9401Author: Lasse Collin <lasse.collin@tukaani.org>
9402Date:   2015-11-03 17:41:54 +0200
9403
9404    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
9405
9406    Previously it was omitted if encoders were disabled
9407    with --disable-encoders. It didn't make sense and
9408    it also broke the build.
9409
9410 src/liblzma/common/Makefile.inc | 5 ++++-
9411 1 file changed, 4 insertions(+), 1 deletion(-)
9412
9413commit c6bf438ab39e0fb4a47d3c81725c227919502726
9414Author: Lasse Collin <lasse.collin@tukaani.org>
9415Date:   2015-11-02 18:16:51 +0200
9416
9417    liblzma: Fix a build failure related to external SHA-256 support.
9418
9419    If an appropriate header and structure were found by configure,
9420    but a library with a usable SHA-256 functions wasn't, the build
9421    failed.
9422
9423 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
9424 1 file changed, 23 insertions(+), 9 deletions(-)
9425
9426commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
9427Author: Lasse Collin <lasse.collin@tukaani.org>
9428Date:   2015-11-02 15:19:10 +0200
9429
9430    xz: Always close the file before trying to delete it.
9431
9432    unlink() can return EBUSY in errno for open files on some
9433    operating systems and file systems.
9434
9435 src/xz/file_io.c | 25 ++++++++++++-------------
9436 1 file changed, 12 insertions(+), 13 deletions(-)
9437
9438commit 282e768a1484e88c8b7ec35655ee4959954ec87a
9439Author: Lasse Collin <lasse.collin@tukaani.org>
9440Date:   2015-10-12 21:08:42 +0300
9441
9442    Update THANKS.
9443
9444 THANKS | 1 +
9445 1 file changed, 1 insertion(+)
9446
9447commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
9448Author: Lasse Collin <lasse.collin@tukaani.org>
9449Date:   2015-10-12 21:07:41 +0300
9450
9451    Tests: Add tests for the two bugs fixed in index.c.
9452
9453 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
9454 1 file changed, 30 insertions(+)
9455
9456commit 21515d79d778b8730a434f151b07202d52a04611
9457Author: Lasse Collin <lasse.collin@tukaani.org>
9458Date:   2015-10-12 20:45:15 +0300
9459
9460    liblzma: Fix lzma_index_dup() for empty Streams.
9461
9462    Stream Flags and Stream Padding weren't copied from
9463    empty Streams.
9464
9465 src/liblzma/common/index.c | 11 ++++++-----
9466 1 file changed, 6 insertions(+), 5 deletions(-)
9467
9468commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
9469Author: Lasse Collin <lasse.collin@tukaani.org>
9470Date:   2015-10-12 20:31:44 +0300
9471
9472    liblzma: Add a note to index.c for those using static analyzers.
9473
9474 src/liblzma/common/index.c | 3 +++
9475 1 file changed, 3 insertions(+)
9476
9477commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
9478Author: Lasse Collin <lasse.collin@tukaani.org>
9479Date:   2015-10-12 20:29:09 +0300
9480
9481    liblzma: Fix a memory leak in error path of lzma_index_dup().
9482
9483    lzma_index_dup() calls index_dup_stream() which, in case of
9484    an error, calls index_stream_end() to free memory allocated
9485    by index_stream_init(). However, it illogically didn't
9486    actually free the memory. To make it logical, the tree
9487    handling code was modified a bit in addition to changing
9488    index_stream_end().
9489
9490    Thanks to Evan Nemerson for the bug report.
9491
9492 src/liblzma/common/index.c | 18 +++++++++---------
9493 1 file changed, 9 insertions(+), 9 deletions(-)
9494
9495commit 7f05803979b4b79642d5be4218a79da7a0b12c47
9496Author: Lasse Collin <lasse.collin@tukaani.org>
9497Date:   2015-09-29 13:57:28 +0300
9498
9499    Update NEWS for 5.2.2.
9500
9501 NEWS | 18 ++++++++++++++++++
9502 1 file changed, 18 insertions(+)
9503
9504commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
9505Author: Hauke Henningsen <sqrt@entless.org>
9506Date:   2015-08-17 04:59:54 +0200
9507
9508    Update German translation, mostly wrt orthography
9509
9510    Provide an update of the German translation.
9511    * A lot of compound words were previously written with spaces, while
9512      German orthography is relatively clear in that the components
9513      should not be separated.
9514    * When referring to the actual process of (de)compression rather than the
9515      concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
9516      Previously, both forms were used in this context and are now used in a
9517      manner consistent with “Komprimierung” being more likely to refer to
9518      a process.
9519    * Consistently translate “standard input”/“output”
9520    * Use “Zeichen” instead of false friend “Charakter” for “character”
9521    * Insert commas around relative clauses (as required in German)
9522    * Some other minor corrections
9523    * Capitalize “ß” as “ẞ”
9524    * Consistently start option descriptions in --help with capital letters
9525
9526    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
9527
9528    * Update after msgmerge
9529
9530 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
9531 1 file changed, 196 insertions(+), 187 deletions(-)
9532
9533commit cbc9e39bae715accb44168930a71888480aad569
9534Author: Lasse Collin <lasse.collin@tukaani.org>
9535Date:   2015-08-11 13:23:04 +0300
9536
9537    Build: Minor Cygwin cleanup.
9538
9539    Some tests used "cygwin*" and some used "cygwin". I changed
9540    them all to use "cygwin". Shouldn't affect anything in practice.
9541
9542 configure.ac | 6 +++---
9543 1 file changed, 3 insertions(+), 3 deletions(-)
9544
9545commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
9546Author: Lasse Collin <lasse.collin@tukaani.org>
9547Date:   2015-08-11 13:21:52 +0300
9548
9549    Build: Support building of MSYS2 binaries.
9550
9551 configure.ac | 16 +++++++++++-----
9552 1 file changed, 11 insertions(+), 5 deletions(-)
9553
9554commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
9555Author: Lasse Collin <lasse.collin@tukaani.org>
9556Date:   2015-08-09 21:06:26 +0300
9557
9558    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
9559
9560    src/liblzma/common/common.h uses it to set __declspec(dllexport)
9561    for the API symbols.
9562
9563    Thanks to Adam Walling.
9564
9565 windows/liblzma_dll.vcxproj | 12 ++++++------
9566 1 file changed, 6 insertions(+), 6 deletions(-)
9567
9568commit a74525cf9b945fb0b370e64cf406104beb31729b
9569Author: Lasse Collin <lasse.collin@tukaani.org>
9570Date:   2015-08-09 21:02:20 +0300
9571
9572    Windows: Omit unneeded header files from MSVC project files.
9573
9574 windows/liblzma.vcxproj     | 5 -----
9575 windows/liblzma_dll.vcxproj | 5 -----
9576 2 files changed, 10 deletions(-)
9577
9578commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
9579Author: Lasse Collin <lasse.collin@tukaani.org>
9580Date:   2015-07-12 20:48:19 +0300
9581
9582    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
9583
9584 src/liblzma/api/lzma.h | 18 +++++++++++++-----
9585 1 file changed, 13 insertions(+), 5 deletions(-)
9586
9587commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
9588Author: Lasse Collin <lasse.collin@tukaani.org>
9589Date:   2015-06-19 20:38:55 +0300
9590
9591    Update THANKS.
9592
9593 THANKS | 2 ++
9594 1 file changed, 2 insertions(+)
9595
9596commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
9597Author: Lasse Collin <lasse.collin@tukaani.org>
9598Date:   2015-06-19 20:21:30 +0300
9599
9600    Windows: Update the docs.
9601
9602 INSTALL                                            | 29 ++++++++-----
9603 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
9604 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
9605 3 files changed, 67 insertions(+), 11 deletions(-)
9606
9607commit b0798c6aa6184efcefd0bdcca20f96121a13feda
9608Author: Lasse Collin <lasse.collin@tukaani.org>
9609Date:   2015-06-19 17:25:31 +0300
9610
9611    Windows: Add MSVC project files for building liblzma.
9612
9613    Thanks to Adam Walling for creating these files.
9614
9615 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
9616 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
9617 windows/xz_win.sln          |  48 ++++++
9618 3 files changed, 795 insertions(+)
9619
9620commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
9621Author: Andre Noll <maan@tuebingen.mpg.de>
9622Date:   2015-05-28 15:50:00 +0200
9623
9624    Fix typo in German translation.
9625
9626    As pointed out by Robert Pollak, there's a typo in the German
9627    translation of the compression preset option (-0 ... -9) help text.
9628    "The compressor" translates to "der Komprimierer", and the genitive
9629    form is "des Komprimierers". The old word makes no sense at all.
9630
9631 po/de.po | 2 +-
9632 1 file changed, 1 insertion(+), 1 deletion(-)
9633
9634commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
9635Author: Lasse Collin <lasse.collin@tukaani.org>
9636Date:   2015-05-13 20:57:55 +0300
9637
9638    Tests: Fix a memory leak in test_bcj_exact_size.
9639
9640    Thanks to Cristian Rodríguez.
9641
9642 tests/test_bcj_exact_size.c | 1 +
9643 1 file changed, 1 insertion(+)
9644
9645commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
9646Author: Lasse Collin <lasse.collin@tukaani.org>
9647Date:   2015-05-12 18:08:24 +0300
9648
9649    Fix NEWS about threading in 5.2.0.
9650
9651    Thanks to Andy Hochhaus.
9652
9653 NEWS | 3 ++-
9654 1 file changed, 2 insertions(+), 1 deletion(-)
9655
9656commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
9657Author: Lasse Collin <lasse.collin@tukaani.org>
9658Date:   2015-05-11 21:26:16 +0300
9659
9660    xz: Document that threaded decompression hasn't been implemented yet.
9661
9662 src/xz/xz.1 | 10 +++++++++-
9663 1 file changed, 9 insertions(+), 1 deletion(-)
9664
9665commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
9666Author: Lasse Collin <lasse.collin@tukaani.org>
9667Date:   2015-04-20 20:20:29 +0300
9668
9669    Update THANKS.
9670
9671 THANKS | 1 +
9672 1 file changed, 1 insertion(+)
9673
9674commit 6bd0349c58451b13442e8f463e35de83548bf985
9675Author: Lasse Collin <lasse.collin@tukaani.org>
9676Date:   2015-04-20 19:59:18 +0300
9677
9678    Revert "xz: Use pipe2() if available."
9679
9680    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
9681    It is a problem when libc has pipe2() but the kernel is too
9682    old to have pipe2() and thus pipe2() fails. In xz it's pointless
9683    to have a fallback for non-functioning pipe2(); it's better to
9684    avoid pipe2() completely.
9685
9686    Thanks to Michael Fox for the bug report.
9687
9688 configure.ac     | 4 ++--
9689 src/xz/file_io.c | 9 +--------
9690 2 files changed, 3 insertions(+), 10 deletions(-)
9691
9692commit fc0df0f8db87dff45543708a711e17d29c37f632
9693Author: Lasse Collin <lasse.collin@tukaani.org>
9694Date:   2015-04-01 14:45:25 +0300
9695
9696    xz: Fix the Capsicum rights on user_abort_pipe.
9697
9698 src/xz/file_io.c | 6 +++++-
9699 1 file changed, 5 insertions(+), 1 deletion(-)
9700
9701commit 57393615b31b3788dd77280452d845bcc12d33af
9702Author: Lasse Collin <lasse.collin@tukaani.org>
9703Date:   2015-03-31 22:20:11 +0300
9704
9705    Update THANKS.
9706
9707 THANKS | 1 +
9708 1 file changed, 1 insertion(+)
9709
9710commit 1238381143a9a7ce84839c2582ccd56ff750a440
9711Author: Lasse Collin <lasse.collin@tukaani.org>
9712Date:   2015-03-31 22:19:34 +0300
9713
9714    xz: Add support for sandboxing with Capsicum.
9715
9716    The sandboxing is used conditionally as described in main.c.
9717    This isn't optimal but it was much easier to implement than
9718    a full sandboxing solution and it still covers the most common
9719    use cases where xz is writing to standard output. This should
9720    have practically no effect on performance even with small files
9721    as fork() isn't needed.
9722
9723    C and locale libraries can open files as needed. This has been
9724    fine in the past, but it's a problem with things like Capsicum.
9725    io_sandbox_enter() tries to ensure that various locale-related
9726    files have been loaded before cap_enter() is called, but it's
9727    possible that there are other similar problems which haven't
9728    been seen yet.
9729
9730    Currently Capsicum is available on FreeBSD 10 and later
9731    and there is a port to Linux too.
9732
9733    Thanks to Loganaden Velvindron for help.
9734
9735 configure.ac       | 41 +++++++++++++++++++++++++++
9736 src/xz/Makefile.am |  2 +-
9737 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
9738 src/xz/file_io.h   |  6 ++++
9739 src/xz/main.c      | 18 ++++++++++++
9740 src/xz/private.h   |  4 +++
9741 6 files changed, 151 insertions(+), 1 deletion(-)
9742
9743commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
9744Author: Lasse Collin <lasse.collin@tukaani.org>
9745Date:   2015-03-31 21:12:30 +0300
9746
9747    Fix bugs and otherwise improve ax_check_capsicum.m4.
9748
9749    AU_ALIAS was removed because the new version is incompatible
9750    with the old version.
9751
9752    It no longer checks for <sys/capability.h> separately.
9753    It's enough to test for it as part of AC_CHECK_DECL.
9754    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
9755    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
9756    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
9757
9758    It no longer does a useless search for the Capsicum library
9759    if the header wasn't found.
9760
9761    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
9762    the argument omitted the default action but the given action
9763    wasn't used instead.
9764
9765    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
9766    support is found. Previously it was part of the default
9767    ACTION-IF-FOUND which a custom action would override. Now
9768    the default action only prepends ${CAPSICUM_LIB} to LIBS.
9769
9770    The documentation was updated.
9771
9772    Since there as no serial number, "#serial 2" was added.
9773
9774 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
9775 1 file changed, 51 insertions(+), 52 deletions(-)
9776
9777commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
9778Author: Lasse Collin <lasse.collin@tukaani.org>
9779Date:   2015-03-31 19:20:24 +0300
9780
9781    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
9782
9783    The file was loaded from this web page:
9784    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
9785
9786    Thanks to Loganaden Velvindron for pointing it out for me.
9787
9788 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
9789 1 file changed, 86 insertions(+)
9790
9791commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
9792Author: Lasse Collin <lasse.collin@tukaani.org>
9793Date:   2015-03-30 22:44:02 +0300
9794
9795    Bump version to 5.3.0alpha and soname to 5.3.99.
9796
9797    The idea of 99 is that it looks a bit weird in this context.
9798    For new features there's no API/ABI stability in devel versions.
9799
9800 src/liblzma/Makefile.am        | 2 +-
9801 src/liblzma/api/lzma/version.h | 6 +++---
9802 2 files changed, 4 insertions(+), 4 deletions(-)
9803
9804commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
9805Author: Lasse Collin <lasse.collin@tukaani.org>
9806Date:   2015-03-29 22:14:47 +0300
9807
9808    Update THANKS.
9809
9810 THANKS | 1 +
9811 1 file changed, 1 insertion(+)
9812
9813commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
9814Author: Lasse Collin <lasse.collin@tukaani.org>
9815Date:   2015-03-29 22:13:48 +0300
9816
9817    Fix the detection of installed RAM on QNX.
9818
9819    The earlier version compiled but didn't actually work
9820    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
9821
9822    Thanks to Ole André Vadla Ravnås for the patch and testing.
9823
9824 m4/tuklib_physmem.m4        |  6 +++---
9825 src/common/tuklib_physmem.c | 14 +++++++++++++-
9826 2 files changed, 16 insertions(+), 4 deletions(-)
9827
9828commit 4c544d2410903d38402221cb783ed85585b6a007
9829Author: Lasse Collin <lasse.collin@tukaani.org>
9830Date:   2015-03-27 22:39:07 +0200
9831
9832    Fix CPU core count detection on QNX.
9833
9834    It tried to use sysctl() on QNX but
9835      - it broke the build because sysctl() needs -lsocket on QNX;
9836      - sysctl() doesn't work for detecting the core count on QNX
9837        even if it compiled.
9838
9839    sysconf() works. An alternative would have been to use
9840    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
9841
9842    Thanks to Ole André Vadla Ravnås.
9843
9844 m4/tuklib_cpucores.m4 | 15 +++++++++++----
9845 1 file changed, 11 insertions(+), 4 deletions(-)
9846
9847commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
9848Author: Lasse Collin <lasse.collin@tukaani.org>
9849Date:   2015-03-07 22:05:57 +0200
9850
9851    xz: size_t/uint32_t cleanup in options.c.
9852
9853 src/xz/options.c | 12 ++++++------
9854 1 file changed, 6 insertions(+), 6 deletions(-)
9855
9856commit 8bcca29a65335fd679c13814b70b35b68fa5daed
9857Author: Lasse Collin <lasse.collin@tukaani.org>
9858Date:   2015-03-07 22:04:23 +0200
9859
9860    xz: Fix a comment and silence a warning in message.c.
9861
9862 src/xz/message.c | 5 +++--
9863 1 file changed, 3 insertions(+), 2 deletions(-)
9864
9865commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
9866Author: Lasse Collin <lasse.collin@tukaani.org>
9867Date:   2015-03-07 22:01:00 +0200
9868
9869    liblzma: Silence more uint32_t vs. size_t warnings.
9870
9871 src/liblzma/lz/lz_encoder.c     | 2 +-
9872 src/liblzma/lzma/lzma_encoder.c | 2 +-
9873 2 files changed, 2 insertions(+), 2 deletions(-)
9874
9875commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
9876Author: Lasse Collin <lasse.collin@tukaani.org>
9877Date:   2015-03-07 19:54:00 +0200
9878
9879    xz: Make arg_count an unsigned int to silence a warning.
9880
9881    Actually the value of arg_count cannot exceed INT_MAX
9882    but it's nicer as an unsigned int.
9883
9884 src/xz/args.h | 2 +-
9885 src/xz/main.c | 2 +-
9886 2 files changed, 2 insertions(+), 2 deletions(-)
9887
9888commit f6ec46801588b1be29c07c9db98558b521304002
9889Author: Lasse Collin <lasse.collin@tukaani.org>
9890Date:   2015-03-07 19:33:17 +0200
9891
9892    liblzma: Fix a warning in index.c.
9893
9894 src/liblzma/common/index.c | 4 +++-
9895 1 file changed, 3 insertions(+), 1 deletion(-)
9896
9897commit a24518971cc621315af142dd3bb7614fab04ad27
9898Author: Lasse Collin <lasse.collin@tukaani.org>
9899Date:   2015-02-26 20:46:14 +0200
9900
9901    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
9902
9903 build-aux/version.sh | 2 +-
9904 1 file changed, 1 insertion(+), 1 deletion(-)
9905
9906commit dec11497a71518423b5ff0e759100cf8aadf6c7b
9907Author: Lasse Collin <lasse.collin@tukaani.org>
9908Date:   2015-02-26 16:53:44 +0200
9909
9910    Bump version and soname for 5.2.1.
9911
9912 src/liblzma/Makefile.am        | 2 +-
9913 src/liblzma/api/lzma/version.h | 2 +-
9914 2 files changed, 2 insertions(+), 2 deletions(-)
9915
9916commit 29e39c79975ab89ee5dd671e97064534a9f3a649
9917Author: Lasse Collin <lasse.collin@tukaani.org>
9918Date:   2015-02-26 13:01:09 +0200
9919
9920    Update NEWS for 5.2.1.
9921
9922 NEWS | 14 ++++++++++++++
9923 1 file changed, 14 insertions(+)
9924
9925commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
9926Author: Lasse Collin <lasse.collin@tukaani.org>
9927Date:   2015-02-22 19:38:48 +0200
9928
9929    xz: Use pipe2() if available.
9930
9931 configure.ac     | 4 ++--
9932 src/xz/file_io.c | 9 ++++++++-
9933 2 files changed, 10 insertions(+), 3 deletions(-)
9934
9935commit 117d962685c72682c63edc9bb765367189800202
9936Author: Lasse Collin <lasse.collin@tukaani.org>
9937Date:   2015-02-21 23:40:26 +0200
9938
9939    liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
9940
9941    The bug was added in the commit
9942    f48fce093b07aeda95c18850f5e086d9f2383380 and thus
9943    affected 5.1.4beta and 5.2.0. Luckily the bug cannot
9944    cause data corruption or other nasty things.
9945
9946 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
9947 1 file changed, 1 insertion(+), 1 deletion(-)
9948
9949commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
9950Author: Lasse Collin <lasse.collin@tukaani.org>
9951Date:   2015-02-21 23:00:19 +0200
9952
9953    xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
9954
9955    Now it reads the old flags instead of blindly setting O_NONBLOCK.
9956    The old code may have worked correctly, but this is better.
9957
9958 src/xz/file_io.c | 16 +++++++++++-----
9959 1 file changed, 11 insertions(+), 5 deletions(-)
9960
9961commit 2205bb5853098aea36a56df6f5747037175f66b4
9962Author: Lasse Collin <lasse.collin@tukaani.org>
9963Date:   2015-02-10 15:29:34 +0200
9964
9965    Update THANKS.
9966
9967 THANKS | 1 +
9968 1 file changed, 1 insertion(+)
9969
9970commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
9971Author: Lasse Collin <lasse.collin@tukaani.org>
9972Date:   2015-02-10 15:28:30 +0200
9973
9974    tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
9975
9976    In FreeBSD, cpuset_getaffinity() is the preferred way to get
9977    the number of available cores.
9978
9979    Thanks to Rui Paulo for the patch. I edited it slightly, but
9980    hopefully I didn't break anything.
9981
9982 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
9983 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
9984 2 files changed, 40 insertions(+), 1 deletion(-)
9985
9986commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
9987Author: Lasse Collin <lasse.collin@tukaani.org>
9988Date:   2015-02-09 22:08:37 +0200
9989
9990    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
9991
9992    Thanks to Rui Paulo for the fix.
9993
9994 src/scripts/xzdiff.in | 7 ++++++-
9995 1 file changed, 6 insertions(+), 1 deletion(-)
9996
9997commit b9a5b6b7a29029680af733082b6a46e0fc01623a
9998Author: Lasse Collin <lasse.collin@tukaani.org>
9999Date:   2015-02-03 21:45:53 +0200
10000
10001    Add a few casts to tuklib_integer.h to silence possible warnings.
10002
10003    I heard that Visual Studio 2013 gave warnings without the casts.
10004
10005    Thanks to Gabi Davar.
10006
10007 src/common/tuklib_integer.h | 24 ++++++++++++------------
10008 1 file changed, 12 insertions(+), 12 deletions(-)
10009
10010commit c45757135f40e4a0de730ba5fff0100219493982
10011Author: Lasse Collin <lasse.collin@tukaani.org>
10012Date:   2015-01-26 21:24:39 +0200
10013
10014    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
10015
10016 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
10017 1 file changed, 10 insertions(+), 5 deletions(-)
10018
10019commit 3c500174ed5485f550972a2a6109c361e875f069
10020Author: Lasse Collin <lasse.collin@tukaani.org>
10021Date:   2015-01-26 20:40:16 +0200
10022
10023    Update THANKS.
10024
10025 THANKS | 1 +
10026 1 file changed, 1 insertion(+)
10027
10028commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
10029Author: Lasse Collin <lasse.collin@tukaani.org>
10030Date:   2015-01-26 20:39:28 +0200
10031
10032    liblzma: Silence harmless Valgrind errors.
10033
10034    Thanks to Torsten Rupp for reporting this. I had
10035    forgotten to run Valgrind before the 5.2.0 release.
10036
10037 src/liblzma/lz/lz_encoder.c | 6 ++++++
10038 1 file changed, 6 insertions(+)
10039
10040commit a9b45badfec0928d20a27c7176c005fa637f7d1e
10041Author: Lasse Collin <lasse.collin@tukaani.org>
10042Date:   2015-01-09 21:50:19 +0200
10043
10044    xz: Fix comments.
10045
10046 src/xz/file_io.c | 12 ++++++++----
10047 1 file changed, 8 insertions(+), 4 deletions(-)
10048
10049commit 541aee6dd4aa97a809aba281475a21b641bb89e2
10050Author: Lasse Collin <lasse.collin@tukaani.org>
10051Date:   2015-01-09 21:35:06 +0200
10052
10053    Update THANKS.
10054
10055 THANKS | 1 +
10056 1 file changed, 1 insertion(+)
10057
10058commit 4170edc914655310d2363baccf5e615e09b04911
10059Author: Lasse Collin <lasse.collin@tukaani.org>
10060Date:   2015-01-09 21:34:06 +0200
10061
10062    xz: Don't fail if stdout doesn't support O_NONBLOCK.
10063
10064    This is similar to the case with stdin.
10065
10066    Thanks to Brad Smith for the bug report and testing
10067    on OpenBSD.
10068
10069 src/xz/file_io.c | 36 +++++++++++++++---------------------
10070 1 file changed, 15 insertions(+), 21 deletions(-)
10071
10072commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
10073Author: Lasse Collin <lasse.collin@tukaani.org>
10074Date:   2015-01-07 19:18:20 +0200
10075
10076    xz: Fix a memory leak in DOS-specific code.
10077
10078 src/xz/file_io.c | 2 ++
10079 1 file changed, 2 insertions(+)
10080
10081commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
10082Author: Lasse Collin <lasse.collin@tukaani.org>
10083Date:   2015-01-07 19:08:06 +0200
10084
10085    xz: Don't fail if stdin doesn't support O_NONBLOCK.
10086
10087    It's a problem at least on OpenBSD which doesn't support
10088    O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
10089    a problem on other OSes too since this behavior is allowed
10090    in POSIX-1.2008.
10091
10092    The code relying on this behavior was committed in June 2013
10093    and included in 5.1.3alpha released on 2013-10-26. Clearly
10094    the development releases only get limited testing.
10095
10096 src/xz/file_io.c | 18 +++++++-----------
10097 1 file changed, 7 insertions(+), 11 deletions(-)
10098
10099commit d2d484647d9d9d679f03c75abb0404f67069271c
10100Author: Lasse Collin <lasse.collin@tukaani.org>
10101Date:   2015-01-06 20:30:15 +0200
10102
10103    Tests: Don't hide unexpected error messages in test_files.sh.
10104
10105    Hiding them makes no sense since normally there's no error
10106    when testing the "good" files. With "bad" files errors are
10107    expected and then it makes sense to keep the messages hidden.
10108
10109 tests/test_files.sh | 4 ++--
10110 1 file changed, 2 insertions(+), 2 deletions(-)
10111
10112commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
10113Author: Lasse Collin <lasse.collin@tukaani.org>
10114Date:   2014-12-30 11:17:16 +0200
10115
10116    Update Solaris notes in INSTALL.
10117
10118    Mention the possible "make check" failure on Solaris in the
10119    Solaris-specific section of INSTALL. It was already in
10120    section 4.5 but it is better mention it in the OS-specific
10121    section too.
10122
10123 INSTALL | 4 ++++
10124 1 file changed, 4 insertions(+)
10125
10126commit 7815112153178800a3521b9f31960e7cdc26cfba
10127Author: Lasse Collin <lasse.collin@tukaani.org>
10128Date:   2014-12-26 12:00:05 +0200
10129
10130    Build: POSIX shell isn't required if scripts are disabled.
10131
10132 INSTALL      | 3 ++-
10133 configure.ac | 2 +-
10134 2 files changed, 3 insertions(+), 2 deletions(-)
10135
10136commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
10137Author: Lasse Collin <lasse.collin@tukaani.org>
10138Date:   2014-12-21 20:48:37 +0200
10139
10140    DOS: Update Makefile.
10141
10142 dos/Makefile | 1 +
10143 1 file changed, 1 insertion(+)
10144
10145commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
10146Author: Lasse Collin <lasse.collin@tukaani.org>
10147Date:   2014-12-21 19:50:38 +0200
10148
10149    Windows: Fix bin_i486 to bin_i686 in build.bash.
10150
10151 windows/build.bash | 2 +-
10152 1 file changed, 1 insertion(+), 1 deletion(-)
10153
10154commit cbafa710918195dbba3db02c3fab4f0538235206
10155Author: Lasse Collin <lasse.collin@tukaani.org>
10156Date:   2014-12-21 18:58:44 +0200
10157
10158    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
10159
10160 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
10161 1 file changed, 26 insertions(+), 4 deletions(-)
10162
10163commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
10164Author: Lasse Collin <lasse.collin@tukaani.org>
10165Date:   2014-12-21 18:56:44 +0200
10166
10167    Docs: Update docs/examples/00_README.txt.
10168
10169 doc/examples/00_README.txt | 4 ++++
10170 1 file changed, 4 insertions(+)
10171
10172commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
10173Author: Lasse Collin <lasse.collin@tukaani.org>
10174Date:   2014-12-21 18:11:17 +0200
10175
10176    Bump version and soname for 5.2.0.
10177
10178    I know that soname != app version, but I skip AGE=1
10179    in -version-info to make the soname match the liblzma
10180    version anyway. It doesn't hurt anything as long as
10181    it doesn't conflict with library versioning rules.
10182
10183 src/liblzma/Makefile.am        | 2 +-
10184 src/liblzma/api/lzma/version.h | 6 +++---
10185 src/liblzma/liblzma.map        | 2 +-
10186 3 files changed, 5 insertions(+), 5 deletions(-)
10187