]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/xz/ChangeLog
MFV: xz 5.4.2.
[FreeBSD/FreeBSD.git] / contrib / xz / ChangeLog
1 commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8
2 Author: Jia Tan <jiat0218@gmail.com>
3 Date:   2023-03-18 23:22:06 +0800
4
5     Bump version and soname for 5.4.2.
6
7  src/liblzma/Makefile.am        | 2 +-
8  src/liblzma/api/lzma/version.h | 2 +-
9  2 files changed, 2 insertions(+), 2 deletions(-)
10
11 commit ce4f246600db10e77fc93d492ea045b4c9830bc6
12 Author: Jia Tan <jiat0218@gmail.com>
13 Date:   2023-03-18 22:10:57 +0800
14
15     Add NEWS for 5.4.2.
16
17  NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
18  1 file changed, 48 insertions(+)
19
20 commit 3634fe330788fc0df217acdb6581031a851600a3
21 Author: Lasse Collin <lasse.collin@tukaani.org>
22 Date:   2023-03-18 16:00:54 +0200
23
24     Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
25
26  COPYING.GPLv3 | 8 ++++----
27  1 file changed, 4 insertions(+), 4 deletions(-)
28
29 commit 97679d25ce7cb014328f1455bb338903c003d54f
30 Author: Lasse Collin <lasse.collin@tukaani.org>
31 Date:   2023-03-18 15:51:57 +0200
32
33     Change a few HTTP URLs to HTTPS.
34     
35     The xz man page timestamp was intentionally left unchanged.
36
37  INSTALL                    |  2 +-
38  README                     |  8 ++++----
39  configure.ac               |  2 +-
40  dos/INSTALL.txt            |  4 ++--
41  src/liblzma/api/lzma.h     |  8 ++++----
42  src/liblzma/check/sha256.c |  2 +-
43  src/xz/xz.1                |  2 +-
44  windows/INSTALL-MinGW.txt  | 10 +++++-----
45  8 files changed, 19 insertions(+), 19 deletions(-)
46
47 commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594
48 Author: Jia Tan <jiat0218@gmail.com>
49 Date:   2023-03-18 00:40:28 +0800
50
51     CMake: Fix typo in a comment.
52
53  CMakeLists.txt | 2 +-
54  1 file changed, 1 insertion(+), 1 deletion(-)
55
56 commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05
57 Author: Lasse Collin <lasse.collin@tukaani.org>
58 Date:   2023-03-17 18:36:22 +0200
59
60     Windows: build.bash: Copy liblzma API docs to the output package.
61
62  windows/build.bash | 3 ++-
63  1 file changed, 2 insertions(+), 1 deletion(-)
64
65 commit ae252862b30b509ab88b2bbcaa08e8d51b57e928
66 Author: Lasse Collin <lasse.collin@tukaani.org>
67 Date:   2023-03-17 08:53:38 +0200
68
69     Windows: Add microlzma_*.c to the VS project files.
70     
71     These should have been included in 5.3.2alpha already.
72
73  windows/vs2013/liblzma.vcxproj     | 2 ++
74  windows/vs2013/liblzma_dll.vcxproj | 2 ++
75  windows/vs2017/liblzma.vcxproj     | 2 ++
76  windows/vs2017/liblzma_dll.vcxproj | 2 ++
77  windows/vs2019/liblzma.vcxproj     | 2 ++
78  windows/vs2019/liblzma_dll.vcxproj | 2 ++
79  6 files changed, 12 insertions(+)
80
81 commit 147d282cc3733e2723df82622b6540ddfb52635e
82 Author: Lasse Collin <lasse.collin@tukaani.org>
83 Date:   2023-03-17 08:43:51 +0200
84
85     CMake: Add microlzma_*.c to the build.
86     
87     These should have been included in 5.3.2alpha already.
88
89  CMakeLists.txt | 2 ++
90  1 file changed, 2 insertions(+)
91
92 commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53
93 Author: Lasse Collin <lasse.collin@tukaani.org>
94 Date:   2023-03-17 08:41:36 +0200
95
96     Build: Update comments about unaligned access to mention 64-bit.
97
98  cmake/tuklib_integer.cmake | 7 +++----
99  m4/tuklib_integer.m4       | 4 ++--
100  2 files changed, 5 insertions(+), 6 deletions(-)
101
102 commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9
103 Author: Lasse Collin <lasse.collin@tukaani.org>
104 Date:   2023-03-17 00:02:30 +0200
105
106     Tests: Update .gitignore.
107
108  .gitignore | 3 ++-
109  1 file changed, 2 insertions(+), 1 deletion(-)
110
111 commit 5d022c24921eec938604a8cb10d70aa08dbd8575
112 Author: Lasse Collin <lasse.collin@tukaani.org>
113 Date:   2023-03-14 20:04:03 +0200
114
115     po4a/update-po: Display the script name consistently in error messages.
116
117  po4a/update-po | 2 +-
118  1 file changed, 1 insertion(+), 1 deletion(-)
119
120 commit 896295117324f323c0b8db6a31ad6ebfaa88793d
121 Author: Jia Tan <jiat0218@gmail.com>
122 Date:   2023-03-17 01:30:36 +0800
123
124     Doc: Rename Doxygen HTML doc directory name liblzma => api.
125     
126     When the docs are installed, calling the directory "liblzma" is
127     confusing since multiple other files in the doc directory are for
128     liblzma. This should also make it more natural for distros when they
129     package the documentation.
130
131  .gitignore             |  2 +-
132  Makefile.am            | 18 +++++++++---------
133  PACKAGERS              |  4 ++--
134  doxygen/Doxyfile       |  2 +-
135  doxygen/update-doxygen | 18 +++++++++---------
136  5 files changed, 22 insertions(+), 22 deletions(-)
137
138 commit 94097157fae308b2c1a5edb4e8597c68b45eeaea
139 Author: Jia Tan <jiat0218@gmail.com>
140 Date:   2023-03-16 22:07:15 +0800
141
142     liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
143     
144     This was left in by mistake since an early version of the ARM64 filter
145     used a different struct for its options.
146
147  src/liblzma/api/lzma/bcj.h | 2 +-
148  1 file changed, 1 insertion(+), 1 deletion(-)
149
150 commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e
151 Author: Lasse Collin <lasse.collin@tukaani.org>
152 Date:   2023-03-15 19:19:13 +0200
153
154     COPYING: Add a note about the included Doxygen-generated HTML.
155
156  COPYING | 11 +++++++++++
157  1 file changed, 11 insertions(+)
158
159 commit e57c74f9ef19201f72c106f2c347596f40229936
160 Author: Jia Tan <jiat0218@gmail.com>
161 Date:   2023-03-16 21:41:09 +0800
162
163     Doc: Update PACKAGERS with details about liblzma API docs install.
164
165  PACKAGERS | 22 ++++++++++++++++------
166  1 file changed, 16 insertions(+), 6 deletions(-)
167
168 commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281
169 Author: Jia Tan <jiat0218@gmail.com>
170 Date:   2023-03-16 21:38:32 +0800
171
172     liblzma: Add set lzma.h as the main page for Doxygen documentation.
173     
174     The \mainpage command is used in the first block of comments in lzma.h.
175     This changes the previously nearly empty index.html to use the first
176     comment block in lzma.h for its contents.
177     
178     lzma.h is no longer documented separately, but this is for the better
179     since lzma.h only defined a few macros that users do not need to use.
180     The individual API header files all have a disclaimer that they should
181     not be #included directly, so there should be no confusion on the fact
182     that lzma.h should be the only header used by applications.
183     
184     Additionally, the note "See ../lzma.h for information about liblzma as
185     a whole." was removed since lzma.h is now the main page of the
186     generated HTML and does not have its own page anymore. So it would be
187     confusing in the HTML version and was only a "nice to have" when
188     browsing the source files.
189
190  src/liblzma/api/lzma.h              | 1 +
191  src/liblzma/api/lzma/base.h         | 2 --
192  src/liblzma/api/lzma/bcj.h          | 2 --
193  src/liblzma/api/lzma/block.h        | 2 --
194  src/liblzma/api/lzma/check.h        | 2 --
195  src/liblzma/api/lzma/container.h    | 2 --
196  src/liblzma/api/lzma/delta.h        | 2 --
197  src/liblzma/api/lzma/filter.h       | 2 --
198  src/liblzma/api/lzma/hardware.h     | 2 --
199  src/liblzma/api/lzma/index.h        | 2 --
200  src/liblzma/api/lzma/index_hash.h   | 4 +---
201  src/liblzma/api/lzma/lzma12.h       | 2 --
202  src/liblzma/api/lzma/stream_flags.h | 2 --
203  src/liblzma/api/lzma/version.h      | 2 --
204  src/liblzma/api/lzma/vli.h          | 2 --
205  15 files changed, 2 insertions(+), 29 deletions(-)
206
207 commit d42977c7acfdf7fd9acc8803cf411eca7dc10478
208 Author: Jia Tan <jiat0218@gmail.com>
209 Date:   2023-03-16 21:37:32 +0800
210
211     Build: Generate doxygen documentation in autogen.sh.
212     
213     Another command line option (--no-doxygen) was added to disable
214     creating the doxygen documenation in cases where it not wanted or
215     if the doxygen tool is not installed.
216
217  autogen.sh | 35 +++++++++++++++++++++++++++++------
218  1 file changed, 29 insertions(+), 6 deletions(-)
219
220 commit 8fc712fcf41d821069c670f22b8bf628e7a4a877
221 Author: Jia Tan <jiat0218@gmail.com>
222 Date:   2023-03-16 21:35:55 +0800
223
224     Build: Create doxygen/update-doxygen script.
225     
226     This is a helper script to generate the Doxygen documentation. It can be
227     run in 'liblzma' or 'internal' mode by setting the first argument. It
228     will default to 'liblzma' mode and only generate documentation for the
229     liblzma API header files.
230     
231     The helper script will be run during the custom mydist hook when we
232     create releases. This hook already alters the source directory, so its
233     fine to do it here too. This way, we can include the Doxygen generated
234     files in the distrubtion and when installing.
235     
236     In 'liblzma' mode, the JavaScript is stripped from the .html files and
237     the .js files are removed. This avoids license hassle from jQuery and
238     other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
239
240  Makefile.am            |   1 +
241  doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
242  2 files changed, 112 insertions(+)
243
244 commit 77d2c025d19fbac7277c63239cfb1338f02c66c0
245 Author: Jia Tan <jiat0218@gmail.com>
246 Date:   2023-03-16 21:34:36 +0800
247
248     Build: Install Doxygen docs and include in distribution if generated.
249     
250     Added a install-data-local target to install the Doxygen documentation
251     only when it has been generated. In order to correctly remove the docs,
252     a corresponding uninstall-local target was added.
253     
254     If the doxygen docs exist in the source tree, they will also be included
255     in the distribution now too.
256
257  Makefile.am | 18 ++++++++++++++++++
258  1 file changed, 18 insertions(+)
259
260 commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f
261 Author: Jia Tan <jiat0218@gmail.com>
262 Date:   2023-01-03 20:37:30 +0800
263
264     Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
265     
266     Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
267     can have the tags that need to be configured piped into the doxygen
268     command through stdin with the overrides after Doxyfile's contents.
269     
270     Going forward, the documentation should be generated in two different
271     modes: liblzma or internal.
272     
273     liblzma is useful for most users. It is the documentation for just
274     the liblzma API header files. This is the default.
275     
276     internal is for people who want to understand how xz and liblzma work.
277     It might be useful for people who want to contribute to the project.
278
279  .gitignore       |    3 +-
280  Doxyfile.in      | 1234 -------------------------
281  Makefile.am      |    1 -
282  configure.ac     |    1 -
283  doxygen/Doxyfile | 2684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
284  5 files changed, 2686 insertions(+), 1237 deletions(-)
285
286 commit 1c558a26928b753fcf1c0d4bce9c0643285edd86
287 Author: Jia Tan <jiat0218@gmail.com>
288 Date:   2023-02-28 23:22:36 +0800
289
290     Tests: Remove unused macros and functions.
291
292  tests/tests.h | 75 -----------------------------------------------------------
293  1 file changed, 75 deletions(-)
294
295 commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0
296 Author: Jia Tan <jiat0218@gmail.com>
297 Date:   2023-01-12 22:29:07 +0800
298
299     Tests: Refactors existing lzma_index tests.
300     
301     Converts the existing lzma_index tests into tuktests and covers every
302     API function from index.h except for lzma_file_info_decoder, which can
303     be tested in the future.
304
305  tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
306  1 file changed, 1492 insertions(+), 544 deletions(-)
307
308 commit fd56d5353360279c10e8e5e05f5bc6ea03f64584
309 Author: Lasse Collin <lasse.collin@tukaani.org>
310 Date:   2023-03-07 19:59:23 +0200
311
312     xz: Make Capsicum sandbox more strict with stdin and stdout.
313
314  src/xz/file_io.c | 8 ++++++++
315  1 file changed, 8 insertions(+)
316
317 commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1
318 Author: Lasse Collin <lasse.collin@tukaani.org>
319 Date:   2023-03-11 19:31:40 +0200
320
321     xz: Don't fail if Capsicum is enabled but kernel doesn't support it.
322     
323     (This commit combines related commits from the master branch.)
324     
325     If Capsicum support is missing from the kernel or xz is being run
326     in an emulator that lacks Capsicum suport, the syscalls will fail
327     and set errno to ENOSYS. Previously xz would display and error and
328     exit, making xz unusable. Now it will check for ENOSYS and run
329     without sandbox support. Other tools like ssh behave similarly.
330     
331     Displaying a warning for missing Capsicum support was considered
332     but such extra output would quickly become annoying. It would also
333     break test_scripts.sh in "make check".
334     
335     Also move cap_enter() to be the first step instead of the last one.
336     This matches the example in the cap_rights_limit(2) man page. With
337     the current code it shouldn't make any practical difference though.
338     
339     Thanks to Xin Li for the bug report, suggesting a fix, and testing:
340     https://github.com/tukaani-project/xz/pull/43
341     
342     Thanks to Jia Tan for most of the original commits.
343
344  src/xz/file_io.c | 15 ++++++++++++---
345  1 file changed, 12 insertions(+), 3 deletions(-)
346
347 commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776
348 Author: Jia Tan <jiat0218@gmail.com>
349 Date:   2023-02-04 21:06:35 +0800
350
351     Build: Adjust CMake version search regex.
352     
353     Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
354     macros do not need to be on consecutive lines in version.h. They can be
355     separated by more whitespace, comments, or even other content, as long
356     as they appear in the proper order (major, minor, patch).
357
358  CMakeLists.txt | 2 ++
359  1 file changed, 2 insertions(+)
360
361 commit b82d4831e3f2339c4cdbc47776c99462088c11b7
362 Author: Jia Tan <jiat0218@gmail.com>
363 Date:   2023-01-26 09:50:21 +0800
364
365     liblzma: Improve documentation for version.h.
366     
367     Specified parameter and return values for API functions and documented
368     a few more of the macros.
369
370  src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
371  1 file changed, 22 insertions(+), 7 deletions(-)
372
373 commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6
374 Author: Jia Tan <jiat0218@gmail.com>
375 Date:   2023-02-24 23:46:23 +0800
376
377     liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
378     
379     lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
380     usable in an encoder even if it returns false (success). If liblzma
381     is built with default configurations, then the options will always be
382     usable. However if the match finders hc3, hc4, or bt4 are disabled, then
383     the options may not be usable depending on the preset level requested.
384     
385     The documentation was updated to reflect this complexity, since this
386     behavior was unclear before.
387
388  src/liblzma/api/lzma/lzma12.h | 5 +++++
389  1 file changed, 5 insertions(+)
390
391 commit 594f904673ba55a833adfa60bbab6b60d4902d08
392 Author: Lasse Collin <lasse.collin@tukaani.org>
393 Date:   2023-02-27 18:38:35 +0200
394
395     CMake: Require that the C compiler supports C99 or a newer standard.
396     
397     Thanks to autoantwort for reporting the issue and suggesting
398     a different patch:
399     https://github.com/tukaani-project/xz/pull/42
400
401  CMakeLists.txt | 8 ++++++++
402  1 file changed, 8 insertions(+)
403
404 commit 88101143cb774bca6b7006c8335b09dc3f334140
405 Author: Jia Tan <jiat0218@gmail.com>
406 Date:   2023-02-24 18:10:37 +0800
407
408     Tests: Small tweak to test-vli.c.
409     
410     The static global variables can be disabled if encoders and decoders
411     are not built. If they are not disabled and -Werror is used, it will
412     cause an usused warning as an error.
413
414  tests/test_vli.c | 2 ++
415  1 file changed, 2 insertions(+)
416
417 commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9
418 Author: Jia Tan <jiat0218@gmail.com>
419 Date:   2023-02-06 21:46:43 +0800
420
421     liblzma: Replace '\n' -> newline in filter.h documentation.
422     
423     The '\n' renders as a newline when the comments are converted to html
424     by Doxygen.
425
426  src/liblzma/api/lzma/filter.h | 2 +-
427  1 file changed, 1 insertion(+), 1 deletion(-)
428
429 commit 3971f5c5024750ce8286891c6f79ae1661047483
430 Author: Jia Tan <jiat0218@gmail.com>
431 Date:   2023-02-06 21:45:37 +0800
432
433     liblzma: Shorten return description for two functions in filter.h.
434     
435     Shorten the description for lzma_raw_encoder_memusage() and
436     lzma_raw_decoder_memusage().
437
438  src/liblzma/api/lzma/filter.h | 8 ++------
439  1 file changed, 2 insertions(+), 6 deletions(-)
440
441 commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242
442 Author: Jia Tan <jiat0218@gmail.com>
443 Date:   2023-02-06 21:44:45 +0800
444
445     liblzma: Reword a few lines in filter.h
446
447  src/liblzma/api/lzma/filter.h | 10 +++++-----
448  1 file changed, 5 insertions(+), 5 deletions(-)
449
450 commit 8a53533869defa1191b41f176a0312cb53a139e2
451 Author: Jia Tan <jiat0218@gmail.com>
452 Date:   2023-02-06 21:35:06 +0800
453
454     liblzma: Improve documentation in filter.h.
455     
456     All functions now explicitly specify parameter and return values.
457     The notes and code annotations were moved before the parameter and
458     return value descriptions for consistency.
459     
460     Also, the description above lzma_filter_encoder_is_supported() about
461     not being able to list available filters was removed since
462     lzma_str_list_filters() will do this.
463
464  src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
465  1 file changed, 143 insertions(+), 83 deletions(-)
466
467 commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f
468 Author: Lasse Collin <lasse.collin@tukaani.org>
469 Date:   2023-02-23 20:46:16 +0200
470
471     Update THANKS.
472
473  THANKS | 1 +
474  1 file changed, 1 insertion(+)
475
476 commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5
477 Author: Lasse Collin <lasse.collin@tukaani.org>
478 Date:   2023-02-21 22:57:10 +0200
479
480     liblzma: Avoid null pointer + 0 (undefined behavior in C).
481     
482     In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
483     adding 0 to a null pointer is undefined behavior. As of writing,
484     "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
485     I'm not aware of any compiler that would take advantage of this
486     when optimizing (Clang 15 included). It's good to avoid this anyway
487     since compilers might some day infer that pointer arithmetic implies
488     that the pointer is not NULL. That is, the following foo() would then
489     unconditionally return 0, even for foo(NULL, 0):
490     
491         void bar(char *a, char *b);
492     
493         int foo(char *a, size_t n)
494         {
495             bar(a, a + n);
496             return a == NULL;
497         }
498     
499     In contrast to C, C++ explicitly allows null pointer + 0. So if
500     the above is compiled as C++ then there is no undefined behavior
501     in the foo(NULL, 0) call.
502     
503     To me it seems that changing the C standard would be the sane
504     thing to do (just add one sentence) as it would ensure that a huge
505     amount of old code won't break in the future. Based on web searches
506     it seems that a large number of codebases (where null pointer + 0
507     occurs) are being fixed instead to be future-proof in case compilers
508     will some day optimize based on it (like making the above foo(NULL, 0)
509     return 0) which in the worst case will cause security bugs.
510     
511     Some projects don't plan to change it. For example, gnulib and thus
512     many GNU tools currently require that null pointer + 0 is defined:
513     
514         https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
515     
516         https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
517     
518     In XZ Utils null pointer + 0 issue should be fixed after this
519     commit. This adds a few if-statements and thus branches to avoid
520     null pointer + 0. These check for size > 0 instead of ptr != NULL
521     because this way bugs where size > 0 && ptr == NULL will likely
522     get caught quickly. None of them are in hot spots so it shouldn't
523     matter for performance.
524     
525     A little less readable version would be replacing
526     
527         ptr + offset
528     
529     with
530     
531         offset != 0 ? ptr + offset : ptr
532     
533     or creating a macro for it:
534     
535         #define my_ptr_add(ptr, offset) \
536                 ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
537     
538     Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
539     Clang >= 7, and Clang-based ICX to optimize it to the very same code
540     as ptr + offset. That is, it won't create a branch. So for hot code
541     this could be a good solution to avoid null pointer + 0. Unfortunately
542     other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
543     branch from my_ptr_add().
544     
545     Thanks to Marcin Kowalczyk for reporting the problem:
546     https://github.com/tukaani-project/xz/issues/36
547
548  src/liblzma/common/block_decoder.c |  5 ++++-
549  src/liblzma/common/block_encoder.c |  7 +++++--
550  src/liblzma/common/common.c        | 20 ++++++++++++++------
551  src/liblzma/common/index_decoder.c | 13 ++++++++++---
552  src/liblzma/common/index_encoder.c | 11 +++++++++--
553  src/liblzma/common/index_hash.c    | 13 ++++++++++---
554  src/liblzma/common/lzip_decoder.c  |  6 +++++-
555  src/liblzma/delta/delta_decoder.c  |  7 ++++++-
556  src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
557  src/liblzma/simple/simple_coder.c  |  6 ++++--
558  10 files changed, 77 insertions(+), 23 deletions(-)
559
560 commit f6dce49cb656b358e2fb2a3032e35e20af34dc84
561 Author: Jia Tan <jiat0218@gmail.com>
562 Date:   2023-02-07 00:00:44 +0800
563
564     liblzma: Adjust container.h for consistency with filter.h.
565
566  src/liblzma/api/lzma/container.h | 20 +++++++++-----------
567  1 file changed, 9 insertions(+), 11 deletions(-)
568
569 commit 173d240bb4763aedc8c01df4d9c83e311d954c33
570 Author: Jia Tan <jiat0218@gmail.com>
571 Date:   2023-02-07 00:00:09 +0800
572
573     liblzma: Fix small typos and reword a few things in filter.h.
574
575  src/liblzma/api/lzma/container.h | 13 ++++++-------
576  1 file changed, 6 insertions(+), 7 deletions(-)
577
578 commit 17797bacde3f7264048ef0976c137a600148d6cf
579 Author: Jia Tan <jiat0218@gmail.com>
580 Date:   2023-02-06 23:42:08 +0800
581
582     liblzma: Convert list of flags in lzma_mt to bulleted list.
583
584  src/liblzma/api/lzma/container.h | 9 ++++++---
585  1 file changed, 6 insertions(+), 3 deletions(-)
586
587 commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b
588 Author: Jia Tan <jiat0218@gmail.com>
589 Date:   2023-01-26 23:17:41 +0800
590
591     liblzma: Fix typo in documentation in container.h
592     
593     lzma_microlzma_decoder -> lzma_microlzma_encoder
594
595  src/liblzma/api/lzma/container.h | 2 +-
596  1 file changed, 1 insertion(+), 1 deletion(-)
597
598 commit b8331077c626e6bf14f4671d09b561146eaf816a
599 Author: Jia Tan <jiat0218@gmail.com>
600 Date:   2023-01-26 23:16:34 +0800
601
602     liblzma: Improve documentation for container.h
603     
604     Standardizing each function to always specify parameters and return
605     values. Also moved the parameters and return values to the end of each
606     function description.
607
608  src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
609  1 file changed, 93 insertions(+), 53 deletions(-)
610
611 commit b9a3511bb61d3b6ce49abd33dce6155a573f5272
612 Author: Jia Tan <jiat0218@gmail.com>
613 Date:   2023-02-22 20:59:41 +0800
614
615     CMake: Add LZIP decoder test to list of tests.
616
617  CMakeLists.txt | 1 +
618  1 file changed, 1 insertion(+)
619
620 commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89
621 Author: Lasse Collin <lasse.collin@tukaani.org>
622 Date:   2023-02-17 20:56:49 +0200
623
624     Update THANKS.
625
626  THANKS | 1 +
627  1 file changed, 1 insertion(+)
628
629 commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b
630 Author: Lasse Collin <lasse.collin@tukaani.org>
631 Date:   2023-02-17 20:48:28 +0200
632
633     Build: Use only the generic symbol versioning on MicroBlaze.
634     
635     On MicroBlaze, GCC 12 is broken in sense that
636     __has_attribute(__symver__) returns true but it still doesn't
637     support the __symver__ attribute even though the platform is ELF
638     and symbol versioning is supported if using the traditional
639     __asm__(".symver ...") method. Avoiding the traditional method is
640     good because it breaks LTO (-flto) builds with GCC.
641     
642     See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
643     
644     For now the only extra symbols in liblzma_linux.map are the
645     compatibility symbols with the patch that spread from RHEL/CentOS 7.
646     These require the use of __symver__ attribute or __asm__(".symver ...")
647     in the C code. Compatibility with the patch from CentOS 7 doesn't
648     seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
649     instead. It doesn't require anything special in the C code and thus
650     no LTO issues either.
651     
652     An alternative would be to detect support for __symver__
653     attribute in configure.ac and CMakeLists.txt and fall back
654     to __asm__(".symver ...") but then LTO would be silently broken
655     on MicroBlaze. It sounds likely that MicroBlaze is a special
656     case so let's treat it as a such because that is simpler. If
657     a similar issue exists on some other platform too then hopefully
658     someone will report it and this can be reconsidered.
659     
660     (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
661     but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
662     The problem breaks the build so it's easy to notice and can be fixed
663     later.)
664     
665     Thanks to Vincent Fazio for reporting the problem and proposing
666     a patch (in the end that solution wasn't used):
667     https://github.com/tukaani-project/xz/pull/32
668
669  configure.ac | 12 ++++++++++--
670  1 file changed, 10 insertions(+), 2 deletions(-)
671
672 commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea
673 Author: Lasse Collin <lasse.collin@tukaani.org>
674 Date:   2023-02-16 21:09:00 +0200
675
676     liblzma: Very minor API doc tweaks.
677     
678     Use "member" to refer to struct members as that's the term used
679     by the C standard.
680     
681     Use lzma_options_delta.dist and such in docs so that in Doxygen's
682     HTML output they will link to the doc of the struct member.
683     
684     Clean up a few trailing white spaces too.
685
686  src/liblzma/api/lzma/block.h        |  6 +++---
687  src/liblzma/api/lzma/delta.h        |  6 +++---
688  src/liblzma/api/lzma/index.h        | 10 +++++-----
689  src/liblzma/api/lzma/stream_flags.h |  6 +++---
690  4 files changed, 14 insertions(+), 14 deletions(-)
691
692 commit d31fbd28be5b79eb682db50004b0fb7aad5299ec
693 Author: Jia Tan <jiat0218@gmail.com>
694 Date:   2023-02-17 00:54:33 +0800
695
696     liblzma: Adjust spacing in doc headers in bcj.h.
697
698  src/liblzma/api/lzma/bcj.h | 14 +++++++-------
699  1 file changed, 7 insertions(+), 7 deletions(-)
700
701 commit 701e9be6bede19771895f756082db0c017f86f07
702 Author: Jia Tan <jiat0218@gmail.com>
703 Date:   2023-02-17 00:44:44 +0800
704
705     liblzma: Adjust documentation in bcj.h for consistent style.
706
707  src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
708  1 file changed, 22 insertions(+), 21 deletions(-)
709
710 commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503
711 Author: Jia Tan <jiat0218@gmail.com>
712 Date:   2023-02-17 00:36:05 +0800
713
714     liblzma: Rename field => member in documentation.
715     
716     Also adjusted preset value => preset level.
717
718  src/liblzma/api/lzma/base.h         | 18 +++++++--------
719  src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
720  src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
721  src/liblzma/api/lzma/delta.h        | 12 +++++-----
722  src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
723  src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
724  src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
725  7 files changed, 95 insertions(+), 95 deletions(-)
726
727 commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a
728 Author: Lasse Collin <lasse.collin@tukaani.org>
729 Date:   2023-02-16 17:59:50 +0200
730
731     liblzma: Silence a warning from MSVC.
732     
733     It gives C4146 here since unary minus with unsigned integer
734     is still unsigned (which is the intention here). Doing it
735     with substraction makes it clearer and avoids the warning.
736     
737     Thanks to Nathan Moinvaziri for reporting this.
738
739  src/liblzma/check/crc64_fast.c | 2 +-
740  1 file changed, 1 insertion(+), 1 deletion(-)
741
742 commit d83da006b3e8dbad9112e6cde6b27049d193c9ec
743 Author: Jia Tan <jiat0218@gmail.com>
744 Date:   2023-02-16 21:04:54 +0800
745
746     liblzma: Improve documentation for stream_flags.h
747     
748     Standardizing each function to always specify parameters and return
749     values. Also moved the parameters and return values to the end of each
750     function description.
751     
752     A few small things were reworded and long sentences broken up.
753
754  src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
755  1 file changed, 46 insertions(+), 30 deletions(-)
756
757 commit 2796bb4736f645d34939b5d62d5958f534e41e69
758 Author: Jia Tan <jiat0218@gmail.com>
759 Date:   2023-02-14 21:50:16 +0800
760
761     liblzma: Improve documentation in lzma12.h.
762     
763     All functions now explicitly specify parameter and return values.
764
765  src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
766  1 file changed, 23 insertions(+), 9 deletions(-)
767
768 commit ebebaa8d9381afea440eb1b01917117551adf68f
769 Author: Jia Tan <jiat0218@gmail.com>
770 Date:   2023-01-27 22:44:06 +0800
771
772     liblzma: Improve documentation in check.h.
773     
774     All functions now explicitly specify parameter and return values.
775     Also moved the note about SHA-256 functions not being exported to the
776     top of the file.
777
778  src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
779  1 file changed, 28 insertions(+), 13 deletions(-)
780
781 commit 765fa2865aab97ea713c1715922e322b3cf599a7
782 Author: Jia Tan <jiat0218@gmail.com>
783 Date:   2023-02-08 21:33:52 +0800
784
785     liblzma: Improve documentation in index.h
786     
787     All functions now explicitly specify parameter and return values.
788
789  src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
790  1 file changed, 126 insertions(+), 51 deletions(-)
791
792 commit 918e208af5960728b6def01e692b395f7d8e3701
793 Author: Jia Tan <jiat0218@gmail.com>
794 Date:   2023-02-08 20:35:32 +0800
795
796     liblzma: Reword a comment in index.h.
797
798  src/liblzma/api/lzma/index.h | 4 ++--
799  1 file changed, 2 insertions(+), 2 deletions(-)
800
801 commit 1f157d214bc09338876d2467b549935679abc0bf
802 Author: Jia Tan <jiat0218@gmail.com>
803 Date:   2023-02-08 20:30:23 +0800
804
805     liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
806     
807     Add \private above this field and its sub-fields since it is not meant
808     to be modified by users.
809
810  src/liblzma/api/lzma/index.h | 9 ++++++++-
811  1 file changed, 8 insertions(+), 1 deletion(-)
812
813 commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc
814 Author: Jia Tan <jiat0218@gmail.com>
815 Date:   2023-01-21 21:32:03 +0800
816
817     liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
818     
819     LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
820     documentation after a member.
821
822  src/liblzma/api/lzma/base.h | 2 +-
823  1 file changed, 1 insertion(+), 1 deletion(-)
824
825 commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018
826 Author: Jia Tan <jiat0218@gmail.com>
827 Date:   2023-01-21 00:29:38 +0800
828
829     liblzma: Improve documentation for base.h.
830     
831     Standardizing each function to always specify params and return values.
832     Also fixed a small grammar mistake.
833
834  src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
835  1 file changed, 25 insertions(+), 5 deletions(-)
836
837 commit 2287d5668384e289d51e72724997dc920483768e
838 Author: Jia Tan <jiat0218@gmail.com>
839 Date:   2023-02-14 00:08:33 +0800
840
841     liblzma: Minor improvements to vli.h.
842     
843     Added [out] annotations to parameters that are pointers and can have
844     their value changed. Also added a clarification to lzma_vli_is_valid.
845
846  src/liblzma/api/lzma/vli.h | 15 ++++++++-------
847  1 file changed, 8 insertions(+), 7 deletions(-)
848
849 commit 7124b8a16ae60cb2e93218ff531868eebd673bde
850 Author: Jia Tan <jiat0218@gmail.com>
851 Date:   2023-02-10 21:38:02 +0800
852
853     liblzma: Add comments for macros in delta.h.
854     
855     Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
856     and to avoid Doxygen warnings.
857
858  src/liblzma/api/lzma/delta.h | 8 ++++++++
859  1 file changed, 8 insertions(+)
860
861 commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81
862 Author: Jia Tan <jiat0218@gmail.com>
863 Date:   2023-02-10 21:35:23 +0800
864
865     liblzma: Improve documentation in index_hash.h.
866     
867     All functions now explicitly specify parameter and return values.
868     Also reworded the description of lzma_index_hash_init() for readability.
869
870  src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
871  1 file changed, 27 insertions(+), 9 deletions(-)
872
873 commit e970c28ac3cb2e8051925f81db2fe953664c2645
874 Author: Jia Tan <jiat0218@gmail.com>
875 Date:   2023-02-03 00:33:32 +0800
876
877     liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
878     
879     The bug is only a problem in applications that do not properly terminate
880     the filters[] array with LZMA_VLI_UNKNOWN or have more than
881     LZMA_FILTERS_MAX filters. This bug does not affect xz.
882
883  src/liblzma/common/string_conversion.c | 7 +++++++
884  1 file changed, 7 insertions(+)
885
886 commit 85e01266a96689448abb249da6c6abc3afcd4a4e
887 Author: Jia Tan <jiat0218@gmail.com>
888 Date:   2023-02-03 00:32:47 +0800
889
890     Tests: Create test_filter_str.c.
891     
892     Tests lzma_str_to_filters(), lzma_str_from_filters(), and
893     lzma_str_list_filters() API functions.
894
895  CMakeLists.txt          |   1 +
896  tests/Makefile.am       |   2 +
897  tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
898  3 files changed, 596 insertions(+)
899
900 commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a
901 Author: Jia Tan <jiat0218@gmail.com>
902 Date:   2023-01-22 08:49:00 +0800
903
904     liblzma: Fix typos in comments in string_conversion.c.
905
906  src/liblzma/common/string_conversion.c | 4 ++--
907  1 file changed, 2 insertions(+), 2 deletions(-)
908
909 commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e
910 Author: Jia Tan <jiat0218@gmail.com>
911 Date:   2023-02-03 00:20:20 +0800
912
913     liblzma: Clarify block encoder and decoder documentation.
914     
915     Added a few sentences to the description for lzma_block_encoder() and
916     lzma_block_decoder() to highlight that the Block Header must be coded
917     before calling these functions.
918
919  src/liblzma/api/lzma/block.h | 15 +++++++++++----
920  1 file changed, 11 insertions(+), 4 deletions(-)
921
922 commit ccf12acbfa7331b1bbb99ec55879186eb35f879f
923 Author: Jia Tan <jiat0218@gmail.com>
924 Date:   2023-02-03 00:12:24 +0800
925
926     Update lzma_block documentation for lzma_block_uncomp_encode().
927
928  src/liblzma/api/lzma/block.h | 3 +++
929  1 file changed, 3 insertions(+)
930
931 commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24
932 Author: Jia Tan <jiat0218@gmail.com>
933 Date:   2023-02-03 00:11:37 +0800
934
935     liblzma: Minor edits to lzma_block header_size documentation.
936
937  src/liblzma/api/lzma/block.h | 3 ++-
938  1 file changed, 2 insertions(+), 1 deletion(-)
939
940 commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883
941 Author: Jia Tan <jiat0218@gmail.com>
942 Date:   2023-02-03 00:11:07 +0800
943
944     liblzma: Enumerate functions that read version in lzma_block.
945
946  src/liblzma/api/lzma/block.h | 13 +++++++++++--
947  1 file changed, 11 insertions(+), 2 deletions(-)
948
949 commit d6620774682830d606f57109861b6763805b3492
950 Author: Jia Tan <jiat0218@gmail.com>
951 Date:   2023-02-03 00:10:34 +0800
952
953     liblzma: Clarify comment in block.h.
954
955  src/liblzma/api/lzma/block.h | 3 ++-
956  1 file changed, 2 insertions(+), 1 deletion(-)
957
958 commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1
959 Author: Jia Tan <jiat0218@gmail.com>
960 Date:   2023-02-03 00:07:23 +0800
961
962     liblzma: Improve documentation for block.h.
963     
964     Standardizing each function to always specify params and return values.
965     Output pointer parameters are also marked with doxygen style [out] to
966     make it clear. Any note sections were also moved above the parameter and
967     return sections for consistency.
968
969  src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
970  1 file changed, 75 insertions(+), 21 deletions(-)
971
972 commit b5b1b1f061c342271e4977ce5cba604a19c0ca52
973 Author: Jia Tan <jiat0218@gmail.com>
974 Date:   2023-02-01 23:38:30 +0800
975
976     liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
977     
978     The flag description for LZMA_STR_NO_VALIDATION was previously confusing
979     about the treatment for filters than cannot be used with .xz format
980     (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
981     LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
982
983  src/liblzma/api/lzma/filter.h | 5 +++--
984  1 file changed, 3 insertions(+), 2 deletions(-)
985
986 commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b
987 Author: Jia Tan <jiat0218@gmail.com>
988 Date:   2023-01-27 20:14:51 +0800
989
990     Translations: Add Brazilian Portuguese translation of man pages.
991     
992     Thanks to Rafael Fontenelle.
993
994  po4a/po4a.conf |    2 +-
995  po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
996  2 files changed, 3678 insertions(+), 1 deletion(-)
997
998 commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6
999 Author: Jia Tan <jiat0218@gmail.com>
1000 Date:   2023-01-24 20:48:50 +0800
1001
1002     liblzma: Fix documentation in filter.h for lzma_str_to_filters()
1003     
1004     The previous documentation for lzma_str_to_filters() was technically
1005     correct, but misleading. lzma_str_to_filters() returns NULL on success,
1006     which is in practice always defined to 0. This is the same value as
1007     LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
1008     be more clear.
1009
1010  src/liblzma/api/lzma/filter.h | 2 +-
1011  1 file changed, 1 insertion(+), 1 deletion(-)
1012
1013 commit 99575947a58a60416c570eb78038d18a1ea4cef4
1014 Author: Jia Tan <jiat0218@gmail.com>
1015 Date:   2023-01-07 21:55:06 +0800
1016
1017     xz: Refactor duplicated check for custom suffix when using --format=raw
1018
1019  src/xz/args.c   |  8 ++++++++
1020  src/xz/suffix.c | 26 ++++++++------------------
1021  src/xz/suffix.h |  8 ++++++++
1022  3 files changed, 24 insertions(+), 18 deletions(-)
1023
1024 commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad
1025 Author: Jia Tan <jiat0218@gmail.com>
1026 Date:   2023-01-20 21:53:14 +0800
1027
1028     liblzma: Set documentation on all reserved fields to private.
1029     
1030     This prevents the reserved fields from being part of the generated
1031     Doxygen documentation.
1032
1033  src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
1034  src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
1035  src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
1036  src/liblzma/api/lzma/delta.h        | 12 +++++++++++
1037  src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
1038  src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
1039  src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
1040  7 files changed, 173 insertions(+)
1041
1042 commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8
1043 Author: Jia Tan <jiat0218@gmail.com>
1044 Date:   2022-12-21 23:59:43 +0800
1045
1046     liblzma: Highlight liblzma API headers should not be included directly.
1047     
1048     This improves the generated Doxygen HTML files to better highlight
1049     how to properly use the liblzma API header files.
1050
1051  src/liblzma/api/lzma/base.h         | 5 +++--
1052  src/liblzma/api/lzma/bcj.h          | 5 +++--
1053  src/liblzma/api/lzma/block.h        | 5 +++--
1054  src/liblzma/api/lzma/check.h        | 5 +++--
1055  src/liblzma/api/lzma/container.h    | 5 +++--
1056  src/liblzma/api/lzma/delta.h        | 5 +++--
1057  src/liblzma/api/lzma/filter.h       | 5 +++--
1058  src/liblzma/api/lzma/hardware.h     | 5 +++--
1059  src/liblzma/api/lzma/index.h        | 5 +++--
1060  src/liblzma/api/lzma/index_hash.h   | 5 +++--
1061  src/liblzma/api/lzma/lzma12.h       | 5 +++--
1062  src/liblzma/api/lzma/stream_flags.h | 5 +++--
1063  src/liblzma/api/lzma/version.h      | 5 +++--
1064  src/liblzma/api/lzma/vli.h          | 5 +++--
1065  14 files changed, 42 insertions(+), 28 deletions(-)
1066
1067 commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd
1068 Author: Jia Tan <jiat0218@gmail.com>
1069 Date:   2023-01-19 20:35:09 +0800
1070
1071     tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
1072     
1073     tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
1074     to retrieve a function address. The proper way to do this is to cast the
1075     return value to the type of function pointer retrieved. Unfortunately,
1076     this causes a cast-function-type warning, so the best solution is to
1077     simply ignore the warning.
1078
1079  src/common/tuklib_physmem.c | 18 ++++++++++++++++++
1080  1 file changed, 18 insertions(+)
1081
1082 commit 720ad4a44282a7ee59aa9920eaf495d85d245d97
1083 Author: Jia Tan <jiat0218@gmail.com>
1084 Date:   2023-01-16 21:35:45 +0800
1085
1086     xz: Add missing comment for coder_set_compression_settings()
1087
1088  src/xz/coder.h | 3 ++-
1089  1 file changed, 2 insertions(+), 1 deletion(-)
1090
1091 commit 88dc19163421282369c0989e997c05f9a447edc6
1092 Author: Jia Tan <jiat0218@gmail.com>
1093 Date:   2023-01-16 20:55:10 +0800
1094
1095     xz: Do not set compression settings with raw format in list mode.
1096     
1097     Calling coder_set_compression_settings() in list mode with verbose mode
1098     on caused the filter chain and memory requirements to print. This was
1099     unnecessary since the command results in an error and not consistent
1100     with other formats like lzma and alone.
1101
1102  src/xz/args.c | 3 ++-
1103  1 file changed, 2 insertions(+), 1 deletion(-)
1104
1105 commit 039e0ab13efb144642f9d99eeeb9c668e76bb430
1106 Author: Jia Tan <jiat0218@gmail.com>
1107 Date:   2023-01-13 20:37:06 +0800
1108
1109     Translations: Update the Brazilian Portuguese translation.
1110
1111  po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
1112  1 file changed, 344 insertions(+), 259 deletions(-)
1113
1114 commit 718f7a60e740b26b8353965edaaddc7d4deb4d85
1115 Author: Lasse Collin <lasse.collin@tukaani.org>
1116 Date:   2023-01-12 13:04:05 +0200
1117
1118     Build: Omit -Wmissing-noreturn from the default warnings.
1119     
1120     It's not that important. It can be annoying in builds that
1121     disable many features since in those cases the tests programs
1122     will correctly trigger this warning with Clang.
1123
1124  configure.ac | 1 -
1125  1 file changed, 1 deletion(-)
1126
1127 commit 3ccedb09724c998c39d708c945f6da5852c39e13
1128 Author: Lasse Collin <lasse.collin@tukaani.org>
1129 Date:   2023-01-12 06:05:58 +0200
1130
1131     xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
1132     
1133     It makes no difference here as the return value fits into an int
1134     too and it then gets ignored but this looks better.
1135
1136  src/xz/file_io.c | 2 +-
1137  1 file changed, 1 insertion(+), 1 deletion(-)
1138
1139 commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019
1140 Author: Lasse Collin <lasse.collin@tukaani.org>
1141 Date:   2023-01-12 06:01:12 +0200
1142
1143     xz: Silence warnings from -Wsign-conversion in a 32-bit build.
1144
1145  src/common/tuklib_mbstr_fw.c | 2 +-
1146  src/xz/list.c                | 4 ++--
1147  2 files changed, 3 insertions(+), 3 deletions(-)
1148
1149 commit 683d3f178ef1487b5418be49f331b0131a101b40
1150 Author: Lasse Collin <lasse.collin@tukaani.org>
1151 Date:   2023-01-12 05:38:48 +0200
1152
1153     liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
1154     
1155     It doesn't warn on a 64-bit system because truncating
1156     a ptrdiff_t (signed long) to uint32_t is diagnosed under
1157     -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
1158
1159  src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
1160  1 file changed, 4 insertions(+), 3 deletions(-)
1161
1162 commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15
1163 Author: Lasse Collin <lasse.collin@tukaani.org>
1164 Date:   2023-01-12 04:46:45 +0200
1165
1166     liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
1167
1168  src/common/mythread.h | 4 ++--
1169  1 file changed, 2 insertions(+), 2 deletions(-)
1170
1171 commit b16b9c0d22227012518595c2222facc73bd833a8
1172 Author: Lasse Collin <lasse.collin@tukaani.org>
1173 Date:   2023-01-12 04:17:24 +0200
1174
1175     Build: Make configure add more warning flags for GCC and Clang.
1176     
1177     -Wstrict-aliasing was removed from the list since it is enabled
1178     by -Wall already.
1179     
1180     A normal build is clean with these on GNU/Linux x86-64 with
1181     GCC 12.2.0 and Clang 14.0.6.
1182
1183  configure.ac | 36 +++++++++++++++++++++++++++++++-----
1184  1 file changed, 31 insertions(+), 5 deletions(-)
1185
1186 commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94
1187 Author: Lasse Collin <lasse.collin@tukaani.org>
1188 Date:   2023-01-12 04:14:18 +0200
1189
1190     Tests: Fix warnings from clang --Wassign-enum.
1191     
1192     Explicitly casting the integer to lzma_check silences the warning.
1193     Since such an invalid value is needed in multiple tests, a constant
1194     INVALID_LZMA_CHECK_ID was added to tests.h.
1195     
1196     The use of 0x1000 for lzma_block.check wasn't optimal as if
1197     the underlying type is a char then 0x1000 will be truncated to 0.
1198     However, in these test cases the value is ignored, thus even with
1199     such truncation the test would have passed.
1200
1201  tests/test_block_header.c | 6 +++---
1202  tests/test_check.c        | 2 +-
1203  tests/test_stream_flags.c | 8 ++++----
1204  tests/tests.h             | 9 +++++++++
1205  4 files changed, 17 insertions(+), 8 deletions(-)
1206
1207 commit 34e13ce015232968731de2a9ec3440a08b0084b1
1208 Author: Lasse Collin <lasse.collin@tukaani.org>
1209 Date:   2023-01-12 03:51:07 +0200
1210
1211     Tests: Silence warnings from -Wsign-conversion.
1212     
1213     Note that assigning an unsigned int to lzma_check doesn't warn
1214     on GNU/Linux x86-64 since the enum type is unsigned on that
1215     platform. The enum can be signed on some other platform though
1216     so it's best to use enumeration type lzma_check in these situations.
1217
1218  tests/test_check.c        |  6 +++---
1219  tests/test_stream_flags.c | 10 +++++-----
1220  2 files changed, 8 insertions(+), 8 deletions(-)
1221
1222 commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a
1223 Author: Lasse Collin <lasse.collin@tukaani.org>
1224 Date:   2023-01-12 03:19:59 +0200
1225
1226     liblzma: Silence warnings from clang -Wconditional-uninitialized.
1227     
1228     This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
1229     The actual initialization of the variables is done inside
1230     mythread_sync() macro. Clang doesn't seem to see that
1231     the initialization code inside the macro is always executed.
1232
1233  src/liblzma/common/stream_decoder_mt.c | 8 +++++---
1234  src/liblzma/common/stream_encoder_mt.c | 2 +-
1235  2 files changed, 6 insertions(+), 4 deletions(-)
1236
1237 commit d3e833ca1d2abda54648494c33aca73a40a47efe
1238 Author: Lasse Collin <lasse.collin@tukaani.org>
1239 Date:   2023-01-12 03:11:40 +0200
1240
1241     Fix warnings from clang -Wdocumentation.
1242
1243  src/liblzma/check/check.h      | 4 ----
1244  src/liblzma/lz/lz_encoder_mf.c | 4 ++--
1245  src/xz/options.c               | 4 ++--
1246  3 files changed, 4 insertions(+), 8 deletions(-)
1247
1248 commit 977dd2e26bc50efec8d30fb90380394042d24558
1249 Author: Lasse Collin <lasse.collin@tukaani.org>
1250 Date:   2023-01-12 03:04:28 +0200
1251
1252     Tests: test_lzip_decoder: Remove trailing white-space.
1253
1254  tests/test_lzip_decoder.c | 4 ++--
1255  1 file changed, 2 insertions(+), 2 deletions(-)
1256
1257 commit c55157ed7437ab14f2afb7fecf331e321f2edf9a
1258 Author: Lasse Collin <lasse.collin@tukaani.org>
1259 Date:   2023-01-12 03:03:55 +0200
1260
1261     Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
1262
1263  tests/test_lzip_decoder.c | 13 +++++++------
1264  1 file changed, 7 insertions(+), 6 deletions(-)
1265
1266 commit 18b845e69752c975dfeda418ec00eda22605c2ee
1267 Author: Lasse Collin <lasse.collin@tukaani.org>
1268 Date:   2023-01-11 18:52:54 +0200
1269
1270     Bump version and soname for 5.4.1.
1271
1272  src/liblzma/Makefile.am        | 2 +-
1273  src/liblzma/api/lzma/version.h | 2 +-
1274  2 files changed, 2 insertions(+), 2 deletions(-)
1275
1276 commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
1277 Author: Jia Tan <jiat0218@gmail.com>
1278 Date:   2023-01-11 23:58:16 +0800
1279
1280     Add NEWS for 5.4.1.
1281
1282  NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1283  1 file changed, 70 insertions(+)
1284
1285 commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
1286 Author: Lasse Collin <lasse.collin@tukaani.org>
1287 Date:   2023-01-10 11:56:11 +0200
1288
1289     sysdefs.h: Don't include strings.h anymore.
1290     
1291     On some platforms src/xz/suffix.c may need <strings.h> for
1292     strcasecmp() but suffix.c includes the header when it needs it.
1293     
1294     Unless there is an old system that otherwise supports enough C99
1295     to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
1296     there should be no need to include <strings.h> in sysdefs.h.
1297
1298  src/common/sysdefs.h | 6 ------
1299  1 file changed, 6 deletions(-)
1300
1301 commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
1302 Author: Lasse Collin <lasse.collin@tukaani.org>
1303 Date:   2023-01-10 11:23:41 +0200
1304
1305     xz: Include <strings.h> in suffix.c if needed for strcasecmp().
1306     
1307     SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
1308     Of these, strcasecmp() is used on some platforms in suffix.c.
1309     Nothing else in the project needs <strings.h> (at least if
1310     building on a modern system).
1311     
1312     sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
1313     defined and suffix.c relied on this.
1314     
1315     Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
1316     DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
1317     is also in <string.h> in DJGPP.
1318
1319  src/xz/suffix.c | 3 +++
1320  1 file changed, 3 insertions(+)
1321
1322 commit aea639e81beb548e3114c74b6d9a894d6e036189
1323 Author: Jia Tan <jiat0218@gmail.com>
1324 Date:   2023-01-11 22:46:48 +0800
1325
1326     xz: Fix warning -Wformat-nonliteral on clang in message.c.
1327     
1328     clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
1329     allow a non-literal format string as long as the function takes its
1330     format arguments as a va_list.
1331
1332  src/xz/message.c | 9 +++++++++
1333  1 file changed, 9 insertions(+)
1334
1335 commit e3b42bfcb0f67988beee7c7022fed0361282be45
1336 Author: Jia Tan <jiat0218@gmail.com>
1337 Date:   2023-01-11 20:58:31 +0800
1338
1339     Tests: Fix test_filter_flags copy/paste error.
1340
1341  tests/test_filter_flags.c | 4 ++--
1342  1 file changed, 2 insertions(+), 2 deletions(-)
1343
1344 commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
1345 Author: Jia Tan <jiat0218@gmail.com>
1346 Date:   2023-01-11 20:42:29 +0800
1347
1348     Tests: Fix type-limits warning in test_filter_flags.
1349     
1350     This only occurs in test_filter_flags when the BCJ filters are not
1351     configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
1352     type-limits warning with the loop variable since an unsigned number will
1353     always be >= 0.
1354
1355  tests/test_filter_flags.c | 13 ++++++++++---
1356  1 file changed, 10 insertions(+), 3 deletions(-)
1357
1358 commit c337983e928682d56ce3470b286a8d5b8646e0ad
1359 Author: Lasse Collin <lasse.collin@tukaani.org>
1360 Date:   2023-01-10 22:14:03 +0200
1361
1362     liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
1363     
1364     This affects only 32-bit x86 builds. x86-64 is OK as is.
1365     
1366     I still cannot easily test this myself. The reporter has tested
1367     this and it passes the tests included in the CMake build and
1368     performance is good: raw CRC64 is 2-3 times faster than the
1369     C version of the slice-by-four method. (Note that liblzma doesn't
1370     include a MSVC-compatible version of the 32-bit x86 assembly code
1371     for the slice-by-four method.)
1372     
1373     Thanks to Iouri Kharon for figuring out a fix, testing, and
1374     benchmarking.
1375
1376  src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
1377  1 file changed, 18 insertions(+)
1378
1379 commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
1380 Author: Jia Tan <jiat0218@gmail.com>
1381 Date:   2023-01-11 01:18:50 +0800
1382
1383     Tests: Fix unused function warning in test_block_header.
1384     
1385     One of the global arrays of filters was only used in a test that
1386     required both encoders and decoders to be configured in the build.
1387
1388  tests/test_block_header.c | 4 ++++
1389  1 file changed, 4 insertions(+)
1390
1391 commit 68e9ef036d18d7c3952bff0b391d5989b86934da
1392 Author: Jia Tan <jiat0218@gmail.com>
1393 Date:   2023-01-11 01:08:03 +0800
1394
1395     Tests: Fix unused function warning in test_index_hash.
1396     
1397     test_index_hash does not use fill_index_hash() unless both encoders
1398     and decoders are configured in the build.
1399
1400  tests/test_index_hash.c | 4 +---
1401  1 file changed, 1 insertion(+), 3 deletions(-)
1402
1403 commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
1404 Author: Lasse Collin <lasse.collin@tukaani.org>
1405 Date:   2023-01-10 00:33:14 +0200
1406
1407     Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
1408
1409  windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
1410  1 file changed, 12 insertions(+), 7 deletions(-)
1411
1412 commit 52902ad69518255a14b0144f0a2379e06fde5b6e
1413 Author: Lasse Collin <lasse.collin@tukaani.org>
1414 Date:   2023-01-10 12:47:16 +0200
1415
1416     Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
1417     
1418     This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
1419     
1420     It was reported that it wasn't a good enough fix and MSVC
1421     still produced (different kind of) bad code when building
1422     for 32-bit x86 if optimizations are enabled.
1423     
1424     Thanks to Iouri Kharon.
1425
1426  src/liblzma/check/crc64_fast.c | 6 ------
1427  1 file changed, 6 deletions(-)
1428
1429 commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
1430 Author: Lasse Collin <lasse.collin@tukaani.org>
1431 Date:   2023-01-10 10:05:13 +0200
1432
1433     sysdefs.h: Fix a comment.
1434
1435  src/common/sysdefs.h | 2 +-
1436  1 file changed, 1 insertion(+), 1 deletion(-)
1437
1438 commit 6e89ab58b031aa046308a0b3504ff0a5be042571
1439 Author: Lasse Collin <lasse.collin@tukaani.org>
1440 Date:   2023-01-10 10:04:06 +0200
1441
1442     sysdefs.h: Don't include memory.h anymore even if it were available.
1443     
1444     It quite probably was never needed, that is, any system where memory.h
1445     was required likely couldn't compile XZ Utils for other reasons anyway.
1446     
1447     XZ Utils 5.2.6 and later source packages were generated using
1448     Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
1449     being removed is no longer used anyway.
1450
1451  src/common/sysdefs.h | 8 ++------
1452  1 file changed, 2 insertions(+), 6 deletions(-)
1453
1454 commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
1455 Author: Lasse Collin <lasse.collin@tukaani.org>
1456 Date:   2023-01-10 08:50:26 +0200
1457
1458     CMake/Windows: Add a workaround for windres from GNU binutils.
1459     
1460     This is combined from the following commits in the master branch:
1461     443dfebced041adc88f10d824188eeef5b5821a9
1462     6b117d3b1fe91eb26d533ab16a2e552f84148d47
1463     5e34774c31d1b7509b5cb77a3be9973adec59ea0
1464     
1465     Thanks to Iouri Kharon for the bug report, the original patch,
1466     and testing.
1467
1468  CMakeLists.txt | 32 +++++++++++++++++++++++++++++++-
1469  1 file changed, 31 insertions(+), 1 deletion(-)
1470
1471 commit 43521e77acc907863fa4f94aae276366172cb9ee
1472 Author: Lasse Collin <lasse.collin@tukaani.org>
1473 Date:   2023-01-06 22:53:38 +0200
1474
1475     Tests: test_filter_flags: Clean up minor issues.
1476     
1477     Here are the list of the most significant issues addressed:
1478     - Avoid using internal common.h header. It's not good to copy the
1479     constants like this but common.h cannot be included for use outside
1480     of liblzma. This is the quickest thing to do that could be fixed later.
1481     
1482     - Omit the INIT_FILTER macro. Initialization should be done with just
1483     regular designated initializers.
1484     
1485     - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
1486     Flags encoder and decoder don't validate the options thoroughly.
1487     257 is valid only for the x86 filter. This is a bit silly but
1488     not a significant problem in practice because the encoder and
1489     decoder initialization functions will catch bad alignment still.
1490     Perhaps this should be fixed but it's not urgent and doesn't need
1491     to be in 5.4.x.
1492     
1493     - Various tweaks to comments such as filter id -> Filter ID
1494
1495  tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
1496  1 file changed, 78 insertions(+), 75 deletions(-)
1497
1498 commit 6b44cead95d767414272dc3a67898a36bfdf95b3
1499 Author: Jia Tan <jiat0218@gmail.com>
1500 Date:   2022-12-29 23:33:33 +0800
1501
1502     Tests: Refactors existing filter flags tests.
1503     
1504     Converts the existing filter flags tests into tuktests.
1505
1506  tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
1507  1 file changed, 457 insertions(+), 198 deletions(-)
1508
1509 commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
1510 Author: Lasse Collin <lasse.collin@tukaani.org>
1511 Date:   2023-01-08 00:32:29 +0200
1512
1513     Tests: tuktest.h: Support tuktest_malloc(0).
1514     
1515     It's not needed in XZ Utils at least for now. It's good to support
1516     it still because if such use is needed later, it wouldn't be
1517     caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
1518
1519  tests/tuktest.h | 4 ++--
1520  1 file changed, 2 insertions(+), 2 deletions(-)
1521
1522 commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
1523 Author: Lasse Collin <lasse.collin@tukaani.org>
1524 Date:   2023-01-07 21:57:11 +0200
1525
1526     CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
1527     
1528     The changes listed on cmake-policies(7) for versions 3.17 to 3.25
1529     shouldn't affect this project.
1530
1531  CMakeLists.txt | 2 +-
1532  1 file changed, 1 insertion(+), 1 deletion(-)
1533
1534 commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
1535 Author: Lasse Collin <lasse.collin@tukaani.org>
1536 Date:   2023-01-08 00:24:23 +0200
1537
1538     Update THANKS.
1539
1540  THANKS | 1 +
1541  1 file changed, 1 insertion(+)
1542
1543 commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
1544 Author: Lasse Collin <lasse.collin@tukaani.org>
1545 Date:   2023-01-07 19:50:35 +0200
1546
1547     Update THANKS.
1548
1549  THANKS | 1 +
1550  1 file changed, 1 insertion(+)
1551
1552 commit 3d45987451b1c3bb42697b29341824c0e5484cba
1553 Author: Lasse Collin <lasse.collin@tukaani.org>
1554 Date:   2023-01-09 11:27:24 +0200
1555
1556     CMake: Fix a copypaste error in xzdec Windows resource file handling.
1557     
1558     It was my mistake. Thanks to Iouri Kharon for the bug report.
1559
1560  CMakeLists.txt | 4 ++--
1561  1 file changed, 2 insertions(+), 2 deletions(-)
1562
1563 commit 706bce5018d7cf83094e13454a0731169ec119b5
1564 Author: Lasse Collin <lasse.collin@tukaani.org>
1565 Date:   2023-01-07 19:50:03 +0200
1566
1567     CMake/Windows: Add resource files to xz.exe and xzdec.exe.
1568     
1569     The command line tools cannot be built with MSVC for now but
1570     they can be built with MinGW-w64.
1571     
1572     Thanks to Iouri Kharon for the bug report and the original patch.
1573
1574  CMakeLists.txt | 16 ++++++++++++++++
1575  1 file changed, 16 insertions(+)
1576
1577 commit e96dee55df04113c33b387ccdb6cb70935422d91
1578 Author: Lasse Collin <lasse.collin@tukaani.org>
1579 Date:   2023-01-09 12:22:05 +0200
1580
1581     liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
1582     
1583     I haven't tested with MSVC myself and there doesn't seem to be
1584     information about the problem online, so I'm relying on the bug report.
1585     
1586     Thanks to Iouri Kharon for the bug report and the patch.
1587
1588  src/liblzma/check/crc64_fast.c | 6 ++++++
1589  1 file changed, 6 insertions(+)
1590
1591 commit 52bc1ee34dda9bb6fb40175e5952863066681b77
1592 Author: Lasse Collin <lasse.collin@tukaani.org>
1593 Date:   2023-01-07 19:31:15 +0200
1594
1595     Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
1596     
1597     VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
1598     disabled with VS2013.
1599     
1600     Thanks to Iouri Kharon for the bug report.
1601
1602  CMakeLists.txt | 3 ++-
1603  configure.ac   | 8 ++++++--
1604  2 files changed, 8 insertions(+), 3 deletions(-)
1605
1606 commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
1607 Author: Jia Tan <jiat0218@gmail.com>
1608 Date:   2022-12-29 00:25:18 +0800
1609
1610     Tests: Creates test_index_hash.c
1611     
1612     Tests all API functions exported from index_hash.h. Does not have a
1613     dedicated test for lzma_index_hash_end.
1614     
1615     [Minor edits were made by Lasse Collin.]
1616
1617  .gitignore              |   1 +
1618  CMakeLists.txt          |   2 +
1619  tests/Makefile.am       |   3 +
1620  tests/test_index_hash.c | 388 ++++++++++++++++++++++++++++++++++++++++++++++++
1621  4 files changed, 394 insertions(+)
1622
1623 commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
1624 Author: Jia Tan <jiat0218@gmail.com>
1625 Date:   2023-01-05 20:57:25 +0800
1626
1627     liblzma: Remove common.h include from common/index.h.
1628     
1629     common/index.h is needed by liblzma internally and tests. common.h will
1630     include and define many things that are not needed by the tests.
1631     
1632     Also, this prevents include order problems because both common.h and
1633     lzma.h define LZMA_API. On most platforms it results only in a warning
1634     but on Windows it would break the build as the definition in common.h
1635     must be used only for building liblzma itself.
1636
1637  src/liblzma/common/index.c                 | 1 +
1638  src/liblzma/common/index.h                 | 9 +++++++--
1639  src/liblzma/common/index_decoder.h         | 1 +
1640  src/liblzma/common/stream_buffer_encoder.c | 1 +
1641  4 files changed, 10 insertions(+), 2 deletions(-)
1642
1643 commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
1644 Author: Jia Tan <jiat0218@gmail.com>
1645 Date:   2022-08-17 20:20:16 +0800
1646
1647     liblzma: Add NULL check to lzma_index_hash_append.
1648     
1649     This is for consistency with lzma_index_append.
1650
1651  src/liblzma/common/index_hash.c | 2 +-
1652  1 file changed, 1 insertion(+), 1 deletion(-)
1653
1654 commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
1655 Author: Jia Tan <jiat0218@gmail.com>
1656 Date:   2022-08-17 17:59:51 +0800
1657
1658     liblzma: Replaced hardcoded 0x0 index indicator byte with macro
1659
1660  src/liblzma/common/index.h             | 3 +++
1661  src/liblzma/common/index_decoder.c     | 2 +-
1662  src/liblzma/common/index_encoder.c     | 2 +-
1663  src/liblzma/common/index_hash.c        | 2 +-
1664  src/liblzma/common/stream_decoder.c    | 3 ++-
1665  src/liblzma/common/stream_decoder_mt.c | 2 +-
1666  6 files changed, 9 insertions(+), 5 deletions(-)
1667
1668 commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
1669 Author: Jia Tan <jiat0218@gmail.com>
1670 Date:   2023-01-06 20:43:31 +0800
1671
1672     Style: Change #if !defined() to #ifndef in mythread.h.
1673
1674  src/common/mythread.h | 2 +-
1675  1 file changed, 1 insertion(+), 1 deletion(-)
1676
1677 commit 3f0130aa288e4ed57ace609517db9700a41223af
1678 Author: Jia Tan <jiat0218@gmail.com>
1679 Date:   2023-01-06 20:35:55 +0800
1680
1681     Build: Add missing stream_decoder_mt.c to .vcxproj files.
1682     
1683     The line in the .vcxproj files for building with was missing in 5.4.0.
1684     Thank to Hajin Jang for reporting the issue.
1685
1686  windows/vs2013/liblzma.vcxproj     | 1 +
1687  windows/vs2013/liblzma_dll.vcxproj | 1 +
1688  windows/vs2017/liblzma.vcxproj     | 1 +
1689  windows/vs2017/liblzma_dll.vcxproj | 1 +
1690  windows/vs2019/liblzma.vcxproj     | 1 +
1691  windows/vs2019/liblzma_dll.vcxproj | 1 +
1692  6 files changed, 6 insertions(+)
1693
1694 commit f204d1050a515d17851eed9049862ce5a9c729c1
1695 Author: Lasse Collin <lasse.collin@tukaani.org>
1696 Date:   2023-01-04 22:40:54 +0200
1697
1698     Update THANKS.
1699
1700  THANKS | 1 +
1701  1 file changed, 1 insertion(+)
1702
1703 commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
1704 Author: Lasse Collin <lasse.collin@tukaani.org>
1705 Date:   2023-01-04 18:40:28 +0200
1706
1707     Tests: Adjust style in test_compress.sh.
1708
1709  tests/test_compress.sh | 12 +++++++-----
1710  1 file changed, 7 insertions(+), 5 deletions(-)
1711
1712 commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
1713 Author: Jia Tan <jiat0218@gmail.com>
1714 Date:   2023-01-04 23:58:58 +0800
1715
1716     Tests: Replace non portable shell parameter expansion
1717     
1718     The shell parameter expansion using # and ## is not supported in
1719     Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
1720     portable, so we should avoid it.
1721
1722  tests/create_compress_files.c          |  2 +-
1723  tests/test_compress.sh                 | 20 +++++++++++++-------
1724  tests/test_compress_prepared_bcj_sparc |  2 +-
1725  tests/test_compress_prepared_bcj_x86   |  2 +-
1726  4 files changed, 16 insertions(+), 10 deletions(-)
1727
1728 commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
1729 Author: Jia Tan <jiat0218@gmail.com>
1730 Date:   2023-01-03 21:02:38 +0800
1731
1732     Translations: Add Korean translation of man pages.
1733     
1734     Thanks to Seong-ho Cho
1735
1736  po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1737  po4a/po4a.conf |    2 +-
1738  2 files changed, 5553 insertions(+), 1 deletion(-)
1739
1740 commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
1741 Author: Jia Tan <jiat0218@gmail.com>
1742 Date:   2023-01-03 20:47:27 +0800
1743
1744     Translations: Update the Esperanto translation.
1745
1746  po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
1747  1 file changed, 332 insertions(+), 288 deletions(-)
1748
1749 commit bfba3394aed03311fe9a746d3141b2e16d8b9325
1750 Author: Lasse Collin <lasse.collin@tukaani.org>
1751 Date:   2023-01-02 17:05:07 +0200
1752
1753     Build: Fix config.h comments.
1754
1755  configure.ac          | 2 +-
1756  m4/tuklib_progname.m4 | 2 +-
1757  2 files changed, 2 insertions(+), 2 deletions(-)
1758
1759 commit 507648ad114c2ae0cd6d181063e1ac07e8106718
1760 Author: Jia Tan <jiat0218@gmail.com>
1761 Date:   2023-01-02 22:33:48 +0800
1762
1763     Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
1764     
1765     HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
1766     HAVE_PROGRAM_INVOCATION_NAME. Previously,
1767     HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
1768     building with autotools. CMake would only set this when it was 1, and the
1769     dos/config.h did not define it. The new macro definition is consistent
1770     across build systems.
1771
1772  cmake/tuklib_progname.cmake  | 5 ++---
1773  m4/tuklib_progname.m4        | 5 ++++-
1774  src/common/tuklib_progname.c | 2 +-
1775  src/common/tuklib_progname.h | 2 +-
1776  4 files changed, 8 insertions(+), 6 deletions(-)
1777
1778 commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
1779 Author: Lasse Collin <lasse.collin@tukaani.org>
1780 Date:   2022-12-30 20:10:08 +0200
1781
1782     Tests: test_check: Test corner cases of CLMUL CRC64.
1783
1784  tests/test_check.c | 27 +++++++++++++++++++++++++++
1785  1 file changed, 27 insertions(+)
1786
1787 commit 8791826f31733fda0a13b411c2ed930faaeb25aa
1788 Author: Lasse Collin <lasse.collin@tukaani.org>
1789 Date:   2022-12-30 19:36:49 +0200
1790
1791     Tests: Clarify a comment in test_lzip_decoder.c.
1792
1793  tests/test_lzip_decoder.c | 8 ++++++--
1794  1 file changed, 6 insertions(+), 2 deletions(-)
1795
1796 commit c410d812ea12bfc74f6b727c1a799478c79f19ca
1797 Author: Jia Tan <jiat0218@gmail.com>
1798 Date:   2022-12-29 01:55:19 +0800
1799
1800     xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
1801     
1802     Previously, mytime.c depended on mythread.h for <time.h> to be included.
1803
1804  src/xz/mytime.c | 4 +++-
1805  1 file changed, 3 insertions(+), 1 deletion(-)
1806
1807 commit 501c6013d4a59fae5d4368e9657c4885493db809
1808 Author: Jia Tan <jiat0218@gmail.com>
1809 Date:   2022-12-29 01:15:27 +0800
1810
1811     liblzma: Includes sys/time.h conditionally in mythread
1812     
1813     Previously, <sys/time.h> was always included, even if mythread only used
1814     clock_gettime. <time.h> is still needed even if clock_gettime is not used
1815     though because struct timespec is needed for mythread_condtime.
1816
1817  src/common/mythread.h | 8 +++++++-
1818  1 file changed, 7 insertions(+), 1 deletion(-)
1819
1820 commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
1821 Author: Jia Tan <jiat0218@gmail.com>
1822 Date:   2022-12-29 01:10:53 +0800
1823
1824     Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
1825     
1826     Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
1827     be set to 0 or 1. However, this macro was needed in xz so if xz was not
1828     built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
1829     HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
1830     HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
1831     will only be set if it is 1.
1832
1833  CMakeLists.txt        | 8 +++-----
1834  configure.ac          | 5 ++++-
1835  src/common/mythread.h | 4 ++--
1836  src/xz/mytime.c       | 5 ++---
1837  4 files changed, 11 insertions(+), 11 deletions(-)
1838
1839 commit 6fc3e5467911572fa9af4021ea46396261aae796
1840 Author: Jia Tan <jiat0218@gmail.com>
1841 Date:   2022-12-28 01:14:07 +0800
1842
1843     Translations: Add Ukrainian translations of man pages.
1844     
1845     Thanks to Yuri Chornoivan
1846
1847  po4a/po4a.conf |    2 +-
1848  po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1849  2 files changed, 3677 insertions(+), 1 deletion(-)
1850
1851 commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
1852 Author: Jia Tan <jiat0218@gmail.com>
1853 Date:   2022-12-22 23:14:53 +0800
1854
1855     liblzma: Update documentation for lzma_filter_encoder.
1856
1857  src/liblzma/common/filter_encoder.c | 7 +++++--
1858  1 file changed, 5 insertions(+), 2 deletions(-)
1859
1860 commit b14b8dbba9a3b232787ae218b46430b9246383dd
1861 Author: Jia Tan <jiat0218@gmail.com>
1862 Date:   2022-12-21 21:12:03 +0800
1863
1864     Tests: Adds lzip decoder tests
1865
1866  .gitignore                |   1 +
1867  tests/Makefile.am         |   2 +
1868  tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
1869  3 files changed, 474 insertions(+)
1870
1871 commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
1872 Author: Jia Cheong Tan <jiat0218@gmail.com>
1873 Date:   2022-12-20 22:05:21 +0800
1874
1875     Doxygen: Update .gitignore for generating docs for in source build.
1876     
1877     In source builds are not recommended, but we should still ignore
1878     the generated artifacts.
1879
1880  .gitignore | 2 ++
1881  1 file changed, 2 insertions(+)
1882
1883 commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
1884 Author: Jia Tan <jiat0218@gmail.com>
1885 Date:   2022-12-20 20:46:44 +0800
1886
1887     liblzma: Fix lzma_microlzma_encoder() return value.
1888     
1889     Using return_if_error on lzma_lzma_lclppb_encode was improper because
1890     return_if_error is expecting an lzma_ret value, but
1891     lzma_lzma_lclppb_encode returns a boolean. This could result in
1892     lzma_microlzma_encoder, which would be misleading for applications.
1893
1894  src/liblzma/common/microlzma_encoder.c | 3 ++-
1895  1 file changed, 2 insertions(+), 1 deletion(-)
1896
1897 commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
1898 Author: Lasse Collin <lasse.collin@tukaani.org>
1899 Date:   2022-12-16 18:30:02 +0200
1900
1901     liblzma: Update authors list in arm64.c.
1902
1903  src/liblzma/simple/arm64.c | 1 +
1904  1 file changed, 1 insertion(+)
1905
1906 commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
1907 Author: Jia Tan <jiat0218@gmail.com>
1908 Date:   2022-12-16 20:58:55 +0800
1909
1910     CMake: Update .gitignore for CMake artifacts from in source build.
1911     
1912     In source builds are not recommended, but we can make it easier
1913     by ignoring the generated artifacts from CMake.
1914
1915  .gitignore | 23 +++++++++++++++++++++++
1916  1 file changed, 23 insertions(+)
1917
1918 commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
1919 Author: Lasse Collin <lasse.collin@tukaani.org>
1920 Date:   2022-12-13 20:37:17 +0200
1921
1922     Bump version to 5.4.0 and soname to 5.4.0.
1923
1924  src/liblzma/Makefile.am         | 2 +-
1925  src/liblzma/api/lzma/version.h  | 6 +++---
1926  src/liblzma/liblzma_generic.map | 2 +-
1927  src/liblzma/liblzma_linux.map   | 2 +-
1928  4 files changed, 6 insertions(+), 6 deletions(-)
1929
1930 commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
1931 Author: Lasse Collin <lasse.collin@tukaani.org>
1932 Date:   2022-12-13 20:29:39 +0200
1933
1934     Update INSTALL: CMake on Windows isn't experimental anymore.
1935     
1936     Using CMake to build liblzma should work on a few other OSes
1937     but building the command line tools is still subtly broken.
1938     
1939     It is known that shared library versioning may differ between
1940     CMake and Libtool builds on some OSes, most notably Darwin.
1941
1942  INSTALL | 10 ++++------
1943  1 file changed, 4 insertions(+), 6 deletions(-)
1944
1945 commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
1946 Author: Lasse Collin <lasse.collin@tukaani.org>
1947 Date:   2022-12-13 19:47:53 +0200
1948
1949     Add NEWS for 5.4.0.
1950
1951  NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1952  1 file changed, 202 insertions(+)
1953
1954 commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
1955 Author: Lasse Collin <lasse.collin@tukaani.org>
1956 Date:   2022-12-13 17:41:20 +0200
1957
1958     Fix a typo in NEWS.
1959
1960  NEWS | 2 +-
1961  1 file changed, 1 insertion(+), 1 deletion(-)
1962
1963 commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
1964 Author: Lasse Collin <lasse.collin@tukaani.org>
1965 Date:   2022-12-13 17:41:03 +0200
1966
1967     Add NEWS for 5.2.10.
1968
1969  NEWS | 12 ++++++++++++
1970  1 file changed, 12 insertions(+)
1971
1972 commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
1973 Author: Lasse Collin <lasse.collin@tukaani.org>
1974 Date:   2022-12-13 12:30:45 +0200
1975
1976     Tests: Fix a typo in tests/files/README.
1977
1978  tests/files/README | 2 +-
1979  1 file changed, 1 insertion(+), 1 deletion(-)
1980
1981 commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
1982 Author: Lasse Collin <lasse.collin@tukaani.org>
1983 Date:   2022-12-13 12:30:09 +0200
1984
1985     Tests: Add two ARM64 test files.
1986
1987  tests/files/README                  |   7 +++++++
1988  tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes
1989  tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes
1990  tests/test_files.sh                 |   5 +++++
1991  4 files changed, 12 insertions(+)
1992
1993 commit f5e419550619c548c7c35d7e367cf00580a56521
1994 Author: Lasse Collin <lasse.collin@tukaani.org>
1995 Date:   2022-12-12 22:44:21 +0200
1996
1997     Translations: Update the Catalan translation.
1998
1999  po/ca.po | 657 +++++++++++++++++++++++++++++----------------------------------
2000  1 file changed, 306 insertions(+), 351 deletions(-)
2001
2002 commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
2003 Author: Lasse Collin <lasse.collin@tukaani.org>
2004 Date:   2022-12-12 19:18:12 +0200
2005
2006     Update THANKS.
2007
2008  THANKS | 1 +
2009  1 file changed, 1 insertion(+)
2010
2011 commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
2012 Author: Lasse Collin <lasse.collin@tukaani.org>
2013 Date:   2022-12-12 19:07:58 +0200
2014
2015     Update AUTHORS.
2016
2017  AUTHORS | 12 ++++++++++++
2018  1 file changed, 12 insertions(+)
2019
2020 commit f2d98e691099d82054d5f3071ef6f5e809932e44
2021 Author: Lasse Collin <lasse.collin@tukaani.org>
2022 Date:   2022-12-12 15:31:14 +0200
2023
2024     Docs: Omit multi-threaded decompress from TODO.
2025     
2026     The TODO file outdated still.
2027
2028  TODO | 2 --
2029  1 file changed, 2 deletions(-)
2030
2031 commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
2032 Author: Lasse Collin <lasse.collin@tukaani.org>
2033 Date:   2022-12-11 21:16:09 +0200
2034
2035     Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
2036
2037  doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
2038  1 file changed, 22 insertions(+), 7 deletions(-)
2039
2040 commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
2041 Author: Lasse Collin <lasse.collin@tukaani.org>
2042 Date:   2022-12-11 21:13:57 +0200
2043
2044     xz: Rename --experimental-arm64 to --arm64.
2045
2046  src/xz/args.c | 2 +-
2047  1 file changed, 1 insertion(+), 1 deletion(-)
2048
2049 commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
2050 Author: Lasse Collin <lasse.collin@tukaani.org>
2051 Date:   2022-12-11 21:13:06 +0200
2052
2053     liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
2054
2055  src/liblzma/api/lzma/bcj.h | 6 +-----
2056  1 file changed, 1 insertion(+), 5 deletions(-)
2057
2058 commit 01b3549e523edac899ec4925b282ceddd20da116
2059 Author: Lasse Collin <lasse.collin@tukaani.org>
2060 Date:   2022-12-08 19:24:22 +0200
2061
2062     xz: Make args_info.files_name a const pointer.
2063
2064  src/xz/args.c | 2 +-
2065  src/xz/args.h | 2 +-
2066  2 files changed, 2 insertions(+), 2 deletions(-)
2067
2068 commit bc665b84ea6bf7946394a08122177efe41b26a5f
2069 Author: Lasse Collin <lasse.collin@tukaani.org>
2070 Date:   2022-12-08 19:18:16 +0200
2071
2072     xz: Don't modify argv[].
2073     
2074     The code that parses --memlimit options and --block-list modified
2075     the argv[] when parsing the option string from optarg. This was
2076     visible in "ps auxf" and such and could be confusing. I didn't
2077     understand it back in the day when I wrote that code. Now a copy
2078     is allocated when modifiable strings are needed.
2079
2080  src/xz/args.c | 23 +++++++++++++++++++----
2081  1 file changed, 19 insertions(+), 4 deletions(-)
2082
2083 commit a13064e1c290de7933db72b6dffbd65cfce59c9f
2084 Author: Lasse Collin <lasse.collin@tukaani.org>
2085 Date:   2022-12-08 18:18:57 +0200
2086
2087     Translations: Update the German man page translations.
2088
2089  po4a/de.po | 4570 ++++++++++++++++++------------------------------------------
2090  1 file changed, 1374 insertions(+), 3196 deletions(-)
2091
2092 commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
2093 Author: Jia Tan <jiat0218@gmail.com>
2094 Date:   2022-12-06 23:05:56 +0800
2095
2096     Translations: Update the German translation.
2097
2098  po/de.po | 586 ++++++++++++++++++++++++++++++++++-----------------------------
2099  1 file changed, 315 insertions(+), 271 deletions(-)
2100
2101 commit 5c304b57c24ef40ff57f864301065f0244c05bde
2102 Author: Jia Tan <jiat0218@gmail.com>
2103 Date:   2022-12-06 23:04:25 +0800
2104
2105     Translations: Update the Turkish translation.
2106
2107  po/tr.po | 221 +++++++++++++++++++++++++++++++--------------------------------
2108  1 file changed, 108 insertions(+), 113 deletions(-)
2109
2110 commit 6d86781fdb937970486500447ebb49b98244235b
2111 Author: Jia Tan <jiat0218@gmail.com>
2112 Date:   2022-12-06 23:02:11 +0800
2113
2114     Translations: Update the Croatian translation.
2115
2116  po/hr.po | 228 +++++++++++++++++++++++++++++++--------------------------------
2117  1 file changed, 113 insertions(+), 115 deletions(-)
2118
2119 commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
2120 Author: Jia Tan <jiat0218@gmail.com>
2121 Date:   2022-12-06 22:56:30 +0800
2122
2123     Translations: Add Romanian translation of man pages.
2124     
2125     Thanks to Remus-Gabriel Chelu.
2126
2127  po4a/po4a.conf |    2 +-
2128  po4a/ro.po     | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2129  2 files changed, 3693 insertions(+), 1 deletion(-)
2130
2131 commit c6977e7400088177556e8771bcb839eb7d90caa3
2132 Author: Jia Tan <jiat0218@gmail.com>
2133 Date:   2022-12-06 22:52:13 +0800
2134
2135     Translations: Update the Romanian translation.
2136
2137  po/ro.po | 294 +++++++++++++++++++++++++++++++--------------------------------
2138  1 file changed, 147 insertions(+), 147 deletions(-)
2139
2140 commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
2141 Author: Lasse Collin <lasse.collin@tukaani.org>
2142 Date:   2022-12-08 17:30:09 +0200
2143
2144     liblzma: Check for unexpected NULL pointers in block_header_decode().
2145     
2146     The API docs gave an impression that such checks are done
2147     but they actually weren't done. In practice it made little
2148     difference since the calling code has a bug if these are NULL.
2149     
2150     Thanks to Jia Tan for the original patch that checked for
2151     block->filters == NULL.
2152
2153  src/liblzma/common/block_header_decoder.c | 4 ++++
2154  1 file changed, 4 insertions(+)
2155
2156 commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
2157 Author: Lasse Collin <lasse.collin@tukaani.org>
2158 Date:   2022-12-01 20:59:32 +0200
2159
2160     Bump version number for 5.3.5beta.
2161     
2162     This also sorts the symbol names alphabetically in liblzma_*.map.
2163
2164  src/liblzma/api/lzma/version.h  |  4 ++--
2165  src/liblzma/liblzma_generic.map | 10 +++++-----
2166  src/liblzma/liblzma_linux.map   | 10 +++++-----
2167  3 files changed, 12 insertions(+), 12 deletions(-)
2168
2169 commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
2170 Author: Lasse Collin <lasse.collin@tukaani.org>
2171 Date:   2022-12-01 20:57:26 +0200
2172
2173     Add NEWS for 5.3.5beta.
2174
2175  NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
2176  1 file changed, 43 insertions(+)
2177
2178 commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
2179 Author: Lasse Collin <lasse.collin@tukaani.org>
2180 Date:   2022-12-01 20:57:09 +0200
2181
2182     Update THANKS.
2183
2184  THANKS | 3 +++
2185  1 file changed, 3 insertions(+)
2186
2187 commit 62b270988ec67314d69976df484d2974c6eacfda
2188 Author: Lasse Collin <lasse.collin@tukaani.org>
2189 Date:   2022-12-01 20:04:17 +0200
2190
2191     liblzma: Use __has_attribute(__symver__) to fix Clang detection.
2192     
2193     If someone sets up Clang to define __GNUC__ to 10 or greater
2194     then symvers broke. __has_attribute is supported by such GCC
2195     and Clang versions that don't support __symver__ so this should
2196     be much better and simpler way to detect if __symver__ is
2197     actually supported.
2198     
2199     Thanks to Tomasz Gajc for the bug report.
2200
2201  src/liblzma/common/common.h | 15 ++++++++++++++-
2202  1 file changed, 14 insertions(+), 1 deletion(-)
2203
2204 commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
2205 Author: Lasse Collin <lasse.collin@tukaani.org>
2206 Date:   2022-12-01 18:51:52 +0200
2207
2208     liblzma: Omit zero-skipping from ARM64 filter.
2209     
2210     It has some complicated downsides and its usefulness is more limited
2211     than I originally thought. So this change is bad for certain very
2212     specific situations but a generic solution that works for other
2213     filters (and is otherwise better too) is planned anyway. And this
2214     way 7-Zip can use the same compatible filter for the .7z format.
2215     
2216     This is still marked as experimental with a new temporary Filter ID.
2217
2218  src/liblzma/api/lzma/bcj.h |  2 +-
2219  src/liblzma/simple/arm64.c | 81 +++++++++++++---------------------------------
2220  2 files changed, 24 insertions(+), 59 deletions(-)
2221
2222 commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
2223 Author: Lasse Collin <lasse.collin@tukaani.org>
2224 Date:   2022-12-01 18:13:27 +0200
2225
2226     xz: Omit the special notes about ARM64 filter on the man page.
2227
2228  src/xz/xz.1 | 5 ++---
2229  1 file changed, 2 insertions(+), 3 deletions(-)
2230
2231 commit 0c3627b51862eb0dcdd4fc283d046250571991c6
2232 Author: Lasse Collin <lasse.collin@tukaani.org>
2233 Date:   2022-12-01 18:12:03 +0200
2234
2235     liblzma: Don't be over-specific in lzma_str_to_filters API doc.
2236
2237  src/liblzma/api/lzma/filter.h | 3 +--
2238  1 file changed, 1 insertion(+), 2 deletions(-)
2239
2240 commit 94adf057f27b1970f493dc99cd166407d7255639
2241 Author: Lasse Collin <lasse.collin@tukaani.org>
2242 Date:   2022-12-01 17:54:23 +0200
2243
2244     liblzma: Silence unused variable warning when BCJ filters are disabled.
2245     
2246     Thanks to Jia Tan for the original patch.
2247
2248  src/liblzma/common/string_conversion.c | 15 +++++++++++++++
2249  1 file changed, 15 insertions(+)
2250
2251 commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
2252 Author: Lasse Collin <lasse.collin@tukaani.org>
2253 Date:   2022-12-01 17:38:03 +0200
2254
2255     Translations: Update the Chinese (simplified) translation.
2256
2257  po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++--------------------------
2258  1 file changed, 348 insertions(+), 260 deletions(-)
2259
2260 commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
2261 Author: Lasse Collin <lasse.collin@tukaani.org>
2262 Date:   2022-11-30 18:55:03 +0200
2263
2264     Add NEWS for 5.2.9.
2265
2266  NEWS | 34 ++++++++++++++++++++++++++++++++++
2267  1 file changed, 34 insertions(+)
2268
2269 commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
2270 Author: Jia Tan <jiat0218@gmail.com>
2271 Date:   2022-11-30 23:33:08 +0800
2272
2273     xz: Remove message_filters_to_str function prototype from message.h.
2274     
2275     This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b.
2276
2277  src/xz/message.h | 16 ----------------
2278  1 file changed, 16 deletions(-)
2279
2280 commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
2281 Author: Lasse Collin <lasse.collin@tukaani.org>
2282 Date:   2022-11-30 18:08:34 +0200
2283
2284     Change the bug report address.
2285     
2286     It forwards to me and Jia Tan.
2287     
2288     Also update the IRC reference in README as #tukaani was moved
2289     to Libera Chat long ago.
2290
2291  CMakeLists.txt             |  2 +-
2292  README                     | 11 +++++------
2293  configure.ac               |  2 +-
2294  dos/config.h               |  2 +-
2295  windows/README-Windows.txt |  2 +-
2296  5 files changed, 9 insertions(+), 10 deletions(-)
2297
2298 commit c21983c76031e01da01ad3c6cc716fe4b8a75070
2299 Author: Lasse Collin <lasse.collin@tukaani.org>
2300 Date:   2022-11-30 17:50:17 +0200
2301
2302     Build: Add string_conversion.c to CMake, DOS, and VS files.
2303
2304  CMakeLists.txt                     | 1 +
2305  dos/Makefile                       | 1 +
2306  windows/vs2013/liblzma.vcxproj     | 1 +
2307  windows/vs2013/liblzma_dll.vcxproj | 1 +
2308  windows/vs2017/liblzma.vcxproj     | 1 +
2309  windows/vs2017/liblzma_dll.vcxproj | 1 +
2310  windows/vs2019/liblzma.vcxproj     | 1 +
2311  windows/vs2019/liblzma_dll.vcxproj | 1 +
2312  8 files changed, 8 insertions(+)
2313
2314 commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
2315 Author: Lasse Collin <lasse.collin@tukaani.org>
2316 Date:   2022-11-30 17:38:32 +0200
2317
2318     Update to HTTPS URLs in AUTHORS.
2319
2320  AUTHORS | 6 +++---
2321  1 file changed, 3 insertions(+), 3 deletions(-)
2322
2323 commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
2324 Author: Jia Tan <jiat0218@gmail.com>
2325 Date:   2022-11-30 00:52:06 +0800
2326
2327     liblzma: Improve documentation for string to filter functions.
2328
2329  src/liblzma/api/lzma/filter.h | 17 +++++++++--------
2330  1 file changed, 9 insertions(+), 8 deletions(-)
2331
2332 commit a6e21fcede3b196160a52dd294d965c508a4bb33
2333 Author: Lasse Collin <lasse.collin@tukaani.org>
2334 Date:   2022-11-29 22:27:42 +0200
2335
2336     liblzma: Two fixes to lzma_str_list_filters() API docs.
2337     
2338     Thanks to Jia Tan.
2339
2340  src/liblzma/api/lzma/filter.h | 6 +++---
2341  1 file changed, 3 insertions(+), 3 deletions(-)
2342
2343 commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
2344 Author: Lasse Collin <lasse.collin@tukaani.org>
2345 Date:   2022-11-28 21:57:47 +0200
2346
2347     xz: Use lzma_str_from_filters().
2348     
2349     Two uses: Displaying encoder filter chain when compressing with -vv,
2350     and displaying the decoder filter chain in --list -vv.
2351
2352  src/xz/list.c    |  28 ++++++---
2353  src/xz/message.c | 175 +++----------------------------------------------------
2354  2 files changed, 28 insertions(+), 175 deletions(-)
2355
2356 commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
2357 Author: Lasse Collin <lasse.collin@tukaani.org>
2358 Date:   2022-11-28 21:37:48 +0200
2359
2360     liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters.
2361     
2362     lzma_str_to_filters() uses static error messages which makes
2363     them not very precise. It tells the position in the string
2364     where an error occurred though which helps quite a bit if
2365     applications take advantage of it. Dynamic error messages can
2366     be added later with a new flag if it seems important enough.
2367
2368  src/liblzma/api/lzma/filter.h          |  258 +++++++
2369  src/liblzma/common/Makefile.inc        |    1 +
2370  src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++
2371  src/liblzma/liblzma_generic.map        |    3 +
2372  src/liblzma/liblzma_linux.map          |    3 +
2373  5 files changed, 1567 insertions(+)
2374
2375 commit 072ebf7b1335421193ffa9d4a70d5533786b8995
2376 Author: Lasse Collin <lasse.collin@tukaani.org>
2377 Date:   2022-11-28 21:02:19 +0200
2378
2379     liblzma: Make lzma_validate_chain() available outside filter_common.c.
2380
2381  src/liblzma/common/filter_common.c | 8 ++++----
2382  src/liblzma/common/filter_common.h | 3 +++
2383  2 files changed, 7 insertions(+), 4 deletions(-)
2384
2385 commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
2386 Author: Lasse Collin <lasse.collin@tukaani.org>
2387 Date:   2022-11-28 10:51:03 +0200
2388
2389     liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused.
2390
2391  src/liblzma/lz/lz_decoder.c | 14 --------------
2392  src/liblzma/lz/lz_decoder.h |  3 ---
2393  2 files changed, 17 deletions(-)
2394
2395 commit cee83206465b95729ab649aa2f57fdbde8dcaf89
2396 Author: Lasse Collin <lasse.collin@tukaani.org>
2397 Date:   2022-11-28 10:48:53 +0200
2398
2399     liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder().
2400     
2401     Here too this avoids the slightly ugly method to set
2402     the uncompressed size.
2403     
2404     Also moved the setting of dict_size to the struct initializer.
2405
2406  src/liblzma/common/microlzma_decoder.c | 15 ++++++++-------
2407  1 file changed, 8 insertions(+), 7 deletions(-)
2408
2409 commit e310e8b6a490dfb468f4ed68feff246d776b323c
2410 Author: Lasse Collin <lasse.collin@tukaani.org>
2411 Date:   2022-11-28 10:28:20 +0200
2412
2413     liblzma: Use LZMA1EXT feature in lzma_alone_decoder().
2414     
2415     This avoids the need to use the slightly ugly method to
2416     set the uncompressed size.
2417
2418  src/liblzma/common/alone_decoder.c | 18 +++++++++++++-----
2419  1 file changed, 13 insertions(+), 5 deletions(-)
2420
2421 commit 33b8a24b6646a9dbfd8358405aec466b13078559
2422 Author: Lasse Collin <lasse.collin@tukaani.org>
2423 Date:   2022-11-27 23:16:21 +0200
2424
2425     liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker.
2426     
2427     Some file formats need support for LZMA1 streams that don't use
2428     the end of payload marker (EOPM) alias end of stream (EOS) marker.
2429     So far liblzma API has supported decompressing such streams via
2430     lzma_alone_decoder() when .lzma header specifies a known
2431     uncompressed size. Encoding support hasn't been available in the API.
2432     
2433     Instead of adding a new LZMA1-only API for this purpose, this commit
2434     adds a new filter ID for use with raw encoder and decoder. The main
2435     benefit of this approach is that then also filter chains are possible,
2436     for example, if someone wants to implement support for .7z files that
2437     use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported
2438     in liblzma).
2439
2440  src/liblzma/api/lzma/lzma12.h           | 123 ++++++++++++++++++++++++++++++--
2441  src/liblzma/common/filter_common.c      |   7 ++
2442  src/liblzma/common/filter_decoder.c     |   6 ++
2443  src/liblzma/common/filter_encoder.c     |   9 +++
2444  src/liblzma/lzma/lzma2_encoder.c        |   2 +-
2445  src/liblzma/lzma/lzma_decoder.c         |  26 ++++++-
2446  src/liblzma/lzma/lzma_encoder.c         |  40 +++++++++--
2447  src/liblzma/lzma/lzma_encoder.h         |   3 +-
2448  src/liblzma/lzma/lzma_encoder_private.h |   3 +
2449  9 files changed, 204 insertions(+), 15 deletions(-)
2450
2451 commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
2452 Author: Lasse Collin <lasse.collin@tukaani.org>
2453 Date:   2022-11-27 18:43:07 +0200
2454
2455     liblzma: Avoid unneeded use of void pointer in LZMA decoder.
2456
2457  src/liblzma/lzma/lzma_decoder.c | 3 +--
2458  src/liblzma/lzma/lzma_decoder.h | 2 +-
2459  2 files changed, 2 insertions(+), 3 deletions(-)
2460
2461 commit 218394958c7683f892275bb40eae880620feebcc
2462 Author: Lasse Collin <lasse.collin@tukaani.org>
2463 Date:   2022-11-27 18:20:33 +0200
2464
2465     liblzma: Pass the Filter ID to LZ encoder and decoder.
2466     
2467     This allows using two Filter IDs with the same
2468     initialization function and data structures.
2469
2470  src/liblzma/common/alone_decoder.c     | 1 +
2471  src/liblzma/common/alone_encoder.c     | 1 +
2472  src/liblzma/common/common.h            | 7 +++++--
2473  src/liblzma/common/lzip_decoder.c      | 1 +
2474  src/liblzma/common/microlzma_decoder.c | 1 +
2475  src/liblzma/common/microlzma_encoder.c | 1 +
2476  src/liblzma/lz/lz_decoder.c            | 5 +++--
2477  src/liblzma/lz/lz_decoder.h            | 3 ++-
2478  src/liblzma/lz/lz_encoder.c            | 5 +++--
2479  src/liblzma/lz/lz_encoder.h            | 3 ++-
2480  src/liblzma/lzma/lzma2_decoder.c       | 3 ++-
2481  src/liblzma/lzma/lzma2_encoder.c       | 3 ++-
2482  src/liblzma/lzma/lzma_decoder.c        | 2 +-
2483  src/liblzma/lzma/lzma_encoder.c        | 2 +-
2484  14 files changed, 26 insertions(+), 12 deletions(-)
2485
2486 commit 1663c7676b76f4c514031797f3db1896e8100f7f
2487 Author: Lasse Collin <lasse.collin@tukaani.org>
2488 Date:   2022-11-27 01:03:16 +0200
2489
2490     liblzma: Remove two FIXME comments.
2491
2492  src/liblzma/common/filter_encoder.c | 4 ++--
2493  1 file changed, 2 insertions(+), 2 deletions(-)
2494
2495 commit 11fe708db783ac36ebeeb85da164e29e8c300910
2496 Author: Lasse Collin <lasse.collin@tukaani.org>
2497 Date:   2022-11-26 22:25:30 +0200
2498
2499     xz: Use lzma_filters_free().
2500
2501  src/xz/list.c | 8 ++------
2502  1 file changed, 2 insertions(+), 6 deletions(-)
2503
2504 commit e782af9110d8499c7ac2929bc871540eefea5ea1
2505 Author: Lasse Collin <lasse.collin@tukaani.org>
2506 Date:   2022-11-26 22:21:13 +0200
2507
2508     liblzma: Use lzma_filters_free() in more places.
2509
2510  src/liblzma/common/block_header_decoder.c | 20 ++------------------
2511  src/liblzma/common/stream_decoder.c       |  4 +---
2512  src/liblzma/common/stream_decoder_mt.c    | 22 +++++-----------------
2513  3 files changed, 8 insertions(+), 38 deletions(-)
2514
2515 commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
2516 Author: Lasse Collin <lasse.collin@tukaani.org>
2517 Date:   2022-11-25 18:04:37 +0200
2518
2519     liblzma: Omit simple coder init functions if they are disabled.
2520
2521  src/liblzma/simple/arm.c      | 4 ++++
2522  src/liblzma/simple/armthumb.c | 4 ++++
2523  src/liblzma/simple/ia64.c     | 4 ++++
2524  src/liblzma/simple/powerpc.c  | 4 ++++
2525  src/liblzma/simple/sparc.c    | 4 ++++
2526  src/liblzma/simple/x86.c      | 4 ++++
2527  6 files changed, 24 insertions(+)
2528
2529 commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
2530 Author: Lasse Collin <lasse.collin@tukaani.org>
2531 Date:   2022-11-24 23:24:59 +0200
2532
2533     xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
2534     
2535     Now that liblzma accepts these, we avoid the extra check and
2536     there's one message less for translators too.
2537
2538  src/xz/options.c | 5 -----
2539  1 file changed, 5 deletions(-)
2540
2541 commit 3be88ae071371caa279b44e13f4836fb178fe4ae
2542 Author: Lasse Collin <lasse.collin@tukaani.org>
2543 Date:   2022-11-24 23:23:55 +0200
2544
2545     liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
2546     
2547     That is, if the specified nice_len is smaller than the minimum
2548     of the match finder, silently use the match finder's minimum value
2549     instead of reporting an error. The old behavior is annoying to users
2550     and it complicates xz options handling too.
2551
2552  src/liblzma/lz/lz_encoder.c     | 14 +++++++++-----
2553  src/liblzma/lz/lz_encoder.h     |  9 +++++++++
2554  src/liblzma/lzma/lzma_encoder.c | 11 ++++++++---
2555  3 files changed, 26 insertions(+), 8 deletions(-)
2556
2557 commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
2558 Author: Lasse Collin <lasse.collin@tukaani.org>
2559 Date:   2022-11-24 16:25:10 +0200
2560
2561     liblzma: Add lzma_filters_update() support to the multi-threaded encoder.
2562     
2563     A tiny downside of this is that now a 1-4 tiny allocations are made
2564     for every Block because each worker thread needs its own copy of
2565     the filter chain.
2566
2567  src/liblzma/api/lzma/filter.h          | 36 +++++++------
2568  src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++---
2569  2 files changed, 109 insertions(+), 23 deletions(-)
2570
2571 commit 17ac51e689794eb41cab3e80946fec689caea2d2
2572 Author: Lasse Collin <lasse.collin@tukaani.org>
2573 Date:   2022-11-24 14:53:22 +0200
2574
2575     Update THANKS.
2576
2577  THANKS | 1 +
2578  1 file changed, 1 insertion(+)
2579
2580 commit 06824396b2b6c84f3a235cb7c19c2a9701167797
2581 Author: Lasse Collin <lasse.collin@tukaani.org>
2582 Date:   2022-11-24 14:52:44 +0200
2583
2584     Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
2585     
2586     It not only makes no sense to put symbol versions into a static library
2587     but it can also cause breakage.
2588     
2589     By default Libtool #defines PIC if building a shared library and
2590     doesn't define it for static libraries. This is documented in the
2591     Libtool manual. It can be overriden using --with-pic or --without-pic.
2592     configure.ac detects if --with-pic or --without-pic is used and then
2593     gives an error if neither --disable-shared nor --disable-static was
2594     used at the same time. Thus, in normal situations it works to build
2595     both shared and static library at the same time on GNU/Linux,
2596     only --with-pic or --without-pic requires that only one type of
2597     library is built.
2598     
2599     Thanks to John Paul Adrian Glaubitz from Debian for reporting
2600     the problem that occurred on ia64:
2601     https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
2602
2603  CMakeLists.txt              |   5 +-
2604  configure.ac                | 143 +++++++++++++++++++++++++++++---------------
2605  src/liblzma/common/common.h |  12 ++++
2606  3 files changed, 111 insertions(+), 49 deletions(-)
2607
2608 commit e1acf7107291f8b3d6d609a7133331ff36d35d14
2609 Author: Lasse Collin <lasse.collin@tukaani.org>
2610 Date:   2022-11-24 01:32:16 +0200
2611
2612     liblzma: Refactor to use lzma_filters_free().
2613     
2614     lzma_filters_free() sets the options to NULL and ids to
2615     LZMA_VLI_UNKNOWN so there is no need to do it by caller;
2616     the filter arrays will always be left in a safe state.
2617     
2618     Also use memcpy() instead of a loop to copy a filter chain
2619     when it is known to be safe to copy LZMA_FILTERS_MAX + 1
2620     (even if the elements past the terminator might be uninitialized).
2621
2622  src/liblzma/common/stream_encoder.c    | 16 ++++------------
2623  src/liblzma/common/stream_encoder_mt.c | 11 ++---------
2624  2 files changed, 6 insertions(+), 21 deletions(-)
2625
2626 commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
2627 Author: Lasse Collin <lasse.collin@tukaani.org>
2628 Date:   2022-11-24 01:26:37 +0200
2629
2630     liblzma: Fix another invalid free() after memory allocation failure.
2631     
2632     This time it can happen when lzma_stream_encoder_mt() is used
2633     to reinitialize an existing multi-threaded Stream encoder
2634     and one of 1-4 tiny allocations in lzma_filters_copy() fail.
2635     
2636     It's very similar to the previous bug
2637     10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
2638     an array of lzma_filter structures whose old options are freed
2639     but the replacement never arrives due to a memory allocation
2640     failure in lzma_filters_copy().
2641
2642  src/liblzma/common/stream_encoder_mt.c | 4 ++++
2643  1 file changed, 4 insertions(+)
2644
2645 commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
2646 Author: Jia Tan <jiat0218@gmail.com>
2647 Date:   2022-05-05 20:53:42 +0800
2648
2649     liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
2650     
2651     The documentation mentions that lzma_block_encoder() supports
2652     LZMA_SYNC_FLUSH but it was never added to supported_actions[]
2653     in the internal structure. Because of this, LZMA_SYNC_FLUSH could
2654     not be used with the Block encoder unless it was the next coder
2655     after something like stream_encoder() or stream_encoder_mt().
2656
2657  src/liblzma/common/block_encoder.c | 1 +
2658  1 file changed, 1 insertion(+)
2659
2660 commit d0901645170b638c517f5c50866b6ef48f491c65
2661 Author: Lasse Collin <lasse.collin@tukaani.org>
2662 Date:   2022-11-24 01:02:50 +0200
2663
2664     liblzma: Add new API function lzma_filters_free().
2665     
2666     This is small but convenient and should have been added
2667     a long time ago.
2668
2669  src/liblzma/api/lzma/filter.h      | 21 +++++++++++++++++++++
2670  src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++
2671  src/liblzma/liblzma_generic.map    |  1 +
2672  src/liblzma/liblzma_linux.map      |  1 +
2673  4 files changed, 49 insertions(+)
2674
2675 commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
2676 Author: Lasse Collin <lasse.collin@tukaani.org>
2677 Date:   2022-11-24 00:02:31 +0200
2678
2679     CMake: Don't use symbol versioning with static library.
2680
2681  CMakeLists.txt | 10 +++++++---
2682  1 file changed, 7 insertions(+), 3 deletions(-)
2683
2684 commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
2685 Author: Lasse Collin <lasse.collin@tukaani.org>
2686 Date:   2022-11-23 21:55:22 +0200
2687
2688     liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().
2689
2690  src/liblzma/api/lzma/filter.h | 3 ++-
2691  1 file changed, 2 insertions(+), 1 deletion(-)
2692
2693 commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
2694 Author: Lasse Collin <lasse.collin@tukaani.org>
2695 Date:   2022-11-23 21:26:21 +0200
2696
2697     liblzma: Fix invalid free() after memory allocation failure.
2698     
2699     The bug was in the single-threaded .xz Stream encoder
2700     in the code that is used for both re-initialization and for
2701     lzma_filters_update(). To trigger it, an application had
2702     to either re-initialize an existing encoder instance with
2703     lzma_stream_encoder() or use lzma_filters_update(), and
2704     then one of the 1-4 tiny allocations in lzma_filters_copy()
2705     (called from stream_encoder_update()) must fail. An error
2706     was correctly reported but the encoder state was corrupted.
2707     
2708     This is related to the recent fix in
2709     f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
2710     it wasn't enough to fix the main problem in stream_encoder.c.
2711
2712  src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
2713  1 file changed, 31 insertions(+), 8 deletions(-)
2714
2715 commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
2716 Author: Lasse Collin <lasse.collin@tukaani.org>
2717 Date:   2022-11-22 16:37:15 +0200
2718
2719     liblzma: Fix language in a comment.
2720
2721  src/liblzma/common/stream_encoder.c | 2 +-
2722  1 file changed, 1 insertion(+), 1 deletion(-)
2723
2724 commit c392bf8ccba857baaf50399c4b460119befacd54
2725 Author: Lasse Collin <lasse.collin@tukaani.org>
2726 Date:   2022-11-22 11:20:17 +0200
2727
2728     liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
2729     
2730     The encoder doesn't support dictionary sizes larger than 1536 MiB.
2731     This is validated, for example, when calculating the memory usage
2732     via lzma_raw_encoder_memusage(). It is also enforced by the LZ
2733     part of the encoder initialization. However, LZMA encoder with
2734     LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
2735     such validation and that results in an infinite loop if dict_size
2736     was 2 << 30 or greater.
2737
2738  src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
2739  1 file changed, 15 insertions(+), 4 deletions(-)
2740
2741 commit f50534c973a591ccf65485adfc827a8a7126ca6c
2742 Author: Lasse Collin <lasse.collin@tukaani.org>
2743 Date:   2022-11-21 13:02:33 +0200
2744
2745     liblzma: Fix two Doxygen commands in the API headers.
2746     
2747     These were caught by clang -Wdocumentation.
2748
2749  src/liblzma/api/lzma/hardware.h   | 2 +-
2750  src/liblzma/api/lzma/index_hash.h | 2 +-
2751  2 files changed, 2 insertions(+), 2 deletions(-)
2752
2753 commit 649d4872ed2f55196114a061d45b416fc4353569
2754 Author: Lasse Collin <lasse.collin@tukaani.org>
2755 Date:   2022-11-19 19:09:55 +0200
2756
2757     xz: Refactor duplicate code from hardware_memlimit_mtenc_get().
2758
2759  src/xz/hardware.c | 2 +-
2760  1 file changed, 1 insertion(+), 1 deletion(-)
2761
2762 commit d327743bb547a53364e5951a16e5f1663fe4b9ff
2763 Author: Lasse Collin <lasse.collin@tukaani.org>
2764 Date:   2022-11-19 19:06:13 +0200
2765
2766     xz: Add support --threads=+N so that -T+1 gives threaded mode.
2767
2768  src/xz/args.c     | 18 +++++++++++++++---
2769  src/xz/hardware.c | 17 +++++++++++++++--
2770  src/xz/hardware.h |  1 +
2771  src/xz/xz.1       | 21 ++++++++++++++++++++-
2772  4 files changed, 51 insertions(+), 6 deletions(-)
2773
2774 commit a11a2b8b5e830ba682c1d81aaa7078842b296995
2775 Author: Jia Tan <jiat0218@gmail.com>
2776 Date:   2022-11-19 23:18:04 +0800
2777
2778     CMake: Adds test_memlimit to CMake tests
2779
2780  CMakeLists.txt | 1 +
2781  1 file changed, 1 insertion(+)
2782
2783 commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
2784 Author: Lasse Collin <lasse.collin@tukaani.org>
2785 Date:   2022-11-15 19:10:21 +0200
2786
2787     Translations: Update the Korean translation.
2788
2789  po/ko.po | 652 ++++++++++++++++++++++++++++++++++++---------------------------
2790  1 file changed, 371 insertions(+), 281 deletions(-)
2791
2792 commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
2793 Author: Lasse Collin <lasse.collin@tukaani.org>
2794 Date:   2022-11-15 19:09:28 +0200
2795
2796     Translations: Update the Turkish translation.
2797
2798  po/tr.po | 568 ++++++++++++++++++++++++++++++++++-----------------------------
2799  1 file changed, 310 insertions(+), 258 deletions(-)
2800
2801 commit b9a67d9a5fa207062d4aa8a01639234609315d31
2802 Author: Lasse Collin <lasse.collin@tukaani.org>
2803 Date:   2022-11-15 10:58:39 +0200
2804
2805     Bump version number for 5.3.4alpha.
2806
2807  src/liblzma/api/lzma/version.h  | 2 +-
2808  src/liblzma/liblzma_generic.map | 2 +-
2809  src/liblzma/liblzma_linux.map   | 2 +-
2810  3 files changed, 3 insertions(+), 3 deletions(-)
2811
2812 commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
2813 Author: Lasse Collin <lasse.collin@tukaani.org>
2814 Date:   2022-11-15 10:54:40 +0200
2815
2816     Add NEWS for 5.3.4alpha.
2817
2818  NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2819  1 file changed, 96 insertions(+)
2820
2821 commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
2822 Author: Lasse Collin <lasse.collin@tukaani.org>
2823 Date:   2022-11-15 10:54:08 +0200
2824
2825     Add NEWS for 5.2.8.
2826
2827  NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2828  1 file changed, 79 insertions(+)
2829
2830 commit b56bc8251d2736224af6bdaaae734ceb8926a879
2831 Author: Lasse Collin <lasse.collin@tukaani.org>
2832 Date:   2022-11-14 23:19:57 +0200
2833
2834     Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options."
2835     
2836     This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
2837     and also does equivalent change to arm64.c.
2838     
2839     Now that ARM64 filter will use lzma_options_bcj, this change
2840     is not needed anymore.
2841
2842  src/liblzma/simple/arm.c            | 2 +-
2843  src/liblzma/simple/arm64.c          | 2 +-
2844  src/liblzma/simple/armthumb.c       | 2 +-
2845  src/liblzma/simple/ia64.c           | 2 +-
2846  src/liblzma/simple/powerpc.c        | 2 +-
2847  src/liblzma/simple/simple_coder.c   | 4 ++--
2848  src/liblzma/simple/simple_private.h | 2 +-
2849  src/liblzma/simple/sparc.c          | 2 +-
2850  src/liblzma/simple/x86.c            | 3 +--
2851  9 files changed, 10 insertions(+), 11 deletions(-)
2852
2853 commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
2854 Author: Lasse Collin <lasse.collin@tukaani.org>
2855 Date:   2022-11-14 23:14:41 +0200
2856
2857     Replace the experimental ARM64 filter with a new experimental version.
2858     
2859     This is incompatible with the previous version.
2860     
2861     This has space/tab fixes in filter_*.c and bcj.h too.
2862
2863  src/liblzma/api/lzma/bcj.h          |  41 +-----
2864  src/liblzma/common/filter_common.c  |  14 +-
2865  src/liblzma/common/filter_decoder.c |  12 +-
2866  src/liblzma/common/filter_encoder.c |  17 +--
2867  src/liblzma/simple/arm64.c          | 283 ++++++++++++++----------------------
2868  src/liblzma/simple/simple_decoder.h |   4 -
2869  src/liblzma/simple/simple_encoder.h |   2 -
2870  src/xz/args.c                       |   2 +-
2871  src/xz/message.c                    |  13 +-
2872  src/xz/options.c                    |  39 -----
2873  src/xz/options.h                    |   7 -
2874  11 files changed, 147 insertions(+), 287 deletions(-)
2875
2876 commit f644473a211394447824ea00518d0a214ff3f7f2
2877 Author: Lasse Collin <lasse.collin@tukaani.org>
2878 Date:   2022-11-14 21:34:57 +0200
2879
2880     liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.
2881     
2882     It also works on E2K as it supports these intrinsics.
2883     
2884     On x86-64 runtime detection is used so the code keeps working on
2885     older processors too. A CLMUL-only build can be done by using
2886     -msse4.1 -mpclmul in CFLAGS and this will reduce the library
2887     size since the generic implementation and its 8 KiB lookup table
2888     will be omitted.
2889     
2890     On 32-bit x86 this isn't used by default for now because by default
2891     on 32-bit x86 the separate assembly file crc64_x86.S is used.
2892     If --disable-assembler is used then this new CLMUL code is used
2893     the same way as on 64-bit x86. However, a CLMUL-only build
2894     (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on
2895     32-bit x86 due to a currently-missing check for disabled
2896     assembler usage.
2897     
2898     The configure.ac check should be such that the code won't be
2899     built if something in the toolchain doesn't support it but
2900     --disable-clmul-crc option can be used to unconditionally
2901     disable this feature.
2902     
2903     CLMUL speeds up decompression of files that have compressed very
2904     well (assuming CRC64 is used as a check type). It is know that
2905     the CLMUL code is significantly slower than the generic code for
2906     tiny inputs (especially 1-8 bytes but up to 16 bytes). If that
2907     is a real-world problem then there is already a commented-out
2908     variant that uses the generic version for small inputs.
2909     
2910     Thanks to Ilya Kurdyukov for the original patch which was
2911     derived from a white paper from Intel [1] (published in 2009)
2912     and public domain code from [2] (released in 2016).
2913     
2914     [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
2915     [2] https://github.com/rawrunprotected/crc
2916
2917  CMakeLists.txt                  |  26 ++-
2918  INSTALL                         |  12 ++
2919  configure.ac                    |  59 +++++-
2920  src/liblzma/check/crc64_fast.c  | 449 +++++++++++++++++++++++++++++++++++++++-
2921  src/liblzma/check/crc64_table.c |  21 +-
2922  5 files changed, 554 insertions(+), 13 deletions(-)
2923
2924 commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
2925 Author: Lasse Collin <lasse.collin@tukaani.org>
2926 Date:   2022-11-14 20:14:34 +0200
2927
2928     Translations: Update the Swedish translation one more time.
2929
2930  po/sv.po | 6 +++---
2931  1 file changed, 3 insertions(+), 3 deletions(-)
2932
2933 commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
2934 Author: Lasse Collin <lasse.collin@tukaani.org>
2935 Date:   2022-11-14 19:34:15 +0200
2936
2937     Translations: Update the Swedish translation again.
2938
2939  po/sv.po | 16 ++++++++--------
2940  1 file changed, 8 insertions(+), 8 deletions(-)
2941
2942 commit a4bc689a823a2254f29ac9d233170add5121b307
2943 Author: Lasse Collin <lasse.collin@tukaani.org>
2944 Date:   2022-11-14 19:07:45 +0200
2945
2946     Translations: Update the Swedish translation.
2947
2948  po/sv.po | 671 ++++++++++++++++++++++++++++++++++++---------------------------
2949  1 file changed, 382 insertions(+), 289 deletions(-)
2950
2951 commit bbf2073d824ab4ba33bed4b77f467435abd333a5
2952 Author: Lasse Collin <lasse.collin@tukaani.org>
2953 Date:   2022-11-14 18:58:09 +0200
2954
2955     Translations: Update the Ukrainian translation.
2956
2957  po/uk.po | 618 ++++++++++++++++++++++++++++++++++++---------------------------
2958  1 file changed, 354 insertions(+), 264 deletions(-)
2959
2960 commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
2961 Author: Lasse Collin <lasse.collin@tukaani.org>
2962 Date:   2022-11-14 17:58:07 +0200
2963
2964     Build: Omit x86_64 from --enable-assembler.
2965     
2966     It didn't do anything. There are only 32-bit x86 assembly files
2967     and it feels likely that new files won't be added as intrinsics
2968     in C are more portable across toolchains and OSes.
2969
2970  configure.ac | 6 ++----
2971  1 file changed, 2 insertions(+), 4 deletions(-)
2972
2973 commit eb0f1450ad9f23dac03050d9c8375980240aee21
2974 Author: Lasse Collin <lasse.collin@tukaani.org>
2975 Date:   2022-11-14 16:00:52 +0200
2976
2977     liblzma: Use __attribute__((__constructor__)) if available.
2978     
2979     This uses it for CRC table initializations when using --disable-small.
2980     It avoids mythread_once() overhead. It also means that then
2981     --disable-small --disable-threads is thread-safe if this attribute
2982     is supported.
2983
2984  CMakeLists.txt                  | 15 +++++++++++++++
2985  INSTALL                         |  4 +++-
2986  configure.ac                    | 31 ++++++++++++++++++++++++++++---
2987  src/liblzma/check/crc32_small.c |  7 +++++++
2988  src/liblzma/check/crc64_small.c |  5 +++++
2989  src/liblzma/lz/lz_encoder.c     |  2 +-
2990  6 files changed, 59 insertions(+), 5 deletions(-)
2991
2992 commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
2993 Author: Lasse Collin <lasse.collin@tukaani.org>
2994 Date:   2022-11-12 21:19:52 +0200
2995
2996     Translations: Update the Romanian translation.
2997
2998  po/ro.po | 651 +++++++++++++++++++++++++++++++++++++--------------------------
2999  1 file changed, 380 insertions(+), 271 deletions(-)
3000
3001 commit db97e69e12393becc29f8febd53133d0d36989bd
3002 Author: Lasse Collin <lasse.collin@tukaani.org>
3003 Date:   2022-11-12 21:17:45 +0200
3004
3005     Translations: Update the Hungarian translation.
3006
3007  po/hu.po | 625 ++++++++++++++++++++++++++++++++++++---------------------------
3008  1 file changed, 357 insertions(+), 268 deletions(-)
3009
3010 commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
3011 Author: Lasse Collin <lasse.collin@tukaani.org>
3012 Date:   2022-11-11 17:58:57 +0200
3013
3014     Translations: Update the Finnish translation.
3015
3016  po/fi.po | 610 ++++++++++++++++++++++++++++++++++++---------------------------
3017  1 file changed, 348 insertions(+), 262 deletions(-)
3018
3019 commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
3020 Author: Lasse Collin <lasse.collin@tukaani.org>
3021 Date:   2022-11-11 17:58:18 +0200
3022
3023     Translations: Update the Croatian translation.
3024
3025  po/hr.po | 680 +++++++++++++++++++++++++++++++++++----------------------------
3026  1 file changed, 381 insertions(+), 299 deletions(-)
3027
3028 commit 26c3359eac0988d6f3986735cd1363bec1678e8e
3029 Author: Lasse Collin <lasse.collin@tukaani.org>
3030 Date:   2022-11-11 17:57:18 +0200
3031
3032     Translations: Update the Polish translation.
3033
3034  po/pl.po | 569 ++++++++++++++++++++++++++++++++++-----------------------------
3035  1 file changed, 309 insertions(+), 260 deletions(-)
3036
3037 commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
3038 Author: Lasse Collin <lasse.collin@tukaani.org>
3039 Date:   2022-11-11 17:56:44 +0200
3040
3041     Translations: Update the Spanish translation.
3042
3043  po/es.po | 598 ++++++++++++++++++++++++++++++++++++---------------------------
3044  1 file changed, 344 insertions(+), 254 deletions(-)
3045
3046 commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
3047 Author: Lasse Collin <lasse.collin@tukaani.org>
3048 Date:   2022-11-11 17:16:03 +0200
3049
3050     Update THANKS.
3051
3052  THANKS | 1 +
3053  1 file changed, 1 insertion(+)
3054
3055 commit a39961ef211e1bf030b17edeea3cff29fe263b67
3056 Author: Lasse Collin <lasse.collin@tukaani.org>
3057 Date:   2022-11-11 17:15:25 +0200
3058
3059     liblzma: Fix building with Intel ICC (the classic compiler).
3060     
3061     It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
3062     
3063     Thanks to Stephen Sachs.
3064
3065  src/liblzma/common/common.h | 2 +-
3066  1 file changed, 1 insertion(+), 1 deletion(-)
3067
3068 commit c715f683dcb1a817d565da292cddfbceda643e12
3069 Author: Lasse Collin <lasse.collin@tukaani.org>
3070 Date:   2022-11-11 14:35:58 +0200
3071
3072     liblzma: Fix incorrect #ifdef for x86 SSE2 support.
3073     
3074     __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
3075     and ICC. __SSE2_MATH__ means doing floating point math with SSE2
3076     instead of 387. Often the latter macro is defined if the first
3077     one is but it was still a bug.
3078
3079  src/liblzma/common/memcmplen.h | 3 +--
3080  1 file changed, 1 insertion(+), 2 deletions(-)
3081
3082 commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
3083 Author: Lasse Collin <lasse.collin@tukaani.org>
3084 Date:   2022-11-11 13:27:06 +0200
3085
3086     Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2).
3087
3088  NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3089  1 file changed, 74 insertions(+)
3090
3091 commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
3092 Author: Lasse Collin <lasse.collin@tukaani.org>
3093 Date:   2022-11-11 13:16:21 +0200
3094
3095     xzdiff: Add support for .lz files.
3096     
3097     The other scripts don't need changes for .lz support because
3098     in those scripts it is enough that xz supports .lz.
3099
3100  src/scripts/xzdiff.in | 10 +++++-----
3101  1 file changed, 5 insertions(+), 5 deletions(-)
3102
3103 commit d76c752a6d77052e5ad57ade555082585f7ac5d8
3104 Author: Lasse Collin <lasse.collin@tukaani.org>
3105 Date:   2022-11-11 12:23:58 +0200
3106
3107     Scripts: Ignore warnings from xz.
3108     
3109     In practice this means making the scripts work when
3110     the input files have an unsupported check type which
3111     isn't a problem in practice unless support for
3112     some check types has been disabled at build time.
3113
3114  src/scripts/xzdiff.in | 5 +++--
3115  src/scripts/xzgrep.in | 2 +-
3116  src/scripts/xzless.in | 4 ++--
3117  src/scripts/xzmore.in | 4 ++--
3118  4 files changed, 8 insertions(+), 7 deletions(-)
3119
3120 commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
3121 Author: Lasse Collin <lasse.collin@tukaani.org>
3122 Date:   2022-11-10 12:34:43 +0200
3123
3124     Translations: Rename poa4/fr_FR.po to po4a/fr.po.
3125     
3126     That's how it is preferred at the Translation Project.
3127     On my system /usr/share/man/fr_FR doesn't contain any
3128     other man pages than XZ Utils while /usr/share/man/fr
3129     has quite a few, so this will fix that too.
3130     
3131     Thanks to Benno Schulenberg from the Translation Project.
3132
3133  po4a/{fr_FR.po => fr.po} | 0
3134  po4a/po4a.conf           | 2 +-
3135  2 files changed, 1 insertion(+), 1 deletion(-)
3136
3137 commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
3138 Author: Lasse Collin <lasse.collin@tukaani.org>
3139 Date:   2022-11-09 18:48:50 +0200
3140
3141     xz: Update the man page about BCJ filters, including upcoming --arm64.
3142     
3143     The --arm64 isn't actually implemented yet in the form
3144     described in this commit.
3145     
3146     Thanks to Jia Tan.
3147
3148  src/xz/xz.1 | 66 +++++++++++++++++++++++++++----------------------------------
3149  1 file changed, 29 insertions(+), 37 deletions(-)
3150
3151 commit ba2ae3596f6be1587495f33b367488f6e00e56f1
3152 Author: Lasse Collin <lasse.collin@tukaani.org>
3153 Date:   2022-11-09 18:14:14 +0200
3154
3155     xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb).
3156     
3157     Modern 32-bit ARM in big endian mode use little endian for
3158     instruction encoding still, so the filters work on such
3159     executables too. It's likely less confusing for users this way.
3160     
3161     The --arm64 option hasn't been implemented yet (there is
3162     --experimental-arm64 but it's different). The --arm64 option
3163     is added now anyway because this is the likely result and the
3164     strings need to be ready for translators.
3165     
3166     Thanks to Jia Tan.
3167
3168  src/xz/message.c | 5 +++--
3169  1 file changed, 3 insertions(+), 2 deletions(-)
3170
3171 commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
3172 Author: Lasse Collin <lasse.collin@tukaani.org>
3173 Date:   2022-11-09 15:12:13 +0200
3174
3175     Windows: Update the VS project files for ARM64 and .lz support.
3176
3177  windows/vs2013/config.h            | 9 +++++++++
3178  windows/vs2013/liblzma.vcxproj     | 5 ++++-
3179  windows/vs2013/liblzma_dll.vcxproj | 5 ++++-
3180  windows/vs2017/config.h            | 9 +++++++++
3181  windows/vs2017/liblzma.vcxproj     | 3 +++
3182  windows/vs2017/liblzma_dll.vcxproj | 3 +++
3183  windows/vs2019/config.h            | 9 +++++++++
3184  windows/vs2019/liblzma.vcxproj     | 5 ++++-
3185  windows/vs2019/liblzma_dll.vcxproj | 5 ++++-
3186  9 files changed, 49 insertions(+), 4 deletions(-)
3187
3188 commit 5846aeda05972bc803c6094821ae836229ebe691
3189 Author: Lasse Collin <lasse.collin@tukaani.org>
3190 Date:   2022-11-09 14:57:48 +0200
3191
3192     DOS: Update Makefile and config.h to include ARM64 and .lz support.
3193
3194  dos/Makefile | 2 ++
3195  dos/config.h | 9 +++++++++
3196  2 files changed, 11 insertions(+)
3197
3198 commit 781da8d6c44de6aa278c916375250668a0b107f2
3199 Author: Lasse Collin <lasse.collin@tukaani.org>
3200 Date:   2022-11-09 14:45:05 +0200
3201
3202     CMake: Add lzip decoder files and #define to the build.
3203
3204  CMakeLists.txt | 3 +++
3205  1 file changed, 3 insertions(+)
3206
3207 commit df8ad4af65a9c4846b108550d0083770a69dee64
3208 Author: Lasse Collin <lasse.collin@tukaani.org>
3209 Date:   2022-11-09 14:41:56 +0200
3210
3211     Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
3212
3213  INSTALL   | 49 +++++++++++++++++++++++++++++++++++++++++--------
3214  PACKAGERS |  2 ++
3215  2 files changed, 43 insertions(+), 8 deletions(-)
3216
3217 commit c8ef089c149afaab413c3a51be827dd1d11afe0e
3218 Author: Lasse Collin <lasse.collin@tukaani.org>
3219 Date:   2022-10-20 17:39:06 +0300
3220
3221     Tests: Test the .lz files in test_files.sh.
3222
3223  tests/test_files.sh | 25 +++++++++++++++++++++++++
3224  1 file changed, 25 insertions(+)
3225
3226 commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
3227 Author: Lasse Collin <lasse.collin@tukaani.org>
3228 Date:   2022-10-20 15:35:59 +0300
3229
3230     Tests: Add .lz (lzip) test files.
3231
3232  tests/files/README                     | 109 +++++++++++++++++++++++++++++----
3233  tests/files/bad-1-v0-uncomp-size.lz    | Bin 0 -> 42 bytes
3234  tests/files/bad-1-v1-crc32.lz          | Bin 0 -> 50 bytes
3235  tests/files/bad-1-v1-dict-1.lz         | Bin 0 -> 50 bytes
3236  tests/files/bad-1-v1-dict-2.lz         | Bin 0 -> 50 bytes
3237  tests/files/bad-1-v1-magic-1.lz        | Bin 0 -> 50 bytes
3238  tests/files/bad-1-v1-magic-2.lz        | Bin 0 -> 50 bytes
3239  tests/files/bad-1-v1-member-size.lz    | Bin 0 -> 50 bytes
3240  tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes
3241  tests/files/bad-1-v1-uncomp-size.lz    | Bin 0 -> 50 bytes
3242  tests/files/good-1-v0-trailing-1.lz    | Bin 0 -> 59 bytes
3243  tests/files/good-1-v0.lz               | Bin 0 -> 42 bytes
3244  tests/files/good-1-v1-trailing-1.lz    | Bin 0 -> 67 bytes
3245  tests/files/good-1-v1-trailing-2.lz    | Bin 0 -> 70 bytes
3246  tests/files/good-1-v1.lz               | Bin 0 -> 50 bytes
3247  tests/files/good-2-v0-v1.lz            | Bin 0 -> 78 bytes
3248  tests/files/good-2-v1-v0.lz            | Bin 0 -> 78 bytes
3249  tests/files/good-2-v1-v1.lz            | Bin 0 -> 86 bytes
3250  tests/files/unsupported-1-v234.lz      | Bin 0 -> 50 bytes
3251  19 files changed, 98 insertions(+), 11 deletions(-)
3252
3253 commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
3254 Author: Lasse Collin <lasse.collin@tukaani.org>
3255 Date:   2022-10-19 22:32:51 +0300
3256
3257     xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz.
3258
3259  src/xz/args.c   | 2 --
3260  src/xz/coder.h  | 1 -
3261  src/xz/suffix.c | 9 ---------
3262  3 files changed, 12 deletions(-)
3263
3264 commit 3176f992c55b8d788c4633809aaf9447376a5a12
3265 Author: Lasse Collin <lasse.collin@tukaani.org>
3266 Date:   2022-10-08 21:28:15 +0300
3267
3268     xz: Add .lz (lzip) decompression support.
3269     
3270     If configured with --disable-lzip-decoder then --long-help will
3271     still list `lzip' in --format but I left it like that since
3272     due to translations it would be messy to have two help strings.
3273     Features are disabled only in special situations so wrong help
3274     in such a situation shouldn't matter much.
3275     
3276     Thanks to Michał Górny for the original patch.
3277
3278  src/xz/args.c    |  9 ++++++++
3279  src/xz/coder.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
3280  src/xz/coder.h   |  3 +++
3281  src/xz/message.c |  2 +-
3282  src/xz/suffix.c  | 26 ++++++++++++++++++----
3283  src/xz/xz.1      | 46 +++++++++++++++++++++++++++++++++-----
3284  6 files changed, 141 insertions(+), 13 deletions(-)
3285
3286 commit 034086e1ae1459210837a24e04878435c86dc41b
3287 Author: Lasse Collin <lasse.collin@tukaani.org>
3288 Date:   2022-10-08 00:29:20 +0300
3289
3290     liblzma: Add .lz support to lzma_auto_decoder().
3291     
3292     Thanks to Michał Górny for the original patch.
3293
3294  src/liblzma/api/lzma/container.h  | 10 ++++++----
3295  src/liblzma/common/Makefile.inc   |  3 ++-
3296  src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------
3297  src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++
3298  4 files changed, 47 insertions(+), 11 deletions(-)
3299
3300 commit 0538db038f3cdc352007dacb42454aa1806b8e40
3301 Author: Lasse Collin <lasse.collin@tukaani.org>
3302 Date:   2022-10-06 15:50:20 +0300
3303
3304     liblzma: Add .lz (lzip) decompression support (format versions 0 and 1).
3305     
3306     Support for format version 0 was removed from lzip 1.18 for some
3307     reason. .lz format version 0 files are rare (and old) but some
3308     source packages were released in this format, and some people might
3309     have personal files in this format too. It's very little extra code
3310     to support it along side format version 1 so this commits adds
3311     support for both.
3312     
3313     The Sync Flush marker extentension to the original .lz format
3314     version 1 isn't supported. It would require changes to the
3315     LZMA decoder itself. Such files are very rare anyway.
3316     
3317     See the API doc for lzma_lzip_decoder() for more details about
3318     the .lz format support.
3319     
3320     Thanks to Michał Górny for the original patch.
3321
3322  configure.ac                      |  21 ++
3323  src/liblzma/api/lzma/container.h  |  62 +++++-
3324  src/liblzma/common/Makefile.inc   |   5 +
3325  src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++
3326  src/liblzma/liblzma_generic.map   |   1 +
3327  src/liblzma/liblzma_linux.map     |   1 +
3328  6 files changed, 501 insertions(+), 2 deletions(-)
3329
3330 commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
3331 Author: Lasse Collin <lasse.collin@tukaani.org>
3332 Date:   2022-11-09 14:17:23 +0200
3333
3334     liblzma: Add the missing Makefile.inc change for --disable-microlzma.
3335     
3336     This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8.
3337
3338  src/liblzma/common/Makefile.inc | 12 ++++++++++--
3339  1 file changed, 10 insertions(+), 2 deletions(-)
3340
3341 commit 724285dadbdc88765c8fb83eab9816575a260966
3342 Author: Lasse Collin <lasse.collin@tukaani.org>
3343 Date:   2022-11-09 14:10:52 +0200
3344
3345     xz: Add comments about stdin and src_st.st_size.
3346     
3347     "xz -v < regular_file > out.xz" doesn't display the percentage
3348     and estimated remaining time because it doesn't even try to
3349     check the input file size when input is read from stdin.
3350     This could be improved but for now there's just a comment
3351     to remind about it.
3352
3353  src/xz/coder.c   | 9 +++++++++
3354  src/xz/file_io.c | 4 ++++
3355  2 files changed, 13 insertions(+)
3356
3357 commit f723eec68b0e44234910f669a29119de33018967
3358 Author: Lasse Collin <lasse.collin@tukaani.org>
3359 Date:   2022-11-09 12:48:22 +0200
3360
3361     xz: Fix displaying of file sizes in progress indicator in passthru mode.
3362     
3363     It worked for one input file since the counters are zero when
3364     xz starts but they weren't reset when starting a new file in
3365     passthru mode. For example, if files A, B, and C are one byte each,
3366     then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
3367     instead of 1, 1, and 1 byte.
3368
3369  src/xz/coder.c | 6 +++++-
3370  1 file changed, 5 insertions(+), 1 deletion(-)
3371
3372 commit 69265d0f223ddf1d66f799b8b047df22923e376f
3373 Author: Lasse Collin <lasse.collin@tukaani.org>
3374 Date:   2022-11-09 11:27:20 +0200
3375
3376     xz: Add a comment why --to-stdout is not in --help.
3377     
3378     It is on the man page still.
3379
3380  src/xz/message.c | 3 +++
3381  1 file changed, 3 insertions(+)
3382
3383 commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
3384 Author: Lasse Collin <lasse.collin@tukaani.org>
3385 Date:   2022-11-08 23:05:37 +0200
3386
3387     xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress.
3388
3389  src/xz/list.c | 20 +++++++++++++++-----
3390  1 file changed, 15 insertions(+), 5 deletions(-)
3391
3392 commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
3393 Author: Lasse Collin <lasse.collin@tukaani.org>
3394 Date:   2022-11-08 22:26:54 +0200
3395
3396     Docs: Update faq.txt a little.
3397
3398  doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
3399  1 file changed, 43 insertions(+), 23 deletions(-)
3400
3401 commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
3402 Author: Lasse Collin <lasse.collin@tukaani.org>
3403 Date:   2022-11-08 16:57:17 +0200
3404
3405     Translations: Update Turkish translation.
3406
3407  po/tr.po | 2 +-
3408  1 file changed, 1 insertion(+), 1 deletion(-)
3409
3410 commit ed3a4822963b4940d84e6f44d47277c394fc046d
3411 Author: Lasse Collin <lasse.collin@tukaani.org>
3412 Date:   2022-11-08 14:55:32 +0200
3413
3414     Translations: Update Croatian translation.
3415
3416  po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
3417  1 file changed, 96 insertions(+), 94 deletions(-)
3418
3419 commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
3420 Author: Lasse Collin <lasse.collin@tukaani.org>
3421 Date:   2022-11-08 14:13:03 +0200
3422
3423     liblzma: Update API docs about decoder flags.
3424
3425  src/liblzma/api/lzma/container.h | 21 +++++++++++++++++----
3426  1 file changed, 17 insertions(+), 4 deletions(-)
3427
3428 commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
3429 Author: Lasse Collin <lasse.collin@tukaani.org>
3430 Date:   2022-11-08 14:01:50 +0200
3431
3432     liblzma: Use the return_if_error() macro in alone_decoder.c.
3433
3434  src/liblzma/common/alone_decoder.c | 6 ++----
3435  1 file changed, 2 insertions(+), 4 deletions(-)
3436
3437 commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
3438 Author: Lasse Collin <lasse.collin@tukaani.org>
3439 Date:   2022-11-08 14:00:58 +0200
3440
3441     liblzma: Fix a comment in auto_decoder.c.
3442
3443  src/liblzma/common/auto_decoder.c | 4 ++--
3444  1 file changed, 2 insertions(+), 2 deletions(-)
3445
3446 commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
3447 Author: Lasse Collin <lasse.collin@tukaani.org>
3448 Date:   2022-11-08 13:43:19 +0200
3449
3450     xz: Initialize the pledge(2) sandbox at the very beginning of main().
3451     
3452     It feels better that the initializations are sandboxed too.
3453     They don't do anything that the pledge() call wouldn't allow.
3454
3455  src/xz/main.c | 27 ++++++++++++++-------------
3456  1 file changed, 14 insertions(+), 13 deletions(-)
3457
3458 commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
3459 Author: Lasse Collin <lasse.collin@tukaani.org>
3460 Date:   2022-11-07 22:51:16 +0200
3461
3462     xz: Extend --robot --info-memory output.
3463     
3464     Now it includes everything that the human-readable --info-memory shows.
3465
3466  src/xz/hardware.c | 24 +++++++++++++++---------
3467  src/xz/xz.1       | 47 +++++++++++++++++++++++++++++++++++++++++------
3468  2 files changed, 56 insertions(+), 15 deletions(-)
3469
3470 commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
3471 Author: Lasse Collin <lasse.collin@tukaani.org>
3472 Date:   2022-11-07 17:22:04 +0200
3473
3474     liblzma: Include cached memory in reported memusage in threaded decoder.
3475     
3476     This affects lzma_memusage() and lzma_memlimit_set() when used
3477     with the threaded decompressor. Now all allocations are reported
3478     by lzma_memusage() (so it's not misleading) and lzma_memlimit_set()
3479     cannot lower the limit below that value.
3480     
3481     The alternative would have been to allow lowering the limit if
3482     doing so is possible by freeing the cached memory but since
3483     the primary use case of lzma_memlimit_set() is to increase
3484     memlimit after LZMA_MEMLIMIT_ERROR this simple approach
3485     was selected.
3486     
3487     The cached memory was always included when enforcing
3488     the memory usage limit while decoding.
3489     
3490     Thanks to Jia Tan.
3491
3492  src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++---
3493  1 file changed, 19 insertions(+), 3 deletions(-)
3494
3495 commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
3496 Author: Jia Tan <jiat0218@gmail.com>
3497 Date:   2022-11-07 16:24:14 +0200
3498
3499     xz: Avoid a compiler warning in progress_speed() in message.c.
3500     
3501     This should be smaller too since it avoids the string constants.
3502
3503  src/xz/message.c | 9 +++------
3504  1 file changed, 3 insertions(+), 6 deletions(-)
3505
3506 commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
3507 Author: Lasse Collin <lasse.collin@tukaani.org>
3508 Date:   2022-10-31 16:26:05 +0200
3509
3510     Build: Clarify comment in configure.ac about SSE2.
3511
3512  configure.ac | 5 ++++-
3513  1 file changed, 4 insertions(+), 1 deletion(-)
3514
3515 commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
3516 Author: Lasse Collin <lasse.collin@tukaani.org>
3517 Date:   2022-10-31 16:16:37 +0200
3518
3519     Build: Remove obsolete commented-out lines from configure.ac.
3520
3521  configure.ac | 4 ----
3522  1 file changed, 4 deletions(-)
3523
3524 commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
3525 Author: Lasse Collin <lasse.collin@tukaani.org>
3526 Date:   2022-10-31 13:31:58 +0200
3527
3528     Windows: Fix mythread_once() macro with Vista threads.
3529     
3530     Don't call InitOnceComplete() if initialization was already done.
3531     
3532     So far mythread_once() has been needed only when building
3533     with --enable-small. windows/build.bash does this together
3534     with --disable-threads so the Vista-specific mythread_once()
3535     is never needed by those builds. VS project files or
3536     CMake-builds don't support HAVE_SMALL builds at all.
3537
3538  src/common/mythread.h | 7 ++++---
3539  1 file changed, 4 insertions(+), 3 deletions(-)
3540
3541 commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
3542 Author: Lasse Collin <lasse.collin@tukaani.org>
3543 Date:   2022-10-31 11:54:44 +0200
3544
3545     liblzma: Silence -Wconversion warning from crc64_fast.c.
3546
3547  src/liblzma/check/crc64_fast.c | 5 +++--
3548  1 file changed, 3 insertions(+), 2 deletions(-)
3549
3550 commit a243c617ff249d915ac123de4f536b80322c1fdb
3551 Author: Lasse Collin <lasse.collin@tukaani.org>
3552 Date:   2022-10-31 11:49:47 +0200
3553
3554     CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
3555     
3556     This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.
3557
3558  cmake/tuklib_cpucores.cmake | 5 +++++
3559  1 file changed, 5 insertions(+)
3560
3561 commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
3562 Author: Lasse Collin <lasse.collin@tukaani.org>
3563 Date:   2022-10-27 15:49:18 +0300
3564
3565     Tests: test_files.sh: Make it not fail if features were disabled at build.
3566     
3567     It now tries to test as many files as easily possible.
3568     The exit status indicates skipping if any of the files were
3569     skipped. This way it is easy to notice if something is being
3570     skipped when it isn't expected.
3571
3572  tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
3573  1 file changed, 46 insertions(+), 4 deletions(-)
3574
3575 commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
3576 Author: Lasse Collin <lasse.collin@tukaani.org>
3577 Date:   2022-10-27 15:30:13 +0300
3578
3579     Tests: test_files.sh: Suppress an expected warning from the log.
3580     
3581     xz (but not xzdec) will normally warn about unsupported check
3582     but since we are testing specifically such a file, it's better
3583     to silence that warning so that it doesn't look suspicious in
3584     test_files.sh.log.
3585     
3586     The use of -q and -Q in xzdec is just for consistency and
3587     doesn't affect the result at least for now.
3588
3589  tests/test_files.sh | 4 ++--
3590  1 file changed, 2 insertions(+), 2 deletions(-)
3591
3592 commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
3593 Author: Lasse Collin <lasse.collin@tukaani.org>
3594 Date:   2022-10-27 15:27:50 +0300
3595
3596     Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.
3597
3598  tests/test_files.sh | 1 +
3599  1 file changed, 1 insertion(+)
3600
3601 commit c1dd8524e1af07f16b790463899de06a6a5fcc08
3602 Author: Lasse Collin <lasse.collin@tukaani.org>
3603 Date:   2022-10-27 01:12:40 +0300
3604
3605     Tests: Keep test_compress_* working when some filters are unavailable.
3606
3607  tests/test_compress.sh | 34 ++++++++++++++++++++--------------
3608  1 file changed, 20 insertions(+), 14 deletions(-)
3609
3610 commit ce30ada91951d0746879ae438da11f1ee8a90aa0
3611 Author: Jia Tan <jiat0218@gmail.com>
3612 Date:   2022-10-23 21:01:08 +0800
3613
3614     Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.
3615
3616  tests/test_bcj_exact_size.c | 3 +++
3617  1 file changed, 3 insertions(+)
3618
3619 commit 89c5cfcacaca7130509fac836e2f30c46b824502
3620 Author: Lasse Collin <lasse.collin@tukaani.org>
3621 Date:   2022-10-26 00:05:57 +0300
3622
3623     Tests: Test also unsupported-*.xz.
3624
3625  tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++
3626  1 file changed, 37 insertions(+)
3627
3628 commit a4b214b93ac741edef9c41e55865b0b867ca2587
3629 Author: Lasse Collin <lasse.collin@tukaani.org>
3630 Date:   2022-10-25 23:45:03 +0300
3631
3632     Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
3633     
3634     We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
3635     
3636     There is a warning about AC_PROG_CC_C99 being obsolete but
3637     it cannot be removed because it is needed with Autoconf 2.69.
3638
3639  configure.ac | 2 +-
3640  1 file changed, 1 insertion(+), 1 deletion(-)
3641
3642 commit 04f299b64e73f50afc188c2590ebebc6b73ed744
3643 Author: Lasse Collin <lasse.collin@tukaani.org>
3644 Date:   2022-10-25 23:31:44 +0300
3645
3646     Build: Update m4/ax_pthread.m4 from Autoconf Archive.
3647
3648  m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
3649  1 file changed, 22 insertions(+), 7 deletions(-)
3650
3651 commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
3652 Author: Lasse Collin <lasse.collin@tukaani.org>
3653 Date:   2022-10-25 23:28:34 +0300
3654
3655     Build: Add configure option --disable-microlzma.
3656     
3657     MicroLZMA was made for EROFS and used by erofs-utils.
3658     It might be used by something else in the future but
3659     those wanting a smaller build for specific situations
3660     can now disable this rarely-needed feature.
3661
3662  configure.ac | 22 ++++++++++++++++++++++
3663  1 file changed, 22 insertions(+)
3664
3665 commit 054ccd6d14b2cc6eddc56897af280d3221414150
3666 Author: Lasse Collin <lasse.collin@tukaani.org>
3667 Date:   2022-10-25 23:09:11 +0300
3668
3669     xz: Fix --single-stream with an empty .xz Stream.
3670     
3671     Example:
3672     
3673         $ xz -dc --single-stream good-0-empty.xz
3674         xz: good-0-empty.xz: Internal error (bug)
3675     
3676     The code, that is tries to catch some input file issues early,
3677     didn't anticipate LZMA_STREAM_END which is possible in that
3678     code only when --single-stream is used.
3679
3680  src/xz/coder.c | 9 +++++++++
3681  1 file changed, 9 insertions(+)
3682
3683 commit 563288ea705e83ff5cb292adf794650c263bca1d
3684 Author: Lasse Collin <lasse.collin@tukaani.org>
3685 Date:   2022-10-25 21:11:58 +0300
3686
3687     xz: Add support for OpenBSD's pledge() sandbox.
3688
3689  configure.ac     | 12 +++++++++---
3690  src/xz/file_io.c | 11 +++++++++++
3691  src/xz/main.c    | 13 +++++++++++++
3692  src/xz/private.h |  2 +-
3693  4 files changed, 34 insertions(+), 4 deletions(-)
3694
3695 commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
3696 Author: Lasse Collin <lasse.collin@tukaani.org>
3697 Date:   2022-10-25 19:07:17 +0300
3698
3699     xz: Fix decompressor behavior if input uses an unsupported check type.
3700     
3701     Now files with unsupported check will make xz display
3702     a warning, set the exit status to 2 (unless --no-warn is used),
3703     and then decompress the file normally. This is how it was
3704     supposed to work since the beginning but this was broken by
3705     the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
3706     a little before 5.0.0 was released. The buggy behavior displayed
3707     a message, set exit status 1 (error), and xz didn't attempt to
3708     to decompress the file.
3709     
3710     This doesn't matter today except for special builds that disable
3711     CRC64 or SHA-256 at build time (but such builds should be used
3712     in special situations only). The bug matters if new check type
3713     is added in the future and an old xz version is used to decompress
3714     such a file; however, it's likely that such files would use a new
3715     filter too and an old xz wouldn't be able to decompress the file
3716     anyway.
3717     
3718     The first hunk in the commit is the actual fix. The second hunk
3719     is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
3720     
3721     There is a test file for unsupported check type but it wasn't
3722     used by test_files.sh, perhaps due to different behavior between
3723     xz and the simpler xzdec.
3724
3725  src/xz/coder.c | 19 +++++++++++++++----
3726  1 file changed, 15 insertions(+), 4 deletions(-)
3727
3728 commit aa4fe145b9486adc454f44fd3e09be9add808a0f
3729 Author: Lasse Collin <lasse.collin@tukaani.org>
3730 Date:   2022-10-25 18:36:19 +0300
3731
3732     xz: Clarify the man page: input file isn't removed if an error occurs.
3733
3734  src/xz/xz.1 | 5 +++--
3735  1 file changed, 3 insertions(+), 2 deletions(-)
3736
3737 commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
3738 Author: Lasse Collin <lasse.collin@tukaani.org>
3739 Date:   2022-10-25 18:30:55 +0300
3740
3741     xz: Refactor to remove is_empty_filename().
3742     
3743     Long ago it was used in list.c too but nowadays it's needed
3744     only in io_open_src() so it's nicer to avoid a separate function.
3745
3746  src/xz/file_io.c |  4 +++-
3747  src/xz/util.c    | 12 ------------
3748  src/xz/util.h    |  4 ----
3749  3 files changed, 3 insertions(+), 17 deletions(-)
3750
3751 commit 85624015978b0de294cff3df79006df987c552b1
3752 Author: Lasse Collin <lasse.collin@tukaani.org>
3753 Date:   2022-10-25 18:23:54 +0300
3754
3755     xz: If input file cannot be removed, treat it as a warning, not error.
3756     
3757     Treating it as a warning (message + exit status 2) matches gzip
3758     and it seems more logical as at that point the output file has
3759     already been successfully closed. When it's a warning it is
3760     possible to suppress it with --no-warn.
3761
3762  src/xz/file_io.c | 4 ++--
3763  1 file changed, 2 insertions(+), 2 deletions(-)
3764
3765 commit fda9f85f52c546f7ca0313cf89481da4707fecb3
3766 Author: Lasse Collin <lasse.collin@tukaani.org>
3767 Date:   2022-10-24 16:25:09 +0300
3768
3769     liblzma: Threaded decoder: Stop the worker threads on errors.
3770     
3771     It's waste of CPU time and electricity to leave the unfinished
3772     worker threads running when it is known that their output will
3773     get ignored.
3774
3775  src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++-------
3776  1 file changed, 26 insertions(+), 7 deletions(-)
3777
3778 commit 2611c4d90535652d3eb7ef4a026a6691276fab43
3779 Author: Lasse Collin <lasse.collin@tukaani.org>
3780 Date:   2022-10-20 20:22:50 +0300
3781
3782     tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
3783     
3784     On OpenBSD the number of cores online is often less
3785     than what HW_NCPU would return because OpenBSD disables
3786     simultaneous multi-threading (SMT) by default.
3787     
3788     Thanks to Christian Weisgerber.
3789
3790  m4/tuklib_cpucores.m4        | 5 +++++
3791  src/common/tuklib_cpucores.c | 9 +++++++++
3792  2 files changed, 14 insertions(+)
3793
3794 commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
3795 Author: Lasse Collin <lasse.collin@tukaani.org>
3796 Date:   2022-10-19 19:39:35 +0300
3797
3798     Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
3799     
3800     This isn't perfect as the scripts can still fail if only
3801     certain filters are disabled. This is still an improvement
3802     as now "make check" has better behavior when all encoders
3803     or decoders are disabled.
3804     
3805     Grepping ../config.h is simple and fairly clean but it only
3806     works if config.h was created. CMake builds don't create
3807     config.h but they don't use these test scripts either.
3808     
3809     Thanks to Sebastian Andrzej Siewior for reporting the problem.
3810     Thanks to Jia Tan for the original patch which grepped xz
3811     error messages instead of config.h.
3812
3813  tests/test_compress.sh | 12 ++++++++++++
3814  tests/test_files.sh    | 11 +++++++++++
3815  tests/test_scripts.sh  | 11 +++++++++++
3816  3 files changed, 34 insertions(+)
3817
3818 commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
3819 Author: Lasse Collin <lasse.collin@tukaani.org>
3820 Date:   2022-10-19 18:54:34 +0300
3821
3822     Test: Remove the (exit 1) lines.
3823     
3824     I suspect that I used these in the original version because
3825     Autoconf's manual describes that such a trick is needed in
3826     some specific situations for portability reasons. None of those
3827     situations listed on Autoconf 2.71 manual apply to these test
3828     scripts though so this cleans them up.
3829
3830  tests/test_compress.sh | 10 ----------
3831  tests/test_files.sh    |  9 ---------
3832  tests/test_scripts.sh  |  6 ------
3833  3 files changed, 25 deletions(-)
3834
3835 commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
3836 Author: Lasse Collin <lasse.collin@tukaani.org>
3837 Date:   2022-10-19 17:14:57 +0300
3838
3839     Tests: Fix a warning in test_memlimit.c when decoders are disabled.
3840
3841  tests/test_memlimit.c | 3 +++
3842  1 file changed, 3 insertions(+)
3843
3844 commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
3845 Author: Lasse Collin <lasse.collin@tukaani.org>
3846 Date:   2022-10-19 17:11:46 +0300
3847
3848     Tests: Add test_memlimit to .gitignore.
3849     
3850     Thanks to Jia Tan.
3851
3852  .gitignore | 1 +
3853  1 file changed, 1 insertion(+)
3854
3855 commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
3856 Author: Jia Tan <jiat0218@gmail.com>
3857 Date:   2022-10-06 21:53:09 +0300
3858
3859     Tests: Refactor test_stream_flags.c.
3860     
3861     Converts test_stream_flags to tuktest. Also the test will now
3862     compile and skip properly if encoders or decoders are disabled.
3863     
3864     Thanks to Sebastian Andrzej Siewior.
3865
3866  tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++----------
3867  1 file changed, 416 insertions(+), 117 deletions(-)
3868
3869 commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
3870 Author: Jia Tan <jiat0218@gmail.com>
3871 Date:   2022-10-06 17:00:38 +0800
3872
3873     Tests: Refactor test_block_header.c.
3874     
3875     test_block_header now achieves higher test coverage. Also the
3876     test will now compile and skip properly if encoders or decoders
3877     are disabled.
3878     
3879     Thanks to Sebastian Andrzej Siewior.
3880
3881  tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++-----------
3882  1 file changed, 370 insertions(+), 116 deletions(-)
3883
3884 commit 84963318952064a93bfc52edd6b0ef70593384ee
3885 Author: Jia Tan <jiat0218@gmail.com>
3886 Date:   2022-10-05 23:54:12 +0800
3887
3888     Tests: Fix compilation issues.
3889     
3890     test_bcj_exact_size, test_check, test_hardware, and test_index will
3891     all now compile and skip properly if encoders or decoders are disabled.
3892     
3893     Also fixed a small typo (disabed -> disabled).
3894     
3895     Thanks to Sebastian Andrzej Siewior.
3896
3897  tests/test_bcj_exact_size.c | 20 ++++++++++++++------
3898  tests/test_check.c          |  8 +++++++-
3899  tests/test_hardware.c       |  2 +-
3900  tests/test_index.c          |  6 ++++++
3901  tests/test_memlimit.c       | 16 +++++++++++++++-
3902  tests/test_vli.c            | 13 +++++++++++++
3903  6 files changed, 56 insertions(+), 9 deletions(-)
3904
3905 commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
3906 Author: Lasse Collin <lasse.collin@tukaani.org>
3907 Date:   2022-10-05 16:20:47 +0300
3908
3909     Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.
3910
3911  tests/test_check.c    | 1 +
3912  tests/test_hardware.c | 1 +
3913  tests/test_memlimit.c | 1 +
3914  3 files changed, 3 insertions(+)
3915
3916 commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
3917 Author: Jia Tan <jiat0218@gmail.com>
3918 Date:   2022-10-05 20:57:16 +0800
3919
3920     liblzma: Fix a compilation issue when encoders are disabled.
3921     
3922     When encoders were disabled and threading enabled, outqueue.c and
3923     outqueue.h were not compiled. The multi threaded decoder required
3924     these files, so compilation failed.
3925
3926  src/liblzma/common/Makefile.inc | 7 ++++---
3927  1 file changed, 4 insertions(+), 3 deletions(-)
3928
3929 commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
3930 Author: Jia Tan <jiat0218@gmail.com>
3931 Date:   2022-10-05 16:41:38 +0800
3932
3933     Tests: Fix compilation error when threading support has been disabled.
3934     
3935     Now tests that require threading are skipped when threading
3936     support has been disabled.
3937     
3938     Thanks to Sebastian Andrzej Siewior.
3939
3940  tests/test_check.c    | 4 ++++
3941  tests/test_hardware.c | 4 ++++
3942  tests/test_memlimit.c | 4 ++++
3943  3 files changed, 12 insertions(+)
3944
3945 commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
3946 Author: Lasse Collin <lasse.collin@tukaani.org>
3947 Date:   2022-10-05 14:26:00 +0300
3948
3949     tuklib_integer: Add 64-bit endianness-converting reads and writes.
3950     
3951     Also update the comment in liblzma's memcmplen.h.
3952     
3953     Thanks to Michał Górny for the original patch for the reads.
3954
3955  m4/tuklib_integer.m4           |  8 ++++----
3956  src/common/tuklib_integer.h    | 46 ++++++++++++++++++++++++++++++++++++++++--
3957  src/liblzma/common/memcmplen.h |  9 +++------
3958  3 files changed, 51 insertions(+), 12 deletions(-)
3959
3960 commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
3961 Author: Lasse Collin <lasse.collin@tukaani.org>
3962 Date:   2022-09-30 12:06:13 +0300
3963
3964     liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
3965     
3966     The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.
3967
3968  src/liblzma/api/lzma/base.h | 11 +++++++++++
3969  1 file changed, 11 insertions(+)
3970
3971 commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
3972 Author: Jia Tan <jiat0218@gmail.com>
3973 Date:   2022-09-21 16:15:50 +0800
3974
3975     liblzma: Add dest and src NULL checks to lzma_index_cat.
3976     
3977     The documentation states LZMA_PROG_ERROR can be returned from
3978     lzma_index_cat. Previously, lzma_index_cat could not return
3979     LZMA_PROG_ERROR. Now, the validation is similar to
3980     lzma_index_append, which does a NULL check on the index
3981     parameter.
3982
3983  src/liblzma/common/index.c | 3 +++
3984  1 file changed, 3 insertions(+)
3985
3986 commit afd5a8bf5374eba82804a999e1ea7af680784086
3987 Author: Jia Tan <jiat0218@gmail.com>
3988 Date:   2022-09-21 20:29:28 +0800
3989
3990     Tests: Create a test for the lzma_index_cat bug.
3991
3992  tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
3993  1 file changed, 42 insertions(+), 1 deletion(-)
3994
3995 commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
3996 Author: Jia Tan <jiat0218@gmail.com>
3997 Date:   2022-09-21 19:28:53 +0800
3998
3999     liblzma: Fix copying of check type statistics in lzma_index_cat().
4000     
4001     The check type of the last Stream in dest was never copied to
4002     dest->checks (the code tried to copy it but it was done too late).
4003     This meant that the value returned by lzma_index_checks() would
4004     only include the check type of the last Stream when multiple
4005     lzma_indexes had been concatenated.
4006     
4007     In xz --list this meant that the summary would only list the
4008     check type of the last Stream, so in this sense this was only
4009     a visual bug. However, it's possible that some applications
4010     use this information for purposes other than merely showing
4011     it to the users in an informational message. I'm not aware of
4012     such applications though and it's quite possible that such
4013     applications don't exist.
4014     
4015     Regular streamed decompression in xz or any other application
4016     doesn't use lzma_index_cat() and so this bug cannot affect them.
4017
4018  src/liblzma/common/index.c | 7 ++++++-
4019  1 file changed, 6 insertions(+), 1 deletion(-)
4020
4021 commit a61d32172789735350a941e23baf6b587c49e5d9
4022 Author: Lasse Collin <lasse.collin@tukaani.org>
4023 Date:   2022-09-28 12:20:41 +0300
4024
4025     tuklib_physmem: Fix Unicode builds on Windows.
4026     
4027     Thanks to ArSaCiA Game.
4028
4029  src/common/tuklib_physmem.c | 2 +-
4030  1 file changed, 1 insertion(+), 1 deletion(-)
4031
4032 commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
4033 Author: Lasse Collin <lasse.collin@tukaani.org>
4034 Date:   2022-09-28 11:12:07 +0300
4035
4036     Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.
4037
4038  tests/Makefile.am     |   2 +
4039  tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
4040  2 files changed, 153 insertions(+)
4041
4042 commit 660739f99ab211edec4071de98889fb32ed04e98
4043 Author: Lasse Collin <lasse.collin@tukaani.org>
4044 Date:   2022-09-28 11:05:15 +0300
4045
4046     liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
4047     
4048     If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
4049     to use lzma_memlimit_set() to increase the limit and continue
4050     decoding. This was supposed to work from the beginning but
4051     there was a bug. With other decoders (.lzma or threaded .xz)
4052     this already worked correctly.
4053
4054  src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
4055  1 file changed, 13 insertions(+), 3 deletions(-)
4056
4057 commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
4058 Author: Lasse Collin <lasse.collin@tukaani.org>
4059 Date:   2022-09-28 11:00:23 +0300
4060
4061     liblzma: Stream decoder: Fix comments.
4062
4063  src/liblzma/common/stream_decoder.c | 12 +++++-------
4064  1 file changed, 5 insertions(+), 7 deletions(-)
4065
4066 commit f664cb25841fc1c478b819034a224a558e2ac6e7
4067 Author: Lasse Collin <lasse.collin@tukaani.org>
4068 Date:   2022-09-20 16:58:22 +0300
4069
4070     liblzma: ARM64: Add comments.
4071
4072  src/liblzma/simple/arm64.c | 13 +++++++++++++
4073  1 file changed, 13 insertions(+)
4074
4075 commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
4076 Author: Lasse Collin <lasse.collin@tukaani.org>
4077 Date:   2022-09-20 16:27:50 +0300
4078
4079     liblzma: ARM64: Fix wrong comment in API doc.
4080     
4081     Thanks to Jia Tan.
4082
4083  src/liblzma/api/lzma/bcj.h | 4 ++--
4084  1 file changed, 2 insertions(+), 2 deletions(-)
4085
4086 commit d5b0906fa55157f48c200188a3951d80df9cb308
4087 Author: Lasse Collin <lasse.collin@tukaani.org>
4088 Date:   2022-09-19 20:24:26 +0300
4089
4090     xz: Add --experimental-arm64[=width=WIDTH].
4091     
4092     It will be renamed to --arm64 once it is stable.
4093     
4094     Man page or --long-help weren't updated yet.
4095
4096  src/xz/args.c    |  7 +++++++
4097  src/xz/message.c |  7 +++++++
4098  src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++
4099  src/xz/options.h |  7 +++++++
4100  4 files changed, 60 insertions(+)
4101
4102 commit ecb966de308c255bb4735a7307ef9901c643a9de
4103 Author: Lasse Collin <lasse.collin@tukaani.org>
4104 Date:   2022-09-19 19:34:56 +0300
4105
4106     liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID.
4107     
4108     That is, the Filter ID will be changed once the design is final.
4109     The current version will be removed. So files created with the
4110     tempoary Filter ID won't be supported in the future.
4111
4112  CMakeLists.txt                      |   3 +
4113  configure.ac                        |   4 +-
4114  src/liblzma/api/lzma/bcj.h          |  35 +++++-
4115  src/liblzma/common/filter_common.c  |   9 ++
4116  src/liblzma/common/filter_decoder.c |   8 ++
4117  src/liblzma/common/filter_encoder.c |  11 ++
4118  src/liblzma/simple/Makefile.inc     |   4 +
4119  src/liblzma/simple/arm64.c          | 227 ++++++++++++++++++++++++++++++++++++
4120  src/liblzma/simple/simple_coder.h   |   9 ++
4121  src/liblzma/simple/simple_decoder.h |   4 +
4122  src/liblzma/simple/simple_encoder.h |   2 +
4123  11 files changed, 313 insertions(+), 3 deletions(-)
4124
4125 commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
4126 Author: Lasse Collin <lasse.collin@tukaani.org>
4127 Date:   2022-09-17 22:42:18 +0300
4128
4129     liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
4130     
4131     This will be needed for the ARM64 BCJ filter as it will use
4132     its own options struct.
4133
4134  src/liblzma/simple/arm.c            | 2 +-
4135  src/liblzma/simple/armthumb.c       | 2 +-
4136  src/liblzma/simple/ia64.c           | 2 +-
4137  src/liblzma/simple/powerpc.c        | 2 +-
4138  src/liblzma/simple/simple_coder.c   | 4 ++--
4139  src/liblzma/simple/simple_private.h | 2 +-
4140  src/liblzma/simple/sparc.c          | 2 +-
4141  src/liblzma/simple/x86.c            | 3 ++-
4142  8 files changed, 10 insertions(+), 9 deletions(-)
4143
4144 commit c3592d0a55114144686ecf960cb516d6b31c98e9
4145 Author: Lasse Collin <lasse.collin@tukaani.org>
4146 Date:   2022-09-16 17:08:53 +0300
4147
4148     Tests: Add a test file for lzma_index_append() integer overflow bug.
4149     
4150     This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
4151     
4152     test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
4153     because only then the previously-buggy code path gets tested.
4154     Normal decompression doesn't use lzma_index_append() at all.
4155     Instead, lzma_index_hash functions are used and those already
4156     did the overflow check.
4157
4158  tests/files/README                         |  10 ++++++++++
4159  tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
4160  tests/test_files.sh                        |   8 ++++++++
4161  3 files changed, 18 insertions(+)
4162
4163 commit 982b29f828079a2a26253a40e975127a40a7d2bd
4164 Author: Lasse Collin <lasse.collin@tukaani.org>
4165 Date:   2022-09-16 15:10:07 +0300
4166
4167     Translations: Add Turkish translation.
4168
4169  po/LINGUAS |   1 +
4170  po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4171  2 files changed, 978 insertions(+)
4172
4173 commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
4174 Author: Lasse Collin <lasse.collin@tukaani.org>
4175 Date:   2022-09-16 14:09:07 +0300
4176
4177     Update THANKS.
4178
4179  THANKS | 1 +
4180  1 file changed, 1 insertion(+)
4181
4182 commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
4183 Author: Lasse Collin <lasse.collin@tukaani.org>
4184 Date:   2022-09-16 14:07:03 +0300
4185
4186     xzgrep: Fix compatibility with old shells.
4187     
4188     Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
4189     
4190         xzgrep: line 231: syntax error near unexpected token `;;'
4191     
4192     On SCO OpenServer 5.0.7 with Korn Shell 93r:
4193     
4194         syntax error at line 231 : `;;' unexpected
4195     
4196     Turns out that some old shells don't like apostrophes (') inside
4197     command substitutions. For example, the following fails:
4198     
4199         x=$(echo foo
4200         # asdf'zxcv
4201         echo bar)
4202         printf '%s\n' "$x"
4203     
4204     The problem was introduced by commits
4205     69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
4206     bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
4207     a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
4208     5.2.6 is the only stable release that included
4209     this problem.
4210     
4211     Thanks to Kevin R. Bulgrien for reporting the problem
4212     on SCO OpenServer 5.0.7 and for providing the fix.
4213
4214  src/scripts/xzgrep.in | 6 +++---
4215  1 file changed, 3 insertions(+), 3 deletions(-)
4216
4217 commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
4218 Author: Lasse Collin <lasse.collin@tukaani.org>
4219 Date:   2022-09-09 14:12:30 +0300
4220
4221     Tests: Silence warnings about unused functions from tuktest.h.
4222     
4223     Warnings about unused tuktest_run_test conveniently tell which
4224     test programs haven't been converted to tuktest.h yet but I
4225     silenced that warning too for now anyway.
4226     
4227     It is fine to use __attribute__((__unused__)) even when the
4228     function is actually used because the attribute only means
4229     that the function might be unused.
4230
4231  tests/tuktest.h | 10 ++++++++++
4232  1 file changed, 10 insertions(+)
4233
4234 commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
4235 Author: Lasse Collin <lasse.collin@tukaani.org>
4236 Date:   2022-09-09 13:51:57 +0300
4237
4238     liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
4239     
4240     lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
4241     this. Before this patch, failing lzma_filters_copy() could result
4242     in free(invalid_pointer) or invalid memory reads in stream_encoder.c
4243     or stream_encoder_mt.c.
4244     
4245     To trigger this, allocating memory for a filter options structure
4246     has to fail. These are tiny allocations so in practice they very
4247     rarely fail.
4248     
4249     Certain badness in the filter chain array could also make
4250     lzma_filters_copy() fail but both stream_encoder.c and
4251     stream_encoder_mt.c validate the filter chain before
4252     trying to copy it, so the crash cannot occur this way.
4253
4254  src/liblzma/api/lzma/filter.h      |  4 +++-
4255  src/liblzma/common/filter_common.c | 18 ++++++++++++------
4256  2 files changed, 15 insertions(+), 7 deletions(-)
4257
4258 commit 18d7facd3802b55c287581405c4d49c98708c136
4259 Author: Jia Tan <jiat0218@gmail.com>
4260 Date:   2022-09-02 20:18:55 +0800
4261
4262     liblzma: lzma_index_append: Add missing integer overflow check.
4263     
4264     The documentation in src/liblzma/api/lzma/index.h suggests that
4265     both the unpadded (compressed) size and the uncompressed size
4266     are checked for overflow, but only the unpadded size was checked.
4267     The uncompressed check is done first since that is more likely to
4268     occur than the unpadded or index field size overflows.
4269
4270  src/liblzma/common/index.c | 4 ++++
4271  1 file changed, 4 insertions(+)
4272
4273 commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
4274 Author: Lasse Collin <lasse.collin@tukaani.org>
4275 Date:   2022-09-08 15:11:08 +0300
4276
4277     Update THANKS.
4278
4279  THANKS | 1 +
4280  1 file changed, 1 insertion(+)
4281
4282 commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
4283 Author: Jia Tan <jiat0218@gmail.com>
4284 Date:   2022-09-08 15:07:00 +0300
4285
4286     CMake: Clarify a comment about Windows symlinks without file extension.
4287
4288  CMakeLists.txt | 7 +++----
4289  1 file changed, 3 insertions(+), 4 deletions(-)
4290
4291 commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
4292 Author: Lasse Collin <lasse.collin@tukaani.org>
4293 Date:   2022-09-08 15:02:41 +0300
4294
4295     CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
4296     
4297     The previous commit split liblzma.map into liblzma_linux.map and
4298     liblzma_generic.map. This commit updates the CMake build for those.
4299     
4300     common_w32res.rc dependency was listed under Linux/FreeBSD while
4301     obviously it belongs to Windows when building a DLL.
4302
4303  CMakeLists.txt | 24 +++++++++++++++++++-----
4304  1 file changed, 19 insertions(+), 5 deletions(-)
4305
4306 commit 913ddc5572b9455fa0cf299be2e35c708840e922
4307 Author: Lasse Collin <lasse.collin@tukaani.org>
4308 Date:   2022-09-04 23:23:00 +0300
4309
4310     liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
4311     
4312     RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
4313     encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
4314     In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
4315     API/ABI compatibility tracking isn't done between development
4316     releases so newer releases didn't have XZ_5.1.2alpha anymore.
4317     
4318     Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
4319     the exported symbols compatible with 5.1.2alpha. After checking
4320     the ABI changes it turned out that >= 5.2.0 ABI is backward
4321     compatible with the threaded encoder functions from 5.1.2alpha
4322     (but not vice versa as fixes and extensions to these functions
4323     were made between 5.1.2alpha and 5.2.0).
4324     
4325     In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
4326     xz-5.2.2-compat-libs.patch to modify liblzma.map:
4327     
4328       - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
4329         lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
4330     
4331       - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
4332         an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
4333         has never been used in XZ Utils). So XZ_5.2.2 lists all
4334         symbols that were listed under XZ_5.2 before the patch.
4335         lzma_stream_encoder_mt and _mt_memusage are included too so
4336         they are listed both here and under XZ_5.1.2alpha.
4337     
4338     The patch didn't add any __asm__(".symver ...") lines to the .c
4339     files. Thus the resulting liblzma.so exports the threaded encoder
4340     functions under XZ_5.1.2alpha only. Listing the two functions
4341     also under XZ_5.2.2 in liblzma.map has no effect without
4342     matching .symver lines.
4343     
4344     The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
4345     against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
4346     This is unfortunate but this alone isn't too bad as the problem
4347     is contained within RHEL/CentOS 7 and doesn't affect users
4348     of other distributions. It could also be fixed internally in
4349     RHEL/CentOS 7.
4350     
4351     The second problem is more serious: In XZ Utils 5.2.2 the API
4352     headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
4353     This is true in RHEL/CentOS 7 version too. Thus now programs
4354     using new APIs can be compiled without an extra #define. However,
4355     the programs end up depending on symbol version XZ_5.1.2alpha
4356     (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
4357     with an unpatched XZ Utils 5.2.2. This means that such binaries
4358     won't run on other distributions shipping XZ Utils >= 5.2.0 as
4359     they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
4360     XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
4361     luckily isn't included there anymore with XZ Utils 5.2.4.)
4362     
4363     Binaries built by RHEL/CentOS 7 users get distributed and then
4364     people wonder why they don't run on some other distribution.
4365     Seems that people have found out about the patch and been copying
4366     it to some build scripts, seemingly curing the symptoms but
4367     actually spreading the illness further and outside RHEL/CentOS 7.
4368     
4369     The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
4370     had spread at least to EasyBuild. I heard about the events only
4371     recently. :-(
4372     
4373     This commit splits liblzma.map into two versions: one for
4374     GNU/Linux and another for other OSes that can use symbol versioning
4375     (FreeBSD, Solaris, maybe others). The Linux-specific file and the
4376     matching additions to .c files add full compatibility with binaries
4377     that have been built against a RHEL/CentOS-patched liblzma. Builds
4378     for OSes other than GNU/Linux won't get the vaccine as they should
4379     be immune to the problem (I really hope that no build script uses
4380     the RHEL/CentOS 7 patch outside GNU/Linux).
4381     
4382     The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
4383     are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
4384     if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
4385     the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
4386     since XZ_5.2 {...} is the first one that lists that function.
4387     Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
4388     will be missing but that's still a minor problem compared to
4389     only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
4390     
4391     The "local: *;" line was moved to XZ_5.0 so that it doesn't need
4392     to be moved around. It doesn't matter where it is put.
4393     
4394     Having two similar liblzma_*.map files is a bit silly as it is,
4395     at least for now, easily possible to generate the generic one
4396     from the Linux-specific file. But that adds extra steps and
4397     increases the risk of mistakes when supporting more than one
4398     build system. So I rather maintain two files in parallel and let
4399     validate_map.sh check that they are in sync when "make mydist"
4400     is run.
4401     
4402     This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
4403     lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
4404     weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
4405     for these two). I added these anyway because someone might
4406     misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
4407     (@@XZ_5.2.2) versions were exported too.
4408     
4409     At glance one could suggest using __typeof__ to copy the function
4410     prototypes when making aliases. However, this doesn't work trivially
4411     because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
4412     and it won't change symbol visibility from hidden to default (done
4413     by LZMA_API()). Attributes could be copied with __copy__ attribute
4414     but that needs GCC 9 and a fallback method would be needed anyway.
4415     
4416     This uses __symver__ attribute with GCC >= 10 and
4417     __asm__(".symver ...") with everything else. The attribute method
4418     is required for LTO (-flto) support with GCC. Using -flto with
4419     GCC older than 10 is now broken on GNU/Linux and will not be fixed
4420     (can silently result in a broken liblzma build that has dangerously
4421     incorrect symbol versions). LTO builds with Clang seem to work
4422     with the traditional __asm__(".symver ...") method.
4423     
4424     Thanks to Boud Roukema for reporting the problem and discussing
4425     the details and testing the fix.
4426
4427  configure.ac                                     |  23 +++-
4428  src/liblzma/Makefile.am                          |  10 +-
4429  src/liblzma/common/block_buffer_encoder.c        |  18 ++++
4430  src/liblzma/common/common.c                      |  14 +++
4431  src/liblzma/common/common.h                      |  28 +++++
4432  src/liblzma/common/hardware_cputhreads.c         |  12 +++
4433  src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
4434  src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
4435  src/liblzma/liblzma_linux.map                    | 131 +++++++++++++++++++++++
4436  src/liblzma/validate_map.sh                      | 113 +++++++++++++++++--
4437  10 files changed, 382 insertions(+), 15 deletions(-)
4438
4439 commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
4440 Author: Lasse Collin <lasse.collin@tukaani.org>
4441 Date:   2022-08-31 16:42:04 +0300
4442
4443     CMake: Add xz symlinks.
4444     
4445     These are a minor thing especially since the xz build has
4446     some real problems still like lack of large file support
4447     on 32-bit systems but I'll commit this since the code exists.
4448     
4449     Thanks to Jia Tan.
4450
4451  CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
4452  1 file changed, 37 insertions(+), 1 deletion(-)
4453
4454 commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
4455 Author: Lasse Collin <lasse.collin@tukaani.org>
4456 Date:   2022-08-31 16:29:38 +0300
4457
4458     CMake: Put xz man page install under if(UNIX) like is for xzdec.
4459     
4460     Thanks to Jia Tan.
4461
4462  CMakeLists.txt | 8 +++++---
4463  1 file changed, 5 insertions(+), 3 deletions(-)
4464
4465 commit c1555b1a221a1427d4d650647531016d754bc4da
4466 Author: Lasse Collin <lasse.collin@tukaani.org>
4467 Date:   2022-08-22 18:16:40 +0300
4468
4469     Bump version number for 5.3.3alpha.
4470
4471  src/liblzma/api/lzma/version.h | 2 +-
4472  src/liblzma/liblzma.map        | 2 +-
4473  2 files changed, 2 insertions(+), 2 deletions(-)
4474
4475 commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
4476 Author: Lasse Collin <lasse.collin@tukaani.org>
4477 Date:   2022-08-22 18:13:56 +0300
4478
4479     Add NEWS for 5.3.3alpha.
4480
4481  NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4482  1 file changed, 119 insertions(+)
4483
4484 commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
4485 Author: Lasse Collin <lasse.collin@tukaani.org>
4486 Date:   2022-07-12 17:59:41 +0300
4487
4488     Translations: Add Portuguese translation.
4489     
4490     Jia Tan made white-space changes and also changed "Language: pt_BR\n"
4491     to pt. The translator wasn't reached so I'm hoping these changes
4492     are OK and will commit it without translator's approval.
4493     
4494     Thanks to Pedro Albuquerque and Jia Tan.
4495
4496  po/LINGUAS |    1 +
4497  po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4498  2 files changed, 1002 insertions(+)
4499
4500 commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
4501 Author: Lasse Collin <lasse.collin@tukaani.org>
4502 Date:   2022-07-10 21:16:40 +0300
4503
4504     Translations: Add Serbian translation.
4505     
4506     Quite a few white-space changes were made by Jia Tan to make
4507     this look good. Contacting the translator didn't succeed so
4508     I'm committing this without getting translator's approval.
4509     
4510     Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan.
4511
4512  po/LINGUAS |   1 +
4513  po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4514  2 files changed, 988 insertions(+)
4515
4516 commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
4517 Author: Lasse Collin <lasse.collin@tukaani.org>
4518 Date:   2022-07-04 23:51:36 +0300
4519
4520     Translations: Add Swedish translation.
4521     
4522     Thanks to Sebastian Rasmussen and Jia Tan.
4523
4524  po/LINGUAS |   1 +
4525  po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4526  2 files changed, 984 insertions(+)
4527
4528 commit c613598c358b640682d0ca2aed38fa7df763e8c7
4529 Author: Lasse Collin <lasse.collin@tukaani.org>
4530 Date:   2022-07-04 23:40:27 +0300
4531
4532     Translations: Add Esperanto translation.
4533     
4534     Thanks to Keith Bowes and Jia Tan.
4535
4536  po/LINGUAS |   1 +
4537  po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4538  2 files changed, 985 insertions(+)
4539
4540 commit 659a587d678f21e98e91d2751c31d4ce050c081a
4541 Author: Lasse Collin <lasse.collin@tukaani.org>
4542 Date:   2022-07-01 00:22:33 +0300
4543
4544     Translations: Add Catalan translation.
4545     
4546     Thanks to Jordi Mas and Jia Tan.
4547
4548  po/LINGUAS |    1 +
4549  po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4550  2 files changed, 1077 insertions(+)
4551
4552 commit 739fd8c9bdf1d85f57d56642aad87148d4779530
4553 Author: Lasse Collin <lasse.collin@tukaani.org>
4554 Date:   2022-06-30 17:47:08 +0300
4555
4556     Translations: Add Ukrainian translation.
4557     
4558     Thanks to Yuri Chornoivan and Jia Tan.
4559
4560  po/LINGUAS |   1 +
4561  po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4562  2 files changed, 997 insertions(+)
4563
4564 commit 73280550b111930c62a667e56add8fd574f80bc8
4565 Author: Lasse Collin <lasse.collin@tukaani.org>
4566 Date:   2022-06-30 17:45:26 +0300
4567
4568     Translators: Add Romanian translation.
4569     
4570     Thanks to Remus-Gabriel Chelu and Jia Tan.
4571
4572  po/LINGUAS |    1 +
4573  po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4574  2 files changed, 1017 insertions(+)
4575
4576 commit 2465f5b825152714b2c357d96c2422c31109d320
4577 Author: Lasse Collin <lasse.collin@tukaani.org>
4578 Date:   2022-06-29 18:33:32 +0300
4579
4580     Translations: Update Brazilian Portuguese translation.
4581     
4582     One msgstr was changed. The diff is long due to changes
4583     in the source code line numbers in the comments.
4584     
4585     Thanks to Rafael Fontenelle.
4586
4587  po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
4588  1 file changed, 92 insertions(+), 94 deletions(-)
4589
4590 commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
4591 Author: Lasse Collin <lasse.collin@tukaani.org>
4592 Date:   2022-06-29 18:04:44 +0300
4593
4594     Translations: Add Croatian translation.
4595     
4596     Thanks to Božidar Putanec and Jia Tan.
4597
4598  po/LINGUAS |   1 +
4599  po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4600  2 files changed, 988 insertions(+)
4601
4602 commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
4603 Author: Lasse Collin <lasse.collin@tukaani.org>
4604 Date:   2022-06-29 17:58:48 +0300
4605
4606     Translations: Add Spanish translation.
4607     
4608     Thanks to Cristian Othón Martínez Vera and Jia Tan.
4609
4610  po/LINGUAS |   1 +
4611  po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4612  2 files changed, 985 insertions(+)
4613
4614 commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
4615 Author: Lasse Collin <lasse.collin@tukaani.org>
4616 Date:   2022-06-29 17:49:43 +0300
4617
4618     Translations: Add Korean translation.
4619     
4620     Thanks to Seong-ho Cho and Jia Tan.
4621
4622  po/LINGUAS |   1 +
4623  po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4624  2 files changed, 973 insertions(+)
4625
4626 commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
4627 Author: Lasse Collin <lasse.collin@tukaani.org>
4628 Date:   2020-03-16 21:57:21 +0200
4629
4630     Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
4631     
4632     "make dist" updates the .po files and the fuzzy strings would
4633     result in multiple very wrong translations.
4634
4635  po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
4636  1 file changed, 322 insertions(+), 270 deletions(-)
4637
4638 commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
4639 Author: Lasse Collin <lasse.collin@tukaani.org>
4640 Date:   2020-03-16 17:30:39 +0200
4641
4642     Translations: Add partial Danish translation.
4643     
4644     I made a few minor white space changes without getting them
4645     approved by the Danish translation team.
4646
4647  po/LINGUAS |   1 +
4648  po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4649  2 files changed, 897 insertions(+)
4650
4651 commit 43e09c62e77cb8807d932c81de4decbdb956e184
4652 Author: Lasse Collin <lasse.collin@tukaani.org>
4653 Date:   2020-03-11 22:37:54 +0200
4654
4655     Translations: Add hu, zh_CN, and zh_TW.
4656     
4657     I made a few white space changes to these without getting them
4658     approved by the translation teams. (I tried to contact the hu and
4659     zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
4660
4661  po/LINGUAS  |   3 +
4662  po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4663  po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4664  po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4665  4 files changed, 2907 insertions(+)
4666
4667 commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
4668 Author: Lasse Collin <lasse.collin@tukaani.org>
4669 Date:   2020-03-11 14:33:30 +0200
4670
4671     Translations: Update vi.po to match the file from the TP.
4672     
4673     The translated strings haven't been updated but word wrapping
4674     is different.
4675
4676  po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
4677  1 file changed, 179 insertions(+), 228 deletions(-)
4678
4679 commit 801f39691fc4abc6dd33d7653d498781b593f3eb
4680 Author: Lasse Collin <lasse.collin@tukaani.org>
4681 Date:   2020-03-11 14:18:03 +0200
4682
4683     Translations: Add fi and pt_BR, and update de, fr, it, and pl.
4684     
4685     The German translation isn't identical to the file in
4686     the Translation Project but the changes (white space changes
4687     only) were approved by the translator Mario Blättermann.
4688
4689  po/LINGUAS  |    2 +
4690  po/de.po    |  476 ++++++++++++++--------------
4691  po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4692  po/fr.po    |  272 ++++++++--------
4693  po/it.po    |  479 ++++++++++++----------------
4694  po/pl.po    |  239 +++++++-------
4695  po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4696  7 files changed, 2697 insertions(+), 746 deletions(-)
4697
4698 commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
4699 Author: Lasse Collin <lasse.collin@tukaani.org>
4700 Date:   2022-08-22 17:27:19 +0300
4701
4702     xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress.
4703
4704  src/xz/xz.1 | 31 +++++++++++++++++++------------
4705  1 file changed, 19 insertions(+), 12 deletions(-)
4706
4707 commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
4708 Author: Lasse Collin <lasse.collin@tukaani.org>
4709 Date:   2022-08-22 16:46:18 +0300
4710
4711     CMake: Add liblzma tests.
4712     
4713     Thanks to Jia Tan for the patch.
4714
4715  CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
4716  1 file changed, 52 insertions(+), 1 deletion(-)
4717
4718 commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
4719 Author: Lasse Collin <lasse.collin@tukaani.org>
4720 Date:   2022-08-19 23:32:22 +0300
4721
4722     xz: Revise --info-memory output.
4723     
4724     The strings could be more descriptive but it's good
4725     to have some version of this committed now.
4726     
4727     --robot mode wasn't changed yet.
4728
4729  src/xz/hardware.c | 32 ++++++++++++++++++++++++++------
4730  src/xz/xz.1       |  1 +
4731  2 files changed, 27 insertions(+), 6 deletions(-)
4732
4733 commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
4734 Author: Lasse Collin <lasse.collin@tukaani.org>
4735 Date:   2022-08-19 23:12:02 +0300
4736
4737     xz: Update the man page for threaded decompression and memlimits.
4738     
4739     This documents the changes made in commits
4740     6c6da57ae2aa962aabde6892442227063d87e88c,
4741     cad299008cf73ec566f0662a9cf2b94f86a99659, and
4742     898faa97287a756231c663a3ed5165672b417207.
4743     
4744     The --info-memory bit hasn't been finished yet
4745     even though it's already mentioned in this commit
4746     under --memlimit-mt-decompress and --threads.
4747
4748  src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
4749  1 file changed, 121 insertions(+), 27 deletions(-)
4750
4751 commit d13bfcc0056617dd648f655a01653932fad7067f
4752 Author: Lasse Collin <lasse.collin@tukaani.org>
4753 Date:   2022-08-18 17:49:16 +0300
4754
4755     Build: Include the CMake files in the distribution.
4756     
4757     This was supposed to be done in 2020 with 5.2.5 release
4758     already but it was noticed only today. 5.2.5 and 5.2.6
4759     even mention experiemental CMake support in the NEWS entries.
4760     
4761     Thanks to Olivier B. for reporting the problem.
4762
4763  Makefile.am | 2 ++
4764  1 file changed, 2 insertions(+)
4765
4766 commit e66787bcfefdb93f19c974f895f65969a77937b0
4767 Author: Lasse Collin <lasse.collin@tukaani.org>
4768 Date:   2022-08-18 17:38:05 +0300
4769
4770     Windows: Fix broken liblzma.dll build with Visual Studio project files.
4771     
4772     The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
4773     "Windows: Fix building of resource files when config.h isn't used."
4774     
4775     That commit fixed liblzma.dll build with CMake while keeping it
4776     working with Autotools on Windows but the VS project files were
4777     forgotten.
4778     
4779     I haven't tested these changes.
4780     
4781     Thanks to Olivier B. for reporting the bug and for the initial patch.
4782
4783  windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
4784  windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
4785  windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
4786  3 files changed, 18 insertions(+)
4787
4788 commit c4e8e5fb311225b8b48d34157891a640b2535e0c
4789 Author: Lasse Collin <lasse.collin@tukaani.org>
4790 Date:   2022-08-18 17:16:49 +0300
4791
4792     liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used.
4793     
4794     It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR)
4795     if LZMA_FINISH is used and there isn't enough input to finish
4796     decoding the Block Header or the Block. The use of LZMA_DATA_ERROR
4797     is simpler and the less risky than LZMA_BUF_ERROR but this might
4798     be changed before 5.4.0.
4799
4800  src/liblzma/api/lzma/container.h       |  6 +++++
4801  src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++
4802  2 files changed, 48 insertions(+)
4803
4804 commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
4805 Author: Lasse Collin <lasse.collin@tukaani.org>
4806 Date:   2022-08-12 18:31:47 +0300
4807
4808     Add NEWS for 5.2.6.
4809
4810  NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4811  1 file changed, 121 insertions(+)
4812
4813 commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
4814 Author: Lasse Collin <lasse.collin@tukaani.org>
4815 Date:   2022-08-12 14:28:41 +0300
4816
4817     Add Jia Tan to AUTHORS.
4818
4819  AUTHORS | 2 +-
4820  1 file changed, 1 insertion(+), 1 deletion(-)
4821
4822 commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
4823 Author: Lasse Collin <lasse.collin@tukaani.org>
4824 Date:   2022-07-25 19:28:26 +0300
4825
4826     Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
4827     
4828     This makes ChangeLog smaller.
4829
4830  Makefile.am | 2 +-
4831  1 file changed, 1 insertion(+), 1 deletion(-)
4832
4833 commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
4834 Author: Lasse Collin <lasse.collin@tukaani.org>
4835 Date:   2022-07-25 19:11:05 +0300
4836
4837     Translations: Change the copyright comment string to use with po4a.
4838     
4839     This affects the second line in po4a/xz-man.pot. The man pages of
4840     xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
4841     while the rest of the man pages are in the public domain.
4842
4843  po4a/update-po | 2 +-
4844  1 file changed, 1 insertion(+), 1 deletion(-)
4845
4846 commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
4847 Author: Jia Tan <jiat0218@gmail.com>
4848 Date:   2022-07-25 18:30:05 +0300
4849
4850     liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.
4851
4852  src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
4853  1 file changed, 14 insertions(+), 18 deletions(-)
4854
4855 commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
4856 Author: Jia Tan <jiat0218@gmail.com>
4857 Date:   2022-07-25 18:20:01 +0300
4858
4859     Build: Don't allow empty LIST in --enable-match-finders=LIST.
4860     
4861     It's enforced only when a match finder is needed, that is,
4862     when LZMA1 or LZMA2 encoder is enabled.
4863
4864  configure.ac | 4 ++++
4865  1 file changed, 4 insertions(+)
4866
4867 commit 9cc721af5436908f2d5a828aebbc4050a32a3487
4868 Author: Lasse Collin <lasse.collin@tukaani.org>
4869 Date:   2022-07-24 13:27:48 +0300
4870
4871     xz: Update the man page that change to --keep will be in 5.2.6.
4872
4873  src/xz/xz.1 | 4 ++--
4874  1 file changed, 2 insertions(+), 2 deletions(-)
4875
4876 commit b81bf0c7d1873e52a4086a9abb494471d652cb55
4877 Author: Lasse Collin <lasse.collin@tukaani.org>
4878 Date:   2022-07-19 23:23:54 +0300
4879
4880     Update THANKS.
4881
4882  THANKS | 1 +
4883  1 file changed, 1 insertion(+)
4884
4885 commit 340cf1ec3927767046b8293a49da3db4e393f426
4886 Author: Nicholas Jackson <nickajacks1@gmail.com>
4887 Date:   2022-07-17 17:39:23 -0700
4888
4889     CMake: Add missing source file to liblzma build
4890
4891  CMakeLists.txt | 1 +
4892  1 file changed, 1 insertion(+)
4893
4894 commit d796b6d7fdb8b7238b277056cf9146cce25db604
4895 Author: Lasse Collin <lasse.collin@tukaani.org>
4896 Date:   2022-07-19 23:19:49 +0300
4897
4898     xzgrep man page: Document exit statuses.
4899
4900  src/scripts/xzgrep.1 | 15 ++++++++++++++-
4901  1 file changed, 14 insertions(+), 1 deletion(-)
4902
4903 commit 923bf96b55e5216a6c8df9d8331934f54784390e
4904 Author: Lasse Collin <lasse.collin@tukaani.org>
4905 Date:   2022-07-19 23:13:24 +0300
4906
4907     xzgrep: Improve error handling, especially signals.
4908     
4909     xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
4910     should have. It's quite possible that it's not perfect still
4911     but at least it's much better.
4912     
4913     If multiple exit statuses compete, now it tries to pick
4914     the largest of value.
4915     
4916     Some comments were added.
4917     
4918     The exit status handling of signals is still broken if the shell
4919     uses values larger than 255 in $? to indicate that a process
4920     died due to a signal ***and*** their "exit" command doesn't take
4921     this into account. This seems to work well with the ksh and yash
4922     versions I tried. However, there is a report in gzip/zgrep that
4923     OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
4924     the argument to 8 bits:
4925     
4926         https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
4927     
4928     Such a bug would break xzgrep but I didn't add a workaround
4929     at least for now. 5.11 is old and I don't know if the problem
4930     exists in modern descendants, or if the problem exists in other
4931     ksh implementations in use.
4932
4933  src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
4934  1 file changed, 53 insertions(+), 19 deletions(-)
4935
4936 commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
4937 Author: Lasse Collin <lasse.collin@tukaani.org>
4938 Date:   2022-07-19 00:10:55 +0300
4939
4940     xzgrep: Make the fix for ZDI-CAN-16587 more robust.
4941     
4942     I don't know if this can make a difference in the real world
4943     but it looked kind of suspicious (what happens with sed
4944     implementations that cannot process very long lines?).
4945     At least this commit shouldn't make it worse.
4946
4947  src/scripts/xzgrep.in | 5 ++++-
4948  1 file changed, 4 insertions(+), 1 deletion(-)
4949
4950 commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
4951 Author: Lasse Collin <lasse.collin@tukaani.org>
4952 Date:   2022-07-18 21:52:31 +0300
4953
4954     xzgrep: Use grep -H --label when available (GNU, *BSDs).
4955     
4956     It avoids the use of sed for prefixing filenames to output lines.
4957     Using sed for that is slower and prone to security bugs so now
4958     the sed method is only used as a fallback.
4959     
4960     This also fixes an actual bug: When grepping a binary file,
4961     GNU grep nowadays prints its diagnostics to stderr instead of
4962     stdout and thus the sed-method for prefixing the filename doesn't
4963     work. So with this commit grepping binary files gives reasonable
4964     output with GNU grep now.
4965     
4966     This was inspired by zgrep but the implementation is different.
4967
4968  src/scripts/xzgrep.in | 21 +++++++++++++++++++++
4969  1 file changed, 21 insertions(+)
4970
4971 commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
4972 Author: Lasse Collin <lasse.collin@tukaani.org>
4973 Date:   2022-07-18 21:10:25 +0300
4974
4975     xzgrep: Use -e to specify the pattern to grep.
4976     
4977     Now we don't need the separate test for adding the -q option
4978     as it can be added directly in the two places where it's needed.
4979
4980  src/scripts/xzgrep.in | 12 ++++--------
4981  1 file changed, 4 insertions(+), 8 deletions(-)
4982
4983 commit bad61b5997e6647911974022bfb72f3d4818a594
4984 Author: Lasse Collin <lasse.collin@tukaani.org>
4985 Date:   2022-07-18 19:18:48 +0300
4986
4987     Scripts: Use printf instead of echo in a few places.
4988     
4989     It's a good habbit as echo has some portability corner cases
4990     when the string contents can be anything.
4991
4992  src/scripts/xzdiff.in | 6 +++---
4993  src/scripts/xzgrep.in | 4 ++--
4994  src/scripts/xzless.in | 4 ++--
4995  src/scripts/xzmore.in | 8 ++++----
4996  4 files changed, 11 insertions(+), 11 deletions(-)
4997
4998 commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
4999 Author: Lasse Collin <lasse.collin@tukaani.org>
5000 Date:   2022-07-17 21:36:25 +0300
5001
5002     xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
5003     
5004     Also replace one use of expr with printf.
5005     
5006     The rationale for LC_ALL=C was already mentioned in
5007     69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
5008     issue. However, unrelated uses weren't changed in that commit yet.
5009     
5010     POSIX says that with sed and such tools one should use LC_ALL=C
5011     to ensure predictable behavior when strings contain byte sequences
5012     that aren't valid multibyte characters in the current locale. See
5013     under "Application usage" in here:
5014     
5015     https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
5016     
5017     With GNU sed invalid multibyte strings would work without this;
5018     it's documented in its Texinfo manual. Some other implementations
5019     aren't so forgiving.
5020
5021  src/scripts/xzgrep.in | 14 ++++++++------
5022  1 file changed, 8 insertions(+), 6 deletions(-)
5023
5024 commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
5025 Author: Lasse Collin <lasse.collin@tukaani.org>
5026 Date:   2022-07-17 20:55:16 +0300
5027
5028     xzgrep: Fix parsing of certain options.
5029     
5030     Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
5031     an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
5032     instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
5033     
5034     Add -E, -F, -G, and -P to the "no argument required" list.
5035     
5036     Add -X to "argument required" list. It is an
5037     intentionally-undocumented GNU grep option so this isn't
5038     an important option for xzgrep but it seems that other grep
5039     implementations (well, those that I checked) don't support -X
5040     so I hope this change is an improvement still.
5041     
5042     grep -d (grep --directories=ACTION) requires an argument. In
5043     contrast to zgrep, I kept -d in the "no argument required" list
5044     because it's not supported in xzgrep (or zgrep). This way
5045     "xzgrep -d" gives an error about option being unsupported instead
5046     of telling that it requires an argument. Both zgrep and xzgrep
5047     tell that it's unsupported if an argument is specified.
5048     
5049     Add comments.
5050
5051  src/scripts/xzgrep.in | 19 +++++++++++++++++--
5052  1 file changed, 17 insertions(+), 2 deletions(-)
5053
5054 commit 2d2201bc6315deda4d43625aa510972467bd51d4
5055 Author: Lasse Collin <lasse.collin@tukaani.org>
5056 Date:   2022-07-14 20:33:05 +0300
5057
5058     Tests: Add the .lzma files to test_files.sh.
5059
5060  tests/test_files.sh | 20 ++++++++++++++++++++
5061  1 file changed, 20 insertions(+)
5062
5063 commit ce5549a591bf126300618879f5b24023351baff6
5064 Author: Lasse Collin <lasse.collin@tukaani.org>
5065 Date:   2022-07-14 19:37:42 +0300
5066
5067     Tests: Add .lzma test files.
5068
5069  tests/files/README                                 |  63 ++++++++++++++++-----
5070  tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
5071  tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
5072  tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
5073  tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
5074  tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
5075  tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
5076  tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
5077  tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
5078  9 files changed, 50 insertions(+), 13 deletions(-)
5079
5080 commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
5081 Author: Lasse Collin <lasse.collin@tukaani.org>
5082 Date:   2022-07-14 18:12:38 +0300
5083
5084     liblzma: Rename a variable and improve a comment.
5085
5086  src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
5087  1 file changed, 9 insertions(+), 4 deletions(-)
5088
5089 commit 511feb5eadb988d641b025d597f4fac7502003b8
5090 Author: Lasse Collin <lasse.collin@tukaani.org>
5091 Date:   2022-07-13 22:24:41 +0300
5092
5093     Update THANKS.
5094
5095  THANKS | 1 +
5096  1 file changed, 1 insertion(+)
5097
5098 commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
5099 Author: Lasse Collin <lasse.collin@tukaani.org>
5100 Date:   2022-07-13 22:24:07 +0300
5101
5102     liblzma: Add optional autodetection of LZMA end marker.
5103     
5104     Turns out that this is needed for .lzma files as the spec in
5105     LZMA SDK says that end marker may be present even if the size
5106     is stored in the header. Such files are rare but exist in the
5107     real world. The code in liblzma is so old that the spec didn't
5108     exist in LZMA SDK back then and I had understood that such
5109     files weren't possible (the lzma tool in LZMA SDK didn't
5110     create such files).
5111     
5112     This modifies the internal API so that LZMA decoder can be told
5113     if EOPM is allowed even when the uncompressed size is known.
5114     It's allowed with .lzma and not with other uses.
5115     
5116     Thanks to Karl Beldan for reporting the problem.
5117
5118  doc/lzma-file-format.txt               | 11 +++-
5119  src/liblzma/common/alone_decoder.c     |  2 +-
5120  src/liblzma/common/microlzma_decoder.c |  2 +-
5121  src/liblzma/lz/lz_decoder.c            | 10 +++-
5122  src/liblzma/lz/lz_decoder.h            |  8 +--
5123  src/liblzma/lzma/lzma2_decoder.c       |  2 +-
5124  src/liblzma/lzma/lzma_decoder.c        | 99 ++++++++++++++++++++++++----------
5125  7 files changed, 95 insertions(+), 39 deletions(-)
5126
5127 commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
5128 Author: Lasse Collin <lasse.collin@tukaani.org>
5129 Date:   2022-07-12 18:53:04 +0300
5130
5131     xz: Document the special memlimit case of 2000 MiB on MIPS32.
5132     
5133     See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7.
5134
5135  src/xz/xz.1 | 8 ++++++--
5136  1 file changed, 6 insertions(+), 2 deletions(-)
5137
5138 commit d1bfa3dc703325ecd974167e864a8712fdfe936e
5139 Author: Jia Tan <jiat0218@gmail.com>
5140 Date:   2022-07-01 21:19:26 +0800
5141
5142     Created script to generate code coverage reports.
5143     
5144     The script uses lcov and genhtml after running the tests
5145     to show the code coverage statistics. The script will create
5146     a coverage directory where it is run. It can be run both in
5147     and out of the source directory.
5148
5149  .gitignore             |  4 +++
5150  tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
5151  2 files changed, 83 insertions(+)
5152
5153 commit 86a30b0255d8064169fabfd213d907016d2f9f2a
5154 Author: Jia Tan <jiat0218@gmail.com>
5155 Date:   2022-06-16 17:32:19 +0300
5156
5157     Tests: Add more tests into test_check.
5158
5159  tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++--
5160  tests/tests.h      |  23 +++++
5161  2 files changed, 295 insertions(+), 7 deletions(-)
5162
5163 commit 82e30fed66a89706388a8c15dc954d84e63f38fa
5164 Author: Lasse Collin <lasse.collin@tukaani.org>
5165 Date:   2022-06-16 15:02:57 +0300
5166
5167     Tests: Use char[][24] array for enum_strings_lzma_ret.
5168     
5169     Array of pointers to short strings is a bit pointless here
5170     and now it's fully const.
5171
5172  tests/tests.h | 2 +-
5173  1 file changed, 1 insertion(+), 1 deletion(-)
5174
5175 commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
5176 Author: Lasse Collin <lasse.collin@tukaani.org>
5177 Date:   2022-06-16 14:12:14 +0300
5178
5179     Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.
5180
5181  tests/tuktest.h | 72 +++++++++++++++++++++++++--------------------------------
5182  1 file changed, 32 insertions(+), 40 deletions(-)
5183
5184 commit b339892668da20aea22a93668c82b87a38e4a97f
5185 Author: Lasse Collin <lasse.collin@tukaani.org>
5186 Date:   2022-06-16 13:29:59 +0300
5187
5188     Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.
5189
5190  tests/test_bcj_exact_size.c |  4 +---
5191  tests/tuktest.h             | 52 +++++++++++++++++++++------------------------
5192  2 files changed, 25 insertions(+), 31 deletions(-)
5193
5194 commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
5195 Author: Lasse Collin <lasse.collin@tukaani.org>
5196 Date:   2022-06-16 13:08:19 +0300
5197
5198     Tests: tuktest.h: Add malloc wrapper with automatic freeing.
5199
5200  tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5201  1 file changed, 124 insertions(+)
5202
5203 commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
5204 Author: Lasse Collin <lasse.collin@tukaani.org>
5205 Date:   2022-06-16 11:47:37 +0300
5206
5207     Tests: tuktest.h: Move a function.
5208
5209  tests/tuktest.h | 44 ++++++++++++++++++++++----------------------
5210  1 file changed, 22 insertions(+), 22 deletions(-)
5211
5212 commit 70c7555f6403553ee35539e869de0025592d8564
5213 Author: Lasse Collin <lasse.collin@tukaani.org>
5214 Date:   2022-06-14 22:21:15 +0300
5215
5216     Tests: test_vli: Remove an invalid test-assertion.
5217     
5218     lzma_vli is unsigned so trying a signed value results in
5219     a compiler warning from -Wsign-conversion. (lzma_vli)-1
5220     equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
5221
5222  tests/test_vli.c | 2 --
5223  1 file changed, 2 deletions(-)
5224
5225 commit 154b73c5a1092c3f785e01666b564ad7ff1be555
5226 Author: Lasse Collin <lasse.collin@tukaani.org>
5227 Date:   2022-06-14 22:10:10 +0300
5228
5229     Tests: test_vli: Add const where appropriate.
5230
5231  tests/test_vli.c | 53 ++++++++++++++++++++++++++++-------------------------
5232  1 file changed, 28 insertions(+), 25 deletions(-)
5233
5234 commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
5235 Author: Jia Tan <jiat75@gmail.com>
5236 Date:   2022-06-13 20:27:03 +0800
5237
5238     Added vli tests to .gitignore
5239
5240  .gitignore | 1 +
5241  1 file changed, 1 insertion(+)
5242
5243 commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
5244 Author: Jia Tan <jiat0218@gmail.com>
5245 Date:   2022-06-12 11:31:40 +0800
5246
5247     Created tests for all functions exported in vli.h
5248     
5249     Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
5250
5251  tests/Makefile.am |   4 +-
5252  tests/test_vli.c  | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5253  2 files changed, 311 insertions(+), 1 deletion(-)
5254
5255 commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
5256 Author: jiat75 <jiat0218@gmail.com>
5257 Date:   2022-06-03 21:24:54 +0800
5258
5259     Added parallel test artifacts to .gitignore
5260
5261  .gitignore | 2 ++
5262  1 file changed, 2 insertions(+)
5263
5264 commit 00e3613f1212eaa84e721585fdb4de6967cf2476
5265 Author: Lasse Collin <lasse.collin@tukaani.org>
5266 Date:   2022-06-14 21:29:21 +0300
5267
5268     Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.
5269     
5270     It's much nicer this way so that the test data isn't a hardcoded
5271     table inside the C file.
5272
5273  tests/test_bcj_exact_size.c | 19 +++++++------------
5274  1 file changed, 7 insertions(+), 12 deletions(-)
5275
5276 commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
5277 Author: Lasse Collin <lasse.collin@tukaani.org>
5278 Date:   2022-06-14 21:26:13 +0300
5279
5280     Tests: Add file reading helpers to tuktest.h.
5281
5282  tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
5283  1 file changed, 176 insertions(+), 7 deletions(-)
5284
5285 commit 83d2337b72dbf391c6f3b41889eea99e51679105
5286 Author: Lasse Collin <lasse.collin@tukaani.org>
5287 Date:   2022-06-14 18:21:57 +0300
5288
5289     Tests: tuktest.h: Move a printf from a macro to a helper function.
5290
5291  tests/tuktest.h | 26 ++++++++++++++++++--------
5292  1 file changed, 18 insertions(+), 8 deletions(-)
5293
5294 commit f9e8176ea7d520797a2db2d49a5a632c285674a8
5295 Author: Lasse Collin <lasse.collin@tukaani.org>
5296 Date:   2022-06-14 17:20:49 +0300
5297
5298     Tests: Add test file good-1-empty-bcj-lzma2.xz.
5299     
5300     This is from test_bcj_exact_size.c.
5301     It's good to have it as a standalone file.
5302
5303  tests/files/README                    |   5 +++++
5304  tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
5305  2 files changed, 5 insertions(+)
5306
5307 commit aa75c5563a760aea3aa23d997d519e702e82726b
5308 Author: Jia Tan <jiat0218@gmail.com>
5309 Date:   2022-06-10 21:35:18 +0800
5310
5311     Tests: Created tests for hardware functions.
5312     
5313     Created tests for all API functions exported in
5314     src/liblzma/api/lzma/hardware.h. The tests are fairly trivial
5315     but are helpful because they will inform users if their machines
5316     cannot support these functions. They also improve the code
5317     coverage metrics.
5318
5319  .gitignore            |  1 +
5320  tests/Makefile.am     |  2 ++
5321  tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
5322  3 files changed, 48 insertions(+)
5323
5324 commit 5c8ffdca20813939818843476fb212dfae8838a3
5325 Author: Lasse Collin <lasse.collin@tukaani.org>
5326 Date:   2022-06-02 21:01:45 +0300
5327
5328     Tests: Convert test_check to tuktest.
5329     
5330     Thanks to Jia Tan for help with all the tests.
5331
5332  tests/test_check.c | 67 +++++++++++++++++++++++++++---------------------------
5333  1 file changed, 33 insertions(+), 34 deletions(-)
5334
5335 commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
5336 Author: Lasse Collin <lasse.collin@tukaani.org>
5337 Date:   2022-06-02 20:31:03 +0300
5338
5339     Tests: Convert test_block_header to tuktest.
5340
5341  tests/test_block_header.c | 89 +++++++++++++++++++++++++++--------------------
5342  1 file changed, 52 insertions(+), 37 deletions(-)
5343
5344 commit 754d39fbebee3782258d42f154a223d3c5770ec7
5345 Author: Lasse Collin <lasse.collin@tukaani.org>
5346 Date:   2022-06-02 20:28:23 +0300
5347
5348     Tests: Convert test_bcj_exact_size to tuktest.
5349     
5350     The compress() and decompress() functions were merged because
5351     the later depends on the former so they need to be a single
5352     test case.
5353
5354  tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++--------------------
5355  1 file changed, 41 insertions(+), 34 deletions(-)
5356
5357 commit 96da21470f9570cd08286906a050a7c22631775b
5358 Author: Lasse Collin <lasse.collin@tukaani.org>
5359 Date:   2022-06-02 20:27:00 +0300
5360
5361     Tests: Include tuktest.h in tests.h.
5362     
5363     This breaks -Werror because none of the tests so far use
5364     tuktest.h and thus there are warnings about unused variables
5365     and functions.
5366
5367  tests/tests.h | 47 +++++++++++++++++++++++------------------------
5368  1 file changed, 23 insertions(+), 24 deletions(-)
5369
5370 commit df71ba1c991f60c3269aaadd398247e632714626
5371 Author: Lasse Collin <lasse.collin@tukaani.org>
5372 Date:   2022-06-02 20:25:21 +0300
5373
5374     Tests: Add tuktest.h mini-test-framework.
5375
5376  tests/Makefile.am |   1 +
5377  tests/tuktest.h   | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5378  2 files changed, 753 insertions(+)
5379
5380 commit 4773608554d1b684a05ff9c1d879cf5c42266d33
5381 Author: Lasse Collin <lasse.collin@tukaani.org>
5382 Date:   2022-05-23 21:31:36 +0300
5383
5384     Build: Enable Automake's parallel test harness.
5385     
5386     It has been the default for quite some time already and
5387     the old serial harness isn't discouraged. The downside is
5388     that with parallel tests one cannot print progress info or
5389     other diagnostics to the terminal; all output from the tests
5390     will be in the log files only. But now that the compression
5391     tests are separated the parallel tests will speed things up.
5392
5393  configure.ac | 2 +-
5394  1 file changed, 1 insertion(+), 1 deletion(-)
5395
5396 commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
5397 Author: Lasse Collin <lasse.collin@tukaani.org>
5398 Date:   2022-05-23 21:17:47 +0300
5399
5400     Tests: Split test_compress.sh into separate test unit for each file.
5401     
5402     test_compress.sh now takes one command line argument:
5403     a filename to be tested. If it begins with "compress_generated_"
5404     the file will be created with create_compress_files.
5405     
5406     This will allow parallel execution of the slow tests.
5407
5408  tests/Makefile.am                      | 11 +++-
5409  tests/test_compress.sh                 | 91 +++++++++++++++++++---------------
5410  tests/test_compress_generated_abc      |  3 ++
5411  tests/test_compress_generated_random   |  3 ++
5412  tests/test_compress_generated_text     |  3 ++
5413  tests/test_compress_prepared_bcj_sparc |  3 ++
5414  tests/test_compress_prepared_bcj_x86   |  3 ++
5415  7 files changed, 77 insertions(+), 40 deletions(-)
5416
5417 commit c7758ac9c734707514dd34f254173ebac5eea7f8
5418 Author: Lasse Collin <lasse.collin@tukaani.org>
5419 Date:   2022-05-23 20:32:49 +0300
5420
5421     Test: Make create_compress_files.c a little more flexible.
5422     
5423     If a command line argument is given, then only the test file
5424     of that type is created. It's quite dumb in sense that unknown
5425     names don't give an error but it's good enough here.
5426     
5427     Also use EXIT_FAILURE instead of 1 as exit status for errors.
5428
5429  tests/create_compress_files.c | 25 +++++++++++++++----------
5430  1 file changed, 15 insertions(+), 10 deletions(-)
5431
5432 commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
5433 Author: Lasse Collin <lasse.collin@tukaani.org>
5434 Date:   2022-05-23 20:17:42 +0300
5435
5436     Tests: Remove unneeded commented lines from test_compress.sh.
5437
5438  tests/test_compress.sh | 13 -------------
5439  1 file changed, 13 deletions(-)
5440
5441 commit 2ee50d150ee009f36135540b459e6ff328549725
5442 Author: Lasse Collin <lasse.collin@tukaani.org>
5443 Date:   2022-05-23 20:16:00 +0300
5444
5445     Tests: Remove progress indicator from test_compress.sh.
5446     
5447     It will be useless with Automake's parallel tests.
5448
5449  tests/test_compress.sh | 9 ---------
5450  1 file changed, 9 deletions(-)
5451
5452 commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
5453 Author: Lasse Collin <lasse.collin@tukaani.org>
5454 Date:   2022-05-23 19:37:18 +0300
5455
5456     liblzma: Silence a warning.
5457     
5458     The actual initialization is done via mythread_sync and seems
5459     that GCC doesn't necessarily see that it gets initialized there.
5460
5461  src/liblzma/common/stream_decoder_mt.c | 2 +-
5462  1 file changed, 1 insertion(+), 1 deletion(-)
5463
5464 commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
5465 Author: Lasse Collin <lasse.collin@tukaani.org>
5466 Date:   2022-04-14 20:53:16 +0300
5467
5468     xz: Fix build with --disable-threads.
5469
5470  src/xz/hardware.c | 4 ++++
5471  1 file changed, 4 insertions(+)
5472
5473 commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
5474 Author: Lasse Collin <lasse.collin@tukaani.org>
5475 Date:   2022-04-14 14:50:17 +0300
5476
5477     xz: Change the cap of the default -T0 memlimit for 32-bit xz.
5478     
5479     The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room
5480     and it looks like a round (artificial) number in --info-memory
5481     once --info-memory is made to display it.
5482     
5483     Also, using #if avoids useless code on 64-bit builds.
5484
5485  src/xz/hardware.c | 4 +++-
5486  1 file changed, 3 insertions(+), 1 deletion(-)
5487
5488 commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
5489 Author: Lasse Collin <lasse.collin@tukaani.org>
5490 Date:   2022-04-14 14:20:46 +0300
5491
5492     xz: Add a default soft memory usage limit for --threads=0.
5493     
5494     This is a soft limit in sense that it only affects the number of
5495     threads. It never makes xz fail and it never makes xz change
5496     settings that would affect the compressed output.
5497     
5498     The idea is to make -T0 have more reasonable behavior when
5499     the system has very many cores or when a memory-hungry
5500     compression options are used. This also helps with 32-bit xz,
5501     preventing it from running out of address space.
5502     
5503     The downside of this commit is that now the number of threads
5504     might become too low compared to what the user expected. I
5505     hope this to be an acceptable compromise as the old behavior
5506     has been a source of well-argued complaints for a long time.
5507
5508  src/xz/coder.c    | 28 ++++++++++++++++++++++++++--
5509  src/xz/hardware.c | 38 +++++++++++++++++++++++++++++---------
5510  src/xz/hardware.h | 27 +++++++++++++++++++++++++++
5511  3 files changed, 82 insertions(+), 11 deletions(-)
5512
5513 commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
5514 Author: Lasse Collin <lasse.collin@tukaani.org>
5515 Date:   2022-04-14 12:59:09 +0300
5516
5517     xz: Make -T0 use multithreaded mode on single-core systems.
5518     
5519     The main problem withi the old behavior is that the compressed
5520     output is different on single-core systems vs. multicore systems.
5521     This commit fixes it by making -T0 one thread in multithreaded mode
5522     on single-core systems.
5523     
5524     The downside of this is that it uses more memory. However, if
5525     --memlimit-compress is used, xz can (thanks to the previous commit)
5526     drop to the single-threaded mode still.
5527
5528  src/xz/coder.c    | 18 +++++++++---------
5529  src/xz/hardware.c | 14 ++++++++++++++
5530  src/xz/hardware.h |  4 ++++
5531  3 files changed, 27 insertions(+), 9 deletions(-)
5532
5533 commit 898faa97287a756231c663a3ed5165672b417207
5534 Author: Lasse Collin <lasse.collin@tukaani.org>
5535 Date:   2022-04-14 12:38:00 +0300
5536
5537     xz: Changes to --memlimit-compress and --no-adjust.
5538     
5539     In single-threaded mode, --memlimit-compress can make xz scale down
5540     the LZMA2 dictionary size to meet the memory usage limit. This
5541     obviously affects the compressed output. However, if xz was in
5542     threaded mode, --memlimit-compress could make xz reduce the number
5543     of threads but it wouldn't make xz switch from multithreaded mode
5544     to single-threaded mode or scale down the LZMA2 dictionary size.
5545     This seemed illogical and there was even a "FIXME?" about it.
5546     
5547     Now --memlimit-compress can make xz switch to single-threaded
5548     mode if one thread in multithreaded mode uses too much memory.
5549     If memory usage is still too high, then the LZMA2 dictionary
5550     size can be scaled down too.
5551     
5552     The option --no-adjust was also changed so that it no longer
5553     prevents xz from scaling down the number of threads as that
5554     doesn't affect compressed output (only performance). After
5555     this commit --no-adjust only prevents adjustments that affect
5556     compressed output, that is, with --no-adjust xz won't switch
5557     from multithreaded mode to single-threaded mode and won't
5558     scale down the LZMA2 dictionary size.
5559     
5560     The man page wasn't updated yet.
5561
5562  src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++-------------------
5563  1 file changed, 43 insertions(+), 20 deletions(-)
5564
5565 commit cad299008cf73ec566f0662a9cf2b94f86a99659
5566 Author: Lasse Collin <lasse.collin@tukaani.org>
5567 Date:   2022-04-11 22:20:49 +0300
5568
5569     xz: Add --memlimit-mt-decompress along with a default limit value.
5570     
5571     --memlimit-mt-decompress allows specifying the limit for
5572     multithreaded decompression. This matches memlimit_threading in
5573     liblzma. This limit can only affect the number of threads being
5574     used; it will never prevent xz from decompressing a file. The
5575     old --memlimit-decompress option is still used at the same time.
5576     
5577     If the value of --memlimit-decompress (the default value or
5578     one specified by the user) is less than the value of
5579     --memlimit-mt-decompress , then --memlimit-mt-decompress is
5580     reduced to match --memlimit-decompress.
5581     
5582     Man page wasn't updated yet.
5583
5584  src/xz/args.c     | 24 +++++++++++++++-------
5585  src/xz/coder.c    | 34 ++++++++++---------------------
5586  src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
5587  src/xz/hardware.h | 17 ++++++++++------
5588  src/xz/message.c  |  4 +++-
5589  5 files changed, 97 insertions(+), 42 deletions(-)
5590
5591 commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
5592 Author: Lasse Collin <lasse.collin@tukaani.org>
5593 Date:   2022-04-06 23:11:59 +0300
5594
5595     liblzma: Threaded decoder: Improve setting of pending_error.
5596     
5597     It doesn't need to be done conditionally. The comments try
5598     to explain it.
5599
5600  src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++-----------
5601  1 file changed, 35 insertions(+), 16 deletions(-)
5602
5603 commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
5604 Author: Lasse Collin <lasse.collin@tukaani.org>
5605 Date:   2022-04-06 12:39:49 +0300
5606
5607     liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder.
5608     
5609     In most cases if the input file is corrupt the application won't
5610     care about the uncompressed content at all. With this new flag
5611     the threaded decoder will return an error as soon as any thread
5612     has detected an error; it won't wait to copy out the data before
5613     the location of the error.
5614     
5615     I don't plan to use this in xz to keep the behavior consistent
5616     between single-threaded and multi-threaded modes.
5617
5618  src/liblzma/api/lzma/container.h       | 25 ++++++++++++++++-
5619  src/liblzma/common/common.h            |  7 +++--
5620  src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++---------------
5621  3 files changed, 56 insertions(+), 26 deletions(-)
5622
5623 commit 64b6d496dc815a176d8307f418f6834a26783484
5624 Author: Lasse Collin <lasse.collin@tukaani.org>
5625 Date:   2022-04-05 12:24:57 +0300
5626
5627     liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.
5628     
5629     This makes the behavior consistent with the single-threaded
5630     decoder when handling truncated .xz files.
5631     
5632     Thanks to Jia Tan for finding this issue.
5633
5634  src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++--
5635  1 file changed, 24 insertions(+), 2 deletions(-)
5636
5637 commit e671bc8828b9c0c5406c3a22c541301d0eb54518
5638 Author: Lasse Collin <lasse.collin@tukaani.org>
5639 Date:   2022-04-02 21:49:59 +0300
5640
5641     liblzma: Threaded decoder: Support zpipe.c-style decoding loop.
5642     
5643     This makes it possible to call lzma_code() in a loop that only
5644     reads new input when lzma_code() didn't fill the output buffer
5645     completely. That isn't the calling style suggested by the
5646     liblzma example program 02_decompress.c so perhaps the usefulness
5647     of this feature is limited.
5648     
5649     Also, it is possible to write such a loop so that it works
5650     with the single-threaded decoder but not with the threaded
5651     decoder even after this commit, or so that it works only if
5652     lzma_mt.timeout = 0.
5653     
5654     The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known
5655     example of a loop where more input is read only when output isn't
5656     full. Porting this as is to liblzma would work with the
5657     single-threaded decoder (if LZMA_CONCATENATED isn't used) but it
5658     wouldn't work with threaded decoder even after this commit because
5659     the loop assumes that no more output is possible when it cannot
5660     read more input ("if (strm.avail_in == 0) break;"). This cannot
5661     be fixed at liblzma side; the loop has to be modified at least
5662     a little.
5663     
5664     I'm adding this in any case because the actual code is simple
5665     and short and should have no harmful side-effects in other
5666     situations.
5667
5668  src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++-----
5669  1 file changed, 67 insertions(+), 10 deletions(-)
5670
5671 commit 2ba8173e27be4793edb46497e499ac2ae753a316
5672 Author: Lasse Collin <lasse.collin@tukaani.org>
5673 Date:   2022-03-31 00:05:07 +0300
5674
5675     Update THANKS.
5676
5677  THANKS | 1 +
5678  1 file changed, 1 insertion(+)
5679
5680 commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
5681 Author: Lasse Collin <lasse.collin@tukaani.org>
5682 Date:   2022-03-29 19:19:12 +0300
5683
5684     xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
5685     
5686     Malicious filenames can make xzgrep to write to arbitrary files
5687     or (with a GNU sed extension) lead to arbitrary code execution.
5688     
5689     xzgrep from XZ Utils versions up to and including 5.2.5 are
5690     affected. 5.3.1alpha and 5.3.2alpha are affected as well.
5691     This patch works for all of them.
5692     
5693     This bug was inherited from gzip's zgrep. gzip 1.12 includes
5694     a fix for zgrep.
5695     
5696     The issue with the old sed script is that with multiple newlines,
5697     the N-command will read the second line of input, then the
5698     s-commands will be skipped because it's not the end of the
5699     file yet, then a new sed cycle starts and the pattern space
5700     is printed and emptied. So only the last line or two get escaped.
5701     
5702     One way to fix this would be to read all lines into the pattern
5703     space first. However, the included fix is even simpler: All lines
5704     except the last line get a backslash appended at the end. To ensure
5705     that shell command substitution doesn't eat a possible trailing
5706     newline, a colon is appended to the filename before escaping.
5707     The colon is later used to separate the filename from the grep
5708     output so it is fine to add it here instead of a few lines later.
5709     
5710     The old code also wasn't POSIX compliant as it used \n in the
5711     replacement section of the s-command. Using \<newline> is the
5712     POSIX compatible method.
5713     
5714     LC_ALL=C was added to the two critical sed commands. POSIX sed
5715     manual recommends it when using sed to manipulate pathnames
5716     because in other locales invalid multibyte sequences might
5717     cause issues with some sed implementations. In case of GNU sed,
5718     these particular sed scripts wouldn't have such problems but some
5719     other scripts could have, see:
5720     
5721         info '(sed)Locale Considerations'
5722     
5723     This vulnerability was discovered by:
5724     cleemy desu wayo working with Trend Micro Zero Day Initiative
5725     
5726     Thanks to Jim Meyering and Paul Eggert discussing the different
5727     ways to fix this and for coordinating the patch release schedule
5728     with gzip.
5729
5730  src/scripts/xzgrep.in | 20 ++++++++++++--------
5731  1 file changed, 12 insertions(+), 8 deletions(-)
5732
5733 commit bd93b776c1bd15e90661033c918cdeb354dbcc38
5734 Author: Lasse Collin <lasse.collin@tukaani.org>
5735 Date:   2022-03-26 01:02:44 +0200
5736
5737     liblzma: Fix a deadlock in threaded decoder.
5738     
5739     If a worker thread has consumed all input so far and it's
5740     waiting on thr->cond and then the main thread enables
5741     partial update for that thread, the code used to deadlock.
5742     This commit allows one dummy decoding pass to occur in this
5743     situation which then also does the partial update.
5744     
5745     As part of the fix, this moves thr->progress_* updates to
5746     avoid the second thr->mutex locking.
5747     
5748     Thanks to Jia Tan for finding, debugging, and reporting the bug.
5749
5750  src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++---------
5751  1 file changed, 52 insertions(+), 19 deletions(-)
5752
5753 commit e0394e94230f208682ac1e1f4c41f22f9ad79916
5754 Author: Lasse Collin <lasse.collin@tukaani.org>
5755 Date:   2022-03-23 16:34:00 +0200
5756
5757     Update THANKS.
5758
5759  THANKS | 1 +
5760  1 file changed, 1 insertion(+)
5761
5762 commit 487c77d48760564b1949c5067630b675b87be4de
5763 Author: Lasse Collin <lasse.collin@tukaani.org>
5764 Date:   2022-03-23 16:28:55 +0200
5765
5766     liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT.
5767     
5768     LZMA_TIMED_OUT is not an error and thus stopping threads on
5769     LZMA_TIMED_OUT breaks the decoder badly.
5770     
5771     Thanks to Jia Tan for finding the bug and for the patch.
5772
5773  src/liblzma/common/stream_decoder_mt.c | 2 +-
5774  1 file changed, 1 insertion(+), 1 deletion(-)
5775
5776 commit 6c6da57ae2aa962aabde6892442227063d87e88c
5777 Author: Lasse Collin <lasse.collin@tukaani.org>
5778 Date:   2022-03-07 00:36:16 +0200
5779
5780     xz: Add initial support for threaded decompression.
5781     
5782     If threading support is enabled at build time, this will
5783     use lzma_stream_decoder_mt() even for single-threaded mode.
5784     With memlimit_threading=0 the behavior should be identical.
5785     
5786     This needs some work like adding --memlimit-threading=LIMIT.
5787     
5788     The original patch from Sebastian Andrzej Siewior included
5789     a method to get currently available RAM on Linux. It might
5790     be one way to go but as it is Linux-only, the available-RAM
5791     approach needs work for portability or using a fallback method
5792     on other OSes.
5793     
5794     The man page wasn't updated yet.
5795
5796  src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++-
5797  1 file changed, 35 insertions(+), 1 deletion(-)
5798
5799 commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
5800 Author: Lasse Collin <lasse.collin@tukaani.org>
5801 Date:   2022-03-06 23:36:20 +0200
5802
5803     liblzma: Add threaded .xz decompressor.
5804     
5805     I realize that this is about a decade late.
5806     
5807     Big thanks to Sebastian Andrzej Siewior for the original patch.
5808     I made a bunch of smaller changes but after a while quite a few
5809     things got rewritten. So any bugs in the commit were created by me.
5810
5811  src/liblzma/api/lzma/container.h       |   90 +-
5812  src/liblzma/common/Makefile.inc        |    5 +
5813  src/liblzma/common/common.h            |    4 +
5814  src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++
5815  src/liblzma/liblzma.map                |    1 +
5816  5 files changed, 1907 insertions(+), 7 deletions(-)
5817
5818 commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
5819 Author: Lasse Collin <lasse.collin@tukaani.org>
5820 Date:   2022-03-06 16:54:23 +0200
5821
5822     liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
5823     
5824     If Check is unsupported, it will be silently ignored.
5825     It's the caller's job to handle it.
5826
5827  src/liblzma/api/lzma/block.h | 3 ---
5828  1 file changed, 3 deletions(-)
5829
5830 commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
5831 Author: Lasse Collin <lasse.collin@tukaani.org>
5832 Date:   2022-03-06 16:41:19 +0200
5833
5834     liblzma: Add new output queue (lzma_outq) features.
5835     
5836     Add lzma_outq_clear_cache2() which may leave one buffer allocated
5837     in the cache.
5838     
5839     Add lzma_outq_outbuf_memusage() to get the memory needed for
5840     a single lzma_outbuf. This is now used internally in outqueue.c too.
5841     
5842     Track both the total amount of memory allocated and the amount of
5843     memory that is in active use (not in cache).
5844     
5845     In lzma_outbuf, allow storing the current input position that
5846     matches the current output position. This way the main thread
5847     can notice when no more output is possible without first providing
5848     more input.
5849     
5850     Allow specifying return code for lzma_outq_read() in a finished
5851     lzma_outbuf.
5852
5853  src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++-------
5854  src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
5855  2 files changed, 79 insertions(+), 8 deletions(-)
5856
5857 commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
5858 Author: Lasse Collin <lasse.collin@tukaani.org>
5859 Date:   2022-03-06 15:18:58 +0200
5860
5861     liblzma: Index hash: Change return value type of hash_append() to void.
5862
5863  src/liblzma/common/index_hash.c | 11 +++++------
5864  1 file changed, 5 insertions(+), 6 deletions(-)
5865
5866 commit 20e7a33e2d59c6a814447d3991f21e2702174b20
5867 Author: Lasse Collin <lasse.collin@tukaani.org>
5868 Date:   2022-02-22 03:42:57 +0200
5869
5870     liblzma: Minor addition to lzma_vli_size() API doc.
5871     
5872     Thanks to Jia Tan.
5873
5874  src/liblzma/api/lzma/vli.h | 2 ++
5875  1 file changed, 2 insertions(+)
5876
5877 commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
5878 Author: Lasse Collin <lasse.collin@tukaani.org>
5879 Date:   2022-02-22 02:04:18 +0200
5880
5881     liblzma: Check the return value of lzma_index_append() in threaded encoder.
5882     
5883     If lzma_index_append() failed (most likely memory allocation failure)
5884     it could have gone unnoticed and the resulting .xz file would have
5885     an incorrect Index. Decompressing such a file would produce the
5886     correct uncompressed data but then an error would occur when
5887     verifying the Index field.
5888
5889  src/liblzma/common/stream_encoder_mt.c | 7 +++++--
5890  1 file changed, 5 insertions(+), 2 deletions(-)
5891
5892 commit 5313ad66b40aab822ddca3e9905254cb99a4080d
5893 Author: Lasse Collin <lasse.collin@tukaani.org>
5894 Date:   2022-02-22 01:37:39 +0200
5895
5896     Update THANKS.
5897
5898  THANKS | 1 +
5899  1 file changed, 1 insertion(+)
5900
5901 commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
5902 Author: Ed Maste <emaste@FreeBSD.org>
5903 Date:   2022-02-11 15:25:46 +0000
5904
5905     liblzma: Use non-executable stack on FreeBSD as on Linux
5906
5907  src/liblzma/check/crc32_x86.S | 4 ++--
5908  src/liblzma/check/crc64_x86.S | 4 ++--
5909  2 files changed, 4 insertions(+), 4 deletions(-)
5910
5911 commit 1c9a5786d206b4abc8e427326651c8174baea753
5912 Author: Lasse Collin <lasse.collin@tukaani.org>
5913 Date:   2022-02-20 20:36:27 +0200
5914
5915     liblzma: Make Block decoder catch certain types of errors better.
5916     
5917     Now it limits the input and output buffer sizes that are
5918     passed to a raw decoder. This way there's no need to check
5919     if the sizes can grow too big or overflow when updating
5920     Compressed Size and Uncompressed Size counts. This also means
5921     that a corrupt file cannot cause the raw decoder to process
5922     useless extra input or output that would exceed the size info
5923     in Block Header (and thus cause LZMA_DATA_ERROR anyway).
5924     
5925     More importantly, now the size information is verified more
5926     carefully in case raw decoder returns LZMA_OK. This doesn't
5927     really matter with the current single-threaded .xz decoder
5928     as the errors would be detected slightly later anyway. But
5929     this helps avoiding corner cases in the upcoming threaded
5930     decompressor, and it might help other Block decoder uses
5931     outside liblzma too.
5932     
5933     The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
5934     With the single-threaded .xz decoder the only difference is
5935     that LZMA_DATA_ERROR is detected in a difference place now.
5936
5937  src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
5938  1 file changed, 54 insertions(+), 25 deletions(-)
5939
5940 commit 555de11873eb00c9b94a8be70645db502e5a9dbd
5941 Author: Lasse Collin <lasse.collin@tukaani.org>
5942 Date:   2022-02-20 19:38:55 +0200
5943
5944     Tests: Add bad-1-lzma2-11.xz.
5945
5946  tests/files/README            |   5 +++++
5947  tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
5948  2 files changed, 5 insertions(+)
5949
5950 commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
5951 Author: Lasse Collin <lasse.collin@tukaani.org>
5952 Date:   2022-02-18 18:51:10 +0200
5953
5954     Translations: Fix po4a failure with the French man page translations.
5955     
5956     Thanks to Mario Blättermann for the patch.
5957
5958  po4a/fr_FR.po | 6 ++++--
5959  1 file changed, 4 insertions(+), 2 deletions(-)
5960
5961 commit f7711d228c3c32395460c82498c60a9f730d0239
5962 Author: Lasse Collin <lasse.collin@tukaani.org>
5963 Date:   2022-02-07 01:14:37 +0200
5964
5965     Translations: Add French translation of man pages.
5966     
5967     This matches xz-utils 5.2.5-2 in Debian.
5968     
5969     The translation was done by "bubu", proofread by the debian-l10n-french
5970     mailing list contributors, and submitted to me on the xz-devel mailing
5971     list by Jean-Pierre Giraud. Thanks to everyone!
5972
5973  po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5974  po4a/po4a.conf |    2 +-
5975  2 files changed, 3542 insertions(+), 1 deletion(-)
5976
5977 commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
5978 Author: jiat75 <jiat0218@gmail.com>
5979 Date:   2022-01-28 20:47:55 +0800
5980
5981     liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
5982     
5983     Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
5984     assumed that the options pointers must be non-NULL because the
5985     with these filters the API says it must never be NULL. It is
5986     good to do these checks anyway.
5987
5988  src/liblzma/lzma/lzma2_encoder.c | 3 +++
5989  src/liblzma/lzma/lzma_encoder.c  | 3 +++
5990  2 files changed, 6 insertions(+)
5991
5992 commit 2523c30705f49eabd27b854aa656ae87cc224808
5993 Author: Lasse Collin <lasse.collin@tukaani.org>
5994 Date:   2022-02-06 23:19:32 +0200
5995
5996     liblzma: Fix uint64_t vs. size_t confusion.
5997     
5998     This broke 32-bit builds due to a pointer type mismatch.
5999     
6000     This bug was introduced with the output-size-limited encoding
6001     in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
6002     
6003     Thanks to huangqinjin for the bug report.
6004
6005  src/liblzma/rangecoder/range_encoder.h | 11 +++++++----
6006  1 file changed, 7 insertions(+), 4 deletions(-)
6007
6008 commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
6009 Author: huangqinjin <huangqinjin@gmail.com>
6010 Date:   2021-12-13 20:49:21 +0800
6011
6012     CMake: Keep compatible with Windows 95 for 32-bit build.
6013
6014  CMakeLists.txt | 12 +++++++++++-
6015  1 file changed, 11 insertions(+), 1 deletion(-)
6016
6017 commit 2024fbf2794885277d05378d40b2b8015a7c3b40
6018 Author: Lasse Collin <lasse.collin@tukaani.org>
6019 Date:   2021-11-13 21:04:05 +0200
6020
6021     xzgrep: Update man page timestamp.
6022
6023  src/scripts/xzgrep.1 | 2 +-
6024  1 file changed, 1 insertion(+), 1 deletion(-)
6025
6026 commit 400e7a239a53282cedaad927a41f3463d7f542e5
6027 Author: Lasse Collin <lasse.collin@tukaani.org>
6028 Date:   2021-11-13 18:23:24 +0200
6029
6030     Update THANKS.
6031
6032  THANKS | 1 +
6033  1 file changed, 1 insertion(+)
6034
6035 commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
6036 Author: Ville Skyttä <ville.skytta@iki.fi>
6037 Date:   2021-11-13 10:11:57 +0200
6038
6039     xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
6040     
6041     `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
6042     current post 3.7 Git they have been made to emit obsolescence warnings:
6043     https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
6044
6045  src/scripts/xzgrep.1  | 8 ++++----
6046  src/scripts/xzgrep.in | 4 ++--
6047  2 files changed, 6 insertions(+), 6 deletions(-)
6048
6049 commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
6050 Author: Lasse Collin <lasse.collin@tukaani.org>
6051 Date:   2021-10-28 23:02:11 +0300
6052
6053     Bump the version number for 5.3.2alpha.
6054
6055  src/liblzma/api/lzma/version.h | 2 +-
6056  src/liblzma/liblzma.map        | 2 +-
6057  2 files changed, 2 insertions(+), 2 deletions(-)
6058
6059 commit ea8c948655a86290524efe59cff067e06a886709
6060 Author: Lasse Collin <lasse.collin@tukaani.org>
6061 Date:   2021-10-28 22:59:52 +0300
6062
6063     Add NEWS for 5.3.2alpha.
6064
6065  NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6066  1 file changed, 86 insertions(+)
6067
6068 commit 52435f302f4724157ec50b4210cbe42b285c3cbc
6069 Author: Lasse Collin <lasse.collin@tukaani.org>
6070 Date:   2021-10-27 23:27:48 +0300
6071
6072     Update THANKS.
6073
6074  THANKS | 1 +
6075  1 file changed, 1 insertion(+)
6076
6077 commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
6078 Author: Lasse Collin <lasse.collin@tukaani.org>
6079 Date:   2021-10-27 23:23:11 +0300
6080
6081     xz: Change the coding style of the previous commit.
6082     
6083     It isn't any better now but it's consistent with
6084     the rest of the code base.
6085
6086  src/xz/file_io.c | 11 ++++++-----
6087  1 file changed, 6 insertions(+), 5 deletions(-)
6088
6089 commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
6090 Author: Alexander Bluhm <alexander.bluhm@gmx.net>
6091 Date:   2021-10-05 23:33:16 +0200
6092
6093     xz: Avoid fchown(2) failure.
6094     
6095     OpenBSD does not allow to change the group of a file if the user
6096     does not belong to this group.  In contrast to Linux, OpenBSD also
6097     fails if the new group is the same as the old one.  Do not call
6098     fchown(2) in this case, it would change nothing anyway.
6099     
6100     This fixes an issue with Perl Alien::Build module.
6101     https://github.com/PerlAlien/Alien-Build/issues/62
6102
6103  src/xz/file_io.c | 8 +++++++-
6104  1 file changed, 7 insertions(+), 1 deletion(-)
6105
6106 commit 2b509c868cae3988bf21cd693fbf9021cdc85628
6107 Author: Lasse Collin <lasse.collin@tukaani.org>
6108 Date:   2021-09-17 17:31:11 +0300
6109
6110     liblzma: Fix liblzma.map for the lzma_microlzma_* symbols.
6111     
6112     This should have been part of d267d109c370a40b502e73f8664b154b15e4f253.
6113     
6114     Thanks to Gao Xiang.
6115
6116  src/liblzma/liblzma.map | 4 ++--
6117  1 file changed, 2 insertions(+), 2 deletions(-)
6118
6119 commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
6120 Author: Lasse Collin <lasse.collin@tukaani.org>
6121 Date:   2021-09-09 22:21:07 +0300
6122
6123     Update THANKS.
6124
6125  THANKS | 1 +
6126  1 file changed, 1 insertion(+)
6127
6128 commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
6129 Author: Lasse Collin <lasse.collin@tukaani.org>
6130 Date:   2021-09-09 21:41:51 +0300
6131
6132     liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
6133     
6134     By default, MSVC always sets __cplusplus to 199711L. The real
6135     C++ standard version is available in _MSVC_LANG (or one could
6136     use /Zc:__cplusplus to set __cplusplus correctly).
6137     
6138     Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
6139     
6140     Thanks to Dan Weiss.
6141
6142  src/liblzma/api/lzma.h | 3 ++-
6143  1 file changed, 2 insertions(+), 1 deletion(-)
6144
6145 commit d267d109c370a40b502e73f8664b154b15e4f253
6146 Author: Lasse Collin <lasse.collin@tukaani.org>
6147 Date:   2021-09-05 20:38:12 +0300
6148
6149     liblzma: Rename EROFS LZMA to MicroLZMA.
6150     
6151     It still exists primarily for EROFS but MicroLZMA is
6152     a more generic name (that hopefully doesn't clash with
6153     something that already exists).
6154
6155  src/liblzma/api/lzma/container.h                   | 33 +++++++++++++---------
6156  src/liblzma/common/Makefile.inc                    |  4 +--
6157  .../{erofs_decoder.c => microlzma_decoder.c}       | 32 ++++++++++-----------
6158  .../{erofs_encoder.c => microlzma_encoder.c}       | 30 ++++++++++----------
6159  4 files changed, 52 insertions(+), 47 deletions(-)
6160
6161 commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
6162 Author: Lasse Collin <lasse.collin@tukaani.org>
6163 Date:   2021-06-04 19:02:38 +0300
6164
6165     xzdiff: Update the man page about the exit status.
6166     
6167     This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.
6168
6169  src/scripts/xzdiff.1 | 4 ++--
6170  1 file changed, 2 insertions(+), 2 deletions(-)
6171
6172 commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
6173 Author: Lasse Collin <lasse.collin@tukaani.org>
6174 Date:   2021-06-04 18:52:48 +0300
6175
6176     xzless: Fix less(1) version detection when it contains a dot.
6177     
6178     Sometimes the version number from "less -V" contains a dot,
6179     sometimes not. xzless failed detect the version number when
6180     it does contain a dot. This fixes it.
6181     
6182     Thanks to nick87720z for reporting this. Apparently it had been
6183     reported here <https://bugs.gentoo.org/489362> in 2013.
6184
6185  src/scripts/xzless.in | 2 +-
6186  1 file changed, 1 insertion(+), 1 deletion(-)
6187
6188 commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
6189 Author: Lasse Collin <lasse.collin@tukaani.org>
6190 Date:   2021-04-11 19:58:10 +0300
6191
6192     Update THANKS.
6193
6194  THANKS | 2 ++
6195  1 file changed, 2 insertions(+)
6196
6197 commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
6198 Author: Ivan A. Melnikov <iv@altlinux.org>
6199 Date:   2021-04-09 11:45:10 +0300
6200
6201     Reduce maximum possible memory limit on MIPS32
6202     
6203     Due to architectural limitations, address space available to a single
6204     userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
6205     that have more physical RAM -- e.g. 64-bit systems with 32-bit
6206     userspace, or systems that use XPA (an extension similar to x86's PAE).
6207     
6208     So, for MIPS32, we have to impose stronger memory limits. I've chosen
6209     2000MiB to give the process some headroom.
6210
6211  src/xz/hardware.c | 6 ++++++
6212  1 file changed, 6 insertions(+)
6213
6214 commit e7da44d5151e21f153925781ad29334ae0786101
6215 Author: Lasse Collin <lasse.collin@tukaani.org>
6216 Date:   2021-02-13 23:31:27 +0200
6217
6218     CMake: Use interface library for better FindLibLZMA compatibility.
6219     
6220     https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
6221     
6222     Thanks to Markus Rickert.
6223
6224  CMakeLists.txt | 11 +++++++++--
6225  1 file changed, 9 insertions(+), 2 deletions(-)
6226
6227 commit a61dd82ada39030f41b4ffca9ea551714908bedc
6228 Author: Lasse Collin <lasse.collin@tukaani.org>
6229 Date:   2021-01-30 18:36:04 +0200
6230
6231     CMake: Try to improve compatibility with the FindLibLZMA module.
6232     
6233     The naming conflict with FindLibLZMA module gets worse.
6234     Not avoiding it in the first place was stupid.
6235     
6236     Normally find_package(LibLZMA) will use the module and
6237     find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
6238     file even with a case insensitive file system. However, if
6239     CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
6240     is case insensitive, find_package(LibLZMA) will find our liblzma
6241     config file instead of using FindLibLZMA module.
6242     
6243     One big problem with this is that FindLibLZMA uses
6244     LibLZMA::LibLZMA and we use liblzma::liblzma as the target
6245     name. With target names CMake happens to be case sensitive.
6246     To workaround this, this commit adds
6247     
6248         add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
6249     
6250     to the config file. Then both spellings work.
6251     
6252     To make the behavior consistent between case sensitive and
6253     insensitive file systems, the config and related files are
6254     renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
6255     With this style CMake looks for lowercase version of the package
6256     name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
6257     to find our config file.
6258     
6259     There are other differences between our config file and
6260     FindLibLZMA so it's still possible that things break for
6261     reasons other than the spelling of the target name. Hopefully
6262     those situations aren't too common.
6263     
6264     When the config file is available, it should always give as good or
6265     better results as FindLibLZMA so this commit doesn't affect the
6266     recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
6267     which explicitly avoids FindLibLZMA.
6268     
6269     Thanks to Markus Rickert.
6270
6271  CMakeLists.txt | 21 +++++++++++++--------
6272  1 file changed, 13 insertions(+), 8 deletions(-)
6273
6274 commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
6275 Author: Lasse Collin <lasse.collin@tukaani.org>
6276 Date:   2021-01-29 21:19:43 +0200
6277
6278     Update THANKS.
6279
6280  THANKS | 1 +
6281  1 file changed, 1 insertion(+)
6282
6283 commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
6284 Author: Lasse Collin <lasse.collin@tukaani.org>
6285 Date:   2021-01-29 21:19:08 +0200
6286
6287     liblzma: Fix unitialized variable.
6288     
6289     This was introduced two weeks ago in the commit
6290     625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
6291     
6292     Thanks to Nathan Moinvaziri.
6293
6294  src/liblzma/lzma/lzma_encoder.c | 1 +
6295  1 file changed, 1 insertion(+)
6296
6297 commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
6298 Author: Lasse Collin <lasse.collin@tukaani.org>
6299 Date:   2021-01-24 22:32:41 +0200
6300
6301     Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.
6302
6303  tests/files/README            |  11 +++++++++--
6304  tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
6305  tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
6306  3 files changed, 9 insertions(+), 2 deletions(-)
6307
6308 commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
6309 Author: Lasse Collin <lasse.collin@tukaani.org>
6310 Date:   2021-01-24 19:22:35 +0200
6311
6312     liblzma: Fix a wrong comment in stream_encoder_mt.c.
6313
6314  src/liblzma/common/stream_encoder_mt.c | 10 +++++++---
6315  1 file changed, 7 insertions(+), 3 deletions(-)
6316
6317 commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
6318 Author: Lasse Collin <lasse.collin@tukaani.org>
6319 Date:   2021-01-24 18:51:51 +0200
6320
6321     Tests: Add bad-1-lzma2-9.xz.
6322
6323  tests/files/README           |   4 ++++
6324  tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
6325  2 files changed, 4 insertions(+)
6326
6327 commit fdd30032f8531ac89519b48c21d810ecf06825f6
6328 Author: Lasse Collin <lasse.collin@tukaani.org>
6329 Date:   2021-01-24 17:02:00 +0200
6330
6331     Tests: Add bad-1-check-crc32-2.xz.
6332
6333  tests/files/README                 |   7 +++++++
6334  tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
6335  2 files changed, 7 insertions(+)
6336
6337 commit db465419ae26ec7fb9b9472183911ff521620c77
6338 Author: Lasse Collin <lasse.collin@tukaani.org>
6339 Date:   2021-01-17 19:20:50 +0200
6340
6341     liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end.
6342     
6343     When the uncompressed size is known to be exact, after decompressing
6344     the stream exactly comp_size bytes of input must have been consumed.
6345     This is a minor improvement to error detection.
6346
6347  src/liblzma/common/erofs_decoder.c | 7 ++++++-
6348  1 file changed, 6 insertions(+), 1 deletion(-)
6349
6350 commit 774cc0118ba2496581cb2621505a04bb6598cc75
6351 Author: Lasse Collin <lasse.collin@tukaani.org>
6352 Date:   2021-01-17 18:53:34 +0200
6353
6354     liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known.
6355     
6356     The caller must still not specify an uncompressed size bigger
6357     than the actual uncompressed size.
6358     
6359     As a downside, this now needs the exact compressed size.
6360
6361  src/liblzma/api/lzma/container.h   | 23 ++++++++---
6362  src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++----
6363  2 files changed, 91 insertions(+), 12 deletions(-)
6364
6365 commit 421b0aa352da244075db10205cf33712f91b9835
6366 Author: Lasse Collin <lasse.collin@tukaani.org>
6367 Date:   2021-01-14 20:57:11 +0200
6368
6369     liblzma: Fix missing normalization in rc_encode_dummy().
6370     
6371     Without this fix it could attempt to create too much output.
6372
6373  src/liblzma/rangecoder/range_encoder.h | 7 ++++++-
6374  1 file changed, 6 insertions(+), 1 deletion(-)
6375
6376 commit 601ec0311e769fc704daaaa7dac0ca840aff080e
6377 Author: Lasse Collin <lasse.collin@tukaani.org>
6378 Date:   2021-01-14 20:07:01 +0200
6379
6380     liblzma: Add EROFS LZMA encoder and decoder.
6381     
6382     Right now this is just a planned extra-compact format for use
6383     in the EROFS file system in Linux. At this point it's possible
6384     that the format will either change or be abandoned and removed
6385     completely.
6386     
6387     The special thing about the encoder is that it uses the
6388     output-size-limited encoding added in the previous commit.
6389     EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed
6390     data so the compressors must be able to create valid streams
6391     that fill the given block size.
6392
6393  src/liblzma/api/lzma/container.h   |  76 +++++++++++++++++++
6394  src/liblzma/common/Makefile.inc    |   2 +
6395  src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++
6396  src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++
6397  src/liblzma/liblzma.map            |   2 +
6398  5 files changed, 367 insertions(+)
6399
6400 commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
6401 Author: Lasse Collin <lasse.collin@tukaani.org>
6402 Date:   2021-01-13 19:16:32 +0200
6403
6404     liblzma: Add rough support for output-size-limited encoding in LZMA1.
6405     
6406     With this it is possible to encode LZMA1 data without EOPM so that
6407     the encoder will encode as much input as it can without exceeding
6408     the specified output size limit. The resulting LZMA1 stream will
6409     be a normal LZMA1 stream without EOPM. The actual uncompressed size
6410     will be available to the caller via the uncomp_size pointer.
6411     
6412     One missing thing is that the LZMA layer doesn't inform the LZ layer
6413     when the encoding is finished and thus the LZ may read more input
6414     when it won't be used. However, this doesn't matter if encoding is
6415     done with a single call (which is the planned use case for now).
6416     For proper multi-call encoding this should be improved.
6417     
6418     This commit only adds the functionality for internal use.
6419     Nothing uses it yet.
6420
6421  src/liblzma/common/common.h             |  11 +++
6422  src/liblzma/lz/lz_encoder.c             |  16 ++++
6423  src/liblzma/lz/lz_encoder.h             |   4 +
6424  src/liblzma/lzma/lzma_encoder.c         | 127 +++++++++++++++++++++++---------
6425  src/liblzma/lzma/lzma_encoder_private.h |  12 +++
6426  src/liblzma/rangecoder/range_encoder.h  | 111 ++++++++++++++++++++++++++++
6427  6 files changed, 246 insertions(+), 35 deletions(-)
6428
6429 commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
6430 Author: Lasse Collin <lasse.collin@tukaani.org>
6431 Date:   2021-01-11 23:57:11 +0200
6432
6433     Scripts: Add zstd support to xzdiff.
6434
6435  src/scripts/xzdiff.1  |  6 ++++--
6436  src/scripts/xzdiff.in | 16 +++++++++++-----
6437  2 files changed, 15 insertions(+), 7 deletions(-)
6438
6439 commit d9ec3add97cf4c999a7f594c6529680227b6c274
6440 Author: Lasse Collin <lasse.collin@tukaani.org>
6441 Date:   2021-01-11 23:41:30 +0200
6442
6443     Update THANKS.
6444
6445  THANKS | 2 ++
6446  1 file changed, 2 insertions(+)
6447
6448 commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
6449 Author: Lasse Collin <lasse.collin@tukaani.org>
6450 Date:   2021-01-11 23:41:16 +0200
6451
6452     xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
6453     
6454     Previously this required using --force but that has other
6455     effects too which might be undesirable. Changing the behavior
6456     of --keep has a small risk of breaking existing scripts but
6457     since this is a fairly special corner case I expect the
6458     likehood of breakage to be low enough.
6459     
6460     I think the new behavior is more logical. The only reason for
6461     the old behavior was to be consistent with gzip and bzip2.
6462     
6463     Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.
6464
6465  src/xz/file_io.c |  9 +++++----
6466  src/xz/xz.1      | 16 +++++++++++++++-
6467  2 files changed, 20 insertions(+), 5 deletions(-)
6468
6469 commit 73c555b3077c19dda29b6f4592ced2af876f8333
6470 Author: Lasse Collin <lasse.collin@tukaani.org>
6471 Date:   2021-01-11 23:28:52 +0200
6472
6473     Scripts: Fix exit status of xzgrep.
6474     
6475     Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
6476     matter. With gzip it's important because -q makes gzip replace SIGPIPE
6477     with exit status 2. With bzip2 it's important because with -q bzip2
6478     is completely silent if input is corrupt while other decompressors
6479     still give an error message.
6480     
6481     Avoiding exit status 2 from gzip is important because bzip2 uses
6482     exit status 2 to indicate corrupt input. Before this commit xzgrep
6483     didn't recognize corrupt .bz2 files because xzgrep was treating
6484     exit status 2 as SIGPIPE for gzip compatibility.
6485     
6486     zstd still needs -q because otherwise it is noisy in normal
6487     operation.
6488     
6489     The code to detect real SIGPIPE didn't check if the exit status
6490     was due to a signal (>= 128) and so could ignore some other exit
6491     status too.
6492
6493  src/scripts/xzgrep.in | 20 +++++++++++++-------
6494  1 file changed, 13 insertions(+), 7 deletions(-)
6495
6496 commit 194029ffaf74282a81f0c299c07f73caca3232ca
6497 Author: Lasse Collin <lasse.collin@tukaani.org>
6498 Date:   2021-01-11 22:01:51 +0200
6499
6500     Scripts: Fix exit status of xzdiff/xzcmp.
6501     
6502     This is a minor fix since this affects only the situation when
6503     the files differ and the exit status is something else than 0.
6504     In such case there could be SIGPIPE from a decompression tool
6505     and that would result in exit status of 2 from xzdiff/xzcmp
6506     while the correct behavior would be to return 1 or whatever
6507     else diff or cmp may have returned.
6508     
6509     This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
6510     I'm not sure why the -q was used in the first place, perhaps it
6511     hides warnings in some situation that I cannot see at the moment.
6512     Hopefully the removal won't introduce a new bug.
6513     
6514     With gzip the -q option was harmful because it made gzip return 2
6515     instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
6516     from gzip) isn't practical because bzip2 uses exit status 2 to
6517     indicate corrupt input file. It's better if SIGPIPE results in
6518     exit status >= 128.
6519     
6520     With bzip2 the removal of -q seems to be good because with -q
6521     it prints nothing if input is corrupt. The other tools aren't
6522     silent in this situation even with -q. On the other hand, if
6523     zstd support is added, it will need -q since otherwise it's
6524     noisy in normal situations.
6525     
6526     Thanks to Étienne Mollier and Sebastian Andrzej Siewior.
6527
6528  src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
6529  1 file changed, 21 insertions(+), 14 deletions(-)
6530
6531 commit f7fa309e1f7178d04c7bedc03b73077639371e97
6532 Author: Lasse Collin <lasse.collin@tukaani.org>
6533 Date:   2021-01-09 21:14:36 +0200
6534
6535     liblzma: Make lzma_outq usable for threaded decompression too.
6536     
6537     Before this commit all output queue buffers were allocated as
6538     a single big allocation. Now each buffer is allocated separately
6539     when needed. Used buffers are cached to avoid reallocation
6540     overhead but the cache will keep only one buffer size at a time.
6541     This should make things work OK in the decompression where most
6542     of the time the buffer sizes will be the same but with some less
6543     common files the buffer sizes may vary.
6544     
6545     While this should work fine, it's still a bit preliminary
6546     and may even get reverted if it turns out to be useless for
6547     decompression.
6548
6549  src/liblzma/common/outqueue.c          | 268 +++++++++++++++++++++------------
6550  src/liblzma/common/outqueue.h          | 138 ++++++++++++-----
6551  src/liblzma/common/stream_encoder_mt.c |  52 ++++---
6552  3 files changed, 301 insertions(+), 157 deletions(-)
6553
6554 commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
6555 Author: Lasse Collin <lasse.collin@tukaani.org>
6556 Date:   2020-12-23 17:15:49 +0200
6557
6558     Update THANKS.
6559
6560  THANKS | 1 +
6561  1 file changed, 1 insertion(+)
6562
6563 commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
6564 Author: H.J. Lu <hjl.tools@gmail.com>
6565 Date:   2020-12-23 06:49:04 -0800
6566
6567     liblzma: Enable Intel CET in x86 CRC assembly codes
6568     
6569     When Intel CET is enabled, we need to include <cet.h> in assembly codes
6570     to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
6571     
6572     Tested on Intel Tiger Lake under CET enabled Linux.
6573
6574  src/liblzma/check/crc32_x86.S | 9 +++++++++
6575  src/liblzma/check/crc64_x86.S | 9 +++++++++
6576  2 files changed, 18 insertions(+)
6577
6578 commit bb3b8c6a23e25db79f862b1de325c56052e0354b
6579 Author: Lasse Collin <lasse.collin@tukaani.org>
6580 Date:   2020-12-16 18:33:29 +0200
6581
6582     Update THANKS.
6583
6584  THANKS | 1 +
6585  1 file changed, 1 insertion(+)
6586
6587 commit 21588ca34af98738954fc12ded1b89d7294ef646
6588 Author: Lasse Collin <lasse.collin@tukaani.org>
6589 Date:   2020-12-16 18:30:14 +0200
6590
6591     Build: Don't build bundles on Apple OSes.
6592     
6593     Thanks to Daniel Packard.
6594
6595  CMakeLists.txt | 3 +++
6596  1 file changed, 3 insertions(+)
6597
6598 commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
6599 Author: Lasse Collin <lasse.collin@tukaani.org>
6600 Date:   2020-12-05 22:44:03 +0200
6601
6602     Update THANKS.
6603
6604  THANKS | 1 +
6605  1 file changed, 1 insertion(+)
6606
6607 commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
6608 Author: Adam Borowski <kilobyte@angband.pl>
6609 Date:   2020-09-25 03:35:18 +0200
6610
6611     Scripts: Add zstd support to xzgrep.
6612     
6613     Thanks to Adam Borowski.
6614
6615  src/scripts/xzgrep.1  | 9 ++++++---
6616  src/scripts/xzgrep.in | 1 +
6617  2 files changed, 7 insertions(+), 3 deletions(-)
6618
6619 commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
6620 Author: Lasse Collin <lasse.collin@tukaani.org>
6621 Date:   2020-11-17 20:51:48 +0200
6622
6623     CMake: Fix compatibility with CMake 3.13.
6624     
6625     The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
6626     In some other places the code treats the cache variables
6627     like normal variables already (${FOO} or if(FOO) is used,
6628     not ${CACHE{FOO}).
6629     
6630     Thanks to ygrek for reporting the bug on IRC.
6631
6632  CMakeLists.txt              | 2 +-
6633  cmake/tuklib_cpucores.cmake | 4 ++--
6634  cmake/tuklib_physmem.cmake  | 4 ++--
6635  3 files changed, 5 insertions(+), 5 deletions(-)
6636
6637 commit 5af726a79273fafa5de5745b117e567f21c90e49
6638 Author: Lasse Collin <lasse.collin@tukaani.org>
6639 Date:   2020-11-01 22:56:43 +0200
6640
6641     Update THANKS.
6642
6643  THANKS | 4 +++-
6644  1 file changed, 3 insertions(+), 1 deletion(-)
6645
6646 commit 4575d9d365c756ec189899f9f743e0b3515ce72d
6647 Author: Lasse Collin <lasse.collin@tukaani.org>
6648 Date:   2020-11-01 22:34:25 +0200
6649
6650     xz: Avoid unneeded \f escapes on the man page.
6651     
6652     I don't want to use \c in macro arguments but groff_man(7)
6653     suggests that \f has better portability. \f would be needed
6654     for the .TP strings for portability reasons anyway.
6655     
6656     Thanks to Bjarni Ingi Gislason.
6657
6658  src/xz/xz.1 | 31 ++++++++++++++++++++++---------
6659  1 file changed, 22 insertions(+), 9 deletions(-)
6660
6661 commit 620b32f5339f86710cb4435e01ecdac972ccac73
6662 Author: Lasse Collin <lasse.collin@tukaani.org>
6663 Date:   2020-11-01 19:09:53 +0200
6664
6665     xz: Use non-breaking spaces when intentionally using more than one space.
6666     
6667     This silences some style checker warnings. Seems that spaces
6668     in the beginning of a line don't need this treatment.
6669     
6670     Thanks to Bjarni Ingi Gislason.
6671
6672  src/xz/xz.1 | 2 +-
6673  1 file changed, 1 insertion(+), 1 deletion(-)
6674
6675 commit cb1f34988c8a4130485091b2f8b641303d8f701b
6676 Author: Lasse Collin <lasse.collin@tukaani.org>
6677 Date:   2020-11-01 18:49:37 +0200
6678
6679     xz: Protect the ellipsis (...) on the man page with \&.
6680     
6681     This does it only when ... appears outside macro calls.
6682     
6683     Thanks to Bjarni Ingi Gislason.
6684
6685  src/xz/xz.1 | 4 ++--
6686  1 file changed, 2 insertions(+), 2 deletions(-)
6687
6688 commit 5d224da3da87400f2fab313abbd7c710e7169ef9
6689 Author: Lasse Collin <lasse.collin@tukaani.org>
6690 Date:   2020-11-01 18:41:21 +0200
6691
6692     xz: Avoid the abbreviation "e.g." on the man page.
6693     
6694     A few are simply omitted, most are converted to "for example"
6695     and surrounded with commas. Sounds like that this is better
6696     style, for example, man-pages(7) recommends avoiding such
6697     abbreviations except in parenthesis.
6698     
6699     Thanks to Bjarni Ingi Gislason.
6700
6701  src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
6702  1 file changed, 33 insertions(+), 33 deletions(-)
6703
6704 commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
6705 Author: Lasse Collin <lasse.collin@tukaani.org>
6706 Date:   2020-07-12 23:10:03 +0300
6707
6708     xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
6709     
6710     Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
6711     and \- was used for both minus and en-dash. I don't know how
6712     portable \(en is nowadays but it can be changed back if someone
6713     complains. At least GNU groff and OpenBSD's mandoc support it.
6714     
6715     Thanks to Bjarni Ingi Gislason for the patch.
6716
6717  src/xz/xz.1 | 16 ++++++++--------
6718  1 file changed, 8 insertions(+), 8 deletions(-)
6719
6720 commit 352ba2d69af2136bc814aa1df1a132559d445616
6721 Author: Lasse Collin <lasse.collin@tukaani.org>
6722 Date:   2020-07-12 20:46:24 +0300
6723
6724     Windows: Fix building of resource files when config.h isn't used.
6725     
6726     Now CMake + Visual Studio works for building liblzma.dll.
6727     
6728     Thanks to Markus Rickert.
6729
6730  src/common/common_w32res.rc | 4 +++-
6731  1 file changed, 3 insertions(+), 1 deletion(-)
6732
6733 commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
6734 Author: Lasse Collin <lasse.collin@tukaani.org>
6735 Date:   2020-04-06 19:31:50 +0300
6736
6737     src/scripts/xzgrep.1: Filenames to xzgrep are optional.
6738     
6739     xzgrep --help was correct already.
6740
6741  src/scripts/xzgrep.1 | 2 +-
6742  1 file changed, 1 insertion(+), 1 deletion(-)
6743
6744 commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
6745 Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6746 Date:   2020-03-26 22:17:31 +0000
6747
6748     src/script/xzgrep.1: Remove superfluous '.RB'
6749     
6750     Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
6751     
6752       [ "test-groff" is a developmental version of "groff" ]
6753     
6754     Input file is ./src/scripts/xzgrep.1
6755     
6756     <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
6757     <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
6758     <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
6759     <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
6760     <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
6761     
6762      "abc..." does not mean the same as "abc ...".
6763     
6764       The output from nroff and troff is unchanged except for the space
6765     between "file" and "...".
6766     
6767     Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6768
6769  src/scripts/xzgrep.1 | 12 ++++++------
6770  1 file changed, 6 insertions(+), 6 deletions(-)
6771
6772 commit 133d498db0f4b14f066d192d64dbcade45deae6b
6773 Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6774 Date:   2020-03-30 21:56:36 +0000
6775
6776     xzgrep.1: Delete superfluous '.PP'
6777     
6778     Summary:
6779     
6780     mandoc -T lint xzgrep.1 :
6781     mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
6782     
6783       There is no change in the output of "nroff" and "troff".
6784     
6785     Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6786
6787  src/scripts/xzgrep.1 | 1 -
6788  1 file changed, 1 deletion(-)
6789
6790 commit 057839ca982f886387b66746bffe749cb14fd8cd
6791 Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6792 Date:   2020-03-26 21:16:18 +0000
6793
6794     src/xz/xz.1: Correct misused two-fonts macros
6795     
6796     Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
6797     
6798       [ "test-groff" is a developmental version of "groff" ]
6799     
6800     Input file is ./src/xz/xz.1
6801     
6802     <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
6803     <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
6804     <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
6805     <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
6806     <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
6807     
6808       Output from nroff and troff is unchanged, except for a font change of a
6809     full stop (.).
6810     
6811     Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6812
6813  src/xz/xz.1 | 10 +++++-----
6814  1 file changed, 5 insertions(+), 5 deletions(-)
6815
6816 commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
6817 Author: Lasse Collin <lasse.collin@tukaani.org>
6818 Date:   2020-03-23 18:07:50 +0200
6819
6820     Typo fixes from fossies.org.
6821     
6822     https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
6823
6824  Makefile.am                     | 2 +-
6825  doc/examples/01_compress_easy.c | 2 +-
6826  src/liblzma/api/lzma/base.h     | 2 +-
6827  src/liblzma/check/crc32_x86.S   | 2 +-
6828  src/liblzma/common/index.c      | 2 +-
6829  src/xz/xz.1                     | 4 ++--
6830  6 files changed, 7 insertions(+), 7 deletions(-)
6831
6832 commit 869b9d1b4edd6df07f819d360d306251f8147353
6833 Author: Lasse Collin <lasse.collin@tukaani.org>
6834 Date:   2020-03-17 16:24:28 +0200
6835
6836     Update NEWS for 5.2.5.
6837
6838  NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6839  1 file changed, 105 insertions(+)
6840
6841 commit a048e3a92d238c65f050a765174d9c75417231d4
6842 Author: Lasse Collin <lasse.collin@tukaani.org>
6843 Date:   2020-03-16 20:01:37 +0200
6844
6845     README: Update outdated sections.
6846
6847  README | 21 +++++++++++----------
6848  1 file changed, 11 insertions(+), 10 deletions(-)
6849
6850 commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
6851 Author: Lasse Collin <lasse.collin@tukaani.org>
6852 Date:   2020-03-16 19:39:45 +0200
6853
6854     README: Mention that man pages can be translated.
6855
6856  README | 7 ++++---
6857  1 file changed, 4 insertions(+), 3 deletions(-)
6858
6859 commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
6860 Author: Lasse Collin <lasse.collin@tukaani.org>
6861 Date:   2020-03-16 16:43:29 +0200
6862
6863     Update INSTALL.generic from Automake 1.16.1.
6864
6865  INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
6866  1 file changed, 162 insertions(+), 159 deletions(-)
6867
6868 commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
6869 Author: Lasse Collin <lasse.collin@tukaani.org>
6870 Date:   2020-03-15 15:27:22 +0200
6871
6872     Update INSTALL for Windows and DOS and add preliminary info for z/OS.
6873
6874  INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
6875  1 file changed, 41 insertions(+), 10 deletions(-)
6876
6877 commit a3148c0446dc7fa96363752df414d22539c9007b
6878 Author: Lasse Collin <lasse.collin@tukaani.org>
6879 Date:   2020-03-15 15:26:20 +0200
6880
6881     Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
6882
6883  m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
6884  1 file changed, 117 insertions(+), 102 deletions(-)
6885
6886 commit 7812002dd3ed319e42a14662a8531802cca8ca67
6887 Author: Lasse Collin <lasse.collin@tukaani.org>
6888 Date:   2020-03-11 21:15:35 +0200
6889
6890     xz: Never use thousand separators in DJGPP builds.
6891     
6892     DJGPP 2.05 added support for thousands separators but it's
6893     broken at least under WinXP with Finnish locale that uses
6894     a non-breaking space as the thousands separator. Workaround
6895     by disabling thousands separators for DJGPP builds.
6896
6897  src/xz/util.c | 14 ++++++++++++--
6898  1 file changed, 12 insertions(+), 2 deletions(-)
6899
6900 commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
6901 Author: Lasse Collin <lasse.collin@tukaani.org>
6902 Date:   2020-03-11 19:38:08 +0200
6903
6904     DOS: Update dos/Makefile for DJGPP 2.05.
6905     
6906     It doesn't need -fgnu89-inline like 2.04beta did.
6907
6908  dos/Makefile | 4 +---
6909  1 file changed, 1 insertion(+), 3 deletions(-)
6910
6911 commit 319ca928d73de87940c54e30bffe69f9fa65efdf
6912 Author: Lasse Collin <lasse.collin@tukaani.org>
6913 Date:   2020-03-11 19:36:07 +0200
6914
6915     DOS: Update instructions in dos/INSTALL.txt.
6916
6917  dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
6918  1 file changed, 29 insertions(+), 30 deletions(-)
6919
6920 commit cb6b227ce39932824812ccd8a0647bd968de27d2
6921 Author: Lasse Collin <lasse.collin@tukaani.org>
6922 Date:   2020-03-11 17:58:51 +0200
6923
6924     DOS: Update config.h.
6925     
6926     The added defines assume GCC >= 4.8.
6927
6928  dos/config.h | 8 ++++++++
6929  1 file changed, 8 insertions(+)
6930
6931 commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
6932 Author: Lasse Collin <lasse.collin@tukaani.org>
6933 Date:   2020-03-02 13:54:33 +0200
6934
6935     liblzma: Fix a comment and RC_SYMBOLS_MAX.
6936     
6937     The comment didn't match the value of RC_SYMBOLS_MAX and the value
6938     itself was slightly larger than actually needed. The only harm
6939     about this was that memory usage was a few bytes larger.
6940
6941  src/liblzma/rangecoder/range_encoder.h | 4 ++--
6942  1 file changed, 2 insertions(+), 2 deletions(-)
6943
6944 commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
6945 Author: Lasse Collin <lasse.collin@tukaani.org>
6946 Date:   2020-02-27 20:58:52 +0200
6947
6948     Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails.
6949
6950  CMakeLists.txt | 18 ++++++++++++++++++
6951  1 file changed, 18 insertions(+)
6952
6953 commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
6954 Author: Lasse Collin <lasse.collin@tukaani.org>
6955 Date:   2020-02-27 20:24:27 +0200
6956
6957     Build: Add support for --no-po4a option to autogen.sh.
6958     
6959     Normally, if po4a isn't available, autogen.sh will return
6960     with non-zero exit status. The option --no-po4a can be useful
6961     when one knows that po4a isn't available but wants autogen.sh
6962     to still return with zero exit status.
6963
6964  autogen.sh | 11 ++++++++++-
6965  1 file changed, 10 insertions(+), 1 deletion(-)
6966
6967 commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
6968 Author: Lasse Collin <lasse.collin@tukaani.org>
6969 Date:   2020-02-25 21:35:14 +0200
6970
6971     Update THANKS.
6972
6973  THANKS | 1 +
6974  1 file changed, 1 insertion(+)
6975
6976 commit 474320e9908786ba2021035f9013191e16cde08a
6977 Author: Lasse Collin <lasse.collin@tukaani.org>
6978 Date:   2020-02-25 20:42:31 +0200
6979
6980     Build: Fix bugs in the CMake files.
6981     
6982     Seems that the phrase "add more quotes" from sh/bash scripting
6983     applies to CMake as well. E.g. passing an unquoted list ${FOO}
6984     to a function that expects one argument results in only the
6985     first element of the list being passed as an argument and
6986     the rest get ignored. Adding quotes helps ("${FOO}").
6987     
6988     list(INSERT ...) is weird. Inserting an empty string to an empty
6989     variable results in empty list, but inserting it to a non-empty
6990     variable does insert an empty element to the list.
6991     
6992     Since INSERT requires at least one element,
6993     "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt.
6994     It might result in an empty element in the list. It seems to not
6995     matter as empty elements consistently get ignored in that variable.
6996     In fact, calling cmake_check_push_state() and cmake_check_pop_state()
6997     will strip the empty elements from CMAKE_REQUIRED_LIBRARIES!
6998     
6999     In addition to quoting fixes, this fixes checks for the cache
7000     variables in tuklib_cpucores.cmake and tuklib_physmem.cmake.
7001     
7002     Thanks to Martin Matuška for testing and reporting the problems.
7003     These fixes aren't tested yet but hopefully they soon will be.
7004
7005  CMakeLists.txt              | 52 ++++++++++++++++++++++-----------------------
7006  cmake/tuklib_common.cmake   |  8 ++++---
7007  cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------
7008  cmake/tuklib_integer.cmake  | 34 +++++++++++++++--------------
7009  cmake/tuklib_mbstr.cmake    |  6 +++---
7010  cmake/tuklib_physmem.cmake  | 29 +++++++++++++------------
7011  cmake/tuklib_progname.cmake |  4 ++--
7012  7 files changed, 85 insertions(+), 78 deletions(-)
7013
7014 commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
7015 Author: Lasse Collin <lasse.collin@tukaani.org>
7016 Date:   2020-02-24 23:38:16 +0200
7017
7018     Build: Add very limited experimental CMake support.
7019     
7020     This does *NOT* replace the Autotools-based build system in
7021     the foreseeable future. See the comment in the beginning
7022     of CMakeLists.txt.
7023     
7024     So far this has been tested only on GNU/Linux but I commit
7025     it anyway to make it easier for others to test. Since I
7026     haven't played much with CMake before, it's likely that
7027     there are things that have been done in a silly or wrong
7028     way and need to be fixed.
7029
7030  CMakeLists.txt              | 643 ++++++++++++++++++++++++++++++++++++++++++++
7031  cmake/tuklib_common.cmake   |  47 ++++
7032  cmake/tuklib_cpucores.cmake | 173 ++++++++++++
7033  cmake/tuklib_integer.cmake  | 100 +++++++
7034  cmake/tuklib_mbstr.cmake    |  20 ++
7035  cmake/tuklib_physmem.cmake  | 149 ++++++++++
7036  cmake/tuklib_progname.cmake |  19 ++
7037  7 files changed, 1151 insertions(+)
7038
7039 commit 21bd4701fca3e9002ce78bc135debca369ed8545
7040 Author: Lasse Collin <lasse.collin@tukaani.org>
7041 Date:   2020-02-24 23:37:07 +0200
7042
7043     Update m4/.gitignore.
7044
7045  m4/.gitignore | 1 +
7046  1 file changed, 1 insertion(+)
7047
7048 commit e094d1d0f196a91ec703e8d0055948feef349ae8
7049 Author: Lasse Collin <lasse.collin@tukaani.org>
7050 Date:   2020-02-24 23:29:35 +0200
7051
7052     tuklib: Omit an unneeded <sys/types.h> from a tests.
7053     
7054     tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h>
7055     even via other files in this package, so clearly that header isn't
7056     needed in the tests either (no one has reported build problems due
7057     to a missing header in a .c file).
7058
7059  m4/tuklib_cpucores.m4 | 1 -
7060  m4/tuklib_physmem.m4  | 1 -
7061  2 files changed, 2 deletions(-)
7062
7063 commit b3ed19a55fe99a45bd77614e149d39d18498075c
7064 Author: Lasse Collin <lasse.collin@tukaani.org>
7065 Date:   2020-02-24 23:01:00 +0200
7066
7067     liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
7068     
7069     This file only generates fastpos_table.c.
7070     It isn't built as a part of liblzma.
7071
7072  src/liblzma/lzma/fastpos_tablegen.c | 1 -
7073  1 file changed, 1 deletion(-)
7074
7075 commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
7076 Author: Lasse Collin <lasse.collin@tukaani.org>
7077 Date:   2020-02-22 14:15:07 +0200
7078
7079     Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
7080     
7081     This should silence the equivalent of -Wundef in compilers that
7082     don't define __GNUC__.
7083
7084  src/common/sysdefs.h   | 3 ++-
7085  src/liblzma/api/lzma.h | 5 +++--
7086  2 files changed, 5 insertions(+), 3 deletions(-)
7087
7088 commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
7089 Author: Lasse Collin <lasse.collin@tukaani.org>
7090 Date:   2020-02-21 17:40:02 +0200
7091
7092     liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
7093     
7094     This gives a tiny encoder speed improvement. This could have been done
7095     in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
7096     it was forgotten.
7097
7098  src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
7099  1 file changed, 10 insertions(+), 6 deletions(-)
7100
7101 commit 59e6eb4840b9f52fa3a61544974017279b448216
7102 Author: Lasse Collin <lasse.collin@tukaani.org>
7103 Date:   2020-02-21 17:01:15 +0200
7104
7105     Build: Add visibility.m4 from gnulib.
7106     
7107     Appears that this file used to get included as a side effect of
7108     gettext. After the change to gettext version requirements this file
7109     no longer got copied to the package and so the build was broken.
7110
7111  m4/.gitignore    |  1 -
7112  m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7113  2 files changed, 77 insertions(+), 1 deletion(-)
7114
7115 commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
7116 Author: Lasse Collin <lasse.collin@tukaani.org>
7117 Date:   2020-02-21 16:10:44 +0200
7118
7119     xz: Silence a warning when sig_atomic_t is long int.
7120     
7121     It can be true at least on z/OS.
7122
7123  src/xz/signals.c | 2 +-
7124  1 file changed, 1 insertion(+), 1 deletion(-)
7125
7126 commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
7127 Author: Lasse Collin <lasse.collin@tukaani.org>
7128 Date:   2020-02-21 15:59:26 +0200
7129
7130     xz: Avoid unneeded access of a volatile variable.
7131
7132  src/xz/signals.c | 2 +-
7133  1 file changed, 1 insertion(+), 1 deletion(-)
7134
7135 commit 524c2f12c762032b819757aeda8af7c47c4cabce
7136 Author: Lasse Collin <lasse.collin@tukaani.org>
7137 Date:   2020-02-21 01:24:18 +0200
7138
7139     tuklib_integer.m4: Optimize the check order.
7140     
7141     The __builtin byteswapping is the preferred one so check for it first.
7142
7143  m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
7144  1 file changed, 29 insertions(+), 27 deletions(-)
7145
7146 commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
7147 Author: Lasse Collin <lasse.collin@tukaani.org>
7148 Date:   2020-02-20 18:54:04 +0200
7149
7150     tuklib_exit: Add missing header.
7151     
7152     strerror() needs <string.h> which happened to be included via
7153     tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
7154     was defined. This wasn't tested without config.h before so it
7155     had worked fine.
7156
7157  src/common/tuklib_exit.c | 1 +
7158  1 file changed, 1 insertion(+)
7159
7160 commit fddd31175e74a538997a939d930462fde17d2dd4
7161 Author: Lasse Collin <lasse.collin@tukaani.org>
7162 Date:   2020-02-18 19:12:35 +0200
7163
7164     Revert the previous commit and add a comment.
7165     
7166     The previous commit broke crc32_tablegen.c.
7167     
7168     If the whole package is built without config.h (with defines
7169     set on the compiler command line) this should still work fine
7170     as long as these headers conform to C99 well enough.
7171
7172  src/common/tuklib_config.h | 17 ++++++++++-------
7173  1 file changed, 10 insertions(+), 7 deletions(-)
7174
7175 commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
7176 Author: Lasse Collin <lasse.collin@tukaani.org>
7177 Date:   2020-02-17 23:37:20 +0200
7178
7179     Do not check for HAVE_CONFIG_H in tuklib_config.h.
7180     
7181     In XZ Utils sysdefs.h takes care of it and the required headers.
7182
7183  src/common/tuklib_config.h | 15 +++++++--------
7184  1 file changed, 7 insertions(+), 8 deletions(-)
7185
7186 commit 2d4cef954feba82073951358466a1d614141cf33
7187 Author: Lasse Collin <lasse.collin@tukaani.org>
7188 Date:   2020-02-16 11:18:28 +0200
7189
7190     sysdefs.h: Omit the conditionals around string.h and limits.h.
7191     
7192     string.h is used unconditionally elsewhere in the project and
7193     configure has always stopped if limits.h is missing, so these
7194     headers must have been always available even on the weirdest
7195     systems.
7196
7197  src/common/sysdefs.h | 8 ++------
7198  1 file changed, 2 insertions(+), 6 deletions(-)
7199
7200 commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
7201 Author: Lasse Collin <lasse.collin@tukaani.org>
7202 Date:   2020-02-15 15:07:11 +0200
7203
7204     Build: Bump Autoconf and Libtool version requirements.
7205     
7206     There is no specific reason for this other than blocking
7207     the most ancient versions. These are still old:
7208     
7209     Autoconf 2.69 (2012)
7210     Automake 1.12 (2012)
7211     gettext 0.19.6 (2015)
7212     Libtool 2.4 (2010)
7213
7214  configure.ac | 4 ++--
7215  1 file changed, 2 insertions(+), 2 deletions(-)
7216
7217 commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
7218 Author: Lasse Collin <lasse.collin@tukaani.org>
7219 Date:   2020-02-15 03:08:32 +0200
7220
7221     Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
7222     
7223     This bumps the version requirement from 0.19 (from 2014) to
7224     0.19.6 (2015).
7225     
7226     Using only the old AM_GNU_GETTEXT_VERSION results in old
7227     gettext infrastructure being placed in the package. By using
7228     both macros we get the latest gettext files while the other
7229     programs in the Autotools family can still see the old macro.
7230
7231  configure.ac | 6 +++++-
7232  1 file changed, 5 insertions(+), 1 deletion(-)
7233
7234 commit fa792b8befaf7cb3960b655e0a9410da866d756f
7235 Author: Lasse Collin <lasse.collin@tukaani.org>
7236 Date:   2020-02-14 20:42:06 +0200
7237
7238     Translations: Add German translation of the man pages.
7239     
7240     Thanks to Mario Blättermann.
7241
7242  po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7243  po4a/po4a.conf |    2 +-
7244  2 files changed, 5533 insertions(+), 1 deletion(-)
7245
7246 commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
7247 Author: Lasse Collin <lasse.collin@tukaani.org>
7248 Date:   2020-02-07 15:32:21 +0200
7249
7250     Build: Add support for translated man pages using po4a.
7251     
7252     The dependency on po4a is optional. It's never required to install
7253     the translated man pages when xz is built from a release tarball.
7254     If po4a is missing when building from xz.git, the translated man
7255     pages won't be generated but otherwise the build will work normally.
7256     
7257     The translations are only updated automatically by autogen.sh and
7258     by "make mydist". This makes it easy to keep po4a as an optional
7259     dependency and ensures that I won't forget to put updated
7260     translations to a release tarball.
7261     
7262     The translated man pages aren't installed if --disable-nls is used.
7263     
7264     The installation of translated man pages abuses Automake internals
7265     by calling "install-man" with redefined dist_man_MANS and man_MANS.
7266     This makes the hairy script code slightly less hairy. If it breaks
7267     some day, this code needs to be fixed; don't blame Automake developers.
7268     
7269     Also, this adds more quotes to the existing shell script code in
7270     the Makefile.am "-hook"s.
7271
7272  Makefile.am             |  4 ++++
7273  autogen.sh              |  8 ++++---
7274  po4a/.gitignore         |  2 ++
7275  po4a/po4a.conf          | 14 +++++++++++
7276  po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
7277  src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
7278  src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
7279  src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
7280  8 files changed, 197 insertions(+), 45 deletions(-)
7281
7282 commit 426f9e5819ff7710a5ff573a96c02940be65d52f
7283 Author: Lasse Collin <lasse.collin@tukaani.org>
7284 Date:   2020-02-06 17:31:38 +0200
7285
7286     Update THANKS.
7287
7288  THANKS | 1 +
7289  1 file changed, 1 insertion(+)
7290
7291 commit e3a4481d020e4de89efa037f335cf50f3ca55592
7292 Author: Lasse Collin <lasse.collin@tukaani.org>
7293 Date:   2020-02-05 22:35:06 +0200
7294
7295     Update tests/.gitignore.
7296
7297  .gitignore | 4 ++++
7298  1 file changed, 4 insertions(+)
7299
7300 commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
7301 Author: Lasse Collin <lasse.collin@tukaani.org>
7302 Date:   2020-02-05 22:28:51 +0200
7303
7304     Update m4/.gitignore.
7305
7306  m4/.gitignore | 1 +
7307  1 file changed, 1 insertion(+)
7308
7309 commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
7310 Author: Lasse Collin <lasse.collin@tukaani.org>
7311 Date:   2020-02-05 20:47:38 +0200
7312
7313     Update THANKS.
7314
7315  THANKS | 1 +
7316  1 file changed, 1 insertion(+)
7317
7318 commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
7319 Author: Lasse Collin <lasse.collin@tukaani.org>
7320 Date:   2020-02-05 20:40:14 +0200
7321
7322     xz: Make it a fatal error if enabling the sandbox fails.
7323     
7324     Perhaps it's too drastic but on the other hand it will let me
7325     learn about possible problems if people report the errors.
7326     This won't be backported to the v5.2 branch.
7327
7328  src/xz/file_io.c | 2 +-
7329  1 file changed, 1 insertion(+), 1 deletion(-)
7330
7331 commit af0fb386ef55db66654ae39e2deec6e04190c4ff
7332 Author: Lasse Collin <lasse.collin@tukaani.org>
7333 Date:   2020-02-05 20:33:50 +0200
7334
7335     xz: Comment out annoying sandboxing messages.
7336
7337  src/xz/file_io.c | 10 +++++++---
7338  1 file changed, 7 insertions(+), 3 deletions(-)
7339
7340 commit 986d8c9b52b824474088e5bb3b6940651660f0e2
7341 Author: Lasse Collin <lasse.collin@tukaani.org>
7342 Date:   2020-02-05 19:33:37 +0200
7343
7344     Build: Workaround a POSIX shell detection problem on Solaris.
7345     
7346     I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
7347     or if xzgrep does something that isn't in POSIX. The workaround
7348     adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
7349     gl_cv_posix_shell wasn't overriden on the configure command line,
7350     use that shell for xzgrep and other scripts. That shell is known
7351     to work and exists on most Solaris systems.
7352
7353  configure.ac | 10 ++++++++++
7354  1 file changed, 10 insertions(+)
7355
7356 commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
7357 Author: Lasse Collin <lasse.collin@tukaani.org>
7358 Date:   2020-02-03 22:03:50 +0200
7359
7360     Build: Update m4/ax_pthread.m4 from Autoconf Archive.
7361
7362  m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
7363  1 file changed, 279 insertions(+), 119 deletions(-)
7364
7365 commit 353970510895f6a80adfe60cf71b70a95adfa8bc
7366 Author: Lasse Collin <lasse.collin@tukaani.org>
7367 Date:   2020-02-01 19:56:18 +0200
7368
7369     xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
7370     
7371     See the code comment for reasoning. It's far from perfect but
7372     hopefully good enough for certain cases while hopefully doing
7373     nothing bad in other situations.
7374     
7375     At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
7376     on how xz scales down the number of threads.
7377     
7378     The limit has to be a few MiB below 4096 MiB because otherwise
7379     things like "xz --lzma2=dict=500MiB" won't scale down the dict
7380     size enough and xz cannot allocate enough memory. With
7381     "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
7382     to be no more than 4085 MiB. Some safety margin is good though.
7383     
7384     This is hack but it should be useful when running 32-bit xz on
7385     a 64-bit kernel that gives full 4 GiB address space to xz.
7386     Hopefully this is enough to solve this:
7387     
7388     https://bugzilla.redhat.com/show_bug.cgi?id=1196786
7389     
7390     FreeBSD has a patch that limits the result in tuklib_physmem()
7391     to SIZE_MAX on 32-bit systems. While I think it's not the way
7392     to do it, the results on --memlimit-compress have been good. This
7393     commit should achieve practically identical results for compression
7394     while leaving decompression and tuklib_physmem() and thus
7395     lzma_physmem() unaffected.
7396
7397  src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
7398  src/xz/xz.1       | 21 ++++++++++++++++++++-
7399  2 files changed, 51 insertions(+), 2 deletions(-)
7400
7401 commit ba76d67585f88677af9f48b48e7bdc3bb7687def
7402 Author: Lasse Collin <lasse.collin@tukaani.org>
7403 Date:   2020-01-26 20:53:25 +0200
7404
7405     xz: Set the --flush-timeout deadline when the first input byte arrives.
7406     
7407     xz --flush-timeout=2000, old version:
7408     
7409       1. xz is started. The next flush will happen after two seconds.
7410       2. No input for one second.
7411       3. A burst of a few kilobytes of input.
7412       4. No input for one second.
7413       5. Two seconds have passed and flushing starts.
7414     
7415     The first second counted towards the flush-timeout even though
7416     there was no pending data. This can cause flushing to occur more
7417     often than needed.
7418     
7419     xz --flush-timeout=2000, after this commit:
7420     
7421       1. xz is started.
7422       2. No input for one second.
7423       3. A burst of a few kilobytes of input. The next flush will
7424          happen after two seconds counted from the time when the
7425          first bytes of the burst were read.
7426       4. No input for one second.
7427       5. No input for another second.
7428       6. Two seconds have passed and flushing starts.
7429
7430  src/xz/coder.c   | 6 +-----
7431  src/xz/file_io.c | 6 +++++-
7432  src/xz/mytime.c  | 1 -
7433  3 files changed, 6 insertions(+), 7 deletions(-)
7434
7435 commit fd47fd62bbb1bfd13ab63869137971d8b390025f
7436 Author: Lasse Collin <lasse.collin@tukaani.org>
7437 Date:   2020-01-26 20:19:19 +0200
7438
7439     xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
7440
7441  src/xz/coder.c   | 3 ++-
7442  src/xz/file_io.c | 3 ++-
7443  src/xz/file_io.h | 3 +++
7444  src/xz/mytime.c  | 3 ---
7445  src/xz/mytime.h  | 4 ----
7446  5 files changed, 7 insertions(+), 9 deletions(-)
7447
7448 commit 815035681063d5774d3640fc20b8ede783dd574e
7449 Author: Lasse Collin <lasse.collin@tukaani.org>
7450 Date:   2020-01-26 14:49:22 +0200
7451
7452     xz: coder.c: Make writing output a separate function.
7453     
7454     The same code sequence repeats so it's nicer as a separate function.
7455     Note that in one case there was no test for opt_mode != MODE_TEST,
7456     but that was only because that condition would always be true, so
7457     this commit doesn't change the behavior there.
7458
7459  src/xz/coder.c | 30 +++++++++++++++++-------------
7460  1 file changed, 17 insertions(+), 13 deletions(-)
7461
7462 commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
7463 Author: Lasse Collin <lasse.collin@tukaani.org>
7464 Date:   2020-01-26 14:13:42 +0200
7465
7466     xz: Fix semi-busy-waiting in xz --flush-timeout.
7467     
7468     When input blocked, xz --flush-timeout=1 would wake up every
7469     millisecond and initiate flushing which would have nothing to
7470     flush and thus would just waste CPU time. The fix disables the
7471     timeout when no input has been seen since the previous flush.
7472
7473  src/xz/coder.c   |  4 ++++
7474  src/xz/file_io.c | 15 +++++++++++----
7475  src/xz/file_io.h |  4 ++++
7476  3 files changed, 19 insertions(+), 4 deletions(-)
7477
7478 commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
7479 Author: Lasse Collin <lasse.collin@tukaani.org>
7480 Date:   2020-01-26 13:47:31 +0200
7481
7482     xz: Refactor io_read() a bit.
7483
7484  src/xz/file_io.c | 17 ++++++++---------
7485  1 file changed, 8 insertions(+), 9 deletions(-)
7486
7487 commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
7488 Author: Lasse Collin <lasse.collin@tukaani.org>
7489 Date:   2020-01-26 13:37:08 +0200
7490
7491     xz: Update a comment in file_io.h.
7492
7493  src/xz/file_io.h | 5 ++++-
7494  1 file changed, 4 insertions(+), 1 deletion(-)
7495
7496 commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
7497 Author: Lasse Collin <lasse.collin@tukaani.org>
7498 Date:   2020-01-26 13:27:51 +0200
7499
7500     xz: Move the setting of flush_needed in file_io.c to a nicer location.
7501
7502  src/xz/file_io.c | 6 ++----
7503  1 file changed, 2 insertions(+), 4 deletions(-)
7504
7505 commit cf2df0f05ac98c1158c6e48145900b773223605d
7506 Author: Lasse Collin <lasse.collin@tukaani.org>
7507 Date:   2020-01-19 21:54:33 +0200
7508
7509     Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
7510     
7511     https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048
7512     
7513     Thanks to Bhargava Shastry for sending the patch.
7514
7515  tests/ossfuzz/Makefile | 2 +-
7516  1 file changed, 1 insertion(+), 1 deletion(-)
7517
7518 commit 7136f1735c60ac6967c4b8e277fcde53d485234f
7519 Author: Lasse Collin <lasse.collin@tukaani.org>
7520 Date:   2019-12-31 00:41:28 +0200
7521
7522     Rename unaligned_read32ne to read32ne, and similarly for the others.
7523
7524  src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
7525  src/liblzma/common/alone_encoder.c        |  2 +-
7526  src/liblzma/common/block_header_decoder.c |  2 +-
7527  src/liblzma/common/block_header_encoder.c |  2 +-
7528  src/liblzma/common/memcmplen.h            |  9 ++---
7529  src/liblzma/common/stream_flags_decoder.c |  6 +--
7530  src/liblzma/common/stream_flags_encoder.c |  8 ++--
7531  src/liblzma/lz/lz_encoder_hash.h          |  2 +-
7532  src/liblzma/lzma/lzma_decoder.c           |  2 +-
7533  src/liblzma/lzma/lzma_encoder.c           |  2 +-
7534  src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
7535  src/liblzma/simple/simple_decoder.c       |  2 +-
7536  src/liblzma/simple/simple_encoder.c       |  2 +-
7537  tests/test_block_header.c                 |  4 +-
7538  tests/test_stream_flags.c                 |  6 +--
7539  15 files changed, 54 insertions(+), 62 deletions(-)
7540
7541 commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
7542 Author: Lasse Collin <lasse.collin@tukaani.org>
7543 Date:   2019-12-31 00:29:48 +0200
7544
7545     Rename read32ne to aligned_read32ne, and similarly for the others.
7546     
7547     Using the aligned methods requires more care to ensure that
7548     the address really is aligned, so it's nicer if the aligned
7549     methods are prefixed. The next commit will remove the unaligned_
7550     prefix from the unaligned methods which in liblzma are used in
7551     more places than the aligned ones.
7552
7553  src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
7554  src/liblzma/check/crc32_fast.c |  4 +--
7555  src/liblzma/check/crc64_fast.c |  4 +--
7556  3 files changed, 32 insertions(+), 32 deletions(-)
7557
7558 commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
7559 Author: Lasse Collin <lasse.collin@tukaani.org>
7560 Date:   2019-12-31 00:18:24 +0200
7561
7562     Revise tuklib_integer.h and .m4.
7563     
7564     Add a configure option --enable-unsafe-type-punning to get the
7565     old non-conforming memory access methods. It can be useful with
7566     old compilers or in some other less typical situations but
7567     shouldn't normally be used.
7568     
7569     Omit the packed struct trick for unaligned access. While it's
7570     best in some cases, this is simpler. If the memcpy trick doesn't
7571     work, one can request unsafe type punning from configure.
7572     
7573     Because CRC32/CRC64 code needs fast aligned reads, if no very
7574     safe way to do it is found, type punning is used as a fallback.
7575     This sucks but since it currently works in practice, it seems to
7576     be the least bad option. It's never needed with GCC >= 4.7 or
7577     Clang >= 3.6 since these support __builtin_assume_aligned and
7578     thus fast aligned access can be done with the memcpy trick.
7579     
7580     Other things:
7581       - Support GCC/Clang __builtin_bswapXX
7582       - Cleaner bswap fallback macros
7583       - Minor cleanups
7584
7585  m4/tuklib_integer.m4        |  46 ++++-
7586  src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
7587  2 files changed, 316 insertions(+), 218 deletions(-)
7588
7589 commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
7590 Author: Lasse Collin <lasse.collin@tukaani.org>
7591 Date:   2019-12-29 22:51:58 +0200
7592
7593     Tests: Hopefully fix test_check.c to work on EBCDIC systems.
7594     
7595     Thanks to Daniel Richard G.
7596
7597  tests/test_check.c | 9 +++++++--
7598  1 file changed, 7 insertions(+), 2 deletions(-)
7599
7600 commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
7601 Author: Lasse Collin <lasse.collin@tukaani.org>
7602 Date:   2019-09-24 23:02:40 +0300
7603
7604     Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
7605     
7606     This adds a configure option --enable-path-for-scripts=PREFIX
7607     which defaults to empty except on Solaris it is /usr/xpg4/bin
7608     to make POSIX grep and others available. The Solaris case had
7609     been documented in INSTALL with a manual fix but it's better
7610     to do this automatically since it is needed on most Solaris
7611     systems anyway.
7612     
7613     Thanks to Daniel Richard G.
7614
7615  INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
7616  configure.ac          | 26 ++++++++++++++++++++++++++
7617  src/scripts/xzdiff.in |  1 +
7618  src/scripts/xzgrep.in |  1 +
7619  src/scripts/xzless.in |  1 +
7620  src/scripts/xzmore.in |  1 +
7621  6 files changed, 65 insertions(+), 8 deletions(-)
7622
7623 commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
7624 Author: Lasse Collin <lasse.collin@tukaani.org>
7625 Date:   2019-07-12 18:57:43 +0300
7626
7627     Fix comment typos in tuklib_mbstr* files.
7628
7629  src/common/tuklib_mbstr.h       | 2 +-
7630  src/common/tuklib_mbstr_fw.c    | 2 +-
7631  src/common/tuklib_mbstr_width.c | 2 +-
7632  3 files changed, 3 insertions(+), 3 deletions(-)
7633
7634 commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
7635 Author: Lasse Collin <lasse.collin@tukaani.org>
7636 Date:   2019-07-12 18:30:46 +0300
7637
7638     Add missing include to tuklib_mbstr_width.c.
7639     
7640     It didn't matter in XZ Utils because sysdefs.h
7641     includes string.h anyway.
7642
7643  src/common/tuklib_mbstr_width.c | 1 +
7644  1 file changed, 1 insertion(+)
7645
7646 commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
7647 Author: Lasse Collin <lasse.collin@tukaani.org>
7648 Date:   2019-07-12 18:10:57 +0300
7649
7650     Update tuklib base headers to include stdbool.h.
7651
7652  src/common/tuklib_common.h | 2 +-
7653  src/common/tuklib_config.h | 1 +
7654  2 files changed, 2 insertions(+), 1 deletion(-)
7655
7656 commit de1f47b2b40e960b7bc3acba754f66dd19705921
7657 Author: Lasse Collin <lasse.collin@tukaani.org>
7658 Date:   2019-06-28 00:54:31 +0300
7659
7660     xz: Automatically align the strings in --info-memory.
7661     
7662     This makes it easier to translate the strings.
7663     
7664     Also, the string for amount of RAM was shortened.
7665
7666  src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++-----------
7667  1 file changed, 34 insertions(+), 11 deletions(-)
7668
7669 commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
7670 Author: Lasse Collin <lasse.collin@tukaani.org>
7671 Date:   2019-06-25 23:15:21 +0300
7672
7673     liblzma: Fix a buggy comment.
7674
7675  src/liblzma/lz/lz_encoder_mf.c | 2 +-
7676  1 file changed, 1 insertion(+), 1 deletion(-)
7677
7678 commit fc77929e92e869f6869bf88931066103fd75f376
7679 Author: Lasse Collin <lasse.collin@tukaani.org>
7680 Date:   2019-06-25 00:16:06 +0300
7681
7682     configure.ac: Fix a typo in a comment.
7683
7684  configure.ac | 2 +-
7685  1 file changed, 1 insertion(+), 1 deletion(-)
7686
7687 commit e873902641794210ad7db59743f98e3e1cd6139f
7688 Author: Lasse Collin <lasse.collin@tukaani.org>
7689 Date:   2019-06-25 00:08:13 +0300
7690
7691     Tests: Silence warnings from clang -Wassign-enum.
7692     
7693     Also changed 999 to 99 so it fits even if lzma_check happened
7694     to be 8 bits wide.
7695
7696  tests/test_block_header.c | 3 ++-
7697  tests/test_stream_flags.c | 2 +-
7698  2 files changed, 3 insertions(+), 2 deletions(-)
7699
7700 commit d499e467d99efeaae688564eedc4548837c1416a
7701 Author: Lasse Collin <lasse.collin@tukaani.org>
7702 Date:   2019-06-24 23:52:17 +0300
7703
7704     liblzma: Add a comment.
7705
7706  src/liblzma/common/stream_encoder_mt.c | 2 +-
7707  1 file changed, 1 insertion(+), 1 deletion(-)
7708
7709 commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
7710 Author: Lasse Collin <lasse.collin@tukaani.org>
7711 Date:   2019-06-24 23:45:21 +0300
7712
7713     liblzma: Silence clang -Wmissing-variable-declarations.
7714
7715  src/liblzma/check/crc32_table.c | 3 +++
7716  src/liblzma/check/crc64_table.c | 3 +++
7717  2 files changed, 6 insertions(+)
7718
7719 commit 1b4675cebf7471f7cc9b7072c950e3de97147063
7720 Author: Lasse Collin <lasse.collin@tukaani.org>
7721 Date:   2019-06-24 23:25:41 +0300
7722
7723     Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
7724     
7725     LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
7726     enumeration. Previously it was #defined to 32 and cast to lzma_ret.
7727     That way it wasn't visible in the public API, but this was hackish.
7728     
7729     Now the public API has eight LZMA_RET_INTERNALx members and
7730     LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
7731     the code is cleaner overall although the public API has a few
7732     extra mysterious enum members.
7733
7734  src/liblzma/api/lzma/base.h | 15 ++++++++++++++-
7735  src/liblzma/common/common.c |  4 +---
7736  src/liblzma/common/common.h |  5 ++---
7737  src/xz/message.c            |  8 ++++++++
7738  4 files changed, 25 insertions(+), 7 deletions(-)
7739
7740 commit 159c43875eb25deea626ed651274464bae3e32ef
7741 Author: Lasse Collin <lasse.collin@tukaani.org>
7742 Date:   2019-06-24 22:57:43 +0300
7743
7744     xz: Silence a warning from clang -Wsign-conversion in main.c.
7745
7746  src/xz/main.c | 2 +-
7747  1 file changed, 1 insertion(+), 1 deletion(-)
7748
7749 commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
7750 Author: Lasse Collin <lasse.collin@tukaani.org>
7751 Date:   2019-06-24 22:52:20 +0300
7752
7753     xz: Make "headings" static in list.c.
7754     
7755     Caught by clang -Wmissing-variable-declarations.
7756
7757  src/xz/list.c | 2 +-
7758  1 file changed, 1 insertion(+), 1 deletion(-)
7759
7760 commit 608517b9b76c41fac6613dbda1193d6f41338e19
7761 Author: Lasse Collin <lasse.collin@tukaani.org>
7762 Date:   2019-06-24 22:47:39 +0300
7763
7764     liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
7765     
7766     Caught by clang -Wused-but-marked-unused.
7767
7768  src/liblzma/common/alone_decoder.c | 3 +--
7769  src/liblzma/common/alone_encoder.c | 3 +--
7770  src/liblzma/lz/lz_decoder.c        | 3 +--
7771  3 files changed, 3 insertions(+), 6 deletions(-)
7772
7773 commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
7774 Author: Lasse Collin <lasse.collin@tukaani.org>
7775 Date:   2019-06-24 20:53:55 +0300
7776
7777     Tests: Silence a warning from -Wsign-conversion.
7778
7779  tests/create_compress_files.c | 8 ++++----
7780  1 file changed, 4 insertions(+), 4 deletions(-)
7781
7782 commit 2402f7873dcae719d0ebddd23bb579074519ac52
7783 Author: Lasse Collin <lasse.collin@tukaani.org>
7784 Date:   2019-06-24 20:45:49 +0300
7785
7786     xz: Fix an integer overflow with 32-bit off_t.
7787     
7788     Or any off_t which isn't very big (like signed 64 bit integer
7789     that most system have). A small off_t could overflow if the
7790     file being decompressed had long enough run of zero bytes,
7791     which would result in corrupt output.
7792
7793  src/xz/file_io.c | 11 +++++++++--
7794  1 file changed, 9 insertions(+), 2 deletions(-)
7795
7796 commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
7797 Author: Lasse Collin <lasse.collin@tukaani.org>
7798 Date:   2019-06-24 01:24:17 +0300
7799
7800     xz: Cleanup io_seek_src() a bit.
7801     
7802     lseek() returns -1 on error and checking for -1 is nicer.
7803
7804  src/xz/file_io.c | 4 +---
7805  1 file changed, 1 insertion(+), 3 deletions(-)
7806
7807 commit dfda7cf6afa486e10df035327d68753896dfb48a
7808 Author: Lasse Collin <lasse.collin@tukaani.org>
7809 Date:   2019-06-24 00:57:23 +0300
7810
7811     Tests: Remove a duplicate branch from tests/tests.h.
7812     
7813     The duplication was introduced about eleven years ago and
7814     should have been cleaned up back then already.
7815     
7816     This was caught by -Wduplicated-branches.
7817
7818  tests/tests.h | 9 ++-------
7819  1 file changed, 2 insertions(+), 7 deletions(-)
7820
7821 commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
7822 Author: Lasse Collin <lasse.collin@tukaani.org>
7823 Date:   2019-06-24 00:40:45 +0300
7824
7825     xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
7826     
7827     This helps fixing warnings from -Wsign-conversion and makes the
7828     code look better too.
7829
7830  src/xz/file_io.c | 16 ++++++++++++----
7831  src/xz/file_io.h |  4 ++--
7832  src/xz/list.c    |  9 ++++-----
7833  3 files changed, 18 insertions(+), 11 deletions(-)
7834
7835 commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
7836 Author: Lasse Collin <lasse.collin@tukaani.org>
7837 Date:   2019-06-24 00:12:38 +0300
7838
7839     xz: list.c: Fix some warnings from -Wsign-conversion.
7840
7841  src/xz/list.c | 7 ++++---
7842  1 file changed, 4 insertions(+), 3 deletions(-)
7843
7844 commit d0a78751eb54fb1572002746c533936a118e4e42
7845 Author: Lasse Collin <lasse.collin@tukaani.org>
7846 Date:   2019-06-23 23:22:45 +0300
7847
7848     tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
7849
7850  src/common/tuklib_mbstr_width.c | 2 +-
7851  1 file changed, 1 insertion(+), 1 deletion(-)
7852
7853 commit 7883d73530b4b2a701ddd7d50c35676cbc158039
7854 Author: Lasse Collin <lasse.collin@tukaani.org>
7855 Date:   2019-06-23 23:19:34 +0300
7856
7857     xz: Fix some of the warnings from -Wsign-conversion.
7858
7859  src/xz/args.c    | 4 ++--
7860  src/xz/coder.c   | 4 ++--
7861  src/xz/file_io.c | 5 +++--
7862  src/xz/message.c | 4 ++--
7863  src/xz/mytime.c  | 4 ++--
7864  src/xz/options.c | 2 +-
7865  src/xz/util.c    | 4 ++--
7866  7 files changed, 14 insertions(+), 13 deletions(-)
7867
7868 commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
7869 Author: Lasse Collin <lasse.collin@tukaani.org>
7870 Date:   2019-06-23 22:27:45 +0300
7871
7872     tuklib_cpucores: Silence warnings from -Wsign-conversion.
7873
7874  src/common/tuklib_cpucores.c | 10 +++++-----
7875  1 file changed, 5 insertions(+), 5 deletions(-)
7876
7877 commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
7878 Author: Lasse Collin <lasse.collin@tukaani.org>
7879 Date:   2019-06-23 21:40:47 +0300
7880
7881     xzdec: Fix warnings from -Wsign-conversion.
7882
7883  src/xzdec/xzdec.c | 2 +-
7884  1 file changed, 1 insertion(+), 1 deletion(-)
7885
7886 commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
7887 Author: Lasse Collin <lasse.collin@tukaani.org>
7888 Date:   2019-06-23 21:38:56 +0300
7889
7890     liblzma: Fix warnings from -Wsign-conversion.
7891     
7892     Also, more parentheses were added to the literal_subcoder
7893     macro in lzma_comon.h (better style but no functional change
7894     in the current usage).
7895
7896  src/liblzma/common/block_header_decoder.c |  2 +-
7897  src/liblzma/delta/delta_decoder.c         |  2 +-
7898  src/liblzma/lzma/fastpos.h                |  2 +-
7899  src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
7900  src/liblzma/lzma/lzma_common.h            |  3 ++-
7901  src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
7902  src/liblzma/simple/arm.c                  |  6 +++---
7903  src/liblzma/simple/armthumb.c             |  8 ++++----
7904  src/liblzma/simple/ia64.c                 |  2 +-
7905  src/liblzma/simple/powerpc.c              |  9 +++++----
7906  src/liblzma/simple/x86.c                  |  2 +-
7907  11 files changed, 31 insertions(+), 29 deletions(-)
7908
7909 commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
7910 Author: Lasse Collin <lasse.collin@tukaani.org>
7911 Date:   2019-06-23 19:33:55 +0300
7912
7913     tuklib_integer: Silence warnings from -Wsign-conversion.
7914
7915  src/common/tuklib_integer.h | 6 +++---
7916  1 file changed, 3 insertions(+), 3 deletions(-)
7917
7918 commit 3ce05d235f736d392347a05086b8033416874b87
7919 Author: Lasse Collin <lasse.collin@tukaani.org>
7920 Date:   2019-06-20 19:40:30 +0300
7921
7922     tuklib_integer: Fix usage of conv macros.
7923     
7924     Use a temporary variable instead of e.g.
7925     conv32le(unaligned_read32ne(buf)) because the macro can
7926     evaluate its argument multiple times.
7927
7928  src/common/tuklib_integer.h | 12 ++++++++----
7929  1 file changed, 8 insertions(+), 4 deletions(-)
7930
7931 commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
7932 Author: Lasse Collin <lasse.collin@tukaani.org>
7933 Date:   2019-06-03 20:44:19 +0300
7934
7935     Update THANKS.
7936
7937  THANKS | 1 +
7938  1 file changed, 1 insertion(+)
7939
7940 commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
7941 Author: Lasse Collin <lasse.collin@tukaani.org>
7942 Date:   2019-06-03 20:41:54 +0300
7943
7944     liblzma: Fix comments.
7945     
7946     Thanks to Bruce Stark.
7947
7948  src/liblzma/common/alone_encoder.c        | 4 ++--
7949  src/liblzma/common/block_util.c           | 2 +-
7950  src/liblzma/common/common.c               | 2 +-
7951  src/liblzma/common/filter_common.h        | 2 +-
7952  src/liblzma/common/filter_decoder.h       | 2 +-
7953  src/liblzma/common/filter_flags_encoder.c | 2 +-
7954  6 files changed, 7 insertions(+), 7 deletions(-)
7955
7956 commit c460f6defebc5a81bbca90adc2476154ca244f69
7957 Author: Lasse Collin <lasse.collin@tukaani.org>
7958 Date:   2019-06-02 00:50:59 +0300
7959
7960     liblzma: Fix one more unaligned read to use unaligned_read16ne().
7961
7962  src/liblzma/lz/lz_encoder_hash.h | 2 +-
7963  1 file changed, 1 insertion(+), 1 deletion(-)
7964
7965 commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
7966 Author: Lasse Collin <lasse.collin@tukaani.org>
7967 Date:   2019-06-01 21:41:55 +0300
7968
7969     Update THANKS.
7970
7971  THANKS | 1 +
7972  1 file changed, 1 insertion(+)
7973
7974 commit 386394fc9fcde2615391f804eaa466749f96f4ef
7975 Author: Lasse Collin <lasse.collin@tukaani.org>
7976 Date:   2019-06-01 21:36:13 +0300
7977
7978     liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
7979     
7980     The same compiler-specific #ifdefs are already in tuklib_integer.h
7981
7982  src/liblzma/common/memcmplen.h | 10 +---------
7983  1 file changed, 1 insertion(+), 9 deletions(-)
7984
7985 commit 264ab971ce2994baac41b1579c9c35aba7743fc8
7986 Author: Lasse Collin <lasse.collin@tukaani.org>
7987 Date:   2019-06-01 21:30:03 +0300
7988
7989     tuklib_integer: Cleanup MSVC-specific code.
7990
7991  src/common/tuklib_integer.h | 20 +++++++++-----------
7992  1 file changed, 9 insertions(+), 11 deletions(-)
7993
7994 commit 33773c6f2a8711d4aa6656795db52c59a28580ec
7995 Author: Lasse Collin <lasse.collin@tukaani.org>
7996 Date:   2019-06-01 19:01:21 +0300
7997
7998     liblzma: Use unaligned_readXXne functions instead of type punning.
7999     
8000     Now gcc -fsanitize=undefined should be clean.
8001     
8002     Thanks to Jeffrey Walton.
8003
8004  src/liblzma/common/memcmplen.h          | 12 ++++++------
8005  src/liblzma/lzma/lzma_encoder_private.h |  2 +-
8006  2 files changed, 7 insertions(+), 7 deletions(-)
8007
8008 commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
8009 Author: Lasse Collin <lasse.collin@tukaani.org>
8010 Date:   2019-06-01 18:46:54 +0300
8011
8012     tuklib_integer: Autodetect support for unaligned access on ARM.
8013     
8014     The result is used as the default for --enable-unaligned-access.
8015     The test should work with GCC and Clang.
8016
8017  m4/tuklib_integer.m4 | 11 +++++++++++
8018  1 file changed, 11 insertions(+)
8019
8020 commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
8021 Author: Lasse Collin <lasse.collin@tukaani.org>
8022 Date:   2019-06-01 18:41:16 +0300
8023
8024     tuklib_integer: Improve unaligned memory access.
8025     
8026     Now memcpy() or GNU C packed structs for unaligned access instead
8027     of type punning. See the comment in this commit for details.
8028     
8029     Avoiding type punning with unaligned access is needed to
8030     silence gcc -fsanitize=undefined.
8031     
8032     New functions: unaliged_readXXne and unaligned_writeXXne where
8033     XX is 16, 32, or 64.
8034
8035  src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
8036  1 file changed, 168 insertions(+), 12 deletions(-)
8037
8038 commit 2a22de439ec63da1927b640eda309296a1e8dce5
8039 Author: Lasse Collin <lasse.collin@tukaani.org>
8040 Date:   2019-05-13 20:05:17 +0300
8041
8042     liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
8043     
8044     I should have always known this but I didn't. Here is an example
8045     as a reminder to myself:
8046     
8047         int mycopy(void *dest, void *src, size_t n)
8048         {
8049             memcpy(dest, src, n);
8050             return dest == NULL;
8051         }
8052     
8053     In the example, a compiler may assume that dest != NULL because
8054     passing NULL to memcpy() would be undefined behavior. Testing
8055     with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
8056     With -O2 the return value is 0 because the compiler infers that
8057     dest cannot be NULL because it was already used with memcpy()
8058     and thus the test for NULL gets optimized out.
8059     
8060     In liblzma, if a null-pointer was passed to memcpy(), there were
8061     no checks for NULL *after* the memcpy() call, so I cautiously
8062     suspect that it shouldn't have caused bad behavior in practice,
8063     but it's hard to be sure, and the problematic cases had to be
8064     fixed anyway.
8065     
8066     Thanks to Jeffrey Walton.
8067
8068  src/liblzma/common/common.c       |  6 +++++-
8069  src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
8070  src/liblzma/simple/simple_coder.c | 10 +++++++++-
8071  3 files changed, 23 insertions(+), 5 deletions(-)
8072
8073 commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
8074 Author: Lasse Collin <lasse.collin@tukaani.org>
8075 Date:   2019-05-11 20:56:08 +0300
8076
8077     Update THANKS.
8078
8079  THANKS | 1 +
8080  1 file changed, 1 insertion(+)
8081
8082 commit 4adb8288ab61d5f14e212007b8742df0710baf73
8083 Author: Lasse Collin <lasse.collin@tukaani.org>
8084 Date:   2019-05-11 20:54:12 +0300
8085
8086     xz: Update xz man page date.
8087
8088  src/xz/xz.1 | 2 +-
8089  1 file changed, 1 insertion(+), 1 deletion(-)
8090
8091 commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
8092 Author: Antoine Cœur <antoine.coeur@ef.com>
8093 Date:   2019-05-08 13:30:57 +0800
8094
8095     spelling
8096
8097  Doxyfile.in                            | 2 +-
8098  NEWS                                   | 2 +-
8099  doc/examples/11_file_info.c            | 2 +-
8100  src/liblzma/api/lzma/block.h           | 2 +-
8101  src/liblzma/api/lzma/hardware.h        | 2 +-
8102  src/liblzma/api/lzma/lzma12.h          | 2 +-
8103  src/liblzma/api/lzma/vli.h             | 2 +-
8104  src/liblzma/common/file_info.c         | 4 ++--
8105  src/liblzma/common/hardware_physmem.c  | 2 +-
8106  src/liblzma/common/index.c             | 4 ++--
8107  src/liblzma/common/stream_encoder_mt.c | 2 +-
8108  src/liblzma/common/vli_decoder.c       | 2 +-
8109  src/liblzma/lz/lz_decoder.c            | 2 +-
8110  src/scripts/xzgrep.in                  | 2 +-
8111  src/xz/args.c                          | 2 +-
8112  src/xz/coder.c                         | 4 ++--
8113  src/xz/list.c                          | 4 ++--
8114  src/xz/main.c                          | 2 +-
8115  src/xz/mytime.h                        | 2 +-
8116  src/xz/private.h                       | 2 +-
8117  src/xz/xz.1                            | 2 +-
8118  windows/build.bash                     | 2 +-
8119  22 files changed, 26 insertions(+), 26 deletions(-)
8120
8121 commit 4ed339606156bd313ed99237485cb8ed0362d64f
8122 Author: Lasse Collin <lasse.collin@tukaani.org>
8123 Date:   2019-05-01 18:43:10 +0300
8124
8125     xz: In xz -lvv look at the widths of the check names too.
8126     
8127     Now the widths of the check names is used to adjust the width
8128     of the Check column. This way there no longer is a need to restrict
8129     the widths of the check names to be at most ten terminal-columns.
8130
8131  src/xz/list.c | 32 ++++++++++++++++++++++++++------
8132  1 file changed, 26 insertions(+), 6 deletions(-)
8133
8134 commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
8135 Author: Lasse Collin <lasse.collin@tukaani.org>
8136 Date:   2019-05-01 18:33:25 +0300
8137
8138     xz: Fix xz -lvv column alignment to look at the translated strings.
8139
8140  src/xz/list.c | 4 ++--
8141  1 file changed, 2 insertions(+), 2 deletions(-)
8142
8143 commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
8144 Author: Lasse Collin <lasse.collin@tukaani.org>
8145 Date:   2019-05-01 16:52:36 +0300
8146
8147     Update THANKS.
8148
8149  THANKS | 1 +
8150  1 file changed, 1 insertion(+)
8151
8152 commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
8153 Author: Lasse Collin <lasse.collin@tukaani.org>
8154 Date:   2019-05-01 16:43:16 +0300
8155
8156     Windows: Update VS version in windows/vs2019/config.h.
8157
8158  windows/vs2019/config.h | 2 +-
8159  1 file changed, 1 insertion(+), 1 deletion(-)
8160
8161 commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
8162 Author: Julien Marrec <julien.marrec@gmail.com>
8163 Date:   2019-04-25 17:44:06 +0200
8164
8165     Windows: Upgrade solution itself
8166
8167  windows/vs2019/xz_win.sln | 7 +++++--
8168  1 file changed, 5 insertions(+), 2 deletions(-)
8169
8170 commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
8171 Author: Julien Marrec <julien.marrec@gmail.com>
8172 Date:   2019-04-25 17:40:24 +0200
8173
8174     Windows: Upgrade solution with VS2019
8175
8176  windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
8177  windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
8178  2 files changed, 16 insertions(+), 14 deletions(-)
8179
8180 commit be25a0c37ba92a20c390b4d17fe502457fe96b71
8181 Author: Julien Marrec <julien.marrec@gmail.com>
8182 Date:   2019-04-25 17:39:32 +0200
8183
8184     Windows: Duplicate windows/vs2017 before upgrading
8185
8186  windows/vs2019/config.h            | 148 ++++++++++++++
8187  windows/vs2019/liblzma.vcxproj     | 356 ++++++++++++++++++++++++++++++++++
8188  windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++
8189  windows/vs2019/xz_win.sln          |  48 +++++
8190  4 files changed, 937 insertions(+)
8191
8192 commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
8193 Author: Lasse Collin <lasse.collin@tukaani.org>
8194 Date:   2019-03-04 22:49:04 +0200
8195
8196     README: Update translation instructions.
8197     
8198     XZ Utils is now part of the Translation Project
8199     <https://translationproject.org/>.
8200
8201  README | 32 +++++++++++++-------------------
8202  1 file changed, 13 insertions(+), 19 deletions(-)
8203
8204 commit a750c35a7d45a16c11c1d40fecee8443c32a9996
8205 Author: Lasse Collin <lasse.collin@tukaani.org>
8206 Date:   2019-03-04 21:20:39 +0200
8207
8208     xz: Automatically align column headings in xz -lvv.
8209
8210  src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------
8211  1 file changed, 212 insertions(+), 51 deletions(-)
8212
8213 commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
8214 Author: Lasse Collin <lasse.collin@tukaani.org>
8215 Date:   2019-03-04 01:07:59 +0200
8216
8217     xz: Automatically align strings ending in a colon in --list output.
8218     
8219     This should avoid alignment errors in translations with these
8220     strings.
8221
8222  src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
8223  1 file changed, 102 insertions(+), 12 deletions(-)
8224
8225 commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
8226 Author: Lasse Collin <lasse.collin@tukaani.org>
8227 Date:   2019-01-13 17:29:23 +0200
8228
8229     Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
8230     
8231     I understood that if a WTPV is specified, it's often wrong
8232     because different VS installations have different SDK version
8233     installed. Omitting the WTPV tag makes VS2017 default to
8234     Windows SDK 8.1 which often is also missing, so in any case
8235     people may need to specify the WTPV before building. But some
8236     day in the future a missing WTPV tag will start to default to
8237     the latest installed SDK which sounds reasonable:
8238     
8239     https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
8240     
8241     Thanks to "dom".
8242
8243  windows/INSTALL-MSVC.txt           | 4 ++++
8244  windows/vs2017/liblzma.vcxproj     | 1 -
8245  windows/vs2017/liblzma_dll.vcxproj | 1 -
8246  3 files changed, 4 insertions(+), 2 deletions(-)
8247
8248 commit 4d86076332aece6314063d3712a5f364172bbb0f
8249 Author: Lasse Collin <lasse.collin@tukaani.org>
8250 Date:   2018-12-20 20:42:29 +0200
8251
8252     Update THANKS.
8253
8254  THANKS | 1 +
8255  1 file changed, 1 insertion(+)
8256
8257 commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
8258 Author: Lasse Collin <lasse.collin@tukaani.org>
8259 Date:   2018-12-14 20:34:30 +0200
8260
8261     xz: Fix a crash in progress indicator when in passthru mode.
8262     
8263     "xz -dcfv not_an_xz_file" crashed (all four options are
8264     required to trigger it). It caused xz to call
8265     lzma_get_progress(&strm, ...) when no coder was initialized
8266     in strm. In this situation strm.internal is NULL which leads
8267     to a crash in lzma_get_progress().
8268     
8269     The bug was introduced when xz started using lzma_get_progress()
8270     to get progress info for multi-threaded compression, so the
8271     bug is present in versions 5.1.3alpha and higher.
8272     
8273     Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
8274     the bug report.
8275
8276  src/xz/coder.c   | 11 +++++++----
8277  src/xz/message.c | 18 ++++++++++++++++--
8278  src/xz/message.h |  3 ++-
8279  3 files changed, 25 insertions(+), 7 deletions(-)
8280
8281 commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
8282 Author: Lasse Collin <lasse.collin@tukaani.org>
8283 Date:   2018-11-22 17:20:31 +0200
8284
8285     xz: Update man page timestamp.
8286
8287  src/xz/xz.1 | 2 +-
8288  1 file changed, 1 insertion(+), 1 deletion(-)
8289
8290 commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
8291 Author: Pavel Raiskup <praiskup@redhat.com>
8292 Date:   2018-11-22 15:14:34 +0100
8293
8294     'have have' typos
8295
8296  src/xz/signals.c | 2 +-
8297  src/xz/xz.1      | 2 +-
8298  2 files changed, 2 insertions(+), 2 deletions(-)
8299
8300 commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
8301 Author: Lasse Collin <lasse.collin@tukaani.org>
8302 Date:   2018-11-02 20:40:48 +0200
8303
8304     Update THANKS.
8305
8306  THANKS | 1 +
8307  1 file changed, 1 insertion(+)
8308
8309 commit 106d1a663d4ba42b63231caa289f531548df81c1
8310 Author: Lasse Collin <lasse.collin@tukaani.org>
8311 Date:   2018-11-02 20:18:45 +0200
8312
8313     Tests: Add a fuzz test program and a config file for OSS-Fuzz.
8314     
8315     Thanks to Bhargava Shastry and Github user pdknsk.
8316
8317  tests/Makefile.am                 |  1 +
8318  tests/ossfuzz/Makefile            |  7 ++++
8319  tests/ossfuzz/config/fuzz.dict    |  2 +
8320  tests/ossfuzz/config/fuzz.options |  2 +
8321  tests/ossfuzz/fuzz.c              | 82 +++++++++++++++++++++++++++++++++++++++
8322  5 files changed, 94 insertions(+)
8323
8324 commit a18ae42a79a19b1394b41eb3e238139fd28012ec
8325 Author: Lasse Collin <lasse.collin@tukaani.org>
8326 Date:   2018-10-26 22:49:10 +0300
8327
8328     liblzma: Don't verify header CRC32s if building for fuzz testing.
8329     
8330     FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
8331     is being built for fuzz testing.
8332     
8333     Most fuzzed inputs would normally get rejected because of incorrect
8334     CRC32 and the actual header decoding code wouldn't get fuzzed.
8335     Disabling CRC32 checks avoids this problem. The fuzzer program
8336     must still use LZMA_IGNORE_CHECK flag to disable verification of
8337     integrity checks of uncompressed data.
8338
8339  src/liblzma/common/block_header_decoder.c |  5 ++++-
8340  src/liblzma/common/index_decoder.c        |  5 ++++-
8341  src/liblzma/common/index_hash.c           |  5 ++++-
8342  src/liblzma/common/stream_flags_decoder.c | 10 ++++++++--
8343  4 files changed, 20 insertions(+), 5 deletions(-)
8344
8345 commit f76f7516d6a1c832f61810c82e92d151cc80966c
8346 Author: Lasse Collin <lasse.collin@tukaani.org>
8347 Date:   2018-07-27 18:10:44 +0300
8348
8349     xzless: Rename unused variables to silence static analysers.
8350     
8351     In this particular case I don't see this affecting readability
8352     of the code.
8353     
8354     Thanks to Pavel Raiskup.
8355
8356  src/scripts/xzless.in | 2 +-
8357  1 file changed, 1 insertion(+), 1 deletion(-)
8358
8359 commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
8360 Author: Lasse Collin <lasse.collin@tukaani.org>
8361 Date:   2018-07-27 16:02:58 +0300
8362
8363     liblzma: Remove an always-true condition from lzma_index_cat().
8364     
8365     This should help static analysis tools to see that newg
8366     isn't leaked.
8367     
8368     Thanks to Pavel Raiskup.
8369
8370  src/liblzma/common/index.c | 4 ++--
8371  1 file changed, 2 insertions(+), 2 deletions(-)
8372
8373 commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
8374 Author: Lasse Collin <lasse.collin@tukaani.org>
8375 Date:   2018-05-19 21:23:25 +0300
8376
8377     liblzma: Improve lzma_properties_decode() API documentation.
8378
8379  src/liblzma/api/lzma/filter.h | 7 ++++---
8380  1 file changed, 4 insertions(+), 3 deletions(-)
8381
8382 commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
8383 Author: Lasse Collin <lasse.collin@tukaani.org>
8384 Date:   2018-04-29 18:58:19 +0300
8385
8386     Bump the version number to 5.3.1alpha.
8387
8388  src/liblzma/api/lzma/version.h | 2 +-
8389  src/liblzma/liblzma.map        | 2 +-
8390  2 files changed, 2 insertions(+), 2 deletions(-)
8391
8392 commit cee3021d30704858e4bdd22240e7d28e570d7451
8393 Author: Lasse Collin <lasse.collin@tukaani.org>
8394 Date:   2018-04-29 18:48:00 +0300
8395
8396     extra/scanlzma: Fix compiler warnings.
8397
8398  extra/scanlzma/scanlzma.c | 6 +++++-
8399  1 file changed, 5 insertions(+), 1 deletion(-)
8400
8401 commit c5c7ceb08a011b97d261798033e2c39613a69eb7
8402 Author: Lasse Collin <lasse.collin@tukaani.org>
8403 Date:   2018-04-29 18:44:47 +0300
8404
8405     DOS: Add file_info.c to the list of files to build.
8406
8407  dos/Makefile | 1 +
8408  1 file changed, 1 insertion(+)
8409
8410 commit 114cab97af766b21e0fc8620479202fb1e7a5e41
8411 Author: Lasse Collin <lasse.collin@tukaani.org>
8412 Date:   2018-04-29 18:33:10 +0300
8413
8414     Update NEWS for 5.3.1alpha.
8415
8416  NEWS | 11 +++++++++++
8417  1 file changed, 11 insertions(+)
8418
8419 commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
8420 Author: Lasse Collin <lasse.collin@tukaani.org>
8421 Date:   2018-04-29 18:15:37 +0300
8422
8423     Add NEWS for 5.2.4.
8424
8425  NEWS | 27 +++++++++++++++++++++++++++
8426  1 file changed, 27 insertions(+)
8427
8428 commit 47b59d47cfd904a420fbd45629d168ca1973721d
8429 Author: Lasse Collin <lasse.collin@tukaani.org>
8430 Date:   2018-02-06 19:36:30 +0200
8431
8432     Update THANKS.
8433
8434  THANKS | 2 ++
8435  1 file changed, 2 insertions(+)
8436
8437 commit bc197991690ede24ab143665b5b0f0f9cb35cc46
8438 Author: Ben Boeckel <mathstuf@gmail.com>
8439 Date:   2018-01-29 13:58:18 -0500
8440
8441     nothrow: use noexcept for C++11 and newer
8442     
8443     In C++11, the `throw()` specifier is deprecated and `noexcept` is
8444     preffered instead.
8445
8446  src/liblzma/api/lzma.h | 6 +++++-
8447  1 file changed, 5 insertions(+), 1 deletion(-)
8448
8449 commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
8450 Author: Lasse Collin <lasse.collin@tukaani.org>
8451 Date:   2018-02-06 18:02:48 +0200
8452
8453     liblzma: Remove incorrect #ifdef from range_common.h.
8454     
8455     In most cases it was harmless but it could affect some
8456     custom build systems.
8457     
8458     Thanks to Pippijn van Steenhoven.
8459
8460  src/liblzma/rangecoder/range_common.h | 4 +---
8461  1 file changed, 1 insertion(+), 3 deletions(-)
8462
8463 commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
8464 Author: Lasse Collin <lasse.collin@tukaani.org>
8465 Date:   2018-01-10 22:10:39 +0200
8466
8467     Update THANKS.
8468
8469  THANKS | 1 +
8470  1 file changed, 1 insertion(+)
8471
8472 commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
8473 Author: Lasse Collin <lasse.collin@tukaani.org>
8474 Date:   2018-01-10 21:54:27 +0200
8475
8476     tuklib_integer: New Intel C compiler needs immintrin.h.
8477     
8478     Thanks to Melanie Blower (Intel) for the patch.
8479
8480  src/common/tuklib_integer.h | 11 +++++++++++
8481  1 file changed, 11 insertions(+)
8482
8483 commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
8484 Author: Lasse Collin <lasse.collin@tukaani.org>
8485 Date:   2017-09-24 20:04:24 +0300
8486
8487     Update THANKS.
8488
8489  THANKS | 1 +
8490  1 file changed, 1 insertion(+)
8491
8492 commit a1e2c568de29c0b57d873eab40a2879b749da429
8493 Author: Lasse Collin <lasse.collin@tukaani.org>
8494 Date:   2017-09-16 20:36:20 +0300
8495
8496     Windows: Fix paths in VS project files.
8497     
8498     Some paths use slashes instead of backslashes as directory
8499     separators... now it should work (I tested VS2013 version).
8500
8501  windows/vs2013/liblzma.vcxproj     | 12 ++++++------
8502  windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
8503  windows/vs2017/liblzma.vcxproj     | 12 ++++++------
8504  windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
8505  4 files changed, 36 insertions(+), 36 deletions(-)
8506
8507 commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
8508 Author: Lasse Collin <lasse.collin@tukaani.org>
8509 Date:   2017-09-16 12:56:20 +0300
8510
8511     Windows: Update VS2017 project files to include file info decoder.
8512
8513  windows/vs2017/liblzma.vcxproj     | 2 ++
8514  windows/vs2017/liblzma_dll.vcxproj | 2 ++
8515  2 files changed, 4 insertions(+)
8516
8517 commit 95d563db3ee497b223e522b699c4d4c29943eef0
8518 Author: Lasse Collin <lasse.collin@tukaani.org>
8519 Date:   2017-09-16 12:54:23 +0300
8520
8521     Windows: Add project files for VS2017.
8522     
8523     These files match the v5.2 branch (no file info decoder).
8524
8525  windows/vs2017/config.h            | 148 ++++++++++++++
8526  windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
8527  windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
8528  windows/vs2017/xz_win.sln          |  48 +++++
8529  4 files changed, 935 insertions(+)
8530
8531 commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
8532 Author: Lasse Collin <lasse.collin@tukaani.org>
8533 Date:   2017-09-16 12:45:50 +0300
8534
8535     Windows: Update VS2013 project files to include file info decoder.
8536
8537  windows/vs2013/liblzma.vcxproj     | 2 ++
8538  windows/vs2013/liblzma_dll.vcxproj | 2 ++
8539  2 files changed, 4 insertions(+)
8540
8541 commit 82388980187b0e3794d187762054200bbdcc9a53
8542 Author: Lasse Collin <lasse.collin@tukaani.org>
8543 Date:   2017-09-16 12:39:43 +0300
8544
8545     Windows: Move VS2013 files into windows/vs2013 directory.
8546
8547  windows/{ => vs2013}/config.h            |   0
8548  windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
8549  windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
8550  windows/{ => vs2013}/xz_win.sln          |   0
8551  4 files changed, 279 insertions(+), 279 deletions(-)
8552
8553 commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
8554 Author: Lasse Collin <lasse.collin@tukaani.org>
8555 Date:   2017-08-14 20:08:33 +0300
8556
8557     Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
8558
8559  src/liblzma/lzma/lzma_decoder.c | 6 ++++++
8560  src/xz/list.c                   | 2 ++
8561  2 files changed, 8 insertions(+)
8562
8563 commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
8564 Author: Alexey Tourbin <alexey.tourbin@gmail.com>
8565 Date:   2017-05-16 23:56:35 +0300
8566
8567     Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
8568
8569  doc/examples/02_decompress.c | 2 +-
8570  1 file changed, 1 insertion(+), 1 deletion(-)
8571
8572 commit a015cd1f90116e655be4eaf4aad42c4c911c2807
8573 Author: Lasse Collin <lasse.collin@tukaani.org>
8574 Date:   2017-05-23 18:34:43 +0300
8575
8576     xz: Fix "xz --list --robot missing_or_bad_file.xz".
8577     
8578     It ended up printing an uninitialized char-array when trying to
8579     print the check names (column 7) on the "totals" line.
8580     
8581     This also changes the column 12 (minimum xz version) to
8582     50000002 (xz 5.0.0) instead of 0 when there are no valid
8583     input files.
8584     
8585     Thanks to kidmin for the bug report.
8586
8587  src/xz/list.c | 8 ++++++--
8588  1 file changed, 6 insertions(+), 2 deletions(-)
8589
8590 commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
8591 Author: Lasse Collin <lasse.collin@tukaani.org>
8592 Date:   2017-04-24 20:20:11 +0300
8593
8594     Docs: Add doc/examples/11_file_info.c.
8595
8596  doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++
8597  doc/examples/Makefile       |   3 +-
8598  2 files changed, 208 insertions(+), 1 deletion(-)
8599
8600 commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
8601 Author: Lasse Collin <lasse.collin@tukaani.org>
8602 Date:   2017-04-24 19:48:47 +0300
8603
8604     Build: Omit pre-5.0.0 entries from the generated ChangeLog.
8605     
8606     It makes ChangeLog significantly smaller.
8607
8608  Makefile.am | 3 ++-
8609  1 file changed, 2 insertions(+), 1 deletion(-)
8610
8611 commit 8269782283806c90a8509c2ac2a308344f70e171
8612 Author: Lasse Collin <lasse.collin@tukaani.org>
8613 Date:   2017-04-24 19:48:23 +0300
8614
8615     xz: Use lzma_file_info_decoder() for --list.
8616
8617  src/xz/list.c | 254 ++++++++++------------------------------------------------
8618  1 file changed, 44 insertions(+), 210 deletions(-)
8619
8620 commit e353d0b1cc0d3997ae5048faa8e6786414953e06
8621 Author: Lasse Collin <lasse.collin@tukaani.org>
8622 Date:   2017-04-24 19:35:50 +0300
8623
8624     liblzma: Add lzma_file_info_decoder().
8625
8626  src/liblzma/api/lzma/index.h    |  66 ++++
8627  src/liblzma/common/Makefile.inc |   1 +
8628  src/liblzma/common/file_info.c  | 855 ++++++++++++++++++++++++++++++++++++++++
8629  src/liblzma/liblzma.map         |   7 +-
8630  4 files changed, 928 insertions(+), 1 deletion(-)
8631
8632 commit 144ef9e19e9496c995b21505dd1e111c442968d1
8633 Author: Lasse Collin <lasse.collin@tukaani.org>
8634 Date:   2017-04-24 19:30:22 +0300
8635
8636     Update the Git repository URL to HTTPS in ChangeLog.
8637
8638  ChangeLog | 2 +-
8639  1 file changed, 1 insertion(+), 1 deletion(-)
8640
8641 commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
8642 Author: Lasse Collin <lasse.collin@tukaani.org>
8643 Date:   2017-04-21 15:05:16 +0300
8644
8645     liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
8646
8647  src/liblzma/api/lzma/base.h | 18 +++++++++---------
8648  src/liblzma/common/common.c |  2 +-
8649  src/xz/message.c            |  2 +-
8650  3 files changed, 11 insertions(+), 11 deletions(-)
8651
8652 commit 662b27c417cab248cb365dd7682121bdec4d5ae7
8653 Author: Lasse Collin <lasse.collin@tukaani.org>
8654 Date:   2017-04-19 22:17:35 +0300
8655
8656     Update the home page URLs to HTTPS.
8657
8658  COPYING                     | 2 +-
8659  README                      | 2 +-
8660  configure.ac                | 2 +-
8661  doc/faq.txt                 | 4 ++--
8662  dos/config.h                | 2 +-
8663  src/common/common_w32res.rc | 2 +-
8664  src/xz/xz.1                 | 6 +++---
8665  src/xzdec/xzdec.1           | 4 ++--
8666  windows/README-Windows.txt  | 2 +-
8667  windows/config.h            | 2 +-
8668  10 files changed, 14 insertions(+), 14 deletions(-)
8669
8670 commit c28f0b3d00af87b92dda229831548d8eb0067d1d
8671 Author: Lasse Collin <lasse.collin@tukaani.org>
8672 Date:   2017-04-05 18:47:22 +0300
8673
8674     xz: Add io_seek_src().
8675
8676  src/xz/file_io.c | 20 +++++++++++++++++---
8677  src/xz/file_io.h | 13 +++++++++++++
8678  2 files changed, 30 insertions(+), 3 deletions(-)
8679
8680 commit bba477257d7319c8764890f3669175b866d24944
8681 Author: Lasse Collin <lasse.collin@tukaani.org>
8682 Date:   2017-03-30 22:01:54 +0300
8683
8684     xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
8685     
8686     xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
8687     wrong.
8688
8689  src/xz/file_io.c | 10 ++++++++--
8690  1 file changed, 8 insertions(+), 2 deletions(-)
8691
8692 commit 310d19816d1652b0c8bb1b82574d46345d924752
8693 Author: Lasse Collin <lasse.collin@tukaani.org>
8694 Date:   2017-03-30 20:03:05 +0300
8695
8696     liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
8697     
8698     This is to allow other functions to use it without going
8699     via the public API (lzma_index_decoder()).
8700
8701  src/liblzma/common/Makefile.inc    |  1 +
8702  src/liblzma/common/index_decoder.c | 10 +++++-----
8703  src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++
8704  3 files changed, 30 insertions(+), 5 deletions(-)
8705
8706 commit a27920002dbc469f778a134fc665b7c3ea73701b
8707 Author: Lasse Collin <lasse.collin@tukaani.org>
8708 Date:   2017-03-30 20:00:09 +0300
8709
8710     liblzma: Add generic support for input seeking (LZMA_SEEK).
8711     
8712     Also mention LZMA_SEEK in xz/message.c to silence a warning.
8713
8714  src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++-
8715  src/liblzma/common/common.c | 12 +++++++++++-
8716  src/xz/message.c            |  1 +
8717  3 files changed, 42 insertions(+), 2 deletions(-)
8718
8719 commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
8720 Author: Lasse Collin <lasse.collin@tukaani.org>
8721 Date:   2017-03-30 19:47:45 +0300
8722
8723     liblzma: Fix lzma_memlimit_set(strm, 0).
8724     
8725     The 0 got treated specially in a buggy way and as a result
8726     the function did nothing. The API doc said that 0 was supposed
8727     to return LZMA_PROG_ERROR but it didn't.
8728     
8729     Now 0 is treated as if 1 had been specified. This is done because
8730     0 is already used to indicate an error from lzma_memlimit_get()
8731     and lzma_memusage().
8732     
8733     In addition, lzma_memlimit_set() no longer checks that the new
8734     limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
8735     for the Index decoder and was actually needed only by the
8736     auto decoder. Auto decoder has now been modified to check for
8737     LZMA_MEMUSAGE_BASE.
8738
8739  src/liblzma/api/lzma/base.h       | 7 ++++++-
8740  src/liblzma/common/auto_decoder.c | 3 +++
8741  src/liblzma/common/common.c       | 6 ++++--
8742  3 files changed, 13 insertions(+), 3 deletions(-)
8743
8744 commit 84462afaada61379f5878e46f8f00e25a1cdcf29
8745 Author: Lasse Collin <lasse.collin@tukaani.org>
8746 Date:   2017-03-30 19:16:55 +0300
8747
8748     liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
8749
8750  src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
8751  src/liblzma/common/alone_decoder.c  |  5 +----
8752  src/liblzma/common/auto_decoder.c   |  5 +----
8753  src/liblzma/common/stream_decoder.c |  5 +----
8754  4 files changed, 20 insertions(+), 16 deletions(-)
8755
8756 commit cbc74017939690d13441b8926bb743fb03211b83
8757 Author: Lasse Collin <lasse.collin@tukaani.org>
8758 Date:   2017-03-30 18:58:18 +0300
8759
8760     liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
8761     
8762     It returned LZMA_PROG_ERROR, which was done to avoid zero as
8763     the limit (because it's a special value elsewhere), but using
8764     LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
8765     
8766     The fix/workaround is to treat 0 as if it were 1 byte. It's
8767     effectively the same thing. The only weird consequence is
8768     that then lzma_memlimit_get() will return 1 even when 0 was
8769     specified as the limit.
8770     
8771     This fixes a very rare corner case in xz --list where a specific
8772     memory usage limit and a multi-stream file could print the
8773     error message "Internal error (bug)" instead of saying that
8774     the memory usage limit is too low.
8775
8776  src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
8777  src/liblzma/common/index_decoder.c |  4 ++--
8778  2 files changed, 13 insertions(+), 9 deletions(-)
8779
8780 commit 78ae13bced912b1b92ae927992c99cbcc463cae7
8781 Author: Lasse Collin <lasse.collin@tukaani.org>
8782 Date:   2016-12-30 13:25:10 +0200
8783
8784     Update NEWS for 5.2.3.
8785
8786  NEWS | 39 +++++++++++++++++++++++++++++++++++++++
8787  1 file changed, 39 insertions(+)
8788
8789 commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
8790 Author: Lasse Collin <lasse.collin@tukaani.org>
8791 Date:   2016-12-26 20:55:52 +0200
8792
8793     Document --enable-sandbox configure option in INSTALL.
8794
8795  INSTALL | 23 +++++++++++++++++++++++
8796  1 file changed, 23 insertions(+)
8797
8798 commit d4a0462abe5478193521c14625e1c81fead87f9f
8799 Author: Lasse Collin <lasse.collin@tukaani.org>
8800 Date:   2016-11-21 20:24:50 +0200
8801
8802     liblzma: Avoid multiple definitions of lzma_coder structures.
8803     
8804     Only one definition was visible in a translation unit.
8805     It avoided a few casts and temp variables but seems that
8806     this hack doesn't work with link-time optimizations in compilers
8807     as it's not C99/C11 compliant.
8808     
8809     Fixes:
8810     http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
8811
8812  src/liblzma/common/alone_decoder.c             |  44 +++++----
8813  src/liblzma/common/alone_encoder.c             |  34 ++++---
8814  src/liblzma/common/auto_decoder.c              |  35 ++++---
8815  src/liblzma/common/block_decoder.c             |  41 ++++----
8816  src/liblzma/common/block_encoder.c             |  40 ++++----
8817  src/liblzma/common/common.h                    |  18 ++--
8818  src/liblzma/common/index_decoder.c             |  33 ++++---
8819  src/liblzma/common/index_encoder.c             |  16 ++--
8820  src/liblzma/common/stream_decoder.c            |  50 +++++-----
8821  src/liblzma/common/stream_encoder.c            |  56 ++++++-----
8822  src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
8823  src/liblzma/delta/delta_common.c               |  25 ++---
8824  src/liblzma/delta/delta_decoder.c              |   6 +-
8825  src/liblzma/delta/delta_encoder.c              |  12 ++-
8826  src/liblzma/delta/delta_private.h              |   4 +-
8827  src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
8828  src/liblzma/lz/lz_decoder.h                    |  13 ++-
8829  src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
8830  src/liblzma/lz/lz_encoder.h                    |   9 +-
8831  src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
8832  src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
8833  src/liblzma/lzma/lzma_decoder.c                |  27 +++---
8834  src/liblzma/lzma/lzma_encoder.c                |  29 +++---
8835  src/liblzma/lzma/lzma_encoder.h                |   9 +-
8836  src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
8837  src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
8838  src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
8839  src/liblzma/simple/arm.c                       |   2 +-
8840  src/liblzma/simple/armthumb.c                  |   2 +-
8841  src/liblzma/simple/ia64.c                      |   2 +-
8842  src/liblzma/simple/powerpc.c                   |   2 +-
8843  src/liblzma/simple/simple_coder.c              |  61 ++++++------
8844  src/liblzma/simple/simple_private.h            |  12 +--
8845  src/liblzma/simple/sparc.c                     |   2 +-
8846  src/liblzma/simple/x86.c                       |  15 +--
8847  35 files changed, 532 insertions(+), 423 deletions(-)
8848
8849 commit a01794c52add98263b49119842c3e7141d1b9ced
8850 Author: Lasse Collin <lasse.collin@tukaani.org>
8851 Date:   2016-10-24 18:53:25 +0300
8852
8853     Update THANKS.
8854
8855  THANKS | 1 +
8856  1 file changed, 1 insertion(+)
8857
8858 commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
8859 Author: Lasse Collin <lasse.collin@tukaani.org>
8860 Date:   2016-10-24 18:51:36 +0300
8861
8862     tuklib_cpucores: Add support for sched_getaffinity().
8863     
8864     It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
8865     than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
8866     gives the number of cores available to the process instead of
8867     the total number of cores online.
8868     
8869     As a side effect, this commit fixes a bug on GNU/kFreeBSD where
8870     configure would detect the FreeBSD-specific cpuset_getaffinity()
8871     but it wouldn't actually work because on GNU/kFreeBSD it requires
8872     using -lfreebsd-glue when linking. Now the glibc-specific function
8873     will be used instead.
8874     
8875     Thanks to Sebastian Andrzej Siewior for the original patch
8876     and testing.
8877
8878  m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
8879  src/common/tuklib_cpucores.c |  9 +++++++++
8880  2 files changed, 38 insertions(+), 1 deletion(-)
8881
8882 commit 446e4318fa79788e09299d5953b5dd428953d14b
8883 Author: Lasse Collin <lasse.collin@tukaani.org>
8884 Date:   2016-06-30 20:27:36 +0300
8885
8886     xz: Fix copying of timestamps on Windows.
8887     
8888     xz used to call utime() on Windows, but its result gets lost
8889     on close(). Using _futime() seems to work.
8890     
8891     Thanks to Martok for reporting the bug:
8892     http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
8893
8894  configure.ac     |  2 +-
8895  src/xz/file_io.c | 18 ++++++++++++++++++
8896  2 files changed, 19 insertions(+), 1 deletion(-)
8897
8898 commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
8899 Author: Lasse Collin <lasse.collin@tukaani.org>
8900 Date:   2016-06-16 22:46:02 +0300
8901
8902     xz: Silence warnings from -Wlogical-op.
8903     
8904     Thanks to Evan Nemerson.
8905
8906  src/xz/file_io.c | 12 ++++++++++--
8907  1 file changed, 10 insertions(+), 2 deletions(-)
8908
8909 commit c83b7a03342c3325ff10400b22ee21edfcd1e026
8910 Author: Lasse Collin <lasse.collin@tukaani.org>
8911 Date:   2016-04-10 20:55:49 +0300
8912
8913     Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
8914     
8915     Thanks to Christian Kujau.
8916
8917  src/xz/Makefile.am | 2 +-
8918  1 file changed, 1 insertion(+), 1 deletion(-)
8919
8920 commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
8921 Author: Lasse Collin <lasse.collin@tukaani.org>
8922 Date:   2016-04-10 20:54:17 +0300
8923
8924     Build: Bump GNU Gettext version requirement to 0.19.
8925     
8926     It silences a few warnings and most people probably have
8927     0.19 even on stable distributions.
8928     
8929     Thanks to Christian Kujau.
8930
8931  configure.ac | 2 +-
8932  1 file changed, 1 insertion(+), 1 deletion(-)
8933
8934 commit ac398c3bafa6e4c80e20571373a96947db863b3d
8935 Author: Lasse Collin <lasse.collin@tukaani.org>
8936 Date:   2016-03-13 20:21:49 +0200
8937
8938     liblzma: Disable external SHA-256 by default.
8939     
8940     This is the sane thing to do. The conflict with OpenSSL
8941     on some OSes and especially that the OS-provided versions
8942     can be significantly slower makes it clear that it was
8943     a mistake to have the external SHA-256 support enabled by
8944     default.
8945     
8946     Those who want it can now pass --enable-external-sha256 to
8947     configure. INSTALL was updated with notes about OSes where
8948     this can be a bad idea.
8949     
8950     The SHA-256 detection code in configure.ac had some bugs that
8951     could lead to a build failure in some situations. These were
8952     fixed, although it doesn't matter that much now that the
8953     external SHA-256 is disabled by default.
8954     
8955     MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
8956     in libc instead of libutil. Support for the libutil version
8957     was removed.
8958
8959  INSTALL                   | 36 ++++++++++++++++++++++
8960  configure.ac              | 76 +++++++++++++++++++++++------------------------
8961  src/liblzma/check/check.h | 16 ++++------
8962  3 files changed, 79 insertions(+), 49 deletions(-)
8963
8964 commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
8965 Author: Lasse Collin <lasse.collin@tukaani.org>
8966 Date:   2016-03-10 20:27:05 +0200
8967
8968     Update THANKS.
8969
8970  THANKS | 1 +
8971  1 file changed, 1 insertion(+)
8972
8973 commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
8974 Author: Lasse Collin <lasse.collin@tukaani.org>
8975 Date:   2016-03-10 20:26:49 +0200
8976
8977     Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
8978     
8979     On FreeBSD 10 and older, SHA256_Init from libmd conflicts
8980     with libcrypto from OpenSSL. The OpenSSL version has
8981     different sizeof(SHA256_CTX) and it can cause weird
8982     problems if wrong SHA256_Init gets used.
8983     
8984     Looking at the source, MINIX 3 seems to have a similar issue but
8985     I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
8986     
8987     NetBSD has SHA256_Init in libc and they had a similar problem,
8988     but they already fixed it in 2009.
8989     
8990     Thanks to Jim Wilcoxson for the bug report that helped
8991     in finding the problem.
8992
8993  configure.ac | 27 +++++++++++++++++++++------
8994  1 file changed, 21 insertions(+), 6 deletions(-)
8995
8996 commit faf302137e54d605b44ecf0373cb51a6403a2de1
8997 Author: Lasse Collin <lasse.collin@tukaani.org>
8998 Date:   2015-11-08 20:16:10 +0200
8999
9000     tuklib_physmem: Hopefully silence a warning on Windows.
9001
9002  src/common/tuklib_physmem.c | 3 ++-
9003  1 file changed, 2 insertions(+), 1 deletion(-)
9004
9005 commit e52e9151cf8613022d1de4712ff39dbcb666e991
9006 Author: Lasse Collin <lasse.collin@tukaani.org>
9007 Date:   2015-11-04 23:17:43 +0200
9008
9009     Update THANKS.
9010
9011  THANKS | 1 +
9012  1 file changed, 1 insertion(+)
9013
9014 commit 14115f84a38161d55eaa2d070f08739bde37e966
9015 Author: Lasse Collin <lasse.collin@tukaani.org>
9016 Date:   2015-11-04 23:14:00 +0200
9017
9018     liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
9019     
9020     When optimizing, GCC can reorder code so that an uninitialized
9021     value gets used in a comparison, which makes Valgrind unhappy.
9022     It doesn't happen when compiled with -O0, which I tend to use
9023     when running Valgrind.
9024     
9025     Thanks to Rich Prohaska. I remember this being mentioned long
9026     ago by someone else but nothing was done back then.
9027
9028  src/liblzma/lz/lz_encoder.c | 4 ++++
9029  1 file changed, 4 insertions(+)
9030
9031 commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
9032 Author: Lasse Collin <lasse.collin@tukaani.org>
9033 Date:   2015-11-03 20:55:45 +0200
9034
9035     liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
9036     
9037     It would be too annoying to update other build systems
9038     just because of this.
9039
9040  src/liblzma/lzma/Makefile.inc                               | 2 +-
9041  src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
9042  2 files changed, 2 insertions(+), 2 deletions(-)
9043
9044 commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
9045 Author: Lasse Collin <lasse.collin@tukaani.org>
9046 Date:   2015-11-03 20:47:07 +0200
9047
9048     Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
9049     
9050     They all need decoder support and if that isn't available,
9051     there's no point trying to build them.
9052
9053  configure.ac | 3 +++
9054  1 file changed, 3 insertions(+)
9055
9056 commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
9057 Author: Lasse Collin <lasse.collin@tukaani.org>
9058 Date:   2015-11-03 20:35:19 +0200
9059
9060     Build: Simplify $enable_{encoders,decoders} usage a bit.
9061
9062  configure.ac | 6 ++++--
9063  1 file changed, 4 insertions(+), 2 deletions(-)
9064
9065 commit af13781886c8e7a0aabebb5141ea282dc364f5c6
9066 Author: Lasse Collin <lasse.collin@tukaani.org>
9067 Date:   2015-11-03 20:31:31 +0200
9068
9069     Windows/MSVC: Update config.h.
9070
9071  windows/config.h | 6 ++++++
9072  1 file changed, 6 insertions(+)
9073
9074 commit 9fa5949330f162c5a2f6653f83025327837e8f39
9075 Author: Lasse Collin <lasse.collin@tukaani.org>
9076 Date:   2015-11-03 20:29:58 +0200
9077
9078     DOS: Update config.h.
9079
9080  dos/config.h | 6 ++++++
9081  1 file changed, 6 insertions(+)
9082
9083 commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
9084 Author: Lasse Collin <lasse.collin@tukaani.org>
9085 Date:   2015-11-03 20:29:33 +0200
9086
9087     xz: Make xz buildable even when encoders or decoders are disabled.
9088     
9089     The patch is quite long but it's mostly about adding new #ifdefs
9090     to omit code when encoders or decoders have been disabled.
9091     
9092     This adds two new #defines to config.h: HAVE_ENCODERS and
9093     HAVE_DECODERS.
9094
9095  configure.ac       |  4 ++++
9096  src/xz/Makefile.am |  8 ++++++--
9097  src/xz/args.c      | 16 ++++++++++++++++
9098  src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
9099  src/xz/main.c      |  9 +++++++--
9100  src/xz/private.h   |  5 ++++-
9101  6 files changed, 62 insertions(+), 13 deletions(-)
9102
9103 commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
9104 Author: Lasse Collin <lasse.collin@tukaani.org>
9105 Date:   2015-11-03 18:06:40 +0200
9106
9107     Build: Build LZMA1/2 presets also when only decoder is wanted.
9108     
9109     People shouldn't rely on the presets when decoding raw streams,
9110     but xz uses the presets as the starting point for raw decoder
9111     options anyway.
9112     
9113     lzma_encocder_presets.c was renamed to lzma_presets.c to
9114     make it clear it's not used solely by the encoder code.
9115
9116  src/liblzma/lzma/Makefile.inc                               | 6 +++++-
9117  src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
9118  2 files changed, 7 insertions(+), 2 deletions(-)
9119
9120 commit 23ed1d41489f632155bbc9660f323d57e09da180
9121 Author: Lasse Collin <lasse.collin@tukaani.org>
9122 Date:   2015-11-03 17:54:48 +0200
9123
9124     Build: Fix configure to handle LZMA1 dependency with LZMA2.
9125     
9126     Now it gives an error if LZMA1 encoder/decoder is missing
9127     when LZMA2 encoder/decoder was requested. Even better would
9128     be LZMA2 implicitly enabling LZMA1 but it would need more code.
9129
9130  configure.ac | 5 -----
9131  1 file changed, 5 deletions(-)
9132
9133 commit b0bc3e03852af13419ea2960881824258d451117
9134 Author: Lasse Collin <lasse.collin@tukaani.org>
9135 Date:   2015-11-03 17:41:54 +0200
9136
9137     Build: Don't omit lzma_cputhreads() unless using --disable-threads.
9138     
9139     Previously it was omitted if encoders were disabled
9140     with --disable-encoders. It didn't make sense and
9141     it also broke the build.
9142
9143  src/liblzma/common/Makefile.inc | 5 ++++-
9144  1 file changed, 4 insertions(+), 1 deletion(-)
9145
9146 commit c6bf438ab39e0fb4a47d3c81725c227919502726
9147 Author: Lasse Collin <lasse.collin@tukaani.org>
9148 Date:   2015-11-02 18:16:51 +0200
9149
9150     liblzma: Fix a build failure related to external SHA-256 support.
9151     
9152     If an appropriate header and structure were found by configure,
9153     but a library with a usable SHA-256 functions wasn't, the build
9154     failed.
9155
9156  src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
9157  1 file changed, 23 insertions(+), 9 deletions(-)
9158
9159 commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
9160 Author: Lasse Collin <lasse.collin@tukaani.org>
9161 Date:   2015-11-02 15:19:10 +0200
9162
9163     xz: Always close the file before trying to delete it.
9164     
9165     unlink() can return EBUSY in errno for open files on some
9166     operating systems and file systems.
9167
9168  src/xz/file_io.c | 25 ++++++++++++-------------
9169  1 file changed, 12 insertions(+), 13 deletions(-)
9170
9171 commit 282e768a1484e88c8b7ec35655ee4959954ec87a
9172 Author: Lasse Collin <lasse.collin@tukaani.org>
9173 Date:   2015-10-12 21:08:42 +0300
9174
9175     Update THANKS.
9176
9177  THANKS | 1 +
9178  1 file changed, 1 insertion(+)
9179
9180 commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
9181 Author: Lasse Collin <lasse.collin@tukaani.org>
9182 Date:   2015-10-12 21:07:41 +0300
9183
9184     Tests: Add tests for the two bugs fixed in index.c.
9185
9186  tests/test_index.c | 30 ++++++++++++++++++++++++++++++
9187  1 file changed, 30 insertions(+)
9188
9189 commit 21515d79d778b8730a434f151b07202d52a04611
9190 Author: Lasse Collin <lasse.collin@tukaani.org>
9191 Date:   2015-10-12 20:45:15 +0300
9192
9193     liblzma: Fix lzma_index_dup() for empty Streams.
9194     
9195     Stream Flags and Stream Padding weren't copied from
9196     empty Streams.
9197
9198  src/liblzma/common/index.c | 11 ++++++-----
9199  1 file changed, 6 insertions(+), 5 deletions(-)
9200
9201 commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
9202 Author: Lasse Collin <lasse.collin@tukaani.org>
9203 Date:   2015-10-12 20:31:44 +0300
9204
9205     liblzma: Add a note to index.c for those using static analyzers.
9206
9207  src/liblzma/common/index.c | 3 +++
9208  1 file changed, 3 insertions(+)
9209
9210 commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
9211 Author: Lasse Collin <lasse.collin@tukaani.org>
9212 Date:   2015-10-12 20:29:09 +0300
9213
9214     liblzma: Fix a memory leak in error path of lzma_index_dup().
9215     
9216     lzma_index_dup() calls index_dup_stream() which, in case of
9217     an error, calls index_stream_end() to free memory allocated
9218     by index_stream_init(). However, it illogically didn't
9219     actually free the memory. To make it logical, the tree
9220     handling code was modified a bit in addition to changing
9221     index_stream_end().
9222     
9223     Thanks to Evan Nemerson for the bug report.
9224
9225  src/liblzma/common/index.c | 18 +++++++++---------
9226  1 file changed, 9 insertions(+), 9 deletions(-)
9227
9228 commit 7f05803979b4b79642d5be4218a79da7a0b12c47
9229 Author: Lasse Collin <lasse.collin@tukaani.org>
9230 Date:   2015-09-29 13:57:28 +0300
9231
9232     Update NEWS for 5.2.2.
9233
9234  NEWS | 18 ++++++++++++++++++
9235  1 file changed, 18 insertions(+)
9236
9237 commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
9238 Author: Hauke Henningsen <sqrt@entless.org>
9239 Date:   2015-08-17 04:59:54 +0200
9240
9241     Update German translation, mostly wrt orthography
9242     
9243     Provide an update of the German translation.
9244     * A lot of compound words were previously written with spaces, while
9245       German orthography is relatively clear in that the components
9246       should not be separated.
9247     * When referring to the actual process of (de)compression rather than the
9248       concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
9249       Previously, both forms were used in this context and are now used in a
9250       manner consistent with “Komprimierung” being more likely to refer to
9251       a process.
9252     * Consistently translate “standard input”/“output”
9253     * Use “Zeichen” instead of false friend “Charakter” for “character”
9254     * Insert commas around relative clauses (as required in German)
9255     * Some other minor corrections
9256     * Capitalize “ß” as “ẞ”
9257     * Consistently start option descriptions in --help with capital letters
9258     
9259     Acked-By: Andre Noll <maan@tuebingen.mpg.de>
9260     
9261     * Update after msgmerge
9262
9263  po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
9264  1 file changed, 196 insertions(+), 187 deletions(-)
9265
9266 commit cbc9e39bae715accb44168930a71888480aad569
9267 Author: Lasse Collin <lasse.collin@tukaani.org>
9268 Date:   2015-08-11 13:23:04 +0300
9269
9270     Build: Minor Cygwin cleanup.
9271     
9272     Some tests used "cygwin*" and some used "cygwin". I changed
9273     them all to use "cygwin". Shouldn't affect anything in practice.
9274
9275  configure.ac | 6 +++---
9276  1 file changed, 3 insertions(+), 3 deletions(-)
9277
9278 commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
9279 Author: Lasse Collin <lasse.collin@tukaani.org>
9280 Date:   2015-08-11 13:21:52 +0300
9281
9282     Build: Support building of MSYS2 binaries.
9283
9284  configure.ac | 16 +++++++++++-----
9285  1 file changed, 11 insertions(+), 5 deletions(-)
9286
9287 commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
9288 Author: Lasse Collin <lasse.collin@tukaani.org>
9289 Date:   2015-08-09 21:06:26 +0300
9290
9291     Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
9292     
9293     src/liblzma/common/common.h uses it to set __declspec(dllexport)
9294     for the API symbols.
9295     
9296     Thanks to Adam Walling.
9297
9298  windows/liblzma_dll.vcxproj | 12 ++++++------
9299  1 file changed, 6 insertions(+), 6 deletions(-)
9300
9301 commit a74525cf9b945fb0b370e64cf406104beb31729b
9302 Author: Lasse Collin <lasse.collin@tukaani.org>
9303 Date:   2015-08-09 21:02:20 +0300
9304
9305     Windows: Omit unneeded header files from MSVC project files.
9306
9307  windows/liblzma.vcxproj     | 5 -----
9308  windows/liblzma_dll.vcxproj | 5 -----
9309  2 files changed, 10 deletions(-)
9310
9311 commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
9312 Author: Lasse Collin <lasse.collin@tukaani.org>
9313 Date:   2015-07-12 20:48:19 +0300
9314
9315     liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
9316
9317  src/liblzma/api/lzma.h | 18 +++++++++++++-----
9318  1 file changed, 13 insertions(+), 5 deletions(-)
9319
9320 commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
9321 Author: Lasse Collin <lasse.collin@tukaani.org>
9322 Date:   2015-06-19 20:38:55 +0300
9323
9324     Update THANKS.
9325
9326  THANKS | 2 ++
9327  1 file changed, 2 insertions(+)
9328
9329 commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
9330 Author: Lasse Collin <lasse.collin@tukaani.org>
9331 Date:   2015-06-19 20:21:30 +0300
9332
9333     Windows: Update the docs.
9334
9335  INSTALL                                            | 29 ++++++++-----
9336  windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
9337  windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
9338  3 files changed, 67 insertions(+), 11 deletions(-)
9339
9340 commit b0798c6aa6184efcefd0bdcca20f96121a13feda
9341 Author: Lasse Collin <lasse.collin@tukaani.org>
9342 Date:   2015-06-19 17:25:31 +0300
9343
9344     Windows: Add MSVC project files for building liblzma.
9345     
9346     Thanks to Adam Walling for creating these files.
9347
9348  windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
9349  windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
9350  windows/xz_win.sln          |  48 ++++++
9351  3 files changed, 795 insertions(+)
9352
9353 commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
9354 Author: Andre Noll <maan@tuebingen.mpg.de>
9355 Date:   2015-05-28 15:50:00 +0200
9356
9357     Fix typo in German translation.
9358     
9359     As pointed out by Robert Pollak, there's a typo in the German
9360     translation of the compression preset option (-0 ... -9) help text.
9361     "The compressor" translates to "der Komprimierer", and the genitive
9362     form is "des Komprimierers". The old word makes no sense at all.
9363
9364  po/de.po | 2 +-
9365  1 file changed, 1 insertion(+), 1 deletion(-)
9366
9367 commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
9368 Author: Lasse Collin <lasse.collin@tukaani.org>
9369 Date:   2015-05-13 20:57:55 +0300
9370
9371     Tests: Fix a memory leak in test_bcj_exact_size.
9372     
9373     Thanks to Cristian Rodríguez.
9374
9375  tests/test_bcj_exact_size.c | 1 +
9376  1 file changed, 1 insertion(+)
9377
9378 commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
9379 Author: Lasse Collin <lasse.collin@tukaani.org>
9380 Date:   2015-05-12 18:08:24 +0300
9381
9382     Fix NEWS about threading in 5.2.0.
9383     
9384     Thanks to Andy Hochhaus.
9385
9386  NEWS | 3 ++-
9387  1 file changed, 2 insertions(+), 1 deletion(-)
9388
9389 commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
9390 Author: Lasse Collin <lasse.collin@tukaani.org>
9391 Date:   2015-05-11 21:26:16 +0300
9392
9393     xz: Document that threaded decompression hasn't been implemented yet.
9394
9395  src/xz/xz.1 | 10 +++++++++-
9396  1 file changed, 9 insertions(+), 1 deletion(-)
9397
9398 commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
9399 Author: Lasse Collin <lasse.collin@tukaani.org>
9400 Date:   2015-04-20 20:20:29 +0300
9401
9402     Update THANKS.
9403
9404  THANKS | 1 +
9405  1 file changed, 1 insertion(+)
9406
9407 commit 6bd0349c58451b13442e8f463e35de83548bf985
9408 Author: Lasse Collin <lasse.collin@tukaani.org>
9409 Date:   2015-04-20 19:59:18 +0300
9410
9411     Revert "xz: Use pipe2() if available."
9412     
9413     This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
9414     It is a problem when libc has pipe2() but the kernel is too
9415     old to have pipe2() and thus pipe2() fails. In xz it's pointless
9416     to have a fallback for non-functioning pipe2(); it's better to
9417     avoid pipe2() completely.
9418     
9419     Thanks to Michael Fox for the bug report.
9420
9421  configure.ac     | 4 ++--
9422  src/xz/file_io.c | 9 +--------
9423  2 files changed, 3 insertions(+), 10 deletions(-)
9424
9425 commit fc0df0f8db87dff45543708a711e17d29c37f632
9426 Author: Lasse Collin <lasse.collin@tukaani.org>
9427 Date:   2015-04-01 14:45:25 +0300
9428
9429     xz: Fix the Capsicum rights on user_abort_pipe.
9430
9431  src/xz/file_io.c | 6 +++++-
9432  1 file changed, 5 insertions(+), 1 deletion(-)
9433
9434 commit 57393615b31b3788dd77280452d845bcc12d33af
9435 Author: Lasse Collin <lasse.collin@tukaani.org>
9436 Date:   2015-03-31 22:20:11 +0300
9437
9438     Update THANKS.
9439
9440  THANKS | 1 +
9441  1 file changed, 1 insertion(+)
9442
9443 commit 1238381143a9a7ce84839c2582ccd56ff750a440
9444 Author: Lasse Collin <lasse.collin@tukaani.org>
9445 Date:   2015-03-31 22:19:34 +0300
9446
9447     xz: Add support for sandboxing with Capsicum.
9448     
9449     The sandboxing is used conditionally as described in main.c.
9450     This isn't optimal but it was much easier to implement than
9451     a full sandboxing solution and it still covers the most common
9452     use cases where xz is writing to standard output. This should
9453     have practically no effect on performance even with small files
9454     as fork() isn't needed.
9455     
9456     C and locale libraries can open files as needed. This has been
9457     fine in the past, but it's a problem with things like Capsicum.
9458     io_sandbox_enter() tries to ensure that various locale-related
9459     files have been loaded before cap_enter() is called, but it's
9460     possible that there are other similar problems which haven't
9461     been seen yet.
9462     
9463     Currently Capsicum is available on FreeBSD 10 and later
9464     and there is a port to Linux too.
9465     
9466     Thanks to Loganaden Velvindron for help.
9467
9468  configure.ac       | 41 +++++++++++++++++++++++++++
9469  src/xz/Makefile.am |  2 +-
9470  src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
9471  src/xz/file_io.h   |  6 ++++
9472  src/xz/main.c      | 18 ++++++++++++
9473  src/xz/private.h   |  4 +++
9474  6 files changed, 151 insertions(+), 1 deletion(-)
9475
9476 commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
9477 Author: Lasse Collin <lasse.collin@tukaani.org>
9478 Date:   2015-03-31 21:12:30 +0300
9479
9480     Fix bugs and otherwise improve ax_check_capsicum.m4.
9481     
9482     AU_ALIAS was removed because the new version is incompatible
9483     with the old version.
9484     
9485     It no longer checks for <sys/capability.h> separately.
9486     It's enough to test for it as part of AC_CHECK_DECL.
9487     The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
9488     HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
9489     HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
9490     
9491     It no longer does a useless search for the Capsicum library
9492     if the header wasn't found.
9493     
9494     Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
9495     the argument omitted the default action but the given action
9496     wasn't used instead.
9497     
9498     AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
9499     support is found. Previously it was part of the default
9500     ACTION-IF-FOUND which a custom action would override. Now
9501     the default action only prepends ${CAPSICUM_LIB} to LIBS.
9502     
9503     The documentation was updated.
9504     
9505     Since there as no serial number, "#serial 2" was added.
9506
9507  m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
9508  1 file changed, 51 insertions(+), 52 deletions(-)
9509
9510 commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
9511 Author: Lasse Collin <lasse.collin@tukaani.org>
9512 Date:   2015-03-31 19:20:24 +0300
9513
9514     Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
9515     
9516     The file was loaded from this web page:
9517     https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
9518     
9519     Thanks to Loganaden Velvindron for pointing it out for me.
9520
9521  m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
9522  1 file changed, 86 insertions(+)
9523
9524 commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
9525 Author: Lasse Collin <lasse.collin@tukaani.org>
9526 Date:   2015-03-30 22:44:02 +0300
9527
9528     Bump version to 5.3.0alpha and soname to 5.3.99.
9529     
9530     The idea of 99 is that it looks a bit weird in this context.
9531     For new features there's no API/ABI stability in devel versions.
9532
9533  src/liblzma/Makefile.am        | 2 +-
9534  src/liblzma/api/lzma/version.h | 6 +++---
9535  2 files changed, 4 insertions(+), 4 deletions(-)
9536
9537 commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
9538 Author: Lasse Collin <lasse.collin@tukaani.org>
9539 Date:   2015-03-29 22:14:47 +0300
9540
9541     Update THANKS.
9542
9543  THANKS | 1 +
9544  1 file changed, 1 insertion(+)
9545
9546 commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
9547 Author: Lasse Collin <lasse.collin@tukaani.org>
9548 Date:   2015-03-29 22:13:48 +0300
9549
9550     Fix the detection of installed RAM on QNX.
9551     
9552     The earlier version compiled but didn't actually work
9553     since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
9554     
9555     Thanks to Ole André Vadla Ravnås for the patch and testing.
9556
9557  m4/tuklib_physmem.m4        |  6 +++---
9558  src/common/tuklib_physmem.c | 14 +++++++++++++-
9559  2 files changed, 16 insertions(+), 4 deletions(-)
9560
9561 commit 4c544d2410903d38402221cb783ed85585b6a007
9562 Author: Lasse Collin <lasse.collin@tukaani.org>
9563 Date:   2015-03-27 22:39:07 +0200
9564
9565     Fix CPU core count detection on QNX.
9566     
9567     It tried to use sysctl() on QNX but
9568       - it broke the build because sysctl() needs -lsocket on QNX;
9569       - sysctl() doesn't work for detecting the core count on QNX
9570         even if it compiled.
9571     
9572     sysconf() works. An alternative would have been to use
9573     QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
9574     
9575     Thanks to Ole André Vadla Ravnås.
9576
9577  m4/tuklib_cpucores.m4 | 15 +++++++++++----
9578  1 file changed, 11 insertions(+), 4 deletions(-)
9579
9580 commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
9581 Author: Lasse Collin <lasse.collin@tukaani.org>
9582 Date:   2015-03-07 22:05:57 +0200
9583
9584     xz: size_t/uint32_t cleanup in options.c.
9585
9586  src/xz/options.c | 12 ++++++------
9587  1 file changed, 6 insertions(+), 6 deletions(-)
9588
9589 commit 8bcca29a65335fd679c13814b70b35b68fa5daed
9590 Author: Lasse Collin <lasse.collin@tukaani.org>
9591 Date:   2015-03-07 22:04:23 +0200
9592
9593     xz: Fix a comment and silence a warning in message.c.
9594
9595  src/xz/message.c | 5 +++--
9596  1 file changed, 3 insertions(+), 2 deletions(-)
9597
9598 commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
9599 Author: Lasse Collin <lasse.collin@tukaani.org>
9600 Date:   2015-03-07 22:01:00 +0200
9601
9602     liblzma: Silence more uint32_t vs. size_t warnings.
9603
9604  src/liblzma/lz/lz_encoder.c     | 2 +-
9605  src/liblzma/lzma/lzma_encoder.c | 2 +-
9606  2 files changed, 2 insertions(+), 2 deletions(-)
9607
9608 commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
9609 Author: Lasse Collin <lasse.collin@tukaani.org>
9610 Date:   2015-03-07 19:54:00 +0200
9611
9612     xz: Make arg_count an unsigned int to silence a warning.
9613     
9614     Actually the value of arg_count cannot exceed INT_MAX
9615     but it's nicer as an unsigned int.
9616
9617  src/xz/args.h | 2 +-
9618  src/xz/main.c | 2 +-
9619  2 files changed, 2 insertions(+), 2 deletions(-)
9620
9621 commit f6ec46801588b1be29c07c9db98558b521304002
9622 Author: Lasse Collin <lasse.collin@tukaani.org>
9623 Date:   2015-03-07 19:33:17 +0200
9624
9625     liblzma: Fix a warning in index.c.
9626
9627  src/liblzma/common/index.c | 4 +++-
9628  1 file changed, 3 insertions(+), 1 deletion(-)
9629
9630 commit a24518971cc621315af142dd3bb7614fab04ad27
9631 Author: Lasse Collin <lasse.collin@tukaani.org>
9632 Date:   2015-02-26 20:46:14 +0200
9633
9634     Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
9635
9636  build-aux/version.sh | 2 +-
9637  1 file changed, 1 insertion(+), 1 deletion(-)
9638
9639 commit dec11497a71518423b5ff0e759100cf8aadf6c7b
9640 Author: Lasse Collin <lasse.collin@tukaani.org>
9641 Date:   2015-02-26 16:53:44 +0200
9642
9643     Bump version and soname for 5.2.1.
9644
9645  src/liblzma/Makefile.am        | 2 +-
9646  src/liblzma/api/lzma/version.h | 2 +-
9647  2 files changed, 2 insertions(+), 2 deletions(-)
9648
9649 commit 29e39c79975ab89ee5dd671e97064534a9f3a649
9650 Author: Lasse Collin <lasse.collin@tukaani.org>
9651 Date:   2015-02-26 13:01:09 +0200
9652
9653     Update NEWS for 5.2.1.
9654
9655  NEWS | 14 ++++++++++++++
9656  1 file changed, 14 insertions(+)
9657
9658 commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
9659 Author: Lasse Collin <lasse.collin@tukaani.org>
9660 Date:   2015-02-22 19:38:48 +0200
9661
9662     xz: Use pipe2() if available.
9663
9664  configure.ac     | 4 ++--
9665  src/xz/file_io.c | 9 ++++++++-
9666  2 files changed, 10 insertions(+), 3 deletions(-)
9667
9668 commit 117d962685c72682c63edc9bb765367189800202
9669 Author: Lasse Collin <lasse.collin@tukaani.org>
9670 Date:   2015-02-21 23:40:26 +0200
9671
9672     liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
9673     
9674     The bug was added in the commit
9675     f48fce093b07aeda95c18850f5e086d9f2383380 and thus
9676     affected 5.1.4beta and 5.2.0. Luckily the bug cannot
9677     cause data corruption or other nasty things.
9678
9679  src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
9680  1 file changed, 1 insertion(+), 1 deletion(-)
9681
9682 commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
9683 Author: Lasse Collin <lasse.collin@tukaani.org>
9684 Date:   2015-02-21 23:00:19 +0200
9685
9686     xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
9687     
9688     Now it reads the old flags instead of blindly setting O_NONBLOCK.
9689     The old code may have worked correctly, but this is better.
9690
9691  src/xz/file_io.c | 16 +++++++++++-----
9692  1 file changed, 11 insertions(+), 5 deletions(-)
9693
9694 commit 2205bb5853098aea36a56df6f5747037175f66b4
9695 Author: Lasse Collin <lasse.collin@tukaani.org>
9696 Date:   2015-02-10 15:29:34 +0200
9697
9698     Update THANKS.
9699
9700  THANKS | 1 +
9701  1 file changed, 1 insertion(+)
9702
9703 commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
9704 Author: Lasse Collin <lasse.collin@tukaani.org>
9705 Date:   2015-02-10 15:28:30 +0200
9706
9707     tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
9708     
9709     In FreeBSD, cpuset_getaffinity() is the preferred way to get
9710     the number of available cores.
9711     
9712     Thanks to Rui Paulo for the patch. I edited it slightly, but
9713     hopefully I didn't break anything.
9714
9715  m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
9716  src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
9717  2 files changed, 40 insertions(+), 1 deletion(-)
9718
9719 commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
9720 Author: Lasse Collin <lasse.collin@tukaani.org>
9721 Date:   2015-02-09 22:08:37 +0200
9722
9723     xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
9724     
9725     Thanks to Rui Paulo for the fix.
9726
9727  src/scripts/xzdiff.in | 7 ++++++-
9728  1 file changed, 6 insertions(+), 1 deletion(-)
9729
9730 commit b9a5b6b7a29029680af733082b6a46e0fc01623a
9731 Author: Lasse Collin <lasse.collin@tukaani.org>
9732 Date:   2015-02-03 21:45:53 +0200
9733
9734     Add a few casts to tuklib_integer.h to silence possible warnings.
9735     
9736     I heard that Visual Studio 2013 gave warnings without the casts.
9737     
9738     Thanks to Gabi Davar.
9739
9740  src/common/tuklib_integer.h | 24 ++++++++++++------------
9741  1 file changed, 12 insertions(+), 12 deletions(-)
9742
9743 commit c45757135f40e4a0de730ba5fff0100219493982
9744 Author: Lasse Collin <lasse.collin@tukaani.org>
9745 Date:   2015-01-26 21:24:39 +0200
9746
9747     liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
9748
9749  src/liblzma/common/memcmplen.h | 15 ++++++++++-----
9750  1 file changed, 10 insertions(+), 5 deletions(-)
9751
9752 commit 3c500174ed5485f550972a2a6109c361e875f069
9753 Author: Lasse Collin <lasse.collin@tukaani.org>
9754 Date:   2015-01-26 20:40:16 +0200
9755
9756     Update THANKS.
9757
9758  THANKS | 1 +
9759  1 file changed, 1 insertion(+)
9760
9761 commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
9762 Author: Lasse Collin <lasse.collin@tukaani.org>
9763 Date:   2015-01-26 20:39:28 +0200
9764
9765     liblzma: Silence harmless Valgrind errors.
9766     
9767     Thanks to Torsten Rupp for reporting this. I had
9768     forgotten to run Valgrind before the 5.2.0 release.
9769
9770  src/liblzma/lz/lz_encoder.c | 6 ++++++
9771  1 file changed, 6 insertions(+)
9772
9773 commit a9b45badfec0928d20a27c7176c005fa637f7d1e
9774 Author: Lasse Collin <lasse.collin@tukaani.org>
9775 Date:   2015-01-09 21:50:19 +0200
9776
9777     xz: Fix comments.
9778
9779  src/xz/file_io.c | 12 ++++++++----
9780  1 file changed, 8 insertions(+), 4 deletions(-)
9781
9782 commit 541aee6dd4aa97a809aba281475a21b641bb89e2
9783 Author: Lasse Collin <lasse.collin@tukaani.org>
9784 Date:   2015-01-09 21:35:06 +0200
9785
9786     Update THANKS.
9787
9788  THANKS | 1 +
9789  1 file changed, 1 insertion(+)
9790
9791 commit 4170edc914655310d2363baccf5e615e09b04911
9792 Author: Lasse Collin <lasse.collin@tukaani.org>
9793 Date:   2015-01-09 21:34:06 +0200
9794
9795     xz: Don't fail if stdout doesn't support O_NONBLOCK.
9796     
9797     This is similar to the case with stdin.
9798     
9799     Thanks to Brad Smith for the bug report and testing
9800     on OpenBSD.
9801
9802  src/xz/file_io.c | 36 +++++++++++++++---------------------
9803  1 file changed, 15 insertions(+), 21 deletions(-)
9804
9805 commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
9806 Author: Lasse Collin <lasse.collin@tukaani.org>
9807 Date:   2015-01-07 19:18:20 +0200
9808
9809     xz: Fix a memory leak in DOS-specific code.
9810
9811  src/xz/file_io.c | 2 ++
9812  1 file changed, 2 insertions(+)
9813
9814 commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
9815 Author: Lasse Collin <lasse.collin@tukaani.org>
9816 Date:   2015-01-07 19:08:06 +0200
9817
9818     xz: Don't fail if stdin doesn't support O_NONBLOCK.
9819     
9820     It's a problem at least on OpenBSD which doesn't support
9821     O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
9822     a problem on other OSes too since this behavior is allowed
9823     in POSIX-1.2008.
9824     
9825     The code relying on this behavior was committed in June 2013
9826     and included in 5.1.3alpha released on 2013-10-26. Clearly
9827     the development releases only get limited testing.
9828
9829  src/xz/file_io.c | 18 +++++++-----------
9830  1 file changed, 7 insertions(+), 11 deletions(-)
9831
9832 commit d2d484647d9d9d679f03c75abb0404f67069271c
9833 Author: Lasse Collin <lasse.collin@tukaani.org>
9834 Date:   2015-01-06 20:30:15 +0200
9835
9836     Tests: Don't hide unexpected error messages in test_files.sh.
9837     
9838     Hiding them makes no sense since normally there's no error
9839     when testing the "good" files. With "bad" files errors are
9840     expected and then it makes sense to keep the messages hidden.
9841
9842  tests/test_files.sh | 4 ++--
9843  1 file changed, 2 insertions(+), 2 deletions(-)
9844
9845 commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
9846 Author: Lasse Collin <lasse.collin@tukaani.org>
9847 Date:   2014-12-30 11:17:16 +0200
9848
9849     Update Solaris notes in INSTALL.
9850     
9851     Mention the possible "make check" failure on Solaris in the
9852     Solaris-specific section of INSTALL. It was already in
9853     section 4.5 but it is better mention it in the OS-specific
9854     section too.
9855
9856  INSTALL | 4 ++++
9857  1 file changed, 4 insertions(+)
9858
9859 commit 7815112153178800a3521b9f31960e7cdc26cfba
9860 Author: Lasse Collin <lasse.collin@tukaani.org>
9861 Date:   2014-12-26 12:00:05 +0200
9862
9863     Build: POSIX shell isn't required if scripts are disabled.
9864
9865  INSTALL      | 3 ++-
9866  configure.ac | 2 +-
9867  2 files changed, 3 insertions(+), 2 deletions(-)
9868
9869 commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
9870 Author: Lasse Collin <lasse.collin@tukaani.org>
9871 Date:   2014-12-21 20:48:37 +0200
9872
9873     DOS: Update Makefile.
9874
9875  dos/Makefile | 1 +
9876  1 file changed, 1 insertion(+)
9877
9878 commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
9879 Author: Lasse Collin <lasse.collin@tukaani.org>
9880 Date:   2014-12-21 19:50:38 +0200
9881
9882     Windows: Fix bin_i486 to bin_i686 in build.bash.
9883
9884  windows/build.bash | 2 +-
9885  1 file changed, 1 insertion(+), 1 deletion(-)
9886
9887 commit cbafa710918195dbba3db02c3fab4f0538235206
9888 Author: Lasse Collin <lasse.collin@tukaani.org>
9889 Date:   2014-12-21 18:58:44 +0200
9890
9891     Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
9892
9893  doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
9894  1 file changed, 26 insertions(+), 4 deletions(-)
9895
9896 commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
9897 Author: Lasse Collin <lasse.collin@tukaani.org>
9898 Date:   2014-12-21 18:56:44 +0200
9899
9900     Docs: Update docs/examples/00_README.txt.
9901
9902  doc/examples/00_README.txt | 4 ++++
9903  1 file changed, 4 insertions(+)
9904
9905 commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
9906 Author: Lasse Collin <lasse.collin@tukaani.org>
9907 Date:   2014-12-21 18:11:17 +0200
9908
9909     Bump version and soname for 5.2.0.
9910     
9911     I know that soname != app version, but I skip AGE=1
9912     in -version-info to make the soname match the liblzma
9913     version anyway. It doesn't hurt anything as long as
9914     it doesn't conflict with library versioning rules.
9915
9916  src/liblzma/Makefile.am        | 2 +-
9917  src/liblzma/api/lzma/version.h | 6 +++---
9918  src/liblzma/liblzma.map        | 2 +-
9919  3 files changed, 5 insertions(+), 5 deletions(-)