xref: /freebsd/contrib/xz/ChangeLog (revision 9088779e3c8b810afb701adb80be154a7b2e0523)
1commit 6ca8046ecbc7a1c81ee08f544bfd1414819fb2e8
2Author: Jia Tan <jiat0218@gmail.com>
3Date:   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
11commit ce4f246600db10e77fc93d492ea045b4c9830bc6
12Author: Jia Tan <jiat0218@gmail.com>
13Date:   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
20commit 3634fe330788fc0df217acdb6581031a851600a3
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   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
29commit 97679d25ce7cb014328f1455bb338903c003d54f
30Author: Lasse Collin <lasse.collin@tukaani.org>
31Date:   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
47commit 01a67e89a56c3ebf5f6681bd06f0edc22a1ae594
48Author: Jia Tan <jiat0218@gmail.com>
49Date:   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
56commit 5dca3f5cbab31105196c89cd6df0a9bbc3307c05
57Author: Lasse Collin <lasse.collin@tukaani.org>
58Date:   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
65commit ae252862b30b509ab88b2bbcaa08e8d51b57e928
66Author: Lasse Collin <lasse.collin@tukaani.org>
67Date:   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
81commit 147d282cc3733e2723df82622b6540ddfb52635e
82Author: Lasse Collin <lasse.collin@tukaani.org>
83Date:   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
92commit 4523a5ee29f45c0256af67a15771bc8bbd25ba53
93Author: Lasse Collin <lasse.collin@tukaani.org>
94Date:   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
102commit 82aacb40367dc580b09c5a7b270f6c98b63e49b9
103Author: Lasse Collin <lasse.collin@tukaani.org>
104Date:   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
111commit 5d022c24921eec938604a8cb10d70aa08dbd8575
112Author: Lasse Collin <lasse.collin@tukaani.org>
113Date:   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
120commit 896295117324f323c0b8db6a31ad6ebfaa88793d
121Author: Jia Tan <jiat0218@gmail.com>
122Date:   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
138commit 94097157fae308b2c1a5edb4e8597c68b45eeaea
139Author: Jia Tan <jiat0218@gmail.com>
140Date:   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
150commit da16d0b73b79d7785ece6f78a577fadd1fb59d0e
151Author: Lasse Collin <lasse.collin@tukaani.org>
152Date:   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
159commit e57c74f9ef19201f72c106f2c347596f40229936
160Author: Jia Tan <jiat0218@gmail.com>
161Date:   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
168commit 7e2fa48bb73edb25457232e2e62a4f81c6b95281
169Author: Jia Tan <jiat0218@gmail.com>
170Date:   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
207commit d42977c7acfdf7fd9acc8803cf411eca7dc10478
208Author: Jia Tan <jiat0218@gmail.com>
209Date:   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
220commit 8fc712fcf41d821069c670f22b8bf628e7a4a877
221Author: Jia Tan <jiat0218@gmail.com>
222Date:   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
244commit 77d2c025d19fbac7277c63239cfb1338f02c66c0
245Author: Jia Tan <jiat0218@gmail.com>
246Date:   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
260commit 9af8f6f947a43974a4ff025f4c896f2fb4c91b4f
261Author: Jia Tan <jiat0218@gmail.com>
262Date:   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
286commit 1c558a26928b753fcf1c0d4bce9c0643285edd86
287Author: Jia Tan <jiat0218@gmail.com>
288Date:   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
295commit 7479a69a45a1b8fdb9a209e11f247dce11ac1ba0
296Author: Jia Tan <jiat0218@gmail.com>
297Date:   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
308commit fd56d5353360279c10e8e5e05f5bc6ea03f64584
309Author: Lasse Collin <lasse.collin@tukaani.org>
310Date:   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
317commit d1bdaaebc68cae7f0ba457fa990b520df2186fd1
318Author: Lasse Collin <lasse.collin@tukaani.org>
319Date:   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
347commit 5d351c69c19d212ddd2cf1f3bdb24900820c6776
348Author: Jia Tan <jiat0218@gmail.com>
349Date:   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
361commit b82d4831e3f2339c4cdbc47776c99462088c11b7
362Author: Jia Tan <jiat0218@gmail.com>
363Date:   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
373commit 2caba3efe3e0c2d7c6dca00e22c56812326a34e6
374Author: Jia Tan <jiat0218@gmail.com>
375Date:   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
391commit 594f904673ba55a833adfa60bbab6b60d4902d08
392Author: Lasse Collin <lasse.collin@tukaani.org>
393Date:   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
404commit 88101143cb774bca6b7006c8335b09dc3f334140
405Author: Jia Tan <jiat0218@gmail.com>
406Date:   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
417commit 4042dbf03a06e019ccdd1e9d1b94cf613d62d5a9
418Author: Jia Tan <jiat0218@gmail.com>
419Date:   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
429commit 3971f5c5024750ce8286891c6f79ae1661047483
430Author: Jia Tan <jiat0218@gmail.com>
431Date:   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
441commit 5e61b39432752b6cd1a7b518f0f9e4f0c3f0f242
442Author: Jia Tan <jiat0218@gmail.com>
443Date:   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
450commit 8a53533869defa1191b41f176a0312cb53a139e2
451Author: Jia Tan <jiat0218@gmail.com>
452Date:   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
467commit 6d05b08b17ac8cb93165ee8f310fdd925b0b258f
468Author: Lasse Collin <lasse.collin@tukaani.org>
469Date:   2023-02-23 20:46:16 +0200
470
471    Update THANKS.
472
473 THANKS | 1 +
474 1 file changed, 1 insertion(+)
475
476commit dfc9a54082e0fc7b3b796ea15336b5075acc79d5
477Author: Lasse Collin <lasse.collin@tukaani.org>
478Date:   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
560commit f6dce49cb656b358e2fb2a3032e35e20af34dc84
561Author: Jia Tan <jiat0218@gmail.com>
562Date:   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
569commit 173d240bb4763aedc8c01df4d9c83e311d954c33
570Author: Jia Tan <jiat0218@gmail.com>
571Date:   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
578commit 17797bacde3f7264048ef0976c137a600148d6cf
579Author: Jia Tan <jiat0218@gmail.com>
580Date:   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
587commit 37da0e727161b401b8bfd8dccf163a4b2fc0460b
588Author: Jia Tan <jiat0218@gmail.com>
589Date:   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
598commit b8331077c626e6bf14f4671d09b561146eaf816a
599Author: Jia Tan <jiat0218@gmail.com>
600Date:   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
611commit b9a3511bb61d3b6ce49abd33dce6155a573f5272
612Author: Jia Tan <jiat0218@gmail.com>
613Date:   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
620commit cd82ef2fb48b174c57cd03b84a9a0f978772cb89
621Author: Lasse Collin <lasse.collin@tukaani.org>
622Date:   2023-02-17 20:56:49 +0200
623
624    Update THANKS.
625
626 THANKS | 1 +
627 1 file changed, 1 insertion(+)
628
629commit 076e911ba25cadf2cbdfbd0f65991a002e210c0b
630Author: Lasse Collin <lasse.collin@tukaani.org>
631Date:   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
672commit bc34e5ac9996667d2c1ec9a7895ec5931ac4caea
673Author: Lasse Collin <lasse.collin@tukaani.org>
674Date:   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
692commit d31fbd28be5b79eb682db50004b0fb7aad5299ec
693Author: Jia Tan <jiat0218@gmail.com>
694Date:   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
701commit 701e9be6bede19771895f756082db0c017f86f07
702Author: Jia Tan <jiat0218@gmail.com>
703Date:   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
710commit 762c4d0b62d2694cf3a01e030fdfe68e09e7b503
711Author: Jia Tan <jiat0218@gmail.com>
712Date:   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
727commit 0ce1db0223854d94b4a0d17737ac0486a75d9e6a
728Author: Lasse Collin <lasse.collin@tukaani.org>
729Date:   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
742commit d83da006b3e8dbad9112e6cde6b27049d193c9ec
743Author: Jia Tan <jiat0218@gmail.com>
744Date:   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
757commit 2796bb4736f645d34939b5d62d5958f534e41e69
758Author: Jia Tan <jiat0218@gmail.com>
759Date:   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
768commit ebebaa8d9381afea440eb1b01917117551adf68f
769Author: Jia Tan <jiat0218@gmail.com>
770Date:   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
781commit 765fa2865aab97ea713c1715922e322b3cf599a7
782Author: Jia Tan <jiat0218@gmail.com>
783Date:   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
792commit 918e208af5960728b6def01e692b395f7d8e3701
793Author: Jia Tan <jiat0218@gmail.com>
794Date:   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
801commit 1f157d214bc09338876d2467b549935679abc0bf
802Author: Jia Tan <jiat0218@gmail.com>
803Date:   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
813commit 28757fa46d8e0f0a9c17628b2b6af9bcb3cd96fc
814Author: Jia Tan <jiat0218@gmail.com>
815Date:   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
825commit 135d5a1a65a9e199b9a5550c1f788cf43cd81018
826Author: Jia Tan <jiat0218@gmail.com>
827Date:   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
837commit 2287d5668384e289d51e72724997dc920483768e
838Author: Jia Tan <jiat0218@gmail.com>
839Date:   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
849commit 7124b8a16ae60cb2e93218ff531868eebd673bde
850Author: Jia Tan <jiat0218@gmail.com>
851Date:   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
861commit 59c7bb8931159fdb1a31bbbeaed0e6984e2d3c81
862Author: Jia Tan <jiat0218@gmail.com>
863Date:   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
873commit e970c28ac3cb2e8051925f81db2fe953664c2645
874Author: Jia Tan <jiat0218@gmail.com>
875Date:   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
886commit 85e01266a96689448abb249da6c6abc3afcd4a4e
887Author: Jia Tan <jiat0218@gmail.com>
888Date:   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
900commit 3fa0f3ba12dd3383f62dbfa18a864f9b4217fa0a
901Author: Jia Tan <jiat0218@gmail.com>
902Date:   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
909commit 32dbe045d74e94f75c53236fa2a6c0454d7b6d9e
910Author: Jia Tan <jiat0218@gmail.com>
911Date:   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
922commit ccf12acbfa7331b1bbb99ec55879186eb35f879f
923Author: Jia Tan <jiat0218@gmail.com>
924Date:   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
931commit 6a0b168dd9dc1ef437255c4bfdc6eff8b96fdb24
932Author: Jia Tan <jiat0218@gmail.com>
933Date:   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
940commit 84ce36f90e68471fec1f0e61cd93ac7ed9ab4883
941Author: Jia Tan <jiat0218@gmail.com>
942Date:   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
949commit d6620774682830d606f57109861b6763805b3492
950Author: Jia Tan <jiat0218@gmail.com>
951Date:   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
958commit 880adb5aa25f66a53d81c2f3acc716f7a4d373d1
959Author: Jia Tan <jiat0218@gmail.com>
960Date:   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
972commit b5b1b1f061c342271e4977ce5cba604a19c0ca52
973Author: Jia Tan <jiat0218@gmail.com>
974Date:   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
986commit e904e778b82b14f2779aab80d6c8f3c01a3fc54b
987Author: Jia Tan <jiat0218@gmail.com>
988Date:   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
998commit e9c47e79c9584ba1126f5fa0dbe6c96e67411aa6
999Author: Jia Tan <jiat0218@gmail.com>
1000Date:   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
1013commit 99575947a58a60416c570eb78038d18a1ea4cef4
1014Author: Jia Tan <jiat0218@gmail.com>
1015Date:   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
1024commit 76dec92fcca4a9ccd2063ed6d5d9e3474665baad
1025Author: Jia Tan <jiat0218@gmail.com>
1026Date:   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
1042commit bd213d06ebf92cf42eeb97e7c578bddc857f8ea8
1043Author: Jia Tan <jiat0218@gmail.com>
1044Date:   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
1067commit 257dbff0ba1a7bc45a74d203ece015c9f70c88cd
1068Author: Jia Tan <jiat0218@gmail.com>
1069Date:   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
1082commit 720ad4a44282a7ee59aa9920eaf495d85d245d97
1083Author: Jia Tan <jiat0218@gmail.com>
1084Date:   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
1091commit 88dc19163421282369c0989e997c05f9a447edc6
1092Author: Jia Tan <jiat0218@gmail.com>
1093Date:   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
1105commit 039e0ab13efb144642f9d99eeeb9c668e76bb430
1106Author: Jia Tan <jiat0218@gmail.com>
1107Date:   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
1114commit 718f7a60e740b26b8353965edaaddc7d4deb4d85
1115Author: Lasse Collin <lasse.collin@tukaani.org>
1116Date:   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
1127commit 3ccedb09724c998c39d708c945f6da5852c39e13
1128Author: Lasse Collin <lasse.collin@tukaani.org>
1129Date:   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
1139commit 09fbd2f0527def89e839c8907de4fe7ef6bc5019
1140Author: Lasse Collin <lasse.collin@tukaani.org>
1141Date:   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
1149commit 683d3f178ef1487b5418be49f331b0131a101b40
1150Author: Lasse Collin <lasse.collin@tukaani.org>
1151Date:   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
1162commit 2b8062ef94a38d0f9ad0d1b309e8748db52f5c15
1163Author: Lasse Collin <lasse.collin@tukaani.org>
1164Date:   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
1171commit b16b9c0d22227012518595c2222facc73bd833a8
1172Author: Lasse Collin <lasse.collin@tukaani.org>
1173Date:   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
1186commit c47ecd6d3909d0d3ff48dfd6e2ee41e7c7130b94
1187Author: Lasse Collin <lasse.collin@tukaani.org>
1188Date:   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
1207commit 34e13ce015232968731de2a9ec3440a08b0084b1
1208Author: Lasse Collin <lasse.collin@tukaani.org>
1209Date:   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
1222commit 6671d0fe46b77f0fafce860836b7a12dc3cda14a
1223Author: Lasse Collin <lasse.collin@tukaani.org>
1224Date:   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
1237commit d3e833ca1d2abda54648494c33aca73a40a47efe
1238Author: Lasse Collin <lasse.collin@tukaani.org>
1239Date:   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
1248commit 977dd2e26bc50efec8d30fb90380394042d24558
1249Author: Lasse Collin <lasse.collin@tukaani.org>
1250Date:   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
1257commit c55157ed7437ab14f2afb7fecf331e321f2edf9a
1258Author: Lasse Collin <lasse.collin@tukaani.org>
1259Date:   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
1266commit 18b845e69752c975dfeda418ec00eda22605c2ee
1267Author: Lasse Collin <lasse.collin@tukaani.org>
1268Date:   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
1276commit 4080bbb844fb36701ffb978f0c41ea2c2c9f8960
1277Author: Jia Tan <jiat0218@gmail.com>
1278Date:   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
1285commit 674c89fdb8c457ebc3a0652e235d8b6cd7b7dee2
1286Author: Lasse Collin <lasse.collin@tukaani.org>
1287Date:   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
1301commit 2a6b938084fac9ddb39cd69c9beeed15c3b6f6f6
1302Author: Lasse Collin <lasse.collin@tukaani.org>
1303Date:   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
1322commit aea639e81beb548e3114c74b6d9a894d6e036189
1323Author: Jia Tan <jiat0218@gmail.com>
1324Date:   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
1335commit e3b42bfcb0f67988beee7c7022fed0361282be45
1336Author: Jia Tan <jiat0218@gmail.com>
1337Date:   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
1344commit 21625b7e11d004788e40eb5eb88d9d89f65fe347
1345Author: Jia Tan <jiat0218@gmail.com>
1346Date:   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
1358commit c337983e928682d56ce3470b286a8d5b8646e0ad
1359Author: Lasse Collin <lasse.collin@tukaani.org>
1360Date:   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
1379commit b7fb438ea0e3ee02e3a164f3b72fae456cbe34d7
1380Author: Jia Tan <jiat0218@gmail.com>
1381Date:   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
1391commit 68e9ef036d18d7c3952bff0b391d5989b86934da
1392Author: Jia Tan <jiat0218@gmail.com>
1393Date:   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
1403commit a387707cd8cdefbffb5b7429bda4b7fcc192954a
1404Author: Lasse Collin <lasse.collin@tukaani.org>
1405Date:   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
1412commit 52902ad69518255a14b0144f0a2379e06fde5b6e
1413Author: Lasse Collin <lasse.collin@tukaani.org>
1414Date:   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
1429commit e81b9fc48ca70f9228308d3f1871cd81f9a5a496
1430Author: Lasse Collin <lasse.collin@tukaani.org>
1431Date:   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
1438commit 6e89ab58b031aa046308a0b3504ff0a5be042571
1439Author: Lasse Collin <lasse.collin@tukaani.org>
1440Date:   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
1454commit 65c59ad429aa59f9df0326d9fc82931ba4a9d123
1455Author: Lasse Collin <lasse.collin@tukaani.org>
1456Date:   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
1471commit 43521e77acc907863fa4f94aae276366172cb9ee
1472Author: Lasse Collin <lasse.collin@tukaani.org>
1473Date:   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
1498commit 6b44cead95d767414272dc3a67898a36bfdf95b3
1499Author: Jia Tan <jiat0218@gmail.com>
1500Date:   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
1509commit 1bbefa9659b202ba31bd244a9d0e4f0d37ff3ed7
1510Author: Lasse Collin <lasse.collin@tukaani.org>
1511Date:   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
1522commit ce3a3fbc7c2c399aeed644d54f3bd56ac914dfee
1523Author: Lasse Collin <lasse.collin@tukaani.org>
1524Date:   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
1534commit 99fcd57f2ea35eaa94e09f674d5364329c880fa2
1535Author: Lasse Collin <lasse.collin@tukaani.org>
1536Date:   2023-01-08 00:24:23 +0200
1537
1538    Update THANKS.
1539
1540 THANKS | 1 +
1541 1 file changed, 1 insertion(+)
1542
1543commit c0c13d9d82eb8a4302c8bbb8b4c5178d285fe9ab
1544Author: Lasse Collin <lasse.collin@tukaani.org>
1545Date:   2023-01-07 19:50:35 +0200
1546
1547    Update THANKS.
1548
1549 THANKS | 1 +
1550 1 file changed, 1 insertion(+)
1551
1552commit 3d45987451b1c3bb42697b29341824c0e5484cba
1553Author: Lasse Collin <lasse.collin@tukaani.org>
1554Date:   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
1563commit 706bce5018d7cf83094e13454a0731169ec119b5
1564Author: Lasse Collin <lasse.collin@tukaani.org>
1565Date:   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
1577commit e96dee55df04113c33b387ccdb6cb70935422d91
1578Author: Lasse Collin <lasse.collin@tukaani.org>
1579Date:   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
1591commit 52bc1ee34dda9bb6fb40175e5952863066681b77
1592Author: Lasse Collin <lasse.collin@tukaani.org>
1593Date:   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
1606commit bad44cfe19e8be8ae76755369be2a34abcd2b4fa
1607Author: Jia Tan <jiat0218@gmail.com>
1608Date:   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
1623commit 692ccdf5516dfe55fb6e9c5cdfb31f4c02c1ecd1
1624Author: Jia Tan <jiat0218@gmail.com>
1625Date:   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
1643commit 2ac7bafc8f07c1edefe96a4a7a040ddfff0eb5bb
1644Author: Jia Tan <jiat0218@gmail.com>
1645Date:   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
1654commit db714d30e0c74d1dd4af1a23ed62b44e0e8e4efc
1655Author: Jia Tan <jiat0218@gmail.com>
1656Date:   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
1668commit 39d2585dcd3e827cfc3c46025ab6708c4aeb36c6
1669Author: Jia Tan <jiat0218@gmail.com>
1670Date:   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
1677commit 3f0130aa288e4ed57ace609517db9700a41223af
1678Author: Jia Tan <jiat0218@gmail.com>
1679Date:   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
1694commit f204d1050a515d17851eed9049862ce5a9c729c1
1695Author: Lasse Collin <lasse.collin@tukaani.org>
1696Date:   2023-01-04 22:40:54 +0200
1697
1698    Update THANKS.
1699
1700 THANKS | 1 +
1701 1 file changed, 1 insertion(+)
1702
1703commit 34a9c2d650d6c30bd88e1b21910dd863209aa884
1704Author: Lasse Collin <lasse.collin@tukaani.org>
1705Date:   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
1712commit 761c208d58e0c3daa0f46e68b406adfc318d2a46
1713Author: Jia Tan <jiat0218@gmail.com>
1714Date:   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
1728commit 8a7cbc074547e55e57f4f3696f69bedeb05e14c4
1729Author: Jia Tan <jiat0218@gmail.com>
1730Date:   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
1740commit ca2af49bb8be5995eb0e6a3abf457622626d49a7
1741Author: Jia Tan <jiat0218@gmail.com>
1742Date:   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
1749commit bfba3394aed03311fe9a746d3141b2e16d8b9325
1750Author: Lasse Collin <lasse.collin@tukaani.org>
1751Date:   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
1759commit 507648ad114c2ae0cd6d181063e1ac07e8106718
1760Author: Jia Tan <jiat0218@gmail.com>
1761Date:   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
1778commit ab5229d32adfec1f3fbc95228d9dd6f560732ab5
1779Author: Lasse Collin <lasse.collin@tukaani.org>
1780Date:   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
1787commit 8791826f31733fda0a13b411c2ed930faaeb25aa
1788Author: Lasse Collin <lasse.collin@tukaani.org>
1789Date:   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
1796commit c410d812ea12bfc74f6b727c1a799478c79f19ca
1797Author: Jia Tan <jiat0218@gmail.com>
1798Date:   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
1807commit 501c6013d4a59fae5d4368e9657c4885493db809
1808Author: Jia Tan <jiat0218@gmail.com>
1809Date:   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
1820commit 9e3cb514b5b95bd235dcdff3db4436f57444ee4f
1821Author: Jia Tan <jiat0218@gmail.com>
1822Date:   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
1839commit 6fc3e5467911572fa9af4021ea46396261aae796
1840Author: Jia Tan <jiat0218@gmail.com>
1841Date:   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
1851commit e84f2ab7f8bc38cd8f8befa0bb398656c3c11f8e
1852Author: Jia Tan <jiat0218@gmail.com>
1853Date:   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
1860commit b14b8dbba9a3b232787ae218b46430b9246383dd
1861Author: Jia Tan <jiat0218@gmail.com>
1862Date:   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
1871commit 09a114805e1d4f9a02a06cee7dbf2f5014d1f710
1872Author: Jia Cheong Tan <jiat0218@gmail.com>
1873Date:   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
1883commit d3e6fe44196bf9478ad193522e2b48febf2eca6b
1884Author: Jia Tan <jiat0218@gmail.com>
1885Date:   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
1897commit b55a27b46f52524a4a8d9cdef03e6689cefc1375
1898Author: Lasse Collin <lasse.collin@tukaani.org>
1899Date:   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
1906commit 2fd28d2b7cec3468324a6f15eff7e73c285b1d7d
1907Author: Jia Tan <jiat0218@gmail.com>
1908Date:   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
1918commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
1919Author: Lasse Collin <lasse.collin@tukaani.org>
1920Date:   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
1930commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
1931Author: Lasse Collin <lasse.collin@tukaani.org>
1932Date:   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
1945commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
1946Author: Lasse Collin <lasse.collin@tukaani.org>
1947Date:   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
1954commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
1955Author: Lasse Collin <lasse.collin@tukaani.org>
1956Date:   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
1963commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
1964Author: Lasse Collin <lasse.collin@tukaani.org>
1965Date:   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
1972commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
1973Author: Lasse Collin <lasse.collin@tukaani.org>
1974Date:   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
1981commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
1982Author: Lasse Collin <lasse.collin@tukaani.org>
1983Date:   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
1993commit f5e419550619c548c7c35d7e367cf00580a56521
1994Author: Lasse Collin <lasse.collin@tukaani.org>
1995Date:   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
2002commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
2003Author: Lasse Collin <lasse.collin@tukaani.org>
2004Date:   2022-12-12 19:18:12 +0200
2005
2006    Update THANKS.
2007
2008 THANKS | 1 +
2009 1 file changed, 1 insertion(+)
2010
2011commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
2012Author: Lasse Collin <lasse.collin@tukaani.org>
2013Date:   2022-12-12 19:07:58 +0200
2014
2015    Update AUTHORS.
2016
2017 AUTHORS | 12 ++++++++++++
2018 1 file changed, 12 insertions(+)
2019
2020commit f2d98e691099d82054d5f3071ef6f5e809932e44
2021Author: Lasse Collin <lasse.collin@tukaani.org>
2022Date:   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
2031commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
2032Author: Lasse Collin <lasse.collin@tukaani.org>
2033Date:   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
2040commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
2041Author: Lasse Collin <lasse.collin@tukaani.org>
2042Date:   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
2049commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
2050Author: Lasse Collin <lasse.collin@tukaani.org>
2051Date:   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
2058commit 01b3549e523edac899ec4925b282ceddd20da116
2059Author: Lasse Collin <lasse.collin@tukaani.org>
2060Date:   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
2068commit bc665b84ea6bf7946394a08122177efe41b26a5f
2069Author: Lasse Collin <lasse.collin@tukaani.org>
2070Date:   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
2083commit a13064e1c290de7933db72b6dffbd65cfce59c9f
2084Author: Lasse Collin <lasse.collin@tukaani.org>
2085Date:   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
2092commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
2093Author: Jia Tan <jiat0218@gmail.com>
2094Date:   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
2101commit 5c304b57c24ef40ff57f864301065f0244c05bde
2102Author: Jia Tan <jiat0218@gmail.com>
2103Date:   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
2110commit 6d86781fdb937970486500447ebb49b98244235b
2111Author: Jia Tan <jiat0218@gmail.com>
2112Date:   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
2119commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
2120Author: Jia Tan <jiat0218@gmail.com>
2121Date:   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
2131commit c6977e7400088177556e8771bcb839eb7d90caa3
2132Author: Jia Tan <jiat0218@gmail.com>
2133Date:   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
2140commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
2141Author: Lasse Collin <lasse.collin@tukaani.org>
2142Date:   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
2156commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
2157Author: Lasse Collin <lasse.collin@tukaani.org>
2158Date:   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
2169commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
2170Author: Lasse Collin <lasse.collin@tukaani.org>
2171Date:   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
2178commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
2179Author: Lasse Collin <lasse.collin@tukaani.org>
2180Date:   2022-12-01 20:57:09 +0200
2181
2182    Update THANKS.
2183
2184 THANKS | 3 +++
2185 1 file changed, 3 insertions(+)
2186
2187commit 62b270988ec67314d69976df484d2974c6eacfda
2188Author: Lasse Collin <lasse.collin@tukaani.org>
2189Date:   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
2204commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
2205Author: Lasse Collin <lasse.collin@tukaani.org>
2206Date:   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
2222commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
2223Author: Lasse Collin <lasse.collin@tukaani.org>
2224Date:   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
2231commit 0c3627b51862eb0dcdd4fc283d046250571991c6
2232Author: Lasse Collin <lasse.collin@tukaani.org>
2233Date:   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
2240commit 94adf057f27b1970f493dc99cd166407d7255639
2241Author: Lasse Collin <lasse.collin@tukaani.org>
2242Date:   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
2251commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
2252Author: Lasse Collin <lasse.collin@tukaani.org>
2253Date:   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
2260commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
2261Author: Lasse Collin <lasse.collin@tukaani.org>
2262Date:   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
2269commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
2270Author: Jia Tan <jiat0218@gmail.com>
2271Date:   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
2280commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
2281Author: Lasse Collin <lasse.collin@tukaani.org>
2282Date:   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
2298commit c21983c76031e01da01ad3c6cc716fe4b8a75070
2299Author: Lasse Collin <lasse.collin@tukaani.org>
2300Date:   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
2314commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
2315Author: Lasse Collin <lasse.collin@tukaani.org>
2316Date:   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
2323commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
2324Author: Jia Tan <jiat0218@gmail.com>
2325Date:   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
2332commit a6e21fcede3b196160a52dd294d965c508a4bb33
2333Author: Lasse Collin <lasse.collin@tukaani.org>
2334Date:   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
2343commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
2344Author: Lasse Collin <lasse.collin@tukaani.org>
2345Date:   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
2356commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
2357Author: Lasse Collin <lasse.collin@tukaani.org>
2358Date:   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
2375commit 072ebf7b1335421193ffa9d4a70d5533786b8995
2376Author: Lasse Collin <lasse.collin@tukaani.org>
2377Date:   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
2385commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
2386Author: Lasse Collin <lasse.collin@tukaani.org>
2387Date:   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
2395commit cee83206465b95729ab649aa2f57fdbde8dcaf89
2396Author: Lasse Collin <lasse.collin@tukaani.org>
2397Date:   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
2409commit e310e8b6a490dfb468f4ed68feff246d776b323c
2410Author: Lasse Collin <lasse.collin@tukaani.org>
2411Date:   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
2421commit 33b8a24b6646a9dbfd8358405aec466b13078559
2422Author: Lasse Collin <lasse.collin@tukaani.org>
2423Date:   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
2451commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
2452Author: Lasse Collin <lasse.collin@tukaani.org>
2453Date:   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
2461commit 218394958c7683f892275bb40eae880620feebcc
2462Author: Lasse Collin <lasse.collin@tukaani.org>
2463Date:   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
2486commit 1663c7676b76f4c514031797f3db1896e8100f7f
2487Author: Lasse Collin <lasse.collin@tukaani.org>
2488Date:   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
2495commit 11fe708db783ac36ebeeb85da164e29e8c300910
2496Author: Lasse Collin <lasse.collin@tukaani.org>
2497Date:   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
2504commit e782af9110d8499c7ac2929bc871540eefea5ea1
2505Author: Lasse Collin <lasse.collin@tukaani.org>
2506Date:   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
2515commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
2516Author: Lasse Collin <lasse.collin@tukaani.org>
2517Date:   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
2529commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
2530Author: Lasse Collin <lasse.collin@tukaani.org>
2531Date:   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
2541commit 3be88ae071371caa279b44e13f4836fb178fe4ae
2542Author: Lasse Collin <lasse.collin@tukaani.org>
2543Date:   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
2557commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
2558Author: Lasse Collin <lasse.collin@tukaani.org>
2559Date:   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
2571commit 17ac51e689794eb41cab3e80946fec689caea2d2
2572Author: Lasse Collin <lasse.collin@tukaani.org>
2573Date:   2022-11-24 14:53:22 +0200
2574
2575    Update THANKS.
2576
2577 THANKS | 1 +
2578 1 file changed, 1 insertion(+)
2579
2580commit 06824396b2b6c84f3a235cb7c19c2a9701167797
2581Author: Lasse Collin <lasse.collin@tukaani.org>
2582Date:   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
2608commit e1acf7107291f8b3d6d609a7133331ff36d35d14
2609Author: Lasse Collin <lasse.collin@tukaani.org>
2610Date:   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
2626commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
2627Author: Lasse Collin <lasse.collin@tukaani.org>
2628Date:   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
2645commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
2646Author: Jia Tan <jiat0218@gmail.com>
2647Date:   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
2660commit d0901645170b638c517f5c50866b6ef48f491c65
2661Author: Lasse Collin <lasse.collin@tukaani.org>
2662Date:   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
2675commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
2676Author: Lasse Collin <lasse.collin@tukaani.org>
2677Date:   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
2684commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
2685Author: Lasse Collin <lasse.collin@tukaani.org>
2686Date:   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
2693commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
2694Author: Lasse Collin <lasse.collin@tukaani.org>
2695Date:   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
2715commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
2716Author: Lasse Collin <lasse.collin@tukaani.org>
2717Date:   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
2724commit c392bf8ccba857baaf50399c4b460119befacd54
2725Author: Lasse Collin <lasse.collin@tukaani.org>
2726Date:   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
2741commit f50534c973a591ccf65485adfc827a8a7126ca6c
2742Author: Lasse Collin <lasse.collin@tukaani.org>
2743Date:   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
2753commit 649d4872ed2f55196114a061d45b416fc4353569
2754Author: Lasse Collin <lasse.collin@tukaani.org>
2755Date:   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
2762commit d327743bb547a53364e5951a16e5f1663fe4b9ff
2763Author: Lasse Collin <lasse.collin@tukaani.org>
2764Date:   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
2774commit a11a2b8b5e830ba682c1d81aaa7078842b296995
2775Author: Jia Tan <jiat0218@gmail.com>
2776Date:   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
2783commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
2784Author: Lasse Collin <lasse.collin@tukaani.org>
2785Date:   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
2792commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
2793Author: Lasse Collin <lasse.collin@tukaani.org>
2794Date:   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
2801commit b9a67d9a5fa207062d4aa8a01639234609315d31
2802Author: Lasse Collin <lasse.collin@tukaani.org>
2803Date:   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
2812commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
2813Author: Lasse Collin <lasse.collin@tukaani.org>
2814Date:   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
2821commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
2822Author: Lasse Collin <lasse.collin@tukaani.org>
2823Date:   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
2830commit b56bc8251d2736224af6bdaaae734ceb8926a879
2831Author: Lasse Collin <lasse.collin@tukaani.org>
2832Date:   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
2853commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
2854Author: Lasse Collin <lasse.collin@tukaani.org>
2855Date:   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
2876commit f644473a211394447824ea00518d0a214ff3f7f2
2877Author: Lasse Collin <lasse.collin@tukaani.org>
2878Date:   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
2924commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
2925Author: Lasse Collin <lasse.collin@tukaani.org>
2926Date:   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
2933commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
2934Author: Lasse Collin <lasse.collin@tukaani.org>
2935Date:   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
2942commit a4bc689a823a2254f29ac9d233170add5121b307
2943Author: Lasse Collin <lasse.collin@tukaani.org>
2944Date:   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
2951commit bbf2073d824ab4ba33bed4b77f467435abd333a5
2952Author: Lasse Collin <lasse.collin@tukaani.org>
2953Date:   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
2960commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
2961Author: Lasse Collin <lasse.collin@tukaani.org>
2962Date:   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
2973commit eb0f1450ad9f23dac03050d9c8375980240aee21
2974Author: Lasse Collin <lasse.collin@tukaani.org>
2975Date:   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
2992commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
2993Author: Lasse Collin <lasse.collin@tukaani.org>
2994Date:   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
3001commit db97e69e12393becc29f8febd53133d0d36989bd
3002Author: Lasse Collin <lasse.collin@tukaani.org>
3003Date:   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
3010commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
3011Author: Lasse Collin <lasse.collin@tukaani.org>
3012Date:   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
3019commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
3020Author: Lasse Collin <lasse.collin@tukaani.org>
3021Date:   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
3028commit 26c3359eac0988d6f3986735cd1363bec1678e8e
3029Author: Lasse Collin <lasse.collin@tukaani.org>
3030Date:   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
3037commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
3038Author: Lasse Collin <lasse.collin@tukaani.org>
3039Date:   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
3046commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
3047Author: Lasse Collin <lasse.collin@tukaani.org>
3048Date:   2022-11-11 17:16:03 +0200
3049
3050    Update THANKS.
3051
3052 THANKS | 1 +
3053 1 file changed, 1 insertion(+)
3054
3055commit a39961ef211e1bf030b17edeea3cff29fe263b67
3056Author: Lasse Collin <lasse.collin@tukaani.org>
3057Date:   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
3068commit c715f683dcb1a817d565da292cddfbceda643e12
3069Author: Lasse Collin <lasse.collin@tukaani.org>
3070Date:   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
3082commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
3083Author: Lasse Collin <lasse.collin@tukaani.org>
3084Date:   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
3091commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
3092Author: Lasse Collin <lasse.collin@tukaani.org>
3093Date:   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
3103commit d76c752a6d77052e5ad57ade555082585f7ac5d8
3104Author: Lasse Collin <lasse.collin@tukaani.org>
3105Date:   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
3120commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
3121Author: Lasse Collin <lasse.collin@tukaani.org>
3122Date:   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
3137commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
3138Author: Lasse Collin <lasse.collin@tukaani.org>
3139Date:   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
3151commit ba2ae3596f6be1587495f33b367488f6e00e56f1
3152Author: Lasse Collin <lasse.collin@tukaani.org>
3153Date:   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
3171commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
3172Author: Lasse Collin <lasse.collin@tukaani.org>
3173Date:   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
3188commit 5846aeda05972bc803c6094821ae836229ebe691
3189Author: Lasse Collin <lasse.collin@tukaani.org>
3190Date:   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
3198commit 781da8d6c44de6aa278c916375250668a0b107f2
3199Author: Lasse Collin <lasse.collin@tukaani.org>
3200Date:   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
3207commit df8ad4af65a9c4846b108550d0083770a69dee64
3208Author: Lasse Collin <lasse.collin@tukaani.org>
3209Date:   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
3217commit c8ef089c149afaab413c3a51be827dd1d11afe0e
3218Author: Lasse Collin <lasse.collin@tukaani.org>
3219Date:   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
3226commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
3227Author: Lasse Collin <lasse.collin@tukaani.org>
3228Date:   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
3253commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
3254Author: Lasse Collin <lasse.collin@tukaani.org>
3255Date:   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
3264commit 3176f992c55b8d788c4633809aaf9447376a5a12
3265Author: Lasse Collin <lasse.collin@tukaani.org>
3266Date:   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
3286commit 034086e1ae1459210837a24e04878435c86dc41b
3287Author: Lasse Collin <lasse.collin@tukaani.org>
3288Date:   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
3300commit 0538db038f3cdc352007dacb42454aa1806b8e40
3301Author: Lasse Collin <lasse.collin@tukaani.org>
3302Date:   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
3330commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
3331Author: Lasse Collin <lasse.collin@tukaani.org>
3332Date:   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
3341commit 724285dadbdc88765c8fb83eab9816575a260966
3342Author: Lasse Collin <lasse.collin@tukaani.org>
3343Date:   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
3357commit f723eec68b0e44234910f669a29119de33018967
3358Author: Lasse Collin <lasse.collin@tukaani.org>
3359Date:   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
3372commit 69265d0f223ddf1d66f799b8b047df22923e376f
3373Author: Lasse Collin <lasse.collin@tukaani.org>
3374Date:   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
3383commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
3384Author: Lasse Collin <lasse.collin@tukaani.org>
3385Date:   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
3392commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
3393Author: Lasse Collin <lasse.collin@tukaani.org>
3394Date:   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
3401commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
3402Author: Lasse Collin <lasse.collin@tukaani.org>
3403Date:   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
3410commit ed3a4822963b4940d84e6f44d47277c394fc046d
3411Author: Lasse Collin <lasse.collin@tukaani.org>
3412Date:   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
3419commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
3420Author: Lasse Collin <lasse.collin@tukaani.org>
3421Date:   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
3428commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
3429Author: Lasse Collin <lasse.collin@tukaani.org>
3430Date:   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
3437commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
3438Author: Lasse Collin <lasse.collin@tukaani.org>
3439Date:   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
3446commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
3447Author: Lasse Collin <lasse.collin@tukaani.org>
3448Date:   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
3458commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
3459Author: Lasse Collin <lasse.collin@tukaani.org>
3460Date:   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
3470commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
3471Author: Lasse Collin <lasse.collin@tukaani.org>
3472Date:   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
3495commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
3496Author: Jia Tan <jiat0218@gmail.com>
3497Date:   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
3506commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
3507Author: Lasse Collin <lasse.collin@tukaani.org>
3508Date:   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
3515commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
3516Author: Lasse Collin <lasse.collin@tukaani.org>
3517Date:   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
3524commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
3525Author: Lasse Collin <lasse.collin@tukaani.org>
3526Date:   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
3541commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
3542Author: Lasse Collin <lasse.collin@tukaani.org>
3543Date:   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
3550commit a243c617ff249d915ac123de4f536b80322c1fdb
3551Author: Lasse Collin <lasse.collin@tukaani.org>
3552Date:   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
3561commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
3562Author: Lasse Collin <lasse.collin@tukaani.org>
3563Date:   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
3575commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
3576Author: Lasse Collin <lasse.collin@tukaani.org>
3577Date:   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
3592commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
3593Author: Lasse Collin <lasse.collin@tukaani.org>
3594Date:   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
3601commit c1dd8524e1af07f16b790463899de06a6a5fcc08
3602Author: Lasse Collin <lasse.collin@tukaani.org>
3603Date:   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
3610commit ce30ada91951d0746879ae438da11f1ee8a90aa0
3611Author: Jia Tan <jiat0218@gmail.com>
3612Date:   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
3619commit 89c5cfcacaca7130509fac836e2f30c46b824502
3620Author: Lasse Collin <lasse.collin@tukaani.org>
3621Date:   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
3628commit a4b214b93ac741edef9c41e55865b0b867ca2587
3629Author: Lasse Collin <lasse.collin@tukaani.org>
3630Date:   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
3642commit 04f299b64e73f50afc188c2590ebebc6b73ed744
3643Author: Lasse Collin <lasse.collin@tukaani.org>
3644Date:   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
3651commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
3652Author: Lasse Collin <lasse.collin@tukaani.org>
3653Date:   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
3665commit 054ccd6d14b2cc6eddc56897af280d3221414150
3666Author: Lasse Collin <lasse.collin@tukaani.org>
3667Date:   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
3683commit 563288ea705e83ff5cb292adf794650c263bca1d
3684Author: Lasse Collin <lasse.collin@tukaani.org>
3685Date:   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
3695commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
3696Author: Lasse Collin <lasse.collin@tukaani.org>
3697Date:   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
3728commit aa4fe145b9486adc454f44fd3e09be9add808a0f
3729Author: Lasse Collin <lasse.collin@tukaani.org>
3730Date:   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
3737commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
3738Author: Lasse Collin <lasse.collin@tukaani.org>
3739Date:   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
3751commit 85624015978b0de294cff3df79006df987c552b1
3752Author: Lasse Collin <lasse.collin@tukaani.org>
3753Date:   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
3765commit fda9f85f52c546f7ca0313cf89481da4707fecb3
3766Author: Lasse Collin <lasse.collin@tukaani.org>
3767Date:   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
3778commit 2611c4d90535652d3eb7ef4a026a6691276fab43
3779Author: Lasse Collin <lasse.collin@tukaani.org>
3780Date:   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
3794commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
3795Author: Lasse Collin <lasse.collin@tukaani.org>
3796Date:   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
3818commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
3819Author: Lasse Collin <lasse.collin@tukaani.org>
3820Date:   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
3835commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
3836Author: Lasse Collin <lasse.collin@tukaani.org>
3837Date:   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
3844commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
3845Author: Lasse Collin <lasse.collin@tukaani.org>
3846Date:   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
3855commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
3856Author: Jia Tan <jiat0218@gmail.com>
3857Date:   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
3869commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
3870Author: Jia Tan <jiat0218@gmail.com>
3871Date:   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
3884commit 84963318952064a93bfc52edd6b0ef70593384ee
3885Author: Jia Tan <jiat0218@gmail.com>
3886Date:   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
3905commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
3906Author: Lasse Collin <lasse.collin@tukaani.org>
3907Date:   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
3916commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
3917Author: Jia Tan <jiat0218@gmail.com>
3918Date:   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
3929commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
3930Author: Jia Tan <jiat0218@gmail.com>
3931Date:   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
3945commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
3946Author: Lasse Collin <lasse.collin@tukaani.org>
3947Date:   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
3960commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
3961Author: Lasse Collin <lasse.collin@tukaani.org>
3962Date:   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
3971commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
3972Author: Jia Tan <jiat0218@gmail.com>
3973Date:   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
3986commit afd5a8bf5374eba82804a999e1ea7af680784086
3987Author: Jia Tan <jiat0218@gmail.com>
3988Date:   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
3995commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
3996Author: Jia Tan <jiat0218@gmail.com>
3997Date:   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
4021commit a61d32172789735350a941e23baf6b587c49e5d9
4022Author: Lasse Collin <lasse.collin@tukaani.org>
4023Date:   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
4032commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
4033Author: Lasse Collin <lasse.collin@tukaani.org>
4034Date:   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
4042commit 660739f99ab211edec4071de98889fb32ed04e98
4043Author: Lasse Collin <lasse.collin@tukaani.org>
4044Date:   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
4057commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
4058Author: Lasse Collin <lasse.collin@tukaani.org>
4059Date:   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
4066commit f664cb25841fc1c478b819034a224a558e2ac6e7
4067Author: Lasse Collin <lasse.collin@tukaani.org>
4068Date:   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
4075commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
4076Author: Lasse Collin <lasse.collin@tukaani.org>
4077Date:   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
4086commit d5b0906fa55157f48c200188a3951d80df9cb308
4087Author: Lasse Collin <lasse.collin@tukaani.org>
4088Date:   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
4102commit ecb966de308c255bb4735a7307ef9901c643a9de
4103Author: Lasse Collin <lasse.collin@tukaani.org>
4104Date:   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
4125commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
4126Author: Lasse Collin <lasse.collin@tukaani.org>
4127Date:   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
4144commit c3592d0a55114144686ecf960cb516d6b31c98e9
4145Author: Lasse Collin <lasse.collin@tukaani.org>
4146Date:   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
4163commit 982b29f828079a2a26253a40e975127a40a7d2bd
4164Author: Lasse Collin <lasse.collin@tukaani.org>
4165Date:   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
4173commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
4174Author: Lasse Collin <lasse.collin@tukaani.org>
4175Date:   2022-09-16 14:09:07 +0300
4176
4177    Update THANKS.
4178
4179 THANKS | 1 +
4180 1 file changed, 1 insertion(+)
4181
4182commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
4183Author: Lasse Collin <lasse.collin@tukaani.org>
4184Date:   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
4217commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
4218Author: Lasse Collin <lasse.collin@tukaani.org>
4219Date:   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
4234commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
4235Author: Lasse Collin <lasse.collin@tukaani.org>
4236Date:   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
4258commit 18d7facd3802b55c287581405c4d49c98708c136
4259Author: Jia Tan <jiat0218@gmail.com>
4260Date:   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
4273commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
4274Author: Lasse Collin <lasse.collin@tukaani.org>
4275Date:   2022-09-08 15:11:08 +0300
4276
4277    Update THANKS.
4278
4279 THANKS | 1 +
4280 1 file changed, 1 insertion(+)
4281
4282commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
4283Author: Jia Tan <jiat0218@gmail.com>
4284Date:   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
4291commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
4292Author: Lasse Collin <lasse.collin@tukaani.org>
4293Date:   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
4306commit 913ddc5572b9455fa0cf299be2e35c708840e922
4307Author: Lasse Collin <lasse.collin@tukaani.org>
4308Date:   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
4439commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
4440Author: Lasse Collin <lasse.collin@tukaani.org>
4441Date:   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
4454commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
4455Author: Lasse Collin <lasse.collin@tukaani.org>
4456Date:   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
4465commit c1555b1a221a1427d4d650647531016d754bc4da
4466Author: Lasse Collin <lasse.collin@tukaani.org>
4467Date:   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
4475commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
4476Author: Lasse Collin <lasse.collin@tukaani.org>
4477Date:   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
4484commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
4485Author: Lasse Collin <lasse.collin@tukaani.org>
4486Date:   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
4500commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
4501Author: Lasse Collin <lasse.collin@tukaani.org>
4502Date:   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
4516commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
4517Author: Lasse Collin <lasse.collin@tukaani.org>
4518Date:   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
4528commit c613598c358b640682d0ca2aed38fa7df763e8c7
4529Author: Lasse Collin <lasse.collin@tukaani.org>
4530Date:   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
4540commit 659a587d678f21e98e91d2751c31d4ce050c081a
4541Author: Lasse Collin <lasse.collin@tukaani.org>
4542Date:   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
4552commit 739fd8c9bdf1d85f57d56642aad87148d4779530
4553Author: Lasse Collin <lasse.collin@tukaani.org>
4554Date:   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
4564commit 73280550b111930c62a667e56add8fd574f80bc8
4565Author: Lasse Collin <lasse.collin@tukaani.org>
4566Date:   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
4576commit 2465f5b825152714b2c357d96c2422c31109d320
4577Author: Lasse Collin <lasse.collin@tukaani.org>
4578Date:   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
4590commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
4591Author: Lasse Collin <lasse.collin@tukaani.org>
4592Date:   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
4602commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
4603Author: Lasse Collin <lasse.collin@tukaani.org>
4604Date:   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
4614commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
4615Author: Lasse Collin <lasse.collin@tukaani.org>
4616Date:   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
4626commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
4627Author: Lasse Collin <lasse.collin@tukaani.org>
4628Date:   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
4638commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
4639Author: Lasse Collin <lasse.collin@tukaani.org>
4640Date:   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
4651commit 43e09c62e77cb8807d932c81de4decbdb956e184
4652Author: Lasse Collin <lasse.collin@tukaani.org>
4653Date:   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
4667commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
4668Author: Lasse Collin <lasse.collin@tukaani.org>
4669Date:   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
4679commit 801f39691fc4abc6dd33d7653d498781b593f3eb
4680Author: Lasse Collin <lasse.collin@tukaani.org>
4681Date:   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
4698commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
4699Author: Lasse Collin <lasse.collin@tukaani.org>
4700Date:   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
4707commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
4708Author: Lasse Collin <lasse.collin@tukaani.org>
4709Date:   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
4718commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
4719Author: Lasse Collin <lasse.collin@tukaani.org>
4720Date:   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
4733commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
4734Author: Lasse Collin <lasse.collin@tukaani.org>
4735Date:   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
4751commit d13bfcc0056617dd648f655a01653932fad7067f
4752Author: Lasse Collin <lasse.collin@tukaani.org>
4753Date:   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
4766commit e66787bcfefdb93f19c974f895f65969a77937b0
4767Author: Lasse Collin <lasse.collin@tukaani.org>
4768Date:   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
4788commit c4e8e5fb311225b8b48d34157891a640b2535e0c
4789Author: Lasse Collin <lasse.collin@tukaani.org>
4790Date:   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
4804commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
4805Author: Lasse Collin <lasse.collin@tukaani.org>
4806Date:   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
4813commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
4814Author: Lasse Collin <lasse.collin@tukaani.org>
4815Date:   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
4822commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
4823Author: Lasse Collin <lasse.collin@tukaani.org>
4824Date:   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
4833commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
4834Author: Lasse Collin <lasse.collin@tukaani.org>
4835Date:   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
4846commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
4847Author: Jia Tan <jiat0218@gmail.com>
4848Date:   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
4855commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
4856Author: Jia Tan <jiat0218@gmail.com>
4857Date:   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
4867commit 9cc721af5436908f2d5a828aebbc4050a32a3487
4868Author: Lasse Collin <lasse.collin@tukaani.org>
4869Date:   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
4876commit b81bf0c7d1873e52a4086a9abb494471d652cb55
4877Author: Lasse Collin <lasse.collin@tukaani.org>
4878Date:   2022-07-19 23:23:54 +0300
4879
4880    Update THANKS.
4881
4882 THANKS | 1 +
4883 1 file changed, 1 insertion(+)
4884
4885commit 340cf1ec3927767046b8293a49da3db4e393f426
4886Author: Nicholas Jackson <nickajacks1@gmail.com>
4887Date:   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
4894commit d796b6d7fdb8b7238b277056cf9146cce25db604
4895Author: Lasse Collin <lasse.collin@tukaani.org>
4896Date:   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
4903commit 923bf96b55e5216a6c8df9d8331934f54784390e
4904Author: Lasse Collin <lasse.collin@tukaani.org>
4905Date:   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
4936commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
4937Author: Lasse Collin <lasse.collin@tukaani.org>
4938Date:   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
4950commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
4951Author: Lasse Collin <lasse.collin@tukaani.org>
4952Date:   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
4971commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
4972Author: Lasse Collin <lasse.collin@tukaani.org>
4973Date:   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
4983commit bad61b5997e6647911974022bfb72f3d4818a594
4984Author: Lasse Collin <lasse.collin@tukaani.org>
4985Date:   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
4998commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
4999Author: Lasse Collin <lasse.collin@tukaani.org>
5000Date:   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
5024commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
5025Author: Lasse Collin <lasse.collin@tukaani.org>
5026Date:   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
5054commit 2d2201bc6315deda4d43625aa510972467bd51d4
5055Author: Lasse Collin <lasse.collin@tukaani.org>
5056Date:   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
5063commit ce5549a591bf126300618879f5b24023351baff6
5064Author: Lasse Collin <lasse.collin@tukaani.org>
5065Date:   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
5080commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
5081Author: Lasse Collin <lasse.collin@tukaani.org>
5082Date:   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
5089commit 511feb5eadb988d641b025d597f4fac7502003b8
5090Author: Lasse Collin <lasse.collin@tukaani.org>
5091Date:   2022-07-13 22:24:41 +0300
5092
5093    Update THANKS.
5094
5095 THANKS | 1 +
5096 1 file changed, 1 insertion(+)
5097
5098commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
5099Author: Lasse Collin <lasse.collin@tukaani.org>
5100Date:   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
5127commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
5128Author: Lasse Collin <lasse.collin@tukaani.org>
5129Date:   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
5138commit d1bfa3dc703325ecd974167e864a8712fdfe936e
5139Author: Jia Tan <jiat0218@gmail.com>
5140Date:   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
5153commit 86a30b0255d8064169fabfd213d907016d2f9f2a
5154Author: Jia Tan <jiat0218@gmail.com>
5155Date:   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
5163commit 82e30fed66a89706388a8c15dc954d84e63f38fa
5164Author: Lasse Collin <lasse.collin@tukaani.org>
5165Date:   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
5175commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
5176Author: Lasse Collin <lasse.collin@tukaani.org>
5177Date:   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
5184commit b339892668da20aea22a93668c82b87a38e4a97f
5185Author: Lasse Collin <lasse.collin@tukaani.org>
5186Date:   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
5194commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
5195Author: Lasse Collin <lasse.collin@tukaani.org>
5196Date:   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
5203commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
5204Author: Lasse Collin <lasse.collin@tukaani.org>
5205Date:   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
5212commit 70c7555f6403553ee35539e869de0025592d8564
5213Author: Lasse Collin <lasse.collin@tukaani.org>
5214Date:   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
5225commit 154b73c5a1092c3f785e01666b564ad7ff1be555
5226Author: Lasse Collin <lasse.collin@tukaani.org>
5227Date:   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
5234commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
5235Author: Jia Tan <jiat75@gmail.com>
5236Date:   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
5243commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
5244Author: Jia Tan <jiat0218@gmail.com>
5245Date:   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
5255commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
5256Author: jiat75 <jiat0218@gmail.com>
5257Date:   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
5264commit 00e3613f1212eaa84e721585fdb4de6967cf2476
5265Author: Lasse Collin <lasse.collin@tukaani.org>
5266Date:   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
5276commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
5277Author: Lasse Collin <lasse.collin@tukaani.org>
5278Date:   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
5285commit 83d2337b72dbf391c6f3b41889eea99e51679105
5286Author: Lasse Collin <lasse.collin@tukaani.org>
5287Date:   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
5294commit f9e8176ea7d520797a2db2d49a5a632c285674a8
5295Author: Lasse Collin <lasse.collin@tukaani.org>
5296Date:   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
5307commit aa75c5563a760aea3aa23d997d519e702e82726b
5308Author: Jia Tan <jiat0218@gmail.com>
5309Date:   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
5324commit 5c8ffdca20813939818843476fb212dfae8838a3
5325Author: Lasse Collin <lasse.collin@tukaani.org>
5326Date:   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
5335commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
5336Author: Lasse Collin <lasse.collin@tukaani.org>
5337Date:   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
5344commit 754d39fbebee3782258d42f154a223d3c5770ec7
5345Author: Lasse Collin <lasse.collin@tukaani.org>
5346Date:   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
5357commit 96da21470f9570cd08286906a050a7c22631775b
5358Author: Lasse Collin <lasse.collin@tukaani.org>
5359Date:   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
5370commit df71ba1c991f60c3269aaadd398247e632714626
5371Author: Lasse Collin <lasse.collin@tukaani.org>
5372Date:   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
5380commit 4773608554d1b684a05ff9c1d879cf5c42266d33
5381Author: Lasse Collin <lasse.collin@tukaani.org>
5382Date:   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
5396commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
5397Author: Lasse Collin <lasse.collin@tukaani.org>
5398Date:   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
5417commit c7758ac9c734707514dd34f254173ebac5eea7f8
5418Author: Lasse Collin <lasse.collin@tukaani.org>
5419Date:   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
5432commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
5433Author: Lasse Collin <lasse.collin@tukaani.org>
5434Date:   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
5441commit 2ee50d150ee009f36135540b459e6ff328549725
5442Author: Lasse Collin <lasse.collin@tukaani.org>
5443Date:   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
5452commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
5453Author: Lasse Collin <lasse.collin@tukaani.org>
5454Date:   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
5464commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
5465Author: Lasse Collin <lasse.collin@tukaani.org>
5466Date:   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
5473commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
5474Author: Lasse Collin <lasse.collin@tukaani.org>
5475Date:   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
5488commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
5489Author: Lasse Collin <lasse.collin@tukaani.org>
5490Date:   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
5513commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
5514Author: Lasse Collin <lasse.collin@tukaani.org>
5515Date:   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
5533commit 898faa97287a756231c663a3ed5165672b417207
5534Author: Lasse Collin <lasse.collin@tukaani.org>
5535Date:   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
5565commit cad299008cf73ec566f0662a9cf2b94f86a99659
5566Author: Lasse Collin <lasse.collin@tukaani.org>
5567Date:   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
5591commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
5592Author: Lasse Collin <lasse.collin@tukaani.org>
5593Date:   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
5603commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
5604Author: Lasse Collin <lasse.collin@tukaani.org>
5605Date:   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
5623commit 64b6d496dc815a176d8307f418f6834a26783484
5624Author: Lasse Collin <lasse.collin@tukaani.org>
5625Date:   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
5637commit e671bc8828b9c0c5406c3a22c541301d0eb54518
5638Author: Lasse Collin <lasse.collin@tukaani.org>
5639Date:   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
5671commit 2ba8173e27be4793edb46497e499ac2ae753a316
5672Author: Lasse Collin <lasse.collin@tukaani.org>
5673Date:   2022-03-31 00:05:07 +0300
5674
5675    Update THANKS.
5676
5677 THANKS | 1 +
5678 1 file changed, 1 insertion(+)
5679
5680commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
5681Author: Lasse Collin <lasse.collin@tukaani.org>
5682Date:   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
5733commit bd93b776c1bd15e90661033c918cdeb354dbcc38
5734Author: Lasse Collin <lasse.collin@tukaani.org>
5735Date:   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
5753commit e0394e94230f208682ac1e1f4c41f22f9ad79916
5754Author: Lasse Collin <lasse.collin@tukaani.org>
5755Date:   2022-03-23 16:34:00 +0200
5756
5757    Update THANKS.
5758
5759 THANKS | 1 +
5760 1 file changed, 1 insertion(+)
5761
5762commit 487c77d48760564b1949c5067630b675b87be4de
5763Author: Lasse Collin <lasse.collin@tukaani.org>
5764Date:   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
5776commit 6c6da57ae2aa962aabde6892442227063d87e88c
5777Author: Lasse Collin <lasse.collin@tukaani.org>
5778Date:   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
5799commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
5800Author: Lasse Collin <lasse.collin@tukaani.org>
5801Date:   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
5818commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
5819Author: Lasse Collin <lasse.collin@tukaani.org>
5820Date:   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
5830commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
5831Author: Lasse Collin <lasse.collin@tukaani.org>
5832Date:   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
5857commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
5858Author: Lasse Collin <lasse.collin@tukaani.org>
5859Date:   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
5866commit 20e7a33e2d59c6a814447d3991f21e2702174b20
5867Author: Lasse Collin <lasse.collin@tukaani.org>
5868Date:   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
5877commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
5878Author: Lasse Collin <lasse.collin@tukaani.org>
5879Date:   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
5892commit 5313ad66b40aab822ddca3e9905254cb99a4080d
5893Author: Lasse Collin <lasse.collin@tukaani.org>
5894Date:   2022-02-22 01:37:39 +0200
5895
5896    Update THANKS.
5897
5898 THANKS | 1 +
5899 1 file changed, 1 insertion(+)
5900
5901commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
5902Author: Ed Maste <emaste@FreeBSD.org>
5903Date:   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
5911commit 1c9a5786d206b4abc8e427326651c8174baea753
5912Author: Lasse Collin <lasse.collin@tukaani.org>
5913Date:   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
5940commit 555de11873eb00c9b94a8be70645db502e5a9dbd
5941Author: Lasse Collin <lasse.collin@tukaani.org>
5942Date:   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
5950commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
5951Author: Lasse Collin <lasse.collin@tukaani.org>
5952Date:   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
5961commit f7711d228c3c32395460c82498c60a9f730d0239
5962Author: Lasse Collin <lasse.collin@tukaani.org>
5963Date:   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
5977commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
5978Author: jiat75 <jiat0218@gmail.com>
5979Date:   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
5992commit 2523c30705f49eabd27b854aa656ae87cc224808
5993Author: Lasse Collin <lasse.collin@tukaani.org>
5994Date:   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
6008commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
6009Author: huangqinjin <huangqinjin@gmail.com>
6010Date:   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
6017commit 2024fbf2794885277d05378d40b2b8015a7c3b40
6018Author: Lasse Collin <lasse.collin@tukaani.org>
6019Date:   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
6026commit 400e7a239a53282cedaad927a41f3463d7f542e5
6027Author: Lasse Collin <lasse.collin@tukaani.org>
6028Date:   2021-11-13 18:23:24 +0200
6029
6030    Update THANKS.
6031
6032 THANKS | 1 +
6033 1 file changed, 1 insertion(+)
6034
6035commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
6036Author: Ville Skyttä <ville.skytta@iki.fi>
6037Date:   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
6049commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
6050Author: Lasse Collin <lasse.collin@tukaani.org>
6051Date:   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
6059commit ea8c948655a86290524efe59cff067e06a886709
6060Author: Lasse Collin <lasse.collin@tukaani.org>
6061Date:   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
6068commit 52435f302f4724157ec50b4210cbe42b285c3cbc
6069Author: Lasse Collin <lasse.collin@tukaani.org>
6070Date:   2021-10-27 23:27:48 +0300
6071
6072    Update THANKS.
6073
6074 THANKS | 1 +
6075 1 file changed, 1 insertion(+)
6076
6077commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
6078Author: Lasse Collin <lasse.collin@tukaani.org>
6079Date:   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
6089commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
6090Author: Alexander Bluhm <alexander.bluhm@gmx.net>
6091Date:   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
6106commit 2b509c868cae3988bf21cd693fbf9021cdc85628
6107Author: Lasse Collin <lasse.collin@tukaani.org>
6108Date:   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
6119commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
6120Author: Lasse Collin <lasse.collin@tukaani.org>
6121Date:   2021-09-09 22:21:07 +0300
6122
6123    Update THANKS.
6124
6125 THANKS | 1 +
6126 1 file changed, 1 insertion(+)
6127
6128commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
6129Author: Lasse Collin <lasse.collin@tukaani.org>
6130Date:   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
6145commit d267d109c370a40b502e73f8664b154b15e4f253
6146Author: Lasse Collin <lasse.collin@tukaani.org>
6147Date:   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
6161commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
6162Author: Lasse Collin <lasse.collin@tukaani.org>
6163Date:   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
6172commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
6173Author: Lasse Collin <lasse.collin@tukaani.org>
6174Date:   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
6188commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
6189Author: Lasse Collin <lasse.collin@tukaani.org>
6190Date:   2021-04-11 19:58:10 +0300
6191
6192    Update THANKS.
6193
6194 THANKS | 2 ++
6195 1 file changed, 2 insertions(+)
6196
6197commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
6198Author: Ivan A. Melnikov <iv@altlinux.org>
6199Date:   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
6214commit e7da44d5151e21f153925781ad29334ae0786101
6215Author: Lasse Collin <lasse.collin@tukaani.org>
6216Date:   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
6227commit a61dd82ada39030f41b4ffca9ea551714908bedc
6228Author: Lasse Collin <lasse.collin@tukaani.org>
6229Date:   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
6274commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
6275Author: Lasse Collin <lasse.collin@tukaani.org>
6276Date:   2021-01-29 21:19:43 +0200
6277
6278    Update THANKS.
6279
6280 THANKS | 1 +
6281 1 file changed, 1 insertion(+)
6282
6283commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
6284Author: Lasse Collin <lasse.collin@tukaani.org>
6285Date:   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
6297commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
6298Author: Lasse Collin <lasse.collin@tukaani.org>
6299Date:   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
6308commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
6309Author: Lasse Collin <lasse.collin@tukaani.org>
6310Date:   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
6317commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
6318Author: Lasse Collin <lasse.collin@tukaani.org>
6319Date:   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
6327commit fdd30032f8531ac89519b48c21d810ecf06825f6
6328Author: Lasse Collin <lasse.collin@tukaani.org>
6329Date:   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
6337commit db465419ae26ec7fb9b9472183911ff521620c77
6338Author: Lasse Collin <lasse.collin@tukaani.org>
6339Date:   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
6350commit 774cc0118ba2496581cb2621505a04bb6598cc75
6351Author: Lasse Collin <lasse.collin@tukaani.org>
6352Date:   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
6365commit 421b0aa352da244075db10205cf33712f91b9835
6366Author: Lasse Collin <lasse.collin@tukaani.org>
6367Date:   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
6376commit 601ec0311e769fc704daaaa7dac0ca840aff080e
6377Author: Lasse Collin <lasse.collin@tukaani.org>
6378Date:   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
6400commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
6401Author: Lasse Collin <lasse.collin@tukaani.org>
6402Date:   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
6429commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
6430Author: Lasse Collin <lasse.collin@tukaani.org>
6431Date:   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
6439commit d9ec3add97cf4c999a7f594c6529680227b6c274
6440Author: Lasse Collin <lasse.collin@tukaani.org>
6441Date:   2021-01-11 23:41:30 +0200
6442
6443    Update THANKS.
6444
6445 THANKS | 2 ++
6446 1 file changed, 2 insertions(+)
6447
6448commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
6449Author: Lasse Collin <lasse.collin@tukaani.org>
6450Date:   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
6469commit 73c555b3077c19dda29b6f4592ced2af876f8333
6470Author: Lasse Collin <lasse.collin@tukaani.org>
6471Date:   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
6496commit 194029ffaf74282a81f0c299c07f73caca3232ca
6497Author: Lasse Collin <lasse.collin@tukaani.org>
6498Date:   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
6531commit f7fa309e1f7178d04c7bedc03b73077639371e97
6532Author: Lasse Collin <lasse.collin@tukaani.org>
6533Date:   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
6554commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
6555Author: Lasse Collin <lasse.collin@tukaani.org>
6556Date:   2020-12-23 17:15:49 +0200
6557
6558    Update THANKS.
6559
6560 THANKS | 1 +
6561 1 file changed, 1 insertion(+)
6562
6563commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
6564Author: H.J. Lu <hjl.tools@gmail.com>
6565Date:   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
6578commit bb3b8c6a23e25db79f862b1de325c56052e0354b
6579Author: Lasse Collin <lasse.collin@tukaani.org>
6580Date:   2020-12-16 18:33:29 +0200
6581
6582    Update THANKS.
6583
6584 THANKS | 1 +
6585 1 file changed, 1 insertion(+)
6586
6587commit 21588ca34af98738954fc12ded1b89d7294ef646
6588Author: Lasse Collin <lasse.collin@tukaani.org>
6589Date:   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
6598commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
6599Author: Lasse Collin <lasse.collin@tukaani.org>
6600Date:   2020-12-05 22:44:03 +0200
6601
6602    Update THANKS.
6603
6604 THANKS | 1 +
6605 1 file changed, 1 insertion(+)
6606
6607commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
6608Author: Adam Borowski <kilobyte@angband.pl>
6609Date:   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
6619commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
6620Author: Lasse Collin <lasse.collin@tukaani.org>
6621Date:   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
6637commit 5af726a79273fafa5de5745b117e567f21c90e49
6638Author: Lasse Collin <lasse.collin@tukaani.org>
6639Date:   2020-11-01 22:56:43 +0200
6640
6641    Update THANKS.
6642
6643 THANKS | 4 +++-
6644 1 file changed, 3 insertions(+), 1 deletion(-)
6645
6646commit 4575d9d365c756ec189899f9f743e0b3515ce72d
6647Author: Lasse Collin <lasse.collin@tukaani.org>
6648Date:   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
6661commit 620b32f5339f86710cb4435e01ecdac972ccac73
6662Author: Lasse Collin <lasse.collin@tukaani.org>
6663Date:   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
6675commit cb1f34988c8a4130485091b2f8b641303d8f701b
6676Author: Lasse Collin <lasse.collin@tukaani.org>
6677Date:   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
6688commit 5d224da3da87400f2fab313abbd7c710e7169ef9
6689Author: Lasse Collin <lasse.collin@tukaani.org>
6690Date:   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
6704commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
6705Author: Lasse Collin <lasse.collin@tukaani.org>
6706Date:   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
6720commit 352ba2d69af2136bc814aa1df1a132559d445616
6721Author: Lasse Collin <lasse.collin@tukaani.org>
6722Date:   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
6733commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
6734Author: Lasse Collin <lasse.collin@tukaani.org>
6735Date:   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
6744commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
6745Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6746Date:   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
6772commit 133d498db0f4b14f066d192d64dbcade45deae6b
6773Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6774Date:   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
6790commit 057839ca982f886387b66746bffe749cb14fd8cd
6791Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
6792Date:   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
6816commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
6817Author: Lasse Collin <lasse.collin@tukaani.org>
6818Date:   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
6832commit 869b9d1b4edd6df07f819d360d306251f8147353
6833Author: Lasse Collin <lasse.collin@tukaani.org>
6834Date:   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
6841commit a048e3a92d238c65f050a765174d9c75417231d4
6842Author: Lasse Collin <lasse.collin@tukaani.org>
6843Date:   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
6850commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
6851Author: Lasse Collin <lasse.collin@tukaani.org>
6852Date:   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
6859commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
6860Author: Lasse Collin <lasse.collin@tukaani.org>
6861Date:   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
6868commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
6869Author: Lasse Collin <lasse.collin@tukaani.org>
6870Date:   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
6877commit a3148c0446dc7fa96363752df414d22539c9007b
6878Author: Lasse Collin <lasse.collin@tukaani.org>
6879Date:   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
6886commit 7812002dd3ed319e42a14662a8531802cca8ca67
6887Author: Lasse Collin <lasse.collin@tukaani.org>
6888Date:   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
6900commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
6901Author: Lasse Collin <lasse.collin@tukaani.org>
6902Date:   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
6911commit 319ca928d73de87940c54e30bffe69f9fa65efdf
6912Author: Lasse Collin <lasse.collin@tukaani.org>
6913Date:   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
6920commit cb6b227ce39932824812ccd8a0647bd968de27d2
6921Author: Lasse Collin <lasse.collin@tukaani.org>
6922Date:   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
6931commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
6932Author: Lasse Collin <lasse.collin@tukaani.org>
6933Date:   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
6944commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
6945Author: Lasse Collin <lasse.collin@tukaani.org>
6946Date:   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
6953commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
6954Author: Lasse Collin <lasse.collin@tukaani.org>
6955Date:   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
6967commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
6968Author: Lasse Collin <lasse.collin@tukaani.org>
6969Date:   2020-02-25 21:35:14 +0200
6970
6971    Update THANKS.
6972
6973 THANKS | 1 +
6974 1 file changed, 1 insertion(+)
6975
6976commit 474320e9908786ba2021035f9013191e16cde08a
6977Author: Lasse Collin <lasse.collin@tukaani.org>
6978Date:   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
7014commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
7015Author: Lasse Collin <lasse.collin@tukaani.org>
7016Date:   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
7039commit 21bd4701fca3e9002ce78bc135debca369ed8545
7040Author: Lasse Collin <lasse.collin@tukaani.org>
7041Date:   2020-02-24 23:37:07 +0200
7042
7043    Update m4/.gitignore.
7044
7045 m4/.gitignore | 1 +
7046 1 file changed, 1 insertion(+)
7047
7048commit e094d1d0f196a91ec703e8d0055948feef349ae8
7049Author: Lasse Collin <lasse.collin@tukaani.org>
7050Date:   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
7063commit b3ed19a55fe99a45bd77614e149d39d18498075c
7064Author: Lasse Collin <lasse.collin@tukaani.org>
7065Date:   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
7075commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
7076Author: Lasse Collin <lasse.collin@tukaani.org>
7077Date:   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
7088commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
7089Author: Lasse Collin <lasse.collin@tukaani.org>
7090Date:   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
7101commit 59e6eb4840b9f52fa3a61544974017279b448216
7102Author: Lasse Collin <lasse.collin@tukaani.org>
7103Date:   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
7115commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
7116Author: Lasse Collin <lasse.collin@tukaani.org>
7117Date:   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
7126commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
7127Author: Lasse Collin <lasse.collin@tukaani.org>
7128Date:   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
7135commit 524c2f12c762032b819757aeda8af7c47c4cabce
7136Author: Lasse Collin <lasse.collin@tukaani.org>
7137Date:   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
7146commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
7147Author: Lasse Collin <lasse.collin@tukaani.org>
7148Date:   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
7160commit fddd31175e74a538997a939d930462fde17d2dd4
7161Author: Lasse Collin <lasse.collin@tukaani.org>
7162Date:   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
7175commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
7176Author: Lasse Collin <lasse.collin@tukaani.org>
7177Date:   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
7186commit 2d4cef954feba82073951358466a1d614141cf33
7187Author: Lasse Collin <lasse.collin@tukaani.org>
7188Date:   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
7200commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
7201Author: Lasse Collin <lasse.collin@tukaani.org>
7202Date:   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
7217commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
7218Author: Lasse Collin <lasse.collin@tukaani.org>
7219Date:   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
7234commit fa792b8befaf7cb3960b655e0a9410da866d756f
7235Author: Lasse Collin <lasse.collin@tukaani.org>
7236Date:   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
7246commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
7247Author: Lasse Collin <lasse.collin@tukaani.org>
7248Date:   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
7282commit 426f9e5819ff7710a5ff573a96c02940be65d52f
7283Author: Lasse Collin <lasse.collin@tukaani.org>
7284Date:   2020-02-06 17:31:38 +0200
7285
7286    Update THANKS.
7287
7288 THANKS | 1 +
7289 1 file changed, 1 insertion(+)
7290
7291commit e3a4481d020e4de89efa037f335cf50f3ca55592
7292Author: Lasse Collin <lasse.collin@tukaani.org>
7293Date:   2020-02-05 22:35:06 +0200
7294
7295    Update tests/.gitignore.
7296
7297 .gitignore | 4 ++++
7298 1 file changed, 4 insertions(+)
7299
7300commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
7301Author: Lasse Collin <lasse.collin@tukaani.org>
7302Date:   2020-02-05 22:28:51 +0200
7303
7304    Update m4/.gitignore.
7305
7306 m4/.gitignore | 1 +
7307 1 file changed, 1 insertion(+)
7308
7309commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
7310Author: Lasse Collin <lasse.collin@tukaani.org>
7311Date:   2020-02-05 20:47:38 +0200
7312
7313    Update THANKS.
7314
7315 THANKS | 1 +
7316 1 file changed, 1 insertion(+)
7317
7318commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
7319Author: Lasse Collin <lasse.collin@tukaani.org>
7320Date:   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
7331commit af0fb386ef55db66654ae39e2deec6e04190c4ff
7332Author: Lasse Collin <lasse.collin@tukaani.org>
7333Date:   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
7340commit 986d8c9b52b824474088e5bb3b6940651660f0e2
7341Author: Lasse Collin <lasse.collin@tukaani.org>
7342Date:   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
7356commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
7357Author: Lasse Collin <lasse.collin@tukaani.org>
7358Date:   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
7365commit 353970510895f6a80adfe60cf71b70a95adfa8bc
7366Author: Lasse Collin <lasse.collin@tukaani.org>
7367Date:   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
7401commit ba76d67585f88677af9f48b48e7bdc3bb7687def
7402Author: Lasse Collin <lasse.collin@tukaani.org>
7403Date:   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
7435commit fd47fd62bbb1bfd13ab63869137971d8b390025f
7436Author: Lasse Collin <lasse.collin@tukaani.org>
7437Date:   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
7448commit 815035681063d5774d3640fc20b8ede783dd574e
7449Author: Lasse Collin <lasse.collin@tukaani.org>
7450Date:   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
7462commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
7463Author: Lasse Collin <lasse.collin@tukaani.org>
7464Date:   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
7478commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
7479Author: Lasse Collin <lasse.collin@tukaani.org>
7480Date:   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
7487commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
7488Author: Lasse Collin <lasse.collin@tukaani.org>
7489Date:   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
7496commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
7497Author: Lasse Collin <lasse.collin@tukaani.org>
7498Date:   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
7505commit cf2df0f05ac98c1158c6e48145900b773223605d
7506Author: Lasse Collin <lasse.collin@tukaani.org>
7507Date:   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
7518commit 7136f1735c60ac6967c4b8e277fcde53d485234f
7519Author: Lasse Collin <lasse.collin@tukaani.org>
7520Date:   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
7541commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
7542Author: Lasse Collin <lasse.collin@tukaani.org>
7543Date:   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
7558commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
7559Author: Lasse Collin <lasse.collin@tukaani.org>
7560Date:   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
7589commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
7590Author: Lasse Collin <lasse.collin@tukaani.org>
7591Date:   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
7600commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
7601Author: Lasse Collin <lasse.collin@tukaani.org>
7602Date:   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
7623commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
7624Author: Lasse Collin <lasse.collin@tukaani.org>
7625Date:   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
7634commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
7635Author: Lasse Collin <lasse.collin@tukaani.org>
7636Date:   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
7646commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
7647Author: Lasse Collin <lasse.collin@tukaani.org>
7648Date:   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
7656commit de1f47b2b40e960b7bc3acba754f66dd19705921
7657Author: Lasse Collin <lasse.collin@tukaani.org>
7658Date:   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
7669commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
7670Author: Lasse Collin <lasse.collin@tukaani.org>
7671Date:   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
7678commit fc77929e92e869f6869bf88931066103fd75f376
7679Author: Lasse Collin <lasse.collin@tukaani.org>
7680Date:   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
7687commit e873902641794210ad7db59743f98e3e1cd6139f
7688Author: Lasse Collin <lasse.collin@tukaani.org>
7689Date:   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
7700commit d499e467d99efeaae688564eedc4548837c1416a
7701Author: Lasse Collin <lasse.collin@tukaani.org>
7702Date:   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
7709commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
7710Author: Lasse Collin <lasse.collin@tukaani.org>
7711Date:   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
7719commit 1b4675cebf7471f7cc9b7072c950e3de97147063
7720Author: Lasse Collin <lasse.collin@tukaani.org>
7721Date:   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
7740commit 159c43875eb25deea626ed651274464bae3e32ef
7741Author: Lasse Collin <lasse.collin@tukaani.org>
7742Date:   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
7749commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
7750Author: Lasse Collin <lasse.collin@tukaani.org>
7751Date:   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
7760commit 608517b9b76c41fac6613dbda1193d6f41338e19
7761Author: Lasse Collin <lasse.collin@tukaani.org>
7762Date:   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
7773commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
7774Author: Lasse Collin <lasse.collin@tukaani.org>
7775Date:   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
7782commit 2402f7873dcae719d0ebddd23bb579074519ac52
7783Author: Lasse Collin <lasse.collin@tukaani.org>
7784Date:   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
7796commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
7797Author: Lasse Collin <lasse.collin@tukaani.org>
7798Date:   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
7807commit dfda7cf6afa486e10df035327d68753896dfb48a
7808Author: Lasse Collin <lasse.collin@tukaani.org>
7809Date:   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
7821commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
7822Author: Lasse Collin <lasse.collin@tukaani.org>
7823Date:   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
7835commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
7836Author: Lasse Collin <lasse.collin@tukaani.org>
7837Date:   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
7844commit d0a78751eb54fb1572002746c533936a118e4e42
7845Author: Lasse Collin <lasse.collin@tukaani.org>
7846Date:   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
7853commit 7883d73530b4b2a701ddd7d50c35676cbc158039
7854Author: Lasse Collin <lasse.collin@tukaani.org>
7855Date:   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
7868commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
7869Author: Lasse Collin <lasse.collin@tukaani.org>
7870Date:   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
7877commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
7878Author: Lasse Collin <lasse.collin@tukaani.org>
7879Date:   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
7886commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
7887Author: Lasse Collin <lasse.collin@tukaani.org>
7888Date:   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
7909commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
7910Author: Lasse Collin <lasse.collin@tukaani.org>
7911Date:   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
7918commit 3ce05d235f736d392347a05086b8033416874b87
7919Author: Lasse Collin <lasse.collin@tukaani.org>
7920Date:   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
7931commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
7932Author: Lasse Collin <lasse.collin@tukaani.org>
7933Date:   2019-06-03 20:44:19 +0300
7934
7935    Update THANKS.
7936
7937 THANKS | 1 +
7938 1 file changed, 1 insertion(+)
7939
7940commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
7941Author: Lasse Collin <lasse.collin@tukaani.org>
7942Date:   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
7956commit c460f6defebc5a81bbca90adc2476154ca244f69
7957Author: Lasse Collin <lasse.collin@tukaani.org>
7958Date:   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
7965commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
7966Author: Lasse Collin <lasse.collin@tukaani.org>
7967Date:   2019-06-01 21:41:55 +0300
7968
7969    Update THANKS.
7970
7971 THANKS | 1 +
7972 1 file changed, 1 insertion(+)
7973
7974commit 386394fc9fcde2615391f804eaa466749f96f4ef
7975Author: Lasse Collin <lasse.collin@tukaani.org>
7976Date:   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
7985commit 264ab971ce2994baac41b1579c9c35aba7743fc8
7986Author: Lasse Collin <lasse.collin@tukaani.org>
7987Date:   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
7994commit 33773c6f2a8711d4aa6656795db52c59a28580ec
7995Author: Lasse Collin <lasse.collin@tukaani.org>
7996Date:   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
8008commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
8009Author: Lasse Collin <lasse.collin@tukaani.org>
8010Date:   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
8020commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
8021Author: Lasse Collin <lasse.collin@tukaani.org>
8022Date:   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
8038commit 2a22de439ec63da1927b640eda309296a1e8dce5
8039Author: Lasse Collin <lasse.collin@tukaani.org>
8040Date:   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
8073commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
8074Author: Lasse Collin <lasse.collin@tukaani.org>
8075Date:   2019-05-11 20:56:08 +0300
8076
8077    Update THANKS.
8078
8079 THANKS | 1 +
8080 1 file changed, 1 insertion(+)
8081
8082commit 4adb8288ab61d5f14e212007b8742df0710baf73
8083Author: Lasse Collin <lasse.collin@tukaani.org>
8084Date:   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
8091commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
8092Author: Antoine Cœur <antoine.coeur@ef.com>
8093Date:   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
8121commit 4ed339606156bd313ed99237485cb8ed0362d64f
8122Author: Lasse Collin <lasse.collin@tukaani.org>
8123Date:   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
8134commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
8135Author: Lasse Collin <lasse.collin@tukaani.org>
8136Date:   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
8143commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
8144Author: Lasse Collin <lasse.collin@tukaani.org>
8145Date:   2019-05-01 16:52:36 +0300
8146
8147    Update THANKS.
8148
8149 THANKS | 1 +
8150 1 file changed, 1 insertion(+)
8151
8152commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
8153Author: Lasse Collin <lasse.collin@tukaani.org>
8154Date:   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
8161commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
8162Author: Julien Marrec <julien.marrec@gmail.com>
8163Date:   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
8170commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
8171Author: Julien Marrec <julien.marrec@gmail.com>
8172Date:   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
8180commit be25a0c37ba92a20c390b4d17fe502457fe96b71
8181Author: Julien Marrec <julien.marrec@gmail.com>
8182Date:   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
8192commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
8193Author: Lasse Collin <lasse.collin@tukaani.org>
8194Date:   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
8204commit a750c35a7d45a16c11c1d40fecee8443c32a9996
8205Author: Lasse Collin <lasse.collin@tukaani.org>
8206Date:   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
8213commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
8214Author: Lasse Collin <lasse.collin@tukaani.org>
8215Date:   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
8225commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
8226Author: Lasse Collin <lasse.collin@tukaani.org>
8227Date:   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
8248commit 4d86076332aece6314063d3712a5f364172bbb0f
8249Author: Lasse Collin <lasse.collin@tukaani.org>
8250Date:   2018-12-20 20:42:29 +0200
8251
8252    Update THANKS.
8253
8254 THANKS | 1 +
8255 1 file changed, 1 insertion(+)
8256
8257commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
8258Author: Lasse Collin <lasse.collin@tukaani.org>
8259Date:   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
8281commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
8282Author: Lasse Collin <lasse.collin@tukaani.org>
8283Date:   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
8290commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
8291Author: Pavel Raiskup <praiskup@redhat.com>
8292Date:   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
8300commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
8301Author: Lasse Collin <lasse.collin@tukaani.org>
8302Date:   2018-11-02 20:40:48 +0200
8303
8304    Update THANKS.
8305
8306 THANKS | 1 +
8307 1 file changed, 1 insertion(+)
8308
8309commit 106d1a663d4ba42b63231caa289f531548df81c1
8310Author: Lasse Collin <lasse.collin@tukaani.org>
8311Date:   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
8324commit a18ae42a79a19b1394b41eb3e238139fd28012ec
8325Author: Lasse Collin <lasse.collin@tukaani.org>
8326Date:   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
8345commit f76f7516d6a1c832f61810c82e92d151cc80966c
8346Author: Lasse Collin <lasse.collin@tukaani.org>
8347Date:   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
8359commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
8360Author: Lasse Collin <lasse.collin@tukaani.org>
8361Date:   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
8373commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
8374Author: Lasse Collin <lasse.collin@tukaani.org>
8375Date:   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
8382commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
8383Author: Lasse Collin <lasse.collin@tukaani.org>
8384Date:   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
8392commit cee3021d30704858e4bdd22240e7d28e570d7451
8393Author: Lasse Collin <lasse.collin@tukaani.org>
8394Date:   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
8401commit c5c7ceb08a011b97d261798033e2c39613a69eb7
8402Author: Lasse Collin <lasse.collin@tukaani.org>
8403Date:   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
8410commit 114cab97af766b21e0fc8620479202fb1e7a5e41
8411Author: Lasse Collin <lasse.collin@tukaani.org>
8412Date:   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
8419commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
8420Author: Lasse Collin <lasse.collin@tukaani.org>
8421Date:   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
8428commit 47b59d47cfd904a420fbd45629d168ca1973721d
8429Author: Lasse Collin <lasse.collin@tukaani.org>
8430Date:   2018-02-06 19:36:30 +0200
8431
8432    Update THANKS.
8433
8434 THANKS | 2 ++
8435 1 file changed, 2 insertions(+)
8436
8437commit bc197991690ede24ab143665b5b0f0f9cb35cc46
8438Author: Ben Boeckel <mathstuf@gmail.com>
8439Date:   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
8449commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
8450Author: Lasse Collin <lasse.collin@tukaani.org>
8451Date:   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
8463commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
8464Author: Lasse Collin <lasse.collin@tukaani.org>
8465Date:   2018-01-10 22:10:39 +0200
8466
8467    Update THANKS.
8468
8469 THANKS | 1 +
8470 1 file changed, 1 insertion(+)
8471
8472commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
8473Author: Lasse Collin <lasse.collin@tukaani.org>
8474Date:   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
8483commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
8484Author: Lasse Collin <lasse.collin@tukaani.org>
8485Date:   2017-09-24 20:04:24 +0300
8486
8487    Update THANKS.
8488
8489 THANKS | 1 +
8490 1 file changed, 1 insertion(+)
8491
8492commit a1e2c568de29c0b57d873eab40a2879b749da429
8493Author: Lasse Collin <lasse.collin@tukaani.org>
8494Date:   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
8507commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
8508Author: Lasse Collin <lasse.collin@tukaani.org>
8509Date:   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
8517commit 95d563db3ee497b223e522b699c4d4c29943eef0
8518Author: Lasse Collin <lasse.collin@tukaani.org>
8519Date:   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
8531commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
8532Author: Lasse Collin <lasse.collin@tukaani.org>
8533Date:   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
8541commit 82388980187b0e3794d187762054200bbdcc9a53
8542Author: Lasse Collin <lasse.collin@tukaani.org>
8543Date:   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
8553commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
8554Author: Lasse Collin <lasse.collin@tukaani.org>
8555Date:   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
8563commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
8564Author: Alexey Tourbin <alexey.tourbin@gmail.com>
8565Date:   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
8572commit a015cd1f90116e655be4eaf4aad42c4c911c2807
8573Author: Lasse Collin <lasse.collin@tukaani.org>
8574Date:   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
8590commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
8591Author: Lasse Collin <lasse.collin@tukaani.org>
8592Date:   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
8600commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
8601Author: Lasse Collin <lasse.collin@tukaani.org>
8602Date:   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
8611commit 8269782283806c90a8509c2ac2a308344f70e171
8612Author: Lasse Collin <lasse.collin@tukaani.org>
8613Date:   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
8620commit e353d0b1cc0d3997ae5048faa8e6786414953e06
8621Author: Lasse Collin <lasse.collin@tukaani.org>
8622Date:   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
8632commit 144ef9e19e9496c995b21505dd1e111c442968d1
8633Author: Lasse Collin <lasse.collin@tukaani.org>
8634Date:   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
8641commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
8642Author: Lasse Collin <lasse.collin@tukaani.org>
8643Date:   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
8652commit 662b27c417cab248cb365dd7682121bdec4d5ae7
8653Author: Lasse Collin <lasse.collin@tukaani.org>
8654Date:   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
8670commit c28f0b3d00af87b92dda229831548d8eb0067d1d
8671Author: Lasse Collin <lasse.collin@tukaani.org>
8672Date:   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
8680commit bba477257d7319c8764890f3669175b866d24944
8681Author: Lasse Collin <lasse.collin@tukaani.org>
8682Date:   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
8692commit 310d19816d1652b0c8bb1b82574d46345d924752
8693Author: Lasse Collin <lasse.collin@tukaani.org>
8694Date:   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
8706commit a27920002dbc469f778a134fc665b7c3ea73701b
8707Author: Lasse Collin <lasse.collin@tukaani.org>
8708Date:   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
8719commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
8720Author: Lasse Collin <lasse.collin@tukaani.org>
8721Date:   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
8744commit 84462afaada61379f5878e46f8f00e25a1cdcf29
8745Author: Lasse Collin <lasse.collin@tukaani.org>
8746Date:   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
8756commit cbc74017939690d13441b8926bb743fb03211b83
8757Author: Lasse Collin <lasse.collin@tukaani.org>
8758Date:   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
8780commit 78ae13bced912b1b92ae927992c99cbcc463cae7
8781Author: Lasse Collin <lasse.collin@tukaani.org>
8782Date:   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
8789commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
8790Author: Lasse Collin <lasse.collin@tukaani.org>
8791Date:   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
8798commit d4a0462abe5478193521c14625e1c81fead87f9f
8799Author: Lasse Collin <lasse.collin@tukaani.org>
8800Date:   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
8849commit a01794c52add98263b49119842c3e7141d1b9ced
8850Author: Lasse Collin <lasse.collin@tukaani.org>
8851Date:   2016-10-24 18:53:25 +0300
8852
8853    Update THANKS.
8854
8855 THANKS | 1 +
8856 1 file changed, 1 insertion(+)
8857
8858commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
8859Author: Lasse Collin <lasse.collin@tukaani.org>
8860Date:   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
8882commit 446e4318fa79788e09299d5953b5dd428953d14b
8883Author: Lasse Collin <lasse.collin@tukaani.org>
8884Date:   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
8898commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
8899Author: Lasse Collin <lasse.collin@tukaani.org>
8900Date:   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
8909commit c83b7a03342c3325ff10400b22ee21edfcd1e026
8910Author: Lasse Collin <lasse.collin@tukaani.org>
8911Date:   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
8920commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
8921Author: Lasse Collin <lasse.collin@tukaani.org>
8922Date:   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
8934commit ac398c3bafa6e4c80e20571373a96947db863b3d
8935Author: Lasse Collin <lasse.collin@tukaani.org>
8936Date:   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
8964commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
8965Author: Lasse Collin <lasse.collin@tukaani.org>
8966Date:   2016-03-10 20:27:05 +0200
8967
8968    Update THANKS.
8969
8970 THANKS | 1 +
8971 1 file changed, 1 insertion(+)
8972
8973commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
8974Author: Lasse Collin <lasse.collin@tukaani.org>
8975Date:   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
8996commit faf302137e54d605b44ecf0373cb51a6403a2de1
8997Author: Lasse Collin <lasse.collin@tukaani.org>
8998Date:   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
9005commit e52e9151cf8613022d1de4712ff39dbcb666e991
9006Author: Lasse Collin <lasse.collin@tukaani.org>
9007Date:   2015-11-04 23:17:43 +0200
9008
9009    Update THANKS.
9010
9011 THANKS | 1 +
9012 1 file changed, 1 insertion(+)
9013
9014commit 14115f84a38161d55eaa2d070f08739bde37e966
9015Author: Lasse Collin <lasse.collin@tukaani.org>
9016Date:   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
9031commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
9032Author: Lasse Collin <lasse.collin@tukaani.org>
9033Date:   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
9044commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
9045Author: Lasse Collin <lasse.collin@tukaani.org>
9046Date:   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
9056commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
9057Author: Lasse Collin <lasse.collin@tukaani.org>
9058Date:   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
9065commit af13781886c8e7a0aabebb5141ea282dc364f5c6
9066Author: Lasse Collin <lasse.collin@tukaani.org>
9067Date:   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
9074commit 9fa5949330f162c5a2f6653f83025327837e8f39
9075Author: Lasse Collin <lasse.collin@tukaani.org>
9076Date:   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
9083commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
9084Author: Lasse Collin <lasse.collin@tukaani.org>
9085Date:   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
9103commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
9104Author: Lasse Collin <lasse.collin@tukaani.org>
9105Date:   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
9120commit 23ed1d41489f632155bbc9660f323d57e09da180
9121Author: Lasse Collin <lasse.collin@tukaani.org>
9122Date:   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
9133commit b0bc3e03852af13419ea2960881824258d451117
9134Author: Lasse Collin <lasse.collin@tukaani.org>
9135Date:   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
9146commit c6bf438ab39e0fb4a47d3c81725c227919502726
9147Author: Lasse Collin <lasse.collin@tukaani.org>
9148Date:   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
9159commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
9160Author: Lasse Collin <lasse.collin@tukaani.org>
9161Date:   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
9171commit 282e768a1484e88c8b7ec35655ee4959954ec87a
9172Author: Lasse Collin <lasse.collin@tukaani.org>
9173Date:   2015-10-12 21:08:42 +0300
9174
9175    Update THANKS.
9176
9177 THANKS | 1 +
9178 1 file changed, 1 insertion(+)
9179
9180commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
9181Author: Lasse Collin <lasse.collin@tukaani.org>
9182Date:   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
9189commit 21515d79d778b8730a434f151b07202d52a04611
9190Author: Lasse Collin <lasse.collin@tukaani.org>
9191Date:   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
9201commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
9202Author: Lasse Collin <lasse.collin@tukaani.org>
9203Date:   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
9210commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
9211Author: Lasse Collin <lasse.collin@tukaani.org>
9212Date:   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
9228commit 7f05803979b4b79642d5be4218a79da7a0b12c47
9229Author: Lasse Collin <lasse.collin@tukaani.org>
9230Date:   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
9237commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
9238Author: Hauke Henningsen <sqrt@entless.org>
9239Date:   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
9266commit cbc9e39bae715accb44168930a71888480aad569
9267Author: Lasse Collin <lasse.collin@tukaani.org>
9268Date:   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
9278commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
9279Author: Lasse Collin <lasse.collin@tukaani.org>
9280Date:   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
9287commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
9288Author: Lasse Collin <lasse.collin@tukaani.org>
9289Date:   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
9301commit a74525cf9b945fb0b370e64cf406104beb31729b
9302Author: Lasse Collin <lasse.collin@tukaani.org>
9303Date:   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
9311commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
9312Author: Lasse Collin <lasse.collin@tukaani.org>
9313Date:   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
9320commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
9321Author: Lasse Collin <lasse.collin@tukaani.org>
9322Date:   2015-06-19 20:38:55 +0300
9323
9324    Update THANKS.
9325
9326 THANKS | 2 ++
9327 1 file changed, 2 insertions(+)
9328
9329commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
9330Author: Lasse Collin <lasse.collin@tukaani.org>
9331Date:   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
9340commit b0798c6aa6184efcefd0bdcca20f96121a13feda
9341Author: Lasse Collin <lasse.collin@tukaani.org>
9342Date:   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
9353commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
9354Author: Andre Noll <maan@tuebingen.mpg.de>
9355Date:   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
9367commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
9368Author: Lasse Collin <lasse.collin@tukaani.org>
9369Date:   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
9378commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
9379Author: Lasse Collin <lasse.collin@tukaani.org>
9380Date:   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
9389commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
9390Author: Lasse Collin <lasse.collin@tukaani.org>
9391Date:   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
9398commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
9399Author: Lasse Collin <lasse.collin@tukaani.org>
9400Date:   2015-04-20 20:20:29 +0300
9401
9402    Update THANKS.
9403
9404 THANKS | 1 +
9405 1 file changed, 1 insertion(+)
9406
9407commit 6bd0349c58451b13442e8f463e35de83548bf985
9408Author: Lasse Collin <lasse.collin@tukaani.org>
9409Date:   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
9425commit fc0df0f8db87dff45543708a711e17d29c37f632
9426Author: Lasse Collin <lasse.collin@tukaani.org>
9427Date:   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
9434commit 57393615b31b3788dd77280452d845bcc12d33af
9435Author: Lasse Collin <lasse.collin@tukaani.org>
9436Date:   2015-03-31 22:20:11 +0300
9437
9438    Update THANKS.
9439
9440 THANKS | 1 +
9441 1 file changed, 1 insertion(+)
9442
9443commit 1238381143a9a7ce84839c2582ccd56ff750a440
9444Author: Lasse Collin <lasse.collin@tukaani.org>
9445Date:   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
9476commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
9477Author: Lasse Collin <lasse.collin@tukaani.org>
9478Date:   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
9510commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
9511Author: Lasse Collin <lasse.collin@tukaani.org>
9512Date:   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
9524commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
9525Author: Lasse Collin <lasse.collin@tukaani.org>
9526Date:   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
9537commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
9538Author: Lasse Collin <lasse.collin@tukaani.org>
9539Date:   2015-03-29 22:14:47 +0300
9540
9541    Update THANKS.
9542
9543 THANKS | 1 +
9544 1 file changed, 1 insertion(+)
9545
9546commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
9547Author: Lasse Collin <lasse.collin@tukaani.org>
9548Date:   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
9561commit 4c544d2410903d38402221cb783ed85585b6a007
9562Author: Lasse Collin <lasse.collin@tukaani.org>
9563Date:   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
9580commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
9581Author: Lasse Collin <lasse.collin@tukaani.org>
9582Date:   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
9589commit 8bcca29a65335fd679c13814b70b35b68fa5daed
9590Author: Lasse Collin <lasse.collin@tukaani.org>
9591Date:   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
9598commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
9599Author: Lasse Collin <lasse.collin@tukaani.org>
9600Date:   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
9608commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
9609Author: Lasse Collin <lasse.collin@tukaani.org>
9610Date:   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
9621commit f6ec46801588b1be29c07c9db98558b521304002
9622Author: Lasse Collin <lasse.collin@tukaani.org>
9623Date:   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
9630commit a24518971cc621315af142dd3bb7614fab04ad27
9631Author: Lasse Collin <lasse.collin@tukaani.org>
9632Date:   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
9639commit dec11497a71518423b5ff0e759100cf8aadf6c7b
9640Author: Lasse Collin <lasse.collin@tukaani.org>
9641Date:   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
9649commit 29e39c79975ab89ee5dd671e97064534a9f3a649
9650Author: Lasse Collin <lasse.collin@tukaani.org>
9651Date:   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
9658commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
9659Author: Lasse Collin <lasse.collin@tukaani.org>
9660Date:   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
9668commit 117d962685c72682c63edc9bb765367189800202
9669Author: Lasse Collin <lasse.collin@tukaani.org>
9670Date:   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
9682commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
9683Author: Lasse Collin <lasse.collin@tukaani.org>
9684Date:   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
9694commit 2205bb5853098aea36a56df6f5747037175f66b4
9695Author: Lasse Collin <lasse.collin@tukaani.org>
9696Date:   2015-02-10 15:29:34 +0200
9697
9698    Update THANKS.
9699
9700 THANKS | 1 +
9701 1 file changed, 1 insertion(+)
9702
9703commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
9704Author: Lasse Collin <lasse.collin@tukaani.org>
9705Date:   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
9719commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
9720Author: Lasse Collin <lasse.collin@tukaani.org>
9721Date:   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
9730commit b9a5b6b7a29029680af733082b6a46e0fc01623a
9731Author: Lasse Collin <lasse.collin@tukaani.org>
9732Date:   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
9743commit c45757135f40e4a0de730ba5fff0100219493982
9744Author: Lasse Collin <lasse.collin@tukaani.org>
9745Date:   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
9752commit 3c500174ed5485f550972a2a6109c361e875f069
9753Author: Lasse Collin <lasse.collin@tukaani.org>
9754Date:   2015-01-26 20:40:16 +0200
9755
9756    Update THANKS.
9757
9758 THANKS | 1 +
9759 1 file changed, 1 insertion(+)
9760
9761commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
9762Author: Lasse Collin <lasse.collin@tukaani.org>
9763Date:   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
9773commit a9b45badfec0928d20a27c7176c005fa637f7d1e
9774Author: Lasse Collin <lasse.collin@tukaani.org>
9775Date:   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
9782commit 541aee6dd4aa97a809aba281475a21b641bb89e2
9783Author: Lasse Collin <lasse.collin@tukaani.org>
9784Date:   2015-01-09 21:35:06 +0200
9785
9786    Update THANKS.
9787
9788 THANKS | 1 +
9789 1 file changed, 1 insertion(+)
9790
9791commit 4170edc914655310d2363baccf5e615e09b04911
9792Author: Lasse Collin <lasse.collin@tukaani.org>
9793Date:   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
9805commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
9806Author: Lasse Collin <lasse.collin@tukaani.org>
9807Date:   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
9814commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
9815Author: Lasse Collin <lasse.collin@tukaani.org>
9816Date:   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
9832commit d2d484647d9d9d679f03c75abb0404f67069271c
9833Author: Lasse Collin <lasse.collin@tukaani.org>
9834Date:   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
9845commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
9846Author: Lasse Collin <lasse.collin@tukaani.org>
9847Date:   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
9859commit 7815112153178800a3521b9f31960e7cdc26cfba
9860Author: Lasse Collin <lasse.collin@tukaani.org>
9861Date:   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
9869commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
9870Author: Lasse Collin <lasse.collin@tukaani.org>
9871Date:   2014-12-21 20:48:37 +0200
9872
9873    DOS: Update Makefile.
9874
9875 dos/Makefile | 1 +
9876 1 file changed, 1 insertion(+)
9877
9878commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
9879Author: Lasse Collin <lasse.collin@tukaani.org>
9880Date:   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
9887commit cbafa710918195dbba3db02c3fab4f0538235206
9888Author: Lasse Collin <lasse.collin@tukaani.org>
9889Date:   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
9896commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
9897Author: Lasse Collin <lasse.collin@tukaani.org>
9898Date:   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
9905commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
9906Author: Lasse Collin <lasse.collin@tukaani.org>
9907Date:   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(-)
9920