xref: /freebsd/contrib/xz/ChangeLog (revision c07d6445eb89d9dd3950361b065b7bd110e3a043)
1commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
2Author: Lasse Collin <lasse.collin@tukaani.org>
3Date:   2022-12-13 20:37:17 +0200
4
5    Bump version to 5.4.0 and soname to 5.4.0.
6
7 src/liblzma/Makefile.am         | 2 +-
8 src/liblzma/api/lzma/version.h  | 6 +++---
9 src/liblzma/liblzma_generic.map | 2 +-
10 src/liblzma/liblzma_linux.map   | 2 +-
11 4 files changed, 6 insertions(+), 6 deletions(-)
12
13commit 20869eb3fb280ff4f271ef527b12b6bf68b05e19
14Author: Lasse Collin <lasse.collin@tukaani.org>
15Date:   2022-12-13 20:29:39 +0200
16
17    Update INSTALL: CMake on Windows isn't experimental anymore.
18
19    Using CMake to build liblzma should work on a few other OSes
20    but building the command line tools is still subtly broken.
21
22    It is known that shared library versioning may differ between
23    CMake and Libtool builds on some OSes, most notably Darwin.
24
25 INSTALL | 10 ++++------
26 1 file changed, 4 insertions(+), 6 deletions(-)
27
28commit cbbd84451944e3e8c63acfaa3c923f6d8aff7852
29Author: Lasse Collin <lasse.collin@tukaani.org>
30Date:   2022-12-13 19:47:53 +0200
31
32    Add NEWS for 5.4.0.
33
34 NEWS | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
35 1 file changed, 202 insertions(+)
36
37commit c3e94d37e8d10a3e96019864b6f5d7b578db2c14
38Author: Lasse Collin <lasse.collin@tukaani.org>
39Date:   2022-12-13 17:41:20 +0200
40
41    Fix a typo in NEWS.
42
43 NEWS | 2 +-
44 1 file changed, 1 insertion(+), 1 deletion(-)
45
46commit 0d2a2e0a545c3da2b3e9500f1e531eb903087245
47Author: Lasse Collin <lasse.collin@tukaani.org>
48Date:   2022-12-13 17:41:03 +0200
49
50    Add NEWS for 5.2.10.
51
52 NEWS | 12 ++++++++++++
53 1 file changed, 12 insertions(+)
54
55commit 177ece1c8eb007188fb1b04eff09ca2193fbdea6
56Author: Lasse Collin <lasse.collin@tukaani.org>
57Date:   2022-12-13 12:30:45 +0200
58
59    Tests: Fix a typo in tests/files/README.
60
61 tests/files/README | 2 +-
62 1 file changed, 1 insertion(+), 1 deletion(-)
63
64commit 60f45bdbaa6b07558b3f4baac285739b0c6342f5
65Author: Lasse Collin <lasse.collin@tukaani.org>
66Date:   2022-12-13 12:30:09 +0200
67
68    Tests: Add two ARM64 test files.
69
70 tests/files/README                  |   7 +++++++
71 tests/files/good-1-arm64-lzma2-1.xz | Bin 0 -> 512 bytes
72 tests/files/good-1-arm64-lzma2-2.xz | Bin 0 -> 488 bytes
73 tests/test_files.sh                 |   5 +++++
74 4 files changed, 12 insertions(+)
75
76commit f5e419550619c548c7c35d7e367cf00580a56521
77Author: Lasse Collin <lasse.collin@tukaani.org>
78Date:   2022-12-12 22:44:21 +0200
79
80    Translations: Update the Catalan translation.
81
82 po/ca.po | 657 +++++++++++++++++++++++++++++----------------------------------
83 1 file changed, 306 insertions(+), 351 deletions(-)
84
85commit 0fb9d355da3789b1757040af475b4e6bbc8b8af8
86Author: Lasse Collin <lasse.collin@tukaani.org>
87Date:   2022-12-12 19:18:12 +0200
88
89    Update THANKS.
90
91 THANKS | 1 +
92 1 file changed, 1 insertion(+)
93
94commit e5b6c161c61a37c54dcb76a99bbb83ac4abe02dc
95Author: Lasse Collin <lasse.collin@tukaani.org>
96Date:   2022-12-12 19:07:58 +0200
97
98    Update AUTHORS.
99
100 AUTHORS | 12 ++++++++++++
101 1 file changed, 12 insertions(+)
102
103commit f2d98e691099d82054d5f3071ef6f5e809932e44
104Author: Lasse Collin <lasse.collin@tukaani.org>
105Date:   2022-12-12 15:31:14 +0200
106
107    Docs: Omit multi-threaded decompress from TODO.
108
109    The TODO file outdated still.
110
111 TODO | 2 --
112 1 file changed, 2 deletions(-)
113
114commit b42908c42a4cc091db45a7e5ba0e0ecceaa3f6da
115Author: Lasse Collin <lasse.collin@tukaani.org>
116Date:   2022-12-11 21:16:09 +0200
117
118    Docs: Update xz-file-format.txt to 1.1.0 for ARM64 filter.
119
120 doc/xz-file-format.txt | 29 ++++++++++++++++++++++-------
121 1 file changed, 22 insertions(+), 7 deletions(-)
122
123commit 854f2f5946b353cb0963fd6dfd54d363adc89b9f
124Author: Lasse Collin <lasse.collin@tukaani.org>
125Date:   2022-12-11 21:13:57 +0200
126
127    xz: Rename --experimental-arm64 to --arm64.
128
129 src/xz/args.c | 2 +-
130 1 file changed, 1 insertion(+), 1 deletion(-)
131
132commit 31dbd1e5fb65831915a7bbb531c3f19aea8d57a5
133Author: Lasse Collin <lasse.collin@tukaani.org>
134Date:   2022-12-11 21:13:06 +0200
135
136    liblzma: Change LZMA_FILTER_ARM64 to the official Filter ID 0x0A.
137
138 src/liblzma/api/lzma/bcj.h | 6 +-----
139 1 file changed, 1 insertion(+), 5 deletions(-)
140
141commit 01b3549e523edac899ec4925b282ceddd20da116
142Author: Lasse Collin <lasse.collin@tukaani.org>
143Date:   2022-12-08 19:24:22 +0200
144
145    xz: Make args_info.files_name a const pointer.
146
147 src/xz/args.c | 2 +-
148 src/xz/args.h | 2 +-
149 2 files changed, 2 insertions(+), 2 deletions(-)
150
151commit bc665b84ea6bf7946394a08122177efe41b26a5f
152Author: Lasse Collin <lasse.collin@tukaani.org>
153Date:   2022-12-08 19:18:16 +0200
154
155    xz: Don't modify argv[].
156
157    The code that parses --memlimit options and --block-list modified
158    the argv[] when parsing the option string from optarg. This was
159    visible in "ps auxf" and such and could be confusing. I didn't
160    understand it back in the day when I wrote that code. Now a copy
161    is allocated when modifiable strings are needed.
162
163 src/xz/args.c | 23 +++++++++++++++++++----
164 1 file changed, 19 insertions(+), 4 deletions(-)
165
166commit a13064e1c290de7933db72b6dffbd65cfce59c9f
167Author: Lasse Collin <lasse.collin@tukaani.org>
168Date:   2022-12-08 18:18:57 +0200
169
170    Translations: Update the German man page translations.
171
172 po4a/de.po | 4570 ++++++++++++++++++------------------------------------------
173 1 file changed, 1374 insertions(+), 3196 deletions(-)
174
175commit 8bdbe42a8d0d75dff70206b923fc4bce5c69a40a
176Author: Jia Tan <jiat0218@gmail.com>
177Date:   2022-12-06 23:05:56 +0800
178
179    Translations: Update the German translation.
180
181 po/de.po | 586 ++++++++++++++++++++++++++++++++++-----------------------------
182 1 file changed, 315 insertions(+), 271 deletions(-)
183
184commit 5c304b57c24ef40ff57f864301065f0244c05bde
185Author: Jia Tan <jiat0218@gmail.com>
186Date:   2022-12-06 23:04:25 +0800
187
188    Translations: Update the Turkish translation.
189
190 po/tr.po | 221 +++++++++++++++++++++++++++++++--------------------------------
191 1 file changed, 108 insertions(+), 113 deletions(-)
192
193commit 6d86781fdb937970486500447ebb49b98244235b
194Author: Jia Tan <jiat0218@gmail.com>
195Date:   2022-12-06 23:02:11 +0800
196
197    Translations: Update the Croatian translation.
198
199 po/hr.po | 228 +++++++++++++++++++++++++++++++--------------------------------
200 1 file changed, 113 insertions(+), 115 deletions(-)
201
202commit 7a5b4b8075eb36026b1796f04ffed5830c42396a
203Author: Jia Tan <jiat0218@gmail.com>
204Date:   2022-12-06 22:56:30 +0800
205
206    Translations: Add Romanian translation of man pages.
207
208    Thanks to Remus-Gabriel Chelu.
209
210 po4a/po4a.conf |    2 +-
211 po4a/ro.po     | 3692 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
212 2 files changed, 3693 insertions(+), 1 deletion(-)
213
214commit c6977e7400088177556e8771bcb839eb7d90caa3
215Author: Jia Tan <jiat0218@gmail.com>
216Date:   2022-12-06 22:52:13 +0800
217
218    Translations: Update the Romanian translation.
219
220 po/ro.po | 294 +++++++++++++++++++++++++++++++--------------------------------
221 1 file changed, 147 insertions(+), 147 deletions(-)
222
223commit ac2a747e939c2cbccff7a49c399769af5e02d2ab
224Author: Lasse Collin <lasse.collin@tukaani.org>
225Date:   2022-12-08 17:30:09 +0200
226
227    liblzma: Check for unexpected NULL pointers in block_header_decode().
228
229    The API docs gave an impression that such checks are done
230    but they actually weren't done. In practice it made little
231    difference since the calling code has a bug if these are NULL.
232
233    Thanks to Jia Tan for the original patch that checked for
234    block->filters == NULL.
235
236 src/liblzma/common/block_header_decoder.c | 4 ++++
237 1 file changed, 4 insertions(+)
238
239commit 24790f49ae66938c1c7574315e1c0aba1ed5ed25
240Author: Lasse Collin <lasse.collin@tukaani.org>
241Date:   2022-12-01 20:59:32 +0200
242
243    Bump version number for 5.3.5beta.
244
245    This also sorts the symbol names alphabetically in liblzma_*.map.
246
247 src/liblzma/api/lzma/version.h  |  4 ++--
248 src/liblzma/liblzma_generic.map | 10 +++++-----
249 src/liblzma/liblzma_linux.map   | 10 +++++-----
250 3 files changed, 12 insertions(+), 12 deletions(-)
251
252commit 7e53c5bcb3c2c17f47c096c06ff6b1481e6ecafa
253Author: Lasse Collin <lasse.collin@tukaani.org>
254Date:   2022-12-01 20:57:26 +0200
255
256    Add NEWS for 5.3.5beta.
257
258 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
259 1 file changed, 43 insertions(+)
260
261commit 5865f2aaac326fcbd9f8a7d62defa230e4cb644e
262Author: Lasse Collin <lasse.collin@tukaani.org>
263Date:   2022-12-01 20:57:09 +0200
264
265    Update THANKS.
266
267 THANKS | 3 +++
268 1 file changed, 3 insertions(+)
269
270commit 62b270988ec67314d69976df484d2974c6eacfda
271Author: Lasse Collin <lasse.collin@tukaani.org>
272Date:   2022-12-01 20:04:17 +0200
273
274    liblzma: Use __has_attribute(__symver__) to fix Clang detection.
275
276    If someone sets up Clang to define __GNUC__ to 10 or greater
277    then symvers broke. __has_attribute is supported by such GCC
278    and Clang versions that don't support __symver__ so this should
279    be much better and simpler way to detect if __symver__ is
280    actually supported.
281
282    Thanks to Tomasz Gajc for the bug report.
283
284 src/liblzma/common/common.h | 15 ++++++++++++++-
285 1 file changed, 14 insertions(+), 1 deletion(-)
286
287commit f9ca7d45162664ddd9fb70e19335c2426e5d75bb
288Author: Lasse Collin <lasse.collin@tukaani.org>
289Date:   2022-12-01 18:51:52 +0200
290
291    liblzma: Omit zero-skipping from ARM64 filter.
292
293    It has some complicated downsides and its usefulness is more limited
294    than I originally thought. So this change is bad for certain very
295    specific situations but a generic solution that works for other
296    filters (and is otherwise better too) is planned anyway. And this
297    way 7-Zip can use the same compatible filter for the .7z format.
298
299    This is still marked as experimental with a new temporary Filter ID.
300
301 src/liblzma/api/lzma/bcj.h |  2 +-
302 src/liblzma/simple/arm64.c | 81 +++++++++++++---------------------------------
303 2 files changed, 24 insertions(+), 59 deletions(-)
304
305commit 5baec3f0a9c85e6abf45c0f652f699b074129a8b
306Author: Lasse Collin <lasse.collin@tukaani.org>
307Date:   2022-12-01 18:13:27 +0200
308
309    xz: Omit the special notes about ARM64 filter on the man page.
310
311 src/xz/xz.1 | 5 ++---
312 1 file changed, 2 insertions(+), 3 deletions(-)
313
314commit 0c3627b51862eb0dcdd4fc283d046250571991c6
315Author: Lasse Collin <lasse.collin@tukaani.org>
316Date:   2022-12-01 18:12:03 +0200
317
318    liblzma: Don't be over-specific in lzma_str_to_filters API doc.
319
320 src/liblzma/api/lzma/filter.h | 3 +--
321 1 file changed, 1 insertion(+), 2 deletions(-)
322
323commit 94adf057f27b1970f493dc99cd166407d7255639
324Author: Lasse Collin <lasse.collin@tukaani.org>
325Date:   2022-12-01 17:54:23 +0200
326
327    liblzma: Silence unused variable warning when BCJ filters are disabled.
328
329    Thanks to Jia Tan for the original patch.
330
331 src/liblzma/common/string_conversion.c | 15 +++++++++++++++
332 1 file changed, 15 insertions(+)
333
334commit c68af4441744e5ffc41a472e1be9c9d53a1d9780
335Author: Lasse Collin <lasse.collin@tukaani.org>
336Date:   2022-12-01 17:38:03 +0200
337
338    Translations: Update the Chinese (simplified) translation.
339
340 po/zh_CN.po | 608 ++++++++++++++++++++++++++++++++++--------------------------
341 1 file changed, 348 insertions(+), 260 deletions(-)
342
343commit 3be6942e5c27d29995d41da52fbe274e4ce4a537
344Author: Lasse Collin <lasse.collin@tukaani.org>
345Date:   2022-11-30 18:55:03 +0200
346
347    Add NEWS for 5.2.9.
348
349 NEWS | 34 ++++++++++++++++++++++++++++++++++
350 1 file changed, 34 insertions(+)
351
352commit 7c16e312cb2f40b81154c0e5be13a3c6b8da485d
353Author: Jia Tan <jiat0218@gmail.com>
354Date:   2022-11-30 23:33:08 +0800
355
356    xz: Remove message_filters_to_str function prototype from message.h.
357
358    This was forgotten from 7484744af6cbabe81e92af7d9e061dfd597fff7b.
359
360 src/xz/message.h | 16 ----------------
361 1 file changed, 16 deletions(-)
362
363commit 764955e2d4f2a5e8d6d6fec63af694f799e050e7
364Author: Lasse Collin <lasse.collin@tukaani.org>
365Date:   2022-11-30 18:08:34 +0200
366
367    Change the bug report address.
368
369    It forwards to me and Jia Tan.
370
371    Also update the IRC reference in README as #tukaani was moved
372    to Libera Chat long ago.
373
374 CMakeLists.txt             |  2 +-
375 README                     | 11 +++++------
376 configure.ac               |  2 +-
377 dos/config.h               |  2 +-
378 windows/README-Windows.txt |  2 +-
379 5 files changed, 9 insertions(+), 10 deletions(-)
380
381commit c21983c76031e01da01ad3c6cc716fe4b8a75070
382Author: Lasse Collin <lasse.collin@tukaani.org>
383Date:   2022-11-30 17:50:17 +0200
384
385    Build: Add string_conversion.c to CMake, DOS, and VS files.
386
387 CMakeLists.txt                     | 1 +
388 dos/Makefile                       | 1 +
389 windows/vs2013/liblzma.vcxproj     | 1 +
390 windows/vs2013/liblzma_dll.vcxproj | 1 +
391 windows/vs2017/liblzma.vcxproj     | 1 +
392 windows/vs2017/liblzma_dll.vcxproj | 1 +
393 windows/vs2019/liblzma.vcxproj     | 1 +
394 windows/vs2019/liblzma_dll.vcxproj | 1 +
395 8 files changed, 8 insertions(+)
396
397commit 30be0c35d24eb5175459d69dbf7d92e2b087ef82
398Author: Lasse Collin <lasse.collin@tukaani.org>
399Date:   2022-11-30 17:38:32 +0200
400
401    Update to HTTPS URLs in AUTHORS.
402
403 AUTHORS | 6 +++---
404 1 file changed, 3 insertions(+), 3 deletions(-)
405
406commit 0a72b9ca2fe20082da9b7128fe0d908af947a851
407Author: Jia Tan <jiat0218@gmail.com>
408Date:   2022-11-30 00:52:06 +0800
409
410    liblzma: Improve documentation for string to filter functions.
411
412 src/liblzma/api/lzma/filter.h | 17 +++++++++--------
413 1 file changed, 9 insertions(+), 8 deletions(-)
414
415commit a6e21fcede3b196160a52dd294d965c508a4bb33
416Author: Lasse Collin <lasse.collin@tukaani.org>
417Date:   2022-11-29 22:27:42 +0200
418
419    liblzma: Two fixes to lzma_str_list_filters() API docs.
420
421    Thanks to Jia Tan.
422
423 src/liblzma/api/lzma/filter.h | 6 +++---
424 1 file changed, 3 insertions(+), 3 deletions(-)
425
426commit 7484744af6cbabe81e92af7d9e061dfd597fff7b
427Author: Lasse Collin <lasse.collin@tukaani.org>
428Date:   2022-11-28 21:57:47 +0200
429
430    xz: Use lzma_str_from_filters().
431
432    Two uses: Displaying encoder filter chain when compressing with -vv,
433    and displaying the decoder filter chain in --list -vv.
434
435 src/xz/list.c    |  28 ++++++---
436 src/xz/message.c | 175 +++----------------------------------------------------
437 2 files changed, 28 insertions(+), 175 deletions(-)
438
439commit cedeeca2ea6ada5b0411b2ae10d7a859e837f203
440Author: Lasse Collin <lasse.collin@tukaani.org>
441Date:   2022-11-28 21:37:48 +0200
442
443    liblzma: Add lzma_str_to_filters, _from_filters, and _list_filters.
444
445    lzma_str_to_filters() uses static error messages which makes
446    them not very precise. It tells the position in the string
447    where an error occurred though which helps quite a bit if
448    applications take advantage of it. Dynamic error messages can
449    be added later with a new flag if it seems important enough.
450
451 src/liblzma/api/lzma/filter.h          |  258 +++++++
452 src/liblzma/common/Makefile.inc        |    1 +
453 src/liblzma/common/string_conversion.c | 1302 ++++++++++++++++++++++++++++++++
454 src/liblzma/liblzma_generic.map        |    3 +
455 src/liblzma/liblzma_linux.map          |    3 +
456 5 files changed, 1567 insertions(+)
457
458commit 072ebf7b1335421193ffa9d4a70d5533786b8995
459Author: Lasse Collin <lasse.collin@tukaani.org>
460Date:   2022-11-28 21:02:19 +0200
461
462    liblzma: Make lzma_validate_chain() available outside filter_common.c.
463
464 src/liblzma/common/filter_common.c | 8 ++++----
465 src/liblzma/common/filter_common.h | 3 +++
466 2 files changed, 7 insertions(+), 4 deletions(-)
467
468commit 5f22bd2d37e3bd01a5d701b51750eb51f09c11bf
469Author: Lasse Collin <lasse.collin@tukaani.org>
470Date:   2022-11-28 10:51:03 +0200
471
472    liblzma: Remove lzma_lz_decoder_uncompressed() as it's now unused.
473
474 src/liblzma/lz/lz_decoder.c | 14 --------------
475 src/liblzma/lz/lz_decoder.h |  3 ---
476 2 files changed, 17 deletions(-)
477
478commit cee83206465b95729ab649aa2f57fdbde8dcaf89
479Author: Lasse Collin <lasse.collin@tukaani.org>
480Date:   2022-11-28 10:48:53 +0200
481
482    liblzma: Use LZMA1EXT feature in lzma_microlzma_decoder().
483
484    Here too this avoids the slightly ugly method to set
485    the uncompressed size.
486
487    Also moved the setting of dict_size to the struct initializer.
488
489 src/liblzma/common/microlzma_decoder.c | 15 ++++++++-------
490 1 file changed, 8 insertions(+), 7 deletions(-)
491
492commit e310e8b6a490dfb468f4ed68feff246d776b323c
493Author: Lasse Collin <lasse.collin@tukaani.org>
494Date:   2022-11-28 10:28:20 +0200
495
496    liblzma: Use LZMA1EXT feature in lzma_alone_decoder().
497
498    This avoids the need to use the slightly ugly method to
499    set the uncompressed size.
500
501 src/liblzma/common/alone_decoder.c | 18 +++++++++++++-----
502 1 file changed, 13 insertions(+), 5 deletions(-)
503
504commit 33b8a24b6646a9dbfd8358405aec466b13078559
505Author: Lasse Collin <lasse.collin@tukaani.org>
506Date:   2022-11-27 23:16:21 +0200
507
508    liblzma: Add LZMA_FILTER_LZMA1EXT to support LZMA1 without end marker.
509
510    Some file formats need support for LZMA1 streams that don't use
511    the end of payload marker (EOPM) alias end of stream (EOS) marker.
512    So far liblzma API has supported decompressing such streams via
513    lzma_alone_decoder() when .lzma header specifies a known
514    uncompressed size. Encoding support hasn't been available in the API.
515
516    Instead of adding a new LZMA1-only API for this purpose, this commit
517    adds a new filter ID for use with raw encoder and decoder. The main
518    benefit of this approach is that then also filter chains are possible,
519    for example, if someone wants to implement support for .7z files that
520    use the x86 BCJ filter with LZMA1 (not BCJ2 as that isn't supported
521    in liblzma).
522
523 src/liblzma/api/lzma/lzma12.h           | 123 ++++++++++++++++++++++++++++++--
524 src/liblzma/common/filter_common.c      |   7 ++
525 src/liblzma/common/filter_decoder.c     |   6 ++
526 src/liblzma/common/filter_encoder.c     |   9 +++
527 src/liblzma/lzma/lzma2_encoder.c        |   2 +-
528 src/liblzma/lzma/lzma_decoder.c         |  26 ++++++-
529 src/liblzma/lzma/lzma_encoder.c         |  40 +++++++++--
530 src/liblzma/lzma/lzma_encoder.h         |   3 +-
531 src/liblzma/lzma/lzma_encoder_private.h |   3 +
532 9 files changed, 204 insertions(+), 15 deletions(-)
533
534commit 9a304bf1e45b3ddf61aaeaa7c764915b34618ede
535Author: Lasse Collin <lasse.collin@tukaani.org>
536Date:   2022-11-27 18:43:07 +0200
537
538    liblzma: Avoid unneeded use of void pointer in LZMA decoder.
539
540 src/liblzma/lzma/lzma_decoder.c | 3 +--
541 src/liblzma/lzma/lzma_decoder.h | 2 +-
542 2 files changed, 2 insertions(+), 3 deletions(-)
543
544commit 218394958c7683f892275bb40eae880620feebcc
545Author: Lasse Collin <lasse.collin@tukaani.org>
546Date:   2022-11-27 18:20:33 +0200
547
548    liblzma: Pass the Filter ID to LZ encoder and decoder.
549
550    This allows using two Filter IDs with the same
551    initialization function and data structures.
552
553 src/liblzma/common/alone_decoder.c     | 1 +
554 src/liblzma/common/alone_encoder.c     | 1 +
555 src/liblzma/common/common.h            | 7 +++++--
556 src/liblzma/common/lzip_decoder.c      | 1 +
557 src/liblzma/common/microlzma_decoder.c | 1 +
558 src/liblzma/common/microlzma_encoder.c | 1 +
559 src/liblzma/lz/lz_decoder.c            | 5 +++--
560 src/liblzma/lz/lz_decoder.h            | 3 ++-
561 src/liblzma/lz/lz_encoder.c            | 5 +++--
562 src/liblzma/lz/lz_encoder.h            | 3 ++-
563 src/liblzma/lzma/lzma2_decoder.c       | 3 ++-
564 src/liblzma/lzma/lzma2_encoder.c       | 3 ++-
565 src/liblzma/lzma/lzma_decoder.c        | 2 +-
566 src/liblzma/lzma/lzma_encoder.c        | 2 +-
567 14 files changed, 26 insertions(+), 12 deletions(-)
568
569commit 1663c7676b76f4c514031797f3db1896e8100f7f
570Author: Lasse Collin <lasse.collin@tukaani.org>
571Date:   2022-11-27 01:03:16 +0200
572
573    liblzma: Remove two FIXME comments.
574
575 src/liblzma/common/filter_encoder.c | 4 ++--
576 1 file changed, 2 insertions(+), 2 deletions(-)
577
578commit 11fe708db783ac36ebeeb85da164e29e8c300910
579Author: Lasse Collin <lasse.collin@tukaani.org>
580Date:   2022-11-26 22:25:30 +0200
581
582    xz: Use lzma_filters_free().
583
584 src/xz/list.c | 8 ++------
585 1 file changed, 2 insertions(+), 6 deletions(-)
586
587commit e782af9110d8499c7ac2929bc871540eefea5ea1
588Author: Lasse Collin <lasse.collin@tukaani.org>
589Date:   2022-11-26 22:21:13 +0200
590
591    liblzma: Use lzma_filters_free() in more places.
592
593 src/liblzma/common/block_header_decoder.c | 20 ++------------------
594 src/liblzma/common/stream_decoder.c       |  4 +---
595 src/liblzma/common/stream_decoder_mt.c    | 22 +++++-----------------
596 3 files changed, 8 insertions(+), 38 deletions(-)
597
598commit 90caaded2dc6db1d6a55b01160d7e87f4a423628
599Author: Lasse Collin <lasse.collin@tukaani.org>
600Date:   2022-11-25 18:04:37 +0200
601
602    liblzma: Omit simple coder init functions if they are disabled.
603
604 src/liblzma/simple/arm.c      | 4 ++++
605 src/liblzma/simple/armthumb.c | 4 ++++
606 src/liblzma/simple/ia64.c     | 4 ++++
607 src/liblzma/simple/powerpc.c  | 4 ++++
608 src/liblzma/simple/sparc.c    | 4 ++++
609 src/liblzma/simple/x86.c      | 4 ++++
610 6 files changed, 24 insertions(+)
611
612commit 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
613Author: Lasse Collin <lasse.collin@tukaani.org>
614Date:   2022-11-24 23:24:59 +0200
615
616    xz: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
617
618    Now that liblzma accepts these, we avoid the extra check and
619    there's one message less for translators too.
620
621 src/xz/options.c | 5 -----
622 1 file changed, 5 deletions(-)
623
624commit 3be88ae071371caa279b44e13f4836fb178fe4ae
625Author: Lasse Collin <lasse.collin@tukaani.org>
626Date:   2022-11-24 23:23:55 +0200
627
628    liblzma: Allow nice_len 2 and 3 even if match finder requires 3 or 4.
629
630    That is, if the specified nice_len is smaller than the minimum
631    of the match finder, silently use the match finder's minimum value
632    instead of reporting an error. The old behavior is annoying to users
633    and it complicates xz options handling too.
634
635 src/liblzma/lz/lz_encoder.c     | 14 +++++++++-----
636 src/liblzma/lz/lz_encoder.h     |  9 +++++++++
637 src/liblzma/lzma/lzma_encoder.c | 11 ++++++++---
638 3 files changed, 26 insertions(+), 8 deletions(-)
639
640commit 93439cfafe1768b3b18d67d2356ef7e7559bba59
641Author: Lasse Collin <lasse.collin@tukaani.org>
642Date:   2022-11-24 16:25:10 +0200
643
644    liblzma: Add lzma_filters_update() support to the multi-threaded encoder.
645
646    A tiny downside of this is that now a 1-4 tiny allocations are made
647    for every Block because each worker thread needs its own copy of
648    the filter chain.
649
650 src/liblzma/api/lzma/filter.h          | 36 +++++++------
651 src/liblzma/common/stream_encoder_mt.c | 96 +++++++++++++++++++++++++++++++---
652 2 files changed, 109 insertions(+), 23 deletions(-)
653
654commit 17ac51e689794eb41cab3e80946fec689caea2d2
655Author: Lasse Collin <lasse.collin@tukaani.org>
656Date:   2022-11-24 14:53:22 +0200
657
658    Update THANKS.
659
660 THANKS | 1 +
661 1 file changed, 1 insertion(+)
662
663commit 06824396b2b6c84f3a235cb7c19c2a9701167797
664Author: Lasse Collin <lasse.collin@tukaani.org>
665Date:   2022-11-24 14:52:44 +0200
666
667    Build: Don't put GNU/Linux-specific symbol versions into static liblzma.
668
669    It not only makes no sense to put symbol versions into a static library
670    but it can also cause breakage.
671
672    By default Libtool #defines PIC if building a shared library and
673    doesn't define it for static libraries. This is documented in the
674    Libtool manual. It can be overriden using --with-pic or --without-pic.
675    configure.ac detects if --with-pic or --without-pic is used and then
676    gives an error if neither --disable-shared nor --disable-static was
677    used at the same time. Thus, in normal situations it works to build
678    both shared and static library at the same time on GNU/Linux,
679    only --with-pic or --without-pic requires that only one type of
680    library is built.
681
682    Thanks to John Paul Adrian Glaubitz from Debian for reporting
683    the problem that occurred on ia64:
684    https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
685
686 CMakeLists.txt              |   5 +-
687 configure.ac                | 143 +++++++++++++++++++++++++++++---------------
688 src/liblzma/common/common.h |  12 ++++
689 3 files changed, 111 insertions(+), 49 deletions(-)
690
691commit e1acf7107291f8b3d6d609a7133331ff36d35d14
692Author: Lasse Collin <lasse.collin@tukaani.org>
693Date:   2022-11-24 01:32:16 +0200
694
695    liblzma: Refactor to use lzma_filters_free().
696
697    lzma_filters_free() sets the options to NULL and ids to
698    LZMA_VLI_UNKNOWN so there is no need to do it by caller;
699    the filter arrays will always be left in a safe state.
700
701    Also use memcpy() instead of a loop to copy a filter chain
702    when it is known to be safe to copy LZMA_FILTERS_MAX + 1
703    (even if the elements past the terminator might be uninitialized).
704
705 src/liblzma/common/stream_encoder.c    | 16 ++++------------
706 src/liblzma/common/stream_encoder_mt.c | 11 ++---------
707 2 files changed, 6 insertions(+), 21 deletions(-)
708
709commit cb05dbcf8b868441ec805016222f3fd77f1c5caa
710Author: Lasse Collin <lasse.collin@tukaani.org>
711Date:   2022-11-24 01:26:37 +0200
712
713    liblzma: Fix another invalid free() after memory allocation failure.
714
715    This time it can happen when lzma_stream_encoder_mt() is used
716    to reinitialize an existing multi-threaded Stream encoder
717    and one of 1-4 tiny allocations in lzma_filters_copy() fail.
718
719    It's very similar to the previous bug
720    10430fbf3820dafd4eafd38ec8be161a6978ed2b, happening with
721    an array of lzma_filter structures whose old options are freed
722    but the replacement never arrives due to a memory allocation
723    failure in lzma_filters_copy().
724
725 src/liblzma/common/stream_encoder_mt.c | 4 ++++
726 1 file changed, 4 insertions(+)
727
728commit 75f1a6c26df4ce329da0882786403e3ccf5cd898
729Author: Jia Tan <jiat0218@gmail.com>
730Date:   2022-05-05 20:53:42 +0800
731
732    liblzma: Add support for LZMA_SYNC_FLUSH in the Block encoder.
733
734    The documentation mentions that lzma_block_encoder() supports
735    LZMA_SYNC_FLUSH but it was never added to supported_actions[]
736    in the internal structure. Because of this, LZMA_SYNC_FLUSH could
737    not be used with the Block encoder unless it was the next coder
738    after something like stream_encoder() or stream_encoder_mt().
739
740 src/liblzma/common/block_encoder.c | 1 +
741 1 file changed, 1 insertion(+)
742
743commit d0901645170b638c517f5c50866b6ef48f491c65
744Author: Lasse Collin <lasse.collin@tukaani.org>
745Date:   2022-11-24 01:02:50 +0200
746
747    liblzma: Add new API function lzma_filters_free().
748
749    This is small but convenient and should have been added
750    a long time ago.
751
752 src/liblzma/api/lzma/filter.h      | 21 +++++++++++++++++++++
753 src/liblzma/common/filter_common.c | 26 ++++++++++++++++++++++++++
754 src/liblzma/liblzma_generic.map    |  1 +
755 src/liblzma/liblzma_linux.map      |  1 +
756 4 files changed, 49 insertions(+)
757
758commit ae1f8a723dcde2f2c5cf444bcbb5fc5026b3c3c5
759Author: Lasse Collin <lasse.collin@tukaani.org>
760Date:   2022-11-24 00:02:31 +0200
761
762    CMake: Don't use symbol versioning with static library.
763
764 CMakeLists.txt | 10 +++++++---
765 1 file changed, 7 insertions(+), 3 deletions(-)
766
767commit 48c1b99dc537a27e1ca929d8837e778e5ba32191
768Author: Lasse Collin <lasse.collin@tukaani.org>
769Date:   2022-11-23 21:55:22 +0200
770
771    liblzma: Add lzma_attr_warn_unused_result to lzma_filters_copy().
772
773 src/liblzma/api/lzma/filter.h | 3 ++-
774 1 file changed, 2 insertions(+), 1 deletion(-)
775
776commit 10430fbf3820dafd4eafd38ec8be161a6978ed2b
777Author: Lasse Collin <lasse.collin@tukaani.org>
778Date:   2022-11-23 21:26:21 +0200
779
780    liblzma: Fix invalid free() after memory allocation failure.
781
782    The bug was in the single-threaded .xz Stream encoder
783    in the code that is used for both re-initialization and for
784    lzma_filters_update(). To trigger it, an application had
785    to either re-initialize an existing encoder instance with
786    lzma_stream_encoder() or use lzma_filters_update(), and
787    then one of the 1-4 tiny allocations in lzma_filters_copy()
788    (called from stream_encoder_update()) must fail. An error
789    was correctly reported but the encoder state was corrupted.
790
791    This is related to the recent fix in
792    f8ee61e74eb40600445fdb601c374d582e1e9c8a which is good but
793    it wasn't enough to fix the main problem in stream_encoder.c.
794
795 src/liblzma/common/stream_encoder.c | 39 +++++++++++++++++++++++++++++--------
796 1 file changed, 31 insertions(+), 8 deletions(-)
797
798commit cafd6dc397ca8b5b5f7775e8d6876b8fe70f8e70
799Author: Lasse Collin <lasse.collin@tukaani.org>
800Date:   2022-11-22 16:37:15 +0200
801
802    liblzma: Fix language in a comment.
803
804 src/liblzma/common/stream_encoder.c | 2 +-
805 1 file changed, 1 insertion(+), 1 deletion(-)
806
807commit c392bf8ccba857baaf50399c4b460119befacd54
808Author: Lasse Collin <lasse.collin@tukaani.org>
809Date:   2022-11-22 11:20:17 +0200
810
811    liblzma: Fix infinite loop in LZMA encoder init with dict_size >= 2 GiB.
812
813    The encoder doesn't support dictionary sizes larger than 1536 MiB.
814    This is validated, for example, when calculating the memory usage
815    via lzma_raw_encoder_memusage(). It is also enforced by the LZ
816    part of the encoder initialization. However, LZMA encoder with
817    LZMA_MODE_NORMAL did an unsafe calculation with dict_size before
818    such validation and that results in an infinite loop if dict_size
819    was 2 << 30 or greater.
820
821 src/liblzma/lzma/lzma_encoder.c | 19 +++++++++++++++----
822 1 file changed, 15 insertions(+), 4 deletions(-)
823
824commit f50534c973a591ccf65485adfc827a8a7126ca6c
825Author: Lasse Collin <lasse.collin@tukaani.org>
826Date:   2022-11-21 13:02:33 +0200
827
828    liblzma: Fix two Doxygen commands in the API headers.
829
830    These were caught by clang -Wdocumentation.
831
832 src/liblzma/api/lzma/hardware.h   | 2 +-
833 src/liblzma/api/lzma/index_hash.h | 2 +-
834 2 files changed, 2 insertions(+), 2 deletions(-)
835
836commit 649d4872ed2f55196114a061d45b416fc4353569
837Author: Lasse Collin <lasse.collin@tukaani.org>
838Date:   2022-11-19 19:09:55 +0200
839
840    xz: Refactor duplicate code from hardware_memlimit_mtenc_get().
841
842 src/xz/hardware.c | 2 +-
843 1 file changed, 1 insertion(+), 1 deletion(-)
844
845commit d327743bb547a53364e5951a16e5f1663fe4b9ff
846Author: Lasse Collin <lasse.collin@tukaani.org>
847Date:   2022-11-19 19:06:13 +0200
848
849    xz: Add support --threads=+N so that -T+1 gives threaded mode.
850
851 src/xz/args.c     | 18 +++++++++++++++---
852 src/xz/hardware.c | 17 +++++++++++++++--
853 src/xz/hardware.h |  1 +
854 src/xz/xz.1       | 21 ++++++++++++++++++++-
855 4 files changed, 51 insertions(+), 6 deletions(-)
856
857commit a11a2b8b5e830ba682c1d81aaa7078842b296995
858Author: Jia Tan <jiat0218@gmail.com>
859Date:   2022-11-19 23:18:04 +0800
860
861    CMake: Adds test_memlimit to CMake tests
862
863 CMakeLists.txt | 1 +
864 1 file changed, 1 insertion(+)
865
866commit 2af8d9e9b3f44f62d19e7c39297ec63af2e8c64f
867Author: Lasse Collin <lasse.collin@tukaani.org>
868Date:   2022-11-15 19:10:21 +0200
869
870    Translations: Update the Korean translation.
871
872 po/ko.po | 652 ++++++++++++++++++++++++++++++++++++---------------------------
873 1 file changed, 371 insertions(+), 281 deletions(-)
874
875commit 16ac05677292f7e21a4feaddcfb2ab062ea5f385
876Author: Lasse Collin <lasse.collin@tukaani.org>
877Date:   2022-11-15 19:09:28 +0200
878
879    Translations: Update the Turkish translation.
880
881 po/tr.po | 568 ++++++++++++++++++++++++++++++++++-----------------------------
882 1 file changed, 310 insertions(+), 258 deletions(-)
883
884commit b9a67d9a5fa207062d4aa8a01639234609315d31
885Author: Lasse Collin <lasse.collin@tukaani.org>
886Date:   2022-11-15 10:58:39 +0200
887
888    Bump version number for 5.3.4alpha.
889
890 src/liblzma/api/lzma/version.h  | 2 +-
891 src/liblzma/liblzma_generic.map | 2 +-
892 src/liblzma/liblzma_linux.map   | 2 +-
893 3 files changed, 3 insertions(+), 3 deletions(-)
894
895commit 5b999ba289b3280457b7386b9ac65dbbdf1575a5
896Author: Lasse Collin <lasse.collin@tukaani.org>
897Date:   2022-11-15 10:54:40 +0200
898
899    Add NEWS for 5.3.4alpha.
900
901 NEWS | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
902 1 file changed, 96 insertions(+)
903
904commit ce8db9e37da4f6c87691c5066f51f91f2411c44a
905Author: Lasse Collin <lasse.collin@tukaani.org>
906Date:   2022-11-15 10:54:08 +0200
907
908    Add NEWS for 5.2.8.
909
910 NEWS | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
911 1 file changed, 79 insertions(+)
912
913commit b56bc8251d2736224af6bdaaae734ceb8926a879
914Author: Lasse Collin <lasse.collin@tukaani.org>
915Date:   2022-11-14 23:19:57 +0200
916
917    Revert "liblzma: Simple/BCJ filters: Allow disabling generic BCJ options."
918
919    This reverts commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
920    and also does equivalent change to arm64.c.
921
922    Now that ARM64 filter will use lzma_options_bcj, this change
923    is not needed anymore.
924
925 src/liblzma/simple/arm.c            | 2 +-
926 src/liblzma/simple/arm64.c          | 2 +-
927 src/liblzma/simple/armthumb.c       | 2 +-
928 src/liblzma/simple/ia64.c           | 2 +-
929 src/liblzma/simple/powerpc.c        | 2 +-
930 src/liblzma/simple/simple_coder.c   | 4 ++--
931 src/liblzma/simple/simple_private.h | 2 +-
932 src/liblzma/simple/sparc.c          | 2 +-
933 src/liblzma/simple/x86.c            | 3 +--
934 9 files changed, 10 insertions(+), 11 deletions(-)
935
936commit 8370ec8edf9ddf8d1d9fef03d8d1027503ec4c35
937Author: Lasse Collin <lasse.collin@tukaani.org>
938Date:   2022-11-14 23:14:41 +0200
939
940    Replace the experimental ARM64 filter with a new experimental version.
941
942    This is incompatible with the previous version.
943
944    This has space/tab fixes in filter_*.c and bcj.h too.
945
946 src/liblzma/api/lzma/bcj.h          |  41 +-----
947 src/liblzma/common/filter_common.c  |  14 +-
948 src/liblzma/common/filter_decoder.c |  12 +-
949 src/liblzma/common/filter_encoder.c |  17 +--
950 src/liblzma/simple/arm64.c          | 283 ++++++++++++++----------------------
951 src/liblzma/simple/simple_decoder.h |   4 -
952 src/liblzma/simple/simple_encoder.h |   2 -
953 src/xz/args.c                       |   2 +-
954 src/xz/message.c                    |  13 +-
955 src/xz/options.c                    |  39 -----
956 src/xz/options.h                    |   7 -
957 11 files changed, 147 insertions(+), 287 deletions(-)
958
959commit f644473a211394447824ea00518d0a214ff3f7f2
960Author: Lasse Collin <lasse.collin@tukaani.org>
961Date:   2022-11-14 21:34:57 +0200
962
963    liblzma: Add fast CRC64 for 32/64-bit x86 using SSSE3 + SSE4.1 + CLMUL.
964
965    It also works on E2K as it supports these intrinsics.
966
967    On x86-64 runtime detection is used so the code keeps working on
968    older processors too. A CLMUL-only build can be done by using
969    -msse4.1 -mpclmul in CFLAGS and this will reduce the library
970    size since the generic implementation and its 8 KiB lookup table
971    will be omitted.
972
973    On 32-bit x86 this isn't used by default for now because by default
974    on 32-bit x86 the separate assembly file crc64_x86.S is used.
975    If --disable-assembler is used then this new CLMUL code is used
976    the same way as on 64-bit x86. However, a CLMUL-only build
977    (-msse4.1 -mpclmul) won't omit the 8 KiB lookup table on
978    32-bit x86 due to a currently-missing check for disabled
979    assembler usage.
980
981    The configure.ac check should be such that the code won't be
982    built if something in the toolchain doesn't support it but
983    --disable-clmul-crc option can be used to unconditionally
984    disable this feature.
985
986    CLMUL speeds up decompression of files that have compressed very
987    well (assuming CRC64 is used as a check type). It is know that
988    the CLMUL code is significantly slower than the generic code for
989    tiny inputs (especially 1-8 bytes but up to 16 bytes). If that
990    is a real-world problem then there is already a commented-out
991    variant that uses the generic version for small inputs.
992
993    Thanks to Ilya Kurdyukov for the original patch which was
994    derived from a white paper from Intel [1] (published in 2009)
995    and public domain code from [2] (released in 2016).
996
997    [1] https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf
998    [2] https://github.com/rawrunprotected/crc
999
1000 CMakeLists.txt                  |  26 ++-
1001 INSTALL                         |  12 ++
1002 configure.ac                    |  59 +++++-
1003 src/liblzma/check/crc64_fast.c  | 449 +++++++++++++++++++++++++++++++++++++++-
1004 src/liblzma/check/crc64_table.c |  21 +-
1005 5 files changed, 554 insertions(+), 13 deletions(-)
1006
1007commit 3b466bc79672bb2b06d1245a500588e6026e0ba0
1008Author: Lasse Collin <lasse.collin@tukaani.org>
1009Date:   2022-11-14 20:14:34 +0200
1010
1011    Translations: Update the Swedish translation one more time.
1012
1013 po/sv.po | 6 +++---
1014 1 file changed, 3 insertions(+), 3 deletions(-)
1015
1016commit e963379a8622ebdff6ce78e76b803bcd1e1d16d6
1017Author: Lasse Collin <lasse.collin@tukaani.org>
1018Date:   2022-11-14 19:34:15 +0200
1019
1020    Translations: Update the Swedish translation again.
1021
1022 po/sv.po | 16 ++++++++--------
1023 1 file changed, 8 insertions(+), 8 deletions(-)
1024
1025commit a4bc689a823a2254f29ac9d233170add5121b307
1026Author: Lasse Collin <lasse.collin@tukaani.org>
1027Date:   2022-11-14 19:07:45 +0200
1028
1029    Translations: Update the Swedish translation.
1030
1031 po/sv.po | 671 ++++++++++++++++++++++++++++++++++++---------------------------
1032 1 file changed, 382 insertions(+), 289 deletions(-)
1033
1034commit bbf2073d824ab4ba33bed4b77f467435abd333a5
1035Author: Lasse Collin <lasse.collin@tukaani.org>
1036Date:   2022-11-14 18:58:09 +0200
1037
1038    Translations: Update the Ukrainian translation.
1039
1040 po/uk.po | 618 ++++++++++++++++++++++++++++++++++++---------------------------
1041 1 file changed, 354 insertions(+), 264 deletions(-)
1042
1043commit ac10b1b3622e70881595586edfb8a3ebdcd76bb6
1044Author: Lasse Collin <lasse.collin@tukaani.org>
1045Date:   2022-11-14 17:58:07 +0200
1046
1047    Build: Omit x86_64 from --enable-assembler.
1048
1049    It didn't do anything. There are only 32-bit x86 assembly files
1050    and it feels likely that new files won't be added as intrinsics
1051    in C are more portable across toolchains and OSes.
1052
1053 configure.ac | 6 ++----
1054 1 file changed, 2 insertions(+), 4 deletions(-)
1055
1056commit eb0f1450ad9f23dac03050d9c8375980240aee21
1057Author: Lasse Collin <lasse.collin@tukaani.org>
1058Date:   2022-11-14 16:00:52 +0200
1059
1060    liblzma: Use __attribute__((__constructor__)) if available.
1061
1062    This uses it for CRC table initializations when using --disable-small.
1063    It avoids mythread_once() overhead. It also means that then
1064    --disable-small --disable-threads is thread-safe if this attribute
1065    is supported.
1066
1067 CMakeLists.txt                  | 15 +++++++++++++++
1068 INSTALL                         |  4 +++-
1069 configure.ac                    | 31 ++++++++++++++++++++++++++++---
1070 src/liblzma/check/crc32_small.c |  7 +++++++
1071 src/liblzma/check/crc64_small.c |  5 +++++
1072 src/liblzma/lz/lz_encoder.c     |  2 +-
1073 6 files changed, 59 insertions(+), 5 deletions(-)
1074
1075commit 6553f49b11dafad35c73b05f12e14865ea1fd8a1
1076Author: Lasse Collin <lasse.collin@tukaani.org>
1077Date:   2022-11-12 21:19:52 +0200
1078
1079    Translations: Update the Romanian translation.
1080
1081 po/ro.po | 651 +++++++++++++++++++++++++++++++++++++--------------------------
1082 1 file changed, 380 insertions(+), 271 deletions(-)
1083
1084commit db97e69e12393becc29f8febd53133d0d36989bd
1085Author: Lasse Collin <lasse.collin@tukaani.org>
1086Date:   2022-11-12 21:17:45 +0200
1087
1088    Translations: Update the Hungarian translation.
1089
1090 po/hu.po | 625 ++++++++++++++++++++++++++++++++++++---------------------------
1091 1 file changed, 357 insertions(+), 268 deletions(-)
1092
1093commit 2bbb9c0f3829a8b121b36998d273a6c6f92000f4
1094Author: Lasse Collin <lasse.collin@tukaani.org>
1095Date:   2022-11-11 17:58:57 +0200
1096
1097    Translations: Update the Finnish translation.
1098
1099 po/fi.po | 610 ++++++++++++++++++++++++++++++++++++---------------------------
1100 1 file changed, 348 insertions(+), 262 deletions(-)
1101
1102commit 3c8cbb8137b6f8ed9416c1209d73cdbcb015251f
1103Author: Lasse Collin <lasse.collin@tukaani.org>
1104Date:   2022-11-11 17:58:18 +0200
1105
1106    Translations: Update the Croatian translation.
1107
1108 po/hr.po | 680 +++++++++++++++++++++++++++++++++++----------------------------
1109 1 file changed, 381 insertions(+), 299 deletions(-)
1110
1111commit 26c3359eac0988d6f3986735cd1363bec1678e8e
1112Author: Lasse Collin <lasse.collin@tukaani.org>
1113Date:   2022-11-11 17:57:18 +0200
1114
1115    Translations: Update the Polish translation.
1116
1117 po/pl.po | 569 ++++++++++++++++++++++++++++++++++-----------------------------
1118 1 file changed, 309 insertions(+), 260 deletions(-)
1119
1120commit 577e467b137c735afb8de6ae71ac7a73c2960cc4
1121Author: Lasse Collin <lasse.collin@tukaani.org>
1122Date:   2022-11-11 17:56:44 +0200
1123
1124    Translations: Update the Spanish translation.
1125
1126 po/es.po | 598 ++++++++++++++++++++++++++++++++++++---------------------------
1127 1 file changed, 344 insertions(+), 254 deletions(-)
1128
1129commit f9b4ff6e9a0f1678650775582d3e4fe782abce97
1130Author: Lasse Collin <lasse.collin@tukaani.org>
1131Date:   2022-11-11 17:16:03 +0200
1132
1133    Update THANKS.
1134
1135 THANKS | 1 +
1136 1 file changed, 1 insertion(+)
1137
1138commit a39961ef211e1bf030b17edeea3cff29fe263b67
1139Author: Lasse Collin <lasse.collin@tukaani.org>
1140Date:   2022-11-11 17:15:25 +0200
1141
1142    liblzma: Fix building with Intel ICC (the classic compiler).
1143
1144    It claims __GNUC__ >= 10 but doesn't support __symver__ attribute.
1145
1146    Thanks to Stephen Sachs.
1147
1148 src/liblzma/common/common.h | 2 +-
1149 1 file changed, 1 insertion(+), 1 deletion(-)
1150
1151commit c715f683dcb1a817d565da292cddfbceda643e12
1152Author: Lasse Collin <lasse.collin@tukaani.org>
1153Date:   2022-11-11 14:35:58 +0200
1154
1155    liblzma: Fix incorrect #ifdef for x86 SSE2 support.
1156
1157    __SSE2__ is the correct macro for SSE2 support with GCC, Clang,
1158    and ICC. __SSE2_MATH__ means doing floating point math with SSE2
1159    instead of 387. Often the latter macro is defined if the first
1160    one is but it was still a bug.
1161
1162 src/liblzma/common/memcmplen.h | 3 +--
1163 1 file changed, 1 insertion(+), 2 deletions(-)
1164
1165commit bd334ae56afe7f642ad4d0f1ac19e74e82daa1ce
1166Author: Lasse Collin <lasse.collin@tukaani.org>
1167Date:   2022-11-11 13:27:06 +0200
1168
1169    Add NEWS for 5.2.7 (forgotten cherry-pick from v5.2).
1170
1171 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1172 1 file changed, 74 insertions(+)
1173
1174commit 3c7860cf49de6f81046b3a4034a89f3a4803a576
1175Author: Lasse Collin <lasse.collin@tukaani.org>
1176Date:   2022-11-11 13:16:21 +0200
1177
1178    xzdiff: Add support for .lz files.
1179
1180    The other scripts don't need changes for .lz support because
1181    in those scripts it is enough that xz supports .lz.
1182
1183 src/scripts/xzdiff.in | 10 +++++-----
1184 1 file changed, 5 insertions(+), 5 deletions(-)
1185
1186commit d76c752a6d77052e5ad57ade555082585f7ac5d8
1187Author: Lasse Collin <lasse.collin@tukaani.org>
1188Date:   2022-11-11 12:23:58 +0200
1189
1190    Scripts: Ignore warnings from xz.
1191
1192    In practice this means making the scripts work when
1193    the input files have an unsupported check type which
1194    isn't a problem in practice unless support for
1195    some check types has been disabled at build time.
1196
1197 src/scripts/xzdiff.in | 5 +++--
1198 src/scripts/xzgrep.in | 2 +-
1199 src/scripts/xzless.in | 4 ++--
1200 src/scripts/xzmore.in | 4 ++--
1201 4 files changed, 8 insertions(+), 7 deletions(-)
1202
1203commit 6552535afd1fe29d726ab6e68cf14ce3624fd48c
1204Author: Lasse Collin <lasse.collin@tukaani.org>
1205Date:   2022-11-10 12:34:43 +0200
1206
1207    Translations: Rename poa4/fr_FR.po to po4a/fr.po.
1208
1209    That's how it is preferred at the Translation Project.
1210    On my system /usr/share/man/fr_FR doesn't contain any
1211    other man pages than XZ Utils while /usr/share/man/fr
1212    has quite a few, so this will fix that too.
1213
1214    Thanks to Benno Schulenberg from the Translation Project.
1215
1216 po4a/{fr_FR.po => fr.po} | 0
1217 po4a/po4a.conf           | 2 +-
1218 2 files changed, 1 insertion(+), 1 deletion(-)
1219
1220commit 0918159ce4c75bfb60aff0193b559f8a9f41d25a
1221Author: Lasse Collin <lasse.collin@tukaani.org>
1222Date:   2022-11-09 18:48:50 +0200
1223
1224    xz: Update the man page about BCJ filters, including upcoming --arm64.
1225
1226    The --arm64 isn't actually implemented yet in the form
1227    described in this commit.
1228
1229    Thanks to Jia Tan.
1230
1231 src/xz/xz.1 | 66 +++++++++++++++++++++++++++----------------------------------
1232 1 file changed, 29 insertions(+), 37 deletions(-)
1233
1234commit ba2ae3596f6be1587495f33b367488f6e00e56f1
1235Author: Lasse Collin <lasse.collin@tukaani.org>
1236Date:   2022-11-09 18:14:14 +0200
1237
1238    xz: Add --arm64 to --long-help and omit endianness from ARM(-Thumb).
1239
1240    Modern 32-bit ARM in big endian mode use little endian for
1241    instruction encoding still, so the filters work on such
1242    executables too. It's likely less confusing for users this way.
1243
1244    The --arm64 option hasn't been implemented yet (there is
1245    --experimental-arm64 but it's different). The --arm64 option
1246    is added now anyway because this is the likely result and the
1247    strings need to be ready for translators.
1248
1249    Thanks to Jia Tan.
1250
1251 src/xz/message.c | 5 +++--
1252 1 file changed, 3 insertions(+), 2 deletions(-)
1253
1254commit 802d57d9215d9c81dbee86edb43c9e93a7f7ec55
1255Author: Lasse Collin <lasse.collin@tukaani.org>
1256Date:   2022-11-09 15:12:13 +0200
1257
1258    Windows: Update the VS project files for ARM64 and .lz support.
1259
1260 windows/vs2013/config.h            | 9 +++++++++
1261 windows/vs2013/liblzma.vcxproj     | 5 ++++-
1262 windows/vs2013/liblzma_dll.vcxproj | 5 ++++-
1263 windows/vs2017/config.h            | 9 +++++++++
1264 windows/vs2017/liblzma.vcxproj     | 3 +++
1265 windows/vs2017/liblzma_dll.vcxproj | 3 +++
1266 windows/vs2019/config.h            | 9 +++++++++
1267 windows/vs2019/liblzma.vcxproj     | 5 ++++-
1268 windows/vs2019/liblzma_dll.vcxproj | 5 ++++-
1269 9 files changed, 49 insertions(+), 4 deletions(-)
1270
1271commit 5846aeda05972bc803c6094821ae836229ebe691
1272Author: Lasse Collin <lasse.collin@tukaani.org>
1273Date:   2022-11-09 14:57:48 +0200
1274
1275    DOS: Update Makefile and config.h to include ARM64 and .lz support.
1276
1277 dos/Makefile | 2 ++
1278 dos/config.h | 9 +++++++++
1279 2 files changed, 11 insertions(+)
1280
1281commit 781da8d6c44de6aa278c916375250668a0b107f2
1282Author: Lasse Collin <lasse.collin@tukaani.org>
1283Date:   2022-11-09 14:45:05 +0200
1284
1285    CMake: Add lzip decoder files and #define to the build.
1286
1287 CMakeLists.txt | 3 +++
1288 1 file changed, 3 insertions(+)
1289
1290commit df8ad4af65a9c4846b108550d0083770a69dee64
1291Author: Lasse Collin <lasse.collin@tukaani.org>
1292Date:   2022-11-09 14:41:56 +0200
1293
1294    Docs: Update INSTALL and also add new prohibited options to PACKAGERS.
1295
1296 INSTALL   | 49 +++++++++++++++++++++++++++++++++++++++++--------
1297 PACKAGERS |  2 ++
1298 2 files changed, 43 insertions(+), 8 deletions(-)
1299
1300commit c8ef089c149afaab413c3a51be827dd1d11afe0e
1301Author: Lasse Collin <lasse.collin@tukaani.org>
1302Date:   2022-10-20 17:39:06 +0300
1303
1304    Tests: Test the .lz files in test_files.sh.
1305
1306 tests/test_files.sh | 25 +++++++++++++++++++++++++
1307 1 file changed, 25 insertions(+)
1308
1309commit c8f70ebb4628ceb6cb29cc9195d9deadf69d2bd7
1310Author: Lasse Collin <lasse.collin@tukaani.org>
1311Date:   2022-10-20 15:35:59 +0300
1312
1313    Tests: Add .lz (lzip) test files.
1314
1315 tests/files/README                     | 109 +++++++++++++++++++++++++++++----
1316 tests/files/bad-1-v0-uncomp-size.lz    | Bin 0 -> 42 bytes
1317 tests/files/bad-1-v1-crc32.lz          | Bin 0 -> 50 bytes
1318 tests/files/bad-1-v1-dict-1.lz         | Bin 0 -> 50 bytes
1319 tests/files/bad-1-v1-dict-2.lz         | Bin 0 -> 50 bytes
1320 tests/files/bad-1-v1-magic-1.lz        | Bin 0 -> 50 bytes
1321 tests/files/bad-1-v1-magic-2.lz        | Bin 0 -> 50 bytes
1322 tests/files/bad-1-v1-member-size.lz    | Bin 0 -> 50 bytes
1323 tests/files/bad-1-v1-trailing-magic.lz | Bin 0 -> 54 bytes
1324 tests/files/bad-1-v1-uncomp-size.lz    | Bin 0 -> 50 bytes
1325 tests/files/good-1-v0-trailing-1.lz    | Bin 0 -> 59 bytes
1326 tests/files/good-1-v0.lz               | Bin 0 -> 42 bytes
1327 tests/files/good-1-v1-trailing-1.lz    | Bin 0 -> 67 bytes
1328 tests/files/good-1-v1-trailing-2.lz    | Bin 0 -> 70 bytes
1329 tests/files/good-1-v1.lz               | Bin 0 -> 50 bytes
1330 tests/files/good-2-v0-v1.lz            | Bin 0 -> 78 bytes
1331 tests/files/good-2-v1-v0.lz            | Bin 0 -> 78 bytes
1332 tests/files/good-2-v1-v1.lz            | Bin 0 -> 86 bytes
1333 tests/files/unsupported-1-v234.lz      | Bin 0 -> 50 bytes
1334 19 files changed, 98 insertions(+), 11 deletions(-)
1335
1336commit 731db13e6fa3ad3e3fc786c0ccf6eac4cce6865f
1337Author: Lasse Collin <lasse.collin@tukaani.org>
1338Date:   2022-10-19 22:32:51 +0300
1339
1340    xz: Remove the commented-out FORMAT_GZIP, gzip, .gz, and .tgz.
1341
1342 src/xz/args.c   | 2 --
1343 src/xz/coder.h  | 1 -
1344 src/xz/suffix.c | 9 ---------
1345 3 files changed, 12 deletions(-)
1346
1347commit 3176f992c55b8d788c4633809aaf9447376a5a12
1348Author: Lasse Collin <lasse.collin@tukaani.org>
1349Date:   2022-10-08 21:28:15 +0300
1350
1351    xz: Add .lz (lzip) decompression support.
1352
1353    If configured with --disable-lzip-decoder then --long-help will
1354    still list `lzip' in --format but I left it like that since
1355    due to translations it would be messy to have two help strings.
1356    Features are disabled only in special situations so wrong help
1357    in such a situation shouldn't matter much.
1358
1359    Thanks to Michał Górny for the original patch.
1360
1361 src/xz/args.c    |  9 ++++++++
1362 src/xz/coder.c   | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1363 src/xz/coder.h   |  3 +++
1364 src/xz/message.c |  2 +-
1365 src/xz/suffix.c  | 26 ++++++++++++++++++----
1366 src/xz/xz.1      | 46 +++++++++++++++++++++++++++++++++-----
1367 6 files changed, 141 insertions(+), 13 deletions(-)
1368
1369commit 034086e1ae1459210837a24e04878435c86dc41b
1370Author: Lasse Collin <lasse.collin@tukaani.org>
1371Date:   2022-10-08 00:29:20 +0300
1372
1373    liblzma: Add .lz support to lzma_auto_decoder().
1374
1375    Thanks to Michał Górny for the original patch.
1376
1377 src/liblzma/api/lzma/container.h  | 10 ++++++----
1378 src/liblzma/common/Makefile.inc   |  3 ++-
1379 src/liblzma/common/auto_decoder.c | 23 +++++++++++++++++------
1380 src/liblzma/common/lzip_decoder.h | 22 ++++++++++++++++++++++
1381 4 files changed, 47 insertions(+), 11 deletions(-)
1382
1383commit 0538db038f3cdc352007dacb42454aa1806b8e40
1384Author: Lasse Collin <lasse.collin@tukaani.org>
1385Date:   2022-10-06 15:50:20 +0300
1386
1387    liblzma: Add .lz (lzip) decompression support (format versions 0 and 1).
1388
1389    Support for format version 0 was removed from lzip 1.18 for some
1390    reason. .lz format version 0 files are rare (and old) but some
1391    source packages were released in this format, and some people might
1392    have personal files in this format too. It's very little extra code
1393    to support it along side format version 1 so this commits adds
1394    support for both.
1395
1396    The Sync Flush marker extentension to the original .lz format
1397    version 1 isn't supported. It would require changes to the
1398    LZMA decoder itself. Such files are very rare anyway.
1399
1400    See the API doc for lzma_lzip_decoder() for more details about
1401    the .lz format support.
1402
1403    Thanks to Michał Górny for the original patch.
1404
1405 configure.ac                      |  21 ++
1406 src/liblzma/api/lzma/container.h  |  62 +++++-
1407 src/liblzma/common/Makefile.inc   |   5 +
1408 src/liblzma/common/lzip_decoder.c | 413 ++++++++++++++++++++++++++++++++++++++
1409 src/liblzma/liblzma_generic.map   |   1 +
1410 src/liblzma/liblzma_linux.map     |   1 +
1411 6 files changed, 501 insertions(+), 2 deletions(-)
1412
1413commit 633d48a075b9ce4b9c08a7a56a7eb4cabc18100c
1414Author: Lasse Collin <lasse.collin@tukaani.org>
1415Date:   2022-11-09 14:17:23 +0200
1416
1417    liblzma: Add the missing Makefile.inc change for --disable-microlzma.
1418
1419    This was forgotten from commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8.
1420
1421 src/liblzma/common/Makefile.inc | 12 ++++++++++--
1422 1 file changed, 10 insertions(+), 2 deletions(-)
1423
1424commit 724285dadbdc88765c8fb83eab9816575a260966
1425Author: Lasse Collin <lasse.collin@tukaani.org>
1426Date:   2022-11-09 14:10:52 +0200
1427
1428    xz: Add comments about stdin and src_st.st_size.
1429
1430    "xz -v < regular_file > out.xz" doesn't display the percentage
1431    and estimated remaining time because it doesn't even try to
1432    check the input file size when input is read from stdin.
1433    This could be improved but for now there's just a comment
1434    to remind about it.
1435
1436 src/xz/coder.c   | 9 +++++++++
1437 src/xz/file_io.c | 4 ++++
1438 2 files changed, 13 insertions(+)
1439
1440commit f723eec68b0e44234910f669a29119de33018967
1441Author: Lasse Collin <lasse.collin@tukaani.org>
1442Date:   2022-11-09 12:48:22 +0200
1443
1444    xz: Fix displaying of file sizes in progress indicator in passthru mode.
1445
1446    It worked for one input file since the counters are zero when
1447    xz starts but they weren't reset when starting a new file in
1448    passthru mode. For example, if files A, B, and C are one byte each,
1449    then "xz -dcvf A B C" would show file sizes as 1, 2, and 3 bytes
1450    instead of 1, 1, and 1 byte.
1451
1452 src/xz/coder.c | 6 +++++-
1453 1 file changed, 5 insertions(+), 1 deletion(-)
1454
1455commit 69265d0f223ddf1d66f799b8b047df22923e376f
1456Author: Lasse Collin <lasse.collin@tukaani.org>
1457Date:   2022-11-09 11:27:20 +0200
1458
1459    xz: Add a comment why --to-stdout is not in --help.
1460
1461    It is on the man page still.
1462
1463 src/xz/message.c | 3 +++
1464 1 file changed, 3 insertions(+)
1465
1466commit fe6b8852a3c6a0eb5a3c33512e0a69af257d3bc7
1467Author: Lasse Collin <lasse.collin@tukaani.org>
1468Date:   2022-11-08 23:05:37 +0200
1469
1470    xz: Make xz -lvv show that the upcoming --arm64 needs 5.4.0 to decompress.
1471
1472 src/xz/list.c | 20 +++++++++++++++-----
1473 1 file changed, 15 insertions(+), 5 deletions(-)
1474
1475commit fb3f05ac9f2b4b0e3643401960fbeab31997ac7a
1476Author: Lasse Collin <lasse.collin@tukaani.org>
1477Date:   2022-11-08 22:26:54 +0200
1478
1479    Docs: Update faq.txt a little.
1480
1481 doc/faq.txt | 66 ++++++++++++++++++++++++++++++++++++++++---------------------
1482 1 file changed, 43 insertions(+), 23 deletions(-)
1483
1484commit 05331f091ec3b68eccbfb2a9a7a576072768fb4b
1485Author: Lasse Collin <lasse.collin@tukaani.org>
1486Date:   2022-11-08 16:57:17 +0200
1487
1488    Translations: Update Turkish translation.
1489
1490 po/tr.po | 2 +-
1491 1 file changed, 1 insertion(+), 1 deletion(-)
1492
1493commit ed3a4822963b4940d84e6f44d47277c394fc046d
1494Author: Lasse Collin <lasse.collin@tukaani.org>
1495Date:   2022-11-08 14:55:32 +0200
1496
1497    Translations: Update Croatian translation.
1498
1499 po/hr.po | 190 ++++++++++++++++++++++++++++++++-------------------------------
1500 1 file changed, 96 insertions(+), 94 deletions(-)
1501
1502commit 4746f5ec721316bc4c6fec9905b2902e0360e0af
1503Author: Lasse Collin <lasse.collin@tukaani.org>
1504Date:   2022-11-08 14:13:03 +0200
1505
1506    liblzma: Update API docs about decoder flags.
1507
1508 src/liblzma/api/lzma/container.h | 21 +++++++++++++++++----
1509 1 file changed, 17 insertions(+), 4 deletions(-)
1510
1511commit 8779a9db5d0cec00c9dc9e9965dd2dda04f9d80d
1512Author: Lasse Collin <lasse.collin@tukaani.org>
1513Date:   2022-11-08 14:01:50 +0200
1514
1515    liblzma: Use the return_if_error() macro in alone_decoder.c.
1516
1517 src/liblzma/common/alone_decoder.c | 6 ++----
1518 1 file changed, 2 insertions(+), 4 deletions(-)
1519
1520commit 3f4990b6822961e75cd9b4e2e82b1df63f6f8fcc
1521Author: Lasse Collin <lasse.collin@tukaani.org>
1522Date:   2022-11-08 14:00:58 +0200
1523
1524    liblzma: Fix a comment in auto_decoder.c.
1525
1526 src/liblzma/common/auto_decoder.c | 4 ++--
1527 1 file changed, 2 insertions(+), 2 deletions(-)
1528
1529commit 026a5897c72a2041ae08ceec54ce8b1cdeb51334
1530Author: Lasse Collin <lasse.collin@tukaani.org>
1531Date:   2022-11-08 13:43:19 +0200
1532
1533    xz: Initialize the pledge(2) sandbox at the very beginning of main().
1534
1535    It feels better that the initializations are sandboxed too.
1536    They don't do anything that the pledge() call wouldn't allow.
1537
1538 src/xz/main.c | 27 ++++++++++++++-------------
1539 1 file changed, 14 insertions(+), 13 deletions(-)
1540
1541commit 49a59f6ca001c3ce9affa2c162b437aad021b4d5
1542Author: Lasse Collin <lasse.collin@tukaani.org>
1543Date:   2022-11-07 22:51:16 +0200
1544
1545    xz: Extend --robot --info-memory output.
1546
1547    Now it includes everything that the human-readable --info-memory shows.
1548
1549 src/xz/hardware.c | 24 +++++++++++++++---------
1550 src/xz/xz.1       | 47 +++++++++++++++++++++++++++++++++++++++++------
1551 2 files changed, 56 insertions(+), 15 deletions(-)
1552
1553commit 5e2450c75cbac966c62cf2231c824f2cc91ddba8
1554Author: Lasse Collin <lasse.collin@tukaani.org>
1555Date:   2022-11-07 17:22:04 +0200
1556
1557    liblzma: Include cached memory in reported memusage in threaded decoder.
1558
1559    This affects lzma_memusage() and lzma_memlimit_set() when used
1560    with the threaded decompressor. Now all allocations are reported
1561    by lzma_memusage() (so it's not misleading) and lzma_memlimit_set()
1562    cannot lower the limit below that value.
1563
1564    The alternative would have been to allow lowering the limit if
1565    doing so is possible by freeing the cached memory but since
1566    the primary use case of lzma_memlimit_set() is to increase
1567    memlimit after LZMA_MEMLIMIT_ERROR this simple approach
1568    was selected.
1569
1570    The cached memory was always included when enforcing
1571    the memory usage limit while decoding.
1572
1573    Thanks to Jia Tan.
1574
1575 src/liblzma/common/stream_decoder_mt.c | 22 +++++++++++++++++++---
1576 1 file changed, 19 insertions(+), 3 deletions(-)
1577
1578commit 1fc6e7dd1fabdb60124d449b99273330ccab3ff1
1579Author: Jia Tan <jiat0218@gmail.com>
1580Date:   2022-11-07 16:24:14 +0200
1581
1582    xz: Avoid a compiler warning in progress_speed() in message.c.
1583
1584    This should be smaller too since it avoids the string constants.
1585
1586 src/xz/message.c | 9 +++------
1587 1 file changed, 3 insertions(+), 6 deletions(-)
1588
1589commit cf118c014683069b5dbe91898acdc40f2f0a1f5d
1590Author: Lasse Collin <lasse.collin@tukaani.org>
1591Date:   2022-10-31 16:26:05 +0200
1592
1593    Build: Clarify comment in configure.ac about SSE2.
1594
1595 configure.ac | 5 ++++-
1596 1 file changed, 4 insertions(+), 1 deletion(-)
1597
1598commit aad3c609ffb72f581a7a2b67be3ad70b2b327840
1599Author: Lasse Collin <lasse.collin@tukaani.org>
1600Date:   2022-10-31 16:16:37 +0200
1601
1602    Build: Remove obsolete commented-out lines from configure.ac.
1603
1604 configure.ac | 4 ----
1605 1 file changed, 4 deletions(-)
1606
1607commit e53e0e2186c6b8ce866bd19aec52f1c318ed31ba
1608Author: Lasse Collin <lasse.collin@tukaani.org>
1609Date:   2022-10-31 13:31:58 +0200
1610
1611    Windows: Fix mythread_once() macro with Vista threads.
1612
1613    Don't call InitOnceComplete() if initialization was already done.
1614
1615    So far mythread_once() has been needed only when building
1616    with --enable-small. windows/build.bash does this together
1617    with --disable-threads so the Vista-specific mythread_once()
1618    is never needed by those builds. VS project files or
1619    CMake-builds don't support HAVE_SMALL builds at all.
1620
1621 src/common/mythread.h | 7 ++++---
1622 1 file changed, 4 insertions(+), 3 deletions(-)
1623
1624commit 48dde3bab9dc04081acb5aa7cf7c5044b8a49f58
1625Author: Lasse Collin <lasse.collin@tukaani.org>
1626Date:   2022-10-31 11:54:44 +0200
1627
1628    liblzma: Silence -Wconversion warning from crc64_fast.c.
1629
1630 src/liblzma/check/crc64_fast.c | 5 +++--
1631 1 file changed, 3 insertions(+), 2 deletions(-)
1632
1633commit a243c617ff249d915ac123de4f536b80322c1fdb
1634Author: Lasse Collin <lasse.collin@tukaani.org>
1635Date:   2022-10-31 11:49:47 +0200
1636
1637    CMake: Sync tuklib_cpucores.cmake with tuklib_cpucores.m4.
1638
1639    This was forgotten from commit 2611c4d90535652d3eb7ef4a026a6691276fab43.
1640
1641 cmake/tuklib_cpucores.cmake | 5 +++++
1642 1 file changed, 5 insertions(+)
1643
1644commit 05c72de06fcaaedc78f8abba7d5ec568ddcf1e75
1645Author: Lasse Collin <lasse.collin@tukaani.org>
1646Date:   2022-10-27 15:49:18 +0300
1647
1648    Tests: test_files.sh: Make it not fail if features were disabled at build.
1649
1650    It now tries to test as many files as easily possible.
1651    The exit status indicates skipping if any of the files were
1652    skipped. This way it is easy to notice if something is being
1653    skipped when it isn't expected.
1654
1655 tests/test_files.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++----
1656 1 file changed, 46 insertions(+), 4 deletions(-)
1657
1658commit b3459327a51f4b8239d19e6c34b4e0c6bc2d81de
1659Author: Lasse Collin <lasse.collin@tukaani.org>
1660Date:   2022-10-27 15:30:13 +0300
1661
1662    Tests: test_files.sh: Suppress an expected warning from the log.
1663
1664    xz (but not xzdec) will normally warn about unsupported check
1665    but since we are testing specifically such a file, it's better
1666    to silence that warning so that it doesn't look suspicious in
1667    test_files.sh.log.
1668
1669    The use of -q and -Q in xzdec is just for consistency and
1670    doesn't affect the result at least for now.
1671
1672 tests/test_files.sh | 4 ++--
1673 1 file changed, 2 insertions(+), 2 deletions(-)
1674
1675commit 798c86e4231e0835ab76ccd0810c8ea30833b2ce
1676Author: Lasse Collin <lasse.collin@tukaani.org>
1677Date:   2022-10-27 15:27:50 +0300
1678
1679    Tests: test_files.sh: Print the reason for skipping if xz & xzdec missing.
1680
1681 tests/test_files.sh | 1 +
1682 1 file changed, 1 insertion(+)
1683
1684commit c1dd8524e1af07f16b790463899de06a6a5fcc08
1685Author: Lasse Collin <lasse.collin@tukaani.org>
1686Date:   2022-10-27 01:12:40 +0300
1687
1688    Tests: Keep test_compress_* working when some filters are unavailable.
1689
1690 tests/test_compress.sh | 34 ++++++++++++++++++++--------------
1691 1 file changed, 20 insertions(+), 14 deletions(-)
1692
1693commit ce30ada91951d0746879ae438da11f1ee8a90aa0
1694Author: Jia Tan <jiat0218@gmail.com>
1695Date:   2022-10-23 21:01:08 +0800
1696
1697    Tests: test_bcj_exact_size skips properly now if PowerPC filter disabled.
1698
1699 tests/test_bcj_exact_size.c | 3 +++
1700 1 file changed, 3 insertions(+)
1701
1702commit 89c5cfcacaca7130509fac836e2f30c46b824502
1703Author: Lasse Collin <lasse.collin@tukaani.org>
1704Date:   2022-10-26 00:05:57 +0300
1705
1706    Tests: Test also unsupported-*.xz.
1707
1708 tests/test_files.sh | 37 +++++++++++++++++++++++++++++++++++++
1709 1 file changed, 37 insertions(+)
1710
1711commit a4b214b93ac741edef9c41e55865b0b867ca2587
1712Author: Lasse Collin <lasse.collin@tukaani.org>
1713Date:   2022-10-25 23:45:03 +0300
1714
1715    Build: Use AC_CONFIG_HEADERS instead of the ancient AC_CONFIG_HEADER.
1716
1717    We require Autoconf >= 2.69 and that has AC_CONFIG_HEADERS.
1718
1719    There is a warning about AC_PROG_CC_C99 being obsolete but
1720    it cannot be removed because it is needed with Autoconf 2.69.
1721
1722 configure.ac | 2 +-
1723 1 file changed, 1 insertion(+), 1 deletion(-)
1724
1725commit 04f299b64e73f50afc188c2590ebebc6b73ed744
1726Author: Lasse Collin <lasse.collin@tukaani.org>
1727Date:   2022-10-25 23:31:44 +0300
1728
1729    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
1730
1731 m4/ax_pthread.m4 | 29 ++++++++++++++++++++++-------
1732 1 file changed, 22 insertions(+), 7 deletions(-)
1733
1734commit 59c4d6e1390f6f4176f43ac1dad1f7ac03c449b8
1735Author: Lasse Collin <lasse.collin@tukaani.org>
1736Date:   2022-10-25 23:28:34 +0300
1737
1738    Build: Add configure option --disable-microlzma.
1739
1740    MicroLZMA was made for EROFS and used by erofs-utils.
1741    It might be used by something else in the future but
1742    those wanting a smaller build for specific situations
1743    can now disable this rarely-needed feature.
1744
1745 configure.ac | 22 ++++++++++++++++++++++
1746 1 file changed, 22 insertions(+)
1747
1748commit 054ccd6d14b2cc6eddc56897af280d3221414150
1749Author: Lasse Collin <lasse.collin@tukaani.org>
1750Date:   2022-10-25 23:09:11 +0300
1751
1752    xz: Fix --single-stream with an empty .xz Stream.
1753
1754    Example:
1755
1756        $ xz -dc --single-stream good-0-empty.xz
1757        xz: good-0-empty.xz: Internal error (bug)
1758
1759    The code, that is tries to catch some input file issues early,
1760    didn't anticipate LZMA_STREAM_END which is possible in that
1761    code only when --single-stream is used.
1762
1763 src/xz/coder.c | 9 +++++++++
1764 1 file changed, 9 insertions(+)
1765
1766commit 563288ea705e83ff5cb292adf794650c263bca1d
1767Author: Lasse Collin <lasse.collin@tukaani.org>
1768Date:   2022-10-25 21:11:58 +0300
1769
1770    xz: Add support for OpenBSD's pledge() sandbox.
1771
1772 configure.ac     | 12 +++++++++---
1773 src/xz/file_io.c | 11 +++++++++++
1774 src/xz/main.c    | 13 +++++++++++++
1775 src/xz/private.h |  2 +-
1776 4 files changed, 34 insertions(+), 4 deletions(-)
1777
1778commit f9913e8ee2ba0b1e4ff4d0aa4c001aae305ed944
1779Author: Lasse Collin <lasse.collin@tukaani.org>
1780Date:   2022-10-25 19:07:17 +0300
1781
1782    xz: Fix decompressor behavior if input uses an unsupported check type.
1783
1784    Now files with unsupported check will make xz display
1785    a warning, set the exit status to 2 (unless --no-warn is used),
1786    and then decompress the file normally. This is how it was
1787    supposed to work since the beginning but this was broken by
1788    the commit 231c3c7098f1099a56abb8afece76fc9b8699f05, that is,
1789    a little before 5.0.0 was released. The buggy behavior displayed
1790    a message, set exit status 1 (error), and xz didn't attempt to
1791    to decompress the file.
1792
1793    This doesn't matter today except for special builds that disable
1794    CRC64 or SHA-256 at build time (but such builds should be used
1795    in special situations only). The bug matters if new check type
1796    is added in the future and an old xz version is used to decompress
1797    such a file; however, it's likely that such files would use a new
1798    filter too and an old xz wouldn't be able to decompress the file
1799    anyway.
1800
1801    The first hunk in the commit is the actual fix. The second hunk
1802    is a cleanup since LZMA_TELL_ANY_CHECK isn't used in xz.
1803
1804    There is a test file for unsupported check type but it wasn't
1805    used by test_files.sh, perhaps due to different behavior between
1806    xz and the simpler xzdec.
1807
1808 src/xz/coder.c | 19 +++++++++++++++----
1809 1 file changed, 15 insertions(+), 4 deletions(-)
1810
1811commit aa4fe145b9486adc454f44fd3e09be9add808a0f
1812Author: Lasse Collin <lasse.collin@tukaani.org>
1813Date:   2022-10-25 18:36:19 +0300
1814
1815    xz: Clarify the man page: input file isn't removed if an error occurs.
1816
1817 src/xz/xz.1 | 5 +++--
1818 1 file changed, 3 insertions(+), 2 deletions(-)
1819
1820commit 8b46ae8cdeddfd7dc01fec92971b8696e9a96c5d
1821Author: Lasse Collin <lasse.collin@tukaani.org>
1822Date:   2022-10-25 18:30:55 +0300
1823
1824    xz: Refactor to remove is_empty_filename().
1825
1826    Long ago it was used in list.c too but nowadays it's needed
1827    only in io_open_src() so it's nicer to avoid a separate function.
1828
1829 src/xz/file_io.c |  4 +++-
1830 src/xz/util.c    | 12 ------------
1831 src/xz/util.h    |  4 ----
1832 3 files changed, 3 insertions(+), 17 deletions(-)
1833
1834commit 85624015978b0de294cff3df79006df987c552b1
1835Author: Lasse Collin <lasse.collin@tukaani.org>
1836Date:   2022-10-25 18:23:54 +0300
1837
1838    xz: If input file cannot be removed, treat it as a warning, not error.
1839
1840    Treating it as a warning (message + exit status 2) matches gzip
1841    and it seems more logical as at that point the output file has
1842    already been successfully closed. When it's a warning it is
1843    possible to suppress it with --no-warn.
1844
1845 src/xz/file_io.c | 4 ++--
1846 1 file changed, 2 insertions(+), 2 deletions(-)
1847
1848commit fda9f85f52c546f7ca0313cf89481da4707fecb3
1849Author: Lasse Collin <lasse.collin@tukaani.org>
1850Date:   2022-10-24 16:25:09 +0300
1851
1852    liblzma: Threaded decoder: Stop the worker threads on errors.
1853
1854    It's waste of CPU time and electricity to leave the unfinished
1855    worker threads running when it is known that their output will
1856    get ignored.
1857
1858 src/liblzma/common/stream_decoder_mt.c | 33 ++++++++++++++++++++++++++-------
1859 1 file changed, 26 insertions(+), 7 deletions(-)
1860
1861commit 2611c4d90535652d3eb7ef4a026a6691276fab43
1862Author: Lasse Collin <lasse.collin@tukaani.org>
1863Date:   2022-10-20 20:22:50 +0300
1864
1865    tuklib_cpucores: Use HW_NCPUONLINE on OpenBSD.
1866
1867    On OpenBSD the number of cores online is often less
1868    than what HW_NCPU would return because OpenBSD disables
1869    simultaneous multi-threading (SMT) by default.
1870
1871    Thanks to Christian Weisgerber.
1872
1873 m4/tuklib_cpucores.m4        | 5 +++++
1874 src/common/tuklib_cpucores.c | 9 +++++++++
1875 2 files changed, 14 insertions(+)
1876
1877commit 424ac91c7e0419393ff2bde4f62e21fa611c776d
1878Author: Lasse Collin <lasse.collin@tukaani.org>
1879Date:   2022-10-19 19:39:35 +0300
1880
1881    Tests: Skip tests in test_*.sh if encoders and/or decoders are disabled.
1882
1883    This isn't perfect as the scripts can still fail if only
1884    certain filters are disabled. This is still an improvement
1885    as now "make check" has better behavior when all encoders
1886    or decoders are disabled.
1887
1888    Grepping ../config.h is simple and fairly clean but it only
1889    works if config.h was created. CMake builds don't create
1890    config.h but they don't use these test scripts either.
1891
1892    Thanks to Sebastian Andrzej Siewior for reporting the problem.
1893    Thanks to Jia Tan for the original patch which grepped xz
1894    error messages instead of config.h.
1895
1896 tests/test_compress.sh | 12 ++++++++++++
1897 tests/test_files.sh    | 11 +++++++++++
1898 tests/test_scripts.sh  | 11 +++++++++++
1899 3 files changed, 34 insertions(+)
1900
1901commit ca8bf9d7c5a30be8ba1eeb106fd892f19e83ed09
1902Author: Lasse Collin <lasse.collin@tukaani.org>
1903Date:   2022-10-19 18:54:34 +0300
1904
1905    Test: Remove the (exit 1) lines.
1906
1907    I suspect that I used these in the original version because
1908    Autoconf's manual describes that such a trick is needed in
1909    some specific situations for portability reasons. None of those
1910    situations listed on Autoconf 2.71 manual apply to these test
1911    scripts though so this cleans them up.
1912
1913 tests/test_compress.sh | 10 ----------
1914 tests/test_files.sh    |  9 ---------
1915 tests/test_scripts.sh  |  6 ------
1916 3 files changed, 25 deletions(-)
1917
1918commit 82fcb7cfc17ce62f79ebc7ca2374e1daca5e4d5e
1919Author: Lasse Collin <lasse.collin@tukaani.org>
1920Date:   2022-10-19 17:14:57 +0300
1921
1922    Tests: Fix a warning in test_memlimit.c when decoders are disabled.
1923
1924 tests/test_memlimit.c | 3 +++
1925 1 file changed, 3 insertions(+)
1926
1927commit b5f8271b45b9b0e59485ffba3640ca3418835ec4
1928Author: Lasse Collin <lasse.collin@tukaani.org>
1929Date:   2022-10-19 17:11:46 +0300
1930
1931    Tests: Add test_memlimit to .gitignore.
1932
1933    Thanks to Jia Tan.
1934
1935 .gitignore | 1 +
1936 1 file changed, 1 insertion(+)
1937
1938commit 6a86e81cab202d0a812a7b2e9efacaf70c58ba38
1939Author: Jia Tan <jiat0218@gmail.com>
1940Date:   2022-10-06 21:53:09 +0300
1941
1942    Tests: Refactor test_stream_flags.c.
1943
1944    Converts test_stream_flags to tuktest. Also the test will now
1945    compile and skip properly if encoders or decoders are disabled.
1946
1947    Thanks to Sebastian Andrzej Siewior.
1948
1949 tests/test_stream_flags.c | 533 ++++++++++++++++++++++++++++++++++++----------
1950 1 file changed, 416 insertions(+), 117 deletions(-)
1951
1952commit 827ac5b4821491fd3afe0d0e1ddac326253aeb66
1953Author: Jia Tan <jiat0218@gmail.com>
1954Date:   2022-10-06 17:00:38 +0800
1955
1956    Tests: Refactor test_block_header.c.
1957
1958    test_block_header now achieves higher test coverage. Also the
1959    test will now compile and skip properly if encoders or decoders
1960    are disabled.
1961
1962    Thanks to Sebastian Andrzej Siewior.
1963
1964 tests/test_block_header.c | 486 +++++++++++++++++++++++++++++++++++-----------
1965 1 file changed, 370 insertions(+), 116 deletions(-)
1966
1967commit 84963318952064a93bfc52edd6b0ef70593384ee
1968Author: Jia Tan <jiat0218@gmail.com>
1969Date:   2022-10-05 23:54:12 +0800
1970
1971    Tests: Fix compilation issues.
1972
1973    test_bcj_exact_size, test_check, test_hardware, and test_index will
1974    all now compile and skip properly if encoders or decoders are disabled.
1975
1976    Also fixed a small typo (disabed -> disabled).
1977
1978    Thanks to Sebastian Andrzej Siewior.
1979
1980 tests/test_bcj_exact_size.c | 20 ++++++++++++++------
1981 tests/test_check.c          |  8 +++++++-
1982 tests/test_hardware.c       |  2 +-
1983 tests/test_index.c          |  6 ++++++
1984 tests/test_memlimit.c       | 16 +++++++++++++++-
1985 tests/test_vli.c            | 13 +++++++++++++
1986 6 files changed, 56 insertions(+), 9 deletions(-)
1987
1988commit 7dcabeec63d46b436fa5f043c3d1f09d0e15be16
1989Author: Lasse Collin <lasse.collin@tukaani.org>
1990Date:   2022-10-05 16:20:47 +0300
1991
1992    Tests: Include mythread.h in the tests that use MYTHREAD_ENABLED.
1993
1994 tests/test_check.c    | 1 +
1995 tests/test_hardware.c | 1 +
1996 tests/test_memlimit.c | 1 +
1997 3 files changed, 3 insertions(+)
1998
1999commit 14af758a770c7781af18fb66d6d21ee5b1c27f04
2000Author: Jia Tan <jiat0218@gmail.com>
2001Date:   2022-10-05 20:57:16 +0800
2002
2003    liblzma: Fix a compilation issue when encoders are disabled.
2004
2005    When encoders were disabled and threading enabled, outqueue.c and
2006    outqueue.h were not compiled. The multi threaded decoder required
2007    these files, so compilation failed.
2008
2009 src/liblzma/common/Makefile.inc | 7 ++++---
2010 1 file changed, 4 insertions(+), 3 deletions(-)
2011
2012commit 6ca5c354bd4620aa7f81da68870eef1b1f26288f
2013Author: Jia Tan <jiat0218@gmail.com>
2014Date:   2022-10-05 16:41:38 +0800
2015
2016    Tests: Fix compilation error when threading support has been disabled.
2017
2018    Now tests that require threading are skipped when threading
2019    support has been disabled.
2020
2021    Thanks to Sebastian Andrzej Siewior.
2022
2023 tests/test_check.c    | 4 ++++
2024 tests/test_hardware.c | 4 ++++
2025 tests/test_memlimit.c | 4 ++++
2026 3 files changed, 12 insertions(+)
2027
2028commit fae37ad2affd8fe8871f4ff93d5cab5ec14d5e58
2029Author: Lasse Collin <lasse.collin@tukaani.org>
2030Date:   2022-10-05 14:26:00 +0300
2031
2032    tuklib_integer: Add 64-bit endianness-converting reads and writes.
2033
2034    Also update the comment in liblzma's memcmplen.h.
2035
2036    Thanks to Michał Górny for the original patch for the reads.
2037
2038 m4/tuklib_integer.m4           |  8 ++++----
2039 src/common/tuklib_integer.h    | 46 ++++++++++++++++++++++++++++++++++++++++--
2040 src/liblzma/common/memcmplen.h |  9 +++------
2041 3 files changed, 51 insertions(+), 12 deletions(-)
2042
2043commit 508a44372c5b0dede8863fd0d358d4a9d8645c95
2044Author: Lasse Collin <lasse.collin@tukaani.org>
2045Date:   2022-09-30 12:06:13 +0300
2046
2047    liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug.
2048
2049    The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98.
2050
2051 src/liblzma/api/lzma/base.h | 11 +++++++++++
2052 1 file changed, 11 insertions(+)
2053
2054commit 8cc9874a7974cd575aee44f218836f7acdbeb0ed
2055Author: Jia Tan <jiat0218@gmail.com>
2056Date:   2022-09-21 16:15:50 +0800
2057
2058    liblzma: Add dest and src NULL checks to lzma_index_cat.
2059
2060    The documentation states LZMA_PROG_ERROR can be returned from
2061    lzma_index_cat. Previously, lzma_index_cat could not return
2062    LZMA_PROG_ERROR. Now, the validation is similar to
2063    lzma_index_append, which does a NULL check on the index
2064    parameter.
2065
2066 src/liblzma/common/index.c | 3 +++
2067 1 file changed, 3 insertions(+)
2068
2069commit afd5a8bf5374eba82804a999e1ea7af680784086
2070Author: Jia Tan <jiat0218@gmail.com>
2071Date:   2022-09-21 20:29:28 +0800
2072
2073    Tests: Create a test for the lzma_index_cat bug.
2074
2075 tests/test_index.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
2076 1 file changed, 42 insertions(+), 1 deletion(-)
2077
2078commit 3d5a99ca373a4e86faf671226ca6487febb9eeac
2079Author: Jia Tan <jiat0218@gmail.com>
2080Date:   2022-09-21 19:28:53 +0800
2081
2082    liblzma: Fix copying of check type statistics in lzma_index_cat().
2083
2084    The check type of the last Stream in dest was never copied to
2085    dest->checks (the code tried to copy it but it was done too late).
2086    This meant that the value returned by lzma_index_checks() would
2087    only include the check type of the last Stream when multiple
2088    lzma_indexes had been concatenated.
2089
2090    In xz --list this meant that the summary would only list the
2091    check type of the last Stream, so in this sense this was only
2092    a visual bug. However, it's possible that some applications
2093    use this information for purposes other than merely showing
2094    it to the users in an informational message. I'm not aware of
2095    such applications though and it's quite possible that such
2096    applications don't exist.
2097
2098    Regular streamed decompression in xz or any other application
2099    doesn't use lzma_index_cat() and so this bug cannot affect them.
2100
2101 src/liblzma/common/index.c | 7 ++++++-
2102 1 file changed, 6 insertions(+), 1 deletion(-)
2103
2104commit a61d32172789735350a941e23baf6b587c49e5d9
2105Author: Lasse Collin <lasse.collin@tukaani.org>
2106Date:   2022-09-28 12:20:41 +0300
2107
2108    tuklib_physmem: Fix Unicode builds on Windows.
2109
2110    Thanks to ArSaCiA Game.
2111
2112 src/common/tuklib_physmem.c | 2 +-
2113 1 file changed, 1 insertion(+), 1 deletion(-)
2114
2115commit 5a4d3548ab214fdca364d5c734baf1d1fab47308
2116Author: Lasse Collin <lasse.collin@tukaani.org>
2117Date:   2022-09-28 11:12:07 +0300
2118
2119    Tests: Add test_memlimit.c to test restarting after LZMA_MEMLIMIT_ERROR.
2120
2121 tests/Makefile.am     |   2 +
2122 tests/test_memlimit.c | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
2123 2 files changed, 153 insertions(+)
2124
2125commit 660739f99ab211edec4071de98889fb32ed04e98
2126Author: Lasse Collin <lasse.collin@tukaani.org>
2127Date:   2022-09-28 11:05:15 +0300
2128
2129    liblzma: Stream decoder: Fix restarting after LZMA_MEMLIMIT_ERROR.
2130
2131    If lzma_code() returns LZMA_MEMLIMIT_ERROR it is now possible
2132    to use lzma_memlimit_set() to increase the limit and continue
2133    decoding. This was supposed to work from the beginning but
2134    there was a bug. With other decoders (.lzma or threaded .xz)
2135    this already worked correctly.
2136
2137 src/liblzma/common/stream_decoder.c | 16 +++++++++++++---
2138 1 file changed, 13 insertions(+), 3 deletions(-)
2139
2140commit 7e68fda58c74ad9e5b876cc22fcbe80fc0e4747b
2141Author: Lasse Collin <lasse.collin@tukaani.org>
2142Date:   2022-09-28 11:00:23 +0300
2143
2144    liblzma: Stream decoder: Fix comments.
2145
2146 src/liblzma/common/stream_decoder.c | 12 +++++-------
2147 1 file changed, 5 insertions(+), 7 deletions(-)
2148
2149commit f664cb25841fc1c478b819034a224a558e2ac6e7
2150Author: Lasse Collin <lasse.collin@tukaani.org>
2151Date:   2022-09-20 16:58:22 +0300
2152
2153    liblzma: ARM64: Add comments.
2154
2155 src/liblzma/simple/arm64.c | 13 +++++++++++++
2156 1 file changed, 13 insertions(+)
2157
2158commit b557b4a0eea05470fae8ba5ef4ad5a6dfb36ac41
2159Author: Lasse Collin <lasse.collin@tukaani.org>
2160Date:   2022-09-20 16:27:50 +0300
2161
2162    liblzma: ARM64: Fix wrong comment in API doc.
2163
2164    Thanks to Jia Tan.
2165
2166 src/liblzma/api/lzma/bcj.h | 4 ++--
2167 1 file changed, 2 insertions(+), 2 deletions(-)
2168
2169commit d5b0906fa55157f48c200188a3951d80df9cb308
2170Author: Lasse Collin <lasse.collin@tukaani.org>
2171Date:   2022-09-19 20:24:26 +0300
2172
2173    xz: Add --experimental-arm64[=width=WIDTH].
2174
2175    It will be renamed to --arm64 once it is stable.
2176
2177    Man page or --long-help weren't updated yet.
2178
2179 src/xz/args.c    |  7 +++++++
2180 src/xz/message.c |  7 +++++++
2181 src/xz/options.c | 39 +++++++++++++++++++++++++++++++++++++++
2182 src/xz/options.h |  7 +++++++
2183 4 files changed, 60 insertions(+)
2184
2185commit ecb966de308c255bb4735a7307ef9901c643a9de
2186Author: Lasse Collin <lasse.collin@tukaani.org>
2187Date:   2022-09-19 19:34:56 +0300
2188
2189    liblzma: Add experimental ARM64 BCJ filter with a temporary Filter ID.
2190
2191    That is, the Filter ID will be changed once the design is final.
2192    The current version will be removed. So files created with the
2193    tempoary Filter ID won't be supported in the future.
2194
2195 CMakeLists.txt                      |   3 +
2196 configure.ac                        |   4 +-
2197 src/liblzma/api/lzma/bcj.h          |  35 +++++-
2198 src/liblzma/common/filter_common.c  |   9 ++
2199 src/liblzma/common/filter_decoder.c |   8 ++
2200 src/liblzma/common/filter_encoder.c |  11 ++
2201 src/liblzma/simple/Makefile.inc     |   4 +
2202 src/liblzma/simple/arm64.c          | 227 ++++++++++++++++++++++++++++++++++++
2203 src/liblzma/simple/simple_coder.h   |   9 ++
2204 src/liblzma/simple/simple_decoder.h |   4 +
2205 src/liblzma/simple/simple_encoder.h |   2 +
2206 11 files changed, 313 insertions(+), 3 deletions(-)
2207
2208commit 177bdc922cb17bd0fd831ab8139dfae912a5c2b8
2209Author: Lasse Collin <lasse.collin@tukaani.org>
2210Date:   2022-09-17 22:42:18 +0300
2211
2212    liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
2213
2214    This will be needed for the ARM64 BCJ filter as it will use
2215    its own options struct.
2216
2217 src/liblzma/simple/arm.c            | 2 +-
2218 src/liblzma/simple/armthumb.c       | 2 +-
2219 src/liblzma/simple/ia64.c           | 2 +-
2220 src/liblzma/simple/powerpc.c        | 2 +-
2221 src/liblzma/simple/simple_coder.c   | 4 ++--
2222 src/liblzma/simple/simple_private.h | 2 +-
2223 src/liblzma/simple/sparc.c          | 2 +-
2224 src/liblzma/simple/x86.c            | 3 ++-
2225 8 files changed, 10 insertions(+), 9 deletions(-)
2226
2227commit c3592d0a55114144686ecf960cb516d6b31c98e9
2228Author: Lasse Collin <lasse.collin@tukaani.org>
2229Date:   2022-09-16 17:08:53 +0300
2230
2231    Tests: Add a test file for lzma_index_append() integer overflow bug.
2232
2233    This test fails before commit 18d7facd3802b55c287581405c4d49c98708c136.
2234
2235    test_files.sh now runs xz -l for bad-3-index-uncomp-overflow.xz
2236    because only then the previously-buggy code path gets tested.
2237    Normal decompression doesn't use lzma_index_append() at all.
2238    Instead, lzma_index_hash functions are used and those already
2239    did the overflow check.
2240
2241 tests/files/README                         |  10 ++++++++++
2242 tests/files/bad-3-index-uncomp-overflow.xz | Bin 0 -> 132 bytes
2243 tests/test_files.sh                        |   8 ++++++++
2244 3 files changed, 18 insertions(+)
2245
2246commit 982b29f828079a2a26253a40e975127a40a7d2bd
2247Author: Lasse Collin <lasse.collin@tukaani.org>
2248Date:   2022-09-16 15:10:07 +0300
2249
2250    Translations: Add Turkish translation.
2251
2252 po/LINGUAS |   1 +
2253 po/tr.po   | 977 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2254 2 files changed, 978 insertions(+)
2255
2256commit 1fc088d9f6d1697924aaeac8cd1fb9918d1532e2
2257Author: Lasse Collin <lasse.collin@tukaani.org>
2258Date:   2022-09-16 14:09:07 +0300
2259
2260    Update THANKS.
2261
2262 THANKS | 1 +
2263 1 file changed, 1 insertion(+)
2264
2265commit 097c7b67ce86ff16a7cef7631b39e5ca4ee3d420
2266Author: Lasse Collin <lasse.collin@tukaani.org>
2267Date:   2022-09-16 14:07:03 +0300
2268
2269    xzgrep: Fix compatibility with old shells.
2270
2271    Running the current xzgrep on Slackware 10.1 with GNU bash 3.00.15:
2272
2273        xzgrep: line 231: syntax error near unexpected token `;;'
2274
2275    On SCO OpenServer 5.0.7 with Korn Shell 93r:
2276
2277        syntax error at line 231 : `;;' unexpected
2278
2279    Turns out that some old shells don't like apostrophes (') inside
2280    command substitutions. For example, the following fails:
2281
2282        x=$(echo foo
2283        # asdf'zxcv
2284        echo bar)
2285        printf '%s\n' "$x"
2286
2287    The problem was introduced by commits
2288    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 (2022-03-29),
2289    bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5 (2022-07-18), and
2290    a648978b20495b7aa4a8b029c5a810b5ad9d08ff (2022-07-19).
2291    5.2.6 is the only stable release that included
2292    this problem.
2293
2294    Thanks to Kevin R. Bulgrien for reporting the problem
2295    on SCO OpenServer 5.0.7 and for providing the fix.
2296
2297 src/scripts/xzgrep.in | 6 +++---
2298 1 file changed, 3 insertions(+), 3 deletions(-)
2299
2300commit f2d084fe3f0d6d71488bfc6987f26542f67bfd99
2301Author: Lasse Collin <lasse.collin@tukaani.org>
2302Date:   2022-09-09 14:12:30 +0300
2303
2304    Tests: Silence warnings about unused functions from tuktest.h.
2305
2306    Warnings about unused tuktest_run_test conveniently tell which
2307    test programs haven't been converted to tuktest.h yet but I
2308    silenced that warning too for now anyway.
2309
2310    It is fine to use __attribute__((__unused__)) even when the
2311    function is actually used because the attribute only means
2312    that the function might be unused.
2313
2314 tests/tuktest.h | 10 ++++++++++
2315 1 file changed, 10 insertions(+)
2316
2317commit f8ee61e74eb40600445fdb601c374d582e1e9c8a
2318Author: Lasse Collin <lasse.collin@tukaani.org>
2319Date:   2022-09-09 13:51:57 +0300
2320
2321    liblzma: lzma_filters_copy: Keep dest[] unmodified if an error occurs.
2322
2323    lzma_stream_encoder() and lzma_stream_encoder_mt() always assumed
2324    this. Before this patch, failing lzma_filters_copy() could result
2325    in free(invalid_pointer) or invalid memory reads in stream_encoder.c
2326    or stream_encoder_mt.c.
2327
2328    To trigger this, allocating memory for a filter options structure
2329    has to fail. These are tiny allocations so in practice they very
2330    rarely fail.
2331
2332    Certain badness in the filter chain array could also make
2333    lzma_filters_copy() fail but both stream_encoder.c and
2334    stream_encoder_mt.c validate the filter chain before
2335    trying to copy it, so the crash cannot occur this way.
2336
2337 src/liblzma/api/lzma/filter.h      |  4 +++-
2338 src/liblzma/common/filter_common.c | 18 ++++++++++++------
2339 2 files changed, 15 insertions(+), 7 deletions(-)
2340
2341commit 18d7facd3802b55c287581405c4d49c98708c136
2342Author: Jia Tan <jiat0218@gmail.com>
2343Date:   2022-09-02 20:18:55 +0800
2344
2345    liblzma: lzma_index_append: Add missing integer overflow check.
2346
2347    The documentation in src/liblzma/api/lzma/index.h suggests that
2348    both the unpadded (compressed) size and the uncompressed size
2349    are checked for overflow, but only the unpadded size was checked.
2350    The uncompressed check is done first since that is more likely to
2351    occur than the unpadded or index field size overflows.
2352
2353 src/liblzma/common/index.c | 4 ++++
2354 1 file changed, 4 insertions(+)
2355
2356commit 9ac06cb5b85274d18f9f70d82cf2d8c9c1151bd4
2357Author: Lasse Collin <lasse.collin@tukaani.org>
2358Date:   2022-09-08 15:11:08 +0300
2359
2360    Update THANKS.
2361
2362 THANKS | 1 +
2363 1 file changed, 1 insertion(+)
2364
2365commit ba3e4ba2de034ae93a513f9c3a0823b80cdb66dc
2366Author: Jia Tan <jiat0218@gmail.com>
2367Date:   2022-09-08 15:07:00 +0300
2368
2369    CMake: Clarify a comment about Windows symlinks without file extension.
2370
2371 CMakeLists.txt | 7 +++----
2372 1 file changed, 3 insertions(+), 4 deletions(-)
2373
2374commit 17485e884ce5c74315f29a8a1507bc706cd5cd1d
2375Author: Lasse Collin <lasse.collin@tukaani.org>
2376Date:   2022-09-08 15:02:41 +0300
2377
2378    CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.
2379
2380    The previous commit split liblzma.map into liblzma_linux.map and
2381    liblzma_generic.map. This commit updates the CMake build for those.
2382
2383    common_w32res.rc dependency was listed under Linux/FreeBSD while
2384    obviously it belongs to Windows when building a DLL.
2385
2386 CMakeLists.txt | 24 +++++++++++++++++++-----
2387 1 file changed, 19 insertions(+), 5 deletions(-)
2388
2389commit 913ddc5572b9455fa0cf299be2e35c708840e922
2390Author: Lasse Collin <lasse.collin@tukaani.org>
2391Date:   2022-09-04 23:23:00 +0300
2392
2393    liblzma: Vaccinate against an ill patch from RHEL/CentOS 7.
2394
2395    RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded
2396    encoder that is behind #ifdef LZMA_UNSTABLE in the API headers.
2397    In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map.
2398    API/ABI compatibility tracking isn't done between development
2399    releases so newer releases didn't have XZ_5.1.2alpha anymore.
2400
2401    Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep
2402    the exported symbols compatible with 5.1.2alpha. After checking
2403    the ABI changes it turned out that >= 5.2.0 ABI is backward
2404    compatible with the threaded encoder functions from 5.1.2alpha
2405    (but not vice versa as fixes and extensions to these functions
2406    were made between 5.1.2alpha and 5.2.0).
2407
2408    In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with
2409    xz-5.2.2-compat-libs.patch to modify liblzma.map:
2410
2411      - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and
2412        lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha.
2413
2414      - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was
2415        an error; the intention was to keep using XZ_5.2 (XZ_5.2.2
2416        has never been used in XZ Utils). So XZ_5.2.2 lists all
2417        symbols that were listed under XZ_5.2 before the patch.
2418        lzma_stream_encoder_mt and _mt_memusage are included too so
2419        they are listed both here and under XZ_5.1.2alpha.
2420
2421    The patch didn't add any __asm__(".symver ...") lines to the .c
2422    files. Thus the resulting liblzma.so exports the threaded encoder
2423    functions under XZ_5.1.2alpha only. Listing the two functions
2424    also under XZ_5.2.2 in liblzma.map has no effect without
2425    matching .symver lines.
2426
2427    The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked
2428    against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7.
2429    This is unfortunate but this alone isn't too bad as the problem
2430    is contained within RHEL/CentOS 7 and doesn't affect users
2431    of other distributions. It could also be fixed internally in
2432    RHEL/CentOS 7.
2433
2434    The second problem is more serious: In XZ Utils 5.2.2 the API
2435    headers don't have #ifdef LZMA_UNSTABLE for obvious reasons.
2436    This is true in RHEL/CentOS 7 version too. Thus now programs
2437    using new APIs can be compiled without an extra #define. However,
2438    the programs end up depending on symbol version XZ_5.1.2alpha
2439    (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would
2440    with an unpatched XZ Utils 5.2.2. This means that such binaries
2441    won't run on other distributions shipping XZ Utils >= 5.2.0 as
2442    they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide
2443    XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch
2444    luckily isn't included there anymore with XZ Utils 5.2.4.)
2445
2446    Binaries built by RHEL/CentOS 7 users get distributed and then
2447    people wonder why they don't run on some other distribution.
2448    Seems that people have found out about the patch and been copying
2449    it to some build scripts, seemingly curing the symptoms but
2450    actually spreading the illness further and outside RHEL/CentOS 7.
2451
2452    The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it
2453    had spread at least to EasyBuild. I heard about the events only
2454    recently. :-(
2455
2456    This commit splits liblzma.map into two versions: one for
2457    GNU/Linux and another for other OSes that can use symbol versioning
2458    (FreeBSD, Solaris, maybe others). The Linux-specific file and the
2459    matching additions to .c files add full compatibility with binaries
2460    that have been built against a RHEL/CentOS-patched liblzma. Builds
2461    for OSes other than GNU/Linux won't get the vaccine as they should
2462    be immune to the problem (I really hope that no build script uses
2463    the RHEL/CentOS 7 patch outside GNU/Linux).
2464
2465    The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2
2466    are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way
2467    if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building,
2468    the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2
2469    since XZ_5.2 {...} is the first one that lists that function.
2470    Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2
2471    will be missing but that's still a minor problem compared to
2472    only having lzma_stream_encoder_mt@@XZ_5.1.2alpha!
2473
2474    The "local: *;" line was moved to XZ_5.0 so that it doesn't need
2475    to be moved around. It doesn't matter where it is put.
2476
2477    Having two similar liblzma_*.map files is a bit silly as it is,
2478    at least for now, easily possible to generate the generic one
2479    from the Linux-specific file. But that adds extra steps and
2480    increases the risk of mistakes when supporting more than one
2481    build system. So I rather maintain two files in parallel and let
2482    validate_map.sh check that they are in sync when "make mydist"
2483    is run.
2484
2485    This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and
2486    lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these
2487    weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was
2488    for these two). I added these anyway because someone might
2489    misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2
2490    (@@XZ_5.2.2) versions were exported too.
2491
2492    At glance one could suggest using __typeof__ to copy the function
2493    prototypes when making aliases. However, this doesn't work trivially
2494    because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure)
2495    and it won't change symbol visibility from hidden to default (done
2496    by LZMA_API()). Attributes could be copied with __copy__ attribute
2497    but that needs GCC 9 and a fallback method would be needed anyway.
2498
2499    This uses __symver__ attribute with GCC >= 10 and
2500    __asm__(".symver ...") with everything else. The attribute method
2501    is required for LTO (-flto) support with GCC. Using -flto with
2502    GCC older than 10 is now broken on GNU/Linux and will not be fixed
2503    (can silently result in a broken liblzma build that has dangerously
2504    incorrect symbol versions). LTO builds with Clang seem to work
2505    with the traditional __asm__(".symver ...") method.
2506
2507    Thanks to Boud Roukema for reporting the problem and discussing
2508    the details and testing the fix.
2509
2510 configure.ac                                     |  23 +++-
2511 src/liblzma/Makefile.am                          |  10 +-
2512 src/liblzma/common/block_buffer_encoder.c        |  18 ++++
2513 src/liblzma/common/common.c                      |  14 +++
2514 src/liblzma/common/common.h                      |  28 +++++
2515 src/liblzma/common/hardware_cputhreads.c         |  12 +++
2516 src/liblzma/common/stream_encoder_mt.c           |  42 ++++++++
2517 src/liblzma/{liblzma.map => liblzma_generic.map} |   6 +-
2518 src/liblzma/liblzma_linux.map                    | 131 +++++++++++++++++++++++
2519 src/liblzma/validate_map.sh                      | 113 +++++++++++++++++--
2520 10 files changed, 382 insertions(+), 15 deletions(-)
2521
2522commit 80a1a8bb838842a2be343bd88ad1462c21c5e2c9
2523Author: Lasse Collin <lasse.collin@tukaani.org>
2524Date:   2022-08-31 16:42:04 +0300
2525
2526    CMake: Add xz symlinks.
2527
2528    These are a minor thing especially since the xz build has
2529    some real problems still like lack of large file support
2530    on 32-bit systems but I'll commit this since the code exists.
2531
2532    Thanks to Jia Tan.
2533
2534 CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++++++-
2535 1 file changed, 37 insertions(+), 1 deletion(-)
2536
2537commit a4193bb6d85d7765b1b87faeab3e50106d3ab2e9
2538Author: Lasse Collin <lasse.collin@tukaani.org>
2539Date:   2022-08-31 16:29:38 +0300
2540
2541    CMake: Put xz man page install under if(UNIX) like is for xzdec.
2542
2543    Thanks to Jia Tan.
2544
2545 CMakeLists.txt | 8 +++++---
2546 1 file changed, 5 insertions(+), 3 deletions(-)
2547
2548commit c1555b1a221a1427d4d650647531016d754bc4da
2549Author: Lasse Collin <lasse.collin@tukaani.org>
2550Date:   2022-08-22 18:16:40 +0300
2551
2552    Bump version number for 5.3.3alpha.
2553
2554 src/liblzma/api/lzma/version.h | 2 +-
2555 src/liblzma/liblzma.map        | 2 +-
2556 2 files changed, 2 insertions(+), 2 deletions(-)
2557
2558commit 44fedddc11c3f6ec2f7fe35a3e38f15ca93f90eb
2559Author: Lasse Collin <lasse.collin@tukaani.org>
2560Date:   2022-08-22 18:13:56 +0300
2561
2562    Add NEWS for 5.3.3alpha.
2563
2564 NEWS | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2565 1 file changed, 119 insertions(+)
2566
2567commit a93e235d7ca764cc19f8f9f9063b40ff361c3cfa
2568Author: Lasse Collin <lasse.collin@tukaani.org>
2569Date:   2022-07-12 17:59:41 +0300
2570
2571    Translations: Add Portuguese translation.
2572
2573    Jia Tan made white-space changes and also changed "Language: pt_BR\n"
2574    to pt. The translator wasn't reached so I'm hoping these changes
2575    are OK and will commit it without translator's approval.
2576
2577    Thanks to Pedro Albuquerque and Jia Tan.
2578
2579 po/LINGUAS |    1 +
2580 po/pt.po   | 1001 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2581 2 files changed, 1002 insertions(+)
2582
2583commit e7cf5a946f25e40d77f45e41f0dee7d42a04e9ae
2584Author: Lasse Collin <lasse.collin@tukaani.org>
2585Date:   2022-07-10 21:16:40 +0300
2586
2587    Translations: Add Serbian translation.
2588
2589    Quite a few white-space changes were made by Jia Tan to make
2590    this look good. Contacting the translator didn't succeed so
2591    I'm committing this without getting translator's approval.
2592
2593    Thanks to Мирослав Николић (Miroslav Nikolic) and Jia Tan.
2594
2595 po/LINGUAS |   1 +
2596 po/sr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2597 2 files changed, 988 insertions(+)
2598
2599commit cc8617ab53b1f2a4da212fa76c92fe538269c5de
2600Author: Lasse Collin <lasse.collin@tukaani.org>
2601Date:   2022-07-04 23:51:36 +0300
2602
2603    Translations: Add Swedish translation.
2604
2605    Thanks to Sebastian Rasmussen and Jia Tan.
2606
2607 po/LINGUAS |   1 +
2608 po/sv.po   | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2609 2 files changed, 984 insertions(+)
2610
2611commit c613598c358b640682d0ca2aed38fa7df763e8c7
2612Author: Lasse Collin <lasse.collin@tukaani.org>
2613Date:   2022-07-04 23:40:27 +0300
2614
2615    Translations: Add Esperanto translation.
2616
2617    Thanks to Keith Bowes and Jia Tan.
2618
2619 po/LINGUAS |   1 +
2620 po/eo.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2621 2 files changed, 985 insertions(+)
2622
2623commit 659a587d678f21e98e91d2751c31d4ce050c081a
2624Author: Lasse Collin <lasse.collin@tukaani.org>
2625Date:   2022-07-01 00:22:33 +0300
2626
2627    Translations: Add Catalan translation.
2628
2629    Thanks to Jordi Mas and Jia Tan.
2630
2631 po/LINGUAS |    1 +
2632 po/ca.po   | 1076 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2633 2 files changed, 1077 insertions(+)
2634
2635commit 739fd8c9bdf1d85f57d56642aad87148d4779530
2636Author: Lasse Collin <lasse.collin@tukaani.org>
2637Date:   2022-06-30 17:47:08 +0300
2638
2639    Translations: Add Ukrainian translation.
2640
2641    Thanks to Yuri Chornoivan and Jia Tan.
2642
2643 po/LINGUAS |   1 +
2644 po/uk.po   | 996 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2645 2 files changed, 997 insertions(+)
2646
2647commit 73280550b111930c62a667e56add8fd574f80bc8
2648Author: Lasse Collin <lasse.collin@tukaani.org>
2649Date:   2022-06-30 17:45:26 +0300
2650
2651    Translators: Add Romanian translation.
2652
2653    Thanks to Remus-Gabriel Chelu and Jia Tan.
2654
2655 po/LINGUAS |    1 +
2656 po/ro.po   | 1016 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2657 2 files changed, 1017 insertions(+)
2658
2659commit 2465f5b825152714b2c357d96c2422c31109d320
2660Author: Lasse Collin <lasse.collin@tukaani.org>
2661Date:   2022-06-29 18:33:32 +0300
2662
2663    Translations: Update Brazilian Portuguese translation.
2664
2665    One msgstr was changed. The diff is long due to changes
2666    in the source code line numbers in the comments.
2667
2668    Thanks to Rafael Fontenelle.
2669
2670 po/pt_BR.po | 186 ++++++++++++++++++++++++++++++------------------------------
2671 1 file changed, 92 insertions(+), 94 deletions(-)
2672
2673commit 434e1ffd3e62719d509da10b646216f5ef53fe4d
2674Author: Lasse Collin <lasse.collin@tukaani.org>
2675Date:   2022-06-29 18:04:44 +0300
2676
2677    Translations: Add Croatian translation.
2678
2679    Thanks to Božidar Putanec and Jia Tan.
2680
2681 po/LINGUAS |   1 +
2682 po/hr.po   | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2683 2 files changed, 988 insertions(+)
2684
2685commit 0732d0f7065c9bd48bfe4f5983144ae970c4a499
2686Author: Lasse Collin <lasse.collin@tukaani.org>
2687Date:   2022-06-29 17:58:48 +0300
2688
2689    Translations: Add Spanish translation.
2690
2691    Thanks to Cristian Othón Martínez Vera and Jia Tan.
2692
2693 po/LINGUAS |   1 +
2694 po/es.po   | 984 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2695 2 files changed, 985 insertions(+)
2696
2697commit 9899b0f82bc130998d1f1f618a6ab805b73f2696
2698Author: Lasse Collin <lasse.collin@tukaani.org>
2699Date:   2022-06-29 17:49:43 +0300
2700
2701    Translations: Add Korean translation.
2702
2703    Thanks to Seong-ho Cho and Jia Tan.
2704
2705 po/LINGUAS |   1 +
2706 po/ko.po   | 972 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2707 2 files changed, 973 insertions(+)
2708
2709commit 65217eaf6bd195f3ef027d4ac55d57b7d133d69f
2710Author: Lasse Collin <lasse.collin@tukaani.org>
2711Date:   2020-03-16 21:57:21 +0200
2712
2713    Translations: Rebuild cs.po to avoid incorrect fuzzy strings.
2714
2715    "make dist" updates the .po files and the fuzzy strings would
2716    result in multiple very wrong translations.
2717
2718 po/cs.po | 592 ++++++++++++++++++++++++++++++++++-----------------------------
2719 1 file changed, 322 insertions(+), 270 deletions(-)
2720
2721commit e56ff423ee7af9e648e16b132f0d835d2cb4db26
2722Author: Lasse Collin <lasse.collin@tukaani.org>
2723Date:   2020-03-16 17:30:39 +0200
2724
2725    Translations: Add partial Danish translation.
2726
2727    I made a few minor white space changes without getting them
2728    approved by the Danish translation team.
2729
2730 po/LINGUAS |   1 +
2731 po/da.po   | 896 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2732 2 files changed, 897 insertions(+)
2733
2734commit 43e09c62e77cb8807d932c81de4decbdb956e184
2735Author: Lasse Collin <lasse.collin@tukaani.org>
2736Date:   2020-03-11 22:37:54 +0200
2737
2738    Translations: Add hu, zh_CN, and zh_TW.
2739
2740    I made a few white space changes to these without getting them
2741    approved by the translation teams. (I tried to contact the hu and
2742    zh_TW teams but didn't succeed. I didn't contact the zh_CN team.)
2743
2744 po/LINGUAS  |   3 +
2745 po/hu.po    | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2746 po/zh_CN.po | 963 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2747 po/zh_TW.po | 956 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2748 4 files changed, 2907 insertions(+)
2749
2750commit 982b6b198ae1ffe6093236dd8a3d03d1415b912b
2751Author: Lasse Collin <lasse.collin@tukaani.org>
2752Date:   2020-03-11 14:33:30 +0200
2753
2754    Translations: Update vi.po to match the file from the TP.
2755
2756    The translated strings haven't been updated but word wrapping
2757    is different.
2758
2759 po/vi.po | 407 ++++++++++++++++++++++++++++-----------------------------------
2760 1 file changed, 179 insertions(+), 228 deletions(-)
2761
2762commit 801f39691fc4abc6dd33d7653d498781b593f3eb
2763Author: Lasse Collin <lasse.collin@tukaani.org>
2764Date:   2020-03-11 14:18:03 +0200
2765
2766    Translations: Add fi and pt_BR, and update de, fr, it, and pl.
2767
2768    The German translation isn't identical to the file in
2769    the Translation Project but the changes (white space changes
2770    only) were approved by the translator Mario Blättermann.
2771
2772 po/LINGUAS  |    2 +
2773 po/de.po    |  476 ++++++++++++++--------------
2774 po/fi.po    |  974 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2775 po/fr.po    |  272 ++++++++--------
2776 po/it.po    |  479 ++++++++++++----------------
2777 po/pl.po    |  239 +++++++-------
2778 po/pt_BR.po | 1001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2779 7 files changed, 2697 insertions(+), 746 deletions(-)
2780
2781commit 311e4f85ede5d2f0bb71f3ad70b5b7db1b5adf33
2782Author: Lasse Collin <lasse.collin@tukaani.org>
2783Date:   2022-08-22 17:27:19 +0300
2784
2785    xz: Try to clarify --memlimit-mt-decompress vs. --memlimit-compress.
2786
2787 src/xz/xz.1 | 31 +++++++++++++++++++------------
2788 1 file changed, 19 insertions(+), 12 deletions(-)
2789
2790commit df23c31000283c00e5ef1ca32a0bc3bb757bd707
2791Author: Lasse Collin <lasse.collin@tukaani.org>
2792Date:   2022-08-22 16:46:18 +0300
2793
2794    CMake: Add liblzma tests.
2795
2796    Thanks to Jia Tan for the patch.
2797
2798 CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
2799 1 file changed, 52 insertions(+), 1 deletion(-)
2800
2801commit 02a777f9c422d3b5ec895078530bb1a2b6f7bdf5
2802Author: Lasse Collin <lasse.collin@tukaani.org>
2803Date:   2022-08-19 23:32:22 +0300
2804
2805    xz: Revise --info-memory output.
2806
2807    The strings could be more descriptive but it's good
2808    to have some version of this committed now.
2809
2810    --robot mode wasn't changed yet.
2811
2812 src/xz/hardware.c | 32 ++++++++++++++++++++++++++------
2813 src/xz/xz.1       |  1 +
2814 2 files changed, 27 insertions(+), 6 deletions(-)
2815
2816commit f864f6d42eab57ea8ed82cc2dd19a03b51377442
2817Author: Lasse Collin <lasse.collin@tukaani.org>
2818Date:   2022-08-19 23:12:02 +0300
2819
2820    xz: Update the man page for threaded decompression and memlimits.
2821
2822    This documents the changes made in commits
2823    6c6da57ae2aa962aabde6892442227063d87e88c,
2824    cad299008cf73ec566f0662a9cf2b94f86a99659, and
2825    898faa97287a756231c663a3ed5165672b417207.
2826
2827    The --info-memory bit hasn't been finished yet
2828    even though it's already mentioned in this commit
2829    under --memlimit-mt-decompress and --threads.
2830
2831 src/xz/xz.1 | 148 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
2832 1 file changed, 121 insertions(+), 27 deletions(-)
2833
2834commit d13bfcc0056617dd648f655a01653932fad7067f
2835Author: Lasse Collin <lasse.collin@tukaani.org>
2836Date:   2022-08-18 17:49:16 +0300
2837
2838    Build: Include the CMake files in the distribution.
2839
2840    This was supposed to be done in 2020 with 5.2.5 release
2841    already but it was noticed only today. 5.2.5 and 5.2.6
2842    even mention experiemental CMake support in the NEWS entries.
2843
2844    Thanks to Olivier B. for reporting the problem.
2845
2846 Makefile.am | 2 ++
2847 1 file changed, 2 insertions(+)
2848
2849commit e66787bcfefdb93f19c974f895f65969a77937b0
2850Author: Lasse Collin <lasse.collin@tukaani.org>
2851Date:   2022-08-18 17:38:05 +0300
2852
2853    Windows: Fix broken liblzma.dll build with Visual Studio project files.
2854
2855    The bug was introduced in 352ba2d69af2136bc814aa1df1a132559d445616
2856    "Windows: Fix building of resource files when config.h isn't used."
2857
2858    That commit fixed liblzma.dll build with CMake while keeping it
2859    working with Autotools on Windows but the VS project files were
2860    forgotten.
2861
2862    I haven't tested these changes.
2863
2864    Thanks to Olivier B. for reporting the bug and for the initial patch.
2865
2866 windows/vs2013/liblzma_dll.vcxproj | 6 ++++++
2867 windows/vs2017/liblzma_dll.vcxproj | 6 ++++++
2868 windows/vs2019/liblzma_dll.vcxproj | 6 ++++++
2869 3 files changed, 18 insertions(+)
2870
2871commit c4e8e5fb311225b8b48d34157891a640b2535e0c
2872Author: Lasse Collin <lasse.collin@tukaani.org>
2873Date:   2022-08-18 17:16:49 +0300
2874
2875    liblzma: Threaded decoder: Improve LZMA_FAIL_FAST when LZMA_FINISH is used.
2876
2877    It will now return LZMA_DATA_ERROR (not LZMA_OK or LZMA_BUF_ERROR)
2878    if LZMA_FINISH is used and there isn't enough input to finish
2879    decoding the Block Header or the Block. The use of LZMA_DATA_ERROR
2880    is simpler and the less risky than LZMA_BUF_ERROR but this might
2881    be changed before 5.4.0.
2882
2883 src/liblzma/api/lzma/container.h       |  6 +++++
2884 src/liblzma/common/stream_decoder_mt.c | 42 ++++++++++++++++++++++++++++++++++
2885 2 files changed, 48 insertions(+)
2886
2887commit 6dcf606e7efa2b259f0262f9e2f61e00116842d3
2888Author: Lasse Collin <lasse.collin@tukaani.org>
2889Date:   2022-08-12 18:31:47 +0300
2890
2891    Add NEWS for 5.2.6.
2892
2893 NEWS | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2894 1 file changed, 121 insertions(+)
2895
2896commit 413b86fcf8934fae5a004f378a9483d37d8fcaab
2897Author: Lasse Collin <lasse.collin@tukaani.org>
2898Date:   2022-08-12 14:28:41 +0300
2899
2900    Add Jia Tan to AUTHORS.
2901
2902 AUTHORS | 2 +-
2903 1 file changed, 1 insertion(+), 1 deletion(-)
2904
2905commit 352672732c346c546ff3c26d0605bc0ed1c8b7c7
2906Author: Lasse Collin <lasse.collin@tukaani.org>
2907Date:   2022-07-25 19:28:26 +0300
2908
2909    Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
2910
2911    This makes ChangeLog smaller.
2912
2913 Makefile.am | 2 +-
2914 1 file changed, 1 insertion(+), 1 deletion(-)
2915
2916commit 6f6d11225d6016be2bbb55d845b66f6b04d048df
2917Author: Lasse Collin <lasse.collin@tukaani.org>
2918Date:   2022-07-25 19:11:05 +0300
2919
2920    Translations: Change the copyright comment string to use with po4a.
2921
2922    This affects the second line in po4a/xz-man.pot. The man pages of
2923    xzdiff, xzgrep, and xzmore are from GNU gzip and under GNU GPLv2+
2924    while the rest of the man pages are in the public domain.
2925
2926 po4a/update-po | 2 +-
2927 1 file changed, 1 insertion(+), 1 deletion(-)
2928
2929commit 61f8ec804abdb4c5dac01e8ae9b90c7be58a5c24
2930Author: Jia Tan <jiat0218@gmail.com>
2931Date:   2022-07-25 18:30:05 +0300
2932
2933    liblzma: Refactor lzma_mf_is_supported() to use a switch-statement.
2934
2935 src/liblzma/lz/lz_encoder.c | 32 ++++++++++++++------------------
2936 1 file changed, 14 insertions(+), 18 deletions(-)
2937
2938commit 4d80b463a1251aa22eabc87d2732fec13b1adda6
2939Author: Jia Tan <jiat0218@gmail.com>
2940Date:   2022-07-25 18:20:01 +0300
2941
2942    Build: Don't allow empty LIST in --enable-match-finders=LIST.
2943
2944    It's enforced only when a match finder is needed, that is,
2945    when LZMA1 or LZMA2 encoder is enabled.
2946
2947 configure.ac | 4 ++++
2948 1 file changed, 4 insertions(+)
2949
2950commit 9cc721af5436908f2d5a828aebbc4050a32a3487
2951Author: Lasse Collin <lasse.collin@tukaani.org>
2952Date:   2022-07-24 13:27:48 +0300
2953
2954    xz: Update the man page that change to --keep will be in 5.2.6.
2955
2956 src/xz/xz.1 | 4 ++--
2957 1 file changed, 2 insertions(+), 2 deletions(-)
2958
2959commit b81bf0c7d1873e52a4086a9abb494471d652cb55
2960Author: Lasse Collin <lasse.collin@tukaani.org>
2961Date:   2022-07-19 23:23:54 +0300
2962
2963    Update THANKS.
2964
2965 THANKS | 1 +
2966 1 file changed, 1 insertion(+)
2967
2968commit 340cf1ec3927767046b8293a49da3db4e393f426
2969Author: Nicholas Jackson <nickajacks1@gmail.com>
2970Date:   2022-07-17 17:39:23 -0700
2971
2972    CMake: Add missing source file to liblzma build
2973
2974 CMakeLists.txt | 1 +
2975 1 file changed, 1 insertion(+)
2976
2977commit d796b6d7fdb8b7238b277056cf9146cce25db604
2978Author: Lasse Collin <lasse.collin@tukaani.org>
2979Date:   2022-07-19 23:19:49 +0300
2980
2981    xzgrep man page: Document exit statuses.
2982
2983 src/scripts/xzgrep.1 | 15 ++++++++++++++-
2984 1 file changed, 14 insertions(+), 1 deletion(-)
2985
2986commit 923bf96b55e5216a6c8df9d8331934f54784390e
2987Author: Lasse Collin <lasse.collin@tukaani.org>
2988Date:   2022-07-19 23:13:24 +0300
2989
2990    xzgrep: Improve error handling, especially signals.
2991
2992    xzgrep wouldn't exit on SIGPIPE or SIGQUIT when it clearly
2993    should have. It's quite possible that it's not perfect still
2994    but at least it's much better.
2995
2996    If multiple exit statuses compete, now it tries to pick
2997    the largest of value.
2998
2999    Some comments were added.
3000
3001    The exit status handling of signals is still broken if the shell
3002    uses values larger than 255 in $? to indicate that a process
3003    died due to a signal ***and*** their "exit" command doesn't take
3004    this into account. This seems to work well with the ksh and yash
3005    versions I tried. However, there is a report in gzip/zgrep that
3006    OpenSolaris 5.11 (not 5.10) has a problem with "exit" truncating
3007    the argument to 8 bits:
3008
3009        https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22900#25
3010
3011    Such a bug would break xzgrep but I didn't add a workaround
3012    at least for now. 5.11 is old and I don't know if the problem
3013    exists in modern descendants, or if the problem exists in other
3014    ksh implementations in use.
3015
3016 src/scripts/xzgrep.in | 72 +++++++++++++++++++++++++++++++++++++--------------
3017 1 file changed, 53 insertions(+), 19 deletions(-)
3018
3019commit a648978b20495b7aa4a8b029c5a810b5ad9d08ff
3020Author: Lasse Collin <lasse.collin@tukaani.org>
3021Date:   2022-07-19 00:10:55 +0300
3022
3023    xzgrep: Make the fix for ZDI-CAN-16587 more robust.
3024
3025    I don't know if this can make a difference in the real world
3026    but it looked kind of suspicious (what happens with sed
3027    implementations that cannot process very long lines?).
3028    At least this commit shouldn't make it worse.
3029
3030 src/scripts/xzgrep.in | 5 ++++-
3031 1 file changed, 4 insertions(+), 1 deletion(-)
3032
3033commit bd7b290f3fe4faeceb7d3497ed9bf2e6ed5e7dc5
3034Author: Lasse Collin <lasse.collin@tukaani.org>
3035Date:   2022-07-18 21:52:31 +0300
3036
3037    xzgrep: Use grep -H --label when available (GNU, *BSDs).
3038
3039    It avoids the use of sed for prefixing filenames to output lines.
3040    Using sed for that is slower and prone to security bugs so now
3041    the sed method is only used as a fallback.
3042
3043    This also fixes an actual bug: When grepping a binary file,
3044    GNU grep nowadays prints its diagnostics to stderr instead of
3045    stdout and thus the sed-method for prefixing the filename doesn't
3046    work. So with this commit grepping binary files gives reasonable
3047    output with GNU grep now.
3048
3049    This was inspired by zgrep but the implementation is different.
3050
3051 src/scripts/xzgrep.in | 21 +++++++++++++++++++++
3052 1 file changed, 21 insertions(+)
3053
3054commit b56729af9f1a596e57aeefd7570d8d7dce5c9f52
3055Author: Lasse Collin <lasse.collin@tukaani.org>
3056Date:   2022-07-18 21:10:25 +0300
3057
3058    xzgrep: Use -e to specify the pattern to grep.
3059
3060    Now we don't need the separate test for adding the -q option
3061    as it can be added directly in the two places where it's needed.
3062
3063 src/scripts/xzgrep.in | 12 ++++--------
3064 1 file changed, 4 insertions(+), 8 deletions(-)
3065
3066commit bad61b5997e6647911974022bfb72f3d4818a594
3067Author: Lasse Collin <lasse.collin@tukaani.org>
3068Date:   2022-07-18 19:18:48 +0300
3069
3070    Scripts: Use printf instead of echo in a few places.
3071
3072    It's a good habbit as echo has some portability corner cases
3073    when the string contents can be anything.
3074
3075 src/scripts/xzdiff.in | 6 +++---
3076 src/scripts/xzgrep.in | 4 ++--
3077 src/scripts/xzless.in | 4 ++--
3078 src/scripts/xzmore.in | 8 ++++----
3079 4 files changed, 11 insertions(+), 11 deletions(-)
3080
3081commit 6a4a4a7d2667837dc824c26fcb19ed6ca5aff645
3082Author: Lasse Collin <lasse.collin@tukaani.org>
3083Date:   2022-07-17 21:36:25 +0300
3084
3085    xzgrep: Add more LC_ALL=C to avoid bugs with multibyte characters.
3086
3087    Also replace one use of expr with printf.
3088
3089    The rationale for LC_ALL=C was already mentioned in
3090    69d1b3fc29677af8ade8dc15dba83f0589cb63d6 that fixed a security
3091    issue. However, unrelated uses weren't changed in that commit yet.
3092
3093    POSIX says that with sed and such tools one should use LC_ALL=C
3094    to ensure predictable behavior when strings contain byte sequences
3095    that aren't valid multibyte characters in the current locale. See
3096    under "Application usage" in here:
3097
3098    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
3099
3100    With GNU sed invalid multibyte strings would work without this;
3101    it's documented in its Texinfo manual. Some other implementations
3102    aren't so forgiving.
3103
3104 src/scripts/xzgrep.in | 14 ++++++++------
3105 1 file changed, 8 insertions(+), 6 deletions(-)
3106
3107commit b48f9d615f2c2e8d2f6e253d0e48ee66d0652b68
3108Author: Lasse Collin <lasse.collin@tukaani.org>
3109Date:   2022-07-17 20:55:16 +0300
3110
3111    xzgrep: Fix parsing of certain options.
3112
3113    Fix handling of "xzgrep -25 foo" (in GNU grep "grep -25 foo" is
3114    an alias for "grep -C25 foo"). xzgrep would treat "foo" as filename
3115    instead of as a pattern. This bug was fixed in zgrep in gzip in 2012.
3116
3117    Add -E, -F, -G, and -P to the "no argument required" list.
3118
3119    Add -X to "argument required" list. It is an
3120    intentionally-undocumented GNU grep option so this isn't
3121    an important option for xzgrep but it seems that other grep
3122    implementations (well, those that I checked) don't support -X
3123    so I hope this change is an improvement still.
3124
3125    grep -d (grep --directories=ACTION) requires an argument. In
3126    contrast to zgrep, I kept -d in the "no argument required" list
3127    because it's not supported in xzgrep (or zgrep). This way
3128    "xzgrep -d" gives an error about option being unsupported instead
3129    of telling that it requires an argument. Both zgrep and xzgrep
3130    tell that it's unsupported if an argument is specified.
3131
3132    Add comments.
3133
3134 src/scripts/xzgrep.in | 19 +++++++++++++++++--
3135 1 file changed, 17 insertions(+), 2 deletions(-)
3136
3137commit 2d2201bc6315deda4d43625aa510972467bd51d4
3138Author: Lasse Collin <lasse.collin@tukaani.org>
3139Date:   2022-07-14 20:33:05 +0300
3140
3141    Tests: Add the .lzma files to test_files.sh.
3142
3143 tests/test_files.sh | 20 ++++++++++++++++++++
3144 1 file changed, 20 insertions(+)
3145
3146commit ce5549a591bf126300618879f5b24023351baff6
3147Author: Lasse Collin <lasse.collin@tukaani.org>
3148Date:   2022-07-14 19:37:42 +0300
3149
3150    Tests: Add .lzma test files.
3151
3152 tests/files/README                                 |  63 ++++++++++++++++-----
3153 tests/files/bad-too_big_size-with_eopm.lzma        | Bin 0 -> 37 bytes
3154 tests/files/bad-too_small_size-without_eopm-1.lzma | Bin 0 -> 31 bytes
3155 tests/files/bad-too_small_size-without_eopm-2.lzma | Bin 0 -> 31 bytes
3156 tests/files/bad-too_small_size-without_eopm-3.lzma | Bin 0 -> 36 bytes
3157 tests/files/bad-unknown_size-without_eopm.lzma     | Bin 0 -> 31 bytes
3158 tests/files/good-known_size-with_eopm.lzma         | Bin 0 -> 37 bytes
3159 tests/files/good-known_size-without_eopm.lzma      | Bin 0 -> 31 bytes
3160 tests/files/good-unknown_size-with_eopm.lzma       | Bin 0 -> 37 bytes
3161 9 files changed, 50 insertions(+), 13 deletions(-)
3162
3163commit 107c93ee5cad51a6ea0cee471209bfe8d76deaa3
3164Author: Lasse Collin <lasse.collin@tukaani.org>
3165Date:   2022-07-14 18:12:38 +0300
3166
3167    liblzma: Rename a variable and improve a comment.
3168
3169 src/liblzma/lzma/lzma_decoder.c | 13 +++++++++----
3170 1 file changed, 9 insertions(+), 4 deletions(-)
3171
3172commit 511feb5eadb988d641b025d597f4fac7502003b8
3173Author: Lasse Collin <lasse.collin@tukaani.org>
3174Date:   2022-07-13 22:24:41 +0300
3175
3176    Update THANKS.
3177
3178 THANKS | 1 +
3179 1 file changed, 1 insertion(+)
3180
3181commit 9595a3119b9faf0ce01375329cad8bbf85c35ea2
3182Author: Lasse Collin <lasse.collin@tukaani.org>
3183Date:   2022-07-13 22:24:07 +0300
3184
3185    liblzma: Add optional autodetection of LZMA end marker.
3186
3187    Turns out that this is needed for .lzma files as the spec in
3188    LZMA SDK says that end marker may be present even if the size
3189    is stored in the header. Such files are rare but exist in the
3190    real world. The code in liblzma is so old that the spec didn't
3191    exist in LZMA SDK back then and I had understood that such
3192    files weren't possible (the lzma tool in LZMA SDK didn't
3193    create such files).
3194
3195    This modifies the internal API so that LZMA decoder can be told
3196    if EOPM is allowed even when the uncompressed size is known.
3197    It's allowed with .lzma and not with other uses.
3198
3199    Thanks to Karl Beldan for reporting the problem.
3200
3201 doc/lzma-file-format.txt               | 11 +++-
3202 src/liblzma/common/alone_decoder.c     |  2 +-
3203 src/liblzma/common/microlzma_decoder.c |  2 +-
3204 src/liblzma/lz/lz_decoder.c            | 10 +++-
3205 src/liblzma/lz/lz_decoder.h            |  8 +--
3206 src/liblzma/lzma/lzma2_decoder.c       |  2 +-
3207 src/liblzma/lzma/lzma_decoder.c        | 99 ++++++++++++++++++++++++----------
3208 7 files changed, 95 insertions(+), 39 deletions(-)
3209
3210commit 0c0f8e9761eb6eaf199082cf144db7ac5f9d8cb2
3211Author: Lasse Collin <lasse.collin@tukaani.org>
3212Date:   2022-07-12 18:53:04 +0300
3213
3214    xz: Document the special memlimit case of 2000 MiB on MIPS32.
3215
3216    See commit fc3d3a7296ef58bb799a73943636b8bfd95339f7.
3217
3218 src/xz/xz.1 | 8 ++++++--
3219 1 file changed, 6 insertions(+), 2 deletions(-)
3220
3221commit d1bfa3dc703325ecd974167e864a8712fdfe936e
3222Author: Jia Tan <jiat0218@gmail.com>
3223Date:   2022-07-01 21:19:26 +0800
3224
3225    Created script to generate code coverage reports.
3226
3227    The script uses lcov and genhtml after running the tests
3228    to show the code coverage statistics. The script will create
3229    a coverage directory where it is run. It can be run both in
3230    and out of the source directory.
3231
3232 .gitignore             |  4 +++
3233 tests/code_coverage.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++
3234 2 files changed, 83 insertions(+)
3235
3236commit 86a30b0255d8064169fabfd213d907016d2f9f2a
3237Author: Jia Tan <jiat0218@gmail.com>
3238Date:   2022-06-16 17:32:19 +0300
3239
3240    Tests: Add more tests into test_check.
3241
3242 tests/test_check.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++--
3243 tests/tests.h      |  23 +++++
3244 2 files changed, 295 insertions(+), 7 deletions(-)
3245
3246commit 82e30fed66a89706388a8c15dc954d84e63f38fa
3247Author: Lasse Collin <lasse.collin@tukaani.org>
3248Date:   2022-06-16 15:02:57 +0300
3249
3250    Tests: Use char[][24] array for enum_strings_lzma_ret.
3251
3252    Array of pointers to short strings is a bit pointless here
3253    and now it's fully const.
3254
3255 tests/tests.h | 2 +-
3256 1 file changed, 1 insertion(+), 1 deletion(-)
3257
3258commit 5ba9459e6c4a29f6870ca78ce8ac6e519d59c41e
3259Author: Lasse Collin <lasse.collin@tukaani.org>
3260Date:   2022-06-16 14:12:14 +0300
3261
3262    Tests: tuktest.h: Add tuktest_error_impl to help with error conditions.
3263
3264 tests/tuktest.h | 72 +++++++++++++++++++++++++--------------------------------
3265 1 file changed, 32 insertions(+), 40 deletions(-)
3266
3267commit b339892668da20aea22a93668c82b87a38e4a97f
3268Author: Lasse Collin <lasse.collin@tukaani.org>
3269Date:   2022-06-16 13:29:59 +0300
3270
3271    Tests: tuktest.h: Rename file_from_* and use tuktest_malloc there.
3272
3273 tests/test_bcj_exact_size.c |  4 +---
3274 tests/tuktest.h             | 52 +++++++++++++++++++++------------------------
3275 2 files changed, 25 insertions(+), 31 deletions(-)
3276
3277commit d8b63a0ad68d1c461eb373466679ebc41fbc207d
3278Author: Lasse Collin <lasse.collin@tukaani.org>
3279Date:   2022-06-16 13:08:19 +0300
3280
3281    Tests: tuktest.h: Add malloc wrapper with automatic freeing.
3282
3283 tests/tuktest.h | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3284 1 file changed, 124 insertions(+)
3285
3286commit 1d51536a4b19a8fae768f8eb462fc2238cb36d53
3287Author: Lasse Collin <lasse.collin@tukaani.org>
3288Date:   2022-06-16 11:47:37 +0300
3289
3290    Tests: tuktest.h: Move a function.
3291
3292 tests/tuktest.h | 44 ++++++++++++++++++++++----------------------
3293 1 file changed, 22 insertions(+), 22 deletions(-)
3294
3295commit 70c7555f6403553ee35539e869de0025592d8564
3296Author: Lasse Collin <lasse.collin@tukaani.org>
3297Date:   2022-06-14 22:21:15 +0300
3298
3299    Tests: test_vli: Remove an invalid test-assertion.
3300
3301    lzma_vli is unsigned so trying a signed value results in
3302    a compiler warning from -Wsign-conversion. (lzma_vli)-1
3303    equals to LZMA_VLI_UNKNOWN anyway which is the next assertion.
3304
3305 tests/test_vli.c | 2 --
3306 1 file changed, 2 deletions(-)
3307
3308commit 154b73c5a1092c3f785e01666b564ad7ff1be555
3309Author: Lasse Collin <lasse.collin@tukaani.org>
3310Date:   2022-06-14 22:10:10 +0300
3311
3312    Tests: test_vli: Add const where appropriate.
3313
3314 tests/test_vli.c | 53 ++++++++++++++++++++++++++++-------------------------
3315 1 file changed, 28 insertions(+), 25 deletions(-)
3316
3317commit 0354d6cce3ff98ea6f927107baf216253f6ce2bb
3318Author: Jia Tan <jiat75@gmail.com>
3319Date:   2022-06-13 20:27:03 +0800
3320
3321    Added vli tests to .gitignore
3322
3323 .gitignore | 1 +
3324 1 file changed, 1 insertion(+)
3325
3326commit a08f5ccf6bdc20ef70e41f6f3321618ef146f96e
3327Author: Jia Tan <jiat0218@gmail.com>
3328Date:   2022-06-12 11:31:40 +0800
3329
3330    Created tests for all functions exported in vli.h
3331
3332    Achieved 100% code coverage vli_encoder.c, vli_decoder.c, and vli_size.c
3333
3334 tests/Makefile.am |   4 +-
3335 tests/test_vli.c  | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3336 2 files changed, 311 insertions(+), 1 deletion(-)
3337
3338commit 1e3eb61815a91c0a1bfbb802e2d95593f523491f
3339Author: jiat75 <jiat0218@gmail.com>
3340Date:   2022-06-03 21:24:54 +0800
3341
3342    Added parallel test artifacts to .gitignore
3343
3344 .gitignore | 2 ++
3345 1 file changed, 2 insertions(+)
3346
3347commit 00e3613f1212eaa84e721585fdb4de6967cf2476
3348Author: Lasse Collin <lasse.collin@tukaani.org>
3349Date:   2022-06-14 21:29:21 +0300
3350
3351    Tests: Use good-1-empty-bcj-lzma2.xz in test_bcj_exact_size.
3352
3353    It's much nicer this way so that the test data isn't a hardcoded
3354    table inside the C file.
3355
3356 tests/test_bcj_exact_size.c | 19 +++++++------------
3357 1 file changed, 7 insertions(+), 12 deletions(-)
3358
3359commit 86bab755be252bfd3e0a9aee8e7b83a9bbb23ed0
3360Author: Lasse Collin <lasse.collin@tukaani.org>
3361Date:   2022-06-14 21:26:13 +0300
3362
3363    Tests: Add file reading helpers to tuktest.h.
3364
3365 tests/tuktest.h | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
3366 1 file changed, 176 insertions(+), 7 deletions(-)
3367
3368commit 83d2337b72dbf391c6f3b41889eea99e51679105
3369Author: Lasse Collin <lasse.collin@tukaani.org>
3370Date:   2022-06-14 18:21:57 +0300
3371
3372    Tests: tuktest.h: Move a printf from a macro to a helper function.
3373
3374 tests/tuktest.h | 26 ++++++++++++++++++--------
3375 1 file changed, 18 insertions(+), 8 deletions(-)
3376
3377commit f9e8176ea7d520797a2db2d49a5a632c285674a8
3378Author: Lasse Collin <lasse.collin@tukaani.org>
3379Date:   2022-06-14 17:20:49 +0300
3380
3381    Tests: Add test file good-1-empty-bcj-lzma2.xz.
3382
3383    This is from test_bcj_exact_size.c.
3384    It's good to have it as a standalone file.
3385
3386 tests/files/README                    |   5 +++++
3387 tests/files/good-1-empty-bcj-lzma2.xz | Bin 0 -> 52 bytes
3388 2 files changed, 5 insertions(+)
3389
3390commit aa75c5563a760aea3aa23d997d519e702e82726b
3391Author: Jia Tan <jiat0218@gmail.com>
3392Date:   2022-06-10 21:35:18 +0800
3393
3394    Tests: Created tests for hardware functions.
3395
3396    Created tests for all API functions exported in
3397    src/liblzma/api/lzma/hardware.h. The tests are fairly trivial
3398    but are helpful because they will inform users if their machines
3399    cannot support these functions. They also improve the code
3400    coverage metrics.
3401
3402 .gitignore            |  1 +
3403 tests/Makefile.am     |  2 ++
3404 tests/test_hardware.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
3405 3 files changed, 48 insertions(+)
3406
3407commit 5c8ffdca20813939818843476fb212dfae8838a3
3408Author: Lasse Collin <lasse.collin@tukaani.org>
3409Date:   2022-06-02 21:01:45 +0300
3410
3411    Tests: Convert test_check to tuktest.
3412
3413    Thanks to Jia Tan for help with all the tests.
3414
3415 tests/test_check.c | 67 +++++++++++++++++++++++++++---------------------------
3416 1 file changed, 33 insertions(+), 34 deletions(-)
3417
3418commit faf5ff8899d539b4dcd2a7e5280cb820a4746c86
3419Author: Lasse Collin <lasse.collin@tukaani.org>
3420Date:   2022-06-02 20:31:03 +0300
3421
3422    Tests: Convert test_block_header to tuktest.
3423
3424 tests/test_block_header.c | 89 +++++++++++++++++++++++++++--------------------
3425 1 file changed, 52 insertions(+), 37 deletions(-)
3426
3427commit 754d39fbebee3782258d42f154a223d3c5770ec7
3428Author: Lasse Collin <lasse.collin@tukaani.org>
3429Date:   2022-06-02 20:28:23 +0300
3430
3431    Tests: Convert test_bcj_exact_size to tuktest.
3432
3433    The compress() and decompress() functions were merged because
3434    the later depends on the former so they need to be a single
3435    test case.
3436
3437 tests/test_bcj_exact_size.c | 75 +++++++++++++++++++++++++--------------------
3438 1 file changed, 41 insertions(+), 34 deletions(-)
3439
3440commit 96da21470f9570cd08286906a050a7c22631775b
3441Author: Lasse Collin <lasse.collin@tukaani.org>
3442Date:   2022-06-02 20:27:00 +0300
3443
3444    Tests: Include tuktest.h in tests.h.
3445
3446    This breaks -Werror because none of the tests so far use
3447    tuktest.h and thus there are warnings about unused variables
3448    and functions.
3449
3450 tests/tests.h | 47 +++++++++++++++++++++++------------------------
3451 1 file changed, 23 insertions(+), 24 deletions(-)
3452
3453commit df71ba1c991f60c3269aaadd398247e632714626
3454Author: Lasse Collin <lasse.collin@tukaani.org>
3455Date:   2022-06-02 20:25:21 +0300
3456
3457    Tests: Add tuktest.h mini-test-framework.
3458
3459 tests/Makefile.am |   1 +
3460 tests/tuktest.h   | 752 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3461 2 files changed, 753 insertions(+)
3462
3463commit 4773608554d1b684a05ff9c1d879cf5c42266d33
3464Author: Lasse Collin <lasse.collin@tukaani.org>
3465Date:   2022-05-23 21:31:36 +0300
3466
3467    Build: Enable Automake's parallel test harness.
3468
3469    It has been the default for quite some time already and
3470    the old serial harness isn't discouraged. The downside is
3471    that with parallel tests one cannot print progress info or
3472    other diagnostics to the terminal; all output from the tests
3473    will be in the log files only. But now that the compression
3474    tests are separated the parallel tests will speed things up.
3475
3476 configure.ac | 2 +-
3477 1 file changed, 1 insertion(+), 1 deletion(-)
3478
3479commit 9a6dd6d46f7f256a5573e5d874c1052033ed7b05
3480Author: Lasse Collin <lasse.collin@tukaani.org>
3481Date:   2022-05-23 21:17:47 +0300
3482
3483    Tests: Split test_compress.sh into separate test unit for each file.
3484
3485    test_compress.sh now takes one command line argument:
3486    a filename to be tested. If it begins with "compress_generated_"
3487    the file will be created with create_compress_files.
3488
3489    This will allow parallel execution of the slow tests.
3490
3491 tests/Makefile.am                      | 11 +++-
3492 tests/test_compress.sh                 | 91 +++++++++++++++++++---------------
3493 tests/test_compress_generated_abc      |  3 ++
3494 tests/test_compress_generated_random   |  3 ++
3495 tests/test_compress_generated_text     |  3 ++
3496 tests/test_compress_prepared_bcj_sparc |  3 ++
3497 tests/test_compress_prepared_bcj_x86   |  3 ++
3498 7 files changed, 77 insertions(+), 40 deletions(-)
3499
3500commit c7758ac9c734707514dd34f254173ebac5eea7f8
3501Author: Lasse Collin <lasse.collin@tukaani.org>
3502Date:   2022-05-23 20:32:49 +0300
3503
3504    Test: Make create_compress_files.c a little more flexible.
3505
3506    If a command line argument is given, then only the test file
3507    of that type is created. It's quite dumb in sense that unknown
3508    names don't give an error but it's good enough here.
3509
3510    Also use EXIT_FAILURE instead of 1 as exit status for errors.
3511
3512 tests/create_compress_files.c | 25 +++++++++++++++----------
3513 1 file changed, 15 insertions(+), 10 deletions(-)
3514
3515commit 4a8e4a7b0ad4b03c0ac6862716c3457452cdaf8c
3516Author: Lasse Collin <lasse.collin@tukaani.org>
3517Date:   2022-05-23 20:17:42 +0300
3518
3519    Tests: Remove unneeded commented lines from test_compress.sh.
3520
3521 tests/test_compress.sh | 13 -------------
3522 1 file changed, 13 deletions(-)
3523
3524commit 2ee50d150ee009f36135540b459e6ff328549725
3525Author: Lasse Collin <lasse.collin@tukaani.org>
3526Date:   2022-05-23 20:16:00 +0300
3527
3528    Tests: Remove progress indicator from test_compress.sh.
3529
3530    It will be useless with Automake's parallel tests.
3531
3532 tests/test_compress.sh | 9 ---------
3533 1 file changed, 9 deletions(-)
3534
3535commit 2ce4f36f179a81d0c6e182a409f363df759d1ad0
3536Author: Lasse Collin <lasse.collin@tukaani.org>
3537Date:   2022-05-23 19:37:18 +0300
3538
3539    liblzma: Silence a warning.
3540
3541    The actual initialization is done via mythread_sync and seems
3542    that GCC doesn't necessarily see that it gets initialized there.
3543
3544 src/liblzma/common/stream_decoder_mt.c | 2 +-
3545 1 file changed, 1 insertion(+), 1 deletion(-)
3546
3547commit 5d8f3764ef43c35910e6d7003c0900a961ef6544
3548Author: Lasse Collin <lasse.collin@tukaani.org>
3549Date:   2022-04-14 20:53:16 +0300
3550
3551    xz: Fix build with --disable-threads.
3552
3553 src/xz/hardware.c | 4 ++++
3554 1 file changed, 4 insertions(+)
3555
3556commit 1d592897278b172d8549aa29c3a1f3a4f432a9b9
3557Author: Lasse Collin <lasse.collin@tukaani.org>
3558Date:   2022-04-14 14:50:17 +0300
3559
3560    xz: Change the cap of the default -T0 memlimit for 32-bit xz.
3561
3562    The SIZE_MAX / 3 was 1365 MiB. 1400 MiB gives little more room
3563    and it looks like a round (artificial) number in --info-memory
3564    once --info-memory is made to display it.
3565
3566    Also, using #if avoids useless code on 64-bit builds.
3567
3568 src/xz/hardware.c | 4 +++-
3569 1 file changed, 3 insertions(+), 1 deletion(-)
3570
3571commit c77fe55ddb7752ed0fec46967c5ec9a72632ea0c
3572Author: Lasse Collin <lasse.collin@tukaani.org>
3573Date:   2022-04-14 14:20:46 +0300
3574
3575    xz: Add a default soft memory usage limit for --threads=0.
3576
3577    This is a soft limit in sense that it only affects the number of
3578    threads. It never makes xz fail and it never makes xz change
3579    settings that would affect the compressed output.
3580
3581    The idea is to make -T0 have more reasonable behavior when
3582    the system has very many cores or when a memory-hungry
3583    compression options are used. This also helps with 32-bit xz,
3584    preventing it from running out of address space.
3585
3586    The downside of this commit is that now the number of threads
3587    might become too low compared to what the user expected. I
3588    hope this to be an acceptable compromise as the old behavior
3589    has been a source of well-argued complaints for a long time.
3590
3591 src/xz/coder.c    | 28 ++++++++++++++++++++++++++--
3592 src/xz/hardware.c | 38 +++++++++++++++++++++++++++++---------
3593 src/xz/hardware.h | 27 +++++++++++++++++++++++++++
3594 3 files changed, 82 insertions(+), 11 deletions(-)
3595
3596commit 0adc13bfe32c14f3e4c6ce9f2d4fdf4112ab53f4
3597Author: Lasse Collin <lasse.collin@tukaani.org>
3598Date:   2022-04-14 12:59:09 +0300
3599
3600    xz: Make -T0 use multithreaded mode on single-core systems.
3601
3602    The main problem withi the old behavior is that the compressed
3603    output is different on single-core systems vs. multicore systems.
3604    This commit fixes it by making -T0 one thread in multithreaded mode
3605    on single-core systems.
3606
3607    The downside of this is that it uses more memory. However, if
3608    --memlimit-compress is used, xz can (thanks to the previous commit)
3609    drop to the single-threaded mode still.
3610
3611 src/xz/coder.c    | 18 +++++++++---------
3612 src/xz/hardware.c | 14 ++++++++++++++
3613 src/xz/hardware.h |  4 ++++
3614 3 files changed, 27 insertions(+), 9 deletions(-)
3615
3616commit 898faa97287a756231c663a3ed5165672b417207
3617Author: Lasse Collin <lasse.collin@tukaani.org>
3618Date:   2022-04-14 12:38:00 +0300
3619
3620    xz: Changes to --memlimit-compress and --no-adjust.
3621
3622    In single-threaded mode, --memlimit-compress can make xz scale down
3623    the LZMA2 dictionary size to meet the memory usage limit. This
3624    obviously affects the compressed output. However, if xz was in
3625    threaded mode, --memlimit-compress could make xz reduce the number
3626    of threads but it wouldn't make xz switch from multithreaded mode
3627    to single-threaded mode or scale down the LZMA2 dictionary size.
3628    This seemed illogical and there was even a "FIXME?" about it.
3629
3630    Now --memlimit-compress can make xz switch to single-threaded
3631    mode if one thread in multithreaded mode uses too much memory.
3632    If memory usage is still too high, then the LZMA2 dictionary
3633    size can be scaled down too.
3634
3635    The option --no-adjust was also changed so that it no longer
3636    prevents xz from scaling down the number of threads as that
3637    doesn't affect compressed output (only performance). After
3638    this commit --no-adjust only prevents adjustments that affect
3639    compressed output, that is, with --no-adjust xz won't switch
3640    from multithreaded mode to single-threaded mode and won't
3641    scale down the LZMA2 dictionary size.
3642
3643    The man page wasn't updated yet.
3644
3645 src/xz/coder.c | 63 +++++++++++++++++++++++++++++++++++++++-------------------
3646 1 file changed, 43 insertions(+), 20 deletions(-)
3647
3648commit cad299008cf73ec566f0662a9cf2b94f86a99659
3649Author: Lasse Collin <lasse.collin@tukaani.org>
3650Date:   2022-04-11 22:20:49 +0300
3651
3652    xz: Add --memlimit-mt-decompress along with a default limit value.
3653
3654    --memlimit-mt-decompress allows specifying the limit for
3655    multithreaded decompression. This matches memlimit_threading in
3656    liblzma. This limit can only affect the number of threads being
3657    used; it will never prevent xz from decompressing a file. The
3658    old --memlimit-decompress option is still used at the same time.
3659
3660    If the value of --memlimit-decompress (the default value or
3661    one specified by the user) is less than the value of
3662    --memlimit-mt-decompress , then --memlimit-mt-decompress is
3663    reduced to match --memlimit-decompress.
3664
3665    Man page wasn't updated yet.
3666
3667 src/xz/args.c     | 24 +++++++++++++++-------
3668 src/xz/coder.c    | 34 ++++++++++---------------------
3669 src/xz/hardware.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
3670 src/xz/hardware.h | 17 ++++++++++------
3671 src/xz/message.c  |  4 +++-
3672 5 files changed, 97 insertions(+), 42 deletions(-)
3673
3674commit fe87b4cd5364f5bbb6a75a0299f1500c852d7c9a
3675Author: Lasse Collin <lasse.collin@tukaani.org>
3676Date:   2022-04-06 23:11:59 +0300
3677
3678    liblzma: Threaded decoder: Improve setting of pending_error.
3679
3680    It doesn't need to be done conditionally. The comments try
3681    to explain it.
3682
3683 src/liblzma/common/stream_decoder_mt.c | 51 +++++++++++++++++++++++-----------
3684 1 file changed, 35 insertions(+), 16 deletions(-)
3685
3686commit 90621da7f6e1bfd6d91d60415eae04b2bca274c2
3687Author: Lasse Collin <lasse.collin@tukaani.org>
3688Date:   2022-04-06 12:39:49 +0300
3689
3690    liblzma: Add a new flag LZMA_FAIL_FAST for threaded decoder.
3691
3692    In most cases if the input file is corrupt the application won't
3693    care about the uncompressed content at all. With this new flag
3694    the threaded decoder will return an error as soon as any thread
3695    has detected an error; it won't wait to copy out the data before
3696    the location of the error.
3697
3698    I don't plan to use this in xz to keep the behavior consistent
3699    between single-threaded and multi-threaded modes.
3700
3701 src/liblzma/api/lzma/container.h       | 25 ++++++++++++++++-
3702 src/liblzma/common/common.h            |  7 +++--
3703 src/liblzma/common/stream_decoder_mt.c | 50 +++++++++++++++++++---------------
3704 3 files changed, 56 insertions(+), 26 deletions(-)
3705
3706commit 64b6d496dc815a176d8307f418f6834a26783484
3707Author: Lasse Collin <lasse.collin@tukaani.org>
3708Date:   2022-04-05 12:24:57 +0300
3709
3710    liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.
3711
3712    This makes the behavior consistent with the single-threaded
3713    decoder when handling truncated .xz files.
3714
3715    Thanks to Jia Tan for finding this issue.
3716
3717 src/liblzma/common/stream_decoder_mt.c | 26 ++++++++++++++++++++++++--
3718 1 file changed, 24 insertions(+), 2 deletions(-)
3719
3720commit e671bc8828b9c0c5406c3a22c541301d0eb54518
3721Author: Lasse Collin <lasse.collin@tukaani.org>
3722Date:   2022-04-02 21:49:59 +0300
3723
3724    liblzma: Threaded decoder: Support zpipe.c-style decoding loop.
3725
3726    This makes it possible to call lzma_code() in a loop that only
3727    reads new input when lzma_code() didn't fill the output buffer
3728    completely. That isn't the calling style suggested by the
3729    liblzma example program 02_decompress.c so perhaps the usefulness
3730    of this feature is limited.
3731
3732    Also, it is possible to write such a loop so that it works
3733    with the single-threaded decoder but not with the threaded
3734    decoder even after this commit, or so that it works only if
3735    lzma_mt.timeout = 0.
3736
3737    The zlib tutorial <https://zlib.net/zlib_how.html> is a well-known
3738    example of a loop where more input is read only when output isn't
3739    full. Porting this as is to liblzma would work with the
3740    single-threaded decoder (if LZMA_CONCATENATED isn't used) but it
3741    wouldn't work with threaded decoder even after this commit because
3742    the loop assumes that no more output is possible when it cannot
3743    read more input ("if (strm.avail_in == 0) break;"). This cannot
3744    be fixed at liblzma side; the loop has to be modified at least
3745    a little.
3746
3747    I'm adding this in any case because the actual code is simple
3748    and short and should have no harmful side-effects in other
3749    situations.
3750
3751 src/liblzma/common/stream_decoder_mt.c | 77 +++++++++++++++++++++++++++++-----
3752 1 file changed, 67 insertions(+), 10 deletions(-)
3753
3754commit 2ba8173e27be4793edb46497e499ac2ae753a316
3755Author: Lasse Collin <lasse.collin@tukaani.org>
3756Date:   2022-03-31 00:05:07 +0300
3757
3758    Update THANKS.
3759
3760 THANKS | 1 +
3761 1 file changed, 1 insertion(+)
3762
3763commit 69d1b3fc29677af8ade8dc15dba83f0589cb63d6
3764Author: Lasse Collin <lasse.collin@tukaani.org>
3765Date:   2022-03-29 19:19:12 +0300
3766
3767    xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
3768
3769    Malicious filenames can make xzgrep to write to arbitrary files
3770    or (with a GNU sed extension) lead to arbitrary code execution.
3771
3772    xzgrep from XZ Utils versions up to and including 5.2.5 are
3773    affected. 5.3.1alpha and 5.3.2alpha are affected as well.
3774    This patch works for all of them.
3775
3776    This bug was inherited from gzip's zgrep. gzip 1.12 includes
3777    a fix for zgrep.
3778
3779    The issue with the old sed script is that with multiple newlines,
3780    the N-command will read the second line of input, then the
3781    s-commands will be skipped because it's not the end of the
3782    file yet, then a new sed cycle starts and the pattern space
3783    is printed and emptied. So only the last line or two get escaped.
3784
3785    One way to fix this would be to read all lines into the pattern
3786    space first. However, the included fix is even simpler: All lines
3787    except the last line get a backslash appended at the end. To ensure
3788    that shell command substitution doesn't eat a possible trailing
3789    newline, a colon is appended to the filename before escaping.
3790    The colon is later used to separate the filename from the grep
3791    output so it is fine to add it here instead of a few lines later.
3792
3793    The old code also wasn't POSIX compliant as it used \n in the
3794    replacement section of the s-command. Using \<newline> is the
3795    POSIX compatible method.
3796
3797    LC_ALL=C was added to the two critical sed commands. POSIX sed
3798    manual recommends it when using sed to manipulate pathnames
3799    because in other locales invalid multibyte sequences might
3800    cause issues with some sed implementations. In case of GNU sed,
3801    these particular sed scripts wouldn't have such problems but some
3802    other scripts could have, see:
3803
3804        info '(sed)Locale Considerations'
3805
3806    This vulnerability was discovered by:
3807    cleemy desu wayo working with Trend Micro Zero Day Initiative
3808
3809    Thanks to Jim Meyering and Paul Eggert discussing the different
3810    ways to fix this and for coordinating the patch release schedule
3811    with gzip.
3812
3813 src/scripts/xzgrep.in | 20 ++++++++++++--------
3814 1 file changed, 12 insertions(+), 8 deletions(-)
3815
3816commit bd93b776c1bd15e90661033c918cdeb354dbcc38
3817Author: Lasse Collin <lasse.collin@tukaani.org>
3818Date:   2022-03-26 01:02:44 +0200
3819
3820    liblzma: Fix a deadlock in threaded decoder.
3821
3822    If a worker thread has consumed all input so far and it's
3823    waiting on thr->cond and then the main thread enables
3824    partial update for that thread, the code used to deadlock.
3825    This commit allows one dummy decoding pass to occur in this
3826    situation which then also does the partial update.
3827
3828    As part of the fix, this moves thr->progress_* updates to
3829    avoid the second thr->mutex locking.
3830
3831    Thanks to Jia Tan for finding, debugging, and reporting the bug.
3832
3833 src/liblzma/common/stream_decoder_mt.c | 71 +++++++++++++++++++++++++---------
3834 1 file changed, 52 insertions(+), 19 deletions(-)
3835
3836commit e0394e94230f208682ac1e1f4c41f22f9ad79916
3837Author: Lasse Collin <lasse.collin@tukaani.org>
3838Date:   2022-03-23 16:34:00 +0200
3839
3840    Update THANKS.
3841
3842 THANKS | 1 +
3843 1 file changed, 1 insertion(+)
3844
3845commit 487c77d48760564b1949c5067630b675b87be4de
3846Author: Lasse Collin <lasse.collin@tukaani.org>
3847Date:   2022-03-23 16:28:55 +0200
3848
3849    liblzma: Threaded decoder: Don't stop threads on LZMA_TIMED_OUT.
3850
3851    LZMA_TIMED_OUT is not an error and thus stopping threads on
3852    LZMA_TIMED_OUT breaks the decoder badly.
3853
3854    Thanks to Jia Tan for finding the bug and for the patch.
3855
3856 src/liblzma/common/stream_decoder_mt.c | 2 +-
3857 1 file changed, 1 insertion(+), 1 deletion(-)
3858
3859commit 6c6da57ae2aa962aabde6892442227063d87e88c
3860Author: Lasse Collin <lasse.collin@tukaani.org>
3861Date:   2022-03-07 00:36:16 +0200
3862
3863    xz: Add initial support for threaded decompression.
3864
3865    If threading support is enabled at build time, this will
3866    use lzma_stream_decoder_mt() even for single-threaded mode.
3867    With memlimit_threading=0 the behavior should be identical.
3868
3869    This needs some work like adding --memlimit-threading=LIMIT.
3870
3871    The original patch from Sebastian Andrzej Siewior included
3872    a method to get currently available RAM on Linux. It might
3873    be one way to go but as it is Linux-only, the available-RAM
3874    approach needs work for portability or using a fallback method
3875    on other OSes.
3876
3877    The man page wasn't updated yet.
3878
3879 src/xz/coder.c | 36 +++++++++++++++++++++++++++++++++++-
3880 1 file changed, 35 insertions(+), 1 deletion(-)
3881
3882commit 4cce3e27f529af33e0e7749a8cbcec59954946b5
3883Author: Lasse Collin <lasse.collin@tukaani.org>
3884Date:   2022-03-06 23:36:20 +0200
3885
3886    liblzma: Add threaded .xz decompressor.
3887
3888    I realize that this is about a decade late.
3889
3890    Big thanks to Sebastian Andrzej Siewior for the original patch.
3891    I made a bunch of smaller changes but after a while quite a few
3892    things got rewritten. So any bugs in the commit were created by me.
3893
3894 src/liblzma/api/lzma/container.h       |   90 +-
3895 src/liblzma/common/Makefile.inc        |    5 +
3896 src/liblzma/common/common.h            |    4 +
3897 src/liblzma/common/stream_decoder_mt.c | 1814 ++++++++++++++++++++++++++++++++
3898 src/liblzma/liblzma.map                |    1 +
3899 5 files changed, 1907 insertions(+), 7 deletions(-)
3900
3901commit 717631b9788dc9c100ee0c87d3c14a2782638ff4
3902Author: Lasse Collin <lasse.collin@tukaani.org>
3903Date:   2022-03-06 16:54:23 +0200
3904
3905    liblzma: Fix docs: lzma_block_decoder() cannot return LZMA_UNSUPPORTED_CHECK.
3906
3907    If Check is unsupported, it will be silently ignored.
3908    It's the caller's job to handle it.
3909
3910 src/liblzma/api/lzma/block.h | 3 ---
3911 1 file changed, 3 deletions(-)
3912
3913commit 1a4bb97a00936535e30ac61945aeee38882b5d1a
3914Author: Lasse Collin <lasse.collin@tukaani.org>
3915Date:   2022-03-06 16:41:19 +0200
3916
3917    liblzma: Add new output queue (lzma_outq) features.
3918
3919    Add lzma_outq_clear_cache2() which may leave one buffer allocated
3920    in the cache.
3921
3922    Add lzma_outq_outbuf_memusage() to get the memory needed for
3923    a single lzma_outbuf. This is now used internally in outqueue.c too.
3924
3925    Track both the total amount of memory allocated and the amount of
3926    memory that is in active use (not in cache).
3927
3928    In lzma_outbuf, allow storing the current input position that
3929    matches the current output position. This way the main thread
3930    can notice when no more output is possible without first providing
3931    more input.
3932
3933    Allow specifying return code for lzma_outq_read() in a finished
3934    lzma_outbuf.
3935
3936 src/liblzma/common/outqueue.c | 43 +++++++++++++++++++++++++++++++++++-------
3937 src/liblzma/common/outqueue.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
3938 2 files changed, 79 insertions(+), 8 deletions(-)
3939
3940commit ddbc6f58c2de388eed24cd7ea91b523d397da5f4
3941Author: Lasse Collin <lasse.collin@tukaani.org>
3942Date:   2022-03-06 15:18:58 +0200
3943
3944    liblzma: Index hash: Change return value type of hash_append() to void.
3945
3946 src/liblzma/common/index_hash.c | 11 +++++------
3947 1 file changed, 5 insertions(+), 6 deletions(-)
3948
3949commit 20e7a33e2d59c6a814447d3991f21e2702174b20
3950Author: Lasse Collin <lasse.collin@tukaani.org>
3951Date:   2022-02-22 03:42:57 +0200
3952
3953    liblzma: Minor addition to lzma_vli_size() API doc.
3954
3955    Thanks to Jia Tan.
3956
3957 src/liblzma/api/lzma/vli.h | 2 ++
3958 1 file changed, 2 insertions(+)
3959
3960commit 4f78f5fcf63592f2d77e921cfe0d5de300867374
3961Author: Lasse Collin <lasse.collin@tukaani.org>
3962Date:   2022-02-22 02:04:18 +0200
3963
3964    liblzma: Check the return value of lzma_index_append() in threaded encoder.
3965
3966    If lzma_index_append() failed (most likely memory allocation failure)
3967    it could have gone unnoticed and the resulting .xz file would have
3968    an incorrect Index. Decompressing such a file would produce the
3969    correct uncompressed data but then an error would occur when
3970    verifying the Index field.
3971
3972 src/liblzma/common/stream_encoder_mt.c | 7 +++++--
3973 1 file changed, 5 insertions(+), 2 deletions(-)
3974
3975commit 5313ad66b40aab822ddca3e9905254cb99a4080d
3976Author: Lasse Collin <lasse.collin@tukaani.org>
3977Date:   2022-02-22 01:37:39 +0200
3978
3979    Update THANKS.
3980
3981 THANKS | 1 +
3982 1 file changed, 1 insertion(+)
3983
3984commit 865e0a3689a25a7ee8eecae1a34c1775e3aa676e
3985Author: Ed Maste <emaste@FreeBSD.org>
3986Date:   2022-02-11 15:25:46 +0000
3987
3988    liblzma: Use non-executable stack on FreeBSD as on Linux
3989
3990 src/liblzma/check/crc32_x86.S | 4 ++--
3991 src/liblzma/check/crc64_x86.S | 4 ++--
3992 2 files changed, 4 insertions(+), 4 deletions(-)
3993
3994commit 1c9a5786d206b4abc8e427326651c8174baea753
3995Author: Lasse Collin <lasse.collin@tukaani.org>
3996Date:   2022-02-20 20:36:27 +0200
3997
3998    liblzma: Make Block decoder catch certain types of errors better.
3999
4000    Now it limits the input and output buffer sizes that are
4001    passed to a raw decoder. This way there's no need to check
4002    if the sizes can grow too big or overflow when updating
4003    Compressed Size and Uncompressed Size counts. This also means
4004    that a corrupt file cannot cause the raw decoder to process
4005    useless extra input or output that would exceed the size info
4006    in Block Header (and thus cause LZMA_DATA_ERROR anyway).
4007
4008    More importantly, now the size information is verified more
4009    carefully in case raw decoder returns LZMA_OK. This doesn't
4010    really matter with the current single-threaded .xz decoder
4011    as the errors would be detected slightly later anyway. But
4012    this helps avoiding corner cases in the upcoming threaded
4013    decompressor, and it might help other Block decoder uses
4014    outside liblzma too.
4015
4016    The test files bad-1-lzma2-{9,10,11}.xz test these conditions.
4017    With the single-threaded .xz decoder the only difference is
4018    that LZMA_DATA_ERROR is detected in a difference place now.
4019
4020 src/liblzma/common/block_decoder.c | 79 ++++++++++++++++++++++++++------------
4021 1 file changed, 54 insertions(+), 25 deletions(-)
4022
4023commit 555de11873eb00c9b94a8be70645db502e5a9dbd
4024Author: Lasse Collin <lasse.collin@tukaani.org>
4025Date:   2022-02-20 19:38:55 +0200
4026
4027    Tests: Add bad-1-lzma2-11.xz.
4028
4029 tests/files/README            |   5 +++++
4030 tests/files/bad-1-lzma2-11.xz | Bin 0 -> 64 bytes
4031 2 files changed, 5 insertions(+)
4032
4033commit f0da507f22e7f4e3edb75b45b74d344244ca03fb
4034Author: Lasse Collin <lasse.collin@tukaani.org>
4035Date:   2022-02-18 18:51:10 +0200
4036
4037    Translations: Fix po4a failure with the French man page translations.
4038
4039    Thanks to Mario Blättermann for the patch.
4040
4041 po4a/fr_FR.po | 6 ++++--
4042 1 file changed, 4 insertions(+), 2 deletions(-)
4043
4044commit f7711d228c3c32395460c82498c60a9f730d0239
4045Author: Lasse Collin <lasse.collin@tukaani.org>
4046Date:   2022-02-07 01:14:37 +0200
4047
4048    Translations: Add French translation of man pages.
4049
4050    This matches xz-utils 5.2.5-2 in Debian.
4051
4052    The translation was done by "bubu", proofread by the debian-l10n-french
4053    mailing list contributors, and submitted to me on the xz-devel mailing
4054    list by Jean-Pierre Giraud. Thanks to everyone!
4055
4056 po4a/fr_FR.po  | 3541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4057 po4a/po4a.conf |    2 +-
4058 2 files changed, 3542 insertions(+), 1 deletion(-)
4059
4060commit 6468f7e41a8e9c611e4ba8d34e2175c5dacdbeb4
4061Author: jiat75 <jiat0218@gmail.com>
4062Date:   2022-01-28 20:47:55 +0800
4063
4064    liblzma: Add NULL checks to LZMA and LZMA2 properties encoders.
4065
4066    Previously lzma_lzma_props_encode() and lzma_lzma2_props_encode()
4067    assumed that the options pointers must be non-NULL because the
4068    with these filters the API says it must never be NULL. It is
4069    good to do these checks anyway.
4070
4071 src/liblzma/lzma/lzma2_encoder.c | 3 +++
4072 src/liblzma/lzma/lzma_encoder.c  | 3 +++
4073 2 files changed, 6 insertions(+)
4074
4075commit 2523c30705f49eabd27b854aa656ae87cc224808
4076Author: Lasse Collin <lasse.collin@tukaani.org>
4077Date:   2022-02-06 23:19:32 +0200
4078
4079    liblzma: Fix uint64_t vs. size_t confusion.
4080
4081    This broke 32-bit builds due to a pointer type mismatch.
4082
4083    This bug was introduced with the output-size-limited encoding
4084    in 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
4085
4086    Thanks to huangqinjin for the bug report.
4087
4088 src/liblzma/rangecoder/range_encoder.h | 11 +++++++----
4089 1 file changed, 7 insertions(+), 4 deletions(-)
4090
4091commit 2bd36c91d03e03b31a4f12fd0afc100ae32d66e2
4092Author: huangqinjin <huangqinjin@gmail.com>
4093Date:   2021-12-13 20:49:21 +0800
4094
4095    CMake: Keep compatible with Windows 95 for 32-bit build.
4096
4097 CMakeLists.txt | 12 +++++++++++-
4098 1 file changed, 11 insertions(+), 1 deletion(-)
4099
4100commit 2024fbf2794885277d05378d40b2b8015a7c3b40
4101Author: Lasse Collin <lasse.collin@tukaani.org>
4102Date:   2021-11-13 21:04:05 +0200
4103
4104    xzgrep: Update man page timestamp.
4105
4106 src/scripts/xzgrep.1 | 2 +-
4107 1 file changed, 1 insertion(+), 1 deletion(-)
4108
4109commit 400e7a239a53282cedaad927a41f3463d7f542e5
4110Author: Lasse Collin <lasse.collin@tukaani.org>
4111Date:   2021-11-13 18:23:24 +0200
4112
4113    Update THANKS.
4114
4115 THANKS | 1 +
4116 1 file changed, 1 insertion(+)
4117
4118commit 3a512c7787b2642ca946f4adc6e9a0a5d9b0d5a0
4119Author: Ville Skyttä <ville.skytta@iki.fi>
4120Date:   2021-11-13 10:11:57 +0200
4121
4122    xzgrep: use `grep -E/-F` instead of `egrep` and `fgrep`
4123
4124    `egrep` and `fgrep` have been deprecated in GNU grep since 2007, and in
4125    current post 3.7 Git they have been made to emit obsolescence warnings:
4126    https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
4127
4128 src/scripts/xzgrep.1  | 8 ++++----
4129 src/scripts/xzgrep.in | 4 ++--
4130 2 files changed, 6 insertions(+), 6 deletions(-)
4131
4132commit edf525e2b1840dcaf377df472c67d8f11f8ace1b
4133Author: Lasse Collin <lasse.collin@tukaani.org>
4134Date:   2021-10-28 23:02:11 +0300
4135
4136    Bump the version number for 5.3.2alpha.
4137
4138 src/liblzma/api/lzma/version.h | 2 +-
4139 src/liblzma/liblzma.map        | 2 +-
4140 2 files changed, 2 insertions(+), 2 deletions(-)
4141
4142commit ea8c948655a86290524efe59cff067e06a886709
4143Author: Lasse Collin <lasse.collin@tukaani.org>
4144Date:   2021-10-28 22:59:52 +0300
4145
4146    Add NEWS for 5.3.2alpha.
4147
4148 NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4149 1 file changed, 86 insertions(+)
4150
4151commit 52435f302f4724157ec50b4210cbe42b285c3cbc
4152Author: Lasse Collin <lasse.collin@tukaani.org>
4153Date:   2021-10-27 23:27:48 +0300
4154
4155    Update THANKS.
4156
4157 THANKS | 1 +
4158 1 file changed, 1 insertion(+)
4159
4160commit f2aea1d5a504b2021bf47a238390e4f12bdd518d
4161Author: Lasse Collin <lasse.collin@tukaani.org>
4162Date:   2021-10-27 23:23:11 +0300
4163
4164    xz: Change the coding style of the previous commit.
4165
4166    It isn't any better now but it's consistent with
4167    the rest of the code base.
4168
4169 src/xz/file_io.c | 11 ++++++-----
4170 1 file changed, 6 insertions(+), 5 deletions(-)
4171
4172commit 892b16cc282f5b4e1c49871b326f4db25c5b4d81
4173Author: Alexander Bluhm <alexander.bluhm@gmx.net>
4174Date:   2021-10-05 23:33:16 +0200
4175
4176    xz: Avoid fchown(2) failure.
4177
4178    OpenBSD does not allow to change the group of a file if the user
4179    does not belong to this group.  In contrast to Linux, OpenBSD also
4180    fails if the new group is the same as the old one.  Do not call
4181    fchown(2) in this case, it would change nothing anyway.
4182
4183    This fixes an issue with Perl Alien::Build module.
4184    https://github.com/PerlAlien/Alien-Build/issues/62
4185
4186 src/xz/file_io.c | 8 +++++++-
4187 1 file changed, 7 insertions(+), 1 deletion(-)
4188
4189commit 2b509c868cae3988bf21cd693fbf9021cdc85628
4190Author: Lasse Collin <lasse.collin@tukaani.org>
4191Date:   2021-09-17 17:31:11 +0300
4192
4193    liblzma: Fix liblzma.map for the lzma_microlzma_* symbols.
4194
4195    This should have been part of d267d109c370a40b502e73f8664b154b15e4f253.
4196
4197    Thanks to Gao Xiang.
4198
4199 src/liblzma/liblzma.map | 4 ++--
4200 1 file changed, 2 insertions(+), 2 deletions(-)
4201
4202commit cacb06a954b58255dfc084a0bc9708f43a0fd6d6
4203Author: Lasse Collin <lasse.collin@tukaani.org>
4204Date:   2021-09-09 22:21:07 +0300
4205
4206    Update THANKS.
4207
4208 THANKS | 1 +
4209 1 file changed, 1 insertion(+)
4210
4211commit 6928aac9da6ba612780b9f72ba1d6ecbe1e8b54e
4212Author: Lasse Collin <lasse.collin@tukaani.org>
4213Date:   2021-09-09 21:41:51 +0300
4214
4215    liblzma: Use _MSVC_LANG to detect when "noexcept" can be used with MSVC.
4216
4217    By default, MSVC always sets __cplusplus to 199711L. The real
4218    C++ standard version is available in _MSVC_LANG (or one could
4219    use /Zc:__cplusplus to set __cplusplus correctly).
4220
4221    Fixes <https://sourceforge.net/p/lzmautils/discussion/708858/thread/f6bc3b108a/>.
4222
4223    Thanks to Dan Weiss.
4224
4225 src/liblzma/api/lzma.h | 3 ++-
4226 1 file changed, 2 insertions(+), 1 deletion(-)
4227
4228commit d267d109c370a40b502e73f8664b154b15e4f253
4229Author: Lasse Collin <lasse.collin@tukaani.org>
4230Date:   2021-09-05 20:38:12 +0300
4231
4232    liblzma: Rename EROFS LZMA to MicroLZMA.
4233
4234    It still exists primarily for EROFS but MicroLZMA is
4235    a more generic name (that hopefully doesn't clash with
4236    something that already exists).
4237
4238 src/liblzma/api/lzma/container.h                   | 33 +++++++++++++---------
4239 src/liblzma/common/Makefile.inc                    |  4 +--
4240 .../{erofs_decoder.c => microlzma_decoder.c}       | 32 ++++++++++-----------
4241 .../{erofs_encoder.c => microlzma_encoder.c}       | 30 ++++++++++----------
4242 4 files changed, 52 insertions(+), 47 deletions(-)
4243
4244commit 3247e95115acb95bc27f41e8cf4501db5b0b4309
4245Author: Lasse Collin <lasse.collin@tukaani.org>
4246Date:   2021-06-04 19:02:38 +0300
4247
4248    xzdiff: Update the man page about the exit status.
4249
4250    This was forgotten from 194029ffaf74282a81f0c299c07f73caca3232ca.
4251
4252 src/scripts/xzdiff.1 | 4 ++--
4253 1 file changed, 2 insertions(+), 2 deletions(-)
4254
4255commit 96f5a28a46fc93ac4e296808ac0f8631d05498bc
4256Author: Lasse Collin <lasse.collin@tukaani.org>
4257Date:   2021-06-04 18:52:48 +0300
4258
4259    xzless: Fix less(1) version detection when it contains a dot.
4260
4261    Sometimes the version number from "less -V" contains a dot,
4262    sometimes not. xzless failed detect the version number when
4263    it does contain a dot. This fixes it.
4264
4265    Thanks to nick87720z for reporting this. Apparently it had been
4266    reported here <https://bugs.gentoo.org/489362> in 2013.
4267
4268 src/scripts/xzless.in | 2 +-
4269 1 file changed, 1 insertion(+), 1 deletion(-)
4270
4271commit 5fb5212d816addbc523d0798cb482fdd0484f8fa
4272Author: Lasse Collin <lasse.collin@tukaani.org>
4273Date:   2021-04-11 19:58:10 +0300
4274
4275    Update THANKS.
4276
4277 THANKS | 2 ++
4278 1 file changed, 2 insertions(+)
4279
4280commit fc3d3a7296ef58bb799a73943636b8bfd95339f7
4281Author: Ivan A. Melnikov <iv@altlinux.org>
4282Date:   2021-04-09 11:45:10 +0300
4283
4284    Reduce maximum possible memory limit on MIPS32
4285
4286    Due to architectural limitations, address space available to a single
4287    userspace process on MIPS32 is limited to 2 GiB, not 4, even on systems
4288    that have more physical RAM -- e.g. 64-bit systems with 32-bit
4289    userspace, or systems that use XPA (an extension similar to x86's PAE).
4290
4291    So, for MIPS32, we have to impose stronger memory limits. I've chosen
4292    2000MiB to give the process some headroom.
4293
4294 src/xz/hardware.c | 6 ++++++
4295 1 file changed, 6 insertions(+)
4296
4297commit e7da44d5151e21f153925781ad29334ae0786101
4298Author: Lasse Collin <lasse.collin@tukaani.org>
4299Date:   2021-02-13 23:31:27 +0200
4300
4301    CMake: Use interface library for better FindLibLZMA compatibility.
4302
4303    https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html
4304
4305    Thanks to Markus Rickert.
4306
4307 CMakeLists.txt | 11 +++++++++--
4308 1 file changed, 9 insertions(+), 2 deletions(-)
4309
4310commit a61dd82ada39030f41b4ffca9ea551714908bedc
4311Author: Lasse Collin <lasse.collin@tukaani.org>
4312Date:   2021-01-30 18:36:04 +0200
4313
4314    CMake: Try to improve compatibility with the FindLibLZMA module.
4315
4316    The naming conflict with FindLibLZMA module gets worse.
4317    Not avoiding it in the first place was stupid.
4318
4319    Normally find_package(LibLZMA) will use the module and
4320    find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config
4321    file even with a case insensitive file system. However, if
4322    CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system
4323    is case insensitive, find_package(LibLZMA) will find our liblzma
4324    config file instead of using FindLibLZMA module.
4325
4326    One big problem with this is that FindLibLZMA uses
4327    LibLZMA::LibLZMA and we use liblzma::liblzma as the target
4328    name. With target names CMake happens to be case sensitive.
4329    To workaround this, this commit adds
4330
4331        add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma)
4332
4333    to the config file. Then both spellings work.
4334
4335    To make the behavior consistent between case sensitive and
4336    insensitive file systems, the config and related files are
4337    renamed from liblzmaConfig.cmake to liblzma-config.cmake style.
4338    With this style CMake looks for lowercase version of the package
4339    name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work
4340    to find our config file.
4341
4342    There are other differences between our config file and
4343    FindLibLZMA so it's still possible that things break for
4344    reasons other than the spelling of the target name. Hopefully
4345    those situations aren't too common.
4346
4347    When the config file is available, it should always give as good or
4348    better results as FindLibLZMA so this commit doesn't affect the
4349    recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG)
4350    which explicitly avoids FindLibLZMA.
4351
4352    Thanks to Markus Rickert.
4353
4354 CMakeLists.txt | 21 +++++++++++++--------
4355 1 file changed, 13 insertions(+), 8 deletions(-)
4356
4357commit 5b7bc1b8ae766a76710ca1b99f909cf52c697f05
4358Author: Lasse Collin <lasse.collin@tukaani.org>
4359Date:   2021-01-29 21:19:43 +0200
4360
4361    Update THANKS.
4362
4363 THANKS | 1 +
4364 1 file changed, 1 insertion(+)
4365
4366commit 6c6f0db340dcb8bb424411cedba713405d55f6b8
4367Author: Lasse Collin <lasse.collin@tukaani.org>
4368Date:   2021-01-29 21:19:08 +0200
4369
4370    liblzma: Fix unitialized variable.
4371
4372    This was introduced two weeks ago in the commit
4373    625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c.
4374
4375    Thanks to Nathan Moinvaziri.
4376
4377 src/liblzma/lzma/lzma_encoder.c | 1 +
4378 1 file changed, 1 insertion(+)
4379
4380commit bb1d5c1fdd30550d4221ecd336e0be1206132a5c
4381Author: Lasse Collin <lasse.collin@tukaani.org>
4382Date:   2021-01-24 22:32:41 +0200
4383
4384    Tests: Add bad-1-lzma2-10.xz and also modify -9.xz.
4385
4386 tests/files/README            |  11 +++++++++--
4387 tests/files/bad-1-lzma2-10.xz | Bin 0 -> 60 bytes
4388 tests/files/bad-1-lzma2-9.xz  | Bin 72 -> 72 bytes
4389 3 files changed, 9 insertions(+), 2 deletions(-)
4390
4391commit 6b8abc84a5469792e0355d0bfc0784d41cfdfef7
4392Author: Lasse Collin <lasse.collin@tukaani.org>
4393Date:   2021-01-24 19:22:35 +0200
4394
4395    liblzma: Fix a wrong comment in stream_encoder_mt.c.
4396
4397 src/liblzma/common/stream_encoder_mt.c | 10 +++++++---
4398 1 file changed, 7 insertions(+), 3 deletions(-)
4399
4400commit 939fc5ed654aac25fe0c8684b2df8dbeadb2de1e
4401Author: Lasse Collin <lasse.collin@tukaani.org>
4402Date:   2021-01-24 18:51:51 +0200
4403
4404    Tests: Add bad-1-lzma2-9.xz.
4405
4406 tests/files/README           |   4 ++++
4407 tests/files/bad-1-lzma2-9.xz | Bin 0 -> 72 bytes
4408 2 files changed, 4 insertions(+)
4409
4410commit fdd30032f8531ac89519b48c21d810ecf06825f6
4411Author: Lasse Collin <lasse.collin@tukaani.org>
4412Date:   2021-01-24 17:02:00 +0200
4413
4414    Tests: Add bad-1-check-crc32-2.xz.
4415
4416 tests/files/README                 |   7 +++++++
4417 tests/files/bad-1-check-crc32-2.xz | Bin 0 -> 72 bytes
4418 2 files changed, 7 insertions(+)
4419
4420commit db465419ae26ec7fb9b9472183911ff521620c77
4421Author: Lasse Collin <lasse.collin@tukaani.org>
4422Date:   2021-01-17 19:20:50 +0200
4423
4424    liblzma: In EROFS LZMA decoder, verify that comp_size matches at the end.
4425
4426    When the uncompressed size is known to be exact, after decompressing
4427    the stream exactly comp_size bytes of input must have been consumed.
4428    This is a minor improvement to error detection.
4429
4430 src/liblzma/common/erofs_decoder.c | 7 ++++++-
4431 1 file changed, 6 insertions(+), 1 deletion(-)
4432
4433commit 774cc0118ba2496581cb2621505a04bb6598cc75
4434Author: Lasse Collin <lasse.collin@tukaani.org>
4435Date:   2021-01-17 18:53:34 +0200
4436
4437    liblzma: Make EROFS LZMA decoder work when exact uncomp_size isn't known.
4438
4439    The caller must still not specify an uncompressed size bigger
4440    than the actual uncompressed size.
4441
4442    As a downside, this now needs the exact compressed size.
4443
4444 src/liblzma/api/lzma/container.h   | 23 ++++++++---
4445 src/liblzma/common/erofs_decoder.c | 80 ++++++++++++++++++++++++++++++++++----
4446 2 files changed, 91 insertions(+), 12 deletions(-)
4447
4448commit 421b0aa352da244075db10205cf33712f91b9835
4449Author: Lasse Collin <lasse.collin@tukaani.org>
4450Date:   2021-01-14 20:57:11 +0200
4451
4452    liblzma: Fix missing normalization in rc_encode_dummy().
4453
4454    Without this fix it could attempt to create too much output.
4455
4456 src/liblzma/rangecoder/range_encoder.h | 7 ++++++-
4457 1 file changed, 6 insertions(+), 1 deletion(-)
4458
4459commit 601ec0311e769fc704daaaa7dac0ca840aff080e
4460Author: Lasse Collin <lasse.collin@tukaani.org>
4461Date:   2021-01-14 20:07:01 +0200
4462
4463    liblzma: Add EROFS LZMA encoder and decoder.
4464
4465    Right now this is just a planned extra-compact format for use
4466    in the EROFS file system in Linux. At this point it's possible
4467    that the format will either change or be abandoned and removed
4468    completely.
4469
4470    The special thing about the encoder is that it uses the
4471    output-size-limited encoding added in the previous commit.
4472    EROFS uses fixed-sized blocks (e.g. 4 KiB) to hold compressed
4473    data so the compressors must be able to create valid streams
4474    that fill the given block size.
4475
4476 src/liblzma/api/lzma/container.h   |  76 +++++++++++++++++++
4477 src/liblzma/common/Makefile.inc    |   2 +
4478 src/liblzma/common/erofs_decoder.c | 148 +++++++++++++++++++++++++++++++++++++
4479 src/liblzma/common/erofs_encoder.c | 139 ++++++++++++++++++++++++++++++++++
4480 src/liblzma/liblzma.map            |   2 +
4481 5 files changed, 367 insertions(+)
4482
4483commit 625f4c7c99b2fcc4db9e7ab2deb4884790e2e17c
4484Author: Lasse Collin <lasse.collin@tukaani.org>
4485Date:   2021-01-13 19:16:32 +0200
4486
4487    liblzma: Add rough support for output-size-limited encoding in LZMA1.
4488
4489    With this it is possible to encode LZMA1 data without EOPM so that
4490    the encoder will encode as much input as it can without exceeding
4491    the specified output size limit. The resulting LZMA1 stream will
4492    be a normal LZMA1 stream without EOPM. The actual uncompressed size
4493    will be available to the caller via the uncomp_size pointer.
4494
4495    One missing thing is that the LZMA layer doesn't inform the LZ layer
4496    when the encoding is finished and thus the LZ may read more input
4497    when it won't be used. However, this doesn't matter if encoding is
4498    done with a single call (which is the planned use case for now).
4499    For proper multi-call encoding this should be improved.
4500
4501    This commit only adds the functionality for internal use.
4502    Nothing uses it yet.
4503
4504 src/liblzma/common/common.h             |  11 +++
4505 src/liblzma/lz/lz_encoder.c             |  16 ++++
4506 src/liblzma/lz/lz_encoder.h             |   4 +
4507 src/liblzma/lzma/lzma_encoder.c         | 127 +++++++++++++++++++++++---------
4508 src/liblzma/lzma/lzma_encoder_private.h |  12 +++
4509 src/liblzma/rangecoder/range_encoder.h  | 111 ++++++++++++++++++++++++++++
4510 6 files changed, 246 insertions(+), 35 deletions(-)
4511
4512commit 9cdabbeea891e8f1e7741b076f7db6ac05ae392a
4513Author: Lasse Collin <lasse.collin@tukaani.org>
4514Date:   2021-01-11 23:57:11 +0200
4515
4516    Scripts: Add zstd support to xzdiff.
4517
4518 src/scripts/xzdiff.1  |  6 ++++--
4519 src/scripts/xzdiff.in | 16 +++++++++++-----
4520 2 files changed, 15 insertions(+), 7 deletions(-)
4521
4522commit d9ec3add97cf4c999a7f594c6529680227b6c274
4523Author: Lasse Collin <lasse.collin@tukaani.org>
4524Date:   2021-01-11 23:41:30 +0200
4525
4526    Update THANKS.
4527
4528 THANKS | 2 ++
4529 1 file changed, 2 insertions(+)
4530
4531commit 074259f4f3966aeac6edb205fecbc1a8d2b58bb2
4532Author: Lasse Collin <lasse.collin@tukaani.org>
4533Date:   2021-01-11 23:41:16 +0200
4534
4535    xz: Make --keep accept symlinks, hardlinks, and setuid/setgid/sticky.
4536
4537    Previously this required using --force but that has other
4538    effects too which might be undesirable. Changing the behavior
4539    of --keep has a small risk of breaking existing scripts but
4540    since this is a fairly special corner case I expect the
4541    likehood of breakage to be low enough.
4542
4543    I think the new behavior is more logical. The only reason for
4544    the old behavior was to be consistent with gzip and bzip2.
4545
4546    Thanks to Vincent Lefevre and Sebastian Andrzej Siewior.
4547
4548 src/xz/file_io.c |  9 +++++----
4549 src/xz/xz.1      | 16 +++++++++++++++-
4550 2 files changed, 20 insertions(+), 5 deletions(-)
4551
4552commit 73c555b3077c19dda29b6f4592ced2af876f8333
4553Author: Lasse Collin <lasse.collin@tukaani.org>
4554Date:   2021-01-11 23:28:52 +0200
4555
4556    Scripts: Fix exit status of xzgrep.
4557
4558    Omit the -q option from xz, gzip, and bzip2. With xz this shouldn't
4559    matter. With gzip it's important because -q makes gzip replace SIGPIPE
4560    with exit status 2. With bzip2 it's important because with -q bzip2
4561    is completely silent if input is corrupt while other decompressors
4562    still give an error message.
4563
4564    Avoiding exit status 2 from gzip is important because bzip2 uses
4565    exit status 2 to indicate corrupt input. Before this commit xzgrep
4566    didn't recognize corrupt .bz2 files because xzgrep was treating
4567    exit status 2 as SIGPIPE for gzip compatibility.
4568
4569    zstd still needs -q because otherwise it is noisy in normal
4570    operation.
4571
4572    The code to detect real SIGPIPE didn't check if the exit status
4573    was due to a signal (>= 128) and so could ignore some other exit
4574    status too.
4575
4576 src/scripts/xzgrep.in | 20 +++++++++++++-------
4577 1 file changed, 13 insertions(+), 7 deletions(-)
4578
4579commit 194029ffaf74282a81f0c299c07f73caca3232ca
4580Author: Lasse Collin <lasse.collin@tukaani.org>
4581Date:   2021-01-11 22:01:51 +0200
4582
4583    Scripts: Fix exit status of xzdiff/xzcmp.
4584
4585    This is a minor fix since this affects only the situation when
4586    the files differ and the exit status is something else than 0.
4587    In such case there could be SIGPIPE from a decompression tool
4588    and that would result in exit status of 2 from xzdiff/xzcmp
4589    while the correct behavior would be to return 1 or whatever
4590    else diff or cmp may have returned.
4591
4592    This commit omits the -q option from xz/gzip/bzip2/lzop arguments.
4593    I'm not sure why the -q was used in the first place, perhaps it
4594    hides warnings in some situation that I cannot see at the moment.
4595    Hopefully the removal won't introduce a new bug.
4596
4597    With gzip the -q option was harmful because it made gzip return 2
4598    instead of >= 128 with SIGPIPE. Ignoring exit status 2 (warning
4599    from gzip) isn't practical because bzip2 uses exit status 2 to
4600    indicate corrupt input file. It's better if SIGPIPE results in
4601    exit status >= 128.
4602
4603    With bzip2 the removal of -q seems to be good because with -q
4604    it prints nothing if input is corrupt. The other tools aren't
4605    silent in this situation even with -q. On the other hand, if
4606    zstd support is added, it will need -q since otherwise it's
4607    noisy in normal situations.
4608
4609    Thanks to Étienne Mollier and Sebastian Andrzej Siewior.
4610
4611 src/scripts/xzdiff.in | 35 +++++++++++++++++++++--------------
4612 1 file changed, 21 insertions(+), 14 deletions(-)
4613
4614commit f7fa309e1f7178d04c7bedc03b73077639371e97
4615Author: Lasse Collin <lasse.collin@tukaani.org>
4616Date:   2021-01-09 21:14:36 +0200
4617
4618    liblzma: Make lzma_outq usable for threaded decompression too.
4619
4620    Before this commit all output queue buffers were allocated as
4621    a single big allocation. Now each buffer is allocated separately
4622    when needed. Used buffers are cached to avoid reallocation
4623    overhead but the cache will keep only one buffer size at a time.
4624    This should make things work OK in the decompression where most
4625    of the time the buffer sizes will be the same but with some less
4626    common files the buffer sizes may vary.
4627
4628    While this should work fine, it's still a bit preliminary
4629    and may even get reverted if it turns out to be useless for
4630    decompression.
4631
4632 src/liblzma/common/outqueue.c          | 268 +++++++++++++++++++++------------
4633 src/liblzma/common/outqueue.h          | 138 ++++++++++++-----
4634 src/liblzma/common/stream_encoder_mt.c |  52 ++++---
4635 3 files changed, 301 insertions(+), 157 deletions(-)
4636
4637commit a35a69d693ce37d4ba7c1855bda7d9cfa13d1778
4638Author: Lasse Collin <lasse.collin@tukaani.org>
4639Date:   2020-12-23 17:15:49 +0200
4640
4641    Update THANKS.
4642
4643 THANKS | 1 +
4644 1 file changed, 1 insertion(+)
4645
4646commit 4fd79b90c52396d70e0b1206ceb1a873a0ad2589
4647Author: H.J. Lu <hjl.tools@gmail.com>
4648Date:   2020-12-23 06:49:04 -0800
4649
4650    liblzma: Enable Intel CET in x86 CRC assembly codes
4651
4652    When Intel CET is enabled, we need to include <cet.h> in assembly codes
4653    to mark Intel CET support and add _CET_ENDBR to indirect jump targets.
4654
4655    Tested on Intel Tiger Lake under CET enabled Linux.
4656
4657 src/liblzma/check/crc32_x86.S | 9 +++++++++
4658 src/liblzma/check/crc64_x86.S | 9 +++++++++
4659 2 files changed, 18 insertions(+)
4660
4661commit bb3b8c6a23e25db79f862b1de325c56052e0354b
4662Author: Lasse Collin <lasse.collin@tukaani.org>
4663Date:   2020-12-16 18:33:29 +0200
4664
4665    Update THANKS.
4666
4667 THANKS | 1 +
4668 1 file changed, 1 insertion(+)
4669
4670commit 21588ca34af98738954fc12ded1b89d7294ef646
4671Author: Lasse Collin <lasse.collin@tukaani.org>
4672Date:   2020-12-16 18:30:14 +0200
4673
4674    Build: Don't build bundles on Apple OSes.
4675
4676    Thanks to Daniel Packard.
4677
4678 CMakeLists.txt | 3 +++
4679 1 file changed, 3 insertions(+)
4680
4681commit d05b0c42dd8b38d8c6b8193c8af50e9bd3d16f28
4682Author: Lasse Collin <lasse.collin@tukaani.org>
4683Date:   2020-12-05 22:44:03 +0200
4684
4685    Update THANKS.
4686
4687 THANKS | 1 +
4688 1 file changed, 1 insertion(+)
4689
4690commit 1890351f3423627ba5c4c495402f32d7e9ed90b7
4691Author: Adam Borowski <kilobyte@angband.pl>
4692Date:   2020-09-25 03:35:18 +0200
4693
4694    Scripts: Add zstd support to xzgrep.
4695
4696    Thanks to Adam Borowski.
4697
4698 src/scripts/xzgrep.1  | 9 ++++++---
4699 src/scripts/xzgrep.in | 1 +
4700 2 files changed, 7 insertions(+), 3 deletions(-)
4701
4702commit 2f108abb3d82e4e2313b438dae9c0c7c7a6366f2
4703Author: Lasse Collin <lasse.collin@tukaani.org>
4704Date:   2020-11-17 20:51:48 +0200
4705
4706    CMake: Fix compatibility with CMake 3.13.
4707
4708    The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14.
4709    In some other places the code treats the cache variables
4710    like normal variables already (${FOO} or if(FOO) is used,
4711    not ${CACHE{FOO}).
4712
4713    Thanks to ygrek for reporting the bug on IRC.
4714
4715 CMakeLists.txt              | 2 +-
4716 cmake/tuklib_cpucores.cmake | 4 ++--
4717 cmake/tuklib_physmem.cmake  | 4 ++--
4718 3 files changed, 5 insertions(+), 5 deletions(-)
4719
4720commit 5af726a79273fafa5de5745b117e567f21c90e49
4721Author: Lasse Collin <lasse.collin@tukaani.org>
4722Date:   2020-11-01 22:56:43 +0200
4723
4724    Update THANKS.
4725
4726 THANKS | 4 +++-
4727 1 file changed, 3 insertions(+), 1 deletion(-)
4728
4729commit 4575d9d365c756ec189899f9f743e0b3515ce72d
4730Author: Lasse Collin <lasse.collin@tukaani.org>
4731Date:   2020-11-01 22:34:25 +0200
4732
4733    xz: Avoid unneeded \f escapes on the man page.
4734
4735    I don't want to use \c in macro arguments but groff_man(7)
4736    suggests that \f has better portability. \f would be needed
4737    for the .TP strings for portability reasons anyway.
4738
4739    Thanks to Bjarni Ingi Gislason.
4740
4741 src/xz/xz.1 | 31 ++++++++++++++++++++++---------
4742 1 file changed, 22 insertions(+), 9 deletions(-)
4743
4744commit 620b32f5339f86710cb4435e01ecdac972ccac73
4745Author: Lasse Collin <lasse.collin@tukaani.org>
4746Date:   2020-11-01 19:09:53 +0200
4747
4748    xz: Use non-breaking spaces when intentionally using more than one space.
4749
4750    This silences some style checker warnings. Seems that spaces
4751    in the beginning of a line don't need this treatment.
4752
4753    Thanks to Bjarni Ingi Gislason.
4754
4755 src/xz/xz.1 | 2 +-
4756 1 file changed, 1 insertion(+), 1 deletion(-)
4757
4758commit cb1f34988c8a4130485091b2f8b641303d8f701b
4759Author: Lasse Collin <lasse.collin@tukaani.org>
4760Date:   2020-11-01 18:49:37 +0200
4761
4762    xz: Protect the ellipsis (...) on the man page with \&.
4763
4764    This does it only when ... appears outside macro calls.
4765
4766    Thanks to Bjarni Ingi Gislason.
4767
4768 src/xz/xz.1 | 4 ++--
4769 1 file changed, 2 insertions(+), 2 deletions(-)
4770
4771commit 5d224da3da87400f2fab313abbd7c710e7169ef9
4772Author: Lasse Collin <lasse.collin@tukaani.org>
4773Date:   2020-11-01 18:41:21 +0200
4774
4775    xz: Avoid the abbreviation "e.g." on the man page.
4776
4777    A few are simply omitted, most are converted to "for example"
4778    and surrounded with commas. Sounds like that this is better
4779    style, for example, man-pages(7) recommends avoiding such
4780    abbreviations except in parenthesis.
4781
4782    Thanks to Bjarni Ingi Gislason.
4783
4784 src/xz/xz.1 | 66 ++++++++++++++++++++++++++++++-------------------------------
4785 1 file changed, 33 insertions(+), 33 deletions(-)
4786
4787commit 90457dbe3e5717660f5b81f8c604860fc5137c0c
4788Author: Lasse Collin <lasse.collin@tukaani.org>
4789Date:   2020-07-12 23:10:03 +0300
4790
4791    xz man page: Change \- (minus) to \(en (en-dash) for a numeric range.
4792
4793    Docs of ancient troff/nroff mention \(em (em-dash) but not \(en
4794    and \- was used for both minus and en-dash. I don't know how
4795    portable \(en is nowadays but it can be changed back if someone
4796    complains. At least GNU groff and OpenBSD's mandoc support it.
4797
4798    Thanks to Bjarni Ingi Gislason for the patch.
4799
4800 src/xz/xz.1 | 16 ++++++++--------
4801 1 file changed, 8 insertions(+), 8 deletions(-)
4802
4803commit 352ba2d69af2136bc814aa1df1a132559d445616
4804Author: Lasse Collin <lasse.collin@tukaani.org>
4805Date:   2020-07-12 20:46:24 +0300
4806
4807    Windows: Fix building of resource files when config.h isn't used.
4808
4809    Now CMake + Visual Studio works for building liblzma.dll.
4810
4811    Thanks to Markus Rickert.
4812
4813 src/common/common_w32res.rc | 4 +++-
4814 1 file changed, 3 insertions(+), 1 deletion(-)
4815
4816commit a9e2a87f1d61dcf684d809bf08c8ebea93f8a480
4817Author: Lasse Collin <lasse.collin@tukaani.org>
4818Date:   2020-04-06 19:31:50 +0300
4819
4820    src/scripts/xzgrep.1: Filenames to xzgrep are optional.
4821
4822    xzgrep --help was correct already.
4823
4824 src/scripts/xzgrep.1 | 2 +-
4825 1 file changed, 1 insertion(+), 1 deletion(-)
4826
4827commit a7ba275d9b855d186abb29eb7a4f4cb6d9ca6fe0
4828Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4829Date:   2020-03-26 22:17:31 +0000
4830
4831    src/script/xzgrep.1: Remove superfluous '.RB'
4832
4833    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
4834
4835      [ "test-groff" is a developmental version of "groff" ]
4836
4837    Input file is ./src/scripts/xzgrep.1
4838
4839    <src/scripts/xzgrep.1>:20 (macro RB): only 1 argument, but more are expected
4840    <src/scripts/xzgrep.1>:23 (macro RB): only 1 argument, but more are expected
4841    <src/scripts/xzgrep.1>:26 (macro RB): only 1 argument, but more are expected
4842    <src/scripts/xzgrep.1>:29 (macro RB): only 1 argument, but more are expected
4843    <src/scripts/xzgrep.1>:32 (macro RB): only 1 argument, but more are expected
4844
4845     "abc..." does not mean the same as "abc ...".
4846
4847      The output from nroff and troff is unchanged except for the space
4848    between "file" and "...".
4849
4850    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4851
4852 src/scripts/xzgrep.1 | 12 ++++++------
4853 1 file changed, 6 insertions(+), 6 deletions(-)
4854
4855commit 133d498db0f4b14f066d192d64dbcade45deae6b
4856Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4857Date:   2020-03-30 21:56:36 +0000
4858
4859    xzgrep.1: Delete superfluous '.PP'
4860
4861    Summary:
4862
4863    mandoc -T lint xzgrep.1 :
4864    mandoc: xzgrep.1:79:2: WARNING: skipping paragraph macro: PP empty
4865
4866      There is no change in the output of "nroff" and "troff".
4867
4868    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4869
4870 src/scripts/xzgrep.1 | 1 -
4871 1 file changed, 1 deletion(-)
4872
4873commit 057839ca982f886387b66746bffe749cb14fd8cd
4874Author: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4875Date:   2020-03-26 21:16:18 +0000
4876
4877    src/xz/xz.1: Correct misused two-fonts macros
4878
4879    Output is from: test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z
4880
4881      [ "test-groff" is a developmental version of "groff" ]
4882
4883    Input file is ./src/xz/xz.1
4884
4885    <src/xz/xz.1>:408 (macro BR): only 1 argument, but more are expected
4886    <src/xz/xz.1>:1009 (macro BR): only 1 argument, but more are expected
4887    <src/xz/xz.1>:1743 (macro BR): only 1 argument, but more are expected
4888    <src/xz/xz.1>:1920 (macro BR): only 1 argument, but more are expected
4889    <src/xz/xz.1>:2213 (macro BR): only 1 argument, but more are expected
4890
4891      Output from nroff and troff is unchanged, except for a font change of a
4892    full stop (.).
4893
4894    Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
4895
4896 src/xz/xz.1 | 10 +++++-----
4897 1 file changed, 5 insertions(+), 5 deletions(-)
4898
4899commit b8e12f5ab4c9fd3cb09a4330b2861f6b979ababd
4900Author: Lasse Collin <lasse.collin@tukaani.org>
4901Date:   2020-03-23 18:07:50 +0200
4902
4903    Typo fixes from fossies.org.
4904
4905    https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
4906
4907 Makefile.am                     | 2 +-
4908 doc/examples/01_compress_easy.c | 2 +-
4909 src/liblzma/api/lzma/base.h     | 2 +-
4910 src/liblzma/check/crc32_x86.S   | 2 +-
4911 src/liblzma/common/index.c      | 2 +-
4912 src/xz/xz.1                     | 4 ++--
4913 6 files changed, 7 insertions(+), 7 deletions(-)
4914
4915commit 869b9d1b4edd6df07f819d360d306251f8147353
4916Author: Lasse Collin <lasse.collin@tukaani.org>
4917Date:   2020-03-17 16:24:28 +0200
4918
4919    Update NEWS for 5.2.5.
4920
4921 NEWS | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4922 1 file changed, 105 insertions(+)
4923
4924commit a048e3a92d238c65f050a765174d9c75417231d4
4925Author: Lasse Collin <lasse.collin@tukaani.org>
4926Date:   2020-03-16 20:01:37 +0200
4927
4928    README: Update outdated sections.
4929
4930 README | 21 +++++++++++----------
4931 1 file changed, 11 insertions(+), 10 deletions(-)
4932
4933commit 29aed815ad4f98f3e4d355faa76a244ecd8ce716
4934Author: Lasse Collin <lasse.collin@tukaani.org>
4935Date:   2020-03-16 19:39:45 +0200
4936
4937    README: Mention that man pages can be translated.
4938
4939 README | 7 ++++---
4940 1 file changed, 4 insertions(+), 3 deletions(-)
4941
4942commit 7fa7653940cc9dcfcbce2fbc5166ea343ad4e3c1
4943Author: Lasse Collin <lasse.collin@tukaani.org>
4944Date:   2020-03-16 16:43:29 +0200
4945
4946    Update INSTALL.generic from Automake 1.16.1.
4947
4948 INSTALL.generic | 321 ++++++++++++++++++++++++++++----------------------------
4949 1 file changed, 162 insertions(+), 159 deletions(-)
4950
4951commit 9bd317ef03ab9b3e6a927c27c2e9c4ac041182f0
4952Author: Lasse Collin <lasse.collin@tukaani.org>
4953Date:   2020-03-15 15:27:22 +0200
4954
4955    Update INSTALL for Windows and DOS and add preliminary info for z/OS.
4956
4957 INSTALL | 51 +++++++++++++++++++++++++++++++++++++++++----------
4958 1 file changed, 41 insertions(+), 10 deletions(-)
4959
4960commit a3148c0446dc7fa96363752df414d22539c9007b
4961Author: Lasse Collin <lasse.collin@tukaani.org>
4962Date:   2020-03-15 15:26:20 +0200
4963
4964    Build: Update m4/ax_pthread.m4 from Autoconf Archive (again).
4965
4966 m4/ax_pthread.m4 | 219 +++++++++++++++++++++++++++++--------------------------
4967 1 file changed, 117 insertions(+), 102 deletions(-)
4968
4969commit 7812002dd3ed319e42a14662a8531802cca8ca67
4970Author: Lasse Collin <lasse.collin@tukaani.org>
4971Date:   2020-03-11 21:15:35 +0200
4972
4973    xz: Never use thousand separators in DJGPP builds.
4974
4975    DJGPP 2.05 added support for thousands separators but it's
4976    broken at least under WinXP with Finnish locale that uses
4977    a non-breaking space as the thousands separator. Workaround
4978    by disabling thousands separators for DJGPP builds.
4979
4980 src/xz/util.c | 14 ++++++++++++--
4981 1 file changed, 12 insertions(+), 2 deletions(-)
4982
4983commit 7c8f688bf7fccd65d396e0130cbf4ea5dff5c56f
4984Author: Lasse Collin <lasse.collin@tukaani.org>
4985Date:   2020-03-11 19:38:08 +0200
4986
4987    DOS: Update dos/Makefile for DJGPP 2.05.
4988
4989    It doesn't need -fgnu89-inline like 2.04beta did.
4990
4991 dos/Makefile | 4 +---
4992 1 file changed, 1 insertion(+), 3 deletions(-)
4993
4994commit 319ca928d73de87940c54e30bffe69f9fa65efdf
4995Author: Lasse Collin <lasse.collin@tukaani.org>
4996Date:   2020-03-11 19:36:07 +0200
4997
4998    DOS: Update instructions in dos/INSTALL.txt.
4999
5000 dos/INSTALL.txt | 59 ++++++++++++++++++++++++++++-----------------------------
5001 1 file changed, 29 insertions(+), 30 deletions(-)
5002
5003commit cb6b227ce39932824812ccd8a0647bd968de27d2
5004Author: Lasse Collin <lasse.collin@tukaani.org>
5005Date:   2020-03-11 17:58:51 +0200
5006
5007    DOS: Update config.h.
5008
5009    The added defines assume GCC >= 4.8.
5010
5011 dos/config.h | 8 ++++++++
5012 1 file changed, 8 insertions(+)
5013
5014commit 4572d53e16e87eee375bc5624de2fd59bb0ae9cd
5015Author: Lasse Collin <lasse.collin@tukaani.org>
5016Date:   2020-03-02 13:54:33 +0200
5017
5018    liblzma: Fix a comment and RC_SYMBOLS_MAX.
5019
5020    The comment didn't match the value of RC_SYMBOLS_MAX and the value
5021    itself was slightly larger than actually needed. The only harm
5022    about this was that memory usage was a few bytes larger.
5023
5024 src/liblzma/rangecoder/range_encoder.h | 4 ++--
5025 1 file changed, 2 insertions(+), 2 deletions(-)
5026
5027commit 265daa873c0d871f5f23f9b56e133a6f20045a0a
5028Author: Lasse Collin <lasse.collin@tukaani.org>
5029Date:   2020-02-27 20:58:52 +0200
5030
5031    Build: Make CMake build fail if tuklib_cpucores or tuklib_physmem fails.
5032
5033 CMakeLists.txt | 18 ++++++++++++++++++
5034 1 file changed, 18 insertions(+)
5035
5036commit 7c8b904527cdbe61248c80edcc2e20d840c4fef9
5037Author: Lasse Collin <lasse.collin@tukaani.org>
5038Date:   2020-02-27 20:24:27 +0200
5039
5040    Build: Add support for --no-po4a option to autogen.sh.
5041
5042    Normally, if po4a isn't available, autogen.sh will return
5043    with non-zero exit status. The option --no-po4a can be useful
5044    when one knows that po4a isn't available but wants autogen.sh
5045    to still return with zero exit status.
5046
5047 autogen.sh | 11 ++++++++++-
5048 1 file changed, 10 insertions(+), 1 deletion(-)
5049
5050commit 292a5c0f9c9b3a66f5a5c652dc46381836d4537f
5051Author: Lasse Collin <lasse.collin@tukaani.org>
5052Date:   2020-02-25 21:35:14 +0200
5053
5054    Update THANKS.
5055
5056 THANKS | 1 +
5057 1 file changed, 1 insertion(+)
5058
5059commit 474320e9908786ba2021035f9013191e16cde08a
5060Author: Lasse Collin <lasse.collin@tukaani.org>
5061Date:   2020-02-25 20:42:31 +0200
5062
5063    Build: Fix bugs in the CMake files.
5064
5065    Seems that the phrase "add more quotes" from sh/bash scripting
5066    applies to CMake as well. E.g. passing an unquoted list ${FOO}
5067    to a function that expects one argument results in only the
5068    first element of the list being passed as an argument and
5069    the rest get ignored. Adding quotes helps ("${FOO}").
5070
5071    list(INSERT ...) is weird. Inserting an empty string to an empty
5072    variable results in empty list, but inserting it to a non-empty
5073    variable does insert an empty element to the list.
5074
5075    Since INSERT requires at least one element,
5076    "${CMAKE_THREAD_LIBS_INIT}" needs to be quoted in CMakeLists.txt.
5077    It might result in an empty element in the list. It seems to not
5078    matter as empty elements consistently get ignored in that variable.
5079    In fact, calling cmake_check_push_state() and cmake_check_pop_state()
5080    will strip the empty elements from CMAKE_REQUIRED_LIBRARIES!
5081
5082    In addition to quoting fixes, this fixes checks for the cache
5083    variables in tuklib_cpucores.cmake and tuklib_physmem.cmake.
5084
5085    Thanks to Martin Matuška for testing and reporting the problems.
5086    These fixes aren't tested yet but hopefully they soon will be.
5087
5088 CMakeLists.txt              | 52 ++++++++++++++++++++++-----------------------
5089 cmake/tuklib_common.cmake   |  8 ++++---
5090 cmake/tuklib_cpucores.cmake | 30 ++++++++++++++------------
5091 cmake/tuklib_integer.cmake  | 34 +++++++++++++++--------------
5092 cmake/tuklib_mbstr.cmake    |  6 +++---
5093 cmake/tuklib_physmem.cmake  | 29 +++++++++++++------------
5094 cmake/tuklib_progname.cmake |  4 ++--
5095 7 files changed, 85 insertions(+), 78 deletions(-)
5096
5097commit 7e3493d40eac0c3fa3d5124097745a70e15c41f6
5098Author: Lasse Collin <lasse.collin@tukaani.org>
5099Date:   2020-02-24 23:38:16 +0200
5100
5101    Build: Add very limited experimental CMake support.
5102
5103    This does *NOT* replace the Autotools-based build system in
5104    the foreseeable future. See the comment in the beginning
5105    of CMakeLists.txt.
5106
5107    So far this has been tested only on GNU/Linux but I commit
5108    it anyway to make it easier for others to test. Since I
5109    haven't played much with CMake before, it's likely that
5110    there are things that have been done in a silly or wrong
5111    way and need to be fixed.
5112
5113 CMakeLists.txt              | 643 ++++++++++++++++++++++++++++++++++++++++++++
5114 cmake/tuklib_common.cmake   |  47 ++++
5115 cmake/tuklib_cpucores.cmake | 173 ++++++++++++
5116 cmake/tuklib_integer.cmake  | 100 +++++++
5117 cmake/tuklib_mbstr.cmake    |  20 ++
5118 cmake/tuklib_physmem.cmake  | 149 ++++++++++
5119 cmake/tuklib_progname.cmake |  19 ++
5120 7 files changed, 1151 insertions(+)
5121
5122commit 21bd4701fca3e9002ce78bc135debca369ed8545
5123Author: Lasse Collin <lasse.collin@tukaani.org>
5124Date:   2020-02-24 23:37:07 +0200
5125
5126    Update m4/.gitignore.
5127
5128 m4/.gitignore | 1 +
5129 1 file changed, 1 insertion(+)
5130
5131commit e094d1d0f196a91ec703e8d0055948feef349ae8
5132Author: Lasse Collin <lasse.collin@tukaani.org>
5133Date:   2020-02-24 23:29:35 +0200
5134
5135    tuklib: Omit an unneeded <sys/types.h> from a tests.
5136
5137    tuklib_cpucores.c and tuklib_physmem.c don't include <sys/types.h>
5138    even via other files in this package, so clearly that header isn't
5139    needed in the tests either (no one has reported build problems due
5140    to a missing header in a .c file).
5141
5142 m4/tuklib_cpucores.m4 | 1 -
5143 m4/tuklib_physmem.m4  | 1 -
5144 2 files changed, 2 deletions(-)
5145
5146commit b3ed19a55fe99a45bd77614e149d39d18498075c
5147Author: Lasse Collin <lasse.collin@tukaani.org>
5148Date:   2020-02-24 23:01:00 +0200
5149
5150    liblzma: Remove unneeded <sys/types.h> from fastpos_tablegen.c.
5151
5152    This file only generates fastpos_table.c.
5153    It isn't built as a part of liblzma.
5154
5155 src/liblzma/lzma/fastpos_tablegen.c | 1 -
5156 1 file changed, 1 deletion(-)
5157
5158commit 7b8982b29179b3c586e0456dc9ecbd4f58dcea59
5159Author: Lasse Collin <lasse.collin@tukaani.org>
5160Date:   2020-02-22 14:15:07 +0200
5161
5162    Use defined(__GNUC__) before __GNUC__ in preprocessor lines.
5163
5164    This should silence the equivalent of -Wundef in compilers that
5165    don't define __GNUC__.
5166
5167 src/common/sysdefs.h   | 3 ++-
5168 src/liblzma/api/lzma.h | 5 +++--
5169 2 files changed, 5 insertions(+), 3 deletions(-)
5170
5171commit 43dfe04e6209c691cf4fbe3072d4ee91271748f1
5172Author: Lasse Collin <lasse.collin@tukaani.org>
5173Date:   2020-02-21 17:40:02 +0200
5174
5175    liblzma: Add more uses of lzma_memcmplen() to the normal mode of LZMA.
5176
5177    This gives a tiny encoder speed improvement. This could have been done
5178    in 2014 after the commit 544aaa3d13554e8640f9caf7db717a96360ec0f6 but
5179    it was forgotten.
5180
5181 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 16 ++++++++++------
5182 1 file changed, 10 insertions(+), 6 deletions(-)
5183
5184commit 59e6eb4840b9f52fa3a61544974017279b448216
5185Author: Lasse Collin <lasse.collin@tukaani.org>
5186Date:   2020-02-21 17:01:15 +0200
5187
5188    Build: Add visibility.m4 from gnulib.
5189
5190    Appears that this file used to get included as a side effect of
5191    gettext. After the change to gettext version requirements this file
5192    no longer got copied to the package and so the build was broken.
5193
5194 m4/.gitignore    |  1 -
5195 m4/visibility.m4 | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5196 2 files changed, 77 insertions(+), 1 deletion(-)
5197
5198commit 7fe3ef2eaa53d439cec043727ea1998f4ff0e22a
5199Author: Lasse Collin <lasse.collin@tukaani.org>
5200Date:   2020-02-21 16:10:44 +0200
5201
5202    xz: Silence a warning when sig_atomic_t is long int.
5203
5204    It can be true at least on z/OS.
5205
5206 src/xz/signals.c | 2 +-
5207 1 file changed, 1 insertion(+), 1 deletion(-)
5208
5209commit b0a2a77d10940c42b449d47a005bfc2e50ab5db8
5210Author: Lasse Collin <lasse.collin@tukaani.org>
5211Date:   2020-02-21 15:59:26 +0200
5212
5213    xz: Avoid unneeded access of a volatile variable.
5214
5215 src/xz/signals.c | 2 +-
5216 1 file changed, 1 insertion(+), 1 deletion(-)
5217
5218commit 524c2f12c762032b819757aeda8af7c47c4cabce
5219Author: Lasse Collin <lasse.collin@tukaani.org>
5220Date:   2020-02-21 01:24:18 +0200
5221
5222    tuklib_integer.m4: Optimize the check order.
5223
5224    The __builtin byteswapping is the preferred one so check for it first.
5225
5226 m4/tuklib_integer.m4 | 56 +++++++++++++++++++++++++++-------------------------
5227 1 file changed, 29 insertions(+), 27 deletions(-)
5228
5229commit 57360bb4fd79b358b36d2877db26ac828d1fdfcb
5230Author: Lasse Collin <lasse.collin@tukaani.org>
5231Date:   2020-02-20 18:54:04 +0200
5232
5233    tuklib_exit: Add missing header.
5234
5235    strerror() needs <string.h> which happened to be included via
5236    tuklib_common.h -> tuklib_config.h -> sysdefs.h if HAVE_CONFIG_H
5237    was defined. This wasn't tested without config.h before so it
5238    had worked fine.
5239
5240 src/common/tuklib_exit.c | 1 +
5241 1 file changed, 1 insertion(+)
5242
5243commit fddd31175e74a538997a939d930462fde17d2dd4
5244Author: Lasse Collin <lasse.collin@tukaani.org>
5245Date:   2020-02-18 19:12:35 +0200
5246
5247    Revert the previous commit and add a comment.
5248
5249    The previous commit broke crc32_tablegen.c.
5250
5251    If the whole package is built without config.h (with defines
5252    set on the compiler command line) this should still work fine
5253    as long as these headers conform to C99 well enough.
5254
5255 src/common/tuklib_config.h | 17 ++++++++++-------
5256 1 file changed, 10 insertions(+), 7 deletions(-)
5257
5258commit 4e4e9fbb7e66d45319525ac224bff48fbdd0cf6e
5259Author: Lasse Collin <lasse.collin@tukaani.org>
5260Date:   2020-02-17 23:37:20 +0200
5261
5262    Do not check for HAVE_CONFIG_H in tuklib_config.h.
5263
5264    In XZ Utils sysdefs.h takes care of it and the required headers.
5265
5266 src/common/tuklib_config.h | 15 +++++++--------
5267 1 file changed, 7 insertions(+), 8 deletions(-)
5268
5269commit 2d4cef954feba82073951358466a1d614141cf33
5270Author: Lasse Collin <lasse.collin@tukaani.org>
5271Date:   2020-02-16 11:18:28 +0200
5272
5273    sysdefs.h: Omit the conditionals around string.h and limits.h.
5274
5275    string.h is used unconditionally elsewhere in the project and
5276    configure has always stopped if limits.h is missing, so these
5277    headers must have been always available even on the weirdest
5278    systems.
5279
5280 src/common/sysdefs.h | 8 ++------
5281 1 file changed, 2 insertions(+), 6 deletions(-)
5282
5283commit feb9c1969bc3eb33d4ecb72cfa897f92dae84939
5284Author: Lasse Collin <lasse.collin@tukaani.org>
5285Date:   2020-02-15 15:07:11 +0200
5286
5287    Build: Bump Autoconf and Libtool version requirements.
5288
5289    There is no specific reason for this other than blocking
5290    the most ancient versions. These are still old:
5291
5292    Autoconf 2.69 (2012)
5293    Automake 1.12 (2012)
5294    gettext 0.19.6 (2015)
5295    Libtool 2.4 (2010)
5296
5297 configure.ac | 4 ++--
5298 1 file changed, 2 insertions(+), 2 deletions(-)
5299
5300commit 3d576cf92158d62790017ad7f2dd6dc1dd6b42bb
5301Author: Lasse Collin <lasse.collin@tukaani.org>
5302Date:   2020-02-15 03:08:32 +0200
5303
5304    Build: Use AM_GNU_GETTEXT_REQUIRE_VERSION and require 0.19.6.
5305
5306    This bumps the version requirement from 0.19 (from 2014) to
5307    0.19.6 (2015).
5308
5309    Using only the old AM_GNU_GETTEXT_VERSION results in old
5310    gettext infrastructure being placed in the package. By using
5311    both macros we get the latest gettext files while the other
5312    programs in the Autotools family can still see the old macro.
5313
5314 configure.ac | 6 +++++-
5315 1 file changed, 5 insertions(+), 1 deletion(-)
5316
5317commit fa792b8befaf7cb3960b655e0a9410da866d756f
5318Author: Lasse Collin <lasse.collin@tukaani.org>
5319Date:   2020-02-14 20:42:06 +0200
5320
5321    Translations: Add German translation of the man pages.
5322
5323    Thanks to Mario Blättermann.
5324
5325 po4a/de.po     | 5532 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5326 po4a/po4a.conf |    2 +-
5327 2 files changed, 5533 insertions(+), 1 deletion(-)
5328
5329commit 6f7211b6bb47a895b47f533282dba9ee9a1b0c8b
5330Author: Lasse Collin <lasse.collin@tukaani.org>
5331Date:   2020-02-07 15:32:21 +0200
5332
5333    Build: Add support for translated man pages using po4a.
5334
5335    The dependency on po4a is optional. It's never required to install
5336    the translated man pages when xz is built from a release tarball.
5337    If po4a is missing when building from xz.git, the translated man
5338    pages won't be generated but otherwise the build will work normally.
5339
5340    The translations are only updated automatically by autogen.sh and
5341    by "make mydist". This makes it easy to keep po4a as an optional
5342    dependency and ensures that I won't forget to put updated
5343    translations to a release tarball.
5344
5345    The translated man pages aren't installed if --disable-nls is used.
5346
5347    The installation of translated man pages abuses Automake internals
5348    by calling "install-man" with redefined dist_man_MANS and man_MANS.
5349    This makes the hairy script code slightly less hairy. If it breaks
5350    some day, this code needs to be fixed; don't blame Automake developers.
5351
5352    Also, this adds more quotes to the existing shell script code in
5353    the Makefile.am "-hook"s.
5354
5355 Makefile.am             |  4 ++++
5356 autogen.sh              |  8 ++++---
5357 po4a/.gitignore         |  2 ++
5358 po4a/po4a.conf          | 14 +++++++++++
5359 po4a/update-po          | 45 ++++++++++++++++++++++++++++++++++
5360 src/scripts/Makefile.am | 64 +++++++++++++++++++++++++++++++++++++------------
5361 src/xz/Makefile.am      | 50 +++++++++++++++++++++++++++-----------
5362 src/xzdec/Makefile.am   | 55 ++++++++++++++++++++++++++++++++----------
5363 8 files changed, 197 insertions(+), 45 deletions(-)
5364
5365commit 426f9e5819ff7710a5ff573a96c02940be65d52f
5366Author: Lasse Collin <lasse.collin@tukaani.org>
5367Date:   2020-02-06 17:31:38 +0200
5368
5369    Update THANKS.
5370
5371 THANKS | 1 +
5372 1 file changed, 1 insertion(+)
5373
5374commit e3a4481d020e4de89efa037f335cf50f3ca55592
5375Author: Lasse Collin <lasse.collin@tukaani.org>
5376Date:   2020-02-05 22:35:06 +0200
5377
5378    Update tests/.gitignore.
5379
5380 .gitignore | 4 ++++
5381 1 file changed, 4 insertions(+)
5382
5383commit 07208de92f2d5bca764f6d0ebe9d9866051dc4ef
5384Author: Lasse Collin <lasse.collin@tukaani.org>
5385Date:   2020-02-05 22:28:51 +0200
5386
5387    Update m4/.gitignore.
5388
5389 m4/.gitignore | 1 +
5390 1 file changed, 1 insertion(+)
5391
5392commit c91fbf223db46c3b3cb9df769863a1a60cd9c908
5393Author: Lasse Collin <lasse.collin@tukaani.org>
5394Date:   2020-02-05 20:47:38 +0200
5395
5396    Update THANKS.
5397
5398 THANKS | 1 +
5399 1 file changed, 1 insertion(+)
5400
5401commit 15a133b6d1a3eab4faf6eb52a71fdc56bd65846f
5402Author: Lasse Collin <lasse.collin@tukaani.org>
5403Date:   2020-02-05 20:40:14 +0200
5404
5405    xz: Make it a fatal error if enabling the sandbox fails.
5406
5407    Perhaps it's too drastic but on the other hand it will let me
5408    learn about possible problems if people report the errors.
5409    This won't be backported to the v5.2 branch.
5410
5411 src/xz/file_io.c | 2 +-
5412 1 file changed, 1 insertion(+), 1 deletion(-)
5413
5414commit af0fb386ef55db66654ae39e2deec6e04190c4ff
5415Author: Lasse Collin <lasse.collin@tukaani.org>
5416Date:   2020-02-05 20:33:50 +0200
5417
5418    xz: Comment out annoying sandboxing messages.
5419
5420 src/xz/file_io.c | 10 +++++++---
5421 1 file changed, 7 insertions(+), 3 deletions(-)
5422
5423commit 986d8c9b52b824474088e5bb3b6940651660f0e2
5424Author: Lasse Collin <lasse.collin@tukaani.org>
5425Date:   2020-02-05 19:33:37 +0200
5426
5427    Build: Workaround a POSIX shell detection problem on Solaris.
5428
5429    I don't know if the problem is in gnulib's gl_POSIX_SHELL macro
5430    or if xzgrep does something that isn't in POSIX. The workaround
5431    adds a special case for Solaris: if /usr/xpg4/bin/sh exists and
5432    gl_cv_posix_shell wasn't overriden on the configure command line,
5433    use that shell for xzgrep and other scripts. That shell is known
5434    to work and exists on most Solaris systems.
5435
5436 configure.ac | 10 ++++++++++
5437 1 file changed, 10 insertions(+)
5438
5439commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad
5440Author: Lasse Collin <lasse.collin@tukaani.org>
5441Date:   2020-02-03 22:03:50 +0200
5442
5443    Build: Update m4/ax_pthread.m4 from Autoconf Archive.
5444
5445 m4/ax_pthread.m4 | 398 ++++++++++++++++++++++++++++++++++++++-----------------
5446 1 file changed, 279 insertions(+), 119 deletions(-)
5447
5448commit 353970510895f6a80adfe60cf71b70a95adfa8bc
5449Author: Lasse Collin <lasse.collin@tukaani.org>
5450Date:   2020-02-01 19:56:18 +0200
5451
5452    xz: Limit --memlimit-compress to at most 4020 MiB for 32-bit xz.
5453
5454    See the code comment for reasoning. It's far from perfect but
5455    hopefully good enough for certain cases while hopefully doing
5456    nothing bad in other situations.
5457
5458    At presets -5 ... -9, 4020 MiB vs. 4096 MiB makes no difference
5459    on how xz scales down the number of threads.
5460
5461    The limit has to be a few MiB below 4096 MiB because otherwise
5462    things like "xz --lzma2=dict=500MiB" won't scale down the dict
5463    size enough and xz cannot allocate enough memory. With
5464    "ulimit -v $((4096 * 1024))" on x86-64, the limit in xz had
5465    to be no more than 4085 MiB. Some safety margin is good though.
5466
5467    This is hack but it should be useful when running 32-bit xz on
5468    a 64-bit kernel that gives full 4 GiB address space to xz.
5469    Hopefully this is enough to solve this:
5470
5471    https://bugzilla.redhat.com/show_bug.cgi?id=1196786
5472
5473    FreeBSD has a patch that limits the result in tuklib_physmem()
5474    to SIZE_MAX on 32-bit systems. While I think it's not the way
5475    to do it, the results on --memlimit-compress have been good. This
5476    commit should achieve practically identical results for compression
5477    while leaving decompression and tuklib_physmem() and thus
5478    lzma_physmem() unaffected.
5479
5480 src/xz/hardware.c | 32 +++++++++++++++++++++++++++++++-
5481 src/xz/xz.1       | 21 ++++++++++++++++++++-
5482 2 files changed, 51 insertions(+), 2 deletions(-)
5483
5484commit ba76d67585f88677af9f48b48e7bdc3bb7687def
5485Author: Lasse Collin <lasse.collin@tukaani.org>
5486Date:   2020-01-26 20:53:25 +0200
5487
5488    xz: Set the --flush-timeout deadline when the first input byte arrives.
5489
5490    xz --flush-timeout=2000, old version:
5491
5492      1. xz is started. The next flush will happen after two seconds.
5493      2. No input for one second.
5494      3. A burst of a few kilobytes of input.
5495      4. No input for one second.
5496      5. Two seconds have passed and flushing starts.
5497
5498    The first second counted towards the flush-timeout even though
5499    there was no pending data. This can cause flushing to occur more
5500    often than needed.
5501
5502    xz --flush-timeout=2000, after this commit:
5503
5504      1. xz is started.
5505      2. No input for one second.
5506      3. A burst of a few kilobytes of input. The next flush will
5507         happen after two seconds counted from the time when the
5508         first bytes of the burst were read.
5509      4. No input for one second.
5510      5. No input for another second.
5511      6. Two seconds have passed and flushing starts.
5512
5513 src/xz/coder.c   | 6 +-----
5514 src/xz/file_io.c | 6 +++++-
5515 src/xz/mytime.c  | 1 -
5516 3 files changed, 6 insertions(+), 7 deletions(-)
5517
5518commit fd47fd62bbb1bfd13ab63869137971d8b390025f
5519Author: Lasse Collin <lasse.collin@tukaani.org>
5520Date:   2020-01-26 20:19:19 +0200
5521
5522    xz: Move flush_needed from mytime.h to file_pair struct in file_io.h.
5523
5524 src/xz/coder.c   | 3 ++-
5525 src/xz/file_io.c | 3 ++-
5526 src/xz/file_io.h | 3 +++
5527 src/xz/mytime.c  | 3 ---
5528 src/xz/mytime.h  | 4 ----
5529 5 files changed, 7 insertions(+), 9 deletions(-)
5530
5531commit 815035681063d5774d3640fc20b8ede783dd574e
5532Author: Lasse Collin <lasse.collin@tukaani.org>
5533Date:   2020-01-26 14:49:22 +0200
5534
5535    xz: coder.c: Make writing output a separate function.
5536
5537    The same code sequence repeats so it's nicer as a separate function.
5538    Note that in one case there was no test for opt_mode != MODE_TEST,
5539    but that was only because that condition would always be true, so
5540    this commit doesn't change the behavior there.
5541
5542 src/xz/coder.c | 30 +++++++++++++++++-------------
5543 1 file changed, 17 insertions(+), 13 deletions(-)
5544
5545commit 5a49e081a098455bcdbd95cefb90e9b18780fe58
5546Author: Lasse Collin <lasse.collin@tukaani.org>
5547Date:   2020-01-26 14:13:42 +0200
5548
5549    xz: Fix semi-busy-waiting in xz --flush-timeout.
5550
5551    When input blocked, xz --flush-timeout=1 would wake up every
5552    millisecond and initiate flushing which would have nothing to
5553    flush and thus would just waste CPU time. The fix disables the
5554    timeout when no input has been seen since the previous flush.
5555
5556 src/xz/coder.c   |  4 ++++
5557 src/xz/file_io.c | 15 +++++++++++----
5558 src/xz/file_io.h |  4 ++++
5559 3 files changed, 19 insertions(+), 4 deletions(-)
5560
5561commit dcca70fe9fa3c4bec56cf9c79e966166c9a9cf6a
5562Author: Lasse Collin <lasse.collin@tukaani.org>
5563Date:   2020-01-26 13:47:31 +0200
5564
5565    xz: Refactor io_read() a bit.
5566
5567 src/xz/file_io.c | 17 ++++++++---------
5568 1 file changed, 8 insertions(+), 9 deletions(-)
5569
5570commit 4ae9ab70cd3214395756435d13d8d000368ca2cb
5571Author: Lasse Collin <lasse.collin@tukaani.org>
5572Date:   2020-01-26 13:37:08 +0200
5573
5574    xz: Update a comment in file_io.h.
5575
5576 src/xz/file_io.h | 5 ++++-
5577 1 file changed, 4 insertions(+), 1 deletion(-)
5578
5579commit 3333ba4a6795a55cf0375329ba08152bd7fcbd46
5580Author: Lasse Collin <lasse.collin@tukaani.org>
5581Date:   2020-01-26 13:27:51 +0200
5582
5583    xz: Move the setting of flush_needed in file_io.c to a nicer location.
5584
5585 src/xz/file_io.c | 6 ++----
5586 1 file changed, 2 insertions(+), 4 deletions(-)
5587
5588commit cf2df0f05ac98c1158c6e48145900b773223605d
5589Author: Lasse Collin <lasse.collin@tukaani.org>
5590Date:   2020-01-19 21:54:33 +0200
5591
5592    Use $(LIB_FUZZING_ENGINE) in tests/ossfuzz/Makefile.
5593
5594    https://github.com/google/oss-fuzz/pull/3219#issuecomment-573751048
5595
5596    Thanks to Bhargava Shastry for sending the patch.
5597
5598 tests/ossfuzz/Makefile | 2 +-
5599 1 file changed, 1 insertion(+), 1 deletion(-)
5600
5601commit 7136f1735c60ac6967c4b8e277fcde53d485234f
5602Author: Lasse Collin <lasse.collin@tukaani.org>
5603Date:   2019-12-31 00:41:28 +0200
5604
5605    Rename unaligned_read32ne to read32ne, and similarly for the others.
5606
5607 src/common/tuklib_integer.h               | 64 +++++++++++++++----------------
5608 src/liblzma/common/alone_encoder.c        |  2 +-
5609 src/liblzma/common/block_header_decoder.c |  2 +-
5610 src/liblzma/common/block_header_encoder.c |  2 +-
5611 src/liblzma/common/memcmplen.h            |  9 ++---
5612 src/liblzma/common/stream_flags_decoder.c |  6 +--
5613 src/liblzma/common/stream_flags_encoder.c |  8 ++--
5614 src/liblzma/lz/lz_encoder_hash.h          |  2 +-
5615 src/liblzma/lzma/lzma_decoder.c           |  2 +-
5616 src/liblzma/lzma/lzma_encoder.c           |  2 +-
5617 src/liblzma/lzma/lzma_encoder_private.h   |  3 +-
5618 src/liblzma/simple/simple_decoder.c       |  2 +-
5619 src/liblzma/simple/simple_encoder.c       |  2 +-
5620 tests/test_block_header.c                 |  4 +-
5621 tests/test_stream_flags.c                 |  6 +--
5622 15 files changed, 54 insertions(+), 62 deletions(-)
5623
5624commit 5e78fcbf2eb21936022c9c5c3625d4da76f4b241
5625Author: Lasse Collin <lasse.collin@tukaani.org>
5626Date:   2019-12-31 00:29:48 +0200
5627
5628    Rename read32ne to aligned_read32ne, and similarly for the others.
5629
5630    Using the aligned methods requires more care to ensure that
5631    the address really is aligned, so it's nicer if the aligned
5632    methods are prefixed. The next commit will remove the unaligned_
5633    prefix from the unaligned methods which in liblzma are used in
5634    more places than the aligned ones.
5635
5636 src/common/tuklib_integer.h    | 56 +++++++++++++++++++++---------------------
5637 src/liblzma/check/crc32_fast.c |  4 +--
5638 src/liblzma/check/crc64_fast.c |  4 +--
5639 3 files changed, 32 insertions(+), 32 deletions(-)
5640
5641commit 77bc5bc6dd67056cfd5888520ac930cfc57b4516
5642Author: Lasse Collin <lasse.collin@tukaani.org>
5643Date:   2019-12-31 00:18:24 +0200
5644
5645    Revise tuklib_integer.h and .m4.
5646
5647    Add a configure option --enable-unsafe-type-punning to get the
5648    old non-conforming memory access methods. It can be useful with
5649    old compilers or in some other less typical situations but
5650    shouldn't normally be used.
5651
5652    Omit the packed struct trick for unaligned access. While it's
5653    best in some cases, this is simpler. If the memcpy trick doesn't
5654    work, one can request unsafe type punning from configure.
5655
5656    Because CRC32/CRC64 code needs fast aligned reads, if no very
5657    safe way to do it is found, type punning is used as a fallback.
5658    This sucks but since it currently works in practice, it seems to
5659    be the least bad option. It's never needed with GCC >= 4.7 or
5660    Clang >= 3.6 since these support __builtin_assume_aligned and
5661    thus fast aligned access can be done with the memcpy trick.
5662
5663    Other things:
5664      - Support GCC/Clang __builtin_bswapXX
5665      - Cleaner bswap fallback macros
5666      - Minor cleanups
5667
5668 m4/tuklib_integer.m4        |  46 ++++-
5669 src/common/tuklib_integer.h | 488 ++++++++++++++++++++++++--------------------
5670 2 files changed, 316 insertions(+), 218 deletions(-)
5671
5672commit 8b72950a6b2e2a36c2d8fdc8857564b57191b088
5673Author: Lasse Collin <lasse.collin@tukaani.org>
5674Date:   2019-12-29 22:51:58 +0200
5675
5676    Tests: Hopefully fix test_check.c to work on EBCDIC systems.
5677
5678    Thanks to Daniel Richard G.
5679
5680 tests/test_check.c | 9 +++++++--
5681 1 file changed, 7 insertions(+), 2 deletions(-)
5682
5683commit 43ce4ea7c762238d3df9717b34126d3e0d7cd51c
5684Author: Lasse Collin <lasse.collin@tukaani.org>
5685Date:   2019-09-24 23:02:40 +0300
5686
5687    Scripts: Put /usr/xpg4/bin to the beginning of PATH on Solaris.
5688
5689    This adds a configure option --enable-path-for-scripts=PREFIX
5690    which defaults to empty except on Solaris it is /usr/xpg4/bin
5691    to make POSIX grep and others available. The Solaris case had
5692    been documented in INSTALL with a manual fix but it's better
5693    to do this automatically since it is needed on most Solaris
5694    systems anyway.
5695
5696    Thanks to Daniel Richard G.
5697
5698 INSTALL               | 43 +++++++++++++++++++++++++++++++++++--------
5699 configure.ac          | 26 ++++++++++++++++++++++++++
5700 src/scripts/xzdiff.in |  1 +
5701 src/scripts/xzgrep.in |  1 +
5702 src/scripts/xzless.in |  1 +
5703 src/scripts/xzmore.in |  1 +
5704 6 files changed, 65 insertions(+), 8 deletions(-)
5705
5706commit 6a89e656ebedd53a10cd1a063a32a9e4ade0da1f
5707Author: Lasse Collin <lasse.collin@tukaani.org>
5708Date:   2019-07-12 18:57:43 +0300
5709
5710    Fix comment typos in tuklib_mbstr* files.
5711
5712 src/common/tuklib_mbstr.h       | 2 +-
5713 src/common/tuklib_mbstr_fw.c    | 2 +-
5714 src/common/tuklib_mbstr_width.c | 2 +-
5715 3 files changed, 3 insertions(+), 3 deletions(-)
5716
5717commit ac0b4212656a48ef0c187c0c941d40ac9489ae36
5718Author: Lasse Collin <lasse.collin@tukaani.org>
5719Date:   2019-07-12 18:30:46 +0300
5720
5721    Add missing include to tuklib_mbstr_width.c.
5722
5723    It didn't matter in XZ Utils because sysdefs.h
5724    includes string.h anyway.
5725
5726 src/common/tuklib_mbstr_width.c | 1 +
5727 1 file changed, 1 insertion(+)
5728
5729commit 72a443281fb0b91aebf8cdff2ab1f7c07b081240
5730Author: Lasse Collin <lasse.collin@tukaani.org>
5731Date:   2019-07-12 18:10:57 +0300
5732
5733    Update tuklib base headers to include stdbool.h.
5734
5735 src/common/tuklib_common.h | 2 +-
5736 src/common/tuklib_config.h | 1 +
5737 2 files changed, 2 insertions(+), 1 deletion(-)
5738
5739commit de1f47b2b40e960b7bc3acba754f66dd19705921
5740Author: Lasse Collin <lasse.collin@tukaani.org>
5741Date:   2019-06-28 00:54:31 +0300
5742
5743    xz: Automatically align the strings in --info-memory.
5744
5745    This makes it easier to translate the strings.
5746
5747    Also, the string for amount of RAM was shortened.
5748
5749 src/xz/hardware.c | 45 ++++++++++++++++++++++++++++++++++-----------
5750 1 file changed, 34 insertions(+), 11 deletions(-)
5751
5752commit 8ce679125dbd0e2058d8f886e738d7f19a45cab5
5753Author: Lasse Collin <lasse.collin@tukaani.org>
5754Date:   2019-06-25 23:15:21 +0300
5755
5756    liblzma: Fix a buggy comment.
5757
5758 src/liblzma/lz/lz_encoder_mf.c | 2 +-
5759 1 file changed, 1 insertion(+), 1 deletion(-)
5760
5761commit fc77929e92e869f6869bf88931066103fd75f376
5762Author: Lasse Collin <lasse.collin@tukaani.org>
5763Date:   2019-06-25 00:16:06 +0300
5764
5765    configure.ac: Fix a typo in a comment.
5766
5767 configure.ac | 2 +-
5768 1 file changed, 1 insertion(+), 1 deletion(-)
5769
5770commit e873902641794210ad7db59743f98e3e1cd6139f
5771Author: Lasse Collin <lasse.collin@tukaani.org>
5772Date:   2019-06-25 00:08:13 +0300
5773
5774    Tests: Silence warnings from clang -Wassign-enum.
5775
5776    Also changed 999 to 99 so it fits even if lzma_check happened
5777    to be 8 bits wide.
5778
5779 tests/test_block_header.c | 3 ++-
5780 tests/test_stream_flags.c | 2 +-
5781 2 files changed, 3 insertions(+), 2 deletions(-)
5782
5783commit d499e467d99efeaae688564eedc4548837c1416a
5784Author: Lasse Collin <lasse.collin@tukaani.org>
5785Date:   2019-06-24 23:52:17 +0300
5786
5787    liblzma: Add a comment.
5788
5789 src/liblzma/common/stream_encoder_mt.c | 2 +-
5790 1 file changed, 1 insertion(+), 1 deletion(-)
5791
5792commit a12b13c5f0d54c684fa8446f93fdac08ab2a716b
5793Author: Lasse Collin <lasse.collin@tukaani.org>
5794Date:   2019-06-24 23:45:21 +0300
5795
5796    liblzma: Silence clang -Wmissing-variable-declarations.
5797
5798 src/liblzma/check/crc32_table.c | 3 +++
5799 src/liblzma/check/crc64_table.c | 3 +++
5800 2 files changed, 6 insertions(+)
5801
5802commit 1b4675cebf7471f7cc9b7072c950e3de97147063
5803Author: Lasse Collin <lasse.collin@tukaani.org>
5804Date:   2019-06-24 23:25:41 +0300
5805
5806    Add LZMA_RET_INTERNAL1..8 to lzma_ret and use one for LZMA_TIMED_OUT.
5807
5808    LZMA_TIMED_OUT is *internally* used as a value for lzma_ret
5809    enumeration. Previously it was #defined to 32 and cast to lzma_ret.
5810    That way it wasn't visible in the public API, but this was hackish.
5811
5812    Now the public API has eight LZMA_RET_INTERNALx members and
5813    LZMA_TIMED_OUT is #defined to LZMA_RET_INTERNAL1. This way
5814    the code is cleaner overall although the public API has a few
5815    extra mysterious enum members.
5816
5817 src/liblzma/api/lzma/base.h | 15 ++++++++++++++-
5818 src/liblzma/common/common.c |  4 +---
5819 src/liblzma/common/common.h |  5 ++---
5820 src/xz/message.c            |  8 ++++++++
5821 4 files changed, 25 insertions(+), 7 deletions(-)
5822
5823commit 159c43875eb25deea626ed651274464bae3e32ef
5824Author: Lasse Collin <lasse.collin@tukaani.org>
5825Date:   2019-06-24 22:57:43 +0300
5826
5827    xz: Silence a warning from clang -Wsign-conversion in main.c.
5828
5829 src/xz/main.c | 2 +-
5830 1 file changed, 1 insertion(+), 1 deletion(-)
5831
5832commit 466cfcd3e52f6750ce28a635997f3dd84fb18515
5833Author: Lasse Collin <lasse.collin@tukaani.org>
5834Date:   2019-06-24 22:52:20 +0300
5835
5836    xz: Make "headings" static in list.c.
5837
5838    Caught by clang -Wmissing-variable-declarations.
5839
5840 src/xz/list.c | 2 +-
5841 1 file changed, 1 insertion(+), 1 deletion(-)
5842
5843commit 608517b9b76c41fac6613dbda1193d6f41338e19
5844Author: Lasse Collin <lasse.collin@tukaani.org>
5845Date:   2019-06-24 22:47:39 +0300
5846
5847    liblzma: Remove incorrect uses of lzma_attribute((__unused__)).
5848
5849    Caught by clang -Wused-but-marked-unused.
5850
5851 src/liblzma/common/alone_decoder.c | 3 +--
5852 src/liblzma/common/alone_encoder.c | 3 +--
5853 src/liblzma/lz/lz_decoder.c        | 3 +--
5854 3 files changed, 3 insertions(+), 6 deletions(-)
5855
5856commit c2d2ab6a9d41a2b55d047c5b710aacf80d219255
5857Author: Lasse Collin <lasse.collin@tukaani.org>
5858Date:   2019-06-24 20:53:55 +0300
5859
5860    Tests: Silence a warning from -Wsign-conversion.
5861
5862 tests/create_compress_files.c | 8 ++++----
5863 1 file changed, 4 insertions(+), 4 deletions(-)
5864
5865commit 2402f7873dcae719d0ebddd23bb579074519ac52
5866Author: Lasse Collin <lasse.collin@tukaani.org>
5867Date:   2019-06-24 20:45:49 +0300
5868
5869    xz: Fix an integer overflow with 32-bit off_t.
5870
5871    Or any off_t which isn't very big (like signed 64 bit integer
5872    that most system have). A small off_t could overflow if the
5873    file being decompressed had long enough run of zero bytes,
5874    which would result in corrupt output.
5875
5876 src/xz/file_io.c | 11 +++++++++--
5877 1 file changed, 9 insertions(+), 2 deletions(-)
5878
5879commit 4fd3a8dd0b60f029e1c66a0ee634f9e9fda3caa9
5880Author: Lasse Collin <lasse.collin@tukaani.org>
5881Date:   2019-06-24 01:24:17 +0300
5882
5883    xz: Cleanup io_seek_src() a bit.
5884
5885    lseek() returns -1 on error and checking for -1 is nicer.
5886
5887 src/xz/file_io.c | 4 +---
5888 1 file changed, 1 insertion(+), 3 deletions(-)
5889
5890commit dfda7cf6afa486e10df035327d68753896dfb48a
5891Author: Lasse Collin <lasse.collin@tukaani.org>
5892Date:   2019-06-24 00:57:23 +0300
5893
5894    Tests: Remove a duplicate branch from tests/tests.h.
5895
5896    The duplication was introduced about eleven years ago and
5897    should have been cleaned up back then already.
5898
5899    This was caught by -Wduplicated-branches.
5900
5901 tests/tests.h | 9 ++-------
5902 1 file changed, 2 insertions(+), 7 deletions(-)
5903
5904commit 1d4a904d8fb634bd5a04f7fbdd17d3739f3d8866
5905Author: Lasse Collin <lasse.collin@tukaani.org>
5906Date:   2019-06-24 00:40:45 +0300
5907
5908    xz: Change io_seek_src and io_pread arguments from off_t to uint64_t.
5909
5910    This helps fixing warnings from -Wsign-conversion and makes the
5911    code look better too.
5912
5913 src/xz/file_io.c | 16 ++++++++++++----
5914 src/xz/file_io.h |  4 ++--
5915 src/xz/list.c    |  9 ++++-----
5916 3 files changed, 18 insertions(+), 11 deletions(-)
5917
5918commit 50120deb0159fcb53ee1a6caffb2bb81a1ecd990
5919Author: Lasse Collin <lasse.collin@tukaani.org>
5920Date:   2019-06-24 00:12:38 +0300
5921
5922    xz: list.c: Fix some warnings from -Wsign-conversion.
5923
5924 src/xz/list.c | 7 ++++---
5925 1 file changed, 4 insertions(+), 3 deletions(-)
5926
5927commit d0a78751eb54fb1572002746c533936a118e4e42
5928Author: Lasse Collin <lasse.collin@tukaani.org>
5929Date:   2019-06-23 23:22:45 +0300
5930
5931    tuklib_mbstr_width: Fix a warning from -Wsign-conversion.
5932
5933 src/common/tuklib_mbstr_width.c | 2 +-
5934 1 file changed, 1 insertion(+), 1 deletion(-)
5935
5936commit 7883d73530b4b2a701ddd7d50c35676cbc158039
5937Author: Lasse Collin <lasse.collin@tukaani.org>
5938Date:   2019-06-23 23:19:34 +0300
5939
5940    xz: Fix some of the warnings from -Wsign-conversion.
5941
5942 src/xz/args.c    | 4 ++--
5943 src/xz/coder.c   | 4 ++--
5944 src/xz/file_io.c | 5 +++--
5945 src/xz/message.c | 4 ++--
5946 src/xz/mytime.c  | 4 ++--
5947 src/xz/options.c | 2 +-
5948 src/xz/util.c    | 4 ++--
5949 7 files changed, 14 insertions(+), 13 deletions(-)
5950
5951commit c2b994fe3d35e9e575c28869a2f7f534f2495d05
5952Author: Lasse Collin <lasse.collin@tukaani.org>
5953Date:   2019-06-23 22:27:45 +0300
5954
5955    tuklib_cpucores: Silence warnings from -Wsign-conversion.
5956
5957 src/common/tuklib_cpucores.c | 10 +++++-----
5958 1 file changed, 5 insertions(+), 5 deletions(-)
5959
5960commit 07c4fa9e1a195e0543f271380c8de22a3ab145ff
5961Author: Lasse Collin <lasse.collin@tukaani.org>
5962Date:   2019-06-23 21:40:47 +0300
5963
5964    xzdec: Fix warnings from -Wsign-conversion.
5965
5966 src/xzdec/xzdec.c | 2 +-
5967 1 file changed, 1 insertion(+), 1 deletion(-)
5968
5969commit dfac2c9a1d7d4a2b8a5d7c9c6d567dee48318bcf
5970Author: Lasse Collin <lasse.collin@tukaani.org>
5971Date:   2019-06-23 21:38:56 +0300
5972
5973    liblzma: Fix warnings from -Wsign-conversion.
5974
5975    Also, more parentheses were added to the literal_subcoder
5976    macro in lzma_comon.h (better style but no functional change
5977    in the current usage).
5978
5979 src/liblzma/common/block_header_decoder.c |  2 +-
5980 src/liblzma/delta/delta_decoder.c         |  2 +-
5981 src/liblzma/lzma/fastpos.h                |  2 +-
5982 src/liblzma/lzma/lzma2_decoder.c          |  8 ++++----
5983 src/liblzma/lzma/lzma_common.h            |  3 ++-
5984 src/liblzma/lzma/lzma_decoder.c           | 16 ++++++++--------
5985 src/liblzma/simple/arm.c                  |  6 +++---
5986 src/liblzma/simple/armthumb.c             |  8 ++++----
5987 src/liblzma/simple/ia64.c                 |  2 +-
5988 src/liblzma/simple/powerpc.c              |  9 +++++----
5989 src/liblzma/simple/x86.c                  |  2 +-
5990 11 files changed, 31 insertions(+), 29 deletions(-)
5991
5992commit 41838dcc26375f6aa393a63e4d81e2f4d223de07
5993Author: Lasse Collin <lasse.collin@tukaani.org>
5994Date:   2019-06-23 19:33:55 +0300
5995
5996    tuklib_integer: Silence warnings from -Wsign-conversion.
5997
5998 src/common/tuklib_integer.h | 6 +++---
5999 1 file changed, 3 insertions(+), 3 deletions(-)
6000
6001commit 3ce05d235f736d392347a05086b8033416874b87
6002Author: Lasse Collin <lasse.collin@tukaani.org>
6003Date:   2019-06-20 19:40:30 +0300
6004
6005    tuklib_integer: Fix usage of conv macros.
6006
6007    Use a temporary variable instead of e.g.
6008    conv32le(unaligned_read32ne(buf)) because the macro can
6009    evaluate its argument multiple times.
6010
6011 src/common/tuklib_integer.h | 12 ++++++++----
6012 1 file changed, 8 insertions(+), 4 deletions(-)
6013
6014commit b525b0c0ef40cd89b69294c9b8d57f4a8db58e1f
6015Author: Lasse Collin <lasse.collin@tukaani.org>
6016Date:   2019-06-03 20:44:19 +0300
6017
6018    Update THANKS.
6019
6020 THANKS | 1 +
6021 1 file changed, 1 insertion(+)
6022
6023commit 039a168e8cf201d5104a25ec41f0cf25eda6cc53
6024Author: Lasse Collin <lasse.collin@tukaani.org>
6025Date:   2019-06-03 20:41:54 +0300
6026
6027    liblzma: Fix comments.
6028
6029    Thanks to Bruce Stark.
6030
6031 src/liblzma/common/alone_encoder.c        | 4 ++--
6032 src/liblzma/common/block_util.c           | 2 +-
6033 src/liblzma/common/common.c               | 2 +-
6034 src/liblzma/common/filter_common.h        | 2 +-
6035 src/liblzma/common/filter_decoder.h       | 2 +-
6036 src/liblzma/common/filter_flags_encoder.c | 2 +-
6037 6 files changed, 7 insertions(+), 7 deletions(-)
6038
6039commit c460f6defebc5a81bbca90adc2476154ca244f69
6040Author: Lasse Collin <lasse.collin@tukaani.org>
6041Date:   2019-06-02 00:50:59 +0300
6042
6043    liblzma: Fix one more unaligned read to use unaligned_read16ne().
6044
6045 src/liblzma/lz/lz_encoder_hash.h | 2 +-
6046 1 file changed, 1 insertion(+), 1 deletion(-)
6047
6048commit c81d77c537f0b8c8672868e1dc6cf7290ce4a25b
6049Author: Lasse Collin <lasse.collin@tukaani.org>
6050Date:   2019-06-01 21:41:55 +0300
6051
6052    Update THANKS.
6053
6054 THANKS | 1 +
6055 1 file changed, 1 insertion(+)
6056
6057commit 386394fc9fcde2615391f804eaa466749f96f4ef
6058Author: Lasse Collin <lasse.collin@tukaani.org>
6059Date:   2019-06-01 21:36:13 +0300
6060
6061    liblzma: memcmplen: Use ctz32() from tuklib_integer.h.
6062
6063    The same compiler-specific #ifdefs are already in tuklib_integer.h
6064
6065 src/liblzma/common/memcmplen.h | 10 +---------
6066 1 file changed, 1 insertion(+), 9 deletions(-)
6067
6068commit 264ab971ce2994baac41b1579c9c35aba7743fc8
6069Author: Lasse Collin <lasse.collin@tukaani.org>
6070Date:   2019-06-01 21:30:03 +0300
6071
6072    tuklib_integer: Cleanup MSVC-specific code.
6073
6074 src/common/tuklib_integer.h | 20 +++++++++-----------
6075 1 file changed, 9 insertions(+), 11 deletions(-)
6076
6077commit 33773c6f2a8711d4aa6656795db52c59a28580ec
6078Author: Lasse Collin <lasse.collin@tukaani.org>
6079Date:   2019-06-01 19:01:21 +0300
6080
6081    liblzma: Use unaligned_readXXne functions instead of type punning.
6082
6083    Now gcc -fsanitize=undefined should be clean.
6084
6085    Thanks to Jeffrey Walton.
6086
6087 src/liblzma/common/memcmplen.h          | 12 ++++++------
6088 src/liblzma/lzma/lzma_encoder_private.h |  2 +-
6089 2 files changed, 7 insertions(+), 7 deletions(-)
6090
6091commit e5f13a66567b1987e0aae42c6fdcd277bb5810ba
6092Author: Lasse Collin <lasse.collin@tukaani.org>
6093Date:   2019-06-01 18:46:54 +0300
6094
6095    tuklib_integer: Autodetect support for unaligned access on ARM.
6096
6097    The result is used as the default for --enable-unaligned-access.
6098    The test should work with GCC and Clang.
6099
6100 m4/tuklib_integer.m4 | 11 +++++++++++
6101 1 file changed, 11 insertions(+)
6102
6103commit 3bc112c2d38d5f348bce7bc2422286b1692c7490
6104Author: Lasse Collin <lasse.collin@tukaani.org>
6105Date:   2019-06-01 18:41:16 +0300
6106
6107    tuklib_integer: Improve unaligned memory access.
6108
6109    Now memcpy() or GNU C packed structs for unaligned access instead
6110    of type punning. See the comment in this commit for details.
6111
6112    Avoiding type punning with unaligned access is needed to
6113    silence gcc -fsanitize=undefined.
6114
6115    New functions: unaliged_readXXne and unaligned_writeXXne where
6116    XX is 16, 32, or 64.
6117
6118 src/common/tuklib_integer.h | 180 +++++++++++++++++++++++++++++++++++++++++---
6119 1 file changed, 168 insertions(+), 12 deletions(-)
6120
6121commit 2a22de439ec63da1927b640eda309296a1e8dce5
6122Author: Lasse Collin <lasse.collin@tukaani.org>
6123Date:   2019-05-13 20:05:17 +0300
6124
6125    liblzma: Avoid memcpy(NULL, foo, 0) because it is undefined behavior.
6126
6127    I should have always known this but I didn't. Here is an example
6128    as a reminder to myself:
6129
6130        int mycopy(void *dest, void *src, size_t n)
6131        {
6132            memcpy(dest, src, n);
6133            return dest == NULL;
6134        }
6135
6136    In the example, a compiler may assume that dest != NULL because
6137    passing NULL to memcpy() would be undefined behavior. Testing
6138    with GCC 8.2.1, mycopy(NULL, NULL, 0) returns 1 with -O0 and -O1.
6139    With -O2 the return value is 0 because the compiler infers that
6140    dest cannot be NULL because it was already used with memcpy()
6141    and thus the test for NULL gets optimized out.
6142
6143    In liblzma, if a null-pointer was passed to memcpy(), there were
6144    no checks for NULL *after* the memcpy() call, so I cautiously
6145    suspect that it shouldn't have caused bad behavior in practice,
6146    but it's hard to be sure, and the problematic cases had to be
6147    fixed anyway.
6148
6149    Thanks to Jeffrey Walton.
6150
6151 src/liblzma/common/common.c       |  6 +++++-
6152 src/liblzma/lz/lz_decoder.c       | 12 +++++++++---
6153 src/liblzma/simple/simple_coder.c | 10 +++++++++-
6154 3 files changed, 23 insertions(+), 5 deletions(-)
6155
6156commit d3fc850cfedc058247d9e334ce59bbc8f2286d8a
6157Author: Lasse Collin <lasse.collin@tukaani.org>
6158Date:   2019-05-11 20:56:08 +0300
6159
6160    Update THANKS.
6161
6162 THANKS | 1 +
6163 1 file changed, 1 insertion(+)
6164
6165commit 4adb8288ab61d5f14e212007b8742df0710baf73
6166Author: Lasse Collin <lasse.collin@tukaani.org>
6167Date:   2019-05-11 20:54:12 +0300
6168
6169    xz: Update xz man page date.
6170
6171 src/xz/xz.1 | 2 +-
6172 1 file changed, 1 insertion(+), 1 deletion(-)
6173
6174commit 2fb0ddaa557ce86e38fe06439930fa8665f092fd
6175Author: Antoine Cœur <antoine.coeur@ef.com>
6176Date:   2019-05-08 13:30:57 +0800
6177
6178    spelling
6179
6180 Doxyfile.in                            | 2 +-
6181 NEWS                                   | 2 +-
6182 doc/examples/11_file_info.c            | 2 +-
6183 src/liblzma/api/lzma/block.h           | 2 +-
6184 src/liblzma/api/lzma/hardware.h        | 2 +-
6185 src/liblzma/api/lzma/lzma12.h          | 2 +-
6186 src/liblzma/api/lzma/vli.h             | 2 +-
6187 src/liblzma/common/file_info.c         | 4 ++--
6188 src/liblzma/common/hardware_physmem.c  | 2 +-
6189 src/liblzma/common/index.c             | 4 ++--
6190 src/liblzma/common/stream_encoder_mt.c | 2 +-
6191 src/liblzma/common/vli_decoder.c       | 2 +-
6192 src/liblzma/lz/lz_decoder.c            | 2 +-
6193 src/scripts/xzgrep.in                  | 2 +-
6194 src/xz/args.c                          | 2 +-
6195 src/xz/coder.c                         | 4 ++--
6196 src/xz/list.c                          | 4 ++--
6197 src/xz/main.c                          | 2 +-
6198 src/xz/mytime.h                        | 2 +-
6199 src/xz/private.h                       | 2 +-
6200 src/xz/xz.1                            | 2 +-
6201 windows/build.bash                     | 2 +-
6202 22 files changed, 26 insertions(+), 26 deletions(-)
6203
6204commit 4ed339606156bd313ed99237485cb8ed0362d64f
6205Author: Lasse Collin <lasse.collin@tukaani.org>
6206Date:   2019-05-01 18:43:10 +0300
6207
6208    xz: In xz -lvv look at the widths of the check names too.
6209
6210    Now the widths of the check names is used to adjust the width
6211    of the Check column. This way there no longer is a need to restrict
6212    the widths of the check names to be at most ten terminal-columns.
6213
6214 src/xz/list.c | 32 ++++++++++++++++++++++++++------
6215 1 file changed, 26 insertions(+), 6 deletions(-)
6216
6217commit 2f4281a1001dcf7fdf1418c0c0d246c16561fb65
6218Author: Lasse Collin <lasse.collin@tukaani.org>
6219Date:   2019-05-01 18:33:25 +0300
6220
6221    xz: Fix xz -lvv column alignment to look at the translated strings.
6222
6223 src/xz/list.c | 4 ++--
6224 1 file changed, 2 insertions(+), 2 deletions(-)
6225
6226commit 01d01b7c7c0b8eaf7f780a5584ec52c22d10fa4a
6227Author: Lasse Collin <lasse.collin@tukaani.org>
6228Date:   2019-05-01 16:52:36 +0300
6229
6230    Update THANKS.
6231
6232 THANKS | 1 +
6233 1 file changed, 1 insertion(+)
6234
6235commit 64030c6b17f7743df03a9948a0ccfcdf40c6b97c
6236Author: Lasse Collin <lasse.collin@tukaani.org>
6237Date:   2019-05-01 16:43:16 +0300
6238
6239    Windows: Update VS version in windows/vs2019/config.h.
6240
6241 windows/vs2019/config.h | 2 +-
6242 1 file changed, 1 insertion(+), 1 deletion(-)
6243
6244commit 2dc9117f5fbfab31444a3ca1e55795ccfa8a9f51
6245Author: Julien Marrec <julien.marrec@gmail.com>
6246Date:   2019-04-25 17:44:06 +0200
6247
6248    Windows: Upgrade solution itself
6249
6250 windows/vs2019/xz_win.sln | 7 +++++--
6251 1 file changed, 5 insertions(+), 2 deletions(-)
6252
6253commit ac31413916fa9b11bab17f0f0aa63e2869360f6f
6254Author: Julien Marrec <julien.marrec@gmail.com>
6255Date:   2019-04-25 17:40:24 +0200
6256
6257    Windows: Upgrade solution with VS2019
6258
6259 windows/vs2019/liblzma.vcxproj     | 15 ++++++++-------
6260 windows/vs2019/liblzma_dll.vcxproj | 15 ++++++++-------
6261 2 files changed, 16 insertions(+), 14 deletions(-)
6262
6263commit be25a0c37ba92a20c390b4d17fe502457fe96b71
6264Author: Julien Marrec <julien.marrec@gmail.com>
6265Date:   2019-04-25 17:39:32 +0200
6266
6267    Windows: Duplicate windows/vs2017 before upgrading
6268
6269 windows/vs2019/config.h            | 148 ++++++++++++++
6270 windows/vs2019/liblzma.vcxproj     | 356 ++++++++++++++++++++++++++++++++++
6271 windows/vs2019/liblzma_dll.vcxproj | 385 +++++++++++++++++++++++++++++++++++++
6272 windows/vs2019/xz_win.sln          |  48 +++++
6273 4 files changed, 937 insertions(+)
6274
6275commit d0e58b3a51e8e616f3dc26ec7b7e4aa0fa6991ad
6276Author: Lasse Collin <lasse.collin@tukaani.org>
6277Date:   2019-03-04 22:49:04 +0200
6278
6279    README: Update translation instructions.
6280
6281    XZ Utils is now part of the Translation Project
6282    <https://translationproject.org/>.
6283
6284 README | 32 +++++++++++++-------------------
6285 1 file changed, 13 insertions(+), 19 deletions(-)
6286
6287commit a750c35a7d45a16c11c1d40fecee8443c32a9996
6288Author: Lasse Collin <lasse.collin@tukaani.org>
6289Date:   2019-03-04 21:20:39 +0200
6290
6291    xz: Automatically align column headings in xz -lvv.
6292
6293 src/xz/list.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++------------
6294 1 file changed, 212 insertions(+), 51 deletions(-)
6295
6296commit 6cb42e8aa1dc37bf403a9f5acbd07e86036b7e77
6297Author: Lasse Collin <lasse.collin@tukaani.org>
6298Date:   2019-03-04 01:07:59 +0200
6299
6300    xz: Automatically align strings ending in a colon in --list output.
6301
6302    This should avoid alignment errors in translations with these
6303    strings.
6304
6305 src/xz/list.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
6306 1 file changed, 102 insertions(+), 12 deletions(-)
6307
6308commit 1e3f29b62f2c03e50fc9ebea7b83c1497dd35484
6309Author: Lasse Collin <lasse.collin@tukaani.org>
6310Date:   2019-01-13 17:29:23 +0200
6311
6312    Windows/VS2017: Omit WindowsTargetPlatformVersion from project files.
6313
6314    I understood that if a WTPV is specified, it's often wrong
6315    because different VS installations have different SDK version
6316    installed. Omitting the WTPV tag makes VS2017 default to
6317    Windows SDK 8.1 which often is also missing, so in any case
6318    people may need to specify the WTPV before building. But some
6319    day in the future a missing WTPV tag will start to default to
6320    the latest installed SDK which sounds reasonable:
6321
6322    https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html
6323
6324    Thanks to "dom".
6325
6326 windows/INSTALL-MSVC.txt           | 4 ++++
6327 windows/vs2017/liblzma.vcxproj     | 1 -
6328 windows/vs2017/liblzma_dll.vcxproj | 1 -
6329 3 files changed, 4 insertions(+), 2 deletions(-)
6330
6331commit 4d86076332aece6314063d3712a5f364172bbb0f
6332Author: Lasse Collin <lasse.collin@tukaani.org>
6333Date:   2018-12-20 20:42:29 +0200
6334
6335    Update THANKS.
6336
6337 THANKS | 1 +
6338 1 file changed, 1 insertion(+)
6339
6340commit b55d79461d1f6aeaac03c7dae84481e5eb8bea4c
6341Author: Lasse Collin <lasse.collin@tukaani.org>
6342Date:   2018-12-14 20:34:30 +0200
6343
6344    xz: Fix a crash in progress indicator when in passthru mode.
6345
6346    "xz -dcfv not_an_xz_file" crashed (all four options are
6347    required to trigger it). It caused xz to call
6348    lzma_get_progress(&strm, ...) when no coder was initialized
6349    in strm. In this situation strm.internal is NULL which leads
6350    to a crash in lzma_get_progress().
6351
6352    The bug was introduced when xz started using lzma_get_progress()
6353    to get progress info for multi-threaded compression, so the
6354    bug is present in versions 5.1.3alpha and higher.
6355
6356    Thanks to Filip Palian <Filip.Palian@pjwstk.edu.pl> for
6357    the bug report.
6358
6359 src/xz/coder.c   | 11 +++++++----
6360 src/xz/message.c | 18 ++++++++++++++++--
6361 src/xz/message.h |  3 ++-
6362 3 files changed, 25 insertions(+), 7 deletions(-)
6363
6364commit 4ae5526de013efd1021686fa80bdd10cf1cb9c56
6365Author: Lasse Collin <lasse.collin@tukaani.org>
6366Date:   2018-11-22 17:20:31 +0200
6367
6368    xz: Update man page timestamp.
6369
6370 src/xz/xz.1 | 2 +-
6371 1 file changed, 1 insertion(+), 1 deletion(-)
6372
6373commit 6a36d0d5f49e0080ff64dd9ef250abd489bea2ad
6374Author: Pavel Raiskup <praiskup@redhat.com>
6375Date:   2018-11-22 15:14:34 +0100
6376
6377    'have have' typos
6378
6379 src/xz/signals.c | 2 +-
6380 src/xz/xz.1      | 2 +-
6381 2 files changed, 2 insertions(+), 2 deletions(-)
6382
6383commit 9eca51ef805ed8002a851df1b4995d71826c8b6e
6384Author: Lasse Collin <lasse.collin@tukaani.org>
6385Date:   2018-11-02 20:40:48 +0200
6386
6387    Update THANKS.
6388
6389 THANKS | 1 +
6390 1 file changed, 1 insertion(+)
6391
6392commit 106d1a663d4ba42b63231caa289f531548df81c1
6393Author: Lasse Collin <lasse.collin@tukaani.org>
6394Date:   2018-11-02 20:18:45 +0200
6395
6396    Tests: Add a fuzz test program and a config file for OSS-Fuzz.
6397
6398    Thanks to Bhargava Shastry and Github user pdknsk.
6399
6400 tests/Makefile.am                 |  1 +
6401 tests/ossfuzz/Makefile            |  7 ++++
6402 tests/ossfuzz/config/fuzz.dict    |  2 +
6403 tests/ossfuzz/config/fuzz.options |  2 +
6404 tests/ossfuzz/fuzz.c              | 82 +++++++++++++++++++++++++++++++++++++++
6405 5 files changed, 94 insertions(+)
6406
6407commit a18ae42a79a19b1394b41eb3e238139fd28012ec
6408Author: Lasse Collin <lasse.collin@tukaani.org>
6409Date:   2018-10-26 22:49:10 +0300
6410
6411    liblzma: Don't verify header CRC32s if building for fuzz testing.
6412
6413    FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is #defined when liblzma
6414    is being built for fuzz testing.
6415
6416    Most fuzzed inputs would normally get rejected because of incorrect
6417    CRC32 and the actual header decoding code wouldn't get fuzzed.
6418    Disabling CRC32 checks avoids this problem. The fuzzer program
6419    must still use LZMA_IGNORE_CHECK flag to disable verification of
6420    integrity checks of uncompressed data.
6421
6422 src/liblzma/common/block_header_decoder.c |  5 ++++-
6423 src/liblzma/common/index_decoder.c        |  5 ++++-
6424 src/liblzma/common/index_hash.c           |  5 ++++-
6425 src/liblzma/common/stream_flags_decoder.c | 10 ++++++++--
6426 4 files changed, 20 insertions(+), 5 deletions(-)
6427
6428commit f76f7516d6a1c832f61810c82e92d151cc80966c
6429Author: Lasse Collin <lasse.collin@tukaani.org>
6430Date:   2018-07-27 18:10:44 +0300
6431
6432    xzless: Rename unused variables to silence static analysers.
6433
6434    In this particular case I don't see this affecting readability
6435    of the code.
6436
6437    Thanks to Pavel Raiskup.
6438
6439 src/scripts/xzless.in | 2 +-
6440 1 file changed, 1 insertion(+), 1 deletion(-)
6441
6442commit 3cbcaeb07eb7543735befd6f507fdb5fa4363cff
6443Author: Lasse Collin <lasse.collin@tukaani.org>
6444Date:   2018-07-27 16:02:58 +0300
6445
6446    liblzma: Remove an always-true condition from lzma_index_cat().
6447
6448    This should help static analysis tools to see that newg
6449    isn't leaked.
6450
6451    Thanks to Pavel Raiskup.
6452
6453 src/liblzma/common/index.c | 4 ++--
6454 1 file changed, 2 insertions(+), 2 deletions(-)
6455
6456commit 76762ae6098ec55c326f4b4b4a42e8c1918ee81f
6457Author: Lasse Collin <lasse.collin@tukaani.org>
6458Date:   2018-05-19 21:23:25 +0300
6459
6460    liblzma: Improve lzma_properties_decode() API documentation.
6461
6462 src/liblzma/api/lzma/filter.h | 7 ++++---
6463 1 file changed, 4 insertions(+), 3 deletions(-)
6464
6465commit 2267f5b0d20a5d24e93fcd9f72ea7eeb0d89708c
6466Author: Lasse Collin <lasse.collin@tukaani.org>
6467Date:   2018-04-29 18:58:19 +0300
6468
6469    Bump the version number to 5.3.1alpha.
6470
6471 src/liblzma/api/lzma/version.h | 2 +-
6472 src/liblzma/liblzma.map        | 2 +-
6473 2 files changed, 2 insertions(+), 2 deletions(-)
6474
6475commit cee3021d30704858e4bdd22240e7d28e570d7451
6476Author: Lasse Collin <lasse.collin@tukaani.org>
6477Date:   2018-04-29 18:48:00 +0300
6478
6479    extra/scanlzma: Fix compiler warnings.
6480
6481 extra/scanlzma/scanlzma.c | 6 +++++-
6482 1 file changed, 5 insertions(+), 1 deletion(-)
6483
6484commit c5c7ceb08a011b97d261798033e2c39613a69eb7
6485Author: Lasse Collin <lasse.collin@tukaani.org>
6486Date:   2018-04-29 18:44:47 +0300
6487
6488    DOS: Add file_info.c to the list of files to build.
6489
6490 dos/Makefile | 1 +
6491 1 file changed, 1 insertion(+)
6492
6493commit 114cab97af766b21e0fc8620479202fb1e7a5e41
6494Author: Lasse Collin <lasse.collin@tukaani.org>
6495Date:   2018-04-29 18:33:10 +0300
6496
6497    Update NEWS for 5.3.1alpha.
6498
6499 NEWS | 11 +++++++++++
6500 1 file changed, 11 insertions(+)
6501
6502commit b8139e11c512bbf32bf58ab0689f9bb6c52819da
6503Author: Lasse Collin <lasse.collin@tukaani.org>
6504Date:   2018-04-29 18:15:37 +0300
6505
6506    Add NEWS for 5.2.4.
6507
6508 NEWS | 27 +++++++++++++++++++++++++++
6509 1 file changed, 27 insertions(+)
6510
6511commit 47b59d47cfd904a420fbd45629d168ca1973721d
6512Author: Lasse Collin <lasse.collin@tukaani.org>
6513Date:   2018-02-06 19:36:30 +0200
6514
6515    Update THANKS.
6516
6517 THANKS | 2 ++
6518 1 file changed, 2 insertions(+)
6519
6520commit bc197991690ede24ab143665b5b0f0f9cb35cc46
6521Author: Ben Boeckel <mathstuf@gmail.com>
6522Date:   2018-01-29 13:58:18 -0500
6523
6524    nothrow: use noexcept for C++11 and newer
6525
6526    In C++11, the `throw()` specifier is deprecated and `noexcept` is
6527    preffered instead.
6528
6529 src/liblzma/api/lzma.h | 6 +++++-
6530 1 file changed, 5 insertions(+), 1 deletion(-)
6531
6532commit fb6d4f83cb6e144734f2a4216bb117bd56dc3cb5
6533Author: Lasse Collin <lasse.collin@tukaani.org>
6534Date:   2018-02-06 18:02:48 +0200
6535
6536    liblzma: Remove incorrect #ifdef from range_common.h.
6537
6538    In most cases it was harmless but it could affect some
6539    custom build systems.
6540
6541    Thanks to Pippijn van Steenhoven.
6542
6543 src/liblzma/rangecoder/range_common.h | 4 +---
6544 1 file changed, 1 insertion(+), 3 deletions(-)
6545
6546commit bc577d35c2d0ed17f554d2d8107b2a2a9abbac76
6547Author: Lasse Collin <lasse.collin@tukaani.org>
6548Date:   2018-01-10 22:10:39 +0200
6549
6550    Update THANKS.
6551
6552 THANKS | 1 +
6553 1 file changed, 1 insertion(+)
6554
6555commit 713bbc1a80f26d34c96ed3dbb9887362204de3a1
6556Author: Lasse Collin <lasse.collin@tukaani.org>
6557Date:   2018-01-10 21:54:27 +0200
6558
6559    tuklib_integer: New Intel C compiler needs immintrin.h.
6560
6561    Thanks to Melanie Blower (Intel) for the patch.
6562
6563 src/common/tuklib_integer.h | 11 +++++++++++
6564 1 file changed, 11 insertions(+)
6565
6566commit a0ee1afbd99da138b559cb27fa2022e7f1ab44f3
6567Author: Lasse Collin <lasse.collin@tukaani.org>
6568Date:   2017-09-24 20:04:24 +0300
6569
6570    Update THANKS.
6571
6572 THANKS | 1 +
6573 1 file changed, 1 insertion(+)
6574
6575commit a1e2c568de29c0b57d873eab40a2879b749da429
6576Author: Lasse Collin <lasse.collin@tukaani.org>
6577Date:   2017-09-16 20:36:20 +0300
6578
6579    Windows: Fix paths in VS project files.
6580
6581    Some paths use slashes instead of backslashes as directory
6582    separators... now it should work (I tested VS2013 version).
6583
6584 windows/vs2013/liblzma.vcxproj     | 12 ++++++------
6585 windows/vs2013/liblzma_dll.vcxproj | 24 ++++++++++++------------
6586 windows/vs2017/liblzma.vcxproj     | 12 ++++++------
6587 windows/vs2017/liblzma_dll.vcxproj | 24 ++++++++++++------------
6588 4 files changed, 36 insertions(+), 36 deletions(-)
6589
6590commit cea5cf8d26c9d1dc30a808614d79c0b25640e15e
6591Author: Lasse Collin <lasse.collin@tukaani.org>
6592Date:   2017-09-16 12:56:20 +0300
6593
6594    Windows: Update VS2017 project files to include file info decoder.
6595
6596 windows/vs2017/liblzma.vcxproj     | 2 ++
6597 windows/vs2017/liblzma_dll.vcxproj | 2 ++
6598 2 files changed, 4 insertions(+)
6599
6600commit 95d563db3ee497b223e522b699c4d4c29943eef0
6601Author: Lasse Collin <lasse.collin@tukaani.org>
6602Date:   2017-09-16 12:54:23 +0300
6603
6604    Windows: Add project files for VS2017.
6605
6606    These files match the v5.2 branch (no file info decoder).
6607
6608 windows/vs2017/config.h            | 148 ++++++++++++++
6609 windows/vs2017/liblzma.vcxproj     | 355 ++++++++++++++++++++++++++++++++++
6610 windows/vs2017/liblzma_dll.vcxproj | 384 +++++++++++++++++++++++++++++++++++++
6611 windows/vs2017/xz_win.sln          |  48 +++++
6612 4 files changed, 935 insertions(+)
6613
6614commit ab72416d62ea8f50ad31d5b8545fcb6a2bf96b73
6615Author: Lasse Collin <lasse.collin@tukaani.org>
6616Date:   2017-09-16 12:45:50 +0300
6617
6618    Windows: Update VS2013 project files to include file info decoder.
6619
6620 windows/vs2013/liblzma.vcxproj     | 2 ++
6621 windows/vs2013/liblzma_dll.vcxproj | 2 ++
6622 2 files changed, 4 insertions(+)
6623
6624commit 82388980187b0e3794d187762054200bbdcc9a53
6625Author: Lasse Collin <lasse.collin@tukaani.org>
6626Date:   2017-09-16 12:39:43 +0300
6627
6628    Windows: Move VS2013 files into windows/vs2013 directory.
6629
6630 windows/{ => vs2013}/config.h            |   0
6631 windows/{ => vs2013}/liblzma.vcxproj     | 278 +++++++++++++++---------------
6632 windows/{ => vs2013}/liblzma_dll.vcxproj | 280 +++++++++++++++----------------
6633 windows/{ => vs2013}/xz_win.sln          |   0
6634 4 files changed, 279 insertions(+), 279 deletions(-)
6635
6636commit 94e3f986aa4e14b4ff01ac24857f499630d6d180
6637Author: Lasse Collin <lasse.collin@tukaani.org>
6638Date:   2017-08-14 20:08:33 +0300
6639
6640    Fix or hide warnings from GCC 7's -Wimplicit-fallthrough.
6641
6642 src/liblzma/lzma/lzma_decoder.c | 6 ++++++
6643 src/xz/list.c                   | 2 ++
6644 2 files changed, 8 insertions(+)
6645
6646commit 0b0e1e6803456aac641a59332200f8e95e2b7ea8
6647Author: Alexey Tourbin <alexey.tourbin@gmail.com>
6648Date:   2017-05-16 23:56:35 +0300
6649
6650    Docs: Fix a typo in a comment in doc/examples/02_decompress.c.
6651
6652 doc/examples/02_decompress.c | 2 +-
6653 1 file changed, 1 insertion(+), 1 deletion(-)
6654
6655commit a015cd1f90116e655be4eaf4aad42c4c911c2807
6656Author: Lasse Collin <lasse.collin@tukaani.org>
6657Date:   2017-05-23 18:34:43 +0300
6658
6659    xz: Fix "xz --list --robot missing_or_bad_file.xz".
6660
6661    It ended up printing an uninitialized char-array when trying to
6662    print the check names (column 7) on the "totals" line.
6663
6664    This also changes the column 12 (minimum xz version) to
6665    50000002 (xz 5.0.0) instead of 0 when there are no valid
6666    input files.
6667
6668    Thanks to kidmin for the bug report.
6669
6670 src/xz/list.c | 8 ++++++--
6671 1 file changed, 6 insertions(+), 2 deletions(-)
6672
6673commit c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
6674Author: Lasse Collin <lasse.collin@tukaani.org>
6675Date:   2017-04-24 20:20:11 +0300
6676
6677    Docs: Add doc/examples/11_file_info.c.
6678
6679 doc/examples/11_file_info.c | 206 ++++++++++++++++++++++++++++++++++++++++++++
6680 doc/examples/Makefile       |   3 +-
6681 2 files changed, 208 insertions(+), 1 deletion(-)
6682
6683commit 1520f6ec808896375ac7bf778c449e0f7dea5f46
6684Author: Lasse Collin <lasse.collin@tukaani.org>
6685Date:   2017-04-24 19:48:47 +0300
6686
6687    Build: Omit pre-5.0.0 entries from the generated ChangeLog.
6688
6689    It makes ChangeLog significantly smaller.
6690
6691 Makefile.am | 3 ++-
6692 1 file changed, 2 insertions(+), 1 deletion(-)
6693
6694commit 8269782283806c90a8509c2ac2a308344f70e171
6695Author: Lasse Collin <lasse.collin@tukaani.org>
6696Date:   2017-04-24 19:48:23 +0300
6697
6698    xz: Use lzma_file_info_decoder() for --list.
6699
6700 src/xz/list.c | 254 ++++++++++------------------------------------------------
6701 1 file changed, 44 insertions(+), 210 deletions(-)
6702
6703commit e353d0b1cc0d3997ae5048faa8e6786414953e06
6704Author: Lasse Collin <lasse.collin@tukaani.org>
6705Date:   2017-04-24 19:35:50 +0300
6706
6707    liblzma: Add lzma_file_info_decoder().
6708
6709 src/liblzma/api/lzma/index.h    |  66 ++++
6710 src/liblzma/common/Makefile.inc |   1 +
6711 src/liblzma/common/file_info.c  | 855 ++++++++++++++++++++++++++++++++++++++++
6712 src/liblzma/liblzma.map         |   7 +-
6713 4 files changed, 928 insertions(+), 1 deletion(-)
6714
6715commit 144ef9e19e9496c995b21505dd1e111c442968d1
6716Author: Lasse Collin <lasse.collin@tukaani.org>
6717Date:   2017-04-24 19:30:22 +0300
6718
6719    Update the Git repository URL to HTTPS in ChangeLog.
6720
6721 ChangeLog | 2 +-
6722 1 file changed, 1 insertion(+), 1 deletion(-)
6723
6724commit 8c9842c265993d7dd4039f732d3546267fb5ecc4
6725Author: Lasse Collin <lasse.collin@tukaani.org>
6726Date:   2017-04-21 15:05:16 +0300
6727
6728    liblzma: Rename LZMA_SEEK to LZMA_SEEK_NEEDED and seek_in to seek_pos.
6729
6730 src/liblzma/api/lzma/base.h | 18 +++++++++---------
6731 src/liblzma/common/common.c |  2 +-
6732 src/xz/message.c            |  2 +-
6733 3 files changed, 11 insertions(+), 11 deletions(-)
6734
6735commit 662b27c417cab248cb365dd7682121bdec4d5ae7
6736Author: Lasse Collin <lasse.collin@tukaani.org>
6737Date:   2017-04-19 22:17:35 +0300
6738
6739    Update the home page URLs to HTTPS.
6740
6741 COPYING                     | 2 +-
6742 README                      | 2 +-
6743 configure.ac                | 2 +-
6744 doc/faq.txt                 | 4 ++--
6745 dos/config.h                | 2 +-
6746 src/common/common_w32res.rc | 2 +-
6747 src/xz/xz.1                 | 6 +++---
6748 src/xzdec/xzdec.1           | 4 ++--
6749 windows/README-Windows.txt  | 2 +-
6750 windows/config.h            | 2 +-
6751 10 files changed, 14 insertions(+), 14 deletions(-)
6752
6753commit c28f0b3d00af87b92dda229831548d8eb0067d1d
6754Author: Lasse Collin <lasse.collin@tukaani.org>
6755Date:   2017-04-05 18:47:22 +0300
6756
6757    xz: Add io_seek_src().
6758
6759 src/xz/file_io.c | 20 +++++++++++++++++---
6760 src/xz/file_io.h | 13 +++++++++++++
6761 2 files changed, 30 insertions(+), 3 deletions(-)
6762
6763commit bba477257d7319c8764890f3669175b866d24944
6764Author: Lasse Collin <lasse.collin@tukaani.org>
6765Date:   2017-03-30 22:01:54 +0300
6766
6767    xz: Use POSIX_FADV_RANDOM for in "xz --list" mode.
6768
6769    xz --list is random access so POSIX_FADV_SEQUENTIAL was clearly
6770    wrong.
6771
6772 src/xz/file_io.c | 10 ++++++++--
6773 1 file changed, 8 insertions(+), 2 deletions(-)
6774
6775commit 310d19816d1652b0c8bb1b82574d46345d924752
6776Author: Lasse Collin <lasse.collin@tukaani.org>
6777Date:   2017-03-30 20:03:05 +0300
6778
6779    liblzma: Make lzma_index_decoder_init() visible to other liblzma funcs.
6780
6781    This is to allow other functions to use it without going
6782    via the public API (lzma_index_decoder()).
6783
6784 src/liblzma/common/Makefile.inc    |  1 +
6785 src/liblzma/common/index_decoder.c | 10 +++++-----
6786 src/liblzma/common/index_decoder.h | 24 ++++++++++++++++++++++++
6787 3 files changed, 30 insertions(+), 5 deletions(-)
6788
6789commit a27920002dbc469f778a134fc665b7c3ea73701b
6790Author: Lasse Collin <lasse.collin@tukaani.org>
6791Date:   2017-03-30 20:00:09 +0300
6792
6793    liblzma: Add generic support for input seeking (LZMA_SEEK).
6794
6795    Also mention LZMA_SEEK in xz/message.c to silence a warning.
6796
6797 src/liblzma/api/lzma/base.h | 31 ++++++++++++++++++++++++++++++-
6798 src/liblzma/common/common.c | 12 +++++++++++-
6799 src/xz/message.c            |  1 +
6800 3 files changed, 42 insertions(+), 2 deletions(-)
6801
6802commit a0b1dda409bc3e6e2957a2651663fc411d2caf2d
6803Author: Lasse Collin <lasse.collin@tukaani.org>
6804Date:   2017-03-30 19:47:45 +0300
6805
6806    liblzma: Fix lzma_memlimit_set(strm, 0).
6807
6808    The 0 got treated specially in a buggy way and as a result
6809    the function did nothing. The API doc said that 0 was supposed
6810    to return LZMA_PROG_ERROR but it didn't.
6811
6812    Now 0 is treated as if 1 had been specified. This is done because
6813    0 is already used to indicate an error from lzma_memlimit_get()
6814    and lzma_memusage().
6815
6816    In addition, lzma_memlimit_set() no longer checks that the new
6817    limit is at least LZMA_MEMUSAGE_BASE. It's counter-productive
6818    for the Index decoder and was actually needed only by the
6819    auto decoder. Auto decoder has now been modified to check for
6820    LZMA_MEMUSAGE_BASE.
6821
6822 src/liblzma/api/lzma/base.h       | 7 ++++++-
6823 src/liblzma/common/auto_decoder.c | 3 +++
6824 src/liblzma/common/common.c       | 6 ++++--
6825 3 files changed, 13 insertions(+), 3 deletions(-)
6826
6827commit 84462afaada61379f5878e46f8f00e25a1cdcf29
6828Author: Lasse Collin <lasse.collin@tukaani.org>
6829Date:   2017-03-30 19:16:55 +0300
6830
6831    liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.
6832
6833 src/liblzma/api/lzma/container.h    | 21 +++++++++++++++++----
6834 src/liblzma/common/alone_decoder.c  |  5 +----
6835 src/liblzma/common/auto_decoder.c   |  5 +----
6836 src/liblzma/common/stream_decoder.c |  5 +----
6837 4 files changed, 20 insertions(+), 16 deletions(-)
6838
6839commit cbc74017939690d13441b8926bb743fb03211b83
6840Author: Lasse Collin <lasse.collin@tukaani.org>
6841Date:   2017-03-30 18:58:18 +0300
6842
6843    liblzma: Fix handling of memlimit == 0 in lzma_index_decoder().
6844
6845    It returned LZMA_PROG_ERROR, which was done to avoid zero as
6846    the limit (because it's a special value elsewhere), but using
6847    LZMA_PROG_ERROR is simply inconvenient and can cause bugs.
6848
6849    The fix/workaround is to treat 0 as if it were 1 byte. It's
6850    effectively the same thing. The only weird consequence is
6851    that then lzma_memlimit_get() will return 1 even when 0 was
6852    specified as the limit.
6853
6854    This fixes a very rare corner case in xz --list where a specific
6855    memory usage limit and a multi-stream file could print the
6856    error message "Internal error (bug)" instead of saying that
6857    the memory usage limit is too low.
6858
6859 src/liblzma/api/lzma/index.h       | 18 +++++++++++-------
6860 src/liblzma/common/index_decoder.c |  4 ++--
6861 2 files changed, 13 insertions(+), 9 deletions(-)
6862
6863commit 78ae13bced912b1b92ae927992c99cbcc463cae7
6864Author: Lasse Collin <lasse.collin@tukaani.org>
6865Date:   2016-12-30 13:25:10 +0200
6866
6867    Update NEWS for 5.2.3.
6868
6869 NEWS | 39 +++++++++++++++++++++++++++++++++++++++
6870 1 file changed, 39 insertions(+)
6871
6872commit 0297863fdb453aed1a25eb025f3ba7bacbbb1357
6873Author: Lasse Collin <lasse.collin@tukaani.org>
6874Date:   2016-12-26 20:55:52 +0200
6875
6876    Document --enable-sandbox configure option in INSTALL.
6877
6878 INSTALL | 23 +++++++++++++++++++++++
6879 1 file changed, 23 insertions(+)
6880
6881commit d4a0462abe5478193521c14625e1c81fead87f9f
6882Author: Lasse Collin <lasse.collin@tukaani.org>
6883Date:   2016-11-21 20:24:50 +0200
6884
6885    liblzma: Avoid multiple definitions of lzma_coder structures.
6886
6887    Only one definition was visible in a translation unit.
6888    It avoided a few casts and temp variables but seems that
6889    this hack doesn't work with link-time optimizations in compilers
6890    as it's not C99/C11 compliant.
6891
6892    Fixes:
6893    http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
6894
6895 src/liblzma/common/alone_decoder.c             |  44 +++++----
6896 src/liblzma/common/alone_encoder.c             |  34 ++++---
6897 src/liblzma/common/auto_decoder.c              |  35 ++++---
6898 src/liblzma/common/block_decoder.c             |  41 ++++----
6899 src/liblzma/common/block_encoder.c             |  40 ++++----
6900 src/liblzma/common/common.h                    |  18 ++--
6901 src/liblzma/common/index_decoder.c             |  33 ++++---
6902 src/liblzma/common/index_encoder.c             |  16 ++--
6903 src/liblzma/common/stream_decoder.c            |  50 +++++-----
6904 src/liblzma/common/stream_encoder.c            |  56 ++++++-----
6905 src/liblzma/common/stream_encoder_mt.c         | 124 ++++++++++++++-----------
6906 src/liblzma/delta/delta_common.c               |  25 ++---
6907 src/liblzma/delta/delta_decoder.c              |   6 +-
6908 src/liblzma/delta/delta_encoder.c              |  12 ++-
6909 src/liblzma/delta/delta_private.h              |   4 +-
6910 src/liblzma/lz/lz_decoder.c                    |  60 ++++++------
6911 src/liblzma/lz/lz_decoder.h                    |  13 ++-
6912 src/liblzma/lz/lz_encoder.c                    |  57 +++++++-----
6913 src/liblzma/lz/lz_encoder.h                    |   9 +-
6914 src/liblzma/lzma/lzma2_decoder.c               |  32 ++++---
6915 src/liblzma/lzma/lzma2_encoder.c               |  51 +++++-----
6916 src/liblzma/lzma/lzma_decoder.c                |  27 +++---
6917 src/liblzma/lzma/lzma_encoder.c                |  29 +++---
6918 src/liblzma/lzma/lzma_encoder.h                |   9 +-
6919 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 +-
6920 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  23 ++---
6921 src/liblzma/lzma/lzma_encoder_private.h        |   6 +-
6922 src/liblzma/simple/arm.c                       |   2 +-
6923 src/liblzma/simple/armthumb.c                  |   2 +-
6924 src/liblzma/simple/ia64.c                      |   2 +-
6925 src/liblzma/simple/powerpc.c                   |   2 +-
6926 src/liblzma/simple/simple_coder.c              |  61 ++++++------
6927 src/liblzma/simple/simple_private.h            |  12 +--
6928 src/liblzma/simple/sparc.c                     |   2 +-
6929 src/liblzma/simple/x86.c                       |  15 +--
6930 35 files changed, 532 insertions(+), 423 deletions(-)
6931
6932commit a01794c52add98263b49119842c3e7141d1b9ced
6933Author: Lasse Collin <lasse.collin@tukaani.org>
6934Date:   2016-10-24 18:53:25 +0300
6935
6936    Update THANKS.
6937
6938 THANKS | 1 +
6939 1 file changed, 1 insertion(+)
6940
6941commit df8f446e3ad47e5148b8c8d8b6e519d3ce29cb9d
6942Author: Lasse Collin <lasse.collin@tukaani.org>
6943Date:   2016-10-24 18:51:36 +0300
6944
6945    tuklib_cpucores: Add support for sched_getaffinity().
6946
6947    It's available in glibc (GNU/Linux, GNU/kFreeBSD). It's better
6948    than sysconf(_SC_NPROCESSORS_ONLN) because sched_getaffinity()
6949    gives the number of cores available to the process instead of
6950    the total number of cores online.
6951
6952    As a side effect, this commit fixes a bug on GNU/kFreeBSD where
6953    configure would detect the FreeBSD-specific cpuset_getaffinity()
6954    but it wouldn't actually work because on GNU/kFreeBSD it requires
6955    using -lfreebsd-glue when linking. Now the glibc-specific function
6956    will be used instead.
6957
6958    Thanks to Sebastian Andrzej Siewior for the original patch
6959    and testing.
6960
6961 m4/tuklib_cpucores.m4        | 30 +++++++++++++++++++++++++++++-
6962 src/common/tuklib_cpucores.c |  9 +++++++++
6963 2 files changed, 38 insertions(+), 1 deletion(-)
6964
6965commit 446e4318fa79788e09299d5953b5dd428953d14b
6966Author: Lasse Collin <lasse.collin@tukaani.org>
6967Date:   2016-06-30 20:27:36 +0300
6968
6969    xz: Fix copying of timestamps on Windows.
6970
6971    xz used to call utime() on Windows, but its result gets lost
6972    on close(). Using _futime() seems to work.
6973
6974    Thanks to Martok for reporting the bug:
6975    http://www.mail-archive.com/xz-devel@tukaani.org/msg00261.html
6976
6977 configure.ac     |  2 +-
6978 src/xz/file_io.c | 18 ++++++++++++++++++
6979 2 files changed, 19 insertions(+), 1 deletion(-)
6980
6981commit 1b0ac0c53c761263e91e34195cb21dfdcfeac0bd
6982Author: Lasse Collin <lasse.collin@tukaani.org>
6983Date:   2016-06-16 22:46:02 +0300
6984
6985    xz: Silence warnings from -Wlogical-op.
6986
6987    Thanks to Evan Nemerson.
6988
6989 src/xz/file_io.c | 12 ++++++++++--
6990 1 file changed, 10 insertions(+), 2 deletions(-)
6991
6992commit c83b7a03342c3325ff10400b22ee21edfcd1e026
6993Author: Lasse Collin <lasse.collin@tukaani.org>
6994Date:   2016-04-10 20:55:49 +0300
6995
6996    Build: Fix = to += for xz_SOURCES in src/xz/Makefile.am.
6997
6998    Thanks to Christian Kujau.
6999
7000 src/xz/Makefile.am | 2 +-
7001 1 file changed, 1 insertion(+), 1 deletion(-)
7002
7003commit ade31a2bfb95c94d05fbfc0ecbba5d6377f2506e
7004Author: Lasse Collin <lasse.collin@tukaani.org>
7005Date:   2016-04-10 20:54:17 +0300
7006
7007    Build: Bump GNU Gettext version requirement to 0.19.
7008
7009    It silences a few warnings and most people probably have
7010    0.19 even on stable distributions.
7011
7012    Thanks to Christian Kujau.
7013
7014 configure.ac | 2 +-
7015 1 file changed, 1 insertion(+), 1 deletion(-)
7016
7017commit ac398c3bafa6e4c80e20571373a96947db863b3d
7018Author: Lasse Collin <lasse.collin@tukaani.org>
7019Date:   2016-03-13 20:21:49 +0200
7020
7021    liblzma: Disable external SHA-256 by default.
7022
7023    This is the sane thing to do. The conflict with OpenSSL
7024    on some OSes and especially that the OS-provided versions
7025    can be significantly slower makes it clear that it was
7026    a mistake to have the external SHA-256 support enabled by
7027    default.
7028
7029    Those who want it can now pass --enable-external-sha256 to
7030    configure. INSTALL was updated with notes about OSes where
7031    this can be a bad idea.
7032
7033    The SHA-256 detection code in configure.ac had some bugs that
7034    could lead to a build failure in some situations. These were
7035    fixed, although it doesn't matter that much now that the
7036    external SHA-256 is disabled by default.
7037
7038    MINIX >= 3.2.0 uses NetBSD's libc and thus has SHA256_Init
7039    in libc instead of libutil. Support for the libutil version
7040    was removed.
7041
7042 INSTALL                   | 36 ++++++++++++++++++++++
7043 configure.ac              | 76 +++++++++++++++++++++++------------------------
7044 src/liblzma/check/check.h | 16 ++++------
7045 3 files changed, 79 insertions(+), 49 deletions(-)
7046
7047commit 6fd5ecb589a9fdd7a576ea48c4850d496bab9ce5
7048Author: Lasse Collin <lasse.collin@tukaani.org>
7049Date:   2016-03-10 20:27:05 +0200
7050
7051    Update THANKS.
7052
7053 THANKS | 1 +
7054 1 file changed, 1 insertion(+)
7055
7056commit 473ef0dc69a30e64d5fa0d34aca02f7309faa3e9
7057Author: Lasse Collin <lasse.collin@tukaani.org>
7058Date:   2016-03-10 20:26:49 +0200
7059
7060    Build: Avoid SHA256_Init on FreeBSD and MINIX 3.
7061
7062    On FreeBSD 10 and older, SHA256_Init from libmd conflicts
7063    with libcrypto from OpenSSL. The OpenSSL version has
7064    different sizeof(SHA256_CTX) and it can cause weird
7065    problems if wrong SHA256_Init gets used.
7066
7067    Looking at the source, MINIX 3 seems to have a similar issue but
7068    I'm not sure. To be safe, I disabled SHA256_Init on MINIX 3 too.
7069
7070    NetBSD has SHA256_Init in libc and they had a similar problem,
7071    but they already fixed it in 2009.
7072
7073    Thanks to Jim Wilcoxson for the bug report that helped
7074    in finding the problem.
7075
7076 configure.ac | 27 +++++++++++++++++++++------
7077 1 file changed, 21 insertions(+), 6 deletions(-)
7078
7079commit faf302137e54d605b44ecf0373cb51a6403a2de1
7080Author: Lasse Collin <lasse.collin@tukaani.org>
7081Date:   2015-11-08 20:16:10 +0200
7082
7083    tuklib_physmem: Hopefully silence a warning on Windows.
7084
7085 src/common/tuklib_physmem.c | 3 ++-
7086 1 file changed, 2 insertions(+), 1 deletion(-)
7087
7088commit e52e9151cf8613022d1de4712ff39dbcb666e991
7089Author: Lasse Collin <lasse.collin@tukaani.org>
7090Date:   2015-11-04 23:17:43 +0200
7091
7092    Update THANKS.
7093
7094 THANKS | 1 +
7095 1 file changed, 1 insertion(+)
7096
7097commit 14115f84a38161d55eaa2d070f08739bde37e966
7098Author: Lasse Collin <lasse.collin@tukaani.org>
7099Date:   2015-11-04 23:14:00 +0200
7100
7101    liblzma: Make Valgrind happier with optimized (gcc -O2) liblzma.
7102
7103    When optimizing, GCC can reorder code so that an uninitialized
7104    value gets used in a comparison, which makes Valgrind unhappy.
7105    It doesn't happen when compiled with -O0, which I tend to use
7106    when running Valgrind.
7107
7108    Thanks to Rich Prohaska. I remember this being mentioned long
7109    ago by someone else but nothing was done back then.
7110
7111 src/liblzma/lz/lz_encoder.c | 4 ++++
7112 1 file changed, 4 insertions(+)
7113
7114commit f4c95ba94beb71a608eb6eadbf82b44f53a0260e
7115Author: Lasse Collin <lasse.collin@tukaani.org>
7116Date:   2015-11-03 20:55:45 +0200
7117
7118    liblzma: Rename lzma_presets.c back to lzma_encoder_presets.c.
7119
7120    It would be too annoying to update other build systems
7121    just because of this.
7122
7123 src/liblzma/lzma/Makefile.inc                               | 2 +-
7124 src/liblzma/lzma/{lzma_presets.c => lzma_encoder_presets.c} | 2 +-
7125 2 files changed, 2 insertions(+), 2 deletions(-)
7126
7127commit c7bc20a6f3e71920871d48db31a79ab58b5a0a4b
7128Author: Lasse Collin <lasse.collin@tukaani.org>
7129Date:   2015-11-03 20:47:07 +0200
7130
7131    Build: Disable xzdec, lzmadec, and lzmainfo when they cannot be built.
7132
7133    They all need decoder support and if that isn't available,
7134    there's no point trying to build them.
7135
7136 configure.ac | 3 +++
7137 1 file changed, 3 insertions(+)
7138
7139commit 5cbca1205deeb6fb7afe7a864fa68a57466d928a
7140Author: Lasse Collin <lasse.collin@tukaani.org>
7141Date:   2015-11-03 20:35:19 +0200
7142
7143    Build: Simplify $enable_{encoders,decoders} usage a bit.
7144
7145 configure.ac | 6 ++++--
7146 1 file changed, 4 insertions(+), 2 deletions(-)
7147
7148commit af13781886c8e7a0aabebb5141ea282dc364f5c6
7149Author: Lasse Collin <lasse.collin@tukaani.org>
7150Date:   2015-11-03 20:31:31 +0200
7151
7152    Windows/MSVC: Update config.h.
7153
7154 windows/config.h | 6 ++++++
7155 1 file changed, 6 insertions(+)
7156
7157commit 9fa5949330f162c5a2f6653f83025327837e8f39
7158Author: Lasse Collin <lasse.collin@tukaani.org>
7159Date:   2015-11-03 20:29:58 +0200
7160
7161    DOS: Update config.h.
7162
7163 dos/config.h | 6 ++++++
7164 1 file changed, 6 insertions(+)
7165
7166commit cb3111e3ed84152912b5138d690c8d9f00c6ef02
7167Author: Lasse Collin <lasse.collin@tukaani.org>
7168Date:   2015-11-03 20:29:33 +0200
7169
7170    xz: Make xz buildable even when encoders or decoders are disabled.
7171
7172    The patch is quite long but it's mostly about adding new #ifdefs
7173    to omit code when encoders or decoders have been disabled.
7174
7175    This adds two new #defines to config.h: HAVE_ENCODERS and
7176    HAVE_DECODERS.
7177
7178 configure.ac       |  4 ++++
7179 src/xz/Makefile.am |  8 ++++++--
7180 src/xz/args.c      | 16 ++++++++++++++++
7181 src/xz/coder.c     | 33 +++++++++++++++++++++++++--------
7182 src/xz/main.c      |  9 +++++++--
7183 src/xz/private.h   |  5 ++++-
7184 6 files changed, 62 insertions(+), 13 deletions(-)
7185
7186commit 4cc584985c0b7a13901da1b7a64ef9f7cc36e8ab
7187Author: Lasse Collin <lasse.collin@tukaani.org>
7188Date:   2015-11-03 18:06:40 +0200
7189
7190    Build: Build LZMA1/2 presets also when only decoder is wanted.
7191
7192    People shouldn't rely on the presets when decoding raw streams,
7193    but xz uses the presets as the starting point for raw decoder
7194    options anyway.
7195
7196    lzma_encocder_presets.c was renamed to lzma_presets.c to
7197    make it clear it's not used solely by the encoder code.
7198
7199 src/liblzma/lzma/Makefile.inc                               | 6 +++++-
7200 src/liblzma/lzma/{lzma_encoder_presets.c => lzma_presets.c} | 3 ++-
7201 2 files changed, 7 insertions(+), 2 deletions(-)
7202
7203commit 23ed1d41489f632155bbc9660f323d57e09da180
7204Author: Lasse Collin <lasse.collin@tukaani.org>
7205Date:   2015-11-03 17:54:48 +0200
7206
7207    Build: Fix configure to handle LZMA1 dependency with LZMA2.
7208
7209    Now it gives an error if LZMA1 encoder/decoder is missing
7210    when LZMA2 encoder/decoder was requested. Even better would
7211    be LZMA2 implicitly enabling LZMA1 but it would need more code.
7212
7213 configure.ac | 5 -----
7214 1 file changed, 5 deletions(-)
7215
7216commit b0bc3e03852af13419ea2960881824258d451117
7217Author: Lasse Collin <lasse.collin@tukaani.org>
7218Date:   2015-11-03 17:41:54 +0200
7219
7220    Build: Don't omit lzma_cputhreads() unless using --disable-threads.
7221
7222    Previously it was omitted if encoders were disabled
7223    with --disable-encoders. It didn't make sense and
7224    it also broke the build.
7225
7226 src/liblzma/common/Makefile.inc | 5 ++++-
7227 1 file changed, 4 insertions(+), 1 deletion(-)
7228
7229commit c6bf438ab39e0fb4a47d3c81725c227919502726
7230Author: Lasse Collin <lasse.collin@tukaani.org>
7231Date:   2015-11-02 18:16:51 +0200
7232
7233    liblzma: Fix a build failure related to external SHA-256 support.
7234
7235    If an appropriate header and structure were found by configure,
7236    but a library with a usable SHA-256 functions wasn't, the build
7237    failed.
7238
7239 src/liblzma/check/check.h | 32 +++++++++++++++++++++++---------
7240 1 file changed, 23 insertions(+), 9 deletions(-)
7241
7242commit e18adc56f2262aa9394d46681e9e4b9981ed5e97
7243Author: Lasse Collin <lasse.collin@tukaani.org>
7244Date:   2015-11-02 15:19:10 +0200
7245
7246    xz: Always close the file before trying to delete it.
7247
7248    unlink() can return EBUSY in errno for open files on some
7249    operating systems and file systems.
7250
7251 src/xz/file_io.c | 25 ++++++++++++-------------
7252 1 file changed, 12 insertions(+), 13 deletions(-)
7253
7254commit 282e768a1484e88c8b7ec35655ee4959954ec87a
7255Author: Lasse Collin <lasse.collin@tukaani.org>
7256Date:   2015-10-12 21:08:42 +0300
7257
7258    Update THANKS.
7259
7260 THANKS | 1 +
7261 1 file changed, 1 insertion(+)
7262
7263commit 372e402713a1d4337ffce5f56d5c5c9ed99a66d0
7264Author: Lasse Collin <lasse.collin@tukaani.org>
7265Date:   2015-10-12 21:07:41 +0300
7266
7267    Tests: Add tests for the two bugs fixed in index.c.
7268
7269 tests/test_index.c | 30 ++++++++++++++++++++++++++++++
7270 1 file changed, 30 insertions(+)
7271
7272commit 21515d79d778b8730a434f151b07202d52a04611
7273Author: Lasse Collin <lasse.collin@tukaani.org>
7274Date:   2015-10-12 20:45:15 +0300
7275
7276    liblzma: Fix lzma_index_dup() for empty Streams.
7277
7278    Stream Flags and Stream Padding weren't copied from
7279    empty Streams.
7280
7281 src/liblzma/common/index.c | 11 ++++++-----
7282 1 file changed, 6 insertions(+), 5 deletions(-)
7283
7284commit 09f395b6b360c0b13e8559eece1d179b908ebd3a
7285Author: Lasse Collin <lasse.collin@tukaani.org>
7286Date:   2015-10-12 20:31:44 +0300
7287
7288    liblzma: Add a note to index.c for those using static analyzers.
7289
7290 src/liblzma/common/index.c | 3 +++
7291 1 file changed, 3 insertions(+)
7292
7293commit 3bf857edfef51374f6f3fffae3d817f57d3264a0
7294Author: Lasse Collin <lasse.collin@tukaani.org>
7295Date:   2015-10-12 20:29:09 +0300
7296
7297    liblzma: Fix a memory leak in error path of lzma_index_dup().
7298
7299    lzma_index_dup() calls index_dup_stream() which, in case of
7300    an error, calls index_stream_end() to free memory allocated
7301    by index_stream_init(). However, it illogically didn't
7302    actually free the memory. To make it logical, the tree
7303    handling code was modified a bit in addition to changing
7304    index_stream_end().
7305
7306    Thanks to Evan Nemerson for the bug report.
7307
7308 src/liblzma/common/index.c | 18 +++++++++---------
7309 1 file changed, 9 insertions(+), 9 deletions(-)
7310
7311commit 7f05803979b4b79642d5be4218a79da7a0b12c47
7312Author: Lasse Collin <lasse.collin@tukaani.org>
7313Date:   2015-09-29 13:57:28 +0300
7314
7315    Update NEWS for 5.2.2.
7316
7317 NEWS | 18 ++++++++++++++++++
7318 1 file changed, 18 insertions(+)
7319
7320commit 397fcc0946315b55c3c6d80e37e82a2a78bc15c1
7321Author: Hauke Henningsen <sqrt@entless.org>
7322Date:   2015-08-17 04:59:54 +0200
7323
7324    Update German translation, mostly wrt orthography
7325
7326    Provide an update of the German translation.
7327    * A lot of compound words were previously written with spaces, while
7328      German orthography is relatively clear in that the components
7329      should not be separated.
7330    * When referring to the actual process of (de)compression rather than the
7331      concept, replace “(De-)Kompression” with “(De-)Komprimierung”.
7332      Previously, both forms were used in this context and are now used in a
7333      manner consistent with “Komprimierung” being more likely to refer to
7334      a process.
7335    * Consistently translate “standard input”/“output”
7336    * Use “Zeichen” instead of false friend “Charakter” for “character”
7337    * Insert commas around relative clauses (as required in German)
7338    * Some other minor corrections
7339    * Capitalize “ß” as “ẞ”
7340    * Consistently start option descriptions in --help with capital letters
7341
7342    Acked-By: Andre Noll <maan@tuebingen.mpg.de>
7343
7344    * Update after msgmerge
7345
7346 po/de.po | 383 ++++++++++++++++++++++++++++++++-------------------------------
7347 1 file changed, 196 insertions(+), 187 deletions(-)
7348
7349commit cbc9e39bae715accb44168930a71888480aad569
7350Author: Lasse Collin <lasse.collin@tukaani.org>
7351Date:   2015-08-11 13:23:04 +0300
7352
7353    Build: Minor Cygwin cleanup.
7354
7355    Some tests used "cygwin*" and some used "cygwin". I changed
7356    them all to use "cygwin". Shouldn't affect anything in practice.
7357
7358 configure.ac | 6 +++---
7359 1 file changed, 3 insertions(+), 3 deletions(-)
7360
7361commit bcacd8ce7a031566858e5e03c1009064c3f1c89e
7362Author: Lasse Collin <lasse.collin@tukaani.org>
7363Date:   2015-08-11 13:21:52 +0300
7364
7365    Build: Support building of MSYS2 binaries.
7366
7367 configure.ac | 16 +++++++++++-----
7368 1 file changed, 11 insertions(+), 5 deletions(-)
7369
7370commit 0275a5398c01d57b724dec7fea52dec3bd6edc6c
7371Author: Lasse Collin <lasse.collin@tukaani.org>
7372Date:   2015-08-09 21:06:26 +0300
7373
7374    Windows: Define DLL_EXPORT when building liblzma.dll with MSVC.
7375
7376    src/liblzma/common/common.h uses it to set __declspec(dllexport)
7377    for the API symbols.
7378
7379    Thanks to Adam Walling.
7380
7381 windows/liblzma_dll.vcxproj | 12 ++++++------
7382 1 file changed, 6 insertions(+), 6 deletions(-)
7383
7384commit a74525cf9b945fb0b370e64cf406104beb31729b
7385Author: Lasse Collin <lasse.collin@tukaani.org>
7386Date:   2015-08-09 21:02:20 +0300
7387
7388    Windows: Omit unneeded header files from MSVC project files.
7389
7390 windows/liblzma.vcxproj     | 5 -----
7391 windows/liblzma_dll.vcxproj | 5 -----
7392 2 files changed, 10 deletions(-)
7393
7394commit fbbb295a91caf39faf8838c8c39526e4cb4dc121
7395Author: Lasse Collin <lasse.collin@tukaani.org>
7396Date:   2015-07-12 20:48:19 +0300
7397
7398    liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.
7399
7400 src/liblzma/api/lzma.h | 18 +++++++++++++-----
7401 1 file changed, 13 insertions(+), 5 deletions(-)
7402
7403commit 713dbe5c230fe00865a54f5c32358ea30f9a1156
7404Author: Lasse Collin <lasse.collin@tukaani.org>
7405Date:   2015-06-19 20:38:55 +0300
7406
7407    Update THANKS.
7408
7409 THANKS | 2 ++
7410 1 file changed, 2 insertions(+)
7411
7412commit 3a5d755d055d51f99c523b4c2952727e1e69cfa1
7413Author: Lasse Collin <lasse.collin@tukaani.org>
7414Date:   2015-06-19 20:21:30 +0300
7415
7416    Windows: Update the docs.
7417
7418 INSTALL                                            | 29 ++++++++-----
7419 windows/INSTALL-MSVC.txt                           | 47 ++++++++++++++++++++++
7420 windows/{INSTALL-Windows.txt => INSTALL-MinGW.txt} |  2 +-
7421 3 files changed, 67 insertions(+), 11 deletions(-)
7422
7423commit b0798c6aa6184efcefd0bdcca20f96121a13feda
7424Author: Lasse Collin <lasse.collin@tukaani.org>
7425Date:   2015-06-19 17:25:31 +0300
7426
7427    Windows: Add MSVC project files for building liblzma.
7428
7429    Thanks to Adam Walling for creating these files.
7430
7431 windows/liblzma.vcxproj     | 359 ++++++++++++++++++++++++++++++++++++++++
7432 windows/liblzma_dll.vcxproj | 388 ++++++++++++++++++++++++++++++++++++++++++++
7433 windows/xz_win.sln          |  48 ++++++
7434 3 files changed, 795 insertions(+)
7435
7436commit 9b02a4ffdac1b9f066658ec4c95c0834f4cd2fb7
7437Author: Andre Noll <maan@tuebingen.mpg.de>
7438Date:   2015-05-28 15:50:00 +0200
7439
7440    Fix typo in German translation.
7441
7442    As pointed out by Robert Pollak, there's a typo in the German
7443    translation of the compression preset option (-0 ... -9) help text.
7444    "The compressor" translates to "der Komprimierer", and the genitive
7445    form is "des Komprimierers". The old word makes no sense at all.
7446
7447 po/de.po | 2 +-
7448 1 file changed, 1 insertion(+), 1 deletion(-)
7449
7450commit c7f4041f6b8f4729f88d3bc888b2a4080ae51f72
7451Author: Lasse Collin <lasse.collin@tukaani.org>
7452Date:   2015-05-13 20:57:55 +0300
7453
7454    Tests: Fix a memory leak in test_bcj_exact_size.
7455
7456    Thanks to Cristian Rodríguez.
7457
7458 tests/test_bcj_exact_size.c | 1 +
7459 1 file changed, 1 insertion(+)
7460
7461commit 17b29d4f0ae0f780fbd69e15a398dc478d8492f8
7462Author: Lasse Collin <lasse.collin@tukaani.org>
7463Date:   2015-05-12 18:08:24 +0300
7464
7465    Fix NEWS about threading in 5.2.0.
7466
7467    Thanks to Andy Hochhaus.
7468
7469 NEWS | 3 ++-
7470 1 file changed, 2 insertions(+), 1 deletion(-)
7471
7472commit 49c26920d6e2d85e5c6123e34958aed2e77485ad
7473Author: Lasse Collin <lasse.collin@tukaani.org>
7474Date:   2015-05-11 21:26:16 +0300
7475
7476    xz: Document that threaded decompression hasn't been implemented yet.
7477
7478 src/xz/xz.1 | 10 +++++++++-
7479 1 file changed, 9 insertions(+), 1 deletion(-)
7480
7481commit 5b2458cb244ed237efe4de1ebcf06e1b3a1f4256
7482Author: Lasse Collin <lasse.collin@tukaani.org>
7483Date:   2015-04-20 20:20:29 +0300
7484
7485    Update THANKS.
7486
7487 THANKS | 1 +
7488 1 file changed, 1 insertion(+)
7489
7490commit 6bd0349c58451b13442e8f463e35de83548bf985
7491Author: Lasse Collin <lasse.collin@tukaani.org>
7492Date:   2015-04-20 19:59:18 +0300
7493
7494    Revert "xz: Use pipe2() if available."
7495
7496    This reverts commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd.
7497    It is a problem when libc has pipe2() but the kernel is too
7498    old to have pipe2() and thus pipe2() fails. In xz it's pointless
7499    to have a fallback for non-functioning pipe2(); it's better to
7500    avoid pipe2() completely.
7501
7502    Thanks to Michael Fox for the bug report.
7503
7504 configure.ac     | 4 ++--
7505 src/xz/file_io.c | 9 +--------
7506 2 files changed, 3 insertions(+), 10 deletions(-)
7507
7508commit fc0df0f8db87dff45543708a711e17d29c37f632
7509Author: Lasse Collin <lasse.collin@tukaani.org>
7510Date:   2015-04-01 14:45:25 +0300
7511
7512    xz: Fix the Capsicum rights on user_abort_pipe.
7513
7514 src/xz/file_io.c | 6 +++++-
7515 1 file changed, 5 insertions(+), 1 deletion(-)
7516
7517commit 57393615b31b3788dd77280452d845bcc12d33af
7518Author: Lasse Collin <lasse.collin@tukaani.org>
7519Date:   2015-03-31 22:20:11 +0300
7520
7521    Update THANKS.
7522
7523 THANKS | 1 +
7524 1 file changed, 1 insertion(+)
7525
7526commit 1238381143a9a7ce84839c2582ccd56ff750a440
7527Author: Lasse Collin <lasse.collin@tukaani.org>
7528Date:   2015-03-31 22:19:34 +0300
7529
7530    xz: Add support for sandboxing with Capsicum.
7531
7532    The sandboxing is used conditionally as described in main.c.
7533    This isn't optimal but it was much easier to implement than
7534    a full sandboxing solution and it still covers the most common
7535    use cases where xz is writing to standard output. This should
7536    have practically no effect on performance even with small files
7537    as fork() isn't needed.
7538
7539    C and locale libraries can open files as needed. This has been
7540    fine in the past, but it's a problem with things like Capsicum.
7541    io_sandbox_enter() tries to ensure that various locale-related
7542    files have been loaded before cap_enter() is called, but it's
7543    possible that there are other similar problems which haven't
7544    been seen yet.
7545
7546    Currently Capsicum is available on FreeBSD 10 and later
7547    and there is a port to Linux too.
7548
7549    Thanks to Loganaden Velvindron for help.
7550
7551 configure.ac       | 41 +++++++++++++++++++++++++++
7552 src/xz/Makefile.am |  2 +-
7553 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
7554 src/xz/file_io.h   |  6 ++++
7555 src/xz/main.c      | 18 ++++++++++++
7556 src/xz/private.h   |  4 +++
7557 6 files changed, 151 insertions(+), 1 deletion(-)
7558
7559commit 29a087fb5a0c879f0b1bc4c6b989f7b87bacdf9e
7560Author: Lasse Collin <lasse.collin@tukaani.org>
7561Date:   2015-03-31 21:12:30 +0300
7562
7563    Fix bugs and otherwise improve ax_check_capsicum.m4.
7564
7565    AU_ALIAS was removed because the new version is incompatible
7566    with the old version.
7567
7568    It no longer checks for <sys/capability.h> separately.
7569    It's enough to test for it as part of AC_CHECK_DECL.
7570    The defines HAVE_CAPSICUM_SYS_CAPSICUM_H and
7571    HAVE_CAPSICUM_SYS_CAPABILITY_H were removed as unneeded.
7572    HAVE_SYS_CAPSICUM_H from AC_CHECK_HEADERS is enough.
7573
7574    It no longer does a useless search for the Capsicum library
7575    if the header wasn't found.
7576
7577    Fixed a bug in ACTION-IF-FOUND (the first argument). Specifying
7578    the argument omitted the default action but the given action
7579    wasn't used instead.
7580
7581    AC_DEFINE([HAVE_CAPSICUM]) is now always called when Capsicum
7582    support is found. Previously it was part of the default
7583    ACTION-IF-FOUND which a custom action would override. Now
7584    the default action only prepends ${CAPSICUM_LIB} to LIBS.
7585
7586    The documentation was updated.
7587
7588    Since there as no serial number, "#serial 2" was added.
7589
7590 m4/ax_check_capsicum.m4 | 103 ++++++++++++++++++++++++------------------------
7591 1 file changed, 51 insertions(+), 52 deletions(-)
7592
7593commit 6e845c6a3eddf2fde9db5a29950421dff60a43ac
7594Author: Lasse Collin <lasse.collin@tukaani.org>
7595Date:   2015-03-31 19:20:24 +0300
7596
7597    Add m4/ax_check_capsicum.m4 for detecting Capsicum support.
7598
7599    The file was loaded from this web page:
7600    https://github.com/google/capsicum-test/blob/dev/autoconf/m4/ax_check_capsicum.m4
7601
7602    Thanks to Loganaden Velvindron for pointing it out for me.
7603
7604 m4/ax_check_capsicum.m4 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++
7605 1 file changed, 86 insertions(+)
7606
7607commit 3717885f9ef2c06f1bcbad9f4c2ed2d5695f844e
7608Author: Lasse Collin <lasse.collin@tukaani.org>
7609Date:   2015-03-30 22:44:02 +0300
7610
7611    Bump version to 5.3.0alpha and soname to 5.3.99.
7612
7613    The idea of 99 is that it looks a bit weird in this context.
7614    For new features there's no API/ABI stability in devel versions.
7615
7616 src/liblzma/Makefile.am        | 2 +-
7617 src/liblzma/api/lzma/version.h | 6 +++---
7618 2 files changed, 4 insertions(+), 4 deletions(-)
7619
7620commit eccd8155e107c5ada03d13e7730675cdf1a44ddc
7621Author: Lasse Collin <lasse.collin@tukaani.org>
7622Date:   2015-03-29 22:14:47 +0300
7623
7624    Update THANKS.
7625
7626 THANKS | 1 +
7627 1 file changed, 1 insertion(+)
7628
7629commit 25263fd9e7a8a913395cb93d7c104cd48c2b4a00
7630Author: Lasse Collin <lasse.collin@tukaani.org>
7631Date:   2015-03-29 22:13:48 +0300
7632
7633    Fix the detection of installed RAM on QNX.
7634
7635    The earlier version compiled but didn't actually work
7636    since sysconf(_SC_PHYS_PAGES) always fails (or so I was told).
7637
7638    Thanks to Ole André Vadla Ravnås for the patch and testing.
7639
7640 m4/tuklib_physmem.m4        |  6 +++---
7641 src/common/tuklib_physmem.c | 14 +++++++++++++-
7642 2 files changed, 16 insertions(+), 4 deletions(-)
7643
7644commit 4c544d2410903d38402221cb783ed85585b6a007
7645Author: Lasse Collin <lasse.collin@tukaani.org>
7646Date:   2015-03-27 22:39:07 +0200
7647
7648    Fix CPU core count detection on QNX.
7649
7650    It tried to use sysctl() on QNX but
7651      - it broke the build because sysctl() needs -lsocket on QNX;
7652      - sysctl() doesn't work for detecting the core count on QNX
7653        even if it compiled.
7654
7655    sysconf() works. An alternative would have been to use
7656    QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>.
7657
7658    Thanks to Ole André Vadla Ravnås.
7659
7660 m4/tuklib_cpucores.m4 | 15 +++++++++++----
7661 1 file changed, 11 insertions(+), 4 deletions(-)
7662
7663commit e0ea6737b03e83ccaff4514d00e31bb926f8f0f3
7664Author: Lasse Collin <lasse.collin@tukaani.org>
7665Date:   2015-03-07 22:05:57 +0200
7666
7667    xz: size_t/uint32_t cleanup in options.c.
7668
7669 src/xz/options.c | 12 ++++++------
7670 1 file changed, 6 insertions(+), 6 deletions(-)
7671
7672commit 8bcca29a65335fd679c13814b70b35b68fa5daed
7673Author: Lasse Collin <lasse.collin@tukaani.org>
7674Date:   2015-03-07 22:04:23 +0200
7675
7676    xz: Fix a comment and silence a warning in message.c.
7677
7678 src/xz/message.c | 5 +++--
7679 1 file changed, 3 insertions(+), 2 deletions(-)
7680
7681commit f243f5f44c6b19a7c289a0ec73a03ee08364cb5b
7682Author: Lasse Collin <lasse.collin@tukaani.org>
7683Date:   2015-03-07 22:01:00 +0200
7684
7685    liblzma: Silence more uint32_t vs. size_t warnings.
7686
7687 src/liblzma/lz/lz_encoder.c     | 2 +-
7688 src/liblzma/lzma/lzma_encoder.c | 2 +-
7689 2 files changed, 2 insertions(+), 2 deletions(-)
7690
7691commit 7f0a4c50f4a374c40acf4b86848f301ad1e82d34
7692Author: Lasse Collin <lasse.collin@tukaani.org>
7693Date:   2015-03-07 19:54:00 +0200
7694
7695    xz: Make arg_count an unsigned int to silence a warning.
7696
7697    Actually the value of arg_count cannot exceed INT_MAX
7698    but it's nicer as an unsigned int.
7699
7700 src/xz/args.h | 2 +-
7701 src/xz/main.c | 2 +-
7702 2 files changed, 2 insertions(+), 2 deletions(-)
7703
7704commit f6ec46801588b1be29c07c9db98558b521304002
7705Author: Lasse Collin <lasse.collin@tukaani.org>
7706Date:   2015-03-07 19:33:17 +0200
7707
7708    liblzma: Fix a warning in index.c.
7709
7710 src/liblzma/common/index.c | 4 +++-
7711 1 file changed, 3 insertions(+), 1 deletion(-)
7712
7713commit a24518971cc621315af142dd3bb7614fab04ad27
7714Author: Lasse Collin <lasse.collin@tukaani.org>
7715Date:   2015-02-26 20:46:14 +0200
7716
7717    Build: Fix a CR+LF problem when running autoreconf -fi on OS/2.
7718
7719 build-aux/version.sh | 2 +-
7720 1 file changed, 1 insertion(+), 1 deletion(-)
7721
7722commit dec11497a71518423b5ff0e759100cf8aadf6c7b
7723Author: Lasse Collin <lasse.collin@tukaani.org>
7724Date:   2015-02-26 16:53:44 +0200
7725
7726    Bump version and soname for 5.2.1.
7727
7728 src/liblzma/Makefile.am        | 2 +-
7729 src/liblzma/api/lzma/version.h | 2 +-
7730 2 files changed, 2 insertions(+), 2 deletions(-)
7731
7732commit 29e39c79975ab89ee5dd671e97064534a9f3a649
7733Author: Lasse Collin <lasse.collin@tukaani.org>
7734Date:   2015-02-26 13:01:09 +0200
7735
7736    Update NEWS for 5.2.1.
7737
7738 NEWS | 14 ++++++++++++++
7739 1 file changed, 14 insertions(+)
7740
7741commit 7a11c4a8e5e15f13d5fa59233b3172e65428efdd
7742Author: Lasse Collin <lasse.collin@tukaani.org>
7743Date:   2015-02-22 19:38:48 +0200
7744
7745    xz: Use pipe2() if available.
7746
7747 configure.ac     | 4 ++--
7748 src/xz/file_io.c | 9 ++++++++-
7749 2 files changed, 10 insertions(+), 3 deletions(-)
7750
7751commit 117d962685c72682c63edc9bb765367189800202
7752Author: Lasse Collin <lasse.collin@tukaani.org>
7753Date:   2015-02-21 23:40:26 +0200
7754
7755    liblzma: Fix a compression-ratio regression in LZMA1/2 in fast mode.
7756
7757    The bug was added in the commit
7758    f48fce093b07aeda95c18850f5e086d9f2383380 and thus
7759    affected 5.1.4beta and 5.2.0. Luckily the bug cannot
7760    cause data corruption or other nasty things.
7761
7762 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 +-
7763 1 file changed, 1 insertion(+), 1 deletion(-)
7764
7765commit ae984e31c167d3bc52972ec422dd1ebd5f5d5719
7766Author: Lasse Collin <lasse.collin@tukaani.org>
7767Date:   2015-02-21 23:00:19 +0200
7768
7769    xz: Fix the fcntl() usage when creating a pipe for the self-pipe trick.
7770
7771    Now it reads the old flags instead of blindly setting O_NONBLOCK.
7772    The old code may have worked correctly, but this is better.
7773
7774 src/xz/file_io.c | 16 +++++++++++-----
7775 1 file changed, 11 insertions(+), 5 deletions(-)
7776
7777commit 2205bb5853098aea36a56df6f5747037175f66b4
7778Author: Lasse Collin <lasse.collin@tukaani.org>
7779Date:   2015-02-10 15:29:34 +0200
7780
7781    Update THANKS.
7782
7783 THANKS | 1 +
7784 1 file changed, 1 insertion(+)
7785
7786commit d935b0cdf3db440269b9d952b2b281b18f8c7b08
7787Author: Lasse Collin <lasse.collin@tukaani.org>
7788Date:   2015-02-10 15:28:30 +0200
7789
7790    tuklib_cpucores: Use cpuset_getaffinity() on FreeBSD if available.
7791
7792    In FreeBSD, cpuset_getaffinity() is the preferred way to get
7793    the number of available cores.
7794
7795    Thanks to Rui Paulo for the patch. I edited it slightly, but
7796    hopefully I didn't break anything.
7797
7798 m4/tuklib_cpucores.m4        | 23 ++++++++++++++++++++++-
7799 src/common/tuklib_cpucores.c | 18 ++++++++++++++++++
7800 2 files changed, 40 insertions(+), 1 deletion(-)
7801
7802commit eb61bc58c20769cac4d05f363b9c0e8c9c71a560
7803Author: Lasse Collin <lasse.collin@tukaani.org>
7804Date:   2015-02-09 22:08:37 +0200
7805
7806    xzdiff: Make the mktemp usage compatible with FreeBSD's mktemp.
7807
7808    Thanks to Rui Paulo for the fix.
7809
7810 src/scripts/xzdiff.in | 7 ++++++-
7811 1 file changed, 6 insertions(+), 1 deletion(-)
7812
7813commit b9a5b6b7a29029680af733082b6a46e0fc01623a
7814Author: Lasse Collin <lasse.collin@tukaani.org>
7815Date:   2015-02-03 21:45:53 +0200
7816
7817    Add a few casts to tuklib_integer.h to silence possible warnings.
7818
7819    I heard that Visual Studio 2013 gave warnings without the casts.
7820
7821    Thanks to Gabi Davar.
7822
7823 src/common/tuklib_integer.h | 24 ++++++++++++------------
7824 1 file changed, 12 insertions(+), 12 deletions(-)
7825
7826commit c45757135f40e4a0de730ba5fff0100219493982
7827Author: Lasse Collin <lasse.collin@tukaani.org>
7828Date:   2015-01-26 21:24:39 +0200
7829
7830    liblzma: Set LZMA_MEMCMPLEN_EXTRA depending on the compare method.
7831
7832 src/liblzma/common/memcmplen.h | 15 ++++++++++-----
7833 1 file changed, 10 insertions(+), 5 deletions(-)
7834
7835commit 3c500174ed5485f550972a2a6109c361e875f069
7836Author: Lasse Collin <lasse.collin@tukaani.org>
7837Date:   2015-01-26 20:40:16 +0200
7838
7839    Update THANKS.
7840
7841 THANKS | 1 +
7842 1 file changed, 1 insertion(+)
7843
7844commit fec88d41e672d9e197c9442aecf02bd0dfa6d516
7845Author: Lasse Collin <lasse.collin@tukaani.org>
7846Date:   2015-01-26 20:39:28 +0200
7847
7848    liblzma: Silence harmless Valgrind errors.
7849
7850    Thanks to Torsten Rupp for reporting this. I had
7851    forgotten to run Valgrind before the 5.2.0 release.
7852
7853 src/liblzma/lz/lz_encoder.c | 6 ++++++
7854 1 file changed, 6 insertions(+)
7855
7856commit a9b45badfec0928d20a27c7176c005fa637f7d1e
7857Author: Lasse Collin <lasse.collin@tukaani.org>
7858Date:   2015-01-09 21:50:19 +0200
7859
7860    xz: Fix comments.
7861
7862 src/xz/file_io.c | 12 ++++++++----
7863 1 file changed, 8 insertions(+), 4 deletions(-)
7864
7865commit 541aee6dd4aa97a809aba281475a21b641bb89e2
7866Author: Lasse Collin <lasse.collin@tukaani.org>
7867Date:   2015-01-09 21:35:06 +0200
7868
7869    Update THANKS.
7870
7871 THANKS | 1 +
7872 1 file changed, 1 insertion(+)
7873
7874commit 4170edc914655310d2363baccf5e615e09b04911
7875Author: Lasse Collin <lasse.collin@tukaani.org>
7876Date:   2015-01-09 21:34:06 +0200
7877
7878    xz: Don't fail if stdout doesn't support O_NONBLOCK.
7879
7880    This is similar to the case with stdin.
7881
7882    Thanks to Brad Smith for the bug report and testing
7883    on OpenBSD.
7884
7885 src/xz/file_io.c | 36 +++++++++++++++---------------------
7886 1 file changed, 15 insertions(+), 21 deletions(-)
7887
7888commit 04bbc0c2843c50c8ad1cba42b937118e38b0508d
7889Author: Lasse Collin <lasse.collin@tukaani.org>
7890Date:   2015-01-07 19:18:20 +0200
7891
7892    xz: Fix a memory leak in DOS-specific code.
7893
7894 src/xz/file_io.c | 2 ++
7895 1 file changed, 2 insertions(+)
7896
7897commit f0f1f6c7235ffa901cf76fe18e33749e200b3eea
7898Author: Lasse Collin <lasse.collin@tukaani.org>
7899Date:   2015-01-07 19:08:06 +0200
7900
7901    xz: Don't fail if stdin doesn't support O_NONBLOCK.
7902
7903    It's a problem at least on OpenBSD which doesn't support
7904    O_NONBLOCK on e.g. /dev/null. I'm not surprised if it's
7905    a problem on other OSes too since this behavior is allowed
7906    in POSIX-1.2008.
7907
7908    The code relying on this behavior was committed in June 2013
7909    and included in 5.1.3alpha released on 2013-10-26. Clearly
7910    the development releases only get limited testing.
7911
7912 src/xz/file_io.c | 18 +++++++-----------
7913 1 file changed, 7 insertions(+), 11 deletions(-)
7914
7915commit d2d484647d9d9d679f03c75abb0404f67069271c
7916Author: Lasse Collin <lasse.collin@tukaani.org>
7917Date:   2015-01-06 20:30:15 +0200
7918
7919    Tests: Don't hide unexpected error messages in test_files.sh.
7920
7921    Hiding them makes no sense since normally there's no error
7922    when testing the "good" files. With "bad" files errors are
7923    expected and then it makes sense to keep the messages hidden.
7924
7925 tests/test_files.sh | 4 ++--
7926 1 file changed, 2 insertions(+), 2 deletions(-)
7927
7928commit aae6a6aeda51cf94a47e39ad624728f9bee75e30
7929Author: Lasse Collin <lasse.collin@tukaani.org>
7930Date:   2014-12-30 11:17:16 +0200
7931
7932    Update Solaris notes in INSTALL.
7933
7934    Mention the possible "make check" failure on Solaris in the
7935    Solaris-specific section of INSTALL. It was already in
7936    section 4.5 but it is better mention it in the OS-specific
7937    section too.
7938
7939 INSTALL | 4 ++++
7940 1 file changed, 4 insertions(+)
7941
7942commit 7815112153178800a3521b9f31960e7cdc26cfba
7943Author: Lasse Collin <lasse.collin@tukaani.org>
7944Date:   2014-12-26 12:00:05 +0200
7945
7946    Build: POSIX shell isn't required if scripts are disabled.
7947
7948 INSTALL      | 3 ++-
7949 configure.ac | 2 +-
7950 2 files changed, 3 insertions(+), 2 deletions(-)
7951
7952commit a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
7953Author: Lasse Collin <lasse.collin@tukaani.org>
7954Date:   2014-12-21 20:48:37 +0200
7955
7956    DOS: Update Makefile.
7957
7958 dos/Makefile | 1 +
7959 1 file changed, 1 insertion(+)
7960
7961commit b85ee0905ec4ab7656d22e63519fdd3bedb21f2e
7962Author: Lasse Collin <lasse.collin@tukaani.org>
7963Date:   2014-12-21 19:50:38 +0200
7964
7965    Windows: Fix bin_i486 to bin_i686 in build.bash.
7966
7967 windows/build.bash | 2 +-
7968 1 file changed, 1 insertion(+), 1 deletion(-)
7969
7970commit cbafa710918195dbba3db02c3fab4f0538235206
7971Author: Lasse Collin <lasse.collin@tukaani.org>
7972Date:   2014-12-21 18:58:44 +0200
7973
7974    Docs: Use lzma_cputhreads() in 04_compress_easy_mt.c.
7975
7976 doc/examples/04_compress_easy_mt.c | 30 ++++++++++++++++++++++++++----
7977 1 file changed, 26 insertions(+), 4 deletions(-)
7978
7979commit 8dbb57238d372c7263cfeb3e7f7fd9a73173156a
7980Author: Lasse Collin <lasse.collin@tukaani.org>
7981Date:   2014-12-21 18:56:44 +0200
7982
7983    Docs: Update docs/examples/00_README.txt.
7984
7985 doc/examples/00_README.txt | 4 ++++
7986 1 file changed, 4 insertions(+)
7987
7988commit 6060f7dc76fd6c2a8a1f8e85d0e4d86bb78273e6
7989Author: Lasse Collin <lasse.collin@tukaani.org>
7990Date:   2014-12-21 18:11:17 +0200
7991
7992    Bump version and soname for 5.2.0.
7993
7994    I know that soname != app version, but I skip AGE=1
7995    in -version-info to make the soname match the liblzma
7996    version anyway. It doesn't hurt anything as long as
7997    it doesn't conflict with library versioning rules.
7998
7999 src/liblzma/Makefile.am        | 2 +-
8000 src/liblzma/api/lzma/version.h | 6 +++---
8001 src/liblzma/liblzma.map        | 2 +-
8002 3 files changed, 5 insertions(+), 5 deletions(-)
8003