xref: /freebsd/contrib/xz/ChangeLog (revision 7ffc4ec4860d01414b493cdf43738878a9ede538)
1commit d3e650e63c110e830fd5391e7f8b45df0b91d3da
2Author: Lasse Collin <lasse.collin@tukaani.org>
3Date:   2026-09-09 17:30:48 +0300
4
5    Bump version and soname for 5.8.4
6
7 src/liblzma/Makefile.am        | 2 +-
8 src/liblzma/api/lzma/version.h | 2 +-
9 2 files changed, 2 insertions(+), 2 deletions(-)
10
11commit 44a7fbdbe4b6b75854df2f073cd0815abf6a6beb
12Author: Lasse Collin <lasse.collin@tukaani.org>
13Date:   2026-08-15 20:31:20 +0300
14
15    Add NEWS for 5.8.4
16
17 NEWS | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 1 file changed, 139 insertions(+)
19
20commit 0d30919e735a59ce0a029c00566c2f1463c7ac80
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   2026-09-09 15:19:46 +0300
23
24    Translations: Run po4a/update-po
25
26    This is to keep the files in release tarballs similar to the files
27    in the Git repository.
28
29 po4a/fr.po    |  9 ++-------
30 po4a/pt_BR.po | 14 +++++++-------
31 2 files changed, 9 insertions(+), 14 deletions(-)
32
33commit b33ffadd16553bdc423b24f2529d290a8103ece4
34Author: Lasse Collin <lasse.collin@tukaani.org>
35Date:   2026-09-09 15:08:00 +0300
36
37    Translations: Run "make -C po update-po"
38
39    16 translations weren't updated after 102ea0ed1290 ("xz: Make it an error
40    if the totals in xz --list exceed UINT64_MAX").
41
42 po/ca.po    | 6 +++++-
43 po/cs.po    | 6 +++++-
44 po/da.po    | 6 +++++-
45 po/eo.po    | 6 +++++-
46 po/es.po    | 6 +++++-
47 po/fi.po    | 6 +++++-
48 po/fr.po    | 6 +++++-
49 po/hu.po    | 6 +++++-
50 po/ka.po    | 6 +++++-
51 po/pt_BR.po | 6 +++++-
52 po/sr.po    | 6 +++++-
53 po/sv.po    | 6 +++++-
54 po/tr.po    | 6 +++++-
55 po/vi.po    | 6 +++++-
56 po/zh_CN.po | 6 +++++-
57 po/zh_TW.po | 6 +++++-
58 16 files changed, 80 insertions(+), 16 deletions(-)
59
60commit df5bfb4547ec6f3e3ad28ba2ece5f89ebf8d38c6
61Author: Lasse Collin <lasse.collin@tukaani.org>
62Date:   2026-09-09 14:14:40 +0300
63
64    Tests: Add a fuzzer for .xz Index decoding
65
66    Normal .xz decoding uses lzma_index_hash, so this new fuzzer doesn't
67    overlap with the existing fuzzers.
68
69 tests/ossfuzz/fuzz_decode_index.c | 66 +++++++++++++++++++++++++++++++++++++++
70 1 file changed, 66 insertions(+)
71
72commit 65198524f0e2a4a5670ca86b316e50dbd185fbd4
73Author: Lasse Collin <lasse.collin@tukaani.org>
74Date:   2026-09-09 14:14:40 +0300
75
76    Tests: Make some memory allocations fail in fuzzers
77
78 tests/ossfuzz/fuzz_common.h           | 37 +++++++++++++++++++++++++++++++++++
79 tests/ossfuzz/fuzz_decode_alone.c     |  6 ++++--
80 tests/ossfuzz/fuzz_decode_stream.c    |  6 ++++--
81 tests/ossfuzz/fuzz_decode_stream_mt.c |  6 ++++--
82 tests/ossfuzz/fuzz_encode_stream.c    |  4 ++++
83 5 files changed, 53 insertions(+), 6 deletions(-)
84
85commit d4217668a79e6ca440e673115155559c81e89b84
86Author: Lasse Collin <lasse.collin@tukaani.org>
87Date:   2026-09-09 14:14:40 +0300
88
89    Tests: Reinitialize decoders twice in fuzzers
90
91 tests/ossfuzz/fuzz_decode_alone.c     | 27 +++++++++-------
92 tests/ossfuzz/fuzz_decode_stream.c    | 58 +++++++++++++++++++++--------------
93 tests/ossfuzz/fuzz_decode_stream_mt.c | 30 ++++++++++++------
94 3 files changed, 71 insertions(+), 44 deletions(-)
95
96commit 9c3661926e8b7e9ee38b687cb197a0e98ecd3fb4
97Author: Lasse Collin <lasse.collin@tukaani.org>
98Date:   2026-09-09 14:14:40 +0300
99
100    Tests: fuzz_common.h: Reset next_out and avail_out
101
102    It matters if the same lzma_stream is reused.
103
104 tests/ossfuzz/fuzz_common.h | 3 +++
105 1 file changed, 3 insertions(+)
106
107commit 16f309314488c601daad2689924117a43a8ccbde
108Author: Lasse Collin <lasse.collin@tukaani.org>
109Date:   2026-09-09 14:14:40 +0300
110
111    Tests: Adjust coding style in fuzzers
112
113 tests/ossfuzz/fuzz_common.h        | 3 ++-
114 tests/ossfuzz/fuzz_decode_alone.c  | 1 +
115 tests/ossfuzz/fuzz_decode_stream.c | 1 +
116 3 files changed, 4 insertions(+), 1 deletion(-)
117
118commit c3b290c3dc536d16884a6c695618eb08fdbc700a
119Author: Lasse Collin <lasse.collin@tukaani.org>
120Date:   2026-09-09 14:14:40 +0300
121
122    liblzma: Make lzma_simple_coder_init() reinit-safe after alloc failure
123
124    lzma_raw_coder_init() always calls lzma_next_end() if an error occurs
125    in filter initialization, and no other code path can call
126    lzma_simple_coder_init(), so this change doesn't fix any bug.
127    This is just to reduce likelyhood of future bugs.
128
129 src/liblzma/simple/simple_coder.c | 20 +++++++++++---------
130 1 file changed, 11 insertions(+), 9 deletions(-)
131
132commit ff834f25ae4f9b3e6270d41b4c843b8b1183346c
133Author: Lasse Collin <lasse.collin@tukaani.org>
134Date:   2026-09-09 14:14:40 +0300
135
136    Tests: Test lzma_alone_decoder() reuse after dictionary allocation failure
137
138    This test crashes if both of the two previous commits are reverted.
139
140 tests/Makefile.am          |  2 +
141 tests/test_alone_decoder.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++
142 tests/tests.cmake          |  1 +
143 3 files changed, 99 insertions(+)
144
145commit e5e63d50eac1b4357a5a7a0abd3c5f99a5c47881
146Author: Lasse Collin <lasse.collin@tukaani.org>
147Date:   2026-09-09 14:14:40 +0300
148
149    liblzma: Clean up after a filter chain initialization error
150
151    Filter coders are initialized using lzma_next_filter_init(). If filter
152    chain initialization fails, the entire filter chain should be cleaned up
153    with lzma_next_end(). lzma_raw_encoder_init() and lzma_raw_decoder_init()
154    have always done this via lzma_raw_coder_init() in filter_common.c.
155    (Separate cleanup is weird, but it must have made sense to the young me.)
156
157    The following decoders initialize LZMA1 filter directly without using the
158    raw filter chain API. This avoids needlessly pulling in all other filters
159    when a program is linked against static liblzma. These functions didn't
160    call lzma_next_end() after an initialization error, which left the state
161    available for later reinitialization.
162
163      - lzma_alone_decoder()
164      - lzma_lzip_decoder()
165      - lzma_auto_decoder() [*]
166      - lzma_microlzma_decoder()
167
168    [*] lzma_auto_decoder() is only indirectly affected due to the first two
169        functions. lzma_auto_decoder() itself doesn't need a fix.
170
171    There are also encoder functions that initialize the LZMA1 encoder
172    directly. They don't have this issue because the whole lzma_stream
173    is cleaned up when encoder initialization fails.
174
175    Reported-by: GitHub user christos-cantina-security (christos-spearbit)
176
177 src/liblzma/common/alone_decoder.c     | 8 ++++++--
178 src/liblzma/common/lzip_decoder.c      | 8 ++++++--
179 src/liblzma/common/microlzma_decoder.c | 8 ++++++--
180 3 files changed, 18 insertions(+), 6 deletions(-)
181
182commit fe4d763d566a38ad61d4c5022520c25578a3a464
183Author: Lasse Collin <lasse.collin@tukaani.org>
184Date:   2026-09-09 14:14:40 +0300
185
186    liblzma: Make lzma_lz_decoder_init() safe to reinit after alloc failure
187
188    If memory allocation fails and the resulting coder state is reused,
189    ensure that memory allocation is attempted again. However, coders that
190    are initialized via lzma_next_filter_init() shouldn't be reinitialized
191    after failure; they should be cleaned up with lzma_next_end().
192
193    Reported-by: GitHub user christos-cantina-security (christos-spearbit)
194
195 src/liblzma/lz/lz_decoder.c | 1 +
196 1 file changed, 1 insertion(+)
197
198commit 9fc6f5cd8774ebef8d4e030f7081fb6984c0dc3f
199Author: Lasse Collin <lasse.collin@tukaani.org>
200Date:   2026-09-04 12:13:43 +0300
201
202    liblzma: mt dec: Clarify comments about mutex usage
203
204 src/liblzma/common/stream_decoder_mt.c | 4 ++--
205 1 file changed, 2 insertions(+), 2 deletions(-)
206
207commit c6e3aadbb510e44cecfe870408ecfea1d1ca792c
208Author: Trithem90 <149891156+Trithem90@users.noreply.github.com>
209Date:   2026-09-03 19:52:23 +0200
210
211    liblzma: mt dec: Protect progress_in update with mutex
212
213    Worker threads update coder->progress_in while holding coder->mutex, but
214    the main thread updated the same field without the mutex while decoding
215    the next Block Header. ThreadSanitizer reported the concurrent writes and
216    lzma_get_progress() under-reported input progress by one Block.
217
218    All other coder->progress_in/progress_out accesses in stream_decode_mt()
219    are done when the worker threads aren't active, so only the access in
220    SEQ_BLOCK_HEADER needs to lock coder->mutex.
221
222    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
223    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
224    Closes: https://github.com/tukaani-project/xz/pull/243
225
226 src/liblzma/common/stream_decoder_mt.c | 7 ++++++-
227 1 file changed, 6 insertions(+), 1 deletion(-)
228
229commit 5121d1aed8107a113d7665b6d4f26b6187949f3d
230Author: Lasse Collin <lasse.collin@tukaani.org>
231Date:   2026-08-31 20:35:04 +0300
232
233    Tests: Add tests for single-call .xz encoding
234
235    Thanks-to: GitHub user androvonx95
236    Closes: https://github.com/tukaani-project/xz/pull/231
237
238 tests/Makefile.am                 |   2 +
239 tests/test_stream_buffer_encode.c | 264 ++++++++++++++++++++++++++++++++++++++
240 tests/tests.cmake                 |   1 +
241 3 files changed, 267 insertions(+)
242
243commit 28a66a3d1b6af89ed6ee841384c339629fda8264
244Author: Lasse Collin <lasse.collin@tukaani.org>
245Date:   2026-08-20 16:40:01 +0300
246
247    Translations: Update the Italian translation
248
249 po/it.po | 17 ++++++++++-------
250 1 file changed, 10 insertions(+), 7 deletions(-)
251
252commit c6c425829c8635a243211cbc14dd34a042a7f796
253Author: Lasse Collin <lasse.collin@tukaani.org>
254Date:   2026-08-20 16:38:42 +0300
255
256    liblzma: LZMA2 decoder: Be more strict about compressed chunk size
257
258    It wasn't really a bug, but it's good to be more strict.
259
260    Side effects ("downsides" would be a too strong word):
261
262      - Now the LZMA decoder has to use the slow path at the end of every
263        LZMA2 chunk even when the read position isn't close to &in[in_size].
264        This doesn't matter in practice.
265
266      - If a chunk header was corrupt exactly so that the compressed size is
267        too small, now fewer bytes of uncompressed data can be recovered.
268
269    Reported-by: GitHub user christos-spearbit
270
271 src/liblzma/lzma/lzma2_decoder.c | 25 +++++++++++++++++++++++--
272 1 file changed, 23 insertions(+), 2 deletions(-)
273
274commit c077edfd1867b473a38fb2283c6cac545a9ea857
275Author: Lasse Collin <lasse.collin@tukaani.org>
276Date:   2026-08-19 22:58:43 +0300
277
278    Translations: Update the Polish translation
279
280 po/pl.po | 17 +++++++++++------
281 1 file changed, 11 insertions(+), 6 deletions(-)
282
283commit 936e72e20e18cf0a637f2aa9d87f278d7a82df9d
284Author: Lasse Collin <lasse.collin@tukaani.org>
285Date:   2026-08-19 20:26:37 +0300
286
287    Translations: Update the German translation
288
289 po/de.po | 15 ++++++++++-----
290 1 file changed, 10 insertions(+), 5 deletions(-)
291
292commit 11334a5d4d5ea3e8b2a3cbce74c1062d25cef772
293Author: Lasse Collin <lasse.collin@tukaani.org>
294Date:   2026-08-19 19:07:34 +0300
295
296    Translations: Update the Korean translation
297
298 po/ko.po | 17 +++++++++++------
299 1 file changed, 11 insertions(+), 6 deletions(-)
300
301commit 7b9955d0aaa10edbe9a71e54d16c28fdc8b60725
302Author: Lasse Collin <lasse.collin@tukaani.org>
303Date:   2026-08-19 19:05:42 +0300
304
305    Translations: Update the Portuguese translation
306
307 po/pt.po | 17 +++++++++++------
308 1 file changed, 11 insertions(+), 6 deletions(-)
309
310commit 9ed91f3afe50fd21051af3b31139466ebfa6b20a
311Author: Lasse Collin <lasse.collin@tukaani.org>
312Date:   2026-08-19 14:03:55 +0300
313
314    Translations: Update the Dutch translation
315
316 po/nl.po | 13 +++++++++----
317 1 file changed, 9 insertions(+), 4 deletions(-)
318
319commit e38f738e5cc5b72afc160285e65f5973f44db2fb
320Author: Lasse Collin <lasse.collin@tukaani.org>
321Date:   2026-08-18 20:20:57 +0300
322
323    Translations: Update the Romanian translation
324
325 po/ro.po | 16 +++++++++++-----
326 1 file changed, 11 insertions(+), 5 deletions(-)
327
328commit f9a0f80e35aff05871bedea040b8b82fba386829
329Author: Lasse Collin <lasse.collin@tukaani.org>
330Date:   2026-08-18 18:20:17 +0300
331
332    Translations: Update the Croatian translation
333
334 po/hr.po | 10 +++++++---
335 1 file changed, 7 insertions(+), 3 deletions(-)
336
337commit b1b54af595926744e5bf999c2a8c7a6a23ad238a
338Author: Lasse Collin <lasse.collin@tukaani.org>
339Date:   2026-08-18 13:05:22 +0300
340
341    Translations: Update the Ukrainian translation
342
343 po/uk.po | 16 ++++++++++------
344 1 file changed, 10 insertions(+), 6 deletions(-)
345
346commit 0072f6c9bcb69e11638f036fb7d6b54ff3c494e8
347Author: Lasse Collin <lasse.collin@tukaani.org>
348Date:   2026-08-17 20:31:41 +0300
349
350    Translations: Restore SPDX license identifier to pt_BR.po
351
352    Fixes: 8d13dd61ecb7 ("Translations: Update the Brazilian Portuguese translation")
353
354 po/pt_BR.po | 2 ++
355 1 file changed, 2 insertions(+)
356
357commit 7f539d14484ee0fde7c1290ae22eebe739bc92cf
358Author: Lasse Collin <lasse.collin@tukaani.org>
359Date:   2026-08-15 19:50:05 +0300
360
361    Tests: Test that integer overflow in xz --list totals is caught
362
363 tests/test_files.sh | 15 +++++++++++++++
364 1 file changed, 15 insertions(+)
365
366commit 490ca91153c24812bcef1f657220af1a4525eeb1
367Author: Lasse Collin <lasse.collin@tukaani.org>
368Date:   2026-08-15 19:50:05 +0300
369
370    Tests: Add test file bad-1-index-huge-uncomp.xz
371
372 tests/files/README                     |   5 +++++
373 tests/files/bad-1-index-huge-uncomp.xz | Bin 0 -> 72 bytes
374 2 files changed, 5 insertions(+)
375
376commit 102ea0ed1290869f3af53009f98def030c6b6cd0
377Author: xordanblu <jordygarciamorales@gmail.com>
378Date:   2026-08-15 19:50:05 +0300
379
380    xz: Make it an error if the totals in xz --list exceed UINT64_MAX
381
382    If at least three files are passed to xz --list, the totals might exceed
383    the range of uint64_t. Previously wrong totals were displayed in this
384    case. Now an error is shown as soon as an overflow would occur, and the
385    remaining files aren't processed. In most other cases an error doesn't
386    prevent xz from processing the remaining files, but in this case it
387    feels OK because (1) the error should be very rare, (2) it keeps the
388    code slightly simpler, and (3) with xz --robot --list the caller will
389    likely ignore the output anyway when xz exits with a non-zero status.
390
391    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
392    Fixes: https://github.com/tukaani-project/xz/pull/240
393
394 src/xz/list.c | 34 +++++++++++++++++++++++++++++-----
395 1 file changed, 29 insertions(+), 5 deletions(-)
396
397commit 29f9ca3dbcebffd88fb55030db4fc0fcb1f66234
398Author: Lasse Collin <lasse.collin@tukaani.org>
399Date:   2026-08-15 19:42:55 +0300
400
401    liblzma: index.c 4/4: Reverse the tree building for index_streams
402
403    lzma_index_cat() is used by lzma_file_info_decoder() and by a few apps
404    that were written before lzma_file_info_decoder() existed (it was added
405    in 5.3.1alpha). The most common use case for these functions is xz --list.
406    The other use case is random access decoding.
407
408    When decoding Index fields from multi-Stream .xz files, lzma_index_cat()
409    is used to concatenate the decoded lzma_index structures. Such decoding
410    starts from the last Stream in the file and stops at the first Stream in
411    the file, so lzma_index_cat() is called with the most recently decoded
412    Stream as the destination argument while the source argument contains all
413    other Streams that have been decoded so far. That is, the typical use case
414    is lzma_index_cat(one_stream, many_streams, NULL).
415
416    With the old code, lzma_index_cat() appended Streams from src into dest
417    one at a time and updated their absolute offsets at the same time.
418    When a .xz file contained many Streams, the number of Streams in
419    the source argument grew for each call, which created a performance
420    problem if the file contained an unusually large number of Streams
421    (over 10,000). (A large number of Blocks isn't a problem.)
422
423    Make lzma_index_cat() prepend the index_streams from dest to src
424    instead of appending from src to dest. Use the _bias members to adjust
425    the offsets of the existing index_streams in src.
426
427    Change the numbering in index_stream.number from 1, 2, 3, ... to
428    ...., 2, 1, 0. That is, internally the last index_stream is now 0.
429
430    Now lzma_index_cat() needs to update all Streams from dest instead from
431    src, which keeps the normal use case fast. Obviously the performance
432    problem still exists, but now it's in the opposite situation (repeated
433    calls of lzma_index_cat(many_streams, one_stream, NULL)). This should
434    be acceptable because there should be no use cases where doing it would
435    be useful. A full fix would require a more complex patch.
436
437    As an alternative, I tried a rewrite of index.c that replaces the trees
438    with plain arrays and realloc(). It's smaller and simpler, but it's
439    still somewhat complex because the API is too flexible compared to what
440    functionality is actually needed. I didn't merge that version because
441    a rewrite has a higher risk of regressions, and in some corner cases
442    the peak memory usage was considerably higher than with the old code
443    (if a custom lzma_allocator is used, realloc() has to be emulated with
444    alloc + memcpy + free, and native realloc() might need to do that too),
445    and large preallocations make it unclear what lzma_index_memusage() and
446    lzma_index_memused() should return.
447
448    Below is an example where xz --list became too slow before this commit.
449    Pass 18 or 20 instead of 16 to seq, and xz effectively hangs.
450
451        true | xz > big.xz
452        for I in $(seq 16)
453        do
454            cat big.xz big.xz > tmp.xz
455            mv tmp.xz big.xz
456            echo ====
457            echo $I
458            time xz -l big.xz
459        done
460
461    Reported-by: Omkhar Arasaratnam
462
463 src/liblzma/common/index.c | 105 +++++++++++++++++++++++----------------------
464 1 file changed, 54 insertions(+), 51 deletions(-)
465
466commit 869f0e85a8aa5ec30cc5f30c14e2a27cfa0485cf
467Author: Lasse Collin <lasse.collin@tukaani.org>
468Date:   2026-08-15 19:42:55 +0300
469
470    liblzma: index.c 3/4: Add index_tree_prev()
471
472 src/liblzma/common/index.c | 19 +++++++++++++++++++
473 1 file changed, 19 insertions(+)
474
475commit 0543606d156c3bd3bb5b1c08b848b4cbb794c094
476Author: Lasse Collin <lasse.collin@tukaani.org>
477Date:   2026-08-15 19:42:55 +0300
478
479    liblzma: index.c 2/4: Make index_tree_append support prepending too
480
481 src/liblzma/common/index.c | 72 +++++++++++++++++++++++++++++-----------------
482 1 file changed, 46 insertions(+), 26 deletions(-)
483
484commit 59cac26b8002377fb0d931e9951607d0b84bc67d
485Author: Lasse Collin <lasse.collin@tukaani.org>
486Date:   2026-08-15 19:42:55 +0300
487
488    liblzma: index.c 1/4: Add bias members
489
490    In this commit the biases are still constant.
491
492 src/liblzma/common/index.c | 54 ++++++++++++++++++++++++++++++++++------------
493 1 file changed, 40 insertions(+), 14 deletions(-)
494
495commit f8f53ca1fbe41e7a17844c762590c01eb701824c
496Author: Lasse Collin <lasse.collin@tukaani.org>
497Date:   2026-08-15 18:55:25 +0300
498
499    CI: MSVC: Build shared liblzma
500
501 .github/workflows/msvc.yml | 3 +++
502 1 file changed, 3 insertions(+)
503
504commit 8697fcc82389255eb2f6de69105f05a2a7262155
505Author: Lasse Collin <lasse.collin@tukaani.org>
506Date:   2026-08-15 18:55:25 +0300
507
508    Update .gitignore
509
510 .gitignore | 2 +-
511 1 file changed, 1 insertion(+), 1 deletion(-)
512
513commit 18769dd6927f16562008aee01ab1466c3035110e
514Author: Lasse Collin <lasse.collin@tukaani.org>
515Date:   2026-08-15 18:55:25 +0300
516
517    CMake: Don't put test binaries in a subdirectory
518
519    This can matter on Windows:
520
521     - MSVC puts the binaries into subdirectories based on build type
522       (like "Debug" or "Release"), and then the test executables won't
523       find liblzma.dll because it's not in the working directory from
524       which the tests are run.
525
526     - With mingw-w64, liblzma.dll was in the working directory so the test
527       executables worked. However, the if the system happened to have
528       liblzma.dll in, for example, the Windows directory, then the DLL
529       search order might pick that instead.
530
531    Putting the shared library and test executables in the same directory
532    avoids these problems.
533
534    Reported-by: Frank <mail@franku.nl>
535    Fixes: https://github.com/tukaani-project/xz/pull/239
536
537 tests/tests.cmake | 12 +++++-------
538 1 file changed, 5 insertions(+), 7 deletions(-)
539
540commit c8b8ab2ef1eb0a0217ad2027d7f5d242ceb944d3
541Author: Lasse Collin <lasse.collin@tukaani.org>
542Date:   2026-08-09 16:11:13 +0300
543
544    liblzma: Fix a theoretical integer overflow in lzma_index_cat()
545
546    To trigger it, one would need to successfully allocate hundreds of
547    gigabytes of memory.
548
549 src/liblzma/common/index.c | 5 +++++
550 1 file changed, 5 insertions(+)
551
552commit 1a4a4df3669453e9c80235baffa13e4dd1358bc8
553Author: Lasse Collin <lasse.collin@tukaani.org>
554Date:   2026-08-09 16:11:13 +0300
555
556    Tests: test_index: Test lzma_index_memusage(STREAMS_MAX, 1)
557
558 tests/test_index.c | 1 +
559 1 file changed, 1 insertion(+)
560
561commit d31b473917a4270f5bb00fbf52598d4f3c143f7c
562Author: Lasse Collin <lasse.collin@tukaani.org>
563Date:   2026-08-09 16:11:03 +0300
564
565    liblzma: index.c: Define STREAMS_MAX
566
567 src/liblzma/common/index.c | 12 +++++++++---
568 1 file changed, 9 insertions(+), 3 deletions(-)
569
570commit 93372479ec052e6cd1ef7b3d9ed8a96781fec155
571Author: Lasse Collin <lasse.collin@tukaani.org>
572Date:   2026-07-24 21:23:31 +0300
573
574    Tests: test_index: Extend _dup + _cat testing
575
576 tests/test_index.c | 19 ++++++++++++++++++-
577 1 file changed, 18 insertions(+), 1 deletion(-)
578
579commit a967036afbf56208cbe30fc27ec732ced7ebe4c8
580Author: Lasse Collin <lasse.collin@tukaani.org>
581Date:   2026-07-24 21:23:31 +0300
582
583    liblzma: Index decoder: Detect a too large allocation earlier
584
585    Previously, if an Index had more than PREALLOC_MAX Records, then
586    allocations were done in PREALLOC_DEFAULT chunks (512 Records).
587    That makes little sense in practice because it's likely that one
588    would run out of address space later. Return LZMA_MEM_ERROR error
589    pre-emptively if PREALLOC_MAX would be exceeded.
590
591 src/liblzma/common/index.c         | 6 +++---
592 src/liblzma/common/index.h         | 4 +++-
593 src/liblzma/common/index_decoder.c | 5 ++++-
594 3 files changed, 10 insertions(+), 5 deletions(-)
595
596commit 9be8d5c91fc33c755823c9f7aac7560dbfea7f91
597Author: Lasse Collin <lasse.collin@tukaani.org>
598Date:   2026-08-04 17:59:43 +0300
599
600    Update THANKS
601
602 THANKS | 1 +
603 1 file changed, 1 insertion(+)
604
605commit d16c31196e4c1fd4a76c960a5c7db261075e4db1
606Author: Darren Carreras <283775510+carrerasdarren-cell@users.noreply.github.com>
607Date:   2026-07-27 22:13:09 -0400
608
609    Tests: Add a test for the lzma_index_dup() + lzma_index_checks bug()
610
611    Link: https://github.com/tukaani-project/xz/pull/238
612
613 tests/test_index.c | 14 ++++++++++++++
614 1 file changed, 14 insertions(+)
615
616commit c57500bda55f61936c9d3afb701d42e92fc8508b
617Author: Darren Carreras <283775510+carrerasdarren-cell@users.noreply.github.com>
618Date:   2026-07-27 22:13:09 -0400
619
620    liblzma: Preserve check statistics in lzma_index_dup()
621
622    lzma_index_dup() copied the per-Stream flags but not the cached bitmask
623    for all Streams except the last one. As a result, lzma_index_checks() on
624    a duplicated multi-Stream Index reported only the Check type of its
625    final Stream.
626
627    Fixes: https://github.com/tukaani-project/xz/pull/238
628
629 src/liblzma/common/index.c | 1 +
630 1 file changed, 1 insertion(+)
631
632commit 6097929ae8f8c2a1714aacd844a8e9747b071cdc
633Author: Lasse Collin <lasse.collin@tukaani.org>
634Date:   2026-07-21 13:56:42 +0300
635
636    Update THANKS
637
638 THANKS | 2 ++
639 1 file changed, 2 insertions(+)
640
641commit 4b9b827117cecd7571c0952b501fa84c4bd7e5fb
642Author: Lasse Collin <lasse.collin@tukaani.org>
643Date:   2026-07-21 13:50:13 +0300
644
645    xz: Free the filename read from the file specified with --files/--files0
646
647    Like the previous commit, this cleans up leak detection slightly.
648    Otherwise it doesn't matter because xz is going to exit soon anyway.
649
650 src/xz/main.c | 8 +++++---
651 1 file changed, 5 insertions(+), 3 deletions(-)
652
653commit 7bd6d63b0c0cf2a0c4b609014c49e66d5199e385
654Author: Lasse Collin <lasse.collin@tukaani.org>
655Date:   2026-07-21 13:32:05 +0300
656
657    xz: Free the filename allocated for --files or --files0
658
659    This cleans up leak detection slightly. Otherwise it doesn't matter
660    because xz is going to exit soon anyway.
661
662    Reported-by: Phuc An
663    Fixes: https://github.com/tukaani-project/xz/pull/232
664
665 src/xz/args.c | 2 +-
666 src/xz/args.h | 2 +-
667 src/xz/main.c | 4 +++-
668 3 files changed, 5 insertions(+), 3 deletions(-)
669
670commit 0877609467a81fb831a3bcbcea732d20582a58b9
671Author: Lasse Collin <lasse.collin@tukaani.org>
672Date:   2026-07-21 12:58:45 +0300
673
674    liblzma: Fix input_size_max in lzma_index_buffer_decode()
675
676    If *in_pos > 0, the condition became more relaxed than it needed to be.
677
678    Fixes: 5005914f1acf ("liblzma: Index decoder: Reject an obviously-bad Number of>
679    Fixes: 0352dc7929b1 ("liblzma: Silence a compiler warning")
680
681 src/liblzma/common/index_decoder.c | 5 ++---
682 1 file changed, 2 insertions(+), 3 deletions(-)
683
684commit d4edae32b6f1d34d68f3ac8917c20d0191e0cfcd
685Author: Lasse Collin <lasse.collin@tukaani.org>
686Date:   2026-07-20 22:29:58 +0300
687
688    Tests: Fix test_index.c when encoding support is disabled
689
690    Fixes: 10dfae83fd3b ("Tests: test_index: Add a test for the Index decoder memusage bug")
691
692 tests/test_index.c | 4 ++--
693 1 file changed, 2 insertions(+), 2 deletions(-)
694
695commit 0352dc7929b19f17afcdafae49ec86156cc31462
696Author: Lasse Collin <lasse.collin@tukaani.org>
697Date:   2026-07-20 22:14:05 +0300
698
699    liblzma: Silence a compiler warning
700
701    Fixes: 5005914f1acf ("liblzma: Index decoder: Reject an obviously-bad Number of Records better")
702
703 src/liblzma/common/index_decoder.c | 4 +++-
704 1 file changed, 3 insertions(+), 1 deletion(-)
705
706commit 47c44e90089de546619d927dba190f0100df4eda
707Author: Lasse Collin <lasse.collin@tukaani.org>
708Date:   2026-07-20 20:00:06 +0300
709
710    Tests: test_index: Test the stricter Number of Records condition
711
712 tests/test_index.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
713 1 file changed, 45 insertions(+)
714
715commit a9c92328bdee9b9afc2d8a0a300ad66d8edcf801
716Author: Lasse Collin <lasse.collin@tukaani.org>
717Date:   2026-07-20 20:00:06 +0300
718
719    Tests: Add test file bad-0-index-1.xz
720
721 tests/files/README           |   3 +++
722 tests/files/bad-0-index-1.xz | Bin 0 -> 32 bytes
723 2 files changed, 3 insertions(+)
724
725commit 006126aca97b5f5b6bacd549787b18c1e9ce1908
726Author: Lasse Collin <lasse.collin@tukaani.org>
727Date:   2026-07-20 20:00:06 +0300
728
729    Revert "liblzma: Add internal constant INDEX_RECORDS_MAX"
730
731    This reverts commit 9ff4dadca96a5ac3cb478759a4fdb8663be114eb.
732    The INDEX_RECORDS_MAX constant isn't needed after the previous commit.
733
734 src/liblzma/common/index.h | 6 ------
735 1 file changed, 6 deletions(-)
736
737commit 5005914f1acfdb9884bedc8100bce6185d0861b6
738Author: Lasse Collin <lasse.collin@tukaani.org>
739Date:   2026-07-20 20:00:06 +0300
740
741    liblzma: Index decoder: Reject an obviously-bad Number of Records better
742
743    File info decoder knows Backward Size, so pass it to the Index decoder.
744    Now the Index decoder, when called from the file info decoder, won't
745    allocate a large amount of memory when Backward Size is tiny and the
746    Number of Records field contains a huge invalid value.
747
748    If a reasonable memory usage limit was set, the old code returned
749    LZMA_MEMLIMIT_ERROR if the value in Number of Records was too huge.
750    Now it results in LZMA_DATA_ERROR which is better.
751
752 src/liblzma/common/file_info.c     |  7 ++++---
753 src/liblzma/common/index_decoder.c | 35 +++++++++++++++++++++++++----------
754 src/liblzma/common/index_decoder.h |  2 +-
755 3 files changed, 30 insertions(+), 14 deletions(-)
756
757commit 10dfae83fd3b63c32c0e170540e98c4b25bf02c6
758Author: Lasse Collin <lasse.collin@tukaani.org>
759Date:   2026-07-20 20:00:06 +0300
760
761    Tests: test_index: Add a test for the Index decoder memusage bug
762
763 tests/test_index.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
764 1 file changed, 48 insertions(+)
765
766commit bd3bfe834620b664d73b15952894864660a9bef1
767Author: Lasse Collin <lasse.collin@tukaani.org>
768Date:   2026-07-20 20:00:06 +0300
769
770    liblzma: Index decoder: Fix lzma_memusage()
771
772    If lzma_stream was initialized using lzma_index_decoder() or
773    lzma_file_info_decoder(), and lzma_memusage() was called after a few
774    Records had already been decoded, the return value was too low because
775    it was calculated based on the number of Records that haven't been
776    decoded yet. So near the end of a big Index, the return value would be
777    tiny compared to the actual memory usage.
778
779    It worked correctly in the primary use case, that is, after
780    LZMA_MEMLIMIT_ERROR. Thus, in practice this bug didn't matter much.
781
782 src/liblzma/common/index_decoder.c | 21 +++++++++++++++++----
783 1 file changed, 17 insertions(+), 4 deletions(-)
784
785commit 2187b27c64ef23d6ffa2917c8d835e100969e3e6
786Author: Lasse Collin <lasse.collin@tukaani.org>
787Date:   2026-07-20 20:00:06 +0300
788
789    Tests: test_index: Fix testing of _locate() with concatenated lzma_index
790
791 tests/test_index.c | 11 +++++++++++
792 1 file changed, 11 insertions(+)
793
794commit 8d13dd61ecb703cfabdf826ca0a282c2b5f60cd4
795Author: Lasse Collin <lasse.collin@tukaani.org>
796Date:   2026-07-19 10:44:49 +0300
797
798    Translations: Update the Brazilian Portuguese translation
799
800 po/pt_BR.po | 453 +++++++++++++++++-------------------------------------------
801 1 file changed, 125 insertions(+), 328 deletions(-)
802
803commit 791ce1bb6dcae5f424a5a40b877ec4abd9476399
804Author: Lasse Collin <lasse.collin@tukaani.org>
805Date:   2026-07-15 22:12:07 +0300
806
807    liblzma: Remove an outdated API doc in hardware.h
808
809 src/liblzma/api/lzma/hardware.h | 5 +----
810 1 file changed, 1 insertion(+), 4 deletions(-)
811
812commit f3b5688159c60495f48db3942a36509671dfce89
813Author: Lasse Collin <lasse.collin@tukaani.org>
814Date:   2026-07-03 16:55:03 +0300
815
816    Tests: Comment that a sanitizer may be needed for lzma_index_append() bug
817
818    Fixes: a3ea8832bec1 ("Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug")
819    Link: https://github.com/tukaani-project/xz/issues/233
820
821 tests/test_index.c | 2 ++
822 1 file changed, 2 insertions(+)
823
824commit 6a07932a8787eab0b2e1d1a6856d4393e50bba67
825Author: Lasse Collin <lasse.collin@tukaani.org>
826Date:   2026-07-02 21:56:33 +0300
827
828    Translations: Update the Croatian translation
829
830 po/hr.po | 387 +++++++++++++++++++++++++++++++--------------------------------
831 1 file changed, 191 insertions(+), 196 deletions(-)
832
833commit b8d0707ae788b401161babf0fe771c859e3f996c
834Author: Lasse Collin <lasse.collin@tukaani.org>
835Date:   2026-07-02 21:09:36 +0300
836
837    NEWS: Clarify which bug is CVE-2026-34743
838
839    Fixes: https://salsa.debian.org/debian/xz-utils/-/merge_requests/5#note_775071
840
841 NEWS | 4 ++--
842 1 file changed, 2 insertions(+), 2 deletions(-)
843
844commit e95cd90da9c620cf9ceca1f9e94025bcb437fca9
845Author: Lasse Collin <lasse.collin@tukaani.org>
846Date:   2026-06-21 19:29:59 +0300
847
848    Translations: Fix LTR/RTL issue in Arabic xz man page tables
849
850    The headings are RTL but in some tables the rows were LTR because the
851    first strong char was LTR, like the "e" in "-0e". Add {RLM}{LRM}...{RLM}
852    to those columns ("-0" to "-9", and "-0e" to "-9e"):
853
854        sed -ri $'/^msgstr /{s/"(-[0-9]e?)"/"\u200f\u200e\\1\u200f"/}' ar.po
855
856    It's not perfect because groff doesn't treat RLM and LRM as zero-width
857    chars, and thus the columns are slightly misaligned. It's good enough
858    in practice still.
859
860    Thanks-to: Zayed Al-Saidi <zayed.alsaidi@gmail.com>
861
862 po4a/ar.po | 40 ++++++++++++++++++++--------------------
863 1 file changed, 20 insertions(+), 20 deletions(-)
864
865commit b46944d73495b99148eebb1d9661574c2041f4db
866Author: Lasse Collin <lasse.collin@tukaani.org>
867Date:   2026-06-21 20:02:49 +0300
868
869    CI: Add 'timeout: 10' to coverity.yml
870
871 .github/workflows/coverity.yml | 1 +
872 1 file changed, 1 insertion(+)
873
874commit 0def41200695c830c6da95a21ef7158f60a6af01
875Author: Lasse Collin <lasse.collin@tukaani.org>
876Date:   2026-06-19 22:07:15 +0300
877
878    CI: Don't pin vmactions or MSYS2 actions to commit ID
879
880    These workflows don't use any secrets other than GITHUB_TOKEN, which
881    only has the 'contents: read' permission. That is, if an action was
882    compromised, it shouldn't be able to modify the repository or steal any
883    secrets. I recognize that a compromised action isn't completely harmless
884    still. For example, the runners on GitHub have Internet access which the
885    action could abuse until the workflow timeout (currently 10 or 20 minutes)
886    expires.
887
888    Now we always use the most recent actions instead of ones that are
889    sometimes several months old. The hassle of updating the pinned
890    commit IDs goes away. The benefits feel bigger than the risks.
891
892    Link: https://github.com/tukaani-project/xz/pull/227
893
894 .github/workflows/dragonflybsd.yml | 2 +-
895 .github/workflows/freebsd.yml      | 2 +-
896 .github/workflows/haiku.yml        | 2 +-
897 .github/workflows/msys2.yml        | 4 ++--
898 .github/workflows/netbsd.yml       | 2 +-
899 .github/workflows/openbsd.yml      | 2 +-
900 .github/workflows/solaris.yml      | 2 +-
901 7 files changed, 8 insertions(+), 8 deletions(-)
902
903commit 3c0dbed89069f7a57f7ce5e0a9259081fcc4ba4d
904Author: Lasse Collin <lasse.collin@tukaani.org>
905Date:   2026-06-19 22:07:15 +0300
906
907    CI: Upgrade actions/checkout from v6 to v7
908
909 .github/workflows/ci.yml           | 2 +-
910 .github/workflows/coverity.yml     | 2 +-
911 .github/workflows/dragonflybsd.yml | 2 +-
912 .github/workflows/freebsd.yml      | 2 +-
913 .github/workflows/haiku.yml        | 2 +-
914 .github/workflows/msvc.yml         | 2 +-
915 .github/workflows/msys2.yml        | 2 +-
916 .github/workflows/netbsd.yml       | 2 +-
917 .github/workflows/openbsd.yml      | 2 +-
918 .github/workflows/solaris.yml      | 2 +-
919 10 files changed, 10 insertions(+), 10 deletions(-)
920
921commit 0fab61de63f458a6f72ee1745790c17ac368787e
922Author: Lasse Collin <lasse.collin@tukaani.org>
923Date:   2026-06-19 22:07:15 +0300
924
925    CI: Run CI workflows on push to 'ci_run' in addition to 'master'
926
927    Make it convenient to run the CI workflows by pushing to a branch with
928    a specific name.
929
930 .github/workflows/ci.yml           | 2 +-
931 .github/workflows/cifuzz.yml       | 2 +-
932 .github/workflows/dragonflybsd.yml | 2 +-
933 .github/workflows/freebsd.yml      | 2 +-
934 .github/workflows/haiku.yml        | 2 +-
935 .github/workflows/msvc.yml         | 2 +-
936 .github/workflows/msys2.yml        | 2 +-
937 .github/workflows/netbsd.yml       | 2 +-
938 .github/workflows/openbsd.yml      | 2 +-
939 .github/workflows/solaris.yml      | 2 +-
940 10 files changed, 10 insertions(+), 10 deletions(-)
941
942commit 8e8c6598a56d5d07daa9554cfac2456631afc1a9
943Author: Lasse Collin <lasse.collin@tukaani.org>
944Date:   2026-06-19 22:07:15 +0300
945
946    CI: Remove the on 'pull_request:' entries
947
948    I don't run CI from PRs, so these just add noise to the "Actions" tab
949    in the GH UI.
950
951 .github/workflows/ci.yml           | 2 --
952 .github/workflows/dragonflybsd.yml | 2 --
953 .github/workflows/freebsd.yml      | 2 --
954 .github/workflows/haiku.yml        | 2 --
955 .github/workflows/msvc.yml         | 2 --
956 .github/workflows/msys2.yml        | 2 --
957 .github/workflows/netbsd.yml       | 2 --
958 .github/workflows/openbsd.yml      | 2 --
959 .github/workflows/solaris.yml      | 2 --
960 9 files changed, 18 deletions(-)
961
962commit 88ae12f7873c7d8731cbd1d05313dc4a016171f7
963Author: Lasse Collin <lasse.collin@tukaani.org>
964Date:   2026-06-19 22:07:15 +0300
965
966    CI: Use 'contents: read' after all
967
968    If someone makes a private fork, then it will work there too.
969
970    Thanks-to: Eli Schwartz
971
972 .github/workflows/ci.yml           | 3 ++-
973 .github/workflows/cifuzz.yml       | 3 ++-
974 .github/workflows/coverity.yml     | 3 ++-
975 .github/workflows/dragonflybsd.yml | 3 ++-
976 .github/workflows/freebsd.yml      | 3 ++-
977 .github/workflows/haiku.yml        | 3 ++-
978 .github/workflows/msvc.yml         | 3 ++-
979 .github/workflows/msys2.yml        | 3 ++-
980 .github/workflows/netbsd.yml       | 3 ++-
981 .github/workflows/openbsd.yml      | 3 ++-
982 .github/workflows/solaris.yml      | 3 ++-
983 11 files changed, 22 insertions(+), 11 deletions(-)
984
985commit b70af4d5320750acda7cffbd75a3390eede600bd
986Author: Lasse Collin <lasse.collin@tukaani.org>
987Date:   2026-06-17 16:02:45 +0300
988
989    CI: Add 'permissions' to coverity.yml
990
991    GitHub's actions/checkout@v6 is documented to need 'contents: read' but
992    it works without it too, probably because the repository is public.
993
994    Reported-by: GitHub user Alb3e3
995    Fixes: https://github.com/tukaani-project/xz/pull/230
996
997 .github/workflows/coverity.yml | 2 ++
998 1 file changed, 2 insertions(+)
999
1000commit 56c18ccfb7a707d4eba4b619e60324f84032b4fa
1001Author: Lasse Collin <lasse.collin@tukaani.org>
1002Date:   2026-06-16 21:48:57 +0300
1003
1004    liblzma: file info decoder: Add an integer overflow check
1005
1006    After the previous commit, the overflow should be impossible, but it's
1007    better to add the check anyway.
1008
1009    Fixes: https://github.com/tukaani-project/xz/pull/226
1010
1011 src/liblzma/common/file_info.c | 7 +++++++
1012 1 file changed, 7 insertions(+)
1013
1014commit a73f4c67154fe6111076ee673fd8991f5853d8d4
1015Author: Lasse Collin <lasse.collin@tukaani.org>
1016Date:   2026-06-03 00:20:28 +0300
1017
1018    liblzma: Index decoder: Reject an obviously-bad Number of Records early
1019
1020    There no point to try decoding further when the Index is clearly not
1021    from a valid .xz file.
1022
1023    This also limits what index_decoder_memconfig() can return as the
1024    memory usage. Very huge values aren't possible anymore. This affects
1025    file_info_decoder_memconfig() in file_info.c where very huge values
1026    aren't expected and could result in an integer overflow when not much
1027    memory has actually been allocated. Now the overflow can only happen if
1028    one manages to successfully allocate and fill a few exabytes of memory.
1029
1030    Reported-by: GitHub user jmestwa-coder
1031    Fixes: https://github.com/tukaani-project/xz/pull/226
1032
1033 src/liblzma/common/index_decoder.c | 7 +++++++
1034 1 file changed, 7 insertions(+)
1035
1036commit 9ff4dadca96a5ac3cb478759a4fdb8663be114eb
1037Author: Lasse Collin <lasse.collin@tukaani.org>
1038Date:   2026-06-03 00:05:48 +0300
1039
1040    liblzma: Add internal constant INDEX_RECORDS_MAX
1041
1042    It's the theoretical maximum number of Records that fit in a .xz file.
1043    This can be used to reject obviously wrong values.
1044
1045 src/liblzma/common/index.h | 6 ++++++
1046 1 file changed, 6 insertions(+)
1047
1048commit 25a53ed6d1c91372fde1fe8631dcf93ac6625e5c
1049Author: Lasse Collin <lasse.collin@tukaani.org>
1050Date:   2026-06-17 22:04:17 +0300
1051
1052    Translation: Update Arabic man page translations
1053
1054    In two tables, the column headings are now narrower and
1055
1056        MANWIDTH=80 man --warnings po4a/man/ar/xz.1 > /dev/null
1057
1058    no longer warns.
1059
1060    Thanks-to: Zayed Al-Saidi <zayed.alsaidi@gmail.com>
1061    Fixes: https://github.com/tukaani-project/xz/pull/220
1062
1063 po4a/ar.po | 32 ++++++++++++++++----------------
1064 1 file changed, 16 insertions(+), 16 deletions(-)
1065
1066commit 225c46e99c3a3e6e0996649ee8d858b6e07111b3
1067Author: Lasse Collin <lasse.collin@tukaani.org>
1068Date:   2026-06-04 23:33:37 +0300
1069
1070    xzdiff: Use LC_ALL=C with sed and expr
1071
1072    This is required to handle strings that may contain invalid multibyte
1073    sequences. For example, on GNU/Linux and FreeBSD 14 with UTF-8 locale:
1074
1075        $ printf "\201'A\n" | sed s/./x/ | hexdump -C
1076        00000000  81 78 41 0a                                       |.xA.|
1077
1078    That is, the first byte remains untouched and the ' is replaced with x.
1079    This kind of string would result in inbalanced quotes in xzdiff. In the
1080    C locale it works safely:
1081
1082        $ printf "\201'A\n" | LC_ALL=C sed s/./x/ | hexdump -C
1083        00000000  78 27 41 0a                                       |x'A.|
1084
1085    Similar changes were made in xzgrep in 2022 (see the commits 69d1b3fc2967
1086    and 6a4a4a7d2667). Somehow xzdiff was forgotten even though this issue
1087    was fixed in zdiff in gzip in 2022.
1088
1089    Co-authored-by: rootvector2 <dxbnaveed.k@gmail.com>
1090    Fixes: https://github.com/tukaani-project/xz/pull/228
1091
1092 src/scripts/xzdiff.in | 14 +++++++-------
1093 1 file changed, 7 insertions(+), 7 deletions(-)
1094
1095commit 1aab7e9cab1293c2b8a481ed1beac94da21ef04f
1096Author: rootvector2 <dxbnaveed.k@gmail.com>
1097Date:   2026-05-28 12:29:23 +0530
1098
1099    xz: Fix --files/--files0 usage via XZ_OPT and XZ_DEFAULTS env vars
1100
1101    If --files=FILELIST or --files0=FILELIST was specified via an enrivonment
1102    variable, it worked if there were no errors when reading from the file
1103    FILELIST. However, if an error occurred when reading from FILELIST,
1104    there was a use-after-free bug when printing the error message because
1105    the memory containing the string "FILELIST" had been freed.
1106
1107        printf foo.xz > filelist.txt
1108        XZ_OPT=--files=filelist.txt xz -l
1109
1110    Because filelist.txt doesn't end in a newline, the file list is seen as
1111    invalid/truncated, resulting in an error message like this:
1112
1113        xz: ????????.txt: Unexpected end of input when reading filenames
1114
1115    The question marks are because the garbage string is masked using
1116    tuklib_mask_nonprint(). After this commit, it works:
1117
1118        xz: filelist.txt: Unexpected end of input when reading filenames
1119
1120    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
1121    Fixes: https://github.com/tukaani-project/xz/pull/223
1122
1123 src/xz/args.c | 11 ++++++++---
1124 1 file changed, 8 insertions(+), 3 deletions(-)
1125
1126commit d0d380797e9f1c25c0a88ce5d4cfd092590a209d
1127Author: rootvector2 <dxbnaveed.k@gmail.com>
1128Date:   2026-05-27 23:51:52 +0530
1129
1130    xz: Mask the multiplier suffix in str_to_uint64() error message
1131
1132    A similar error message in the same function was masked in the
1133    previous commit 7e7bb6c21cf9.
1134
1135    Fixes: https://github.com/tukaani-project/xz/pull/222
1136
1137 src/xz/util.c | 2 +-
1138 1 file changed, 1 insertion(+), 1 deletion(-)
1139
1140commit 7e7bb6c21cf9c78f95a5049242fa35aebce38ea4
1141Author: Lasse Collin <lasse.collin@tukaani.org>
1142Date:   2026-05-26 19:30:29 +0300
1143
1144    xz: Use tuklib_mbstr_nonprint in a few more places
1145
1146    Reported-by: GitHub user curious-rabbit
1147
1148 src/xz/args.c  | 22 +++++++++++++---------
1149 src/xz/coder.c |  2 +-
1150 src/xz/util.c  |  2 +-
1151 3 files changed, 15 insertions(+), 11 deletions(-)
1152
1153commit 1df00237ae36da1debd5f30ca76a78e28a10d6e2
1154Author: Lasse Collin <lasse.collin@tukaani.org>
1155Date:   2026-05-25 18:32:15 +0300
1156
1157    xzgrep: Fix handling of the ' char at the end of an option
1158
1159    For example, the following would run the "id" command:
1160
1161        xzgrep "--a='" "--b=;id;'" "pattern" foo.xz
1162
1163    The bug was inherited from gzip's zgrep. It was reported to bug-gzip by
1164    Leenear. It was fixed in gzip in the commit cd74dc30f8cc by Paul Eggert.
1165
1166    Link: https://lists.gnu.org/archive/html/bug-gzip/2026-04/msg00032.html
1167
1168 src/scripts/xzgrep.in | 2 +-
1169 1 file changed, 1 insertion(+), 1 deletion(-)
1170
1171commit 2928248922a200eb3fbcc5e7dea9216d7f81a788
1172Author: Lasse Collin <lasse.collin@tukaani.org>
1173Date:   2026-05-21 19:04:34 +0300
1174
1175    Update THANKS
1176
1177 THANKS | 3 +++
1178 1 file changed, 3 insertions(+)
1179
1180commit 8654b72980c774d4cb142e11a6012fe9a6a83122
1181Author: Lasse Collin <lasse.collin@tukaani.org>
1182Date:   2026-05-21 18:57:36 +0300
1183
1184    Landlock: Support ABI version 9
1185
1186    Features added in versions 7 and 8 shouldn't be relevant here.
1187
1188 src/common/my_landlock.h | 11 ++++++++++-
1189 1 file changed, 10 insertions(+), 1 deletion(-)
1190
1191commit f5665a445f08b031cd9807068654620b5a15e5eb
1192Author: Lasse Collin <lasse.collin@tukaani.org>
1193Date:   2026-05-21 18:38:16 +0300
1194
1195    Landlock: Provide fallbacks for ABI 2, 3, and 5 macros
1196
1197    This way the newer features are available on new enough kernels
1198    even if the package is built against old <linux/landlock.h>.
1199
1200    Landlock ABI versions 4 and 6 would require an extended
1201    struct landlock_ruleset_attr. No fallback is provided (or planned)
1202    for those features.
1203
1204    Suggested-by: Omkhar Arasaratnam
1205
1206 src/common/my_landlock.h | 32 ++++++++++++++++++++------------
1207 1 file changed, 20 insertions(+), 12 deletions(-)
1208
1209commit 6237e4319fabe740d6f56ebf5960ce348bafdbcf
1210Author: Lasse Collin <lasse.collin@tukaani.org>
1211Date:   2026-05-20 21:21:51 +0300
1212
1213    xz: Reduce indentation of three tables on the man page
1214
1215    The extra indentation makes the tables stand out from the text, and
1216    in the English man page it works well. However, some translations
1217    have strings that require more space, and the table might become
1218    too wide. In some translations this has been solved by splitting
1219    the translated string on two lines, for example, Romanian translation
1220    of "4096-byte alignment is best".
1221
1222    On Debian 13 with groff 1.23.0, the "man" command shows a few warnings:
1223
1224        $ LANGUAGE=it MANWIDTH=80 man --warnings xz > /dev/null
1225        <standard input>:477: warning: table wider than line length minus indentation
1226        <standard input>:545: warning: table wider than line length minus indentation
1227        <standard input>:1182: warning: table wider than line length minus indentation
1228
1229    German man page shows those warnings too. On Arch with groff 1.24.1,
1230    there are fewer warnings because the newer groff indents less, and
1231    fewer tables reach or exceed the right margin. Thus, some safety margin
1232    is good to keep the output neat with different man page formatters.
1233
1234    It feels silly to reduce the indentation on the English man page which
1235    has plenty of safety margin, but it's simpler than trying to do it
1236    only for the translated man pages. This doesn't affect readability;
1237    it's just cosmetic.
1238
1239    I tried using .IP instead of .RS + .PP for the tables, but on Solaris 10
1240    it results in an extra empty line before the table. It makes some
1241    difference on AIX 7.3 too. With groff, both are fine. Stick to
1242    .RS + .PP + .TS ... .TE + .RE for slightly better portability.
1243
1244    Co-authored-by: Otto Kekäläinen <otto@debian.org>
1245    Partially-fixes: https://github.com/tukaani-project/xz/pull/220
1246
1247 src/xz/xz.1 | 6 ------
1248 1 file changed, 6 deletions(-)
1249
1250commit f9b243e2034a2d71af92fb4785e02d68d9f2216c
1251Author: Lasse Collin <lasse.collin@tukaani.org>
1252Date:   2026-05-20 13:42:45 +0300
1253
1254    Translations: Fix a syntax typo in the Serbian xz man page translation
1255
1256    Testing with this:
1257
1258        cd po4a
1259        ./update-po
1260        groff -K utf8 -man -t -ww -rCHECKSTYLE=3 -z man/sr/*.1
1261
1262    The output included this:
1263
1264        an.tmac:man/sr/xz.1:751: style: 1 leading space(s) on input line
1265
1266    The actual reason seemed to be an unwanted newline (likely a typo).
1267
1268 po4a/sr.po | 3 +--
1269 1 file changed, 1 insertion(+), 2 deletions(-)
1270
1271commit 625387f089655a8e4a2f4317e66b20a42e276d06
1272Author: Lasse Collin <lasse.collin@tukaani.org>
1273Date:   2026-05-20 13:37:18 +0300
1274
1275    Translations: Fix a groff warning in the German xz man page translation
1276
1277    Testing with this:
1278
1279        cd po4a
1280        ./update-po
1281        groff -K utf8 -man -t -ww -rCHECKSTYLE=3 -z man/de/*.1
1282
1283    The output included this:
1284
1285        an.tmac:man/de/xz.1:524: style: 1 leading space(s) on input line
1286
1287 po4a/de.po | 2 +-
1288 1 file changed, 1 insertion(+), 1 deletion(-)
1289
1290commit 6365d4dadd86ceb6c02734cf1aac4c483043b733
1291Author: Lasse Collin <lasse.collin@tukaani.org>
1292Date:   2026-05-20 13:32:43 +0300
1293
1294    Translations: Fix syntax in the Korean man page translations
1295
1296    Testing with this:
1297
1298        cd po4a
1299        ./update-po
1300        groff -K utf8 -man -t -ww -z man/ko/*.1
1301
1302    It produced warnings:
1303
1304        troff:man/ko/xz.1:1405: warning: color 'i' not defined
1305        troff:man/ko/xzdec.1:17: warning: cannot select font '\'
1306        troff:man/ko/xzdec.1:19: warning: cannot select font '\'
1307
1308 po4a/ko.po | 6 +++---
1309 1 file changed, 3 insertions(+), 3 deletions(-)
1310
1311commit 8e99c3934b31eb84e9a08329be41623deaf2de54
1312Author: Lasse Collin <lasse.collin@tukaani.org>
1313Date:   2026-05-20 13:24:03 +0300
1314
1315    Translations: Fix a syntax typo in the French xz man page translation
1316
1317    Testing with this:
1318
1319        cd po4a
1320        ./update-po
1321        groff -K utf8 -man -t -ww -z man/fr/xz.1
1322
1323    It produced a warning:
1324
1325        troff:man/fr/xz.1:516: warning: color 'i' not defined
1326
1327    The backslash for non-breaking space was misplaced:
1328
1329        Old:  8 \\Mio,
1330        New:  8\\ Mio,
1331
1332 po4a/fr.po | 2 +-
1333 1 file changed, 1 insertion(+), 1 deletion(-)
1334
1335commit 784adc9263a9e5dee684fd5dd45a93fcaed98981
1336Author: Lasse Collin <lasse.collin@tukaani.org>
1337Date:   2026-05-20 13:09:59 +0300
1338
1339    Man pages: Improve rendering in mandoc
1340
1341    Don't use "" as an argument to .IP because it makes mandoc insert
1342    an unwanted extra empty line. With the xz man page, this change makes
1343    no difference in plain text output with GNU groff or on AIX or
1344    Solaris 10. The list in the xzgrep man page has a different indentation
1345    now because previously it had two arguments (.IP "" 4), but that's OK.
1346
1347    I don't remember why '.IP' was changed to '.IP ""' in cec0ddc8ec4c.
1348    Maybe it made a difference on some proprietary UNIX over 15 years ago
1349    or maybe it was just a misunderstanding.
1350
1351 src/scripts/xzgrep.1 |  18 +++---
1352 src/xz/xz.1          | 152 +++++++++++++++++++++++++--------------------------
1353 2 files changed, 85 insertions(+), 85 deletions(-)
1354
1355commit 814e8828b57af30b529aee15132f4066ddb8fcf0
1356Author: Lasse Collin <lasse.collin@tukaani.org>
1357Date:   2026-05-20 01:25:41 +0300
1358
1359    po4a/update-po: Workaround an issue with non-ASCII chars in tables
1360
1361    Non-ASCII chars in tables (.TS ... .TE) result in warnings:
1362
1363        man --warnings po4a/man/uk/xz.1 > /dev/null
1364        troff:<standard input>:464: warning: special character 'u0411\[tbl' not defined
1365        troff:<standard input>:1157: warning: special character 'u044\[tbl' not defined
1366        troff:<standard input>:1682: warning: special character 'u0434\[tbl' not defined
1367
1368    po4a generates groff Unicode escapes like '\u0435' followed immediately
1369    by '[' in table contexts, causing groff to interpret the full string
1370    'u0435[tbl' as a single special character name. Fix this by inserting
1371    a dummy character (\&) after every Unicode escape so that the bracket
1372    is treated as literal text instead of part of the character name.
1373
1374    Co-authored-by: Otto Kekäläinen <otto@debian.org>
1375    Partially-fixes: https://github.com/tukaani-project/xz/pull/220
1376
1377 po4a/update-po | 6 ++++++
1378 1 file changed, 6 insertions(+)
1379
1380commit bc96573a65008641783f25a2cbd877b9cccff1e9
1381Author: Lasse Collin <lasse.collin@tukaani.org>
1382Date:   2026-05-19 18:12:07 +0300
1383
1384    Translations: Update the German man page translations
1385
1386 po4a/de.po | 20 +++++++-------------
1387 1 file changed, 7 insertions(+), 13 deletions(-)
1388
1389commit 81faa2e653e81c305cc386c0a5280fef5924c9b7
1390Author: Lasse Collin <lasse.collin@tukaani.org>
1391Date:   2026-05-19 17:36:15 +0300
1392
1393    liblzma: ARM64 & LoongArch: Avoid aligned_readXXle on unaligned pointers
1394
1395    While most ARM64 and LoongArch processors support unaligned access,
1396    the code wouldn't have worked on strict-align processors.
1397
1398    Use byte-by-byte method if the input buffer is at most 7 bytes. This
1399    way the code works on strict-align processors too. It might not be
1400    the very best method for tiny buffers, but it shouldn't matter in
1401    practice (the simple implementation for big buffers isn't amazing
1402    either because it cannot execute more than one CRC32 instruction
1403    at a time on superscalar processors).
1404
1405    Reported-by: Guanni Qu
1406    Fixes: 0ed893668554 ("liblzma: ARM64 CRC32: Align the buffer faster")
1407    Fixes: 7baf6835cfbf ("liblzma: Speed up CRC32 calculation on 64-bit LoongArch")
1408
1409 src/liblzma/check/crc32_arm64.h     | 36 ++++++++++++++++++++----------------
1410 src/liblzma/check/crc32_loongarch.h | 32 +++++++++++++++++++-------------
1411 2 files changed, 39 insertions(+), 29 deletions(-)
1412
1413commit c2fe308792d97ba41b898a009e4d9d98d1e75720
1414Author: Lasse Collin <lasse.collin@tukaani.org>
1415Date:   2026-05-19 18:07:47 +0300
1416
1417    liblzma: Document the lzma_stream_buffer_decode() bug
1418
1419 src/liblzma/api/lzma/container.h | 5 ++++-
1420 1 file changed, 4 insertions(+), 1 deletion(-)
1421
1422commit 6566e6251ac46e2a6caeb1dee504da1c241e2b7f
1423Author: Lasse Collin <lasse.collin@tukaani.org>
1424Date:   2026-05-19 14:10:03 +0300
1425
1426    Tests: tuktest.h: Fix a comment
1427
1428 tests/tuktest.h | 7 ++++---
1429 1 file changed, 4 insertions(+), 3 deletions(-)
1430
1431commit 29584cdaf360e0528859cc962b380a93a6398590
1432Author: Lasse Collin <lasse.collin@tukaani.org>
1433Date:   2026-05-19 14:04:43 +0300
1434
1435    Tests: Add a test for the lzma_stream_buffer_decode() bug
1436
1437 tests/Makefile.am                 |   2 +
1438 tests/test_stream_buffer_decode.c | 109 ++++++++++++++++++++++++++++++++++++++
1439 tests/tests.cmake                 |   1 +
1440 3 files changed, 112 insertions(+)
1441
1442commit b53838ae0caf9f09b976a8577cf4392910d6f02c
1443Author: Lasse Collin <lasse.collin@tukaani.org>
1444Date:   2026-05-19 13:52:41 +0300
1445
1446    liblzma: lzma_stream_buffer_decode: Fix wrong error code
1447
1448    lzma_stream_buffer_decode() would often fail with LZMA_BUF_ERROR
1449    when it should have failed with LZMA_DATA_ERROR.
1450    In debug builds this also resulted in an assertion failure.
1451
1452    In the _buffer_decode() functions, LZMA_BUF_ERROR is only used when
1453    the output buffer is too small. Truncated input is LZMA_DATA_ERROR.
1454
1455    Reported-by: Guanni Qu
1456    Reported-by: Omkhar Arasaratnam
1457    Fixes: c81f13ff2927 ("Added lzma_stream_buffer_decode() and made minor cleanups.")
1458
1459 src/liblzma/common/stream_buffer_decoder.c | 8 ++++----
1460 1 file changed, 4 insertions(+), 4 deletions(-)
1461
1462commit 327c906dcd6a9e40a39bf922f69560bd62f0b1a2
1463Author: Lasse Collin <lasse.collin@tukaani.org>
1464Date:   2026-05-19 12:34:53 +0300
1465
1466    xz: Fix use-after-free in verbose error message to a non-tty
1467
1468    If --verbose was used when stderr isn't a terminal, the filename
1469    contained a non-printable character, and an error occurred,
1470    a use-after-free occurred when printing the error message.
1471
1472    The bug exists in versions 5.7.1alpha to 5.8.3.
1473
1474    Reported-by: Omkhar Arasaratnam
1475    Fixes: d22f96921fd2 ("xz: Use tuklib_mbstr_nonprint")
1476
1477 src/xz/message.c | 9 ++++++++-
1478 1 file changed, 8 insertions(+), 1 deletion(-)
1479
1480commit ebb0e6789cefe3be71756881aa8f2009fda9938c
1481Author: Lasse Collin <lasse.collin@tukaani.org>
1482Date:   2026-03-31 18:41:04 +0300
1483
1484    doc/SHA256SUMS: Add 5.8.3
1485
1486 doc/SHA256SUMS | 6 ++++++
1487 1 file changed, 6 insertions(+)
1488
1489commit 4b73f2ec19a99ef465282fbce633e8deb33691b3
1490Author: Lasse Collin <lasse.collin@tukaani.org>
1491Date:   2026-03-31 17:26:16 +0300
1492
1493    Bump version and soname for 5.8.3
1494
1495 src/liblzma/Makefile.am        | 2 +-
1496 src/liblzma/api/lzma/version.h | 2 +-
1497 2 files changed, 2 insertions(+), 2 deletions(-)
1498
1499commit 97b7440006d69a30048ff1ffc29fc7a0615e5d51
1500Author: Lasse Collin <lasse.collin@tukaani.org>
1501Date:   2026-03-31 17:26:16 +0300
1502
1503    Add NEWS for 5.8.3
1504
1505 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1506 1 file changed, 54 insertions(+)
1507
1508commit 8e1022cfb1d177e482e487c202a0ab43dee761a3
1509Author: Lasse Collin <lasse.collin@tukaani.org>
1510Date:   2026-03-31 17:10:47 +0300
1511
1512    Translations: Run "make -C po update-po"
1513
1514    Update the PO files to contain the comment fix from 4e76651dbaf6.
1515
1516 po/ca.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1517 po/cs.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1518 po/da.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1519 po/de.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1520 po/eo.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1521 po/es.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1522 po/fi.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1523 po/fr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1524 po/hr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1525 po/hu.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1526 po/it.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1527 po/ka.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1528 po/ko.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1529 po/nl.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1530 po/pl.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1531 po/pt.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1532 po/pt_BR.po | 148 ++++++++++++++++++++++++++++++------------------------------
1533 po/ro.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1534 po/sr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1535 po/sv.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1536 po/tr.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1537 po/uk.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1538 po/vi.po    | 148 ++++++++++++++++++++++++++++++------------------------------
1539 po/zh_CN.po | 148 ++++++++++++++++++++++++++++++------------------------------
1540 po/zh_TW.po | 148 ++++++++++++++++++++++++++++++------------------------------
1541 25 files changed, 1850 insertions(+), 1850 deletions(-)
1542
1543commit a3ea8832bec11128597c454f5d14d05ef6010e3f
1544Author: Lasse Collin <lasse.collin@tukaani.org>
1545Date:   2026-03-29 20:29:40 +0300
1546
1547    Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug
1548
1549 tests/test_index.c | 35 +++++++++++++++++++++++++++++++++++
1550 1 file changed, 35 insertions(+)
1551
1552commit c8c22869e780ff57c96b46939c3d79ff99395f87
1553Author: Lasse Collin <lasse.collin@tukaani.org>
1554Date:   2026-03-29 19:11:21 +0300
1555
1556    liblzma: Fix a buffer overflow in lzma_index_append()
1557
1558    If lzma_index_decoder() was used to decode an Index that contained no
1559    Records, the resulting lzma_index had an invalid internal "prealloc"
1560    value. If lzma_index_append() was called on this lzma_index, too
1561    little memory would be allocated and a buffer overflow would occur.
1562
1563    While this combination of the API functions is meant to work, in the
1564    real-world apps this call sequence is rare or might not exist at all.
1565
1566    This bug is older than xz 5.0.0, so all stable releases are affected.
1567
1568    Reported-by: GitHub user christos-spearbit
1569
1570 src/liblzma/common/index.c | 21 +++++++++++++++++++++
1571 1 file changed, 21 insertions(+)
1572
1573commit a37658bec72ed581a683b7498a75a70122b831b0
1574Author: Lasse Collin <lasse.collin@tukaani.org>
1575Date:   2026-03-27 21:15:12 +0200
1576
1577    CMake: Adjust warnings with MSVC and clang-cl
1578
1579    When using clang-cl, avoid the long list of warning options used with
1580    GCC and Clang because, for MSVC compatibility, clang-cl's -Wall behaves
1581    like -Weverything.
1582
1583    Add warning options for MSVC. Use them with clang-cl too.
1584
1585 CMakeLists.txt | 21 ++++++++++++++++++++-
1586 1 file changed, 20 insertions(+), 1 deletion(-)
1587
1588commit 9e499f714cade4beade31c86dcb0de9fc72d0562
1589Author: Lasse Collin <lasse.collin@tukaani.org>
1590Date:   2026-03-27 21:14:50 +0200
1591
1592    CI: Don't disable individual warnings with clang-cl
1593
1594 .github/workflows/msvc.yml | 13 -------------
1595 1 file changed, 13 deletions(-)
1596
1597commit 1e00837f72e0551ab73927642a8f61aad80c958d
1598Author: Lasse Collin <lasse.collin@tukaani.org>
1599Date:   2026-03-22 12:02:48 +0200
1600
1601    CI: Add Haiku
1602
1603 .github/workflows/haiku.yml | 38 ++++++++++++++++++++++++++++++++++++++
1604 1 file changed, 38 insertions(+)
1605
1606commit 8082851b7848ac32fea7bc7cfb84d9b3ef5537b0
1607Author: Lasse Collin <lasse.collin@tukaani.org>
1608Date:   2026-03-22 11:30:20 +0200
1609
1610    Update THANKS
1611
1612 THANKS | 1 +
1613 1 file changed, 1 insertion(+)
1614
1615commit 3cdd412bcea6bb5b4c5d41d2b4104230a5a9569c
1616Author: Lasse Collin <lasse.collin@tukaani.org>
1617Date:   2026-03-22 11:29:30 +0200
1618
1619    CI: Update MSYS2
1620
1621    Closes: https://github.com/tukaani-project/xz/pull/213
1622
1623 .github/workflows/msys2.yml | 2 +-
1624 1 file changed, 1 insertion(+), 1 deletion(-)
1625
1626commit e38a4af340ca9738923a511b7e35b6390c03ec50
1627Author: Lasse Collin <lasse.collin@tukaani.org>
1628Date:   2026-03-22 11:29:23 +0200
1629
1630    CI: Update Solaris
1631
1632    Closes: https://github.com/tukaani-project/xz/pull/213
1633
1634 .github/workflows/solaris.yml | 2 +-
1635 1 file changed, 1 insertion(+), 1 deletion(-)
1636
1637commit 40b1599217cc4f7cca6f48e0c32e709b9abd3639
1638Author: Lasse Collin <lasse.collin@tukaani.org>
1639Date:   2026-03-22 11:29:14 +0200
1640
1641    CI: Update OpenBSD
1642
1643    Closes: https://github.com/tukaani-project/xz/pull/213
1644
1645 .github/workflows/openbsd.yml | 2 +-
1646 1 file changed, 1 insertion(+), 1 deletion(-)
1647
1648commit 3aaf2f136c3fcf1140b9dfa584640778be789abc
1649Author: Lasse Collin <lasse.collin@tukaani.org>
1650Date:   2026-03-22 11:29:08 +0200
1651
1652    CI: Update NetBSD
1653
1654    Closes: https://github.com/tukaani-project/xz/pull/213
1655
1656 .github/workflows/netbsd.yml | 2 +-
1657 1 file changed, 1 insertion(+), 1 deletion(-)
1658
1659commit b5c26a249d21d293b441b21d22a1a81e7eec436a
1660Author: Lasse Collin <lasse.collin@tukaani.org>
1661Date:   2026-03-22 11:28:58 +0200
1662
1663    CI: Update FreeBSD
1664
1665    Closes: https://github.com/tukaani-project/xz/pull/213
1666
1667 .github/workflows/freebsd.yml | 2 +-
1668 1 file changed, 1 insertion(+), 1 deletion(-)
1669
1670commit 1a73f4f917f25d19ae557f49af2fddd9ef9f0a4a
1671Author: Lasse Collin <lasse.collin@tukaani.org>
1672Date:   2026-03-22 11:28:47 +0200
1673
1674    CI: Update DragonFly BSD
1675
1676    Closes: https://github.com/tukaani-project/xz/pull/213
1677
1678 .github/workflows/dragonflybsd.yml | 2 +-
1679 1 file changed, 1 insertion(+), 1 deletion(-)
1680
1681commit 5d61c5a3cf3be88b16179900ac5be82011a3a6bb
1682Author: Salman Muin Kayser Chishti <13schishti@gmail.com>
1683Date:   2026-02-28 09:10:46 +0000
1684
1685    CI: Upgrade GitHub Actions for Node 24 compatibility
1686
1687    Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
1688    Closes: https://github.com/tukaani-project/xz/pull/212
1689
1690 .github/workflows/ci.yml           | 4 ++--
1691 .github/workflows/cifuzz.yml       | 2 +-
1692 .github/workflows/coverity.yml     | 2 +-
1693 .github/workflows/dragonflybsd.yml | 2 +-
1694 .github/workflows/freebsd.yml      | 2 +-
1695 .github/workflows/msvc.yml         | 2 +-
1696 .github/workflows/msys2.yml        | 4 ++--
1697 .github/workflows/netbsd.yml       | 2 +-
1698 .github/workflows/openbsd.yml      | 2 +-
1699 .github/workflows/solaris.yml      | 2 +-
1700 10 files changed, 12 insertions(+), 12 deletions(-)
1701
1702commit 0ac3b93387c0191919ffa38de5f49f6b28164b35
1703Author: Lasse Collin <lasse.collin@tukaani.org>
1704Date:   2026-03-25 19:03:00 +0200
1705
1706    xz: Prevent an integer overflow in --files and --files0
1707
1708    This requires a filename (or something that pretends to be a filename)
1709    of at least 2 GiB on a 32-bit platform, and that realloc() to
1710    SIZE_MAX / 2 + 1 bytes has succeeded.
1711
1712    Fixes: https://github.com/tukaani-project/xz/pull/218
1713
1714 src/xz/main.c | 10 ++++++++++
1715 1 file changed, 10 insertions(+)
1716
1717commit 2faa141bdb47be94da2eae6df6f08858999a5911
1718Author: Lasse Collin <lasse.collin@tukaani.org>
1719Date:   2026-03-23 23:43:56 +0200
1720
1721    tuklib_integer: Fix inefficient aligned_writeXXne
1722
1723    The __builtin_assume_aligned was applied to the wrong argument which
1724    made aligned writes worse on strict-align archs.
1725
1726    Aligned writes aren't used in liblzma, so this bug didn't matter in
1727    this package; tuklib_integer.h is meant to be usable elsewhere too.
1728
1729 src/common/tuklib_integer.h | 19 +++++++++----------
1730 1 file changed, 9 insertions(+), 10 deletions(-)
1731
1732commit 685538271e3e213a18c5a925654aaa32c0b69f1e
1733Author: Lasse Collin <lasse.collin@tukaani.org>
1734Date:   2026-03-22 10:22:09 +0200
1735
1736    Build: Remove -Wpre-c2x-compat
1737
1738    It makes clang -std=gnu23 noisy about bool. It's also noisy about
1739    [[__fallthrough__]] which is only used in C23 mode.
1740
1741    Reported-by: Collin Funk <collin.funk1@gmail.com>
1742
1743 CMakeLists.txt | 1 -
1744 configure.ac   | 1 -
1745 2 files changed, 2 deletions(-)
1746
1747commit 3a78a82bd380c26bc7afda7565216c3383cedefe
1748Author: Collin Funk <collin.funk1@gmail.com>
1749Date:   2026-03-15 23:24:59 -0700
1750
1751    xz: Don't fsync directories on QNX
1752
1753    On QNX calling fsync on a directory fails with EINVAL. This causes the
1754    following test failure:
1755
1756        $ cat tests/test_suffix.sh.log
1757        /data/home/root/xz-5.8.2/src/xz/.libs/lt-xz: suffix_temp: Synchronizing the directory of the file failed: Invalid argument
1758        Failed to decompress a file with a suffix set in raw format
1759        FAIL test_suffix.sh (exit status: 1)
1760
1761    Closes: https://github.com/tukaani-project/xz/pull/216
1762
1763 src/xz/file_io.c | 3 ++-
1764 1 file changed, 2 insertions(+), 1 deletion(-)
1765
1766commit bfc5f12a84a2a9df774ed16cd6eb58fd5ab24646
1767Author: Lasse Collin <lasse.collin@tukaani.org>
1768Date:   2026-02-25 17:33:42 +0200
1769
1770    Update THANKS
1771
1772 THANKS | 1 +
1773 1 file changed, 1 insertion(+)
1774
1775commit 5553509f1a53ee160ea3bc871c716a75ba0b1ea0
1776Author: Lasse Collin <lasse.collin@tukaani.org>
1777Date:   2026-02-25 00:00:49 +0200
1778
1779    liblzma: Fix a copy-paste error in commented-out code
1780
1781    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2841960994
1782    Fixes: 96b663f67c0e ("liblzma: Refactor CRC comments.")
1783
1784 src/liblzma/check/crc32_fast.c | 2 +-
1785 1 file changed, 1 insertion(+), 1 deletion(-)
1786
1787commit 4e76651dbaf6a0159f2117482d778ff69127fdea
1788Author: Lasse Collin <lasse.collin@tukaani.org>
1789Date:   2026-02-24 18:34:19 +0200
1790
1791    Fix typos and grammar in comments and docs
1792
1793    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354505
1794    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354515
1795    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2820960196
1796
1797 po/Makevars                                      | 2 +-
1798 src/common/tuklib_gettext.h                      | 4 ++--
1799 src/common/tuklib_mbstr_wrap.h                   | 4 ++--
1800 src/common/w32_application.manifest.comments.txt | 2 +-
1801 4 files changed, 6 insertions(+), 6 deletions(-)
1802
1803commit cd8a6231d084ee9ce0a7a285f99dc5721d1f4317
1804Author: Lasse Collin <lasse.collin@tukaani.org>
1805Date:   2026-02-24 18:24:29 +0200
1806
1807    tuklib_open_stdxxx: Fix a typo in macro name
1808
1809    It doesn't matter in this package, but it's good to fix it still.
1810
1811    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313660
1812
1813 src/common/tuklib_open_stdxxx.h | 2 +-
1814 1 file changed, 1 insertion(+), 1 deletion(-)
1815
1816commit bf5d32f489fd7f33b2a629f9b78f5157301b49d8
1817Author: Lasse Collin <lasse.collin@tukaani.org>
1818Date:   2026-02-24 18:22:25 +0200
1819
1820    CMake: Fix a wrong #define
1821
1822    HAVE_SYS_PARAM_H was misspelled HAVE_PARAM_H. This might have broken
1823    the build on systems where sysctl() is used to detect the amount of RAM
1824    or the number of processor cores/threads.
1825
1826    The cpuset code for FreeBSD doesn't need the macro it so it was removed.
1827
1828    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313680
1829    Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313704
1830    Fixes: 7e3493d40eac ("Build: Add very limited experimental CMake support.")
1831
1832 cmake/tuklib_cpucores.cmake | 4 ++--
1833 cmake/tuklib_physmem.cmake  | 2 +-
1834 2 files changed, 3 insertions(+), 3 deletions(-)
1835
1836commit b0f3b64a25bcd3a6a4cebc00866dea86590fac3e
1837Author: Radek Zikmund <r.zikmund.rz@gmail.com>
1838Date:   2026-02-12 15:24:15 +0100
1839
1840    liblzma/MSVC: Add a cast to fix a warning (C4057) with __cpuid()
1841
1842    __cpuid from MSVC (and also the old Intel ICC) use int[], while
1843    __get_cpuid from <cpuid.h> in GCC and Clang use unsigned int[].
1844    Adding a cast is the simplest fix.
1845
1846    Link: https://github.com/tukaani-project/xz/pull/208
1847
1848 src/liblzma/check/crc_x86_clmul.h | 2 +-
1849 1 file changed, 1 insertion(+), 1 deletion(-)
1850
1851commit b51d67f4a95f41ae3a64973acc0e44b9f078512f
1852Author: Radek Zikmund <r.zikmund.rz@gmail.com>
1853Date:   2026-02-23 17:50:00 +0100
1854
1855    CMake: Guard script configure_file() calls with ENABLE_SCRIPTS
1856
1857    The configure_file() calls for xzdiff, xzgrep, xzmore, and xzless
1858    were running unconditionally within the if(UNIX) block, even when
1859    ENABLE_SCRIPTS was OFF. This would cause a build failure if the
1860    src/scripts/*.in files were not present. Deleting those files can
1861    simplify license compliance when the scripts aren't needed.
1862
1863    Move the foreach loop and related code inside if(ENABLE_SCRIPTS) guard
1864    so that configure_file() is only called when scripts are actually needed.
1865    This is mostly whitespace changes to adjust the indentation.
1866
1867    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
1868    Closes: https://github.com/tukaani-project/xz/pull/210
1869
1870 CMakeLists.txt | 68 ++++++++++++++++++++++++++++------------------------------
1871 1 file changed, 33 insertions(+), 35 deletions(-)
1872
1873commit 1007bf08b5fddf088b3131e692210af4b4b7fd8c
1874Author: Lasse Collin <lasse.collin@tukaani.org>
1875Date:   2026-02-04 12:28:07 +0200
1876
1877    Translations: Add Arabic man page translations
1878
1879    Rendering of bidirectional text from man pages might not work perfectly
1880    in all cases.
1881
1882 po4a/ar.po     | 3905 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1883 po4a/po4a.conf |    2 +-
1884 2 files changed, 3906 insertions(+), 1 deletion(-)
1885
1886commit 54147ad65af12d9e4f60a8ce59094a8a30ad5919
1887Author: Lasse Collin <lasse.collin@tukaani.org>
1888Date:   2026-01-25 13:51:09 +0200
1889
1890    Update THANKS
1891
1892 THANKS | 1 +
1893 1 file changed, 1 insertion(+)
1894
1895commit d6bdb446f8da47ac2af8c309de8e7c80beae850e
1896Author: Lasse Collin <lasse.collin@tukaani.org>
1897Date:   2026-01-25 13:30:46 +0200
1898
1899    liblzma: Add the "License" property to liblzma.pc
1900
1901    The "License" property is a pkgconf extension. See pc(5).
1902    pkg-config 0.29.2 (2017) ignores unrecognized properties so this
1903    commit shouldn't create compatibility issues.
1904
1905    pkgconf provides bomtool which uses the "License" property to generate
1906    a software bill of materials. In pkgconf.git there is spdxtool for the
1907    same task but with different output format.
1908
1909    The pkgconf extensions "Copyright" and "Maintainer" would also be
1910    used by bomtool and spdxtool, but I don't want to add those properties
1911    at least for now.
1912
1913    Co-authored-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
1914    Closes: https://github.com/tukaani-project/xz/pull/178
1915
1916 src/liblzma/liblzma.pc.in | 1 +
1917 1 file changed, 1 insertion(+)
1918
1919commit 687bd3e30fbe54ae906d06a93e7f2aa8b121aa7b
1920Author: Lasse Collin <lasse.collin@tukaani.org>
1921Date:   2026-01-25 12:14:46 +0200
1922
1923    Update THANKS
1924
1925 THANKS | 2 ++
1926 1 file changed, 2 insertions(+)
1927
1928commit b80b6343a4b7df6bf56dcf07715f9f536af93306
1929Author: Lasse Collin <lasse.collin@tukaani.org>
1930Date:   2026-01-25 12:14:25 +0200
1931
1932    liblzma: Don't try to use x86-64 inline asm on ARM64EC
1933
1934    Reported-by: Chase Knowlden
1935    Fixes: https://github.com/tukaani-project/xz/issues/206
1936
1937 src/liblzma/rangecoder/range_decoder.h | 1 +
1938 1 file changed, 1 insertion(+)
1939
1940commit 47fb9d84c052912ca10dc9843cb296c860b182ac
1941Author: Pino Toscano <toscano.pino@tiscali.it>
1942Date:   2025-12-30 19:59:55 +0100
1943
1944    Autotools: Enable x86 assembler on Hurd by default
1945
1946    It has been enabled in Debian GNU/Hurd for 15+ years with no issues.
1947    Hence, enable it by default also in the upstream sources.
1948
1949    The CMake build already had it enabled.
1950
1951    Link: https://salsa.debian.org/debian/xz-utils/-/blob/debian/5.8.2-2/debian/rules?ref_type=tags#L98
1952    Closes: https://github.com/tukaani-project/xz/pull/204
1953
1954 configure.ac | 2 +-
1955 1 file changed, 1 insertion(+), 1 deletion(-)
1956
1957commit 9f4c5a0d4817c9c7011cdfd00cfbe0ddda66a455
1958Author: Lasse Collin <lasse.collin@tukaani.org>
1959Date:   2025-12-17 14:49:12 +0200
1960
1961    doc/SHA256SUMS: Add 5.8.2
1962
1963 doc/SHA256SUMS | 6 ++++++
1964 1 file changed, 6 insertions(+)
1965
1966commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86
1967Author: Lasse Collin <lasse.collin@tukaani.org>
1968Date:   2025-12-17 13:36:42 +0200
1969
1970    Bump version and soname for 5.8.2
1971
1972 src/liblzma/Makefile.am        | 2 +-
1973 src/liblzma/api/lzma/version.h | 2 +-
1974 2 files changed, 2 insertions(+), 2 deletions(-)
1975
1976commit fb14afd5c9bf14d8c67ee11e4139885072071ddd
1977Author: Lasse Collin <lasse.collin@tukaani.org>
1978Date:   2025-12-17 13:36:35 +0200
1979
1980    Add NEWS for 5.8.2
1981
1982 NEWS | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1983 1 file changed, 72 insertions(+)
1984
1985commit 590f4713b29f0236ab944487f40069355a515dbc
1986Author: Lasse Collin <lasse.collin@tukaani.org>
1987Date:   2025-12-16 11:30:35 +0200
1988
1989    CMake: Bump maximum policy version to 4.2
1990
1991    CMP0186 is curious but we aren't affected.
1992
1993 CMakeLists.txt | 2 +-
1994 1 file changed, 1 insertion(+), 1 deletion(-)
1995
1996commit 26d22ed16b6e38ce8ed45cb29076f454cd488762
1997Author: Lasse Collin <lasse.collin@tukaani.org>
1998Date:   2025-12-10 19:20:05 +0200
1999
2000    tuklib_integer/CMake: Log a message about unaligned access check
2001
2002 cmake/tuklib_integer.cmake | 8 ++++++++
2003 1 file changed, 8 insertions(+)
2004
2005commit f7381cf927576164c17be4e4c1edeec3cdaca7cf
2006Author: Lasse Collin <lasse.collin@tukaani.org>
2007Date:   2025-12-10 19:11:27 +0200
2008
2009    tuklib_integer/CMake: Don't run unaligned access checks unnecessarily
2010
2011    If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set,
2012    the autodetection result isn't needed because the option() command
2013    does nothing when the cache variable is already set.
2014
2015    This is largely white space change to indent the if...endif block.
2016
2017 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++----------------------
2018 1 file changed, 117 insertions(+), 109 deletions(-)
2019
2020commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb
2021Author: Lasse Collin <lasse.collin@tukaani.org>
2022Date:   2025-12-10 16:49:55 +0200
2023
2024    tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available
2025
2026    CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many
2027    platforms. The list of possible values are documented. Use this
2028    variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR
2029    is still used, thus the regexes have to include values like ^amd64 still.
2030
2031    With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID
2032    is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might
2033    not match the target architecture.
2034
2035 cmake/tuklib_integer.cmake | 13 ++++++++++++-
2036 1 file changed, 12 insertions(+), 1 deletion(-)
2037
2038commit c690101dddd784b75224a8935f56cd163d3e90a3
2039Author: Lasse Collin <lasse.collin@tukaani.org>
2040Date:   2025-12-10 16:49:55 +0200
2041
2042    tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64
2043
2044    On ARM64, support for fast unaligned memory access was autodetected by
2045    checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC
2046    versions up to 15.2.0 define the macro even when -mstrict-align has
2047    been specified. Thus, autodetection with GCC doesn't work correctly,
2048    and binaries built using -mstrict-align can be much slower than they
2049    need to be, unless the user also passes --disable-unaligned-access
2050    to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake.
2051
2052    See the GCC bug:
2053
2054        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
2055
2056    Workaround the issue by using heuristics with GCC on ARM64.
2057
2058    With Clang, the detection using __ARM_FEATURE_UNALIGNED works.
2059    It also works with GCC on 32-bit ARM.
2060
2061    Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.")
2062
2063 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++-------
2064 m4/tuklib_integer.m4       | 78 +++++++++++++++++++++++++++++++++++-----------
2065 2 files changed, 110 insertions(+), 31 deletions(-)
2066
2067commit d9b318f5b8a3524e90ac17471e79db7de012caf5
2068Author: Lasse Collin <lasse.collin@tukaani.org>
2069Date:   2025-12-09 18:02:23 +0200
2070
2071    CI: Update MSYS2
2072
2073 .github/workflows/msys2.yml | 4 ++--
2074 1 file changed, 2 insertions(+), 2 deletions(-)
2075
2076commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5
2077Author: Lasse Collin <lasse.collin@tukaani.org>
2078Date:   2025-12-09 18:02:05 +0200
2079
2080    CI: Update DragonFly BSD
2081
2082 .github/workflows/dragonflybsd.yml | 2 +-
2083 1 file changed, 1 insertion(+), 1 deletion(-)
2084
2085commit a7b749389c64dfbee1c29d88e61e71186b472784
2086Author: Lasse Collin <lasse.collin@tukaani.org>
2087Date:   2025-12-09 17:58:52 +0200
2088
2089    CI: Update Solaris
2090
2091 .github/workflows/solaris.yml | 2 +-
2092 1 file changed, 1 insertion(+), 1 deletion(-)
2093
2094commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d
2095Author: Lasse Collin <lasse.collin@tukaani.org>
2096Date:   2025-12-09 17:56:58 +0200
2097
2098    CI: Update NetBSD
2099
2100 .github/workflows/netbsd.yml | 2 +-
2101 1 file changed, 1 insertion(+), 1 deletion(-)
2102
2103commit fbc1046248cfe3c730437ba7d98dde89b0eced3e
2104Author: Lasse Collin <lasse.collin@tukaani.org>
2105Date:   2025-12-09 17:54:54 +0200
2106
2107    CI: Update OpenBSD
2108
2109 .github/workflows/openbsd.yml | 2 +-
2110 1 file changed, 1 insertion(+), 1 deletion(-)
2111
2112commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476
2113Author: Lasse Collin <lasse.collin@tukaani.org>
2114Date:   2025-12-09 17:52:01 +0200
2115
2116    CI: Update FreeBSD
2117
2118 .github/workflows/freebsd.yml | 4 +++-
2119 1 file changed, 3 insertions(+), 1 deletion(-)
2120
2121commit f8424b0416266c393c84a315e3bdedbc19efa0a8
2122Author: Lasse Collin <lasse.collin@tukaani.org>
2123Date:   2025-12-09 17:40:05 +0200
2124
2125    Update THANKS
2126
2127 THANKS | 1 +
2128 1 file changed, 1 insertion(+)
2129
2130commit c4340692d4490ff80e897d4840fadc033c46d81a
2131Author: Lasse Collin <lasse.collin@tukaani.org>
2132Date:   2025-12-09 13:01:36 +0200
2133
2134    Translations: Add src/xz/sandbox.c to POTFILES.in
2135
2136    There are no strings to translate in that file now, but it's good to
2137    list it anyway in case translatable strings are added in the future.
2138
2139    Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.")
2140
2141 po/POTFILES.in | 1 +
2142 1 file changed, 1 insertion(+)
2143
2144commit b8af36920b0857c0329f61414df5989093386db1
2145Author: Lasse Collin <lasse.collin@tukaani.org>
2146Date:   2025-12-09 12:55:45 +0200
2147
2148    xz: Never translate "Failed to enable the sandbox"
2149
2150    This was already the case in practice because I had forgotten to list
2151    src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never
2152    translate this particular error message. It should almost never occur
2153    and if it does, an untranslated message is should make it easier to
2154    find bug reports about it.
2155
2156 src/xz/sandbox.c | 24 +++++++++++++++---------
2157 1 file changed, 15 insertions(+), 9 deletions(-)
2158
2159commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c
2160Author: Lasse Collin <lasse.collin@tukaani.org>
2161Date:   2025-12-09 12:27:15 +0200
2162
2163    Translations: Update the Swedish man page translations
2164
2165 po4a/sv.po | 15 +++++----------
2166 1 file changed, 5 insertions(+), 10 deletions(-)
2167
2168commit 88531e5463d9f028387a11b78d53c9c269e6a3a0
2169Author: Lasse Collin <lasse.collin@tukaani.org>
2170Date:   2025-12-09 12:26:24 +0200
2171
2172    Translations: Update the Romanian man page translations
2173
2174 po4a/ro.po | 18 +++++++-----------
2175 1 file changed, 7 insertions(+), 11 deletions(-)
2176
2177commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa
2178Author: Lasse Collin <lasse.collin@tukaani.org>
2179Date:   2025-12-09 12:13:36 +0200
2180
2181    Update THANKS
2182
2183 THANKS | 1 +
2184 1 file changed, 1 insertion(+)
2185
2186commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5
2187Author: Lasse Collin <lasse.collin@tukaani.org>
2188Date:   2025-12-09 12:13:36 +0200
2189
2190    CMake: Autodetect unaligned access support on LoongArch
2191
2192    This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more
2193    CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in
2194    a more defined manner, but 4.1 is too new to require for now.
2195
2196    Thanks-to: Li Chenggang <lichenggang@deepin.org>
2197    Closes: https://github.com/tukaani-project/xz/pull/186
2198
2199 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++
2200 1 file changed, 81 insertions(+)
2201
2202commit 7971566247914ec1854b125ff99c2a617f5c1e3a
2203Author: Lasse Collin <lasse.collin@tukaani.org>
2204Date:   2025-12-09 12:13:36 +0200
2205
2206    Autotools: Autodetect unaligned access support on LoongArch
2207
2208    According to [1] sections 7.4, 8.1, and 8.2, desktop and server
2209    processors support fast unaligned access, but embedded systems likely
2210    don't.
2211
2212    It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when
2213    -mstrict-align is in use because it will result in slower binaries
2214    even if running on a processor that supports fast unaligned access.
2215    It's because compilers will translate multibyte memcpy() to multiple
2216    byte-by-byte instructions instead of wider loads and stores. The
2217    compression times from [2] show this well:
2218
2219        Unaligned access    CFLAGS                     Compression time
2220            enabled         -O2 -mno-strict-align          66.1 s
2221            disabled        -O2 -mno-strict-align          79.5 s
2222            disabled        -O2 -mstrict-align             79.9 s
2223            enabled         -O2 -mstrict-align            129.1 s
2224
2225    There currently (GCC 15.2) is no preprocessor macro on LoongArch
2226    to detect if -mstrict-align or -mno-strict-align is in effect (the
2227    default is -mno-strict-align). Use heuristics to detect which of the
2228    flags is in effect.
2229
2230    [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
2231    [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304
2232
2233    Thanks-to: Li Chenggang <lichenggang@deepin.org>
2234    Thanks-to: Xi Ruoyao
2235    See: https://github.com/tukaani-project/xz/pull/186
2236
2237 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2238 1 file changed, 68 insertions(+)
2239
2240commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd
2241Author: Lasse Collin <lasse.collin@tukaani.org>
2242Date:   2025-11-26 13:50:57 +0200
2243
2244    xz: Silence clang -Wunreachable-code-break
2245
2246    Fixes: a165d7df1964 ("xz: Add a new --filters-help option.")
2247
2248 src/xz/args.c | 1 -
2249 1 file changed, 1 deletion(-)
2250
2251commit 723cee44d076281bce9c3d7bd2c17b0680bd8884
2252Author: Lasse Collin <lasse.collin@tukaani.org>
2253Date:   2025-11-26 13:50:57 +0200
2254
2255    liblzma: Remove unwanted semicolons
2256
2257    These didn't affect control flow.
2258
2259 src/liblzma/common/vli_decoder.c       | 2 +-
2260 src/liblzma/lzma/lzma_common.h         | 4 ++--
2261 src/liblzma/rangecoder/range_decoder.h | 6 +++---
2262 3 files changed, 6 insertions(+), 6 deletions(-)
2263
2264commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735
2265Author: Lasse Collin <lasse.collin@tukaani.org>
2266Date:   2025-11-26 13:50:57 +0200
2267
2268    Tests: Remove an unwanted semicolon from a macro definition
2269
2270    It didn't affect control flow.
2271
2272    Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.")
2273
2274 tests/test_block_header.c | 2 +-
2275 1 file changed, 1 insertion(+), 1 deletion(-)
2276
2277commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549
2278Author: Lasse Collin <lasse.collin@tukaani.org>
2279Date:   2025-11-26 13:50:57 +0200
2280
2281    Build: Use -Wextra-semi-stmt when supported
2282
2283 CMakeLists.txt | 1 +
2284 configure.ac   | 1 +
2285 2 files changed, 2 insertions(+)
2286
2287commit 91170c8cab72b94a697f5228f4df13483ef5be91
2288Author: Lasse Collin <lasse.collin@tukaani.org>
2289Date:   2025-11-26 13:50:57 +0200
2290
2291    CI: Add clang-cl
2292
2293    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136
2294
2295 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++
2296 1 file changed, 46 insertions(+)
2297
2298commit a3c6cb09113de978b971cbdacf5c4890d4237c28
2299Author: Lasse Collin <lasse.collin@tukaani.org>
2300Date:   2025-11-26 13:50:57 +0200
2301
2302    xz/Windows: Add a missing #include to fix the build with clang-cl
2303
2304    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734
2305    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136
2306
2307 src/xz/util.c | 4 ++++
2308 1 file changed, 4 insertions(+)
2309
2310commit c410ccc62511ec95b20639defb10650ef9b75e8c
2311Author: Lasse Collin <lasse.collin@tukaani.org>
2312Date:   2025-11-25 21:05:37 +0200
2313
2314    xz: Check return value of sigaction() before calling raise()
2315
2316    Fixes: Coverity CID 456022
2317
2318 src/xz/signals.c | 10 ++++++++--
2319 1 file changed, 8 insertions(+), 2 deletions(-)
2320
2321commit 6cc2da0a4b180b71cb6e781c897052def103ad3e
2322Author: Lasse Collin <lasse.collin@tukaani.org>
2323Date:   2025-11-02 12:57:00 +0200
2324
2325    liblzma: Refactor a loop in lzma_filters_copy()
2326
2327    Arguably it's nicer if i doesn't wrap around when the loop terminates.
2328
2329    Fixes: Coverity CID 464589
2330    Fixes: 6d118a0b9def ("Add lzma_filters_copy().")
2331
2332 src/liblzma/common/filter_common.c | 4 ++--
2333 1 file changed, 2 insertions(+), 2 deletions(-)
2334
2335commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf
2336Author: Lasse Collin <lasse.collin@tukaani.org>
2337Date:   2025-11-02 12:17:50 +0200
2338
2339    liblzma: Silence two Coverity warnings
2340
2341    lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't
2342    valid. alone_decoder.c and lzip_decoder.c didn't check the return
2343    value because in both it is known that lc/lp/pb are valid. Make them
2344    call the _nocheck() variant instead which skips the validation (it
2345    already existed for LZMA2's internal use).
2346
2347    Fixes: Coverity CID 464658
2348    Fixes: Coverity CID 897069
2349
2350 src/liblzma/common/alone_decoder.c |  6 ++++--
2351 src/liblzma/common/lzip_decoder.c  |  3 ++-
2352 src/liblzma/lzma/lzma_decoder.h    | 11 ++++++-----
2353 3 files changed, 12 insertions(+), 8 deletions(-)
2354
2355commit be365b701024b9acbfef4035c6433a0fbb4be823
2356Author: Lasse Collin <lasse.collin@tukaani.org>
2357Date:   2025-11-02 12:17:50 +0200
2358
2359    liblzma: Fix a harmless read of shared variable without mutex
2360
2361    The partial_update_mode enumeration had three states, _DISABLED,
2362    _START, and _ENABLED. Main thread changed it from _DISABLED to _START
2363    while holding a mutex. Once set to _START, worker thread changed it
2364    to _ENABLED without a mutex. Later main thread read it without a mutex,
2365    so it could see either _START or _ENABLED. However, it made no
2366    difference because the main thread checked for != _DISABLED, so
2367    it didn't matter if it saw _START or _ENABLED.
2368
2369    Nevertheless, such things must not be done. It's clear it was a mistake
2370    because there were two comments that directly contradicted each
2371    other about how the variable was accessed.
2372
2373    Split the enumeration into two booleans:
2374
2375      - partial_update_enabled: A worker thread locks the mutex to read
2376        this variable and the main thread locks the mutex to change the
2377        value. Because only the main thread modifies the variable, the
2378        main thread can read the value without locking the mutex.
2379        This variable replaces the _DISABLED -> _START transition.
2380
2381      - partial_update_started is for worker thread's internal use and thus
2382        needs no mutex. This replaces the _START -> _ENABLED transition.
2383
2384    Fixes: Coverity CID 456025
2385    Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.")
2386
2387 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++-------------------
2388 1 file changed, 34 insertions(+), 45 deletions(-)
2389
2390commit 2686554da0103580a472919220931c397b1d1f7a
2391Author: Lasse Collin <lasse.collin@tukaani.org>
2392Date:   2025-11-02 12:17:50 +0200
2393
2394    CI: Add Coverity Scan
2395
2396    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
2397    Fixes: https://github.com/tukaani-project/xz/issues/198
2398
2399 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++
2400 1 file changed, 38 insertions(+)
2401
2402commit 1b30734c9c08a3f628574d172f1a6034277a2163
2403Author: Lasse Collin <lasse.collin@tukaani.org>
2404Date:   2025-11-25 13:55:35 +0200
2405
2406    Change the sorting order in THANKS
2407
2408    In short, sort the names with this command (-k1,1 isn't needed because
2409    the lines with names start with "  -"):
2410
2411        LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5
2412
2413    When THANKS was created, I wrote the names as "First Last" and attempted
2414    to keep them sorted by last name / surname / family name. This works
2415    with many names in THANKS, but it becomes complicated with names that
2416    don't fit that pattern. For example, names that are written as
2417    "Last First" can be manually sorted by family name, but only if one
2418    knows which part of the name is the family name.[*] And of course,
2419    the concept of first/last name doesn't apply to all names.
2420
2421    [*] xz had a co-maintainer who could help me with such names,
2422        but fortunately he isn't working on the project anymore.
2423
2424    Adding the names in chronological order could have worked too, although
2425    if something is contributed by multiple people, one would still have to
2426    decide how to sort the names within the batch. Another downside would
2427    be that if THANKS is updated in more than one work-in-progress branch,
2428    merge conflicts would occur more often.
2429
2430    Don't attempt to sort by last name. Let's be happy that people tend to
2431    provide names that can be expressed in a reasonable number of printable
2432    Unicode characters. In practice, people have been even nicer: if the
2433    native language doesn't use a Latin script alphabet, people often provide
2434    a transliterated name (only or in addition to the original spelling),
2435    which is very much appreciated by those who don't know the native script.
2436
2437    Treat the names as opaque strings or space-separated strings for sorting
2438    purposes. This means that most names will now be sorted by first name.
2439    There still are many choices how to sort:
2440
2441    (1) LC_ALL=en_US.UTF-8 sort
2442
2443        The project is in English, so this may sound like a logical choice.
2444        However, spaces have a lower weight than letters, which results in
2445        this order:
2446
2447            - A Ba
2448            - Ab C
2449            - A Bc
2450            - A Bd
2451
2452    (2) LC_ALL=en_US.UTF-8 sort -k2,2
2453
2454        This first sorts by the first word and then by the rest of the
2455        string. It's -k2,2 instead of -k1,1 to skip the leading dash.
2456
2457            - A Ba
2458            - A Bc
2459            - A Bd
2460            - Ab C
2461
2462        I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too.
2463        With current THANKS it makes no difference but it might some day.
2464
2465        NOTE: The ordering in en_US.UTF-8 can differ between libc versions
2466        and operating systems. Luckily it's not a big deal in THANKS.
2467
2468    (3) LC_ALL=en_US.UTF-8 sort -f -k2,2
2469
2470        Passing -f (--ignore-case) to sort affects sorting of single-byte
2471        characters but not multibyte characters (GNU coreutils 9.9):
2472
2473            No -f       With -f     LC_ALL=C
2474            Aa          A.A         A.A
2475            A.A         Aa          Aa
2476            Ää          Ää          Ä.Ä
2477            Ä.Ä         Ä.Ä         Ää
2478
2479        In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1".
2480        There is also a basic check that the en_US.UTF-8 locale is
2481        behaving as expected.
2482
2483    (4) LC_ALL=C sort
2484
2485        This sorts by byte order which in UTF-8 is the same as Unicode
2486        code point order. With the strings in (1) and (2), this produces
2487        the same result as in (2). The difference in (3) can be seen above.
2488
2489        The results differ from en_US.UTF-8 when a name component starts
2490        with a lower case ASCII letter (like "von" or "de"). Worse, any
2491        non-ASCII characters sort after ASCII chars. These properties might
2492        look weird in English language text, although it's good to remember
2493        that en_US.UTF-8 sorting can appear weird too if one's native
2494        language isn't English.
2495
2496    The choice between (2) and (4) was difficult but I went with (2).
2497
2498    ;-)
2499
2500 THANKS | 414 ++++++++++++++++++++++++++++++++---------------------------------
2501 1 file changed, 207 insertions(+), 207 deletions(-)
2502
2503commit 8bb516887c1912106a72db96216cab46954e6190
2504Author: Lasse Collin <lasse.collin@tukaani.org>
2505Date:   2025-11-23 20:39:28 +0200
2506
2507    Landlock: Add missing #ifdefs
2508
2509    The build was broken on distros that have an old <sys/landlock.h>.
2510
2511    Fixes: 2b2652e914b1 ("Landlock: Workaround a bug in RHEL 9 kernel")
2512
2513 src/common/my_landlock.h | 6 ++++++
2514 1 file changed, 6 insertions(+)
2515
2516commit 23c95c6a7c374962103dbd35cb79fdd5a6fe8b52
2517Author: Lasse Collin <lasse.collin@tukaani.org>
2518Date:   2025-11-23 20:13:50 +0200
2519
2520    Update THANKS
2521
2522 THANKS | 2 ++
2523 1 file changed, 2 insertions(+)
2524
2525commit 2b2652e914b1c38d4c009a8dcac11dfee9c7e008
2526Author: Lasse Collin <lasse.collin@tukaani.org>
2527Date:   2025-11-23 20:13:49 +0200
2528
2529    Landlock: Workaround a bug in RHEL 9 kernel
2530
2531    If one runs xz 5.8.0 or 5.8.1 from some other distribution in a container
2532    on RHEL 9, xz will fail with the message "Failed to enable the sandbox".
2533
2534    RHEL 9 kernel since 5.14.0-603.el9 (2025-07-30) claims to support
2535    Landlock ABI version 6, but it lacks support for LANDLOCK_SCOPE_SIGNAL.
2536    The issue is still present in 5.14.0-643.el9 (2025-11-22). Red Hat is
2537    aware of the issue, but I don't know when it will be fixed.
2538
2539    The sandbox is meant to be transparent to users, thus there isn't and
2540    won't be a command line option to disable it. Instead, add a workaround
2541    to keep xz working on the buggy RHEL 9 kernels.
2542
2543    Reported-by: Richard W.M. Jones
2544    Thanks-to: Pavel Raiskup
2545    Tested-by: Orgad Shaneh
2546    Tested-by: Richard W.M. Jones
2547    Fixes: https://github.com/tukaani-project/xz/issues/199
2548    Link: https://issues.redhat.com/browse/RHEL-125143
2549    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2407105
2550    Link: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/65BDSY56R5ZJRTUC4B6CIVCVLY4LG4ME/
2551
2552 src/common/my_landlock.h | 27 ++++++++++++++++++++++++++-
2553 1 file changed, 26 insertions(+), 1 deletion(-)
2554
2555commit ee75c76958dd891906745125590563ab64e85995
2556Author: Lasse Collin <lasse.collin@tukaani.org>
2557Date:   2025-11-23 20:13:37 +0200
2558
2559    Landlock: Cache the ABI version
2560
2561    In xz it can avoid up to two syscalls that query the ABI version.
2562
2563 src/common/my_landlock.h | 14 +++++++++++++-
2564 1 file changed, 13 insertions(+), 1 deletion(-)
2565
2566commit f57b1716cd0853474980c90a892204dee9bdea1a
2567Author: Lasse Collin <lasse.collin@tukaani.org>
2568Date:   2025-11-03 14:52:45 +0200
2569
2570    Update THANKS
2571
2572 THANKS | 1 +
2573 1 file changed, 1 insertion(+)
2574
2575commit 211cde09236165dbd379644753337be1de64b151
2576Author: Lasse Collin <lasse.collin@tukaani.org>
2577Date:   2025-11-03 12:41:31 +0200
2578
2579    mythread.h: Fix the build on Emscripten when threading is disabled
2580
2581    To make a non-threaded liblzma-only build work with WASI SDK, <signal.h>
2582    and mythread_sigmask() were omitted from mythread.h in the commit
2583    81db3b889830. This broke non-threaded full build with Emscripten because
2584    src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine).
2585
2586    If __wasm__ is defined, omit <signal.h> and mythread_sigmask() in
2587    non-threaded builds only when __EMSCRIPTEN__ isn't defined.
2588
2589    Reported-by: Marcus Tillmanns
2590    Thanks-to: ChanTsune
2591    Fixes: https://github.com/tukaani-project/xz/issues/161
2592    Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.")
2593
2594 src/common/mythread.h | 3 ++-
2595 1 file changed, 2 insertions(+), 1 deletion(-)
2596
2597commit cbf50a99e3f0c2735fd573e166baf37df063b37b
2598Author: Lasse Collin <lasse.collin@tukaani.org>
2599Date:   2025-11-03 11:56:32 +0200
2600
2601    Translations: Update the Serbian man page translations
2602
2603    The earlier bug fixes are now included in the Translation Project.
2604
2605 po4a/sr.po | 4 ++--
2606 1 file changed, 2 insertions(+), 2 deletions(-)
2607
2608commit 68d1591187512d8872615c8a904d43073440d93f
2609Author: Lasse Collin <lasse.collin@tukaani.org>
2610Date:   2025-11-02 19:40:55 +0200
2611
2612    xz: Silence a compiler warning when signals_block_count is unused
2613
2614    Move the static variable signals_block_count to the #ifndef block
2615    that already has the functions that need the variable.
2616
2617 src/xz/signals.c | 7 ++++---
2618 1 file changed, 4 insertions(+), 3 deletions(-)
2619
2620commit beca015891fbd22657663ec23809184dda0677cd
2621Author: Lasse Collin <lasse.collin@tukaani.org>
2622Date:   2025-11-02 17:45:20 +0200
2623
2624    xz: Silence a warning from Clang on glibc systems
2625
2626    Fixes: e8838b2f5922 ("xz: Look at resource limits when determining the default memlimit")
2627
2628 src/xz/hardware.c | 13 +++++++++++++
2629 1 file changed, 13 insertions(+)
2630
2631commit 3e394278ed537575b5db43c09989c6ca99f762de
2632Author: Lasse Collin <lasse.collin@tukaani.org>
2633Date:   2025-11-02 14:37:52 +0200
2634
2635    Translations: Update the Serbian man page translations
2636
2637    Preserve the bug fixes made in 71ad5e82888f and 4f52e7387012 because
2638    upstream hasn't included them.
2639
2640 po4a/sr.po | 17 ++++++-----------
2641 1 file changed, 6 insertions(+), 11 deletions(-)
2642
2643commit ace28e35732fc43f58ea1aac146fdb73084f2548
2644Author: Lasse Collin <lasse.collin@tukaani.org>
2645Date:   2025-11-02 14:27:10 +0200
2646
2647    Translations: Update the Korean man page translations
2648
2649 po4a/ko.po | 17 ++++++-----------
2650 1 file changed, 6 insertions(+), 11 deletions(-)
2651
2652commit ffd14a099f0d8c92d4f74018d3a52bd2327df4db
2653Author: Lasse Collin <lasse.collin@tukaani.org>
2654Date:   2025-11-02 14:24:43 +0200
2655
2656    Translations: Update the Italian man page translations
2657
2658 po4a/it.po | 15 +++++----------
2659 1 file changed, 5 insertions(+), 10 deletions(-)
2660
2661commit 6f3152874ee375b581aa858fccab7865dcbf6403
2662Author: Lasse Collin <lasse.collin@tukaani.org>
2663Date:   2025-11-02 14:12:23 +0200
2664
2665    Translations: Update the Ukrainian man page translations
2666
2667 po4a/uk.po | 15 +++++----------
2668 1 file changed, 5 insertions(+), 10 deletions(-)
2669
2670commit ef67e051d71938a23713d9782a3f0c470ac51b1e
2671Author: Lasse Collin <lasse.collin@tukaani.org>
2672Date:   2025-09-28 18:32:05 +0300
2673
2674    liblzma: Fix build on old Linux/glibc on ARM64
2675
2676    getauxval() can be available even if HWCAP_CRC32 isn't #defined, so
2677    both have to be checked. HWCAP_CRC32 was added in glibc 2.24 (2016).
2678
2679    Fixes: https://github.com/tukaani-project/xz/issues/190
2680
2681 CMakeLists.txt                  | 7 +++++++
2682 configure.ac                    | 6 +++++-
2683 src/liblzma/check/crc32_arm64.h | 5 +++--
2684 src/liblzma/check/crc_common.h  | 3 ++-
2685 4 files changed, 17 insertions(+), 4 deletions(-)
2686
2687commit 71c2ede383f6dc6661b8a9d844f4bcf81c563643
2688Author: Lasse Collin <lasse.collin@tukaani.org>
2689Date:   2025-10-31 14:36:26 +0200
2690
2691    CI: Update Solaris
2692
2693 .github/workflows/solaris.yml | 2 +-
2694 1 file changed, 1 insertion(+), 1 deletion(-)
2695
2696commit 02da8de0edddd31a3e9818c2200b97c446d6eb5b
2697Author: Lasse Collin <lasse.collin@tukaani.org>
2698Date:   2025-10-31 14:32:47 +0200
2699
2700    CI: Update DragonFly BSD
2701
2702 .github/workflows/dragonflybsd.yml | 8 ++++----
2703 1 file changed, 4 insertions(+), 4 deletions(-)
2704
2705commit 75b18d325f6a993eac2d5f44c7aad941aa20df94
2706Author: Lasse Collin <lasse.collin@tukaani.org>
2707Date:   2025-10-31 14:30:24 +0200
2708
2709    CI: Update NetBSD
2710
2711 .github/workflows/netbsd.yml | 2 +-
2712 1 file changed, 1 insertion(+), 1 deletion(-)
2713
2714commit 0102072915f38e747ee55aa9c52351dfe81b8c14
2715Author: Lasse Collin <lasse.collin@tukaani.org>
2716Date:   2025-10-31 14:21:37 +0200
2717
2718    CI: Update FreeBSD
2719
2720 .github/workflows/freebsd.yml | 2 +-
2721 1 file changed, 1 insertion(+), 1 deletion(-)
2722
2723commit 83419783a67a6097c7d5ed5663734c04eb8c8b55
2724Author: Lasse Collin <lasse.collin@tukaani.org>
2725Date:   2025-10-31 14:17:30 +0200
2726
2727    CI: Update OpenBSD
2728
2729 .github/workflows/openbsd.yml | 6 +++---
2730 1 file changed, 3 insertions(+), 3 deletions(-)
2731
2732commit 3b5f5af9bcd9b5752608a099fcfab331c0c613b3
2733Author: Lasse Collin <lasse.collin@tukaani.org>
2734Date:   2025-10-26 12:07:34 +0200
2735
2736    Update THANKS
2737
2738 THANKS | 2 ++
2739 1 file changed, 2 insertions(+)
2740
2741commit e8838b2f59221f46bf34c79431d286e8ac34fb8b
2742Author: Kirill A. Korinsky <kirill@korins.ky>
2743Date:   2025-10-26 12:07:34 +0200
2744
2745    xz: Look at resource limits when determining the default memlimit
2746
2747    When no memory usage limits have been set by the user, the default
2748    for multithreaded mode has been 1/4 of total RAM. If this limit is
2749    too high and memory allocation fails, liblzma (and xz) fail. Perhaps
2750    liblzma should handle it better by reducing the number of threads
2751    and continuing with the amount of memory it can allocate, but currently
2752    that isn't the case.
2753
2754    If resource limits were set to about 1/4 of RAM or lower, then xz
2755    could fail for the above reason. This commit makes xz look at
2756    RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM when they are available,
2757    and set the limit 64 MiB below the lowest of those limits. This is
2758    more or less a hack just like the 1/4-of-RAM method is, but this is
2759    simple and quick to implement.
2760
2761    On Linux, there are other limits like cgroup v2 memory.max which
2762    can still make xz fail. The same is likely possible with FreeBSD's
2763    rctl(8).
2764
2765    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
2766    Thanks-to: Fangrui Song
2767    Fixes: https://github.com/tukaani-project/xz/issues/195
2768    Closes: https://github.com/tukaani-project/xz/pull/196
2769
2770 CMakeLists.txt    |  3 +++
2771 configure.ac      |  4 ++--
2772 src/xz/hardware.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2773 3 files changed, 64 insertions(+), 2 deletions(-)
2774
2775commit 8d26b72915e0d373f898b55935505857c30dbdb3
2776Author: Lasse Collin <lasse.collin@tukaani.org>
2777Date:   2025-10-01 12:46:26 +0300
2778
2779    CI: Remove windows-2019 (which had VS 2019)
2780
2781    GitHub has removed the runner image.
2782
2783    A breakage with CLMUL CRC code occurred with VS 2019 but not 2022,
2784    see b5a5d9e3f702. MS supports VS 2019 for a few more years, so it's
2785    unfortunate that it can no longer be tested on GitHub.
2786
2787 .github/workflows/msvc.yml | 2 +-
2788 1 file changed, 1 insertion(+), 1 deletion(-)
2789
2790commit 32412bd2a42fda639765c3046e91f964e286b6d9
2791Author: Lasse Collin <lasse.collin@tukaani.org>
2792Date:   2025-09-29 19:34:58 +0300
2793
2794    Update THANKS
2795
2796 THANKS | 3 +++
2797 1 file changed, 3 insertions(+)
2798
2799commit eaa150df9803c982adf28d4533c7a4264ea17757
2800Author: Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com>
2801Date:   2025-07-17 23:27:06 -0500
2802
2803    xz: Don't fsync() directories on AIX
2804
2805    It fails with EBADF.
2806
2807    Fixes: https://github.com/tukaani-project/xz/issues/188
2808    Closes: https://github.com/tukaani-project/xz/pull/189
2809
2810 src/xz/file_io.c | 3 ++-
2811 1 file changed, 2 insertions(+), 1 deletion(-)
2812
2813commit 61b114e92f53b7977aad69f8a7130fc25d8a80e5
2814Author: Lasse Collin <lasse.collin@tukaani.org>
2815Date:   2025-09-29 18:37:19 +0300
2816
2817    liblzma: Document that lzma_allocator.free(opaque, NULL) is possible
2818
2819    It feels better to fix the docs than change the code because this
2820    way newly-written applications will be forced to be compatible with
2821    the lzma_allocator behavior of old liblzma versions. It can matter
2822    if someone builds the application against an older liblzma version.
2823
2824    Fixes: https://github.com/tukaani-project/xz/issues/183
2825
2826 src/liblzma/api/lzma/base.h | 4 +++-
2827 1 file changed, 3 insertions(+), 1 deletion(-)
2828
2829commit 6d287a3ae90e1b990294f3d5264003d81e853c5e
2830Author: Simon Josefsson <simon@josefsson.org>
2831Date:   2025-08-26 09:41:02 +0200
2832
2833    Update GPLv2 and LGPLv2.1 copies from gnu.org
2834
2835    Closes: https://github.com/tukaani-project/xz/pull/194
2836
2837 COPYING.GPLv2    | 9 ++++-----
2838 COPYING.LGPLv2.1 | 9 ++++-----
2839 2 files changed, 8 insertions(+), 10 deletions(-)
2840
2841commit 41a421dbadf13af2a59aaafa43836026b83340a7
2842Author: Lasse Collin <lasse.collin@tukaani.org>
2843Date:   2025-05-24 12:07:13 +0300
2844
2845    tests/test_suffix.sh: Avoid variables in printf format string
2846
2847 tests/test_suffix.sh | 4 ++--
2848 1 file changed, 2 insertions(+), 2 deletions(-)
2849
2850commit a2c6aa8764a2e5248572d461305bd05c5950bf94
2851Author: Lasse Collin <lasse.collin@tukaani.org>
2852Date:   2025-05-24 12:02:09 +0300
2853
2854    build-aux/manconv.sh: Add quotes
2855
2856 build-aux/manconv.sh | 8 ++++----
2857 1 file changed, 4 insertions(+), 4 deletions(-)
2858
2859commit 8e4153253eea2b5a9466467b2ce0249e56277c9a
2860Author: Lasse Collin <lasse.collin@tukaani.org>
2861Date:   2025-05-24 12:01:35 +0300
2862
2863    windows/build.bash: Add quotes
2864
2865    In this case they aren't needed but it's better style.
2866
2867 windows/build.bash | 4 ++--
2868 1 file changed, 2 insertions(+), 2 deletions(-)
2869
2870commit 37a57a926dd1ae6cde1544d8487e27982d2db4a4
2871Author: Lasse Collin <lasse.collin@tukaani.org>
2872Date:   2025-05-24 12:00:13 +0300
2873
2874    po4a/update-po: Ensure that a glob won't expand to a command line option
2875
2876 po4a/update-po | 2 +-
2877 1 file changed, 1 insertion(+), 1 deletion(-)
2878
2879commit e3ba73034a3f8e414882af39d62f479e9717e061
2880Author: Lasse Collin <lasse.collin@tukaani.org>
2881Date:   2025-05-24 11:57:23 +0300
2882
2883    liblzma: validate_map.sh: Catch some unlikely errors
2884
2885 src/liblzma/validate_map.sh | 4 ++--
2886 1 file changed, 2 insertions(+), 2 deletions(-)
2887
2888commit 067cecdea69067973e44dc1afb9be763faccecb2
2889Author: Lasse Collin <lasse.collin@tukaani.org>
2890Date:   2025-05-24 11:55:59 +0300
2891
2892    CI: Catch unsupported arguments in ci_build.bash
2893
2894 build-aux/ci_build.bash | 4 ++++
2895 1 file changed, 4 insertions(+)
2896
2897commit 4fc6208abebfe6b8c8348c412b4bcc594ae11c88
2898Author: Lasse Collin <lasse.collin@tukaani.org>
2899Date:   2025-05-13 20:42:26 +0300
2900
2901    Scripts: Add shellcheck directives to silence warnings
2902
2903    Set also shell because the xz*.in files start with '#!@POSIX_SHELL@'.
2904
2905    SC1003 and SC2016 are only info messages, not warnings. Several other
2906    shellcheck info messages remain. They are safe to ignore, but I didn't
2907    want to disable them now.
2908
2909    Partially-fixes: https://github.com/tukaani-project/xz/issues/174
2910
2911 src/scripts/xzdiff.in | 4 ++++
2912 src/scripts/xzgrep.in | 2 ++
2913 src/scripts/xzless.in | 2 ++
2914 src/scripts/xzmore.in | 2 ++
2915 4 files changed, 10 insertions(+)
2916
2917commit 7844aff1a838362403b332c3a68d5732a192923a
2918Author: Lasse Collin <lasse.collin@tukaani.org>
2919Date:   2025-05-03 22:45:15 +0300
2920
2921    Scripts: Silence two shellcheck warnings
2922
2923 src/scripts/xzdiff.in | 2 +-
2924 src/scripts/xzmore.in | 2 +-
2925 2 files changed, 2 insertions(+), 2 deletions(-)
2926
2927commit 4d439aaeed5c991fbc1ff78d7616e179c30fca1d
2928Author: Lasse Collin <lasse.collin@tukaani.org>
2929Date:   2025-09-29 17:29:23 +0300
2930
2931    Translations: Add Swedish man page translations
2932
2933 po4a/po4a.conf |    2 +-
2934 po4a/sv.po     | 3909 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2935 2 files changed, 3910 insertions(+), 1 deletion(-)
2936
2937commit dd4a1b259936880e04669b43e778828b60619860
2938Author: Lasse Collin <lasse.collin@tukaani.org>
2939Date:   2025-05-23 13:09:14 +0300
2940
2941    CI: Add timeout-minutes
2942
2943    Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck
2944    and the default timeout is six hours. While at it, set a sensible
2945    timeout for all workflows.
2946
2947 .github/workflows/ci.yml           | 1 +
2948 .github/workflows/cifuzz.yml       | 1 +
2949 .github/workflows/dragonflybsd.yml | 1 +
2950 .github/workflows/freebsd.yml      | 1 +
2951 .github/workflows/msvc.yml         | 1 +
2952 .github/workflows/msys2.yml        | 1 +
2953 .github/workflows/netbsd.yml       | 1 +
2954 .github/workflows/openbsd.yml      | 1 +
2955 .github/workflows/solaris.yml      | 1 +
2956 9 files changed, 9 insertions(+)
2957
2958commit d660fe5d56a804b0ef3eea550fdcd51dbe17e45b
2959Author: Lasse Collin <lasse.collin@tukaani.org>
2960Date:   2025-05-23 12:25:36 +0300
2961
2962    liblzma: Fix grammar in API docs
2963
2964    Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).")
2965
2966 src/liblzma/api/lzma/base.h | 2 +-
2967 1 file changed, 1 insertion(+), 1 deletion(-)
2968
2969commit ab45bdf4322879dc2859b1f66f1f8cf89cdebe2c
2970Author: Lasse Collin <lasse.collin@tukaani.org>
2971Date:   2025-05-21 16:07:01 +0300
2972
2973    Update THANKS
2974
2975 THANKS | 1 +
2976 1 file changed, 1 insertion(+)
2977
2978commit f0239936532d40be05e75384c37fb8d6c1bb4ff6
2979Author: Lasse Collin <lasse.collin@tukaani.org>
2980Date:   2025-05-21 16:07:01 +0300
2981
2982    CMake: With symbol versioning, try to pass --undefined-version to linker
2983
2984    Fixes: https://github.com/tukaani-project/xz/issues/180
2985    Fixes: https://bugs.gentoo.org/956119
2986
2987 CMakeLists.txt | 22 ++++++++++++++++++++++
2988 1 file changed, 22 insertions(+)
2989
2990commit 377be0ea7a1d0ec3572a7f9a5f9ed42adeaa4503
2991Author: Lasse Collin <lasse.collin@tukaani.org>
2992Date:   2025-05-21 16:07:01 +0300
2993
2994    Build: With symbol versioning, try to pass --undefined-version to linker
2995
2996    Fixes: https://github.com/tukaani-project/xz/issues/180
2997    Fixes: https://bugs.gentoo.org/956119
2998
2999 configure.ac            | 23 +++++++++++++++++++++++
3000 src/liblzma/Makefile.am |  2 ++
3001 2 files changed, 25 insertions(+)
3002
3003commit ff49c82176ca53646a1cbbbb4efc35a542745812
3004Author: Lasse Collin <lasse.collin@tukaani.org>
3005Date:   2025-05-21 14:48:18 +0300
3006
3007    CMake: Fix comments
3008
3009 CMakeLists.txt | 4 ++--
3010 1 file changed, 2 insertions(+), 2 deletions(-)
3011
3012commit 71ad5e82888fdfa0fe11defa4f46cb0fc90dc326
3013Author: Lasse Collin <lasse.collin@tukaani.org>
3014Date:   2025-05-21 13:14:04 +0300
3015
3016    Translations: Update Serbian man page translations
3017
3018    Compared to the file in the Translation Project, I still had to apply
3019    a few fixes that were needed with the previous (5.7.1-dev1) version too:
3020
3021      - Remove two extra '<' characters that break the build with po4a.
3022
3023      - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names.
3024
3025 po4a/sr.po | 70 ++++++++++++++++++++------------------------------------------
3026 1 file changed, 22 insertions(+), 48 deletions(-)
3027
3028commit 31a983ad4774054074b300f55ff519484ff182c2
3029Author: Lasse Collin <lasse.collin@tukaani.org>
3030Date:   2025-05-21 12:55:28 +0300
3031
3032    Update po/.gitignore
3033
3034 po/.gitignore | 1 +
3035 1 file changed, 1 insertion(+)
3036
3037commit d9e70da25ac761544146bc2fbab6443e1a080bf4
3038Author: Lasse Collin <lasse.collin@tukaani.org>
3039Date:   2025-05-21 12:54:42 +0300
3040
3041    Translations: Update the Spanish translation
3042
3043 po/es.po | 10 +++++-----
3044 1 file changed, 5 insertions(+), 5 deletions(-)
3045
3046commit dbfb925c8198087afb3527e6c57b66fae1a980bb
3047Author: Lasse Collin <lasse.collin@tukaani.org>
3048Date:   2025-05-03 12:37:28 +0300
3049
3050    Tests: Silence a warning from GCC 15.1
3051
3052    It was (probably) intentionally without the null terminator, but the test
3053    works with null terminator too (the test still fails with xz <= 5.0.3),
3054    so simply omit one character to silence the warning.
3055
3056    tests/test_bcj_exact_size.c:30:32: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization]
3057       30 |         const uint8_t in[16] = "0123456789ABCDEF";
3058          |                                ^~~~~~~~~~~~~~~~~~
3059
3060    Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.")
3061    Fixes: https://github.com/tukaani-project/xz/issues/176
3062
3063 tests/test_bcj_exact_size.c | 2 +-
3064 1 file changed, 1 insertion(+), 1 deletion(-)
3065
3066commit 7c12726c51b2b7d77329dd72a29ecb1ec262b918
3067Author: Lasse Collin <lasse.collin@tukaani.org>
3068Date:   2025-04-28 18:16:14 +0300
3069
3070    Update THANKS
3071
3072 THANKS | 2 ++
3073 1 file changed, 2 insertions(+)
3074
3075commit 1bd7361a043bd652ee5d0ebafd23459c57f57993
3076Author: Lasse Collin <lasse.collin@tukaani.org>
3077Date:   2025-04-25 17:32:03 +0300
3078
3079    Update THANKS
3080
3081 THANKS | 1 +
3082 1 file changed, 1 insertion(+)
3083
3084commit 5cc2e479eb447a444f5ab005fc36b7f275c75eb5
3085Author: Guillaume Outters <guillaume-installs@outters.eu>
3086Date:   2025-04-25 02:55:08 +0200
3087
3088    xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear()
3089
3090    cap_rights_clear() with no additional arguments acts as a no-op, so
3091    instead of removing all capability rights from STDIN_FILENO, the same
3092    rights were allowed for STDIN_FILENO as were allowed for src_fd.
3093
3094    Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.")
3095    (The commit message says "stdout". It should have said "stderr".)
3096
3097 src/xz/sandbox.c  | 2 +-
3098 src/xzdec/xzdec.c | 2 +-
3099 2 files changed, 2 insertions(+), 2 deletions(-)
3100
3101commit 56aa9a07968a6a73fada6f9b96122c5165829f3b
3102Author: Lasse Collin <lasse.collin@tukaani.org>
3103Date:   2025-04-22 21:12:50 +0300
3104
3105    CI: Valgrind: Improve the skipping of traced child processes
3106
3107    Use --trace-children-skip instead of --trace-children-skip-by-arg
3108    so that the skipping is only done based on the executable names.
3109    (--trace-children-skip-by-arg can match other args than argv[0].)
3110
3111    Update the list of executables to skip to match what the scripts run.
3112
3113    Do not skip bash or sh. If Valgrind didn't trace the shell, then the
3114    xz and xzdec programs run by the shell wouldn't be analyzed either.
3115
3116    Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...")
3117
3118 .github/workflows/ci.yml | 2 +-
3119 1 file changed, 1 insertion(+), 1 deletion(-)
3120
3121commit f33da20b75a45caad25c9a4daf7906e4f056ce91
3122Author: Lasse Collin <lasse.collin@tukaani.org>
3123Date:   2025-04-22 21:12:50 +0300
3124
3125    CI: Valgrind: Test with static liblzma
3126
3127    If shared liblzma is built, tests/test_* and src/xz/xz are wrapper
3128    scripts created by Libtool. The wrappers set library search path
3129    so that the freshly-built shared library is found.
3130
3131    With a static liblzma, no wrapper scripts are needed, and Libtool
3132    places the real executables to the aforementioned locations. This
3133    speeds up the tests under Valgrind dramatically.
3134
3135    Fixes: 6c095a98fbec ("ci: test Valgrind")
3136
3137 .github/workflows/ci.yml | 2 +-
3138 1 file changed, 1 insertion(+), 1 deletion(-)
3139
3140commit 5606fa89f91ca1d0d53e339d88f574fc731049c1
3141Author: Lasse Collin <lasse.collin@tukaani.org>
3142Date:   2025-04-22 21:12:50 +0300
3143
3144    CI: Add Ubuntu on ARM64
3145
3146 .github/workflows/ci.yml | 27 ++++++++++++++++-----------
3147 1 file changed, 16 insertions(+), 11 deletions(-)
3148
3149commit ec047a65a068087cc6f71133df414858f6886121
3150Author: Lasse Collin <lasse.collin@tukaani.org>
3151Date:   2025-04-22 16:21:50 +0300
3152
3153    Doxygen: Update the comment about tested versions
3154
3155 doxygen/Doxyfile | 2 +-
3156 1 file changed, 1 insertion(+), 1 deletion(-)
3157
3158commit 4f86e77bef8918b0c64183590609357a275558d8
3159Author: Lasse Collin <lasse.collin@tukaani.org>
3160Date:   2025-04-22 16:21:50 +0300
3161
3162    Doxygen: Set HAVE_DOT = NO
3163
3164    Debian and Ubuntu have a patch that changes the upstream default to
3165    HAVE_DOT = YES. Undo it to have more consistent results across distros.
3166
3167    This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot"
3168    but that failed due to "dot" not being installed. "doxygen" still
3169    finished with exit status 0 until the commit that turned warnings to
3170    errors with WARN_AS_ERROR = FAIL_ON_WARNINGS.
3171
3172 doxygen/Doxyfile | 4 ++++
3173 1 file changed, 4 insertions(+)
3174
3175commit ff96542d1c78f744d992be5890c95d90b2d19047
3176Author: Lasse Collin <lasse.collin@tukaani.org>
3177Date:   2025-04-22 16:21:50 +0300
3178
3179    Doxygen: Treat warnings as errors
3180
3181    Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have
3182    a few things that won't have their own docs.
3183
3184 doxygen/Doxyfile | 2 ++
3185 1 file changed, 2 insertions(+)
3186
3187commit a6711d1c4ad681aad985372d01a7deb21b4a1b8b
3188Author: Lasse Collin <lasse.collin@tukaani.org>
3189Date:   2025-04-22 16:21:50 +0300
3190
3191    Doxygen: Fix errors and some warnings in internal docs
3192
3193 src/liblzma/check/crc32_fast.c | 2 +-
3194 src/liblzma/check/crc64_fast.c | 2 +-
3195 src/liblzma/common/outqueue.h  | 1 +
3196 src/xz/list.c                  | 2 ++
3197 src/xz/message.h               | 4 ++++
3198 5 files changed, 9 insertions(+), 2 deletions(-)
3199
3200commit 8efd80adfcd65dfea086c1008452c6424b30b78c
3201Author: Lasse Collin <lasse.collin@tukaani.org>
3202Date:   2025-04-22 16:21:50 +0300
3203
3204    CI: Use --disable-sandbox instead of --enable-sandbox=no
3205
3206    It's the same thing, just a style difference.
3207
3208 build-aux/ci_build.bash | 2 +-
3209 1 file changed, 1 insertion(+), 1 deletion(-)
3210
3211commit a2e47c7a59d835ba80beef53b986d45e99ecd94a
3212Author: Lasse Collin <lasse.collin@tukaani.org>
3213Date:   2025-04-22 16:21:50 +0300
3214
3215    CI: Support Doxygen in ci_build.bash
3216
3217 build-aux/ci_build.bash | 4 ++++
3218 1 file changed, 4 insertions(+)
3219
3220commit 9048e724945a3dfbf86d7f97437113f27ea41c63
3221Author: Lasse Collin <lasse.collin@tukaani.org>
3222Date:   2025-04-22 16:21:50 +0300
3223
3224    CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS
3225
3226 .github/workflows/ci.yml | 4 ++--
3227 1 file changed, 2 insertions(+), 2 deletions(-)
3228
3229commit d8e9dc63a6124336e72a849b8104ba60720f0fe2
3230Author: Lasse Collin <lasse.collin@tukaani.org>
3231Date:   2025-04-22 16:21:50 +0300
3232
3233    CI: Support XZ_NLS=OFF with CMake
3234
3235 build-aux/ci_build.bash | 1 +
3236 1 file changed, 1 insertion(+)
3237
3238commit ffa9fadecc85d21308aebac7b070fb5be791190f
3239Author: Lasse Collin <lasse.collin@tukaani.org>
3240Date:   2025-04-22 16:21:50 +0300
3241
3242    CI: Revise MSYS2
3243
3244    Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64
3245    to slightly reduce the number of runner VMs needed.
3246
3247    Install the required packages using the setup-msys2 action instead
3248    of running the commands separately.
3249
3250    Test Autotools and CMake in the same job to reduce the number of VMs.
3251    This doesn't slow it down too much because the msys2-setup step is
3252    needed by both. However, do only the full builds on ARM64 because
3253    those runners seem to be slower.
3254
3255    Test fewer build configurations. The point of testing on MSYS2 is to
3256    catch Windows-related issues. It should be enough that the more unusual
3257    build configurations are tested in ci.yml.
3258
3259    Run the build commands directly instead of using ci_build.bash. This
3260    makes it easier to see what commands are run even if it is a little
3261    more verbose now.
3262
3263    Run the workflow automatically when commit are pushed to master.
3264    With the fewer build variants it's not too slow.
3265
3266 .github/workflows/msys2.yml | 197 +++++++++++++++++++++++++-------------------
3267 1 file changed, 110 insertions(+), 87 deletions(-)
3268
3269commit 6f2aaa77daef7b408dc0d9c9a534373a30da7a50
3270Author: Lasse Collin <lasse.collin@tukaani.org>
3271Date:   2025-04-22 16:21:50 +0300
3272
3273    CI: Rename the MSYS2 workflow file
3274
3275 .github/workflows/{windows-ci.yml => msys2.yml} | 0
3276 1 file changed, 0 insertions(+), 0 deletions(-)
3277
3278commit 09110ad4c74f3ee1b4b0355d92b703525eddd3ff
3279Author: Lasse Collin <lasse.collin@tukaani.org>
3280Date:   2025-04-22 16:21:50 +0300
3281
3282    CI: Enable assertions on NetBSD + CMake
3283
3284 .github/workflows/netbsd.yml | 2 +-
3285 1 file changed, 1 insertion(+), 1 deletion(-)
3286
3287commit 516b90f6e1beb243dd76adc82da0ee47e525f863
3288Author: Lasse Collin <lasse.collin@tukaani.org>
3289Date:   2025-04-21 12:23:37 +0300
3290
3291    liblzma: Update lzma_lzip_decoder() docs about trailing data
3292
3293    Don't say that the .lz format allows trailing data. According to the
3294    lzip 1.25 manual, trailing data isn't part of the file format at all.
3295    However, tools are still expected to behave as usefully as possible
3296    when there is trailing data.
3297
3298    Fix the description of lzip >= 1.20 behavior when some of the first
3299    bytes of trailing data match the magic bytes. While the lzip 1.25 manual
3300    recommends that none of the first four bytes in trailing data should
3301    match the magic bytes, the default behavior of lzip 1.25 treats
3302    trailing data as a corrupt member header only if two or three bytes
3303    match the magic bytes; one matching byte isn't enough.
3304
3305    Reported-by: Antonio Diaz Diaz
3306    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html
3307
3308 src/liblzma/api/lzma/container.h | 23 +++++++++++------------
3309 1 file changed, 11 insertions(+), 12 deletions(-)
3310
3311commit c330220d47dc09a5bab805d22654c8c0a73d21a9
3312Author: Lasse Collin <lasse.collin@tukaani.org>
3313Date:   2025-04-21 11:21:08 +0300
3314
3315    Update THANKS
3316
3317 THANKS | 1 +
3318 1 file changed, 1 insertion(+)
3319
3320commit 6cc7672c2238e7fc66bba33cff50cecd30411063
3321Author: Lasse Collin <lasse.collin@tukaani.org>
3322Date:   2025-04-17 20:36:33 +0300
3323
3324    CI: Add DragonflyBSD
3325
3326 .github/workflows/dragonflybsd.yml | 39 ++++++++++++++++++++++++++++++++++++++
3327 1 file changed, 39 insertions(+)
3328
3329commit 07dc50913725496bd89178539190292a66e18710
3330Author: Lasse Collin <lasse.collin@tukaani.org>
3331Date:   2025-04-17 20:36:33 +0300
3332
3333    CI: Update Solaris
3334
3335 .github/workflows/solaris.yml | 37 +++++++++++++++++++------------------
3336 1 file changed, 19 insertions(+), 18 deletions(-)
3337
3338commit cfcaae1945c0c33df86477138746e68428972a53
3339Author: Lasse Collin <lasse.collin@tukaani.org>
3340Date:   2025-04-17 20:36:33 +0300
3341
3342    CI: Update OpenBSD
3343
3344    Use --disable-nls --enable-external-sha256 because those are used
3345    in the xz Makefile in the OpenBSD ports tree.
3346
3347 .github/workflows/openbsd.yml | 46 +++++++++++++++++++++++--------------------
3348 1 file changed, 25 insertions(+), 21 deletions(-)
3349
3350commit 5240fcfee3b1386029a26629d75f1465b9e85ca3
3351Author: Lasse Collin <lasse.collin@tukaani.org>
3352Date:   2025-04-17 20:36:33 +0300
3353
3354    CI: Update NetBSD
3355
3356    For variety, use CMake and Ninja.
3357
3358 .github/workflows/netbsd.yml | 43 +++++++++++++++++++++++++------------------
3359 1 file changed, 25 insertions(+), 18 deletions(-)
3360
3361commit 85ff0cf0ce11b017af21c040330f6a0c09ef7f77
3362Author: Lasse Collin <lasse.collin@tukaani.org>
3363Date:   2025-04-17 20:36:33 +0300
3364
3365    CI: Update FreeBSD
3366
3367    ARM64 was left commented out because it's slow under both
3368    ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts.
3369
3370 .github/workflows/freebsd.yml | 61 +++++++++++++++++++++++++++++--------------
3371 1 file changed, 42 insertions(+), 19 deletions(-)
3372
3373commit 907ac2215db1613312dc292219bac798d76394f4
3374Author: Lasse Collin <lasse.collin@tukaani.org>
3375Date:   2025-04-11 17:25:53 +0300
3376
3377    CI: Specify only the main version of the standard GH actions
3378
3379 .github/workflows/ci.yml   | 4 ++--
3380 .github/workflows/msvc.yml | 2 +-
3381 2 files changed, 3 insertions(+), 3 deletions(-)
3382
3383commit b0d0e624740b92415f78274702b5b5bfbffe4543
3384Author: Lasse Collin <lasse.collin@tukaani.org>
3385Date:   2025-04-11 17:15:08 +0300
3386
3387    CI: Add 'permissions' to ci.yml and msvc.yml
3388
3389 .github/workflows/ci.yml   | 2 ++
3390 .github/workflows/msvc.yml | 2 ++
3391 2 files changed, 4 insertions(+)
3392
3393commit 1edc14e8ca4fc1f25ee43f17f290c045df7f49e0
3394Author: Sam James <sam@gentoo.org>
3395Date:   2025-04-10 23:15:31 +0300
3396
3397    CI: Add CIFuzz
3398
3399    xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0]
3400    its 'CIFuzz' service to test individual commits.
3401
3402    [0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/
3403
3404    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
3405
3406 .github/workflows/cifuzz.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++
3407 1 file changed, 54 insertions(+)
3408
3409commit 35e06c4c426c6cc3866a9003e87a122eb78bccf2
3410Author: Lasse Collin <lasse.collin@tukaani.org>
3411Date:   2025-04-12 15:31:01 +0300
3412
3413    CMake: Don't check for optreset if using replacement getopt_long
3414
3415    If <getopt.h> had optreset but not getopt_long, xz used optreset while
3416    the replacement getopt_long doesn't support optreset. I'm not aware of
3417    any relevant system where bug is possible. Autotools build didn't have
3418    this bug.
3419
3420    Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).")
3421
3422 CMakeLists.txt | 6 ++++--
3423 1 file changed, 4 insertions(+), 2 deletions(-)
3424
3425commit 99f4b9db9dfc3dabad330df6242e4632c42393c6
3426Author: Lasse Collin <lasse.collin@tukaani.org>
3427Date:   2025-04-17 18:33:10 +0300
3428
3429    Update THANKS
3430
3431 THANKS | 1 +
3432 1 file changed, 1 insertion(+)
3433
3434commit dd006a67e593cb5d3dec5180face7e3010fe78da
3435Author: Lasse Collin <lasse.collin@tukaani.org>
3436Date:   2025-04-17 18:30:26 +0300
3437
3438    liblzma: Update the lzma_lzip_decoder() docs about sync flush marker
3439
3440 src/liblzma/api/lzma/container.h | 15 +++++++--------
3441 1 file changed, 7 insertions(+), 8 deletions(-)
3442
3443commit f59c5859600b5dfeaa618fcc04e9e3bb2b005f5c
3444Author: Lasse Collin <lasse.collin@tukaani.org>
3445Date:   2025-04-17 18:16:40 +0300
3446
3447    xz: Don't mention lzip's sync flush marker on the man page
3448
3449    The sync flush marker isn't valid in .lz files. The sync flush marker
3450    may be used by lzlib, but the resulting streams are only meant to be
3451    decoded by lzlib itself. lzlib's docs make this clear.
3452
3453    Reported-by: Antonio Diaz Diaz
3454    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html
3455    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html
3456
3457 src/xz/xz.1 | 9 +--------
3458 1 file changed, 1 insertion(+), 8 deletions(-)
3459
3460commit 49258439b4ead6866798c1ebf8a083ec9ec04520
3461Author: Lasse Collin <lasse.collin@tukaani.org>
3462Date:   2025-04-17 18:15:48 +0300
3463
3464    Update THANKS
3465
3466 THANKS | 1 +
3467 1 file changed, 1 insertion(+)
3468
3469commit a69fbd3aaebc15dc5912e64724e5abfcef09bcdf
3470Author: Lasse Collin <lasse.collin@tukaani.org>
3471Date:   2025-04-10 20:13:07 +0300
3472
3473    CI: MSVC: Use fewer runners for the same number of tests
3474
3475    Using eight runners seems wasteful. Using only two runners isn't
3476    much slower due to the runner startup overhead.
3477
3478    Also add a comment about the test that fails without b5a5d9e3f702.
3479
3480 .github/workflows/msvc.yml | 66 ++++++++++++++++++++++++++++++++++++++--------
3481 1 file changed, 55 insertions(+), 11 deletions(-)
3482
3483commit 8a300d1c4fc644af482fb679044794c3e3f6f3e5
3484Author: Lasse Collin <lasse.collin@tukaani.org>
3485Date:   2025-04-10 20:10:31 +0300
3486
3487    Update THANKS
3488
3489 THANKS | 1 +
3490 1 file changed, 1 insertion(+)
3491
3492commit b5a5d9e3f7022e546cdfd4ddc42fe4cc56839c05
3493Author: Lasse Collin <lasse.collin@tukaani.org>
3494Date:   2025-04-07 22:36:58 +0300
3495
3496    liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86
3497
3498    On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in
3499    test failures. VS 2022 17.13 (MSVC 19.43.34808) works.
3500
3501    In xz 5.6.x there was a #pragma-based workaround for MSVC builds for
3502    32-bit x86. Another method was thought to work with the new rewritten
3503    CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC
3504    with any non-recent MSVC when building for 32-bit x86.
3505
3506    Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite")
3507    Fixes: https://github.com/tukaani-project/xz/issues/171
3508    Reported-by: Andrew Murray
3509
3510 src/liblzma/check/crc_common.h | 16 +++++++++++++---
3511 1 file changed, 13 insertions(+), 3 deletions(-)
3512
3513commit c5fd88dfc3d2b4178dc6da65b02a63a4ef9280c5
3514Author: Lasse Collin <lasse.collin@tukaani.org>
3515Date:   2025-04-07 22:36:58 +0300
3516
3517    liblzma: Remove MSVC hack from CLMUL CRC
3518
3519    It's not enough with MSVC 19.29 (VS 2019) even if the hack was also
3520    applied to the CRC32 code. The tests crash when built for 32-bit x86.
3521
3522 src/liblzma/check/crc64_fast.c | 8 --------
3523 1 file changed, 8 deletions(-)
3524
3525commit 49ba8c69ea7f928aded77bd856085c85a8d26156
3526Author: Lasse Collin <lasse.collin@tukaani.org>
3527Date:   2025-04-07 22:36:52 +0300
3528
3529    CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022
3530
3531 .github/workflows/msvc.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++
3532 1 file changed, 45 insertions(+)
3533
3534commit 1176a19df6b1585b51131b0e2570e03f1fc14f46
3535Author: Lasse Collin <lasse.collin@tukaani.org>
3536Date:   2025-04-04 20:08:37 +0300
3537
3538    Tests: Add fuzz_decode_stream_mt.options
3539
3540 tests/ossfuzz/config/fuzz_decode_stream_mt.options | 4 ++++
3541 1 file changed, 4 insertions(+)
3542
3543commit c3cb1e53a114ac944f559fe7cac45dbf48cca156
3544Author: Lasse Collin <lasse.collin@tukaani.org>
3545Date:   2025-04-03 15:06:07 +0300
3546
3547    doc/SHA256SUMS: Add 5.8.1
3548
3549 doc/SHA256SUMS | 7 +++++++
3550 1 file changed, 7 insertions(+)
3551
3552commit a522a226545730551f7e7c2685fab27cf567746c
3553Author: Lasse Collin <lasse.collin@tukaani.org>
3554Date:   2025-04-03 14:34:43 +0300
3555
3556    Bump version and soname for 5.8.1
3557
3558 src/liblzma/Makefile.am        | 2 +-
3559 src/liblzma/api/lzma/version.h | 2 +-
3560 2 files changed, 2 insertions(+), 2 deletions(-)
3561
3562commit 1c462c2ad86ff85766928638431029cd0b0dc995
3563Author: Lasse Collin <lasse.collin@tukaani.org>
3564Date:   2025-04-03 14:34:43 +0300
3565
3566    Add NEWS for 5.8.1
3567
3568 NEWS | 30 ++++++++++++++++++++++++++++++
3569 1 file changed, 30 insertions(+)
3570
3571commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0
3572Author: Lasse Collin <lasse.collin@tukaani.org>
3573Date:   2025-04-03 14:34:43 +0300
3574
3575    Tests: Call lzma_code() in smaller chunks in fuzz_common.h
3576
3577    This makes it easy to crash fuzz_decode_stream_mt when tested
3578    against the code from 5.8.0.
3579
3580    Obviously this might make it harder to reach some other code path now.
3581    The previous code has been in use since 2018 when fuzzing was added
3582    in 106d1a663d4b ("Tests: Add a fuzz test program and a config file
3583    for OSS-Fuzz.").
3584
3585 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++-------
3586 1 file changed, 24 insertions(+), 7 deletions(-)
3587
3588commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf
3589Author: Lasse Collin <lasse.collin@tukaani.org>
3590Date:   2025-04-03 14:34:43 +0300
3591
3592    Tests: Add a fuzzing target for the multithreaded .xz decoder
3593
3594    It doesn't seem possible to trigger the CVE-2025-31115 bug with this
3595    fuzzing target at the moment. It's because the code in fuzz_common.h
3596    passes the whole input buffer to lzma_code() at once.
3597
3598 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++
3599 1 file changed, 47 insertions(+)
3600
3601commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d
3602Author: Lasse Collin <lasse.collin@tukaani.org>
3603Date:   2025-04-03 14:34:42 +0300
3604
3605    liblzma: mt dec: Fix lack of parallelization in single-shot decoding
3606
3607    Single-shot decoding means calling lzma_code() by giving it the whole
3608    input at once and enough output buffer space to store the uncompressed
3609    data, and combining this with LZMA_FINISH and no timeout
3610    (lzma_mt.timeout = 0). This way the file is decoded with a single
3611    lzma_code() call if possible.
3612
3613    The bug prevented the decoder from starting more than one worker thread
3614    in single-shot mode. The issue was noticed when reviewing the code;
3615    there are no bug reports. Thus maybe few have tried this mode.
3616
3617    Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.")
3618
3619 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++--
3620 1 file changed, 9 insertions(+), 2 deletions(-)
3621
3622commit 8188048854e8d11071b8a50d093c74f4c030acc9
3623Author: Lasse Collin <lasse.collin@tukaani.org>
3624Date:   2025-04-03 14:34:42 +0300
3625
3626    liblzma: mt dec: Don't modify thr->in_size in the worker thread
3627
3628    Don't set thr->in_size = 0 when returning the thread to the stack of
3629    available threads. Not only is it useless, but the main thread may
3630    read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made
3631    no difference if the main thread saw the original value or 0. With
3632    invalid inputs (when worker thread stops early), thr->in_size was
3633    no longer modified after the previous commit with the security fix
3634    ("Don't free the input buffer too early").
3635
3636    So while the bug appears harmless now, it's important to fix it because
3637    the variable was being modified without proper locking. It's trivial
3638    to fix because there is no need to change the value. Only main thread
3639    needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new
3640    Block before the worker thread is activated.
3641
3642    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
3643    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
3644    Thanks-to: Sam James <sam@gentoo.org>
3645
3646 src/liblzma/common/stream_decoder_mt.c | 6 ++++--
3647 1 file changed, 4 insertions(+), 2 deletions(-)
3648
3649commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480
3650Author: Lasse Collin <lasse.collin@tukaani.org>
3651Date:   2025-04-03 14:34:42 +0300
3652
3653    liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)
3654
3655    The input buffer must be valid as long as the main thread is writing
3656    to the worker-specific input buffer. Fix it by making the worker
3657    thread not free the buffer on errors and not return the worker thread to
3658    the pool. The input buffer will be freed when threads_end() is called.
3659
3660    With invalid input, the bug could at least result in a crash. The
3661    effects include heap use after free and writing to an address based
3662    on the null pointer plus an offset.
3663
3664    The bug has been there since the first committed version of the threaded
3665    decoder and thus affects versions from 5.3.3alpha to 5.8.0.
3666
3667    As the commit message in 4cce3e27f529 says, I had made significant
3668    changes on top of Sebastian's patch. This bug was indeed introduced
3669    by my changes; it wasn't in Sebastian's version.
3670
3671    Thanks to Harri K. Koskinen for discovering and reporting this issue.
3672
3673    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
3674    Reported-by: Harri K. Koskinen <x64nop@nannu.org>
3675    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
3676    Thanks-to: Sam James <sam@gentoo.org>
3677
3678 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++---------
3679 1 file changed, 22 insertions(+), 9 deletions(-)
3680
3681commit c0c835964dfaeb2513a3c0bdb642105152fe9f34
3682Author: Lasse Collin <lasse.collin@tukaani.org>
3683Date:   2025-04-03 14:34:42 +0300
3684
3685    liblzma: mt dec: Simplify by removing the THR_STOP state
3686
3687    The main thread can directly set THR_IDLE in threads_stop() which is
3688    called when errors are detected. threads_stop() won't return the stopped
3689    threads to the pool or free the memory pointed by thr->in anymore, but
3690    it doesn't matter because the existing workers won't be reused after
3691    an error. The resources will be cleaned up when threads_end() is
3692    called (reinitializing the decoder always calls threads_end()).
3693
3694    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
3695    Thanks-to: Sam James <sam@gentoo.org>
3696
3697 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++---------------------
3698 1 file changed, 29 insertions(+), 46 deletions(-)
3699
3700commit 831b55b971cf579ee16a854f177c36b20d3c6999
3701Author: Lasse Collin <lasse.collin@tukaani.org>
3702Date:   2025-04-03 14:34:42 +0300
3703
3704    liblzma: mt dec: Fix a comment
3705
3706    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
3707    Thanks-to: Sam James <sam@gentoo.org>
3708
3709 src/liblzma/common/stream_decoder_mt.c | 2 +-
3710 1 file changed, 1 insertion(+), 1 deletion(-)
3711
3712commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a
3713Author: Lasse Collin <lasse.collin@tukaani.org>
3714Date:   2025-04-03 14:34:30 +0300
3715
3716    liblzma: Add assertions to lzma_bufcpy()
3717
3718 src/liblzma/common/common.c | 6 ++++++
3719 1 file changed, 6 insertions(+)
3720
3721commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae
3722Author: Lasse Collin <lasse.collin@tukaani.org>
3723Date:   2025-04-02 16:40:22 +0300
3724
3725    DOS: Update Makefile to fix the build
3726
3727 dos/Makefile | 2 ++
3728 1 file changed, 2 insertions(+)
3729
3730commit 307c02ed698a69763ef1c9c0df4ff24727442118
3731Author: Lasse Collin <lasse.collin@tukaani.org>
3732Date:   2025-03-29 12:41:32 +0200
3733
3734    sysdefs.h: Avoid <stdalign.h> even with C11 compilers
3735
3736    Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in
3737    __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing.
3738    We only need alignas, so define it to _Alignas with C11/C17 compilers.
3739    If something included <stdalign.h> later, it shouldn't cause problems.
3740
3741    Thanks to Ihsan Dogan for reporting the issue and testing the fix.
3742
3743    Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
3744
3745 src/common/sysdefs.h | 4 +++-
3746 1 file changed, 3 insertions(+), 1 deletion(-)
3747
3748commit 7ce38b318339d6c01378a77585e08169ca3a604e
3749Author: Lasse Collin <lasse.collin@tukaani.org>
3750Date:   2025-03-29 12:32:05 +0200
3751
3752    Update THANKS
3753
3754 THANKS | 1 +
3755 1 file changed, 1 insertion(+)
3756
3757commit 688e51bde4c987589717b2be1a1fde9576c604fc
3758Author: Lasse Collin <lasse.collin@tukaani.org>
3759Date:   2025-03-29 12:21:51 +0200
3760
3761    Translations: Update the Croatian translation
3762
3763 po/hr.po | 14 +++++++-------
3764 1 file changed, 7 insertions(+), 7 deletions(-)
3765
3766commit 173fb5c68b08a8c1369550267be258132b7760c6
3767Author: Lasse Collin <lasse.collin@tukaani.org>
3768Date:   2025-03-25 18:23:57 +0200
3769
3770    doc/SHA256SUMS: Add 5.8.0
3771
3772 doc/SHA256SUMS | 6 ++++++
3773 1 file changed, 6 insertions(+)
3774
3775commit db9258e828bc2cd96e3954f1ddcc9d3530589025
3776Author: Lasse Collin <lasse.collin@tukaani.org>
3777Date:   2025-03-25 15:18:32 +0200
3778
3779    Bump version and soname for 5.8.0
3780
3781    Also remove the LZMA_UNSTABLE macro.
3782
3783 src/liblzma/Makefile.am         | 2 +-
3784 src/liblzma/api/lzma/bcj.h      | 2 --
3785 src/liblzma/api/lzma/version.h  | 6 +++---
3786 src/liblzma/common/common.h     | 2 --
3787 src/liblzma/liblzma_generic.map | 2 +-
3788 src/liblzma/liblzma_linux.map   | 2 +-
3789 6 files changed, 6 insertions(+), 10 deletions(-)
3790
3791commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2
3792Author: Lasse Collin <lasse.collin@tukaani.org>
3793Date:   2025-03-25 15:18:32 +0200
3794
3795    Add NEWS for 5.8.0
3796
3797 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3798 1 file changed, 62 insertions(+)
3799
3800commit 6ccbb904da851eb0c174c8dbd43e84da31739720
3801Author: Lasse Collin <lasse.collin@tukaani.org>
3802Date:   2025-03-25 15:18:31 +0200
3803
3804    Translations: Run "make -C po update-po"
3805
3806    POT-Creation-Date is set to match the timestamp in 5.7.2beta which
3807    in the Translation Project is known as 5.8.0-pre1. The strings
3808    haven't changed since 5.7.1alpha but a few comments have.
3809
3810    This is a very noisy commit, but this helps keeping the PO files
3811    similar between the Git repository and stable release tarballs.
3812
3813 po/ca.po    | 964 ++++++++++++++++++++++++++++++++++++++++++++---------------
3814 po/cs.po    | 935 ++++++++++++++++++++++++++++++++++++++++++----------------
3815 po/da.po    | 663 ++++++++++++++++++++++++++++++-----------
3816 po/de.po    |   7 +-
3817 po/eo.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
3818 po/es.po    |   7 +-
3819 po/fi.po    |   2 +-
3820 po/fr.po    | 916 +++++++++++++++++++++++++++++++++++++++++---------------
3821 po/hu.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
3822 po/ka.po    |   7 +-
3823 po/ko.po    |   7 +-
3824 po/nl.po    |   7 +-
3825 po/pl.po    |   7 +-
3826 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++---------------
3827 po/sr.po    |   2 +-
3828 po/sv.po    |   7 +-
3829 po/tr.po    |   7 +-
3830 po/uk.po    |   7 +-
3831 po/vi.po    | 948 +++++++++++++++++++++++++++++++++++++++++++---------------
3832 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++--------------
3833 po/zh_TW.po |   2 +-
3834 21 files changed, 6209 insertions(+), 2120 deletions(-)
3835
3836commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800
3837Author: Lasse Collin <lasse.collin@tukaani.org>
3838Date:   2025-03-25 15:18:31 +0200
3839
3840    Translations: Run po4a/update-po
3841
3842    Also remove the trivial obsolete messages like man page dates.
3843
3844    This is a noisy commit, but this helps keeping the PO files similar
3845    between the Git repository and stable release tarballs.
3846
3847 po4a/fr.po    | 82 +++++++++++++++++++++++++++++++++++++------------------
3848 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------
3849 po4a/sr.po    | 79 ++++++++++++++++++++++++++++++++++-------------------
3850 3 files changed, 167 insertions(+), 82 deletions(-)
3851
3852commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c
3853Author: Lasse Collin <lasse.collin@tukaani.org>
3854Date:   2025-03-25 15:18:31 +0200
3855
3856    Translations: Partially fix overtranslation in Serbian man pages
3857
3858    Names of environment variables and some other strings must be present
3859    in the original form. The translator couldn't be reached so I'm
3860    changing some of the strings myself. In the "Robot mode" section,
3861    occurrences in the middle of sentences weren't changed to reduce
3862    the chance of grammar breakage, but I kept the translated strings in
3863    parenthesis in the headings. It's not ideal, but now people shouldn't
3864    need to look at the English man page to find the English strings.
3865
3866 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++--------------------
3867 1 file changed, 45 insertions(+), 21 deletions(-)
3868
3869commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b
3870Author: Lasse Collin <lasse.collin@tukaani.org>
3871Date:   2025-03-25 15:18:31 +0200
3872
3873    liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage
3874
3875 src/liblzma/lz/lz_decoder.c | 3 ++-
3876 1 file changed, 2 insertions(+), 1 deletion(-)
3877
3878commit 943b012d09f717f7b44284c4e4976ea41264c731
3879Author: Lasse Collin <lasse.collin@tukaani.org>
3880Date:   2025-03-25 15:18:31 +0200
3881
3882    liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
3883
3884    SSE2 is supported on every x86-64 processor. The SSE2 code is used on
3885    32-bit x86 if compiler options permit unconditional use of SSE2.
3886
3887    dict_repeat() copies short random-sized unaligned buffers. At least
3888    on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
3889    clearly faster than byte-by-byte copying in this use case. Compared
3890    to the memcpy() version, the new SSE2 version reduces decompression
3891    time by 0-5 % depending on the machine and libc. It should never be
3892    slower than the memcpy() version.
3893
3894    However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
3895    Compared to the memcpy() version:
3896
3897      - The byte-by-version takes 6-7 % less time to decompress.
3898      - The SSE2 version takes 16-18 % less time to decompress.
3899
3900    The numbers are from decompressing a Linux kernel source tarball in
3901    single-threaded mode on older AMD and Intel systems. The tarball
3902    compresses well, and thus dict_repeat() performance matters more
3903    than with some other files.
3904
3905 src/liblzma/lz/lz_decoder.c | 14 ++++++--
3906 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++-----
3907 2 files changed, 90 insertions(+), 11 deletions(-)
3908
3909commit bc14e4c94e788d42eeab984298391fc0ca46f969
3910Author: Lasse Collin <lasse.collin@tukaani.org>
3911Date:   2025-03-25 15:18:31 +0200
3912
3913    liblzma: Add "restrict" to a few functions in lz_decoder.h
3914
3915    This doesn't make any difference in practice because compilers can
3916    already see that writing through the dict->buf pointer cannot modify
3917    the contents of *dict itself: The LZMA decoder makes a local copy of
3918    the lzma_dict structure, and even if it didn't, the pointer to
3919    lzma_dict in the LZMA decoder is already "restrict".
3920
3921    It's nice to add "restrict" anyway. uint8_t is typically unsigned char
3922    which can alias anything. Without the above conditions or "restrict",
3923    compilers could need to assume that writing through dict->buf might
3924    modify *dict. This would matter in dict_repeat() because the loops
3925    refer to dict->buf and dict->pos instead of making local copies of
3926    those members for the duration of the loops. If compilers had to
3927    assume that writing through dict->buf can affect *dict, then compilers
3928    would need to emit code that reloads dict->buf and dict->pos after
3929    every write through dict->buf.
3930
3931 src/liblzma/lz/lz_decoder.h | 7 ++++---
3932 1 file changed, 4 insertions(+), 3 deletions(-)
3933
3934commit e82ee090c567e560f51a056775a17f534d159d65
3935Author: Lasse Collin <lasse.collin@tukaani.org>
3936Date:   2025-03-25 15:18:30 +0200
3937
3938    liblzma: Define LZ_DICT_INIT_POS for initial dictionary position
3939
3940    It's more readable.
3941
3942 src/liblzma/lz/lz_decoder.c | 4 ++--
3943 src/liblzma/lz/lz_decoder.h | 9 ++++++---
3944 2 files changed, 8 insertions(+), 5 deletions(-)
3945
3946commit 8e7cd0091e5239334437decbe1989662d45a2f47
3947Author: Lasse Collin <lasse.collin@tukaani.org>
3948Date:   2025-03-25 15:18:30 +0200
3949
3950    Windows: Update README-Windows.txt about UCRT
3951
3952 windows/README-Windows.txt | 3 ++-
3953 1 file changed, 2 insertions(+), 1 deletion(-)
3954
3955commit 2c24292d341e505e5579fccac3bce5bc71d839ef
3956Author: Lasse Collin <lasse.collin@tukaani.org>
3957Date:   2025-03-25 15:18:15 +0200
3958
3959    Update THANKS
3960
3961 THANKS | 1 +
3962 1 file changed, 1 insertion(+)
3963
3964commit 48053c90898fa191a216aefca01626520a7413f4
3965Author: Lasse Collin <lasse.collin@tukaani.org>
3966Date:   2025-03-17 15:33:25 +0200
3967
3968    Translations: Update the Italian translation
3969
3970 po/it.po | 32 ++++++++++++++++----------------
3971 1 file changed, 16 insertions(+), 16 deletions(-)
3972
3973commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58
3974Author: Lasse Collin <lasse.collin@tukaani.org>
3975Date:   2025-03-17 15:28:56 +0200
3976
3977    Translations: Update the Portuguese translation
3978
3979    The language tag in the Translation Project is pt, not pt_PT,
3980    thus I changed the "Language:" line to pt.
3981
3982 po/pt.po | 1045 +++++++++++++++++++++++++++++++-------------------------------
3983 1 file changed, 526 insertions(+), 519 deletions(-)
3984
3985commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c
3986Author: Lasse Collin <lasse.collin@tukaani.org>
3987Date:   2025-03-14 13:02:21 +0200
3988
3989    Translations: Update the Italian translation
3990
3991 po/it.po | 1020 +++++++++++++++++++++++++++++++-------------------------------
3992 1 file changed, 516 insertions(+), 504 deletions(-)
3993
3994commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf
3995Author: Lasse Collin <lasse.collin@tukaani.org>
3996Date:   2025-03-12 20:48:39 +0200
3997
3998    Translations: Update the Italian man page translations
3999
4000    Only trivial additions but this keeps the file in sync with the TP.
4001
4002 po4a/it.po | 4 ++--
4003 1 file changed, 2 insertions(+), 2 deletions(-)
4004
4005commit 515b6fc8557825e1335012b3b1c8cf71e2c38775
4006Author: Lasse Collin <lasse.collin@tukaani.org>
4007Date:   2025-03-12 19:38:54 +0200
4008
4009    Translations: Update the Italian man page translations
4010
4011 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++-------------------------
4012 1 file changed, 77 insertions(+), 52 deletions(-)
4013
4014commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218
4015Author: Lasse Collin <lasse.collin@tukaani.org>
4016Date:   2025-03-10 21:00:31 +0200
4017
4018    Translations: Update the Korean man page translations
4019
4020 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++--------------------------
4021 1 file changed, 80 insertions(+), 59 deletions(-)
4022
4023commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88
4024Author: Lasse Collin <lasse.collin@tukaani.org>
4025Date:   2025-03-10 20:56:57 +0200
4026
4027    Translations: Update the German man page translations
4028
4029 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++-----------------------
4030 1 file changed, 63 insertions(+), 39 deletions(-)
4031
4032commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d
4033Author: Lasse Collin <lasse.collin@tukaani.org>
4034Date:   2025-03-10 13:13:30 +0200
4035
4036    CMake: Fix tuklib_use_system_extensions
4037
4038    Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
4039    will affect the calling scope. I had forgotten that while CMake
4040    functions inherit the variables from the parent scope, the changes
4041    to them are local unless using set(... PARENT_SCOPE).
4042
4043    This also means that the commit message in 5bb77d0920dc is wrong. The
4044    commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
4045    is only needed for specific check_c_source_compiles() calls.
4046
4047    Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
4048
4049 cmake/tuklib_common.cmake | 7 +++++--
4050 1 file changed, 5 insertions(+), 2 deletions(-)
4051
4052commit 80e48836024ec2d7cbd557575be6da3d1f055cba
4053Author: Lasse Collin <lasse.collin@tukaani.org>
4054Date:   2025-03-10 11:38:55 +0200
4055
4056    INSTALL: Document -bmaxdata on AIX
4057
4058    This is based on a pull request and AIX docs. I haven't tested the
4059    instructions myself.
4060
4061    Closes: https://github.com/tukaani-project/xz/pull/137
4062
4063 INSTALL | 5 +++++
4064 1 file changed, 5 insertions(+)
4065
4066commit ab319186b6d0454285ff4941a777ac95e580f60f
4067Author: Lasse Collin <lasse.collin@tukaani.org>
4068Date:   2025-03-10 11:37:19 +0200
4069
4070    Update THANKS
4071
4072 THANKS | 1 +
4073 1 file changed, 1 insertion(+)
4074
4075commit 4434671a04436038f88ab0feaa251cc8d7abb683
4076Author: Collin Funk <collin.funk1@gmail.com>
4077Date:   2025-03-09 19:14:31 -0700
4078
4079    tuklib_physmem: Silence -Wsign-conversion on AIX
4080
4081    Closes: https://github.com/tukaani-project/xz/pull/168
4082
4083 src/common/tuklib_physmem.c | 2 +-
4084 1 file changed, 1 insertion(+), 1 deletion(-)
4085
4086commit 18bcaa4fafc935d89ffde94301fa6427907306bf
4087Author: Lasse Collin <lasse.collin@tukaani.org>
4088Date:   2025-03-09 22:10:38 +0200
4089
4090    Translations: Update the Romanian man page translations
4091
4092 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++-------------------------
4093 1 file changed, 66 insertions(+), 44 deletions(-)
4094
4095commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363
4096Author: Lasse Collin <lasse.collin@tukaani.org>
4097Date:   2025-03-09 21:28:15 +0200
4098
4099    Translations: Update the Croatian translation
4100
4101 po/hr.po | 19 +++++++++++--------
4102 1 file changed, 11 insertions(+), 8 deletions(-)
4103
4104commit ff85e6130d5940896915cdbb99aa9ece9d41240b
4105Author: Lasse Collin <lasse.collin@tukaani.org>
4106Date:   2025-03-09 21:23:34 +0200
4107
4108    Translations: Update the Romanian translation
4109
4110 po/ro.po | 24 +++++++++++++-----------
4111 1 file changed, 13 insertions(+), 11 deletions(-)
4112
4113commit a5bfb33f30f77e656723d365db8b06e089d3de61
4114Author: Lasse Collin <lasse.collin@tukaani.org>
4115Date:   2025-03-09 21:11:34 +0200
4116
4117    Translations: Update the Ukrainian man page translations
4118
4119 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++-------------------------
4120 1 file changed, 64 insertions(+), 43 deletions(-)
4121
4122commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df
4123Author: Lasse Collin <lasse.collin@tukaani.org>
4124Date:   2025-03-09 14:43:07 +0200
4125
4126    CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
4127
4128    Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
4129    leak to the calling code.
4130
4131 cmake/tuklib_cpucores.cmake | 3 +++
4132 cmake/tuklib_physmem.cmake  | 4 +++-
4133 2 files changed, 6 insertions(+), 1 deletion(-)
4134
4135commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
4136Author: Lasse Collin <lasse.collin@tukaani.org>
4137Date:   2025-03-09 14:06:35 +0200
4138
4139    CMake: Revise tuklib_use_system_extensions
4140
4141    Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
4142    these too (and a few others).
4143
4144    Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
4145    makes a difference with mingw-w64.
4146
4147    Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
4148    because there's always global effect because the global variable
4149    CMAKE_REQUIRED_DEFINITIONS is modified.
4150
4151 CMakeLists.txt            |  2 +-
4152 cmake/tuklib_common.cmake | 27 +++++++++++++++------------
4153 2 files changed, 16 insertions(+), 13 deletions(-)
4154
4155commit 4243c45a48ef8c103d77b75d9f93d48adcb631db
4156Author: Lasse Collin <lasse.collin@tukaani.org>
4157Date:   2025-03-08 14:54:29 +0200
4158
4159    doc/SHA256SUMS: Add 5.7.2beta
4160
4161 doc/SHA256SUMS | 3 +++
4162 1 file changed, 3 insertions(+)
4163
4164commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b
4165Author: Lasse Collin <lasse.collin@tukaani.org>
4166Date:   2025-03-08 14:29:57 +0200
4167
4168    Bump version and soname for 5.7.2beta
4169
4170 src/liblzma/Makefile.am         | 2 +-
4171 src/liblzma/api/lzma/version.h  | 4 ++--
4172 src/liblzma/liblzma_generic.map | 2 +-
4173 src/liblzma/liblzma_linux.map   | 2 +-
4174 4 files changed, 5 insertions(+), 5 deletions(-)
4175
4176commit 62e44b36167de27541776dcf677ed04077c9fd19
4177Author: Lasse Collin <lasse.collin@tukaani.org>
4178Date:   2025-03-08 14:24:38 +0200
4179
4180    Add NEWS for 5.7.2beta
4181
4182 NEWS | 35 +++++++++++++++++++++++++++++++++++
4183 1 file changed, 35 insertions(+)
4184
4185commit 70f1f203789433b5d7b8b22e1655abc465d659f7
4186Author: Lasse Collin <lasse.collin@tukaani.org>
4187Date:   2025-03-08 14:23:00 +0200
4188
4189    COPYING: Remove the note about old releases
4190
4191 COPYING | 19 -------------------
4192 1 file changed, 19 deletions(-)
4193
4194commit db9827dc38ff79de747a6fc7a99619e961dbc5e6
4195Author: Lasse Collin <lasse.collin@tukaani.org>
4196Date:   2025-03-08 14:22:28 +0200
4197
4198    xz: Update the man page about the environment variables again
4199
4200 src/xz/xz.1 | 22 +++++++++++-----------
4201 1 file changed, 11 insertions(+), 11 deletions(-)
4202
4203commit 99c584891bd1d946561cebded2226df9b83f1efb
4204Author: Lasse Collin <lasse.collin@tukaani.org>
4205Date:   2025-03-06 19:26:09 +0200
4206
4207    liblzma: Edit spelling in a comment
4208
4209    It was found with codespell.
4210
4211 src/liblzma/api/lzma/container.h | 2 +-
4212 1 file changed, 1 insertion(+), 1 deletion(-)
4213
4214commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28
4215Author: Lasse Collin <lasse.collin@tukaani.org>
4216Date:   2025-03-06 19:14:23 +0200
4217
4218    xz: Update the man page about the environment variables
4219
4220 src/xz/xz.1 | 26 ++++++++++++++++++++++++--
4221 1 file changed, 24 insertions(+), 2 deletions(-)
4222
4223commit 808f05af3ef40730d40b3798666757bd866484f1
4224Author: Lasse Collin <lasse.collin@tukaani.org>
4225Date:   2025-03-06 17:37:39 +0200
4226
4227    Docs: Add a few TRANSLATORS comments to man pages
4228
4229    All translators know that --command-line-options must not be translated.
4230    With some other strings it's not obvious when the untranslated string
4231    must be preserved. These comments hopefully help.
4232
4233 src/scripts/xzmore.1 |  2 ++
4234 src/xz/xz.1          | 22 ++++++++++++++++++++++
4235 2 files changed, 24 insertions(+)
4236
4237commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b
4238Author: Lasse Collin <lasse.collin@tukaani.org>
4239Date:   2025-03-06 16:34:32 +0200
4240
4241    Scripts: Mark the LZMA Utils script aliases as deprecated
4242
4243    The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
4244    lzgrep, lzegrep, and lzfgrep. The commands that start with
4245    the xz prefix have identical behavior, for example, both
4246    lzgrep and xzgrep handle all supported file formats.
4247
4248    This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
4249    The last release of LZMA Utils was made in 2008, but the lzma
4250    compatibility alias for the gzip-like tool is still in common use.
4251    Deprecating it would cause unnecessary breakage.
4252
4253 src/scripts/xzdiff.1 | 5 ++++-
4254 src/scripts/xzgrep.1 | 6 +++++-
4255 src/scripts/xzless.1 | 4 +++-
4256 src/scripts/xzmore.1 | 4 +++-
4257 4 files changed, 15 insertions(+), 4 deletions(-)
4258
4259commit 4941ea454c02cf15a64d6434a0778fc2a81282fc
4260Author: Lasse Collin <lasse.collin@tukaani.org>
4261Date:   2025-03-02 21:13:04 +0200
4262
4263    Translations: Add Serbian man page translations
4264
4265 po4a/po4a.conf |    2 +-
4266 po4a/sr.po     | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4267 2 files changed, 3893 insertions(+), 1 deletion(-)
4268
4269commit d142d96f24daa451edaabfca8594e202932b3c0b
4270Author: Lasse Collin <lasse.collin@tukaani.org>
4271Date:   2025-03-02 20:42:14 +0200
4272
4273    Translations: Update Georgian translation
4274
4275 po/ka.po | 4 ++--
4276 1 file changed, 2 insertions(+), 2 deletions(-)
4277
4278commit 9b7e45d841195c8fd8d286e26f810df28c53dd16
4279Author: Lasse Collin <lasse.collin@tukaani.org>
4280Date:   2025-02-28 21:07:21 +0200
4281
4282    Update THANKS
4283
4284 THANKS | 1 +
4285 1 file changed, 1 insertion(+)
4286
4287commit 9351592710e0df3238b09d39c545a643c50ac88f
4288Author: Lasse Collin <lasse.collin@tukaani.org>
4289Date:   2025-02-22 16:04:58 +0200
4290
4291    Update THANKS
4292
4293 THANKS | 1 +
4294 1 file changed, 1 insertion(+)
4295
4296commit 9023be7831faca2f28def55e16c39e3a42e1e262
4297Author: Lasse Collin <lasse.collin@tukaani.org>
4298Date:   2025-02-19 16:33:52 +0200
4299
4300    Translations: Update the Croatian translation
4301
4302 po/hr.po | 6 +++---
4303 1 file changed, 3 insertions(+), 3 deletions(-)
4304
4305commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5
4306Author: Lasse Collin <lasse.collin@tukaani.org>
4307Date:   2025-02-17 21:46:15 +0200
4308
4309    Build: Fix out-of-tree builds when using the replacement getopt_long
4310
4311    Nowaways $(top_builddir)/lib/getopt.h depends on headers in
4312    $(top_srcdir)/lib, so both have to be in the include path.
4313    CMake-based build already did this.
4314
4315    Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca
4316
4317 src/lzmainfo/Makefile.am | 6 ++++--
4318 src/xz/Makefile.am       | 6 ++++--
4319 src/xzdec/Makefile.am    | 6 ++++--
4320 3 files changed, 12 insertions(+), 6 deletions(-)
4321
4322commit 41322b2c60cd2c67a1053cb40d27e573420185b7
4323Author: Lasse Collin <lasse.collin@tukaani.org>
4324Date:   2025-02-17 18:25:52 +0200
4325
4326    m4/getopt.m4: Remove an outdated comment
4327
4328 m4/getopt.m4 | 3 ---
4329 1 file changed, 3 deletions(-)
4330
4331commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489
4332Author: Lasse Collin <lasse.collin@tukaani.org>
4333Date:   2025-02-17 18:11:58 +0200
4334
4335    Build: Allow forcing the use of the replacement getopt_long
4336
4337    Now one can pass gl_replace_getopt=yes to configure to force the use
4338    of GNU getopt_long from the lib directory. This only checks that the
4339    value of gl_replace_getopt is non-empty, so one cannot force the
4340    replacement to be disabled.
4341
4342    Closes: https://github.com/tukaani-project/xz/pull/166
4343
4344 m4/getopt.m4 | 5 +++--
4345 1 file changed, 3 insertions(+), 2 deletions(-)
4346
4347commit c23b837d15960ecc0d537f0260f389904e1e7f02
4348Author: Lasse Collin <lasse.collin@tukaani.org>
4349Date:   2025-02-17 18:11:42 +0200
4350
4351    Update THANKS
4352
4353 THANKS | 1 +
4354 1 file changed, 1 insertion(+)
4355
4356commit 2672a38f1159babf9ba3cca429f644bb823a8bdd
4357Author: Lasse Collin <lasse.collin@tukaani.org>
4358Date:   2025-02-12 19:23:31 +0200
4359
4360    Update THANKS
4361
4362 THANKS | 2 ++
4363 1 file changed, 2 insertions(+)
4364
4365commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23
4366Author: Lasse Collin <lasse.collin@tukaani.org>
4367Date:   2025-02-11 12:13:41 +0200
4368
4369    Update THANKS
4370
4371 THANKS | 3 +++
4372 1 file changed, 3 insertions(+)
4373
4374commit 0d553568f1af9a35779ecac41392a6c871786930
4375Author: Lasse Collin <lasse.collin@tukaani.org>
4376Date:   2025-02-08 11:39:08 +0200
4377
4378    Translations: Update the Polish translation
4379
4380 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++---------------------------
4381 1 file changed, 464 insertions(+), 338 deletions(-)
4382
4383commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd
4384Author: Lasse Collin <lasse.collin@tukaani.org>
4385Date:   2025-02-07 19:12:03 +0200
4386
4387    Docs: Update TODO a little
4388
4389 TODO | 22 ++++------------------
4390 1 file changed, 4 insertions(+), 18 deletions(-)
4391
4392commit f5aa292c534f87b9dd588e667d1c65ed31e5f289
4393Author: Lasse Collin <lasse.collin@tukaani.org>
4394Date:   2025-02-07 18:50:56 +0200
4395
4396    Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS
4397
4398    These are specific phrases that were included in the advisories and
4399    NEWS. It's nice to have them in THANKS as well.
4400
4401 THANKS | 4 ++++
4402 1 file changed, 4 insertions(+)
4403
4404commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9
4405Author: Lasse Collin <lasse.collin@tukaani.org>
4406Date:   2025-02-07 18:43:00 +0200
4407
4408    Update THANKS
4409
4410 THANKS | 5 +++++
4411 1 file changed, 5 insertions(+)
4412
4413commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d
4414Author: Lasse Collin <lasse.collin@tukaani.org>
4415Date:   2025-02-04 14:12:46 +0200
4416
4417    Docs: Update the "Translations" section in README
4418
4419    Make it clearer that translations cannot be accepted if they don't
4420    come via the Translation Project.
4421
4422    Column headings have been handled automatically for years and now --help
4423    is autowrapped too, so the related instructions can be removed.
4424
4425 README | 107 ++++++++++++++++++++++++-----------------------------------------
4426 1 file changed, 39 insertions(+), 68 deletions(-)
4427
4428commit 2c7aee94936babf84b61b55420e503a0b2629ec1
4429Author: Lasse Collin <lasse.collin@tukaani.org>
4430Date:   2025-02-04 13:23:53 +0200
4431
4432    debug/translations.bash: Revise a little
4433
4434    Make it work for out-of-tree builds without requiring one to specify
4435    the location of the xz executable.
4436
4437    Add xz --filters-help.
4438
4439    Make the output shorter by reducing the number of xz -lvv test files.
4440
4441    Show the value of LANGUAGE environment variable.
4442
4443    Show the xz.git version using git describe --abbrev=8 instead of =4.
4444
4445 debug/translation.bash | 24 +++++++++++-------------
4446 1 file changed, 11 insertions(+), 13 deletions(-)
4447
4448commit c6b15e7045209002bbbf4979c48072af01c20d8d
4449Author: Lasse Collin <lasse.collin@tukaani.org>
4450Date:   2025-02-04 13:20:52 +0200
4451
4452    Build: Use "git describe --abbrev=8" in snapshot tarball names
4453
4454    8 is more likely to be reproducible than the old 4 without being
4455    excessively long for a small repository like this.
4456
4457 Makefile.am | 2 +-
4458 1 file changed, 1 insertion(+), 1 deletion(-)
4459
4460commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33
4461Author: Lasse Collin <lasse.collin@tukaani.org>
4462Date:   2025-02-04 19:37:17 +0200
4463
4464    Update THANKS
4465
4466 THANKS | 2 ++
4467 1 file changed, 2 insertions(+)
4468
4469commit 353c33355cb12e5016d49052fd1e90d15568aa37
4470Author: Lasse Collin <lasse.collin@tukaani.org>
4471Date:   2025-02-03 16:29:31 +0200
4472
4473    Translations: Update the Serbian translation
4474
4475 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++---------------------------
4476 1 file changed, 458 insertions(+), 347 deletions(-)
4477
4478commit 887dc281885052bced32b3aa309506ea58a2e78e
4479Author: Lasse Collin <lasse.collin@tukaani.org>
4480Date:   2025-02-03 16:15:38 +0200
4481
4482    Translations: Update Chinese (traditional) translation
4483
4484    Since there are no spaces between words, the unsophisticated automatic
4485    word wrapping code needs some help. Compared to the version in the
4486    Translation Project, I added a few \t characters which the word
4487    wrapping code interprets as zero width spaces (hopefully they are
4488    placed correctly). These edits can be seen with this command:
4489
4490        grep -v ^# po/zh_TW.po | grep --color -F '\t'
4491
4492 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++---------------------------
4493 1 file changed, 471 insertions(+), 372 deletions(-)
4494
4495commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f
4496Author: Lasse Collin <lasse.collin@tukaani.org>
4497Date:   2025-02-03 16:12:44 +0200
4498
4499    Update THANKS
4500
4501 THANKS | 2 ++
4502 1 file changed, 2 insertions(+)
4503
4504commit 23ea031820086d302a213be005a091df763b8a7b
4505Author: Lasse Collin <lasse.collin@tukaani.org>
4506Date:   2025-02-02 14:15:07 +0200
4507
4508    Build: Update posix-shell.m4 from Gnulib
4509
4510    Tabs have been converted to spaces and a "serial" number has been
4511    added. The previous version was from 2008/2009. There are no functional
4512    changes since then but now it's clearer that the copy in XZ Utils
4513    isn't outdated.
4514
4515    The new file was picked from the Gnulib commit
4516    81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds
4517    a warranty disclaimer to the license, which obviously is fine,
4518    but I didn't find a SPDX license identifier for the new license,
4519    so for simplicity I used the earlier commit.
4520
4521 m4/posix-shell.m4 | 31 ++++++++++++++++---------------
4522 1 file changed, 16 insertions(+), 15 deletions(-)
4523
4524commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b
4525Author: Lasse Collin <lasse.collin@tukaani.org>
4526Date:   2025-02-02 12:51:03 +0200
4527
4528    Build: Check for -fsanitize= also in $CC
4529
4530    People may put -fsanitize in CC instead of CFLAGS so check both.
4531    Landlock sandbox isn't compatible with sanitizers so it's nice
4532    to catch the incompatible options at configure time.
4533
4534    Don't attempt to do the same in CMakeLists.txt; the check for
4535    CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from
4536    the CC environment variable go into the undocumented internal variable
4537    CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable).
4538    Peeking the internal variable merely for improved diagnostics isn't
4539    worth it.
4540
4541    Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179
4542
4543 configure.ac | 5 +++--
4544 1 file changed, 3 insertions(+), 2 deletions(-)
4545
4546commit a7304ea4a7daede9789a8fe422b714e372737120
4547Author: Lasse Collin <lasse.collin@tukaani.org>
4548Date:   2023-09-26 19:11:20 +0300
4549
4550    Build: Remove the FIXME about -Werror checks
4551
4552 configure.ac | 7 -------
4553 1 file changed, 7 deletions(-)
4554
4555commit 1780bba74075da5e7764615bd323e95e19057dee
4556Author: Lasse Collin <lasse.collin@tukaani.org>
4557Date:   2023-09-26 19:10:51 +0300
4558
4559    Build: If using a GCC compatible compiler, ensure that -Werror works
4560
4561    The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure.
4562    It won't be documented anywhere else than in the error message.
4563
4564    Ways to test:
4565
4566        ./configure CC=gcc CFLAGS=-Wunused-macros
4567        ./configure CC=clang CFLAGS=-Weverything
4568        ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes
4569
4570 configure.ac | 26 ++++++++++++++++++++++++++
4571 1 file changed, 26 insertions(+)
4572
4573commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d
4574Author: Lasse Collin <lasse.collin@tukaani.org>
4575Date:   2025-02-02 14:30:15 +0200
4576
4577    Update THANKS
4578
4579 THANKS | 4 ++++
4580 1 file changed, 4 insertions(+)
4581
4582commit 186ff78ab40ceb07cde139506cab42a927ca99d2
4583Author: Lasse Collin <lasse.collin@tukaani.org>
4584Date:   2025-02-01 12:49:09 +0200
4585
4586    Translations: Update Romanian translation
4587
4588 po/ro.po | 12 ++++++------
4589 1 file changed, 6 insertions(+), 6 deletions(-)
4590
4591commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4
4592Author: Lasse Collin <lasse.collin@tukaani.org>
4593Date:   2025-01-30 18:16:43 +0200
4594
4595    Translations: Update Korean man page translations
4596
4597 po4a/ko.po | 146 ++++++++++++++++++++++++-------------------------------------
4598 1 file changed, 56 insertions(+), 90 deletions(-)
4599
4600commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72
4601Author: Lasse Collin <lasse.collin@tukaani.org>
4602Date:   2025-01-30 18:15:52 +0200
4603
4604    Translations: Add Italian man page translations
4605
4606 po4a/it.po     | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4607 po4a/po4a.conf |    2 +-
4608 2 files changed, 3877 insertions(+), 1 deletion(-)
4609
4610commit 9b9182e561787a811fc0178489589f28c3e0174c
4611Author: Lasse Collin <lasse.collin@tukaani.org>
4612Date:   2025-01-29 22:18:29 +0200
4613
4614    Translations: Update the Finnish translation
4615
4616 po/fi.po | 13 +++++++------
4617 1 file changed, 7 insertions(+), 6 deletions(-)
4618
4619commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f
4620Author: Lasse Collin <lasse.collin@tukaani.org>
4621Date:   2025-01-29 20:50:03 +0200
4622
4623    lzmainfo: Use tuklib_mbstr_wrap for --help text
4624
4625    Some languages have so long strings that they need to be wrapped.
4626
4627 CMakeLists.txt           |  4 ++++
4628 src/lzmainfo/Makefile.am |  2 ++
4629 src/lzmainfo/lzmainfo.c  | 36 ++++++++++++++++++++++++++----------
4630 3 files changed, 32 insertions(+), 10 deletions(-)
4631
4632commit c56eb4707627d700695813fccdddd1483eac4f21
4633Author: Lasse Collin <lasse.collin@tukaani.org>
4634Date:   2025-01-29 20:00:06 +0200
4635
4636    Translations: Update the Croatian translation
4637
4638 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++---------------------------
4639 1 file changed, 529 insertions(+), 397 deletions(-)
4640
4641commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc
4642Author: Lasse Collin <lasse.collin@tukaani.org>
4643Date:   2025-01-29 19:56:01 +0200
4644
4645    Translations: Update the Finnish translation
4646
4647 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------
4648 1 file changed, 483 insertions(+), 428 deletions(-)
4649
4650commit d49dde33cf5f488bb38b1f57e172c4e3343fb383
4651Author: Lasse Collin <lasse.collin@tukaani.org>
4652Date:   2025-01-29 19:55:27 +0200
4653
4654    Translations: Update the German man page translations
4655
4656 po4a/de.po | 147 +++++++++++++++++++++++--------------------------------------
4657 1 file changed, 55 insertions(+), 92 deletions(-)
4658
4659commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c
4660Author: Lasse Collin <lasse.collin@tukaani.org>
4661Date:   2025-01-29 19:55:17 +0200
4662
4663    Translations: Update the German translation
4664
4665 po/de.po | 825 +++++++++++++++++++++++++++++++++++----------------------------
4666 1 file changed, 460 insertions(+), 365 deletions(-)
4667
4668commit 7edab2bde0606b42229d9c04fe664069e38de3fb
4669Author: Lasse Collin <lasse.collin@tukaani.org>
4670Date:   2025-01-29 19:55:05 +0200
4671
4672    Translations: Update the Turkish translation
4673
4674 po/tr.po | 892 +++++++++++++++++++++++++++++++++++----------------------------
4675 1 file changed, 490 insertions(+), 402 deletions(-)
4676
4677commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5
4678Author: Lasse Collin <lasse.collin@tukaani.org>
4679Date:   2025-01-29 19:54:36 +0200
4680
4681    Translations: Add the Dutch translation
4682
4683 po/LINGUAS |    1 +
4684 po/nl.po   | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4685 2 files changed, 1269 insertions(+)
4686
4687commit abe5092f24b55dde9f7f78fac1bf810bce173273
4688Author: Lasse Collin <lasse.collin@tukaani.org>
4689Date:   2025-01-29 19:53:50 +0200
4690
4691    Translations: Update the Georgian translation
4692
4693 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++----------------
4694 1 file changed, 115 insertions(+), 38 deletions(-)
4695
4696commit b97b23c78d8100eec363c3e999c511560366d347
4697Author: Lasse Collin <lasse.collin@tukaani.org>
4698Date:   2025-01-29 19:53:21 +0200
4699
4700    Translations: Update the Spanish translation
4701
4702 po/es.po | 824 ++++++++++++++++++++++++++++++++++-----------------------------
4703 1 file changed, 450 insertions(+), 374 deletions(-)
4704
4705commit c68318cb49e0562bd22e88724ce85e76c6789a3a
4706Author: Lasse Collin <lasse.collin@tukaani.org>
4707Date:   2025-01-29 19:53:06 +0200
4708
4709    Translations: Update the Korean translation
4710
4711 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++--------------------------
4712 1 file changed, 460 insertions(+), 325 deletions(-)
4713
4714commit 153ee17f635962a474499f786ea1de1e1a2bb276
4715Author: Lasse Collin <lasse.collin@tukaani.org>
4716Date:   2025-01-29 19:52:42 +0200
4717
4718    Translations: Update the Romanian man page translations
4719
4720 po4a/ro.po | 141 +++++++++++++++++++++++--------------------------------------
4721 1 file changed, 54 insertions(+), 87 deletions(-)
4722
4723commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4
4724Author: Lasse Collin <lasse.collin@tukaani.org>
4725Date:   2025-01-29 19:51:59 +0200
4726
4727    Translations: Update the Romanian translation
4728
4729 po/ro.po | 818 +++++++++++++++++++++++++++++++++++----------------------------
4730 1 file changed, 461 insertions(+), 357 deletions(-)
4731
4732commit 06028803e19219f642aa9abddd3525c43594ec6c
4733Author: Lasse Collin <lasse.collin@tukaani.org>
4734Date:   2025-01-29 19:50:50 +0200
4735
4736    Translations: Update the Ukrainian man page translations
4737
4738 po4a/uk.po | 142 +++++++++++++++++++++++--------------------------------------
4739 1 file changed, 54 insertions(+), 88 deletions(-)
4740
4741commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df
4742Author: Lasse Collin <lasse.collin@tukaani.org>
4743Date:   2025-01-29 19:50:26 +0200
4744
4745    Translations: Update the Ukrainian translation
4746
4747 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++---------------------------
4748 1 file changed, 460 insertions(+), 353 deletions(-)
4749
4750commit 81c352907b8048b97d9868947026701a49f377ef
4751Author: Lasse Collin <lasse.collin@tukaani.org>
4752Date:   2025-01-29 19:48:43 +0200
4753
4754    Translations: Update the Swedish translation
4755
4756 po/sv.po | 847 ++++++++++++++++++++++++++++++++++-----------------------------
4757 1 file changed, 462 insertions(+), 385 deletions(-)
4758
4759commit 999ce263718a52ba74245c3e2a416ab11494d1b1
4760Author: Lasse Collin <lasse.collin@tukaani.org>
4761Date:   2025-01-28 16:33:32 +0200
4762
4763    tuklib_physmem: Clean up disabled code
4764
4765 src/common/tuklib_physmem.c | 9 +--------
4766 1 file changed, 1 insertion(+), 8 deletions(-)
4767
4768commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab
4769Author: Lasse Collin <lasse.collin@tukaani.org>
4770Date:   2025-01-28 16:28:18 +0200
4771
4772    Windows: Avoid an error message on broken pipe
4773
4774    Also make xz not process more input files after a broken pipe has
4775    been detected. This matches the behavior on POSIX. If all files
4776    are being written to standard output, trying with the next file is
4777    pointless when it's known that standard output won't accept more data.
4778
4779    xzdec already stopped after the first error. It does so with all
4780    errors, so it differs from xz:
4781
4782        $ xz -dc not_found_1 not_found_2
4783        xz: not_found_1: No such file or directory
4784        xz: not_found_2: No such file or directory
4785
4786        $ xzdec not_found_1 not_found_2
4787        xzdec: not_found_1: No such file or directory
4788
4789    Reported-by: Vincent Torri
4790
4791 src/xz/file_io.c  | 13 +++++++++++++
4792 src/xzdec/xzdec.c | 11 ++++++++++-
4793 2 files changed, 23 insertions(+), 1 deletion(-)
4794
4795commit 95b638480aa8203e547c709c651f421c22db1718
4796Author: Lasse Collin <lasse.collin@tukaani.org>
4797Date:   2025-01-23 19:59:17 +0200
4798
4799    doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha
4800
4801 doc/SHA256SUMS | 9 +++++++++
4802 1 file changed, 9 insertions(+)
4803
4804commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d
4805Author: Lasse Collin <lasse.collin@tukaani.org>
4806Date:   2025-01-23 11:50:42 +0200
4807
4808    Bump version and soname for 5.7.1alpha
4809
4810 src/liblzma/Makefile.am         | 2 +-
4811 src/liblzma/api/lzma/version.h  | 2 +-
4812 src/liblzma/liblzma_generic.map | 2 +-
4813 src/liblzma/liblzma_linux.map   | 2 +-
4814 4 files changed, 4 insertions(+), 4 deletions(-)
4815
4816commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322
4817Author: Lasse Collin <lasse.collin@tukaani.org>
4818Date:   2025-01-23 11:48:43 +0200
4819
4820    Translations: Run po4a/update-po
4821
4822 po4a/de.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
4823 po4a/fr.po    | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
4824 po4a/ko.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
4825 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
4826 po4a/ro.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
4827 po4a/uk.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
4828 6 files changed, 320 insertions(+), 50 deletions(-)
4829
4830commit ff0b825505e60e21b32e33c42f551c8f34ba393f
4831Author: Lasse Collin <lasse.collin@tukaani.org>
4832Date:   2025-01-23 11:40:46 +0200
4833
4834    Add NEWS for 5.7.1alpha
4835
4836 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4837 1 file changed, 107 insertions(+)
4838
4839commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf
4840Author: Lasse Collin <lasse.collin@tukaani.org>
4841Date:   2025-01-23 11:40:46 +0200
4842
4843    Add NEWS for 5.6.4
4844
4845 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
4846 1 file changed, 45 insertions(+)
4847
4848commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228
4849Author: Lasse Collin <lasse.collin@tukaani.org>
4850Date:   2025-01-23 11:40:46 +0200
4851
4852    NEWS: The security fix in 5.6.3 is known as CVE-2024-47611
4853
4854 NEWS | 4 +++-
4855 1 file changed, 3 insertions(+), 1 deletion(-)
4856
4857commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29
4858Author: Lasse Collin <lasse.collin@tukaani.org>
4859Date:   2025-01-22 16:55:09 +0200
4860
4861    windows/build.bash: Fix error message
4862
4863    Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
4864
4865 windows/build.bash | 2 +-
4866 1 file changed, 1 insertion(+), 1 deletion(-)
4867
4868commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb
4869Author: Lasse Collin <lasse.collin@tukaani.org>
4870Date:   2025-01-22 15:03:55 +0200
4871
4872    Windows: Disable MinGW-w64's stdio functions in size-optimized builds
4873
4874    This only affects builds with UCRT. With legacy MSVCRT, the replacement
4875    functions are always enabled.
4876
4877    Omitting the MinGW-w64 replacements saves over 20 KiB per executable.
4878    The downside is that --enable-small or XZ_SMALL=ON disables thousand
4879    separator support in xz messages. If someone is OK with the slower
4880    speed of slightly smaller builds, lack of thousand separators won't
4881    matter.
4882
4883    Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via
4884    CPPFLAGS or such method).
4885
4886 src/common/sysdefs.h | 30 +++++++++++++++++++++---------
4887 src/xz/util.c        |  6 +++++-
4888 2 files changed, 26 insertions(+), 10 deletions(-)
4889
4890commit a831bc185bdd44c06847eae8df2d35cc281f65da
4891Author: Lasse Collin <lasse.collin@tukaani.org>
4892Date:   2025-01-20 16:44:27 +0200
4893
4894    liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs
4895
4896    Put them behind the LZMA_UNSTABLE macro for now.
4897
4898    These low-level special APIs might become useful in erofs-utils.
4899
4900 src/liblzma/api/lzma/bcj.h      | 99 +++++++++++++++++++++++++++++++++++++++++
4901 src/liblzma/common/common.h     |  2 +
4902 src/liblzma/liblzma_generic.map | 10 +++++
4903 src/liblzma/liblzma_linux.map   | 10 +++++
4904 src/liblzma/simple/arm64.c      | 18 ++++++++
4905 src/liblzma/simple/riscv.c      | 18 ++++++++
4906 src/liblzma/simple/x86.c        | 24 ++++++++++
4907 7 files changed, 181 insertions(+)
4908
4909commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c
4910Author: Lasse Collin <lasse.collin@tukaani.org>
4911Date:   2025-01-20 16:31:49 +0200
4912
4913    xz: Unify a few strings with liblzma
4914
4915    Avoid having both "%s: foo" and "foo" as translatable strings
4916    so that translators don't need to handle it twice.
4917
4918 src/xz/options.c | 11 ++++++-----
4919 src/xz/util.c    |  4 ++--
4920 2 files changed, 8 insertions(+), 7 deletions(-)
4921
4922commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb
4923Author: Lasse Collin <lasse.collin@tukaani.org>
4924Date:   2025-01-20 16:31:49 +0200
4925
4926    xz: Translate error messages from lzma_str_to_filters()
4927
4928    liblzma doesn't use gettext but the messages are included in xz.pot,
4929    so xz can translate the messages.
4930
4931 src/xz/coder.c | 9 +++------
4932 1 file changed, 3 insertions(+), 6 deletions(-)
4933
4934commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028
4935Author: Lasse Collin <lasse.collin@tukaani.org>
4936Date:   2025-01-20 16:31:49 +0200
4937
4938    liblzma: Mark string conversion messages as translatable
4939
4940 po/POTFILES.in                         |  1 +
4941 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++--------------
4942 2 files changed, 59 insertions(+), 38 deletions(-)
4943
4944commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9
4945Author: Lasse Collin <lasse.collin@tukaani.org>
4946Date:   2025-01-20 16:31:35 +0200
4947
4948    liblzma: Tweak a few error messages in lzma_str_to_filters()
4949
4950 src/liblzma/common/string_conversion.c | 9 +++++----
4951 1 file changed, 5 insertions(+), 4 deletions(-)
4952
4953commit da359c360e986b21cd8d7b888c6a80f56b9d49c7
4954Author: Lasse Collin <lasse.collin@tukaani.org>
4955Date:   2025-01-19 20:11:54 +0200
4956
4957    Update THANKS
4958
4959 THANKS | 1 +
4960 1 file changed, 1 insertion(+)
4961
4962commit f032373561cefaf07f92ffe3fbc471ec6770456e
4963Author: Lasse Collin <lasse.collin@tukaani.org>
4964Date:   2025-01-19 19:40:32 +0200
4965
4966    Update THANKS
4967
4968 THANKS | 1 +
4969 1 file changed, 1 insertion(+)
4970
4971commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615
4972Author: Lasse Collin <lasse.collin@tukaani.org>
4973Date:   2025-01-13 08:44:58 +0200
4974
4975    liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs
4976
4977    Previously it was enabled only on x86-64 and ARM64 when also support
4978    for unaligned access was detected or manually enabled at built time.
4979
4980    In the default build configuration, the 8-byte method is now enabled
4981    also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was
4982    reported that on big endian POWER9, encoding time may reduce 12-13 %.
4983
4984    This change only affects builds with GCC and Clang because the code
4985    uses __builtin_ctzll or __builtin_clzll.
4986
4987    Thanks to Marcus Comstedt for testing on POWER9.
4988
4989 src/liblzma/common/memcmplen.h | 3 +--
4990 1 file changed, 1 insertion(+), 2 deletions(-)
4991
4992commit 96336b0110d47756a9fd2a103fbf0a99e905fbed
4993Author: Lasse Collin <lasse.collin@tukaani.org>
4994Date:   2025-01-12 13:06:17 +0200
4995
4996    Update THANKS
4997
4998 THANKS | 1 +
4999 1 file changed, 1 insertion(+)
5000
5001commit 150356207c8d6a3e0af465b676430d19d62f884c
5002Author: Lasse Collin <lasse.collin@tukaani.org>
5003Date:   2025-01-12 12:59:20 +0200
5004
5005    liblzma: Fix the encoder breakage on big endian ARM64
5006
5007    When the 8-byte method was enabled for ARM64, a check for endianness
5008    wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it.
5009
5010    Fixes: cd64dd70d5665b6048829c45772d08606f44672e
5011    Co-authored-by: Marcus Comstedt <marcus@mc.pp.se>
5012
5013 src/liblzma/common/memcmplen.h | 9 +++++++--
5014 1 file changed, 7 insertions(+), 2 deletions(-)
5015
5016commit b01b0958025a2da284b53a583f313f8140636cb5
5017Author: Lasse Collin <lasse.collin@tukaani.org>
5018Date:   2025-01-12 11:04:27 +0200
5019
5020    Windows: Update manifest comments about long UTF-8 filenames
5021
5022 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++--------
5023 1 file changed, 15 insertions(+), 8 deletions(-)
5024
5025commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a
5026Author: Lasse Collin <lasse.collin@tukaani.org>
5027Date:   2025-01-12 10:47:58 +0200
5028
5029    Windows: Update build.bash and its README-Windows.txt to UCRT
5030
5031    While MSVCRT builds are possible, UCRT works better with UTF-8.
5032    A 32-bit build is included still but hopefully it's not actually
5033    needed anymore.
5034
5035 windows/README-Windows.txt | 17 ++++++++---------
5036 windows/build.bash         | 20 ++++++++++++++------
5037 2 files changed, 22 insertions(+), 15 deletions(-)
5038
5039commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2
5040Author: Lasse Collin <lasse.collin@tukaani.org>
5041Date:   2025-01-10 13:11:40 +0200
5042
5043    Translations: Update Serbian translation
5044
5045    I rewrapped a few overlong lines. Those edits aren't in the
5046    Translation Project. Automatic wrapping in the master branch
5047    means that these strings need to be updated soon anyway.
5048
5049 po/sr.po | 346 ++++++++++++++++++++++-----------------------------------------
5050 1 file changed, 121 insertions(+), 225 deletions(-)
5051
5052commit 950da11ce09c90412dcbca29689575037640667a
5053Author: Lasse Collin <lasse.collin@tukaani.org>
5054Date:   2025-01-08 19:26:29 +0200
5055
5056    Build: Use --sort=name in TAR_OPTIONS
5057
5058    Use also LC_COLLATE=C to make the sorting locale-independent.
5059    Sorting makes the file order reproducible.
5060
5061 Makefile.am | 3 ++-
5062 1 file changed, 2 insertions(+), 1 deletion(-)
5063
5064commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d
5065Author: Lasse Collin <lasse.collin@tukaani.org>
5066Date:   2025-01-08 19:08:08 +0200
5067
5068    xz: Workaround broken O_SEARCH in musl
5069
5070    Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result
5071    in a file descriptor that works with fsync() although it should work.
5072    See the added comment.
5073
5074    The same issue affected gzip --synchronous:
5075
5076        https://bugs.gnu.org/75405
5077
5078    Thanks to Paul Eggert.
5079
5080 src/xz/file_io.c | 11 +++++++++++
5081 1 file changed, 11 insertions(+)
5082
5083commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c
5084Author: Lasse Collin <lasse.collin@tukaani.org>
5085Date:   2025-01-07 21:34:33 +0200
5086
5087    Revert "xz: O_SEARCH cannot be used for fsync()"
5088
5089    This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f.
5090
5091    POSIX-conforming O_SEARCH should allow fsync().
5092
5093 src/xz/file_io.c | 21 +++++++++++----------
5094 1 file changed, 11 insertions(+), 10 deletions(-)
5095
5096commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f
5097Author: Lasse Collin <lasse.collin@tukaani.org>
5098Date:   2025-01-05 21:43:11 +0200
5099
5100    xz: O_SEARCH cannot be used for fsync()
5101
5102    Opening a directory with O_SEARCH results in a file descriptor that can
5103    be used with functions like openat(). Such a file descriptor cannot be
5104    used with fsync(). Use O_RDONLY instead.
5105
5106    In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor
5107    from O_PATH doesn't allow fsync().
5108
5109    Seems that it's not possible to fsync() a directory that has write
5110    and search permissions but not read permission.
5111
5112    Fixes: 2a9e91d796d091740489d951fa7780525e4275f1
5113
5114 src/xz/file_io.c | 21 ++++++++++-----------
5115 1 file changed, 10 insertions(+), 11 deletions(-)
5116
5117commit ad2b57cb477b753293c25a01fc24c7f84ee523c2
5118Author: Lasse Collin <lasse.collin@tukaani.org>
5119Date:   2025-01-05 20:48:28 +0200
5120
5121    CI: Make ctest show errors from failed tests
5122
5123 build-aux/ci_build.bash | 2 +-
5124 1 file changed, 1 insertion(+), 1 deletion(-)
5125
5126commit c405264c031aceaf68dfd1546d6337afcebd48e5
5127Author: Lasse Collin <lasse.collin@tukaani.org>
5128Date:   2025-01-05 20:14:49 +0200
5129
5130    tuklib_mbstr_nonprint: Preserve the value of errno
5131
5132    A typical use case is like this:
5133
5134        printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno));
5135
5136    tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify
5137    errno. If errno isn't preserved, the error message might be wrong if
5138    a compiler decides to call tuklib_mask_nonprint() before strerror().
5139
5140    Fixes: 40e573305535960574404d2eae848b248c95ea7e
5141
5142 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++---
5143 src/common/tuklib_mbstr_nonprint.h |  4 +++-
5144 2 files changed, 17 insertions(+), 4 deletions(-)
5145
5146commit 2a9e91d796d091740489d951fa7780525e4275f1
5147Author: Lasse Collin <lasse.collin@tukaani.org>
5148Date:   2025-01-05 20:14:49 +0200
5149
5150    xz: Use fsync() before deleting the input file, and add --no-sync
5151
5152    xz's default behavior is to delete the input file after successful
5153    compression or decompression (unless writing to standard output).
5154    If the system crashes soon after the deletion, it is possible that
5155    the newly written file has not yet hit the disk while the previous
5156    delete operation might have. In that case neither the original file
5157    nor the written file is available.
5158
5159    Call fsync() on the file. On POSIX systems, sync also the directory
5160    where the file was created.
5161
5162    Add a new option --no-sync which disables fsync() usage. It can avoid
5163    a (possibly significant) performance penalty when processing many
5164    small files. It's fine to use --no-sync when one knows that the files
5165    are easy to recreate or restore after a system crash.
5166
5167    Using fsync() after every flush initiated by --flush-timeout was
5168    considered. It wasn't implemented at least for now.
5169
5170      - --flush-timeout is typically used when writing to stdout. If stdout
5171        is a file, xz cannot (portably) sync the directory of the file.
5172        One would need to create the output file first, sync the directory,
5173        and then run xz with fsync() enabled.
5174
5175      - If xz --flush-timeout output goes to a file, it's possible to use
5176        a separate script to sync the file, for example, once per minute
5177        while telling xz to flush more frequently.
5178
5179      - Not supporting syncing with --flush-timeout was simpler.
5180
5181    Portability notes:
5182
5183      - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now
5184        fail if "dir" cannot be opened for reading. If "dir" still has
5185        write and search permissions (like d-wx------ in "ls -l"),
5186        previously xz would have been able to compress "dir/file" still.
5187        Now it only works if using --no-sync (or --keep or --stdout).
5188
5189      - <libgen.h> and dirname() should be available on all POSIX systems,
5190        and aren't needed on non-POSIX systems.
5191
5192      - fsync() is available on all POSIX systems. The directory syncing
5193        could be changed to fdatasync() although at least on ext4 it
5194        doesn't seem to make a performance difference in xz's usage.
5195        fdatasync() would need a build system check to support (old)
5196        special cases, for example, MINIX 3.3.0 doesn't have fdatasync()
5197        and Solaris 10 needs -lrt.
5198
5199      - On native Windows, _commit() is used to replace fsync(). Directory
5200        syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on
5201        directories is a no-op.)
5202
5203      - DJGPP has fsync() for files. ;-)
5204
5205    Using fsync() was considered somewhere around 2009 and again in 2016 but
5206    those times the idea was rejected. For comparison, GNU gzip 1.7 (2016)
5207    added the option --synchronous which enables fsync().
5208
5209    Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
5210    Fixes: https://bugs.debian.org/814089
5211    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html
5212    Closes: https://github.com/tukaani-project/xz/pull/151
5213
5214 src/xz/args.c    |  14 ++++++
5215 src/xz/args.h    |   2 +-
5216 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
5217 src/xz/file_io.h |   6 +++
5218 src/xz/message.c |   3 ++
5219 src/xz/sandbox.c |   5 ++-
5220 src/xz/xz.1      |  24 ++++++++++-
5221 7 files changed, 177 insertions(+), 6 deletions(-)
5222
5223commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f
5224Author: Lasse Collin <lasse.collin@tukaani.org>
5225Date:   2024-12-27 09:15:50 +0200
5226
5227    xz: Use "goto" for error handling in io_open_dest_real()
5228
5229 src/xz/file_io.c | 20 +++++++++-----------
5230 1 file changed, 9 insertions(+), 11 deletions(-)
5231
5232commit 75107217670a97b7b772833669d88c3c2f188e37
5233Author: Lasse Collin <lasse.collin@tukaani.org>
5234Date:   2025-01-05 12:10:05 +0200
5235
5236    liblzma: Always validate the first digit of a preset string
5237
5238    lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The
5239    call from str_to_filters() detects the string type from the first
5240    character(s) and as a side-effect it validates the first digit of
5241    the preset string. So this change makes no difference there.
5242
5243    However, the call from parse_options() doesn't pre-validate the string.
5244    parse_lzma12_preset() will return an invalid value which is passed to
5245    lzma_lzma_preset() which safely rejects it. The bug still affects the
5246    the error message:
5247
5248        $ xz --filters=lzma2:preset=X
5249        xz: Error in --filters=FILTERS option:
5250        xz: lzma2:preset=X
5251        xz:               ^
5252        xz: Unsupported preset
5253
5254    After the fix:
5255
5256        $ xz --filters=lzma2:preset=X
5257        xz: Error in --filters=FILTERS option:
5258        xz: lzma2:preset=X
5259        xz:              ^
5260        xz: Unsupported preset
5261
5262    The ^ now correctly points to the X and not past it because the X itself
5263    is the problematic character.
5264
5265    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
5266
5267 src/liblzma/common/string_conversion.c | 4 ++++
5268 1 file changed, 4 insertions(+)
5269
5270commit 52ff32433734d03befd85a5bf00fba77d6501455
5271Author: Lasse Collin <lasse.collin@tukaani.org>
5272Date:   2025-01-05 11:40:34 +0200
5273
5274    xz: Fix getopt_long argument type in --filters*
5275
5276    Forgetting the argument (or not using = to separate the option from
5277    the argument) resulted in lzma_str_to_filters() being called with NULL
5278    as input string argument. The function handles it fine but xz passes
5279    the NULL to printf() too:
5280
5281        $ xz --filters
5282        xz: Error in --filters=FILTERS option:
5283        xz: (null)
5284        xz: ^
5285        xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters()
5286
5287    Now it's correct:
5288
5289        $ xz --filters
5290        xz: option '--filters' requires an argument
5291
5292    The --filters-help option doesn't take any arguments.
5293
5294    Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760
5295    Fixes: d6af7f347077b22403133239592e478931307759
5296    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
5297
5298 src/xz/args.c | 22 +++++++++++-----------
5299 1 file changed, 11 insertions(+), 11 deletions(-)
5300
5301commit 2655c81b5e92278b0fd51f6537c1116f8349b02a
5302Author: Lasse Collin <lasse.collin@tukaani.org>
5303Date:   2025-01-04 20:04:56 +0200
5304
5305    xzdec: Don't leave Landlock file descriptor open for no reason
5306
5307    This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427.
5308
5309    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
5310
5311 src/xzdec/xzdec.c | 2 ++
5312 1 file changed, 2 insertions(+)
5313
5314commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e
5315Author: Lasse Collin <lasse.collin@tukaani.org>
5316Date:   2025-01-04 20:02:18 +0200
5317
5318    xz: Make --single-stream imply --keep
5319
5320    Suggested by xx on #tukaani on 2024-04-12.
5321
5322 src/xz/args.c | 3 +++
5323 src/xz/xz.1   | 9 ++++++++-
5324 2 files changed, 11 insertions(+), 1 deletion(-)
5325
5326commit 6f412814a8019700248229ce972530159a0d9872
5327Author: Lasse Collin <lasse.collin@tukaani.org>
5328Date:   2025-01-04 19:57:07 +0200
5329
5330    Update AUTHORS
5331
5332    The contributions have been rewritten.
5333
5334 AUTHORS                         | 2 +-
5335 src/liblzma/check/crc32_arm64.h | 1 -
5336 src/liblzma/check/crc32_fast.c  | 1 -
5337 src/liblzma/check/crc_common.h  | 1 -
5338 4 files changed, 1 insertion(+), 4 deletions(-)
5339
5340commit 5651d153031a7ee2581cdba9bff658031826cb50
5341Author: Lasse Collin <lasse.collin@tukaani.org>
5342Date:   2025-01-04 15:02:16 +0200
5343
5344    xz: Avoid printf formats like %2$s
5345
5346    It's a POSIX feature that isn't in standard C. It's not available on
5347    Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support
5348    it even though it supports POSIX %'d for thousand separators.
5349
5350    Gettext's <libintl.h> provides overrides for printf and other functions
5351    which do support the %2$s formats. Translations use them. But xz should
5352    work on Windows without <libintl.h> too.
5353
5354    Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229
5355
5356 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++-------------------
5357 1 file changed, 32 insertions(+), 19 deletions(-)
5358
5359commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf
5360Author: Lasse Collin <lasse.collin@tukaani.org>
5361Date:   2025-01-04 14:41:37 +0200
5362
5363    tuklib_mbstr_wrap: Add printf format attribute
5364
5365    It's supported by GCC 3.x already.
5366
5367 src/common/tuklib_common.h     | 7 +++++++
5368 src/common/tuklib_mbstr_wrap.h | 1 +
5369 2 files changed, 8 insertions(+)
5370
5371commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b
5372Author: Lasse Collin <lasse.collin@tukaani.org>
5373Date:   2025-01-04 13:44:12 +0200
5374
5375    xz: Translate a Windows-specific string
5376
5377    Originally I thought that native Windows builds wouldn't be translated
5378    but nowadays at least MSYS2 ships such binaries.
5379
5380 src/xz/file_io.c | 2 +-
5381 1 file changed, 1 insertion(+), 1 deletion(-)
5382
5383commit 00eb6073c088be9e7516dfc00a13ef520827b57c
5384Author: Lasse Collin <lasse.collin@tukaani.org>
5385Date:   2025-01-02 15:32:10 +0200
5386
5387    xz: Use my_landlock.h
5388
5389    A slightly silly thing is that xz may now query the ABI version up to
5390    three times. We could call my_landlock_ruleset_attr_forbid_all() only
5391    once and cache the result but it didn't seem worth doing.
5392
5393 CMakeLists.txt   |  1 +
5394 src/xz/sandbox.c | 72 ++++++++++----------------------------------------------
5395 2 files changed, 13 insertions(+), 60 deletions(-)
5396
5397commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6
5398Author: Lasse Collin <lasse.collin@tukaani.org>
5399Date:   2025-01-02 15:32:10 +0200
5400
5401    xzdec: Use my_landlock.h
5402
5403 CMakeLists.txt    |  1 +
5404 src/xzdec/xzdec.c | 34 ++++++----------------------------
5405 2 files changed, 7 insertions(+), 28 deletions(-)
5406
5407commit 38cb8ec9fd70d25fca6b473de44cf61586238552
5408Author: Lasse Collin <lasse.collin@tukaani.org>
5409Date:   2025-01-02 15:32:10 +0200
5410
5411    Add my_landlock.h with helper functions to use Linux Landlock
5412
5413    This supports up to Landlock ABI version 6. The current code in
5414    xz and xzdec only support up to ABI version 4.
5415
5416 src/Makefile.am          |   1 +
5417 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++
5418 2 files changed, 142 insertions(+)
5419
5420commit 672da29bb3a209a727ae46c0df948d7eea69f2e2
5421Author: Lasse Collin <lasse.collin@tukaani.org>
5422Date:   2025-01-01 18:46:50 +0200
5423
5424    liblzma: Silence warnings from "clang -Wimplicit-fallthrough"
5425
5426 src/liblzma/lzma/lzma_decoder.c | 2 +-
5427 1 file changed, 1 insertion(+), 1 deletion(-)
5428
5429commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd
5430Author: Lasse Collin <lasse.collin@tukaani.org>
5431Date:   2025-01-01 15:34:51 +0200
5432
5433    Build: Use -Wimplicit-fallthrough=5 when supported
5434
5435    Now that we have the FALLTHROUGH macro, use the strictest mode with
5436    GCC so that comment-based fallthrough markings are no longer accepted.
5437
5438    In GCC, -Wextra includes -Wimplicit-fallthrough=3 and
5439    -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3.
5440    Thus, the strict mode requires specifying -Wimplicit-fallthrough=5.
5441
5442    Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra.
5443    Clang doesn't have a variant that takes an argument. Thus we need
5444    to check for -Wimplicit-fallthrough. Do it before checking for
5445    -Wimplicit-fallthrough=5 so that the latter overrides the former
5446    when using GCC.
5447
5448 CMakeLists.txt | 2 ++
5449 configure.ac   | 2 ++
5450 2 files changed, 4 insertions(+)
5451
5452commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22
5453Author: Lasse Collin <lasse.collin@tukaani.org>
5454Date:   2025-01-01 15:30:50 +0200
5455
5456    Replace "Fall through" comments with FALLTHROUGH
5457
5458 src/liblzma/common/alone_decoder.c     |  3 +--
5459 src/liblzma/common/auto_decoder.c      |  5 ++---
5460 src/liblzma/common/block_decoder.c     |  6 ++----
5461 src/liblzma/common/block_encoder.c     |  6 ++----
5462 src/liblzma/common/common.c            |  2 +-
5463 src/liblzma/common/file_info.c         | 22 +++++++++-------------
5464 src/liblzma/common/index_decoder.c     |  9 +++------
5465 src/liblzma/common/index_encoder.c     |  6 ++----
5466 src/liblzma/common/index_hash.c        |  7 +++----
5467 src/liblzma/common/lzip_decoder.c      | 14 +++++---------
5468 src/liblzma/common/stream_decoder.c    | 16 ++++++----------
5469 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++----------------
5470 src/liblzma/common/stream_encoder_mt.c | 10 ++++------
5471 src/liblzma/lzma/lzma2_encoder.c       |  9 +++------
5472 src/xz/args.c                          |  2 +-
5473 src/xz/list.c                          |  3 +--
5474 16 files changed, 54 insertions(+), 91 deletions(-)
5475
5476commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22
5477Author: Lasse Collin <lasse.collin@tukaani.org>
5478Date:   2025-01-01 15:08:51 +0200
5479
5480    sysdefs.h: Add FALLTHROUGH macro
5481
5482 src/common/sysdefs.h | 9 +++++++++
5483 1 file changed, 9 insertions(+)
5484
5485commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc
5486Author: Lasse Collin <lasse.collin@tukaani.org>
5487Date:   2025-01-01 15:06:15 +0200
5488
5489    xzdec: Fix language in a comment
5490
5491 src/xzdec/xzdec.c | 2 +-
5492 1 file changed, 1 insertion(+), 1 deletion(-)
5493
5494commit 16821252c504071f5c2012e415e59cbf5fb79820
5495Author: Lasse Collin <lasse.collin@tukaani.org>
5496Date:   2025-01-02 13:35:48 +0200
5497
5498    Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1
5499
5500    Also remove the recently-added workaround from tuklib_gettext.h.
5501    Requiring a new enough gettext-runtime is cleaner. I guess it's
5502    mostly MSYS2 where xz is built with translation support, so once
5503    MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem
5504    in practice.
5505
5506 CMakeLists.txt              | 29 ++++++++++++++++++++++++++
5507 configure.ac                | 29 ++++++++++++++++++++++++++
5508 src/common/tuklib_gettext.h | 51 ---------------------------------------------
5509 3 files changed, 58 insertions(+), 51 deletions(-)
5510
5511commit aa1807ed942579f700a08ab091b796cf04e31aec
5512Author: Lasse Collin <lasse.collin@tukaani.org>
5513Date:   2025-01-02 11:52:17 +0200
5514
5515    windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS
5516
5517    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
5518
5519 windows/build-with-cmake.bat | 2 +-
5520 1 file changed, 1 insertion(+), 1 deletion(-)
5521
5522commit ea21c76aa2406ba06ac154fe57741734c04f260f
5523Author: Lasse Collin <lasse.collin@tukaani.org>
5524Date:   2024-12-30 11:21:57 +0200
5525
5526    Build: Use git log --pretty=medium when creating ChangeLog
5527
5528    It's the default in git-log. Specifying it explicitly is good in case
5529    a user has set format.pretty to a different value.
5530
5531 Makefile.am | 4 ++--
5532 1 file changed, 2 insertions(+), 2 deletions(-)
5533
5534commit 08050c0788ce5bac0ffd572e9784a2749c4a13df
5535Author: Lasse Collin <lasse.collin@tukaani.org>
5536Date:   2024-12-30 10:51:33 +0200
5537
5538    Windows: Update MinGW-w64 + CMake instructions to recommend UCRT
5539
5540 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++-------------
5541 1 file changed, 23 insertions(+), 15 deletions(-)
5542
5543commit 653732bd6f06d8f465bf353bf6e1c16f1405b906
5544Author: Lasse Collin <lasse.collin@tukaani.org>
5545Date:   2024-12-30 10:51:26 +0200
5546
5547    xz man page: Describe the source file deletion in -z and -d options
5548
5549    The DESCRIPTION section always explained it, and the OPTIONS section
5550    only described the differences to the default behavior. However, new
5551    users in a hurry may skip reading DESCRIPTION. The default behavior
5552    is a bit dangerous, thus it's good to repeat in --compress and
5553    --decompress docs that source file is removed after successful operation.
5554
5555    Fixes: https://github.com/tukaani-project/xz/issues/150
5556
5557 src/xz/xz.1 | 17 ++++++++++++++++-
5558 1 file changed, 16 insertions(+), 1 deletion(-)
5559
5560commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf
5561Author: Lasse Collin <lasse.collin@tukaani.org>
5562Date:   2024-12-27 21:52:28 +0200
5563
5564    Build: Set libtool -version-info so that it matches with CMake
5565
5566    In the past, they haven't been in sync in development versions
5567    although they (of course) have been in stable releases.
5568
5569 src/liblzma/Makefile.am | 2 +-
5570 1 file changed, 1 insertion(+), 1 deletion(-)
5571
5572commit cf54f70e14c218faf5019ffa2fa769ed73772ee8
5573Author: Lasse Collin <lasse.collin@tukaani.org>
5574Date:   2024-12-28 18:28:56 +0200
5575
5576    CMake/macOS: Use GNU Libtool compatible shared library versioning
5577
5578    Because this increases the Mach-O compatibility_version, this commit
5579    shouldn't cause any ABI compatibility trouble for existing CMake users
5580    on macOS. This is assuming that they won't later downgrade to an older
5581    liblzma version that was built with CMake before this commit.
5582
5583    Meson allows customising the Mach-O versioning too. So the three
5584    build systems can be configured to be compatible.
5585
5586 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
5587 1 file changed, 48 insertions(+), 3 deletions(-)
5588
5589commit 94e17916689d38bc09bf35e602ed6f6276034b59
5590Author: Lasse Collin <lasse.collin@tukaani.org>
5591Date:   2024-12-28 14:49:45 +0200
5592
5593    CMake: Edit a comment
5594
5595 CMakeLists.txt | 2 +-
5596 1 file changed, 1 insertion(+), 1 deletion(-)
5597
5598commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b
5599Author: Lasse Collin <lasse.collin@tukaani.org>
5600Date:   2024-12-28 20:39:49 +0200
5601
5602    version.sh: Omit an unwanted dot from development versions
5603
5604    It printed 5.7.0.alpha instead of 5.7.0alpha.
5605
5606    Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae
5607
5608 build-aux/version.sh | 2 +-
5609 1 file changed, 1 insertion(+), 1 deletion(-)
5610
5611commit f7a248f56e94310a080051c4a709c08514fa48b1
5612Author: Lasse Collin <lasse.collin@tukaani.org>
5613Date:   2024-12-27 16:25:07 +0200
5614
5615    CMake: Remove a duplicate word from a comment
5616
5617 CMakeLists.txt | 4 ++--
5618 1 file changed, 2 insertions(+), 2 deletions(-)
5619
5620commit 8b7c55d148f4a9b3702207164e862437ddffad33
5621Author: Lasse Collin <lasse.collin@tukaani.org>
5622Date:   2024-12-27 16:23:12 +0200
5623
5624    INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION
5625
5626 INSTALL | 19 +++++++++++++++++++
5627 1 file changed, 19 insertions(+)
5628
5629commit 260d5d36203955a7148ae1ab05d0931c942028d5
5630Author: Lasse Collin <lasse.collin@tukaani.org>
5631Date:   2024-12-26 21:27:18 +0200
5632
5633    xz: Fix comments
5634
5635 src/xz/file_io.c | 4 ++--
5636 src/xz/file_io.h | 4 ++--
5637 2 files changed, 4 insertions(+), 4 deletions(-)
5638
5639commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11
5640Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
5641Date:   2024-12-22 13:44:03 +0100
5642
5643    CMake: Disable unity builds project-wide
5644
5645    liblzma and xz can't be compiled as a unity/jumbo build because of
5646    redeclarations and type name reuse. The CMake documentation recommends
5647    setting UNITY_BUILD to false in this case.
5648
5649    This is especially important if we're compiled as a subproject and the
5650    consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code
5651    base.
5652
5653    Closes: https://github.com/tukaani-project/xz/pull/158
5654
5655 CMakeLists.txt | 6 ++++++
5656 1 file changed, 6 insertions(+)
5657
5658commit f8c328eed1bf0a0168132025a52116b7735f894c
5659Author: Lasse Collin <lasse.collin@tukaani.org>
5660Date:   2024-12-20 08:51:18 +0200
5661
5662    Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale()
5663
5664    See the comment. In this package, locale is set at program startup and
5665    not changed later, so the point (2) in the comment isn't a problem.
5666
5667    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
5668
5669 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++
5670 1 file changed, 51 insertions(+)
5671
5672commit 03533906093529701ba91081907d8977991997de
5673Author: Lasse Collin <lasse.collin@tukaani.org>
5674Date:   2024-12-20 06:50:36 +0200
5675
5676    Revert "Windows: Use UTF-8 locale when active code page is UTF-8"
5677
5678    This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a.
5679
5680 src/common/tuklib_gettext.h | 32 ++------------------------------
5681 1 file changed, 2 insertions(+), 30 deletions(-)
5682
5683commit 4b319e05afef4eab2fbafb6223f25d128ec99fce
5684Author: Lasse Collin <lasse.collin@tukaani.org>
5685Date:   2024-12-19 18:31:09 +0200
5686
5687    xzdec: Use setlocale() instead of tuklib_gettext_setlocale()
5688
5689    xzdec isn't translated and doesn't need libintl on Windows even
5690    when NLS is enabled, thus libintl_setlocale() cannot interfere
5691    with the locale settings. Thus, standard setlocale() works perfectly.
5692
5693    In the commit 78868b6e, the explanation in the commit message is wrong.
5694
5695    Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
5696
5697 src/xzdec/xzdec.c | 9 +++------
5698 1 file changed, 3 insertions(+), 6 deletions(-)
5699
5700commit 34b80e282ea76ec793eaedaef58a36c3913dec78
5701Author: Lasse Collin <lasse.collin@tukaani.org>
5702Date:   2024-12-19 19:36:15 +0200
5703
5704    Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation
5705
5706    Only leave the FindFileFirstA() notes from 20dfca81, reverting
5707    the incorrect setlocale() notes. On Windows, Gettext's <libintl.h>
5708    overrides setlocale() with libintl_setlocale() wrapper. I hadn't
5709    noticed this, and thus my conclusions were wrong.
5710
5711    Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b
5712
5713 src/common/w32_application.manifest.comments.txt | 21 +--------------------
5714 1 file changed, 1 insertion(+), 20 deletions(-)
5715
5716commit 5794cda064ce980450eaa5a4e2c71bd317168ce4
5717Author: Lasse Collin <lasse.collin@tukaani.org>
5718Date:   2024-12-18 17:49:05 +0200
5719
5720    tuklib_mbstr_wrap: Silence a warning from Clang
5721
5722    Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634
5723
5724 src/common/tuklib_mbstr_wrap.c | 9 +++++++++
5725 1 file changed, 9 insertions(+)
5726
5727commit 16c9796ef970ae349c54fef9a346e394d7cc4c75
5728Author: Lasse Collin <lasse.collin@tukaani.org>
5729Date:   2024-12-18 14:00:09 +0200
5730
5731    Update THANKS
5732
5733 THANKS | 2 ++
5734 1 file changed, 2 insertions(+)
5735
5736commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053
5737Author: Lasse Collin <lasse.collin@tukaani.org>
5738Date:   2024-12-18 14:00:09 +0200
5739
5740    Update TODO
5741
5742    Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947
5743
5744 TODO | 3 ---
5745 1 file changed, 3 deletions(-)
5746
5747commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e
5748Author: Lasse Collin <lasse.collin@tukaani.org>
5749Date:   2024-12-18 14:00:09 +0200
5750
5751    lzmainfo: Use tuklib_mbstr_nonprint
5752
5753 CMakeLists.txt           |  3 +++
5754 src/lzmainfo/Makefile.am |  1 +
5755 src/lzmainfo/lzmainfo.c  | 16 ++++++++++------
5756 3 files changed, 14 insertions(+), 6 deletions(-)
5757
5758commit 03111595ee713e0f94fb4f4a19a15594d5149347
5759Author: Lasse Collin <lasse.collin@tukaani.org>
5760Date:   2024-12-18 14:00:09 +0200
5761
5762    xzdec: Use tuklib_mbstr_nonprint
5763
5764 CMakeLists.txt        |  3 +++
5765 src/xzdec/Makefile.am |  2 ++
5766 src/xzdec/xzdec.c     | 15 +++++++++++----
5767 3 files changed, 16 insertions(+), 4 deletions(-)
5768
5769commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122
5770Author: Lasse Collin <lasse.collin@tukaani.org>
5771Date:   2024-12-18 14:00:09 +0200
5772
5773    xz: Use tuklib_mbstr_nonprint
5774
5775    Call tuklib_mask_nonprint() on filenames and also on a few other
5776    strings from the command line too.
5777
5778    The filename printed by "xz --robot --list" (in list.c) is also masked.
5779    It's good to get rid of tabs and newlines which would desync the output
5780    but masking other chars wouldn't be strictly necessary. It might matter
5781    with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject
5782    non-ASCII chars) and a script wants to read a filename from xz's output.
5783    Hopefully it's an unusual enough corner case to not be a real problem.
5784
5785 CMakeLists.txt     |  2 ++
5786 src/xz/Makefile.am |  1 +
5787 src/xz/coder.c     | 19 ++++++++-----
5788 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++--------------------
5789 src/xz/list.c      | 32 +++++++++++++--------
5790 src/xz/main.c      | 10 +++++--
5791 src/xz/message.c   |  8 ++++--
5792 src/xz/options.c   | 10 ++++---
5793 src/xz/private.h   |  1 +
5794 src/xz/suffix.c    | 12 ++++----
5795 10 files changed, 113 insertions(+), 63 deletions(-)
5796
5797commit 40e573305535960574404d2eae848b248c95ea7e
5798Author: Lasse Collin <lasse.collin@tukaani.org>
5799Date:   2024-12-18 14:00:09 +0200
5800
5801    Add tuklib_mbstr_nonprint to mask non-printable characters
5802
5803    Malicious filenames or other untrusted strings may affect the state of
5804    the terminal when such strings are printed as part of (error) messages.
5805    Add functions that mask such characters.
5806
5807    It's not enough to handle only single-byte control characters.
5808    In multibyte locales, some control characters are multibyte too, for
5809    example, terminals interpret C1 control characters (U+0080 to U+009F)
5810    that are two bytes as UTF-8.
5811
5812    Instead of checking for control characters with iswcntrl(), this
5813    uses iswprint() to detect printable characters. This is much stricter.
5814    On Windows it's actually too strict as it rejects some characters that
5815    definitely are printable.
5816
5817    Gnulib's quotearg would do a lot more but I hope this simpler method
5818    is good enough here.
5819
5820    Thanks to Ryan Colyer for the discussion about the problems of
5821    the earlier single-byte-only method.
5822
5823    Thanks to Christian Weisgerber for reporting a bug in an earlier
5824    version of this code.
5825
5826    Thanks to Jeroen Roovers for a typo fix.
5827
5828    Closes: https://github.com/tukaani-project/xz/pull/118
5829
5830 src/Makefile.am                    |   2 +
5831 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++
5832 src/common/tuklib_mbstr_nonprint.h |  69 +++++++++++++++++
5833 3 files changed, 222 insertions(+)
5834
5835commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402
5836Author: Lasse Collin <lasse.collin@tukaani.org>
5837Date:   2024-12-18 11:33:09 +0200
5838
5839    Translations: Add preliminary Georgian translation
5840
5841    Most of the auto-wrapped strings are translated already. A few
5842    strings have changed since this was created though. This file
5843    isn't in the Translation Project *yet* because these strings
5844    are still very new.
5845
5846    Closes: https://github.com/tukaani-project/xz/pull/145
5847
5848 po/LINGUAS |    1 +
5849 po/ka.po   | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5850 2 files changed, 1187 insertions(+)
5851
5852commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e
5853Author: Lasse Collin <lasse.collin@tukaani.org>
5854Date:   2024-10-30 20:50:20 +0200
5855
5856    xz: Make one string simpler for translators
5857
5858    Leading spaces in the string can get miscounted by translators.
5859
5860 src/xz/list.c | 4 ++--
5861 1 file changed, 2 insertions(+), 2 deletions(-)
5862
5863commit 3fcf547e926f6c0414b23459f7b43164f7e8c378
5864Author: Lasse Collin <lasse.collin@tukaani.org>
5865Date:   2024-12-17 10:26:10 +0200
5866
5867    lzmainfo: Sync the translatable strings with xz
5868
5869 src/lzmainfo/lzmainfo.c | 20 ++++++++++++--------
5870 1 file changed, 12 insertions(+), 8 deletions(-)
5871
5872commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229
5873Author: Lasse Collin <lasse.collin@tukaani.org>
5874Date:   2024-12-17 10:26:10 +0200
5875
5876    xz: Use automatic word wrapping for help texts
5877
5878    --long-help is now one line longer because --lzma1 is now on its
5879    own line.
5880
5881 CMakeLists.txt     |   2 +
5882 src/xz/Makefile.am |   3 +-
5883 src/xz/message.c   | 482 ++++++++++++++++++++++++++++++++++-------------------
5884 3 files changed, 313 insertions(+), 174 deletions(-)
5885
5886commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d
5887Author: Lasse Collin <lasse.collin@tukaani.org>
5888Date:   2024-12-16 18:46:45 +0200
5889
5890    po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS
5891
5892    The text was copied from tuklib_gettext.h.
5893
5894    Also rearrange the --keyword options to be last on the line.
5895
5896 po/Makevars | 2 +-
5897 1 file changed, 1 insertion(+), 1 deletion(-)
5898
5899commit ca529c3f41a4a19a59e2e252e6dd9255f130c634
5900Author: Lasse Collin <lasse.collin@tukaani.org>
5901Date:   2024-12-16 18:43:52 +0200
5902
5903    Add tuklib_mbstr_wrap for automatic word wrapping
5904
5905    Automatic word wrapping makes translators' work easier and reduces
5906    errors like misaligned columns or overlong lines. Right-to-left
5907    languages and languages that don't use spaces between words will
5908    still need extra effort. (xz hasn't been translated to any RTL
5909    language so far.)
5910
5911 cmake/tuklib_mbstr.cmake       |   4 +
5912 m4/tuklib_mbstr.m4             |   2 +-
5913 src/Makefile.am                |   2 +
5914 src/common/tuklib_gettext.h    |  11 ++
5915 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++
5916 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++
5917 6 files changed, 506 insertions(+), 1 deletion(-)
5918
5919commit 314b83cebad0244a0015a8abc6d8d086b581c215
5920Author: Lasse Collin <lasse.collin@tukaani.org>
5921Date:   2024-12-17 17:57:18 +0200
5922
5923    Build: Sort filenames to ASCII order in Makefile.am
5924
5925 src/Makefile.am | 2 +-
5926 1 file changed, 1 insertion(+), 1 deletion(-)
5927
5928commit df399c52554dfdf60259ca2cce97adbcfff39dc0
5929Author: Lasse Collin <lasse.collin@tukaani.org>
5930Date:   2024-10-21 18:51:24 +0300
5931
5932    tuklib_mbstr_width: Add tuklib_mbstr_width_mem()
5933
5934    It's a new function split from tuklib_mbstr_width().
5935    It's useful with partial strings that aren't terminated with \0.
5936
5937 src/common/tuklib_mbstr.h       | 17 +++++++++++++++++
5938 src/common/tuklib_mbstr_width.c |  8 ++++++++
5939 2 files changed, 25 insertions(+)
5940
5941commit 51081efae4c52c226e96da95313916eba99f885f
5942Author: Lasse Collin <lasse.collin@tukaani.org>
5943Date:   2024-12-16 20:08:27 +0200
5944
5945    tuklib_mbstr_width: Update a comment about shift states
5946
5947 src/common/tuklib_mbstr_width.c | 11 ++++++++---
5948 1 file changed, 8 insertions(+), 3 deletions(-)
5949
5950commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b
5951Author: Lasse Collin <lasse.collin@tukaani.org>
5952Date:   2024-10-21 18:47:56 +0300
5953
5954    tuklib_mbstr_width: Don't mention shift states in the API docs
5955
5956    It is assumed that this code won't be used with charsets that use
5957    locking shift states.
5958
5959 src/common/tuklib_mbstr.h | 8 ++------
5960 1 file changed, 2 insertions(+), 6 deletions(-)
5961
5962commit 3c16105936320e4095dbe84fa9a33a4a6d46a597
5963Author: Lasse Collin <lasse.collin@tukaani.org>
5964Date:   2024-10-21 18:41:41 +0300
5965
5966    tuklib_mbstr_width: Use stricter return value checking
5967
5968    This should make no difference in practice (at least if mbrtowc()
5969    isn't broken).
5970
5971 src/common/tuklib_mbstr_width.c | 2 +-
5972 1 file changed, 1 insertion(+), 1 deletion(-)
5973
5974commit b797c44c42ea54fe1c52722a2fca0c9618575598
5975Author: Lasse Collin <lasse.collin@tukaani.org>
5976Date:   2024-12-16 20:06:07 +0200
5977
5978    tuklib_mbstr_width: Change the behavior when wcwidth() is not available
5979
5980    If wcwidth() isn't available (Windows), previously it was assumed
5981    that one byte == one column in the terminal. Now it is assumed that
5982    one multibyte character == one column. This works better with UTF-8.
5983    Languages that only use single-width characters without any combining
5984    characters should work correctly with this.
5985
5986    In xz, none of po/*.po contain combining characters and only ko.po,
5987    zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only"
5988    those three translations in xz are broken on Windows with the
5989    UTF-8 code page. Broken means that column headings in xz -lvv and
5990    (only in the master branch) strings in --long-help are misaligned,
5991    so it's not a huge problem. I don't know if those three languages
5992    displayed perfectly before the UTF-8 change because I hadn't tested
5993    translations with native Windows builds before.
5994
5995    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
5996
5997 src/common/tuklib_mbstr_width.c | 13 +++++++++++--
5998 1 file changed, 11 insertions(+), 2 deletions(-)
5999
6000commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
6001Author: Lasse Collin <lasse.collin@tukaani.org>
6002Date:   2024-12-18 14:23:13 +0200
6003
6004    xzdec: Use setlocale() via tuklib_gettext_setlocale()
6005
6006    xzdec isn't translated and didn't have locale-specific behavior
6007    in the past. On Windows with UTF-8 in the application manifest,
6008    setting the locale makes a difference though:
6009
6010      - Without any setlocale() call, non-ASCII filenames don't display
6011        properly in Command Prompt unless one first uses "chcp 65001"
6012        to set the console code page to UTF-8.
6013
6014      - setlocale(LC_ALL, "") is enough to make non-ASCII filenames
6015        print correctly in Command Prompt without using "chcp 65001",
6016        assuming that the non-UTF-8 code page (like 850) supports
6017        those non-ASCII characters.
6018
6019      - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and
6020        such functions use an UTF-8 locale instead of a legacy code page.
6021        The tuklib_gettext_setlocale() macro takes care of this (without
6022        enabling any translations).
6023
6024    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
6025
6026 src/xzdec/xzdec.c | 12 ++++++++++++
6027 1 file changed, 12 insertions(+)
6028
6029commit 0d0b574cc45045d6150d397776340c068df59e2a
6030Author: Lasse Collin <lasse.collin@tukaani.org>
6031Date:   2024-12-17 14:59:37 +0200
6032
6033    Windows: Use UTF-8 locale when active code page is UTF-8
6034
6035    XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611.
6036    This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus
6037    non-ASCII characters from translations became mojibake.
6038
6039    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
6040
6041 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++--
6042 1 file changed, 30 insertions(+), 2 deletions(-)
6043
6044commit 20dfca8171dad4c64785ac61d5b68972c444877b
6045Author: Lasse Collin <lasse.collin@tukaani.org>
6046Date:   2024-12-17 15:01:29 +0200
6047
6048    Windows: Document the need for setlocale(LC_ALL, ".UTF8")
6049
6050    Also warn about unpaired surrogates and (somewhat UTF-8-specific)
6051    MAX_PATH issue in FindFirstFileA().
6052
6053    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
6054
6055 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++-
6056 1 file changed, 27 insertions(+), 1 deletion(-)
6057
6058commit 4e936f234056e5831013ed922145b666b04bb1e3
6059Author: Lasse Collin <lasse.collin@tukaani.org>
6060Date:   2024-12-18 14:12:22 +0200
6061
6062    xzdec: Call tuklib_progname_init() early enough
6063
6064    If the early pledge() call on OpenBSD fails, it calls my_errorf()
6065    which requires the "progname" variable.
6066
6067    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
6068
6069 src/xzdec/xzdec.c | 6 +++---
6070 1 file changed, 3 insertions(+), 3 deletions(-)
6071
6072commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8
6073Author: Lasse Collin <lasse.collin@tukaani.org>
6074Date:   2024-12-15 19:08:32 +0200
6075
6076    CMake: Bump maximum policy version to 3.31
6077
6078    With CMake 3.31, there were a few warnings from
6079    CMP0177 "install() DESTINATION paths are normalized".
6080    These occurred because the install(FILES) command in
6081    my_install_man_lang() is called with a DESTINATION path
6082    that contains two consecutive slashes, for example,
6083    "share/man//man1". Such a path is for the English man pages.
6084    With translated man pages, the language code goes between
6085    the slashes. The warning was probably triggered because the
6086    extra slash gets removed by the normalization.
6087
6088 CMakeLists.txt | 2 +-
6089 1 file changed, 1 insertion(+), 1 deletion(-)
6090
6091commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18
6092Author: Lasse Collin <lasse.collin@tukaani.org>
6093Date:   2024-12-15 18:35:27 +0200
6094
6095    Update THANKS
6096
6097 THANKS | 1 +
6098 1 file changed, 1 insertion(+)
6099
6100commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27
6101Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
6102Date:   2024-12-08 18:24:29 +0100
6103
6104    liblzma: Fix incorrect macro name in a comment
6105
6106    Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559
6107    Closes: https://github.com/tukaani-project/xz/pull/155
6108
6109 src/liblzma/api/lzma/lzma12.h | 2 +-
6110 1 file changed, 1 insertion(+), 1 deletion(-)
6111
6112commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a
6113Author: Lasse Collin <lasse.collin@tukaani.org>
6114Date:   2024-12-17 10:36:43 +0200
6115
6116    license-check.sh: Add an exception for doc/SHA256SUMS
6117
6118    Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
6119
6120 build-aux/license-check.sh | 1 +
6121 1 file changed, 1 insertion(+)
6122
6123commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
6124Author: Lasse Collin <lasse.collin@tukaani.org>
6125Date:   2024-12-01 21:38:17 +0200
6126
6127    doc/SHA256SUMS: Add the list of SHA-256 hashes of release files
6128
6129    The release files are signed but verifying the signatures cannot
6130    catch certain types of attacks:
6131
6132    1. A malicious maintainer could make more than one variant of
6133       a package. One could be for general distribution. Another
6134       with malicious content could be targeted to specific users,
6135       for example, distributing the malicious version on a mirror
6136       controlled by the attacker.
6137
6138    2. If the signing key of an honest maintainer was compromised
6139       without being detected, a similar situation as described
6140       above could occur.
6141
6142    SHA256SUMS could be put on the project website but having it in
6143    the Git repository makes it obvious that old lines aren't modified
6144    when the file is updated.
6145
6146    Hashes of uncompressed files are included too. This way tarballs
6147    can be recompressed and the hashes can still be verified.
6148
6149 .gitattributes |   1 +
6150 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6151 2 files changed, 219 insertions(+)
6152
6153commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42
6154Author: Lasse Collin <lasse.collin@tukaani.org>
6155Date:   2024-11-30 12:05:59 +0200
6156
6157    Docs: Remove .github/SECURITY.md
6158
6159    One of the reasons to have this file in the xz repository was to
6160    show vulnerability reporting info in the Security section on GitHub.
6161    On 2024-11-25, I added SECURITY.md to the tukaani-project organization
6162    on GitHub:
6163
6164        https://github.com/tukaani-project/.github/blob/main/SECURITY.md
6165
6166    GitHub shows that file in all projects in the organization unless
6167    overridden by a project-specific SECURITY.md. Thus, removing
6168    the file from the xz repo makes GitHub show the organization-wide
6169    text instead.
6170
6171    Maintaining a single copy for the whole GitHub organization makes
6172    things simpler. It's also nicer to have fewer GitHub-specific files
6173    in the xz repo. Information how to report bugs (including security
6174    issues) is available in README and on the home page too.
6175
6176    The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the
6177    xz repository. There was a suggestion to move the file to the top-level
6178    directory where Scorecard should find it. However, Scorecard does find
6179    the organization-wide SECURITY.md. Thus, the file isn't needed in the
6180    xz repository to score points in the Scorecard game:
6181
6182        https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz
6183
6184    Closes: https://github.com/tukaani-project/xz/issues/148
6185    Closes: https://github.com/tukaani-project/xz/pull/149
6186
6187 .github/SECURITY.md | 14 --------------
6188 1 file changed, 14 deletions(-)
6189
6190commit b36177273602ebc83e9cc58517f63a7b6af33f70
6191Author: Lasse Collin <lasse.collin@tukaani.org>
6192Date:   2024-11-30 10:27:14 +0200
6193
6194    Translations: Update the Chinese (traditional) translation
6195
6196 po/zh_TW.po | 201 +++++++++++++++++++++++++-----------------------------------
6197 1 file changed, 84 insertions(+), 117 deletions(-)
6198
6199commit c15115f7ede492f20c91b08ba485f9426f60233f
6200Author: Lasse Collin <lasse.collin@tukaani.org>
6201Date:   2024-10-30 19:54:34 +0200
6202
6203    liblzma: Optimize the loop conditions in BCJ filters
6204
6205    Compilers cannot optimize the addition "i + 4" away since theoretically
6206    it could overflow.
6207
6208 src/liblzma/simple/arm.c      | 4 +++-
6209 src/liblzma/simple/arm64.c    | 4 +++-
6210 src/liblzma/simple/armthumb.c | 7 ++++++-
6211 src/liblzma/simple/ia64.c     | 4 +++-
6212 src/liblzma/simple/powerpc.c  | 4 +++-
6213 src/liblzma/simple/sparc.c    | 5 +++--
6214 6 files changed, 21 insertions(+), 7 deletions(-)
6215
6216commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5
6217Author: Lasse Collin <lasse.collin@tukaani.org>
6218Date:   2024-11-25 16:26:54 +0200
6219
6220    Update THANKS
6221
6222 THANKS | 1 +
6223 1 file changed, 1 insertion(+)
6224
6225commit 48ff3f06521ca326996ab9a04d1b342098960427
6226Author: Mark Wielaard <mark@klomp.org>
6227Date:   2024-11-25 12:28:44 +0200
6228
6229    xz: Landlock: Fix a file descriptor leak
6230
6231 src/xz/sandbox.c | 1 +
6232 1 file changed, 1 insertion(+)
6233
6234commit dbca3d078ec581600600abebbb18769d3d713914
6235Author: Sam James <sam@gentoo.org>
6236Date:   2024-10-02 03:04:03 +0100
6237
6238    CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions
6239
6240    Checked the changes and they're all innocuous. This should hopefully
6241    fix the "externally managed" pip error in these jobs that started
6242    recently.
6243
6244 .github/workflows/freebsd.yml | 2 +-
6245 .github/workflows/netbsd.yml  | 2 +-
6246 .github/workflows/openbsd.yml | 2 +-
6247 .github/workflows/solaris.yml | 2 +-
6248 4 files changed, 4 insertions(+), 4 deletions(-)
6249
6250commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f
6251Author: Lasse Collin <lasse.collin@tukaani.org>
6252Date:   2024-10-01 12:17:39 +0300
6253
6254    Add NEWS for 5.6.3
6255
6256 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6257 1 file changed, 125 insertions(+)
6258
6259commit be4bf94446b6286a5dffdde85fc1d21448f4edff
6260Author: Lasse Collin <lasse.collin@tukaani.org>
6261Date:   2024-10-01 14:49:41 +0300
6262
6263    cmake/tuklib_large_file_support.cmake: Add a missing include
6264
6265    v5.2 didn't build with CMake. Other branches had
6266    include(CMakePushCheckState) in top-level CMakeLists.txt
6267    which made the build work.
6268
6269    Fixes: 597f49b61475438a43a417236989b2acc968a686
6270
6271 cmake/tuklib_large_file_support.cmake | 1 +
6272 1 file changed, 1 insertion(+)
6273
6274commit 1ebbe915d4e0d877154261b5f8103719a6722975
6275Author: Lasse Collin <lasse.collin@tukaani.org>
6276Date:   2024-10-01 12:10:23 +0300
6277
6278    Update THANKS
6279
6280 THANKS | 2 ++
6281 1 file changed, 2 insertions(+)
6282
6283commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0
6284Author: Lasse Collin <lasse.collin@tukaani.org>
6285Date:   2024-10-01 12:10:23 +0300
6286
6287    Tests/Windows: Add the application manifest to the test programs
6288
6289    This ensures that the test programs get executed the same way as
6290    the binaries that are installed.
6291
6292 CMakeLists.txt        | 14 ++++++++++----
6293 tests/Makefile.am     | 10 ++++++++++
6294 tests/tests.cmake     | 33 ++++++++++++++++++++++++++++++++-
6295 tests/tests_w32res.rc | 18 ++++++++++++++++++
6296 4 files changed, 70 insertions(+), 5 deletions(-)
6297
6298commit 7ddf2273e0e4654582ee65db19d44431bfdb5791
6299Author: Lasse Collin <lasse.collin@tukaani.org>
6300Date:   2024-10-01 12:10:23 +0300
6301
6302    license-check.sh: Add an exception for w32_application.manifest
6303
6304    The file gets embedded as is into executables, thus it cannot
6305    hold a license identifier.
6306
6307 build-aux/license-check.sh | 1 +
6308 1 file changed, 1 insertion(+)
6309
6310commit 46ee0061629fb075d61d83839e14dd193337af59
6311Author: Lasse Collin <lasse.collin@tukaani.org>
6312Date:   2024-10-01 12:10:23 +0300
6313
6314    Windows: Embed an application manifest in the EXE files
6315
6316    IMPORTANT: This includes a security fix to command line tool
6317               argument handling.
6318
6319    Some toolchains embed an application manifest by default to declare
6320    UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11
6321    to let the app access features newer than those of Vista.
6322
6323    We want all the above but also two more things:
6324
6325      - Declare that the app is long path aware to support paths longer
6326        than 259 characters (this may also require a registry change).
6327
6328      - Force the code page to UTF-8. This allows the command line tools
6329        to access files whose names contain characters that don't exist
6330        in the current legacy code page (except unpaired surrogates).
6331        The UTF-8 code page also fixes security issues in command line
6332        argument handling which can be exploited with malicious filenames.
6333        See the new file w32_application.manifest.comments.txt.
6334
6335    Thanks to Orange Tsai and splitline from DEVCORE Research Team
6336    for discovering this issue.
6337
6338    Thanks to Vijay Sarvepalli for reporting the issue to me.
6339
6340    Thanks to Kelvin Lee for testing with MSVC and helping with
6341    the required build system fixes.
6342
6343 CMakeLists.txt                                   |  18 +++
6344 src/Makefile.am                                  |   4 +-
6345 src/common/common_w32res.rc                      |   5 +
6346 src/common/w32_application.manifest              |  28 ++++
6347 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++
6348 5 files changed, 232 insertions(+), 1 deletion(-)
6349
6350commit dad153091552b52a41b95ec4981c6951f1cae487
6351Author: Lasse Collin <lasse.collin@tukaani.org>
6352Date:   2024-09-29 14:46:52 +0300
6353
6354    Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2
6355
6356    Now the information in the "Details" tab in the file properties
6357    dialog matches the naming convention of Cygwin and MSYS2. This
6358    is only a cosmetic change.
6359
6360 src/liblzma/liblzma_w32res.rc | 10 +++++++++-
6361 1 file changed, 9 insertions(+), 1 deletion(-)
6362
6363commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904
6364Author: Lasse Collin <lasse.collin@tukaani.org>
6365Date:   2024-09-25 15:47:55 +0300
6366
6367    common_w32res.rc: White space edits
6368
6369    LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line
6370    between them.
6371
6372 src/common/common_w32res.rc | 15 ++++++++-------
6373 1 file changed, 8 insertions(+), 7 deletions(-)
6374
6375commit c3b9dad07d3fd9319f88386b7095019bcea45ce1
6376Author: Lasse Collin <lasse.collin@tukaani.org>
6377Date:   2024-09-28 20:09:50 +0300
6378
6379    CMake: Add the resource files to the Cygwin and MSYS2 builds
6380
6381    Autotools-based build has always done this so this is for consistency.
6382
6383    However, the CMake build won't create the DEF file when building
6384    for Cygwin or MSYS2 because in that context it should be useless.
6385    (If Cygwin or MSYS2 is used to host building of normal Windows
6386    binaries then the DEF file is still created.)
6387
6388 CMakeLists.txt | 16 ++++++++++------
6389 1 file changed, 10 insertions(+), 6 deletions(-)
6390
6391commit da4f275bd1c18b897e5c2dd0043546de3accce0a
6392Author: Lasse Collin <lasse.collin@tukaani.org>
6393Date:   2024-09-28 15:19:14 +0300
6394
6395    CMake: Fix Windows resource file dependencies
6396
6397    If common_w32res.rc is modified, the resource files need to be rebuilt.
6398    In contrast, the liblzma*.map files truly are link dependencies.
6399
6400 CMakeLists.txt | 17 +++++++++--------
6401 1 file changed, 9 insertions(+), 8 deletions(-)
6402
6403commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47
6404Author: Lasse Collin <lasse.collin@tukaani.org>
6405Date:   2024-09-29 01:20:03 +0300
6406
6407    CMake: Checking for CYGWIN covers MSYS2 too
6408
6409    On MSYS2, both CYGWIN and MSYS are set.
6410
6411 CMakeLists.txt | 2 +-
6412 1 file changed, 1 insertion(+), 1 deletion(-)
6413
6414commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521
6415Author: Lasse Collin <lasse.collin@tukaani.org>
6416Date:   2024-09-28 09:37:30 +0300
6417
6418    Translations: Add the SPDX license identifier to pt_BR.po
6419
6420 po/pt_BR.po | 2 ++
6421 1 file changed, 2 insertions(+)
6422
6423commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb
6424Author: Lasse Collin <lasse.collin@tukaani.org>
6425Date:   2024-09-25 16:41:37 +0300
6426
6427    Windows/CMake: Use the correct resource file for lzmadec.exe
6428
6429    CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec.
6430
6431    Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe
6432
6433 CMakeLists.txt | 2 +-
6434 1 file changed, 1 insertion(+), 1 deletion(-)
6435
6436commit b834ae5f80911a3819d6cdb484f61b257174c544
6437Author: Lasse Collin <lasse.collin@tukaani.org>
6438Date:   2024-09-25 21:29:59 +0300
6439
6440    Translations: Update the Brazilian Portuguese translation
6441
6442 po/pt_BR.po | 144 ++++++++++++++++++++++--------------------------------------
6443 1 file changed, 53 insertions(+), 91 deletions(-)
6444
6445commit eceb023d4c129fd63ee881a2d8696eaf52ad1532
6446Author: Lasse Collin <lasse.collin@tukaani.org>
6447Date:   2024-09-17 01:21:15 +0300
6448
6449    Update THANKS
6450
6451 THANKS | 1 +
6452 1 file changed, 1 insertion(+)
6453
6454commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f
6455Author: Tobias Stoeckmann <tobias@stoeckmann.org>
6456Date:   2024-09-16 23:19:46 +0200
6457
6458    lzmainfo: Avoid integer overflow
6459
6460    The MB output can overflow with huge numbers. Most likely these are
6461    invalid .lzma files anyway, but let's avoid garbage output.
6462
6463    lzmadec was adapted from LZMA Utils. The original code with this bug
6464    was written in 2005, over 19 years ago.
6465
6466    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
6467    Closes: https://github.com/tukaani-project/xz/pull/144
6468
6469 src/lzmainfo/lzmainfo.c | 5 ++---
6470 1 file changed, 2 insertions(+), 3 deletions(-)
6471
6472commit 78355aebb7fb654302e5e33692ba109909dacaff
6473Author: Tobias Stoeckmann <tobias@stoeckmann.org>
6474Date:   2024-09-16 22:04:40 +0200
6475
6476    xzdec: Remove unused short option -M
6477
6478    "xzdec -M123" exited with exit status 1 without printing
6479    any messages. The "M:" entry should have been removed when
6480    the memory usage limiter support was removed from xzdec.
6481
6482    Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae
6483    Closes: https://github.com/tukaani-project/xz/pull/143
6484    [ Lasse: Commit message edits ]
6485
6486 src/xzdec/xzdec.c | 2 +-
6487 1 file changed, 1 insertion(+), 1 deletion(-)
6488
6489commit e5758db7bd75587a2499e0771907521a4aa86908
6490Author: Lasse Collin <lasse.collin@tukaani.org>
6491Date:   2024-09-10 13:54:47 +0300
6492
6493    Update THANKS
6494
6495 THANKS | 1 +
6496 1 file changed, 1 insertion(+)
6497
6498commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c
6499Author: Firas Khalil Khana <firasuke@gmail.com>
6500Date:   2024-09-10 12:30:32 +0300
6501
6502    Build: Fix a typo in autogen.sh
6503
6504    Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310
6505    Closes: https://github.com/tukaani-project/xz/pull/141
6506
6507 autogen.sh | 2 +-
6508 1 file changed, 1 insertion(+), 1 deletion(-)
6509
6510commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2
6511Author: Lasse Collin <lasse.collin@tukaani.org>
6512Date:   2024-09-02 20:08:40 +0300
6513
6514    Translations: Update Chinese (simplified) translation
6515
6516    Differences to the zh_CN.po file from the Translation Project:
6517
6518      - Two uses of \v were fixed.
6519
6520      - Missing "OPTS" translation in --riscv[=OPTS] was copied from
6521        previous lines.
6522
6523      - "make update-po" was run to remove line numbers from comments.
6524
6525 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------
6526 1 file changed, 40 insertions(+), 62 deletions(-)
6527
6528commit 2230692aa1bcebb586100183831e3daf1714d60a
6529Author: Lasse Collin <lasse.collin@tukaani.org>
6530Date:   2024-09-02 19:40:50 +0300
6531
6532    Translations: Update the Catalan translation
6533
6534    Differences to the ca.po file from the Translation Project:
6535
6536      - An overlong line translating --filters-help was wrapped.
6537
6538      - "make update-po" was used to remove line numbers from the comments
6539        to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637
6540        and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP
6541        is older than these commits.
6542
6543 po/ca.po | 171 ++++++++++++++++++++++++++-------------------------------------
6544 1 file changed, 69 insertions(+), 102 deletions(-)
6545
6546commit 3e7723ce26f74c71919984a6180504b4548cbb7e
6547Author: Lasse Collin <lasse.collin@tukaani.org>
6548Date:   2024-08-22 14:06:16 +0300
6549
6550    Update THANKS
6551
6552 THANKS | 1 +
6553 1 file changed, 1 insertion(+)
6554
6555commit d3e0e679b2b8b428598bb8ba56a17715190814db
6556Author: Lasse Collin <lasse.collin@tukaani.org>
6557Date:   2024-08-22 14:06:16 +0300
6558
6559    CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF
6560
6561    Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
6562    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
6563    Closes: https://github.com/tukaani-project/xz/pull/134
6564
6565 CMakeLists.txt | 12 ++++++++++--
6566 1 file changed, 10 insertions(+), 2 deletions(-)
6567
6568commit acdf21033abe347d9a279e9fe757f90ed16c1dbb
6569Author: Lasse Collin <lasse.collin@tukaani.org>
6570Date:   2024-08-22 14:06:16 +0300
6571
6572    CMake: Fix the build when XZ_TOOL_LZMADEC=OFF
6573
6574    Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
6575    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
6576    Fixes: https://github.com/tukaani-project/xz/pull/134
6577
6578 CMakeLists.txt | 6 ++++--
6579 1 file changed, 4 insertions(+), 2 deletions(-)
6580
6581commit 5e375987509fab484b7bef0b90be92f241c58c91
6582Author: Lasse Collin <lasse.collin@tukaani.org>
6583Date:   2024-08-22 11:01:07 +0300
6584
6585    Update THANKS
6586
6587 THANKS | 1 +
6588 1 file changed, 1 insertion(+)
6589
6590commit 6cd7c8607843c337edfe2c472aa316602a393754
6591Author: Yifeng Li <tomli@tomli.me>
6592Date:   2024-08-22 02:18:49 +0000
6593
6594    liblzma: Fix x86-64 movzw compatibility in range_decoder.h
6595
6596    Support for instruction "movzw" without suffix in "GNU as" was
6597    added in commit [1] and stabilized in binutils 2.27, released
6598    in August 2016. Earlier systems don't accept this instruction
6599    without a suffix, making range_decoder.h's inline assembly
6600    unable to build on old systems such as Ubuntu 16.04, creating
6601    error messages like:
6602
6603        lzma_decoder.c: Assembler messages:
6604        lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi'
6605        lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi'
6606        lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx'
6607        lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi'
6608
6609    Change "movzw" to "movzwl" for compatibility.
6610
6611    [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2
6612
6613    Suggested-by: Lasse Collin <lasse.collin@tukaani.org>
6614    Tested-by: Yifeng Li <tomli@tomli.me>
6615    Signed-off-by: Yifeng Li <tomli@tomli.me>
6616    Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158
6617    Fixes: https://github.com/tukaani-project/xz/issues/121
6618    Closes: https://github.com/tukaani-project/xz/pull/136
6619
6620 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------
6621 1 file changed, 12 insertions(+), 12 deletions(-)
6622
6623commit bf901dee5d4c46609645e50311c0cb2dfdcf9738
6624Author: Lasse Collin <lasse.collin@tukaani.org>
6625Date:   2024-07-19 20:02:43 +0300
6626
6627    Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6
6628
6629 CMakeLists.txt |  2 +-
6630 configure.ac   | 17 +++++++++++------
6631 2 files changed, 12 insertions(+), 7 deletions(-)
6632
6633commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd
6634Author: Lasse Collin <lasse.collin@tukaani.org>
6635Date:   2024-07-19 19:42:26 +0300
6636
6637    Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD"
6638
6639    This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599.
6640
6641    OpenBSD 7.6 will support elf_aux_info(3), and the detection code used
6642    on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop
6643    the OpenBSD-specific sysctl() method.
6644
6645    Thanks to Christian Weisgerber.
6646
6647 CMakeLists.txt                  |  6 ------
6648 configure.ac                    |  9 ---------
6649 src/liblzma/check/crc32_arm64.h | 15 ---------------
6650 src/liblzma/check/crc_common.h  |  1 -
6651 4 files changed, 31 deletions(-)
6652
6653commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede
6654Author: Lasse Collin <lasse.collin@tukaani.org>
6655Date:   2024-07-13 22:10:37 +0300
6656
6657    liblzma: Tweak a comment
6658
6659 src/liblzma/simple/arm64.c | 4 ++--
6660 1 file changed, 2 insertions(+), 2 deletions(-)
6661
6662commit 6408edac5529d6ec0abf52794074f229c8362303
6663Author: Lasse Collin <lasse.collin@tukaani.org>
6664Date:   2024-07-11 22:17:56 +0300
6665
6666    CMake: Bump maximum policy version to 3.30
6667
6668 CMakeLists.txt | 2 +-
6669 1 file changed, 1 insertion(+), 1 deletion(-)
6670
6671commit 9231c39ffb518196d6664a86e5325e744621a21b
6672Author: Lasse Collin <lasse.collin@tukaani.org>
6673Date:   2024-07-06 15:13:19 +0300
6674
6675    CMake: Require CMake 3.20 or later
6676
6677    This allows a few cleanups.
6678
6679 CMakeLists.txt | 78 ++++++++++++++++++++--------------------------------------
6680 1 file changed, 27 insertions(+), 51 deletions(-)
6681
6682commit 028185dd4889e3d6235ff13560160ebca6985021
6683Author: Lasse Collin <lasse.collin@tukaani.org>
6684Date:   2024-07-09 14:27:51 +0300
6685
6686    Update THANKS
6687
6688 THANKS | 1 +
6689 1 file changed, 1 insertion(+)
6690
6691commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747
6692Author: Lasse Collin <lasse.collin@tukaani.org>
6693Date:   2024-07-06 14:04:48 +0300
6694
6695    xz: Remove the TODO comment about --recursive
6696
6697    It won't be implemented. find + xargs is more flexible, for example,
6698    it allows compressing small files in parallel. An example for that
6699    has been included in the xz man page since 2010.
6700
6701 src/xz/args.c | 1 -
6702 1 file changed, 1 deletion(-)
6703
6704commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8
6705Author: Lasse Collin <lasse.collin@tukaani.org>
6706Date:   2024-07-06 14:04:16 +0300
6707
6708    Document --disable-loongarch-crc32 in INSTALL
6709
6710 INSTALL | 8 ++++++++
6711 1 file changed, 8 insertions(+)
6712
6713commit b3e53122f42796aaebd767bab920cf7bedf69966
6714Author: Lasse Collin <lasse.collin@tukaani.org>
6715Date:   2024-07-03 20:45:48 +0300
6716
6717    CMake: Link xz against Threads::Threads if using pthreads
6718
6719    The liblzma target was recently changed to link against Threads::Threads
6720    with the PRIVATE keyword. I had forgotten that xz itself depends on
6721    pthreads too due to pthread_sigmask(). Thus, the build broke when
6722    building shared liblzma and pthread_sigmask() wasn't in libc.
6723
6724    Thanks to Peter Seiderer for the bug report.
6725
6726    Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
6727    Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994
6728
6729 CMakeLists.txt | 13 +++++++++++++
6730 1 file changed, 13 insertions(+)
6731
6732commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374
6733Author: Lasse Collin <lasse.collin@tukaani.org>
6734Date:   2024-07-02 22:49:33 +0300
6735
6736    Update THANKS
6737
6738 THANKS | 1 +
6739 1 file changed, 1 insertion(+)
6740
6741commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a
6742Author: Lasse Collin <lasse.collin@tukaani.org>
6743Date:   2024-07-02 20:23:35 +0300
6744
6745    CMake: Improve NLS error messages
6746
6747 CMakeLists.txt | 11 +++++++----
6748 1 file changed, 7 insertions(+), 4 deletions(-)
6749
6750commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909
6751Author: Lasse Collin <lasse.collin@tukaani.org>
6752Date:   2024-07-02 20:19:47 +0300
6753
6754    CMake: Update the comment at the top of CMakeLists.txt
6755
6756    While po/*.gmo files won't be used from the release tarball,
6757    the generated translated man pages will be used still. Those
6758    are text files and po4a has slightly more dependencies than
6759    gettext tools so installing po4a might be a bit more challenging
6760    in some situations.
6761
6762 CMakeLists.txt | 17 +++++++----------
6763 1 file changed, 7 insertions(+), 10 deletions(-)
6764
6765commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507
6766Author: Lasse Collin <lasse.collin@tukaani.org>
6767Date:   2024-07-02 20:12:40 +0300
6768
6769    CMake: Drop support for pre-generated po/*.gmo files
6770
6771    When a release tarball is created using Autotools, the tarball includes
6772    po/*.gmo files which are binary files generated from po/*.po. Other
6773    tarball creation methods don't and won't create the .gmo files.
6774
6775    It feels clearer if CMake will never install pre-generated binary files
6776    from the source package. If people are able to install CMake, they
6777    likely are able to install gettext tools as well (assuming they want
6778    translations).
6779
6780 CMakeLists.txt | 66 +++++++++++++++++++---------------------------------------
6781 1 file changed, 21 insertions(+), 45 deletions(-)
6782
6783commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a
6784Author: Lasse Collin <lasse.collin@tukaani.org>
6785Date:   2024-07-02 19:14:50 +0300
6786
6787    CMake: Make XZ_NLS handling more robust
6788
6789    If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version
6790    wasn't at least 3.20, the configuration would fail in a cryptic way.
6791
6792    If XZ_NLS is enabled, require that CMake is new enough and that either
6793    gettext tools or pre-generated .gmo files are available. Otherwise fail
6794    the configuration. Previously missing gettext tools and .gmo files would
6795    only result in a warning.
6796
6797    Missing man page translations are still only a warning.
6798
6799    Thanks to Peter Seiderer for the bug report.
6800
6801    Fixes: https://github.com/tukaani-project/xz/issues/129
6802    Closes: https://github.com/tukaani-project/xz/pull/130
6803
6804 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++--------------------------
6805 1 file changed, 46 insertions(+), 36 deletions(-)
6806
6807commit ec6157570ea8a8e38158894e530d35416ff6a0f8
6808Author: Lasse Collin <lasse.collin@tukaani.org>
6809Date:   2024-07-02 19:39:05 +0300
6810
6811    CI: Add gettext as a dependency to CMake builds
6812
6813 .github/workflows/ci.yml | 4 ++--
6814 1 file changed, 2 insertions(+), 2 deletions(-)
6815
6816commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac
6817Author: Lasse Collin <lasse.collin@tukaani.org>
6818Date:   2024-07-02 18:43:56 +0300
6819
6820    CMake: Fix ENABLE_NLS comment too
6821
6822    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
6823
6824 CMakeLists.txt | 2 +-
6825 1 file changed, 1 insertion(+), 1 deletion(-)
6826
6827commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb
6828Author: Lasse Collin <lasse.collin@tukaani.org>
6829Date:   2024-07-02 18:02:50 +0300
6830
6831    CMake: The compile definition is ENABLE_NLS, not XZ_NLS
6832
6833    The CMake variables were renamed and accidentally also
6834    the compile definition was renamed. As a result, translation
6835    support wasn't actually enabled in the executables.
6836
6837    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
6838
6839 CMakeLists.txt | 4 ++--
6840 1 file changed, 2 insertions(+), 2 deletions(-)
6841
6842commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b
6843Author: Lasse Collin <lasse.collin@tukaani.org>
6844Date:   2024-07-01 17:33:20 +0300
6845
6846    Update AUTHORS and THANKS
6847
6848 AUTHORS | 2 +-
6849 THANKS  | 1 +
6850 2 files changed, 2 insertions(+), 1 deletion(-)
6851
6852commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e
6853Author: Xi Ruoyao <xry111@xry111.site>
6854Date:   2024-06-28 13:36:43 +0300
6855
6856    liblzma: Speed up CRC32 calculation on 64-bit LoongArch
6857
6858    The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32
6859    result for 1/2/4/8 bytes in a single operation. Using these is much
6860    faster compared to the generic method.
6861
6862    Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because
6863    the LoongArch specification says that CRC32 instructions shall be
6864    implemented for 64-bit processors. Optimized CRC32 isn't enabled for
6865    32-bit LoongArch processors because not enough information is available
6866    about them.
6867
6868    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
6869
6870    Closes: https://github.com/tukaani-project/xz/pull/86
6871
6872 CMakeLists.txt                      | 25 ++++++++++++++
6873 configure.ac                        | 40 +++++++++++++++++++++++
6874 src/liblzma/check/Makefile.inc      |  3 +-
6875 src/liblzma/check/crc32_fast.c      |  2 ++
6876 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++
6877 src/liblzma/check/crc_common.h      | 15 +++++++++
6878 6 files changed, 149 insertions(+), 1 deletion(-)
6879
6880commit 0ed893668554fb0758003289f8a6af9bd08b89d1
6881Author: Lasse Collin <lasse.collin@tukaani.org>
6882Date:   2024-06-28 14:20:49 +0300
6883
6884    liblzma: ARM64 CRC32: Align the buffer faster
6885
6886    Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions.
6887
6888 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++-----------
6889 1 file changed, 40 insertions(+), 14 deletions(-)
6890
6891commit 7e99856f66c07852c4e0de7aa01951e9147d86b0
6892Author: Sam James <sam@gentoo.org>
6893Date:   2024-06-28 14:18:35 +0300
6894
6895    CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...
6896
6897    This addresses the issue I mentioned in
6898    6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind
6899    job a bit, because non-xz tools aren't run unnecessarily with
6900    Valgrind by the script tests.
6901
6902 .github/workflows/ci.yml | 2 +-
6903 1 file changed, 1 insertion(+), 1 deletion(-)
6904
6905commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098
6906Author: Lasse Collin <lasse.collin@tukaani.org>
6907Date:   2024-06-25 16:00:22 +0300
6908
6909    Build: Prepend, not append, PTHREAD_CFLAGS to LIBS
6910
6911    It shouldn't make any difference because LIBS should be empty
6912    at that point in configure. But prepending is the correct way
6913    because in general the libraries being added might require other
6914    libraries that come later on the command line.
6915
6916 configure.ac | 2 +-
6917 1 file changed, 1 insertion(+), 1 deletion(-)
6918
6919commit 7bb46f2b7b3989c1b589a247a251470f65e91cda
6920Author: Lasse Collin <lasse.collin@tukaani.org>
6921Date:   2024-06-25 14:24:29 +0300
6922
6923    Build: Use AC_LINK_IFELSE to handle implicit function declarations
6924
6925    It's more robust in case the compiler allows pre-C99 implicit function
6926    declarations. If an x86 intrinsic is missing and gets treated as
6927    implicit function, the linking step will very probably fail. This
6928    isn't the only way to workaround implicit function declarations but
6929    it might be the simplest and cleanest.
6930
6931    The problem hasn't been observed in the wild.
6932
6933    There are a couple more AC_COMPILE_IFELSE uses in configure.ac.
6934    Of these, Landlock check calls prctl() and in theory could have
6935    the same problem. In practice it doesn't as the check program
6936    looks for several other things too. However, it was changed to
6937    AC_LINK_IFELSE still to look more correct.
6938
6939    Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were
6940    updated although they haven't given any trouble either. They
6941    have worked all these years because those check programs rely
6942    on specific headers and types: if headers or types are missing,
6943    compilation will fail. Using the linker makes these checks more
6944    similar to the ones in cmake/tuklib_*.cmake which always link.
6945
6946 configure.ac          |  8 ++++++--
6947 m4/tuklib_cpucores.m4 |  8 ++++----
6948 m4/tuklib_physmem.m4  | 17 +++++++++++------
6949 3 files changed, 21 insertions(+), 12 deletions(-)
6950
6951commit 35eb57355ad1c415a838d26192d5af84abb7cf39
6952Author: Lasse Collin <lasse.collin@tukaani.org>
6953Date:   2024-06-24 23:35:59 +0300
6954
6955    Build: Use AC_LINK_IFELSE instead of -Werror
6956
6957    AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely
6958    warn about the unsupported attribute and implicit function declaration.
6959    Changing to AC_LINK_IFELSE handles the implicit declaration because
6960    the symbol __crc32d is unlikely to exist in libc.
6961
6962    Note that the other part of the check is that #include <arm_acle.h>
6963    must work. If the header is missing, most compilers give an error
6964    and the linking step won't be attempted.
6965
6966    Avoiding -Werror makes the check more robust in case CFLAGS contains
6967    warning flags that break -Werror anyway (but this isn't the only check
6968    in configure.ac that has this problem). Using AC_LINK_IFELSE also makes
6969    the check more similar to how it is done in CMakeLists.txt.
6970
6971 configure.ac | 12 +-----------
6972 1 file changed, 1 insertion(+), 11 deletions(-)
6973
6974commit 5a728813c378cc3c4c9c95793762452418d08f1b
6975Author: Lasse Collin <lasse.collin@tukaani.org>
6976Date:   2024-06-24 23:34:34 +0300
6977
6978    Build: Sync the compile check changes from CMakeLists.txt
6979
6980    It's nice to keep these in sync. The use of main() will later allow
6981    AC_LINK_IFELSE usage too which may avoid the more fragile -Werror.
6982
6983 configure.ac | 15 ++++++++-------
6984 1 file changed, 8 insertions(+), 7 deletions(-)
6985
6986commit 5279828635a95abdef82e691fc4979d362780e63
6987Author: Lasse Collin <lasse.collin@tukaani.org>
6988Date:   2024-06-24 20:14:43 +0300
6989
6990    CMake: Not experimental anymore
6991
6992    While the CMake support has gotten a lot less testing than
6993    the Autotools-based build, the supported features should now
6994    be equal. The output may differ slightly, for example,
6995    liblzma.pc may have
6996
6997        Libs.private: -pthread -lpthread
6998
6999    with Autotools on GNU/Linux. CMake doesn't put any options
7000    in Libs.private because on modern glibc the pthread functions
7001    are in libc. The options options aren't required to link static
7002    liblzma into an application.
7003
7004    Autotools-based build doesn't generate or install
7005    lib/cmake/liblzma-*.cmake files. This means that on most
7006    platforms one cannot rely on
7007
7008        find_package(liblzma 5.2.5 REQUIRED CONFIG)
7009
7010    or such finding those files.
7011
7012 CMakeLists.txt | 9 ++++++---
7013 1 file changed, 6 insertions(+), 3 deletions(-)
7014
7015commit de215a0517645d16343f3a5336d3df884a4f665f
7016Author: Lasse Collin <lasse.collin@tukaani.org>
7017Date:   2024-06-25 16:11:13 +0300
7018
7019    CMake: Use configure_file() to copy a file
7020
7021    I had missed this simpler method before. It does create a dependency
7022    so that if .in.h changes the copying is done again.
7023
7024 CMakeLists.txt | 17 +++++++----------
7025 1 file changed, 7 insertions(+), 10 deletions(-)
7026
7027commit e620f35097c0ad20cd76d8258750aa706758ced9
7028Author: Lasse Collin <lasse.collin@tukaani.org>
7029Date:   2024-06-25 15:51:48 +0300
7030
7031    CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES
7032
7033    It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES
7034    only if CLOCK_MONOTONIC is available. Alternative would be to remove
7035    the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for
7036    pthread_condattr_setclock() but keeping the libs should be fine too.
7037    Then it's ready in case more pthread functions were wanted some day.
7038
7039 CMakeLists.txt | 6 ++++--
7040 1 file changed, 4 insertions(+), 2 deletions(-)
7041
7042commit 068a70e54932ca32ca2922aff5a67a62615c650b
7043Author: Sam James <sam@gentoo.org>
7044Date:   2024-06-24 19:25:30 +0100
7045
7046    CMake: Tweak comments
7047
7048    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
7049
7050 CMakeLists.txt | 15 +++++++--------
7051 1 file changed, 7 insertions(+), 8 deletions(-)
7052
7053commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa
7054Author: Lasse Collin <lasse.collin@tukaani.org>
7055Date:   2024-06-24 22:42:01 +0300
7056
7057    CMake: Edit white space for consistency
7058
7059 CMakeLists.txt | 26 +++++++++++++-------------
7060 1 file changed, 13 insertions(+), 13 deletions(-)
7061
7062commit 114cba69dbb96003e676c8c87a2e9943b12d065f
7063Author: Lasse Collin <lasse.collin@tukaani.org>
7064Date:   2024-06-24 22:41:10 +0300
7065
7066    CMake: Fix three checks if building with -flto
7067
7068    In CMake, check_c_source_compiles() always links too. With
7069    link-time optimization, unused functions may get omitted if
7070    main() doesn't depend on them. Consider the following which
7071    tries to check if somefunction() is available when <someheader.h>
7072    has been included:
7073
7074        #include <someheader.h>
7075        int foo(void) { return somefunction(); }
7076        int main(void) { return 0; }
7077
7078    LTO may omit foo() completely because the program as a whole doesn't
7079    need it and then the program will link even if the symbol somefunction
7080    isn't available in libc or other library being linked in, and then
7081    the test may pass when it shouldn't.
7082
7083    What happens if <someheader.h> doesn't declare somefunction()?
7084    Shouldn't the test fail in the compilation phase already? It should
7085    but many compilers don't follow the C99 and later standards that
7086    prohibit implicit function declarations. Instead such compilers
7087    assume that somefunction() exists, compilation succeeds (with a
7088    warning), and then linker with LTO omits the call to somefunction().
7089
7090    Change the tests so that they are part of main(). If compiler accepts
7091    implicitly declared functions, LTO cannot omit them because it has to
7092    assume that they might have side effects and thus linking will fail.
7093    On the other hand, if the functions/intrinsics being used are supported,
7094    they might get optimized away but in that case it's fine because they
7095    really are supported.
7096
7097    It is fine to use __attribute__((target(...))) for main(). At least
7098    it works with GCC 4.9 to 14.1 on x86-64.
7099
7100    Reported-by: Sam James <sam@gentoo.org>
7101
7102 CMakeLists.txt | 19 ++++++++-----------
7103 1 file changed, 8 insertions(+), 11 deletions(-)
7104
7105commit 78e882205e1f1e91df2af2cb7da00fe205dede99
7106Author: Lasse Collin <lasse.collin@tukaani.org>
7107Date:   2024-06-24 21:19:14 +0300
7108
7109    CMake: Use MATCHES instead of multiple STREQUAL
7110
7111 CMakeLists.txt | 11 ++++-------
7112 1 file changed, 4 insertions(+), 7 deletions(-)
7113
7114commit d3f20382fc1bd865eb70a65455d5022ed05caac8
7115Author: Lasse Collin <lasse.collin@tukaani.org>
7116Date:   2024-06-24 21:06:18 +0300
7117
7118    CMake: Improve the comment about LIBS
7119
7120 CMakeLists.txt | 6 ++++++
7121 1 file changed, 6 insertions(+)
7122
7123commit 33ec377729a3889e58d98934b2777b2754a3e045
7124Author: Lasse Collin <lasse.collin@tukaani.org>
7125Date:   2024-06-24 20:01:25 +0300
7126
7127    CMake: Fix a typo in a message
7128
7129    It was spotted with codespell.
7130
7131 CMakeLists.txt | 2 +-
7132 1 file changed, 1 insertion(+), 1 deletion(-)
7133
7134commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f
7135Author: Lasse Collin <lasse.collin@tukaani.org>
7136Date:   2024-06-24 19:58:54 +0300
7137
7138    Document CMake options in INSTALL
7139
7140 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
7141 1 file changed, 106 insertions(+), 9 deletions(-)
7142
7143commit 3faf4e8079a46bd46e05cd1234365724a6a33802
7144Author: Lasse Collin <lasse.collin@tukaani.org>
7145Date:   2024-06-24 17:18:44 +0300
7146
7147    CI: Don't omit crc32 from the list with CMake anymore
7148
7149    XZ_CHECKS accepts it but works without too.
7150
7151 build-aux/ci_build.bash | 10 +---------
7152 1 file changed, 1 insertion(+), 9 deletions(-)
7153
7154commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a
7155Author: Lasse Collin <lasse.collin@tukaani.org>
7156Date:   2024-06-24 17:39:54 +0300
7157
7158    CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS
7159
7160    Check for the wrong triplet from config.guess and override it with
7161    the --build option on the configure command line. Then i386 assembly
7162    autodetection will work.
7163
7164    These Ubuntu versions (and as of writing, also Debian unstable)
7165    ship config.guess version 2022-01-09 which contains a bug that
7166    was fixed in version 2022-05-08. It results in a wrong configure
7167    triplet when using CC="gcc -m32" to build i386 binaries.
7168
7169    Upstream fix:
7170    https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329
7171
7172    More information:
7173    https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html
7174
7175 build-aux/ci_build.bash | 9 +++++++++
7176 1 file changed, 9 insertions(+)
7177
7178commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679
7179Author: Lasse Collin <lasse.collin@tukaani.org>
7180Date:   2024-06-24 15:24:52 +0300
7181
7182    CI: Use CC="gcc -m32" to get i386 compiler on x86-64
7183
7184    The old method put it in CFLAGS which is a wrong place because
7185    config.guess doesn't read CFLAGS.
7186
7187 .github/workflows/ci.yml | 4 ++--
7188 1 file changed, 2 insertions(+), 2 deletions(-)
7189
7190commit 0c1e6d900bac127464fb30a854776e1810ab5f16
7191Author: Lasse Collin <lasse.collin@tukaani.org>
7192Date:   2024-06-24 14:54:17 +0300
7193
7194    CI: Let CMake use the CC environment variable
7195
7196    CC from environment is used to initialize CMAKE_C_COMPILER so
7197    setting CMAKE_C_COMPILER explicitly isn't needed.
7198
7199    The syntax in ci_build.bash was broken in case one wished to put
7200    spaces in CC.
7201
7202 build-aux/ci_build.bash | 4 ----
7203 1 file changed, 4 deletions(-)
7204
7205commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075
7206Author: Lasse Collin <lasse.collin@tukaani.org>
7207Date:   2024-06-20 23:25:42 +0300
7208
7209    CMake: Add autodetection for 32-bit x86 CRC assembly usage
7210
7211 CMakeLists.txt | 33 ++++++++++++++++++---------------
7212 1 file changed, 18 insertions(+), 15 deletions(-)
7213
7214commit dbc14f213e5cf866f1f42b7c6381a91e1189908c
7215Author: Lasse Collin <lasse.collin@tukaani.org>
7216Date:   2024-06-20 23:00:59 +0300
7217
7218    CMake: Move option(XZ_ASM_I386) downwards a few lines
7219
7220 CMakeLists.txt | 16 ++++++++--------
7221 1 file changed, 8 insertions(+), 8 deletions(-)
7222
7223commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a
7224Author: Lasse Collin <lasse.collin@tukaani.org>
7225Date:   2024-06-20 18:45:41 +0300
7226
7227    DOS: Update Makefile and config.h for the CRC changes
7228
7229 dos/Makefile | 4 ++--
7230 dos/config.h | 3 +++
7231 2 files changed, 5 insertions(+), 2 deletions(-)
7232
7233commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88
7234Author: Lasse Collin <lasse.collin@tukaani.org>
7235Date:   2024-06-23 15:35:35 +0300
7236
7237    liblzma: Tidy up crc_common.h
7238
7239    Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with
7240    the other ARM64-specific lines. That macro isn't used outside this
7241    file.
7242
7243    ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL
7244    isn't used anywhere yet.
7245
7246    It's not ideal that the single-letter CRC utility macros are here
7247    as they pollute the namespace of the LZ encoder files. Those could
7248    be moved their own crc_macros.h like they were in 5.2.x but in practice
7249    this is fine enough already.
7250
7251 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++--------------
7252 1 file changed, 42 insertions(+), 20 deletions(-)
7253
7254commit 7484d375384f551d475ff44a93590a225e0cb8f6
7255Author: Lasse Collin <lasse.collin@tukaani.org>
7256Date:   2024-06-23 14:22:08 +0300
7257
7258    liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h
7259
7260    LZ encoder needs lzma_crc32_table[0] but otherwise those tables
7261    are private to the CRC code. In contrast, the other things in
7262    check.h are needed in several places.
7263
7264 src/liblzma/check/check.h        | 18 ------------------
7265 src/liblzma/check/crc32_small.c  |  3 +++
7266 src/liblzma/check/crc_common.h   | 18 ++++++++++++++++++
7267 src/liblzma/lz/lz_encoder_hash.h |  4 ++--
7268 4 files changed, 23 insertions(+), 20 deletions(-)
7269
7270commit 85b081f5d4598342b8c155a2c08697fb2adc372c
7271Author: Lasse Collin <lasse.collin@tukaani.org>
7272Date:   2024-06-19 18:38:22 +0300
7273
7274    liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL
7275
7276    Now runtime detection of CLMUL support can pick between the CLMUL and
7277    the generic assembly implementations. Whatever overhead this has for
7278    builds that omit CLMUL completely isn't important because builds for
7279    any non-ancient system is likely to include the CLMUL code too.
7280
7281    Handle the CRC tables in crcXX_fast.c files because now these files
7282    are built even when assembly code is used.
7283
7284    If 32-bit x86 assembly is enabled then it will always be built even
7285    if compiler flags were such that CLMUL would be allowed unconditionally.
7286    That is, runtime detection will be used anyway. This keeps the build
7287    rules simpler.
7288
7289    In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC
7290    is used without runtime detection. Previously this wasn't needed
7291    because crc32_table.c included the lzma_crc32_table[][] in the build
7292    unless encoder support had been disabled. Including an 8 KiB table
7293    was silly when only 1 KiB is actually used. So now liblzma is 7 KiB
7294    smaller if CLMUL is enabled without runtime detection.
7295
7296 CMakeLists.txt                    |  8 ++------
7297 src/liblzma/check/Makefile.inc    |  8 ++------
7298 src/liblzma/check/crc32_fast.c    | 14 ++++++++++++-
7299 src/liblzma/check/crc32_table.c   | 42 ---------------------------------------
7300 src/liblzma/check/crc32_x86.S     | 14 +++++--------
7301 src/liblzma/check/crc64_fast.c    | 18 +++++++++++++----
7302 src/liblzma/check/crc64_table.c   | 37 ----------------------------------
7303 src/liblzma/check/crc64_x86.S     | 14 +++++--------
7304 src/liblzma/check/crc_common.h    | 18 +++++++++--------
7305 src/liblzma/check/crc_x86_clmul.h |  5 -----
7306 src/liblzma/lz/lz_encoder.c       |  2 +-
7307 src/liblzma/lz/lz_encoder_hash.h  | 30 ++++++++++++++++++++--------
7308 12 files changed, 74 insertions(+), 136 deletions(-)
7309
7310commit 6667d503b5dc9826654e3d9ad505e1883ff6c388
7311Author: Lasse Collin <lasse.collin@tukaani.org>
7312Date:   2024-06-19 17:44:41 +0300
7313
7314    liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic
7315
7316    This prepares for the possibility that lzma_crc32_generic and
7317    lzma_crc64_generic are extern functions.
7318
7319 src/liblzma/check/crc32_fast.c | 6 +++---
7320 src/liblzma/check/crc64_fast.c | 6 +++---
7321 2 files changed, 6 insertions(+), 6 deletions(-)
7322
7323commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845
7324Author: Lasse Collin <lasse.collin@tukaani.org>
7325Date:   2024-06-20 22:55:22 +0300
7326
7327    CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
7328
7329 CMakeLists.txt | 3 +++
7330 1 file changed, 3 insertions(+)
7331
7332commit f76837acb65676e541d8ee79cd62dbbf27280a62
7333Author: Lasse Collin <lasse.collin@tukaani.org>
7334Date:   2024-05-10 16:00:26 +0300
7335
7336    Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
7337
7338    This makes it easier to determine when the CRC tables are needed.
7339
7340 configure.ac | 9 +++++++--
7341 1 file changed, 7 insertions(+), 2 deletions(-)
7342
7343commit 9ce0866b070850da4dc837741ff055faa218bdd6
7344Author: Lasse Collin <lasse.collin@tukaani.org>
7345Date:   2024-06-21 00:46:09 +0300
7346
7347    CI: Update to the new renamed options in CMakeLists.txt
7348
7349 build-aux/ci_build.bash | 10 +++++-----
7350 1 file changed, 5 insertions(+), 5 deletions(-)
7351
7352commit 0232e66d5bc5b01a25a447c657e51747626488ab
7353Author: Lasse Collin <lasse.collin@tukaani.org>
7354Date:   2024-06-20 18:12:22 +0300
7355
7356    CMake: Add XZ_EXTERNAL_SHA256
7357
7358 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
7359 1 file changed, 116 insertions(+), 5 deletions(-)
7360
7361commit 4535b80caead82a7ddf7feb988b8fbc773152522
7362Author: Lasse Collin <lasse.collin@tukaani.org>
7363Date:   2024-06-20 18:12:21 +0300
7364
7365    CMake: Move threading detection a few lines up
7366
7367    It feels clearer this way, and when support for external SHA-256
7368    is added, this will keep the order of the library detection the
7369    same as in configure.ac (check for pthreads before libmd) although
7370    it shouldn't matter in practice.
7371
7372 CMakeLists.txt | 176 ++++++++++++++++++++++++++++-----------------------------
7373 1 file changed, 88 insertions(+), 88 deletions(-)
7374
7375commit 94d062dbac34d366eb26625034200cc3457e6645
7376Author: Lasse Collin <lasse.collin@tukaani.org>
7377Date:   2024-06-20 18:12:21 +0300
7378
7379    CMake: Move the sandbox code out of the liblzma section
7380
7381    Sandboxing is for the command line tools, not liblzma.
7382    No functional changes.
7383
7384 CMakeLists.txt | 214 ++++++++++++++++++++++++++++-----------------------------
7385 1 file changed, 107 insertions(+), 107 deletions(-)
7386
7387commit 75ce4797d49621710e6da95d8cb91541028c6d68
7388Author: Lasse Collin <lasse.collin@tukaani.org>
7389Date:   2024-06-20 18:12:21 +0300
7390
7391    CMake: Keep existing options in LIBS when adding -lrt
7392
7393    This makes no difference yet because -lrt is currently the only option
7394    that might be added to LIBS.
7395
7396 CMakeLists.txt | 2 +-
7397 1 file changed, 1 insertion(+), 1 deletion(-)
7398
7399commit 47aaa92516fd9609821d04e5e94ca6558e56d62b
7400Author: Lasse Collin <lasse.collin@tukaani.org>
7401Date:   2024-06-15 18:07:04 +0300
7402
7403    CMake: Don't install scripts if the xz tool isn't built
7404
7405    The scripts need the xz tool.
7406
7407 CMakeLists.txt    | 11 +++++++++--
7408 tests/tests.cmake |  2 +-
7409 2 files changed, 10 insertions(+), 3 deletions(-)
7410
7411commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
7412Author: Lasse Collin <lasse.collin@tukaani.org>
7413Date:   2024-06-15 18:07:04 +0300
7414
7415    CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC
7416
7417 CMakeLists.txt | 15 ++++++++++++++-
7418 1 file changed, 14 insertions(+), 1 deletion(-)
7419
7420commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34
7421Author: Lasse Collin <lasse.collin@tukaani.org>
7422Date:   2024-06-15 18:07:04 +0300
7423
7424    CMake: Add XZ_TOOL_LZMAINFO
7425
7426 CMakeLists.txt | 4 +++-
7427 1 file changed, 3 insertions(+), 1 deletion(-)
7428
7429commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0
7430Author: Lasse Collin <lasse.collin@tukaani.org>
7431Date:   2024-06-15 18:07:04 +0300
7432
7433    CMake: Add XZ_TOOL_XZ
7434
7435 CMakeLists.txt | 4 +++-
7436 1 file changed, 3 insertions(+), 1 deletion(-)
7437
7438commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f
7439Author: Lasse Collin <lasse.collin@tukaani.org>
7440Date:   2024-06-15 18:07:04 +0300
7441
7442    Windows: Drop Visual Studio 2013 support
7443
7444    This simplifies things a little. Building liblzma with VS2013 probably
7445    still worked but building the command line tools was not supported.
7446
7447    Microsoft ended support for VS2013 on 2024-04.
7448
7449 CMakeLists.txt           | 9 +++++++--
7450 src/common/sysdefs.h     | 6 +-----
7451 windows/INSTALL-MSVC.txt | 8 ++------
7452 3 files changed, 10 insertions(+), 13 deletions(-)
7453
7454commit 5d5c92b26246936461a635dda1f95740d7de2058
7455Author: Lasse Collin <lasse.collin@tukaani.org>
7456Date:   2024-06-15 18:07:04 +0300
7457
7458    CMake: Add XZ_TOOL_SCRIPTS
7459
7460 CMakeLists.txt | 44 +++++++++++++++++++++++++++++---------------
7461 1 file changed, 29 insertions(+), 15 deletions(-)
7462
7463commit d274a2bc00d235f07e96aaf82c149794cfe82b12
7464Author: Lasse Collin <lasse.collin@tukaani.org>
7465Date:   2024-06-15 18:07:04 +0300
7466
7467    CMake: Add XZ_DOC
7468
7469 CMakeLists.txt | 45 ++++++++++++++++++++++++---------------------
7470 1 file changed, 24 insertions(+), 21 deletions(-)
7471
7472commit 188143a50ade67253ed256608f50f78aa1380403
7473Author: Lasse Collin <lasse.collin@tukaani.org>
7474Date:   2024-06-20 21:53:03 +0300
7475
7476    CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac
7477
7478    Make the available options and their behavior match
7479    --enable-symbol-versions in configure.ac.
7480
7481    Don't enable symbol versions on Linux if not using glibc. Previously
7482    the generic variant was selected on Microblaze or if using NVHPC
7483    without checking that libc is glibc.
7484
7485    Leave the cache variable to "auto" or "yes" if that was specified
7486    instead of setting it to the autodetected value by default. A downside
7487    is that one cannot easily see which variant the autodetection code
7488    has selected. The same applies to XZ_SANDBOX and XZ_THREADS though.
7489
7490 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++-----------------------
7491 1 file changed, 75 insertions(+), 50 deletions(-)
7492
7493commit cc52ef8ed3b75a581262c587f6c06c213a550f86
7494Author: Lasse Collin <lasse.collin@tukaani.org>
7495Date:   2024-06-15 18:07:04 +0300
7496
7497    CMake: Use the same option list for XZ_THREADS as in configure.ac
7498
7499    Also clarify that "yes" will fail if no threading support is found.
7500    If no threading is wanted, it has to be disabled manually.
7501
7502    configure.ac doesn't behave this way at the moment. Instead it
7503    assumes pthreads to be present if not targeting Windows. If pthreads
7504    actually are missing, the build fails later.
7505
7506 CMakeLists.txt | 18 ++++++++++--------
7507 1 file changed, 10 insertions(+), 8 deletions(-)
7508
7509commit 37f7af3452bab0a34ce320c2ad532835f18752d9
7510Author: Lasse Collin <lasse.collin@tukaani.org>
7511Date:   2024-06-15 18:07:04 +0300
7512
7513    CMake: Use the same option list for XZ_SANDBOX as in configure.ac
7514
7515    It's simpler to document this way.
7516
7517 CMakeLists.txt | 20 ++++++++++----------
7518 1 file changed, 10 insertions(+), 10 deletions(-)
7519
7520commit c715dec8e800b65145918cfb0ee9bbc90faa8aad
7521Author: Lasse Collin <lasse.collin@tukaani.org>
7522Date:   2024-06-15 18:07:04 +0300
7523
7524    CMake: Fix indentation
7525
7526 CMakeLists.txt | 2 +-
7527 1 file changed, 1 insertion(+), 1 deletion(-)
7528
7529commit ea379f2f180befabd2039342db8eaeb757fdd2b7
7530Author: Lasse Collin <lasse.collin@tukaani.org>
7531Date:   2024-06-15 18:07:04 +0300
7532
7533    CMake: Add warning options for GCC and Clang
7534
7535    The list was copied from configure.ac and should be kept in sync.
7536    (Pretend that the deleted comment in CMakeLists.txt didn't exist.)
7537
7538    There is no need to add equivalent of --enable-werror as CMake >= 3.24
7539    supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON.
7540
7541 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
7542 1 file changed, 59 insertions(+), 5 deletions(-)
7543
7544commit 74223338197b7dfcd69f56df78b6502805a75f23
7545Author: Lasse Collin <lasse.collin@tukaani.org>
7546Date:   2024-06-15 18:07:04 +0300
7547
7548    CMake: Use \040 instead of \x20 for a space
7549
7550    This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
7551    where \040 has to be used because \0x20F gets interpret at three hex
7552    digits. Octals escapes are never longer than three digits.
7553
7554 CMakeLists.txt | 2 +-
7555 1 file changed, 1 insertion(+), 1 deletion(-)
7556
7557commit e8854b6bdc956c46dc4232bd07c17163034a00f2
7558Author: Lasse Collin <lasse.collin@tukaani.org>
7559Date:   2024-06-15 18:07:04 +0300
7560
7561    CMake: Add XZ_ASSUME_RAM
7562
7563 CMakeLists.txt | 4 +++-
7564 1 file changed, 3 insertions(+), 1 deletion(-)
7565
7566commit e1127e75cb82e0385f02c995771d6fe1420f43c5
7567Author: Lasse Collin <lasse.collin@tukaani.org>
7568Date:   2024-06-15 18:07:04 +0300
7569
7570    CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR
7571
7572 CMakeLists.txt | 6 +++---
7573 1 file changed, 3 insertions(+), 3 deletions(-)
7574
7575commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff
7576Author: Lasse Collin <lasse.collin@tukaani.org>
7577Date:   2024-06-15 18:07:04 +0300
7578
7579    CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS
7580
7581    Now "crc32" is in the list too for completeness but it doesn't
7582    actually have any effect. The description of the cache variable
7583    says that "crc32 is always built" so it should be clear enough.
7584
7585 CMakeLists.txt    | 14 +++++++-------
7586 tests/tests.cmake | 17 ++++++++---------
7587 2 files changed, 15 insertions(+), 16 deletions(-)
7588
7589commit 679500ffe00ecb4f02292129e7529ab7392f3943
7590Author: Lasse Collin <lasse.collin@tukaani.org>
7591Date:   2024-06-15 18:07:04 +0300
7592
7593    CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL
7594
7595    We still need the variable POSIX_SHELL for configure_file()
7596    but it doesn't need to be a cache variable.
7597
7598 CMakeLists.txt | 7 ++++---
7599 1 file changed, 4 insertions(+), 3 deletions(-)
7600
7601commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef
7602Author: Lasse Collin <lasse.collin@tukaani.org>
7603Date:   2024-06-15 18:07:04 +0300
7604
7605    CMake: Rename ENCODERS and DECODERS to use XZ_ prefix
7606
7607 CMakeLists.txt    | 34 +++++++++++++++++-----------------
7608 tests/tests.cmake |  4 ++--
7609 2 files changed, 19 insertions(+), 19 deletions(-)
7610
7611commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154
7612Author: Lasse Collin <lasse.collin@tukaani.org>
7613Date:   2024-06-15 18:07:04 +0300
7614
7615    CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS
7616
7617 CMakeLists.txt | 6 +++---
7618 1 file changed, 3 insertions(+), 3 deletions(-)
7619
7620commit 63294806b488a27a28a0960f6a257695dd2b569a
7621Author: Lasse Collin <lasse.collin@tukaani.org>
7622Date:   2024-06-15 18:07:04 +0300
7623
7624    CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING
7625
7626 CMakeLists.txt | 9 +++++----
7627 1 file changed, 5 insertions(+), 4 deletions(-)
7628
7629commit ad245b133675d285bca5d48123062e9d1e3f747e
7630Author: Lasse Collin <lasse.collin@tukaani.org>
7631Date:   2024-06-15 18:07:04 +0300
7632
7633    CMake: Rename ENABLE_THREADS to XZ_THREADS
7634
7635 CMakeLists.txt | 24 +++++++++++-------------
7636 1 file changed, 11 insertions(+), 13 deletions(-)
7637
7638commit 4250d4de32e66e558cc2ebe73b05255633c933ed
7639Author: Lasse Collin <lasse.collin@tukaani.org>
7640Date:   2024-06-15 18:07:04 +0300
7641
7642    CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX
7643
7644 CMakeLists.txt | 23 +++++++++++------------
7645 1 file changed, 11 insertions(+), 12 deletions(-)
7646
7647commit 0fdcd0c582f1a38542cd647dde449d9447d5888d
7648Author: Lasse Collin <lasse.collin@tukaani.org>
7649Date:   2024-06-15 18:07:04 +0300
7650
7651    CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386
7652
7653 CMakeLists.txt | 10 +++++-----
7654 1 file changed, 5 insertions(+), 5 deletions(-)
7655
7656commit e017d5526e316003fdb2a3f76acbb83443f14ddf
7657Author: Lasse Collin <lasse.collin@tukaani.org>
7658Date:   2024-06-15 18:07:04 +0300
7659
7660    CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS
7661
7662    This only affects the names unxz and xzcat. The xz-prefixed script
7663    symlinks (xzfgrep and such) are always created if scripts are enabled.
7664
7665 CMakeLists.txt | 4 ++--
7666 1 file changed, 2 insertions(+), 2 deletions(-)
7667
7668commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c
7669Author: Lasse Collin <lasse.collin@tukaani.org>
7670Date:   2024-06-15 18:07:04 +0300
7671
7672    CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS
7673
7674    Update the description too.
7675
7676    It affects creation of not only the legacy lzma, unlzma, lzcat symlinks
7677    but also lzgrep and other legacy names for the scripts. The last
7678    LZMA Utils release was made in 2008 but these names are still used
7679    in some places to handle .lzma files.
7680
7681 CMakeLists.txt | 7 ++++---
7682 1 file changed, 4 insertions(+), 3 deletions(-)
7683
7684commit 612ccebf884eb1a9b6848e230c24f97a03fe917a
7685Author: Lasse Collin <lasse.collin@tukaani.org>
7686Date:   2024-06-15 18:07:04 +0300
7687
7688    CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32
7689
7690    Update description too.
7691
7692 CMakeLists.txt | 6 +++---
7693 1 file changed, 3 insertions(+), 3 deletions(-)
7694
7695commit 3dcc12290d6dffbe7f10f501c141d325bad65901
7696Author: Lasse Collin <lasse.collin@tukaani.org>
7697Date:   2024-06-15 18:07:04 +0300
7698
7699    CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC
7700
7701    Update description too.
7702
7703 CMakeLists.txt | 6 +++---
7704 1 file changed, 3 insertions(+), 3 deletions(-)
7705
7706commit 4b8faa72442da9aa1a356f5848aae798d8588a7d
7707Author: Lasse Collin <lasse.collin@tukaani.org>
7708Date:   2024-06-15 18:07:04 +0300
7709
7710    CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN
7711
7712 CMakeLists.txt | 4 ++--
7713 1 file changed, 2 insertions(+), 2 deletions(-)
7714
7715commit b56273ae575bac350e50b0c689269dcab04b04b3
7716Author: Lasse Collin <lasse.collin@tukaani.org>
7717Date:   2024-06-15 18:07:04 +0300
7718
7719    CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER
7720
7721 CMakeLists.txt    | 4 ++--
7722 tests/tests.cmake | 2 +-
7723 2 files changed, 3 insertions(+), 3 deletions(-)
7724
7725commit 2343992fcbe8b436da6df888be37713cccaff0ab
7726Author: Lasse Collin <lasse.collin@tukaani.org>
7727Date:   2024-06-15 18:07:04 +0300
7728
7729    CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER
7730
7731 CMakeLists.txt    | 8 ++++----
7732 tests/tests.cmake | 2 +-
7733 2 files changed, 5 insertions(+), 5 deletions(-)
7734
7735commit 96f0a6632cc0598a26d93255b0c444df18dc7891
7736Author: Lasse Collin <lasse.collin@tukaani.org>
7737Date:   2024-06-15 18:07:04 +0300
7738
7739    CMake: Rename ENABLE_SMALL to XZ_SMALL
7740
7741 CMakeLists.txt | 14 +++++++-------
7742 1 file changed, 7 insertions(+), 7 deletions(-)
7743
7744commit 29f77c7b707f2458fb047e77497354b195e05b14
7745Author: Lasse Collin <lasse.collin@tukaani.org>
7746Date:   2024-06-15 18:07:04 +0300
7747
7748    CMake: Rename ENABLE_NLS to XZ_NLS
7749
7750    Also update the description to mention that this affects installation
7751    of translated man pages too.
7752
7753    Prefixing the cache variables with the project name helps if
7754    the package is used as a subproject in another package.
7755    It also makes the package-specific options group more nicely
7756    in ccmake and cmake-gui.
7757
7758 CMakeLists.txt | 28 +++++++++++++++-------------
7759 1 file changed, 15 insertions(+), 13 deletions(-)
7760
7761commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
7762Author: Lasse Collin <lasse.collin@tukaani.org>
7763Date:   2024-06-15 23:34:29 +0300
7764
7765    CMake: Link Threads::Threads as PRIVATE to liblzma
7766
7767    This way pthread options aren't passed to the linker when linking
7768    against shared liblzma but they are still passed when linking against
7769    static liblzma. (Also, one never needs the include path of the
7770    threading library to use liblzma since liblzma's API headers
7771    don't #include <pthread.h>. But <pthread.h> tends to be in the
7772    default include path so here this change makes no difference.)
7773
7774    One cannot mix target_link_libraries() calls that use the scope
7775    (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it.
7776    The calls without the keyword are like PUBLIC except perhaps when
7777    they aren't, or something like that... It seems best to always
7778    specify a scope keyword as the meanings of those three keywords
7779    at least are clear.
7780
7781 CMakeLists.txt | 2 +-
7782 1 file changed, 1 insertion(+), 1 deletion(-)
7783
7784commit 82986d8c691a294c78b48d8391303e5c428b5437
7785Author: Lasse Collin <lasse.collin@tukaani.org>
7786Date:   2024-06-16 19:39:32 +0300
7787
7788    CMake: Add empty lines
7789
7790 CMakeLists.txt | 2 ++
7791 1 file changed, 2 insertions(+)
7792
7793commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2
7794Author: Lasse Collin <lasse.collin@tukaani.org>
7795Date:   2024-06-16 19:37:36 +0300
7796
7797    CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads
7798
7799    This shouldn't make much difference in practice as on Windows
7800    no flags are needed anyway and unitialized variable (when threading
7801    is disabled) expands to empty. But it's clearer this way.
7802
7803 CMakeLists.txt | 8 +++++++-
7804 1 file changed, 7 insertions(+), 1 deletion(-)
7805
7806commit 664918bd3635ea8e773f06022286ecb0c485166c
7807Author: Lasse Collin <lasse.collin@tukaani.org>
7808Date:   2024-06-17 18:20:14 +0300
7809
7810    Update THANKS
7811
7812 THANKS | 3 +++
7813 1 file changed, 3 insertions(+)
7814
7815commit 5ca96a93488d0f5a530c78b274cac317453807ff
7816Author: Lasse Collin <lasse.collin@tukaani.org>
7817Date:   2024-06-16 19:25:07 +0300
7818
7819    CMake: Use native newlines in liblzma.pc
7820
7821    vcpkg doesn't specify the newline type so it should be fine to
7822    use native newlines in liblzma.pc on Windows.
7823
7824 CMakeLists.txt | 4 +---
7825 1 file changed, 1 insertion(+), 3 deletions(-)
7826
7827commit ebd155c3a1b87411edae06d3bdaa9659ec057522
7828Author: Lasse Collin <lasse.collin@tukaani.org>
7829Date:   2024-06-16 19:18:56 +0300
7830
7831    CMake: Use relative paths in liblzma.pc if possible
7832
7833    Now liblzma.pc can be relocatable only if using CMake >= 3.20
7834    but that should be OK as now we shouldn't get broken liblzma.pc
7835    if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an
7836    absolute path.
7837
7838    Thanks to Eli Schwartz.
7839
7840 CMakeLists.txt | 18 ++++++++++++++----
7841 1 file changed, 14 insertions(+), 4 deletions(-)
7842
7843commit 7a366d93cfd74ce10201db400be8836199944e36
7844Author: Lasse Collin <lasse.collin@tukaani.org>
7845Date:   2024-06-16 18:33:08 +0300
7846
7847    Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc"
7848
7849    This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69.
7850
7851    While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need
7852    to be. Thus the commit was broken. A fancier method is required.
7853
7854    Thanks to Eli Schwartz for the bug report and explanation.
7855
7856 CMakeLists.txt | 6 +++---
7857 1 file changed, 3 insertions(+), 3 deletions(-)
7858
7859commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f
7860Author: Lasse Collin <lasse.collin@tukaani.org>
7861Date:   2024-06-16 13:39:37 +0300
7862
7863    liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed
7864
7865    On E2K the function compiles only due to compiler emulation but the
7866    function is never used. It's cleaner to omit the function when it's
7867    not needed even though it's a "static inline" function.
7868
7869    Thanks to Ilya Kurdyukov.
7870
7871 src/liblzma/check/crc_x86_clmul.h | 4 ++++
7872 1 file changed, 4 insertions(+)
7873
7874commit 54eaea5ea49bb8bca4286d4412f19ac73187489e
7875Author: Lasse Collin <lasse.collin@tukaani.org>
7876Date:   2024-06-16 13:21:34 +0300
7877
7878    liblzma: x86 CLMUL CRC: Rewrite
7879
7880    It's faster with both tiny and large buffers and doesn't require
7881    disabling any sanitizers. With large buffers the extra speed is
7882    from folding four 16-byte chunks in parallel.
7883
7884    The 32-bit x86 with MSVC reportedly still needs a workaround.
7885    Now the simpler "__asm mov ebx, ebx" trick is enough but it
7886    needs to be in lzma_crc64() instead of crc64_arch_optimized().
7887    Thanks to Iouri Kharon for testing and the fix.
7888
7889    Thanks to Ilya Kurdyukov for testing the speed with aligned and
7890    unaligned buffers on a few x86 processors and on E2K v6.
7891
7892    Thanks to Sam James for general feedback.
7893
7894    Fixes: https://github.com/tukaani-project/xz/issues/112
7895    Fixes: https://github.com/tukaani-project/xz/issues/122
7896
7897 src/liblzma/check/crc64_fast.c    |   8 +
7898 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------
7899 2 files changed, 237 insertions(+), 208 deletions(-)
7900
7901commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
7902Author: Lasse Collin <lasse.collin@tukaani.org>
7903Date:   2024-06-01 14:44:04 +0300
7904
7905    sysdefs.h: Add alignas
7906
7907 src/common/sysdefs.h | 11 +++++++++++
7908 1 file changed, 11 insertions(+)
7909
7910commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf
7911Author: Lasse Collin <lasse.collin@tukaani.org>
7912Date:   2024-06-11 12:47:59 +0300
7913
7914    liblzma: Use a single macro to select CLMUL CRC to build
7915
7916    This way it's clearer that two things cannot be selected
7917    at the same time.
7918
7919 src/liblzma/check/crc32_fast.c    |  2 +-
7920 src/liblzma/check/crc64_fast.c    |  2 +-
7921 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++--------
7922 3 files changed, 12 insertions(+), 10 deletions(-)
7923
7924commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441
7925Author: Lasse Collin <lasse.collin@tukaani.org>
7926Date:   2024-06-10 15:31:01 +0300
7927
7928    liblzma: CRC32 CLMUL: Refactor the constants and simplify
7929
7930    By using modulus scaled constants, the final reduction can
7931    be simplified.
7932
7933 src/liblzma/check/crc_x86_clmul.h | 52 +++++++--------------------------------
7934 1 file changed, 9 insertions(+), 43 deletions(-)
7935
7936commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2
7937Author: Lasse Collin <lasse.collin@tukaani.org>
7938Date:   2024-06-10 15:12:48 +0300
7939
7940    liblzma: CRC64 CLMUL: Refactor the constants
7941
7942    Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p
7943    and the p no longer has the lowest bit set (it makes no difference
7944    as the output bits it affects are ignored).
7945
7946 src/liblzma/check/crc_x86_clmul.h | 43 +++++++--------------------------------
7947 1 file changed, 7 insertions(+), 36 deletions(-)
7948
7949commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac
7950Author: Lasse Collin <lasse.collin@tukaani.org>
7951Date:   2024-06-10 14:45:44 +0300
7952
7953    liblzma: Add crc_clmul_consts_gen.c
7954
7955    It's a standalone program that prints the required constants.
7956    It's won't be a part of the normal build of the package.
7957
7958 src/liblzma/check/Makefile.inc           |   1 +
7959 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++
7960 2 files changed, 161 insertions(+)
7961
7962commit 71b147aab7fe4a60ed57b697d5bb490f099894be
7963Author: Lasse Collin <lasse.collin@tukaani.org>
7964Date:   2024-05-09 21:44:03 +0300
7965
7966    liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS
7967
7968    It was already commented out.
7969
7970 src/liblzma/check/crc32_fast.c    | 21 ---------------------
7971 src/liblzma/check/crc64_fast.c    |  5 -----
7972 src/liblzma/check/crc_common.h    | 14 --------------
7973 src/liblzma/check/crc_x86_clmul.h |  9 +--------
7974 4 files changed, 1 insertion(+), 48 deletions(-)
7975
7976commit f99a7be40645f86959a5b180dfae948dd165e07c
7977Author: Lasse Collin <lasse.collin@tukaani.org>
7978Date:   2024-05-09 21:03:39 +0300
7979
7980    liblzma: Remove crc_attr_no_sanitize_address
7981
7982    It's not enough to silence the address sanitizer. Also memory and
7983    thread sanitizers would need to be silenced. They, at least currently,
7984    aren't smart enough to see that the extra bytes are discarded from
7985    the xmm registers by later instructions.
7986
7987    Valgrind is smarter, possibly because this kind of code isn't weird
7988    to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions
7989    this idea of doing an aligned read and then discarding the extra
7990    bytes. The sanitizers don't instrument assembly code but Valgrind
7991    checks all code.
7992
7993    It's better to change the implementation to avoid the sanitization
7994    attributes which also look scary in the code. (Somehow they can look
7995    more scary than __asm__ which is implictly unsanitized.)
7996
7997    See also:
7998    https://github.com/tukaani-project/xz/issues/112
7999    https://github.com/tukaani-project/xz/issues/122
8000
8001 src/liblzma/check/crc_common.h    | 9 ---------
8002 src/liblzma/check/crc_x86_clmul.h | 3 ---
8003 2 files changed, 12 deletions(-)
8004
8005commit ead4d151996f8a18bf9b07eb1e175c0a1590e562
8006Author: Lasse Collin <lasse.collin@tukaani.org>
8007Date:   2024-06-10 15:37:49 +0300
8008
8009    Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz"
8010
8011    This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199.
8012
8013 configure.ac | 4 +---
8014 1 file changed, 1 insertion(+), 3 deletions(-)
8015
8016commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92
8017Author: Lasse Collin <lasse.collin@tukaani.org>
8018Date:   2024-06-12 14:26:44 +0300
8019
8020    CMake: Prefer C11 with a fallback to C99
8021
8022    There is no need to make a similar change in configure.ac.
8023    With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99
8024    is an alias for AC_PROG_CC which prefers a C11 compiler.
8025
8026 CMakeLists.txt | 17 +++++++++++------
8027 1 file changed, 11 insertions(+), 6 deletions(-)
8028
8029commit c97e9c12fef4d1093ee2a75236742481361f50f5
8030Author: Lasse Collin <lasse.collin@tukaani.org>
8031Date:   2024-06-12 14:20:21 +0300
8032
8033    Update THANKS
8034
8035 THANKS | 4 ++++
8036 1 file changed, 4 insertions(+)
8037
8038commit 89e9f12e03324b8a186e807b268f34f92d1b2f41
8039Author: Lasse Collin <lasse.collin@tukaani.org>
8040Date:   2024-06-11 11:15:49 +0300
8041
8042    Tests: Improve the CRC32 test
8043
8044    A similar one was already there for CRC64 but nowadays also CRC32
8045    has a CLMUL implementation, so it's good to test it better too.
8046
8047 tests/test_check.c | 17 +++++++++++++----
8048 1 file changed, 13 insertions(+), 4 deletions(-)
8049
8050commit c7164b1927e3fe7cdba70ee4687e1a590a81043b
8051Author: Lasse Collin <lasse.collin@tukaani.org>
8052Date:   2024-06-11 22:42:26 +0300
8053
8054    xz: Fix white space
8055
8056 src/xz/list.c | 6 +++---
8057 1 file changed, 3 insertions(+), 3 deletions(-)
8058
8059commit 0a32d2072c598de281058b26dc08920fbf0cd2a1
8060Author: Lasse Collin <lasse.collin@tukaani.org>
8061Date:   2024-06-11 21:59:09 +0300
8062
8063    liblzma: Fix a typo in a comment
8064
8065    Thanks to Sam James for spotting it.
8066
8067    Fixes: f644473a211394447824ea00518d0a214ff3f7f2
8068
8069 src/liblzma/check/crc_x86_clmul.h | 2 +-
8070 1 file changed, 1 insertion(+), 1 deletion(-)
8071
8072commit afd9b4d282a10186808c3331dad4caf79c02d55f
8073Author: Lasse Collin <lasse.collin@tukaani.org>
8074Date:   2024-05-10 15:52:26 +0300
8075
8076    liblzma: Fix a comment indentation
8077
8078 src/liblzma/check/crc_common.h | 6 +++---
8079 1 file changed, 3 insertions(+), 3 deletions(-)
8080
8081commit 50e6bff274568c568930e15094da8217e7d47d28
8082Author: Lasse Collin <lasse.collin@tukaani.org>
8083Date:   2024-05-09 22:09:12 +0300
8084
8085    liblzma: Fix white space
8086
8087 src/liblzma/check/crc32_table.c   | 10 +++++-----
8088 src/liblzma/check/crc_x86_clmul.h |  6 +++---
8089 src/liblzma/check/sha256.c        |  2 +-
8090 3 files changed, 9 insertions(+), 9 deletions(-)
8091
8092commit caea7844d3824755d053b4743c4913d73ac2db3d
8093Author: Lasse Collin <lasse.collin@tukaani.org>
8094Date:   2024-06-01 14:25:29 +0300
8095
8096    tuklib: __STDC_VERSION__ in C23 is 202311
8097
8098 src/common/tuklib_common.h | 4 +---
8099 1 file changed, 1 insertion(+), 3 deletions(-)
8100
8101commit 9e73918a4f14be754a23f74dda45ca431939a4a0
8102Author: RainRat <rainrat78@yahoo.ca>
8103Date:   2024-06-05 15:21:49 -0700
8104
8105    Fix typos
8106
8107    Closes: https://github.com/tukaani-project/xz/pull/124
8108
8109 INSTALL                           | 2 +-
8110 doc/examples/03_compress_custom.c | 2 +-
8111 src/common/tuklib_integer.h       | 2 +-
8112 src/liblzma/api/lzma/container.h  | 2 +-
8113 src/xz/mytime.c                   | 2 +-
8114 tests/test_filter_str.c           | 2 +-
8115 6 files changed, 6 insertions(+), 6 deletions(-)
8116
8117commit 04b23addf3733873667675df2439725f076c2f36
8118Author: Lasse Collin <lasse.collin@tukaani.org>
8119Date:   2024-06-07 15:47:20 +0300
8120
8121    tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2
8122
8123    GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h
8124    tries to use OS-specific byte swap methods instead. On OpenBSD those
8125    macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs
8126    and Darwin.
8127
8128    An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it
8129    is a macro. But since OpenBSD seems to be a special case under this
8130    special case of "*BSDs and Darwin", checking for __OpenBSD__ seems
8131    the more conservative choice now.
8132
8133    Thanks to Christian Weisgerber and Brad Smith who both submitted
8134    the same patch a few hours apart.
8135
8136    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
8137    Co-authored-by: Brad Smith <brad@comstyle.com>
8138    Closes: https://github.com/tukaani-project/xz/pull/126
8139
8140 src/common/tuklib_integer.h | 12 +++++++++---
8141 1 file changed, 9 insertions(+), 3 deletions(-)
8142
8143commit dc03f6290f5b9bd3d50c7e12e58dee870889d599
8144Author: Lasse Collin <lasse.collin@tukaani.org>
8145Date:   2024-06-07 15:06:59 +0300
8146
8147    liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD
8148
8149    The C code is from Christian Weisgerber, I merely reordered the OSes.
8150    Then I added the build system checks without testing them.
8151
8152    Also thanks to Brad Smith who submitted a similar patch on GitHub
8153    a few hours after Christian had sent his via email.
8154
8155    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
8156    Closes: https://github.com/tukaani-project/xz/pull/125
8157
8158 CMakeLists.txt                  |  6 ++++++
8159 configure.ac                    |  9 +++++++++
8160 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++
8161 src/liblzma/check/crc_common.h  |  1 +
8162 4 files changed, 31 insertions(+)
8163
8164commit f5c2ae58ec68c665e62c790b842657afcb31474c
8165Author: Lasse Collin <lasse.collin@tukaani.org>
8166Date:   2024-06-05 13:55:43 +0300
8167
8168    Update THANKS
8169
8170 THANKS | 2 ++
8171 1 file changed, 2 insertions(+)
8172
8173commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418
8174Author: Lasse Collin <lasse.collin@tukaani.org>
8175Date:   2024-06-05 13:42:47 +0300
8176
8177    CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION
8178
8179    This way the version string gets into xzgrep and other scripts
8180    in full and also into liblzma.pc.
8181
8182    For the project() command, a suffixless string is required though.
8183
8184 CMakeLists.txt | 16 +++++++++++++---
8185 1 file changed, 13 insertions(+), 3 deletions(-)
8186
8187commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0
8188Author: Lasse Collin <lasse.collin@tukaani.org>
8189Date:   2024-06-05 13:30:28 +0300
8190
8191    CMake: Fix wrong version variable
8192
8193    liblzma_VERSION has never existed in the repository. xz_VERSION from
8194    the project() command was used for liblzma SOVERSION so use xz_VERSION
8195    here too.
8196
8197    The wrong variable did no harm in practice as PROJECT_VERSION
8198    was used as the fallback. It has the same value as xz_VERSION.
8199
8200    Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6
8201
8202 CMakeLists.txt | 2 +-
8203 1 file changed, 1 insertion(+), 1 deletion(-)
8204
8205commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69
8206Author: Lasse Collin <lasse.collin@tukaani.org>
8207Date:   2024-06-05 12:59:59 +0300
8208
8209    CMake: Set only "prefix" as an absolute path in liblzma.pc
8210
8211    CMake provides variables that are relative to CMAKE_INSTALL_PREFIX
8212    so use them instead of repeating the full path.
8213
8214 CMakeLists.txt | 6 +++---
8215 1 file changed, 3 insertions(+), 3 deletions(-)
8216
8217commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7
8218Author: Lasse Collin <lasse.collin@tukaani.org>
8219Date:   2024-06-04 23:59:29 +0300
8220
8221    CMake: Fix liblzma filename in Windows environments
8222
8223    This is a mess because liblzma DLL outside Cygwin and MSYS2
8224    is liblzma.dll instead of lzma.dll to avoid a conflict with
8225    lzma.dll from LZMA SDK.
8226
8227    On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll"
8228    would have been correct (and match what Libtool produces).
8229    MSYS2 likely was broken too as it uses the "msys-" prefix.
8230
8231    This change has no effect with MinGW-w64 because with that
8232    the "lib" prefix was correct already.
8233
8234    With MSVC builds this is a small breaking change that requires developers
8235    to adjust the library name when linking against liblzma. The liblzma.dll
8236    name is kept as is but the import library and static library are now
8237    lzma.lib instead of liblzma.lib. This is helpful when using pkgconf
8238    because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib"
8239    (it's converted from "-llzma" in liblzma.pc). It would be easy to
8240    keep the liblzma.lib naming but the pkgconf compatibility seems worth
8241    it in the long run. The lzma.lib name is compatible with MinGW-w64
8242    too as -llzma will find also lzma.lib.
8243
8244    vcpkg had been patching CMakeLists.txt this way since 2022 but I
8245    learned this only recently. The reasoning for the patch makes sense,
8246    and while this is a small breaking change with MSVC, it seems like
8247    a decent compromise as it keeps the DLL name the same.
8248
8249    2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch
8250    See the discussion: https://github.com/microsoft/vcpkg/pull/39024
8251
8252    Thanks to Vincent Torri for confirming the naming issue on Cygwin.
8253
8254 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++----
8255 1 file changed, 30 insertions(+), 4 deletions(-)
8256
8257commit e7a42cda7c827e016619e8cab15e2faf5d4181ae
8258Author: Lasse Collin <lasse.collin@tukaani.org>
8259Date:   2024-06-03 16:55:03 +0300
8260
8261    Fix version.sh compatiblity with Solaris
8262
8263    The ancient /bin/tr on Solaris doesn't support '\n'.
8264    With /usr/xpg4/bin/tr it works but it might not be in PATH.
8265
8266    Another problem was that sed was given input that didn't have a newline
8267    at the end. Text files must end with a newline to be portable.
8268
8269    Fix both problems:
8270
8271      - Handle multiline input within sed itself to avoid one tr invocation.
8272        The default sed even on Solaris does understand \n.
8273
8274      - Use octals in tr -d. \012 works for ASCII "line feed", it's even
8275        used as an example in the Solaris man page. But we must strip
8276        also ASCII "carriage return" \015 and EBCDIC "next line" \025.
8277        The EBCDIC case got handled with \n previously. Stripping \012
8278        and \015 on EBCDIC system won't matter as those control chars
8279        won't be present in the string in the first place.
8280
8281    An awk-based solution could be an alternative but it might need
8282    special casing on Solaris to used nawk instead of awk. The changes
8283    in this commit are smaller and should have a smaller risk for
8284    regressions. It's also possible that version.sh will be dropped
8285    entirely at some point.
8286
8287 build-aux/version.sh | 5 ++---
8288 1 file changed, 2 insertions(+), 3 deletions(-)
8289
8290commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9
8291Author: Lasse Collin <lasse.collin@tukaani.org>
8292Date:   2024-06-03 17:07:11 +0300
8293
8294    CI: Don't require po4a on Solaris
8295
8296 .github/workflows/solaris.yml | 2 +-
8297 1 file changed, 1 insertion(+), 1 deletion(-)
8298
8299commit 5229bdf5335ce18ed54beb7e646e39927663be86
8300Author: Lasse Collin <lasse.collin@tukaani.org>
8301Date:   2024-06-03 15:08:15 +0300
8302
8303    CI: Use set -e on Solaris too
8304
8305 .github/workflows/solaris.yml | 1 +
8306 1 file changed, 1 insertion(+)
8307
8308commit afa938e429c1ce07d26d02999352fb014b62ff3d
8309Author: Lasse Collin <lasse.collin@tukaani.org>
8310Date:   2024-06-03 17:44:50 +0300
8311
8312    CMake: Install liblzma.pc even with MSVC
8313
8314    I had misunderstood that it wouldn't be useful with MSVC.
8315    vcpkg had been installing liblzma.pc with custom rules since 2020,
8316    years before liblzma.pc support was added to CMakeLists.txt.
8317
8318    See:
8319    https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake
8320    https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670
8321
8322 CMakeLists.txt | 8 +++-----
8323 1 file changed, 3 insertions(+), 5 deletions(-)
8324
8325commit 35f8649f08341639a627fd06350e938124ca3622
8326Author: Sam James <sam@gentoo.org>
8327Date:   2024-06-03 06:16:23 +0100
8328
8329    ci: don't pin official GH actions via commit, just tag
8330
8331    There's no real value in doing it via commit for official GH actions. We
8332    can keep using pinned commits for unofficial actions. It's hassle for no
8333    gain.
8334
8335    Maybe going forward we can limit this further by only being paranoid
8336    for the jobs with any access to tokens.
8337
8338 .github/workflows/ci.yml         | 4 ++--
8339 .github/workflows/freebsd.yml    | 2 +-
8340 .github/workflows/netbsd.yml     | 2 +-
8341 .github/workflows/openbsd.yml    | 2 +-
8342 .github/workflows/solaris.yml    | 2 +-
8343 .github/workflows/windows-ci.yml | 4 ++--
8344 6 files changed, 8 insertions(+), 8 deletions(-)
8345
8346commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2
8347Author: Christoph Junghans <christoph.junghans@gmail.com>
8348Date:   2024-04-30 07:49:26 -0600
8349
8350    ci: set -e on openbsd
8351
8352    Closes: https://github.com/tukaani-project/xz/pull/116
8353
8354 .github/workflows/openbsd.yml | 1 +
8355 1 file changed, 1 insertion(+)
8356
8357commit 21b02dd128cf9e8c76325ec124f70381862dcf19
8358Author: Christoph Junghans <christoph.junghans@gmail.com>
8359Date:   2024-04-30 07:48:58 -0600
8360
8361    ci: set -e on netbsd
8362
8363 .github/workflows/netbsd.yml | 1 +
8364 1 file changed, 1 insertion(+)
8365
8366commit 8641f0c24c041136670c975b23408184b45431bc
8367Author: Christoph Junghans <christoph.junghans@gmail.com>
8368Date:   2024-04-25 14:56:06 -0700
8369
8370    ci: actually fail on FreeBSD
8371
8372    Without "set -e" the job will always be successful.
8373
8374    See vmactions/freebsd-vm#72
8375
8376 .github/workflows/freebsd.yml | 1 +
8377 1 file changed, 1 insertion(+)
8378
8379commit ef616683ef11f11ffdfbe0624da33905e28a70f9
8380Author: Andrew Murray <radarhere@users.noreply.github.com>
8381Date:   2024-04-25 09:24:46 +1000
8382
8383    Updated actions
8384
8385    Closes: https://github.com/tukaani-project/xz/pull/115
8386
8387 .github/workflows/ci.yml         | 4 ++--
8388 .github/workflows/windows-ci.yml | 6 +++---
8389 2 files changed, 5 insertions(+), 5 deletions(-)
8390
8391commit 57b440d316da9ac9cb312ee7e6890f5382556f10
8392Author: Sam James <sam@gentoo.org>
8393Date:   2024-06-03 02:49:40 +0100
8394
8395    ci: add po4a
8396
8397 .github/workflows/netbsd.yml  | 2 +-
8398 .github/workflows/openbsd.yml | 3 ++-
8399 2 files changed, 3 insertions(+), 2 deletions(-)
8400
8401commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95
8402Author: Sam James <sam@gentoo.org>
8403Date:   2024-04-13 21:02:04 +0100
8404
8405    ci: add Solaris
8406
8407    Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94.
8408
8409    It runs on Solaris 5.11 via a VirtualBox VM.
8410
8411 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++
8412 1 file changed, 31 insertions(+)
8413
8414commit b69768c8bd1a34fde311935c551d061ba52d9a3f
8415Author: Sam James <sam@gentoo.org>
8416Date:   2024-04-14 08:08:00 +0100
8417
8418    xz: list: suppress -Wformat-nonliteral for Solaris
8419
8420    Solaris' GCC can't understand that our use is fine, unlike modern compilers:
8421    ```
8422    list.c: In function 'print_totals_basic':
8423    list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
8424      uint64_to_str(totals.files, 0));
8425      ^~~~~~~~~~~~~
8426    cc1: all warnings being treated as errors
8427    ```
8428
8429    It's presumably because of older gettext missing format attributes.
8430
8431    This is with `gcc (GCC) 7.3.0`.
8432
8433 src/xz/list.c | 7 +++++++
8434 1 file changed, 7 insertions(+)
8435
8436commit bb90e1f66d9beb490c4c99763e79519045968710
8437Author: Lasse Collin <lasse.collin@tukaani.org>
8438Date:   2024-06-03 11:44:28 +0300
8439
8440    license-check.sh: Fix reporting of unclear license info
8441
8442    The main feature was broken because an old variable name hadn't
8443    been updated to match the rest of the script.
8444
8445 build-aux/license-check.sh | 4 ++--
8446 1 file changed, 2 insertions(+), 2 deletions(-)
8447
8448commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2
8449Author: Lasse Collin <lasse.collin@tukaani.org>
8450Date:   2024-05-31 21:36:26 +0300
8451
8452    Update THANKS
8453
8454 THANKS | 3 +++
8455 1 file changed, 3 insertions(+)
8456
8457commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de
8458Author: Lasse Collin <lasse.collin@tukaani.org>
8459Date:   2024-05-29 17:47:13 +0300
8460
8461    Translations: Run po4a/update-po
8462
8463    Now the files are in the new formatting without source file
8464    line numbers. Future updates should keep the diffs much smaller.
8465
8466 po4a/de.po    | 1592 ++++++++++---------
8467 po4a/fr.po    | 4450 +++++++++++++++++-----------------------------------
8468 po4a/ko.po    | 1592 ++++++++++---------
8469 po4a/pt_BR.po | 4817 ++++++++++++++++++---------------------------------------
8470 po4a/ro.po    | 1592 ++++++++++---------
8471 po4a/uk.po    | 1592 ++++++++++---------
8472 6 files changed, 6114 insertions(+), 9521 deletions(-)
8473
8474commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe
8475Author: Lasse Collin <lasse.collin@tukaani.org>
8476Date:   2024-05-29 17:44:53 +0300
8477
8478    Translations: Run "make -C po update-po"
8479
8480    In the past this wasn't done before releases; the Git repository
8481    just contained the files from the Translation Project. But this
8482    way it is clearer when comparing release tarballs against the
8483    Git repository. In future releases this might no longer be necessary
8484    within a stable branch as the .po files won't change so easily anymore
8485    when creating a tarball.
8486
8487 po/ca.po    | 567 +++++++++++++++++++++++++---------------
8488 po/cs.po    | 821 +++++++++++++++++++++++++++++++++++++--------------------
8489 po/da.po    | 809 +++++++++++++++++++++++++++++++++++---------------------
8490 po/de.po    | 403 ++++++++++++++--------------
8491 po/eo.po    | 403 ++++++++++++++--------------
8492 po/es.po    | 403 ++++++++++++++--------------
8493 po/fi.po    | 578 +++++++++++++++++++++++++---------------
8494 po/fr.po    | 538 +++++++++++++++++++++++---------------
8495 po/hr.po    | 403 ++++++++++++++--------------
8496 po/hu.po    | 403 ++++++++++++++--------------
8497 po/it.po    | 854 +++++++++++++++++++++++++++++++++++++++---------------------
8498 po/ko.po    | 403 ++++++++++++++--------------
8499 po/pl.po    | 403 ++++++++++++++--------------
8500 po/pt.po    | 842 +++++++++++++++++++++++++++++++++++++++--------------------
8501 po/pt_BR.po | 567 +++++++++++++++++++++++++---------------
8502 po/ro.po    | 403 ++++++++++++++--------------
8503 po/sr.po    | 838 ++++++++++++++++++++++++++++++++++++++--------------------
8504 po/sv.po    | 403 ++++++++++++++--------------
8505 po/tr.po    | 567 +++++++++++++++++++++++++---------------
8506 po/uk.po    | 403 ++++++++++++++--------------
8507 po/vi.po    | 403 ++++++++++++++--------------
8508 po/zh_CN.po | 417 +++++++++++++++--------------
8509 po/zh_TW.po | 558 ++++++++++++++++++++++++---------------
8510 23 files changed, 7257 insertions(+), 5132 deletions(-)
8511
8512commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6
8513Author: Lasse Collin <lasse.collin@tukaani.org>
8514Date:   2024-05-29 18:03:04 +0300
8515
8516    Add NEWS for 5.6.2
8517
8518 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8519 1 file changed, 130 insertions(+)
8520
8521commit a0eeb5f9369c43508610dcf00140edb8e2be92a6
8522Author: Lasse Collin <lasse.collin@tukaani.org>
8523Date:   2024-05-29 18:03:04 +0300
8524
8525    Add NEWS for 5.4.7
8526
8527 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8528 1 file changed, 89 insertions(+)
8529
8530commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162
8531Author: Lasse Collin <lasse.collin@tukaani.org>
8532Date:   2024-05-29 18:03:04 +0300
8533
8534    Add NEWS for 5.2.13
8535
8536 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8537 1 file changed, 115 insertions(+)
8538
8539commit 9284f1aea31f0eb23e2ea72f7218b271e2234762
8540Author: Lasse Collin <lasse.collin@tukaani.org>
8541Date:   2024-05-29 16:33:24 +0300
8542
8543    Build: Update po/*.po files only when needed
8544
8545    When po/xz.pot doesn't exist, running "make" or "make dist" will
8546    create it. Then the .po files will be updated but only if they
8547    actually would change more than the POT-Creation-Date line.
8548    Then the .gmo files would be generated from the .po files.
8549    This is the case before and after this commit.
8550
8551    However, "make dist" and thus "make mydist" did a forced update
8552    to the files, updating them even if the only change was the
8553    POT-Creation-Date line. This had pros and cons: It made it clear
8554    that the .po file really is in sync with the recent strings in
8555    the package. On the other hand, it added noise in form of changed
8556    files in the source tree and distribution tarballs. It can be
8557    ignored with something like "diff -I'^"POT-Creation-Date: '" but
8558    it's still a minor annoyance *if* there's not enough value in
8559    having the most recent timestamp.
8560
8561    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
8562    update won't happen in "make dist" anymore. However, the "mydist"
8563    target will use xz.pot-update target which is the same target that
8564    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
8565    ensure that the translations are up to date, without noise from
8566    changes that would affect only the POT-Creation-Date line.
8567
8568    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
8569    in the man page translations is never the only change in .po files.
8570    In that sense this commit makes the message translations behave more
8571    similarly to the man page translations.
8572
8573    Distribution tarballs will still have non-reproducible POT-Creation-Date
8574    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
8575    could be made reproducible from a Git timestamp if desired.
8576
8577 Makefile.am | 3 ++-
8578 po/Makevars | 6 +++++-
8579 2 files changed, 7 insertions(+), 2 deletions(-)
8580
8581commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599
8582Author: Lasse Collin <lasse.collin@tukaani.org>
8583Date:   2024-05-28 21:10:33 +0300
8584
8585    po4a/update-po: Disable wrapping in .pot and .po files
8586
8587    The .po files from the Translation Project come with unwrapped
8588    strings so this matches it.
8589
8590    This may reduce the noise in diffs too. When the beginning of
8591    a paragraph had changed, the rest of the lines got rewrapped
8592    in msgsid. Now it's just one very long line that changes when
8593    a paragraph has been edited.
8594
8595    The --add-location=file option was removed as redundant. The line
8596    numbers don't exist in the .pot file due to --porefs file and thus
8597    they cannot get copied to the .po files either.
8598
8599 po4a/update-po | 15 +++++++++++----
8600 1 file changed, 11 insertions(+), 4 deletions(-)
8601
8602commit b14c130a58a649f9a73392eeb122cb252327c569
8603Author: Lasse Collin <lasse.collin@tukaani.org>
8604Date:   2024-05-28 18:36:53 +0300
8605
8606    Update contact info in README
8607
8608 README | 12 +++++++++---
8609 1 file changed, 9 insertions(+), 3 deletions(-)
8610
8611commit 75f5f2e014b0ee646963f36bc6a9c840fb272353
8612Author: Lasse Collin <lasse.collin@tukaani.org>
8613Date:   2024-05-28 13:25:07 +0300
8614
8615    Translations: Use --package-name=xz-man with po4a
8616
8617    This is to match reality. See the added comment.
8618
8619 po4a/update-po | 9 ++++++++-
8620 1 file changed, 8 insertions(+), 1 deletion(-)
8621
8622commit eb217d016cfbbba1babc19a61095b3ea25898af6
8623Author: Lasse Collin <lasse.collin@tukaani.org>
8624Date:   2024-05-28 13:03:40 +0300
8625
8626    Translations: Omit --package-name from po/Makevars
8627
8628    This is closer to the reality in the po/*.po files.
8629
8630 po/Makevars | 3 +--
8631 1 file changed, 1 insertion(+), 2 deletions(-)
8632
8633commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06
8634Author: Lasse Collin <lasse.collin@tukaani.org>
8635Date:   2024-05-27 17:45:51 +0300
8636
8637    license-check.sh: Use '--' with slightly untrusted filenames
8638
8639    Names from git ls-files should be safe but if one runs it on
8640    a tree without the .git dir and there are extra files, it's
8641    safer to have the end of arguments marked with '--'.
8642
8643 build-aux/license-check.sh | 6 +++---
8644 1 file changed, 3 insertions(+), 3 deletions(-)
8645
8646commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5
8647Author: Lasse Collin <lasse.collin@tukaani.org>
8648Date:   2024-05-27 17:41:37 +0300
8649
8650    license-check.sh: Use xargs -0 instead of -d
8651
8652    Neither are in POSIX but -0 is much more portable in practice.
8653
8654    Despite the old comment, the grep usage should be portable already.
8655
8656 build-aux/license-check.sh | 11 ++++++-----
8657 1 file changed, 6 insertions(+), 5 deletions(-)
8658
8659commit 9114267038deaecf4832a5cacb5acbe6591ac839
8660Author: Lasse Collin <lasse.collin@tukaani.org>
8661Date:   2024-05-28 01:17:45 +0300
8662
8663    Translations: Omit man page line numbers from .pot and .po files
8664
8665 po4a/update-po | 5 +++++
8666 1 file changed, 5 insertions(+)
8667
8668commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6
8669Author: Lasse Collin <lasse.collin@tukaani.org>
8670Date:   2024-05-28 01:06:30 +0300
8671
8672    Translations: Use the xgettext option --add-location=file
8673
8674 po/Makevars | 3 ++-
8675 1 file changed, 2 insertions(+), 1 deletion(-)
8676
8677commit fccebe2b4fd513488fc920e4dac32562ed3c7637
8678Author: Lasse Collin <lasse.collin@tukaani.org>
8679Date:   2024-05-28 00:43:53 +0300
8680
8681    Translations: Use the msgmerge option --add-location=file
8682
8683    This way the PO file diffs are less noisy but the locations of the
8684    strings are still present at file level, just without line numbers.
8685
8686    The option is available since gettext 0.19 (2014).
8687    configure.ac requires 0.19.6.
8688
8689 po/Makevars | 2 +-
8690 1 file changed, 1 insertion(+), 1 deletion(-)
8691
8692commit f361d9ae85707a87eb28db400eb7229cec103d58
8693Author: Lasse Collin <lasse.collin@tukaani.org>
8694Date:   2024-05-27 12:22:08 +0300
8695
8696    Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
8697
8698 Makefile.am | 14 +++++++-------
8699 1 file changed, 7 insertions(+), 7 deletions(-)
8700
8701commit a26dece34793a09aac2476f954d162d03e9cf62b
8702Author: Lasse Collin <lasse.collin@tukaani.org>
8703Date:   2024-05-23 17:25:13 +0300
8704
8705    Translations: Change the home page URLs in man page translations
8706
8707    Since the source strings have changed, these would get marked as
8708    fuzzy and the original string would be used instead. The original
8709    and translated strings are identical in this case so it wouldn't
8710    matter. But patching the translations helps still because then
8711    po4a will show the correct translation percentage.
8712
8713 po4a/de.po    | 8 ++++----
8714 po4a/fr.po    | 4 ++--
8715 po4a/ko.po    | 4 ++--
8716 po4a/pt_BR.po | 4 ++--
8717 po4a/ro.po    | 8 ++++----
8718 po4a/uk.po    | 8 ++++----
8719 6 files changed, 18 insertions(+), 18 deletions(-)
8720
8721commit 24387c234b4eed1ef9a7eaa107391740b4095568
8722Author: Lasse Collin <lasse.collin@tukaani.org>
8723Date:   2024-05-23 15:15:18 +0300
8724
8725    CMake: Add manual support for 32-bit x86 assembly files
8726
8727    One has to pass -DENABLE_X86_ASM=ON to cmake to enable the
8728    CRC assembly code. Autodetection isn't done. Looking at
8729    CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname
8730    unless cross-compilation is done using a CMake toolchain file.
8731
8732    On top of this, if the code is run on modern processors that support
8733    the CLMUL instruction, then the C code should be faster (but then
8734    one should also be using a x86-64 build if possible).
8735
8736 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++---
8737 1 file changed, 31 insertions(+), 3 deletions(-)
8738
8739commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d
8740Author: Lasse Collin <lasse.collin@tukaani.org>
8741Date:   2024-05-23 14:26:45 +0300
8742
8743    CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN
8744
8745    It's more consistent with the other option() uses.
8746
8747 CMakeLists.txt | 4 ++--
8748 1 file changed, 2 insertions(+), 2 deletions(-)
8749
8750commit 6bbec3bda02bf87d24fa095074456e723589921f
8751Author: Lasse Collin <lasse.collin@tukaani.org>
8752Date:   2024-05-22 15:21:53 +0300
8753
8754    Mention license-check.sh in COPYING
8755
8756 COPYING | 6 ++++++
8757 1 file changed, 6 insertions(+)
8758
8759commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a
8760Author: Lasse Collin <lasse.collin@tukaani.org>
8761Date:   2024-05-22 15:21:53 +0300
8762
8763    Use more confident language in COPYING
8764
8765 COPYING | 8 ++++----
8766 1 file changed, 4 insertions(+), 4 deletions(-)
8767
8768commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff
8769Author: Lasse Collin <lasse.collin@tukaani.org>
8770Date:   2024-05-22 15:21:53 +0300
8771
8772    Build: Run license-check.sh in "mydist" and "dist-hook"
8773
8774    In mydist the point is to check using the file list from the Git
8775    repository. In dist-hook it is to check that the TARBALL_IGNORE
8776    patterns work when the .git dir or the "git" command aren't available.
8777
8778    Refuse to create a distribution tarball if license issues are found.
8779
8780 Makefile.am | 2 ++
8781 1 file changed, 2 insertions(+)
8782
8783commit f3434ecfcb45154508752986f4fc670b8f0555dc
8784Author: Lasse Collin <lasse.collin@tukaani.org>
8785Date:   2024-05-22 15:21:53 +0300
8786
8787    Add build-aux/license-check.sh
8788
8789    This helps in spotting files that lack SPDX license identifier
8790    and which haven't been explicitly white listed either. The script
8791    requires the .git directory to be present as only the files that
8792    are in the Git repository are checked.
8793
8794    XZ Utils isn't FSFE REUSE compliant for now.
8795
8796 Makefile.am                |   1 +
8797 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++
8798 2 files changed, 175 insertions(+)
8799
8800commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde
8801Author: Lasse Collin <lasse.collin@tukaani.org>
8802Date:   2024-04-29 17:16:38 +0300
8803
8804    Add SPDX license identifiers to files under tests/ossfuzz
8805
8806 tests/ossfuzz/Makefile                          | 2 ++
8807 tests/ossfuzz/config/fuzz_decode_alone.options  | 2 ++
8808 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++
8809 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++
8810 tests/ossfuzz/config/fuzz_lzma.dict             | 2 ++
8811 tests/ossfuzz/config/fuzz_xz.dict               | 2 ++
8812 6 files changed, 12 insertions(+)
8813
8814commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05
8815Author: Lasse Collin <lasse.collin@tukaani.org>
8816Date:   2024-04-29 17:16:06 +0300
8817
8818    Add SPDX license identifier to .codespellrc
8819
8820 .codespellrc | 2 ++
8821 1 file changed, 2 insertions(+)
8822
8823commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76
8824Author: Lasse Collin <lasse.collin@tukaani.org>
8825Date:   2024-05-22 15:12:09 +0300
8826
8827    Move entries po4a/.gitignore to the top level .gitignore
8828
8829    The po4a directory is in EXTRA_DIST and thus all files there
8830    are included in the package. .gitignore doesn't belong in the
8831    package so keep that file out of the po4a directory.
8832
8833 .gitignore      | 4 ++++
8834 po4a/.gitignore | 3 ---
8835 2 files changed, 4 insertions(+), 3 deletions(-)
8836
8837commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125
8838Author: Lasse Collin <lasse.collin@tukaani.org>
8839Date:   2024-05-20 16:55:00 +0300
8840
8841    Tests: Make the config.h grep patterns Meson compatible
8842
8843    Now the test scripts detect both
8844
8845        #define HAVE_DECODER_ARM
8846        #define HAVE_DECODER_ARM 1
8847
8848    as support for the ARM filter without confusing it with these:
8849
8850        #define HAVE_DECODER_ARM64
8851        #define HAVE_DECODER_ARM64 1
8852
8853    Previously only the ones ending with " 1" were accepted for
8854    the macros where this kind of confusion was possible.
8855
8856    This should help with Meson support because Meson's built-in
8857    features produce config.h entries that are either
8858
8859        #define FOO 1
8860        #define FOO 0
8861
8862    or:
8863
8864        #define FOO
8865        #undef FOO
8866
8867    The former method has a benefit that one can use "#if FOO" and -Wundef
8868    will catch if a #define is missing (for example, it helps catching
8869    typos). But XZ Utils has to use the latter since it has been
8870    convenient with Autoconf's default behavior.[*] While it's easy to
8871    emulate the Autoconf style (#define FOO 1 vs. no #define at all)
8872    in Meson, it results in clumsy code. Thus it's better to change
8873    the few places in the tests where this difference matters.
8874
8875    [*] While most checks in Autoconf default to the second style above,
8876        a few things use the first style (like AC_CHECK_DECLS). The mix
8877        of both styles is the most confusing as one has to remember which
8878        macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is
8879        only such config.h entry that is 1 or 0. It comes unmodified
8880        from Gnulib's visibility.m4.
8881
8882 tests/test_compress.sh | 4 ++--
8883 tests/test_files.sh    | 2 +-
8884 2 files changed, 3 insertions(+), 3 deletions(-)
8885
8886commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa
8887Author: Lasse Collin <lasse.collin@tukaani.org>
8888Date:   2024-05-20 16:55:00 +0300
8889
8890    CMake: Add comments
8891
8892 tests/tests.cmake | 2 ++
8893 1 file changed, 2 insertions(+)
8894
8895commit d35368b33e54bad2f566df99fac29ffea38e34de
8896Author: Lasse Collin <lasse.collin@tukaani.org>
8897Date:   2024-05-20 16:55:00 +0300
8898
8899    CMake: Remove the note that some tests aren't run
8900
8901    They are now in the common build configurations.
8902
8903 CMakeLists.txt | 2 --
8904 1 file changed, 2 deletions(-)
8905
8906commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba
8907Author: Lasse Collin <lasse.collin@tukaani.org>
8908Date:   2024-05-20 16:55:00 +0300
8909
8910    CMake: Add support for test_files.sh
8911
8912 tests/tests.cmake | 20 ++++++++++++++++++++
8913 1 file changed, 20 insertions(+)
8914
8915commit a7e9230af9d1f87f474fe38886eb977d4149dc9b
8916Author: Lasse Collin <lasse.collin@tukaani.org>
8917Date:   2024-05-20 16:55:00 +0300
8918
8919    Tests: Make test_files.sh more flexible
8920
8921    Add a new optional argument to specify the directory of the xz and
8922    xzdec executables.
8923
8924    If ../config.h doesn't exist, assume that all encoders and decoders
8925    are available.
8926
8927 tests/test_files.sh | 18 +++++++++++++-----
8928 1 file changed, 13 insertions(+), 5 deletions(-)
8929
8930commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8
8931Author: Lasse Collin <lasse.collin@tukaani.org>
8932Date:   2024-05-20 16:55:00 +0300
8933
8934    CMake: Add support for test_compress.sh tests
8935
8936 tests/tests.cmake | 26 ++++++++++++++++++++++++++
8937 1 file changed, 26 insertions(+)
8938
8939commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2
8940Author: Lasse Collin <lasse.collin@tukaani.org>
8941Date:   2024-05-20 16:55:00 +0300
8942
8943    Tests: Make test_compress.sh more flexible
8944
8945    Add a new optional second argument: directory of the xz and xzdec
8946    executables. This is need with the CMake build where the binaries
8947    end up in the top-level build directory.
8948
8949    If ../config.h doesn't exist, assume that all encoders and decoders
8950    are available. This will make this script usable from CMake in the
8951    most common build configuration.
8952
8953    NOTE: Since the existence of ../config.h is checked, the working
8954    directory of the test script must be a subdir in the build tree!
8955    Otherwise ../config.h would look outside the build tree.
8956
8957    Use the default check type instead of forcing CRC32 or CRC64.
8958    Now the script doesn't need to check if CRC64 is available.
8959
8960 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------
8961 1 file changed, 29 insertions(+), 12 deletions(-)
8962
8963commit 006040b29c83104403621e950ada0c8956c56b3d
8964Author: Lasse Collin <lasse.collin@tukaani.org>
8965Date:   2024-05-20 16:55:00 +0300
8966
8967    CMake: Prepare to support the test_*.sh tests
8968
8969    This is a bit hacky since the scripts grep config.h to know which
8970    features were built but the CMake build doesn't create config.h.
8971    So instead those test scripts will be run only when all relevant
8972    features have been enabled.
8973
8974 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
8975 1 file changed, 49 insertions(+)
8976
8977commit 6167607a6ea72fb74eefb943c4566e3cab528cd2
8978Author: Lasse Collin <lasse.collin@tukaani.org>
8979Date:   2024-05-20 16:55:00 +0300
8980
8981    Tests: test_suffix.sh: Add a comment
8982
8983 tests/test_suffix.sh | 3 +++
8984 1 file changed, 3 insertions(+)
8985
8986commit 4e9023857d287f624562156b60dc23d2b64c0f10
8987Author: Lasse Collin <lasse.collin@tukaani.org>
8988Date:   2024-05-18 00:34:07 +0300
8989
8990    Fix typos
8991
8992    Thanks to xx on #tukaani.
8993
8994 src/common/mythread.h                      | 2 +-
8995 src/common/tuklib_integer.h                | 2 +-
8996 src/liblzma/api/lzma/base.h                | 2 +-
8997 src/liblzma/common/filter_buffer_decoder.c | 2 +-
8998 src/liblzma/common/filter_common.c         | 2 +-
8999 src/scripts/xzgrep.in                      | 2 +-
9000 6 files changed, 6 insertions(+), 6 deletions(-)
9001
9002commit b14d08fbbc254485ace9ccfe7908674f608a62ae
9003Author: Lasse Collin <lasse.collin@tukaani.org>
9004Date:   2024-05-18 00:23:52 +0300
9005
9006    liblzma: Fix white space
9007
9008    Thanks to xx on #tukaani.
9009
9010 src/liblzma/simple/simple_coder.h | 8 ++++----
9011 1 file changed, 4 insertions(+), 4 deletions(-)
9012
9013commit 9f1a6d6f9a258886933a22239a5b81af34b28199
9014Author: Lasse Collin <lasse.collin@tukaani.org>
9015Date:   2024-05-15 23:14:17 +0300
9016
9017    Build: Temporarily disable CRC CLMUL to silence OSS Fuzz
9018
9019    The code makes aligned 16-byte reads which may read up to 15 bytes
9020    before the beginning or past the end of the buffer if the buffer
9021    is misaligned. The unneeded bytes are then ignored. It cannot cross
9022    page boundaries and thus cannot cause access violations.
9023
9024    This inherently trips address sanitizer which was already disabled
9025    with __attribute__((__no_sanitize_address__)). However, it also
9026    trips memory sanitizer if the extra bytes are uninitialized because
9027    memory sanitizer doesn't see that those bytes then get ignored by
9028    byte shuffling in the xmm registers.
9029
9030    The plan is to change the code so that all sanitizers pass but it's
9031    not finished yet (performance shouldn't get worse) so as a temporary
9032    measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even
9033    though I think think the code is fine to use (and easy enough to review
9034    the memory accesses in it too).
9035
9036 configure.ac | 4 +++-
9037 1 file changed, 3 insertions(+), 1 deletion(-)
9038
9039commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88
9040Author: Lasse Collin <lasse.collin@tukaani.org>
9041Date:   2024-05-13 17:15:04 +0300
9042
9043    xz: Document the static function get_chains_memusage()
9044
9045 src/xz/coder.c | 14 ++++++++++++--
9046 1 file changed, 12 insertions(+), 2 deletions(-)
9047
9048commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca
9049Author: Lasse Collin <lasse.collin@tukaani.org>
9050Date:   2024-05-13 17:07:22 +0300
9051
9052    xz: Rename filters_memusage_max() to get_chains_memusage()
9053
9054 src/xz/coder.c | 14 ++++++--------
9055 1 file changed, 6 insertions(+), 8 deletions(-)
9056
9057commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7
9058Author: Lasse Collin <lasse.collin@tukaani.org>
9059Date:   2024-05-13 17:04:05 +0300
9060
9061    xz: Rename filter_memusages to chains_memusages
9062
9063 src/xz/coder.c | 6 +++---
9064 1 file changed, 3 insertions(+), 3 deletions(-)
9065
9066commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417
9067Author: Lasse Collin <lasse.collin@tukaani.org>
9068Date:   2024-05-12 22:26:30 +0300
9069
9070    xz: Simplify the memory usage scaling code
9071
9072    This is closer to what it was before the --filtersX support was added,
9073    just extended to support for scaling all filter chains. The method
9074    before this commit was an extended version of the original too but
9075    it was done in a more complex way for no clear reason. In case of
9076    an error, the complex version printed fewer informative messages
9077    (a good thing) but it's not a sigificant benefit.
9078
9079    In the limit is too low even for single-threaded mode, the required
9080    amount of memory is now reported like in 5.4.x instead of like in
9081    5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It
9082    had been a FIXME in the old code but it's not clear what message
9083    makes the most sense.
9084
9085    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9086
9087 src/xz/coder.c | 163 ++++++++++++++++++++-------------------------------------
9088 1 file changed, 57 insertions(+), 106 deletions(-)
9089
9090commit 0ee56983d198b776878432703de664049b1be32e
9091Author: Lasse Collin <lasse.collin@tukaani.org>
9092Date:   2024-05-13 12:14:00 +0300
9093
9094    xz: Edit comments
9095
9096 src/xz/coder.h | 6 ++----
9097 1 file changed, 2 insertions(+), 4 deletions(-)
9098
9099commit ec82a49c3553f7206104582dbfb8b64fa433b491
9100Author: Lasse Collin <lasse.collin@tukaani.org>
9101Date:   2024-05-13 12:03:51 +0300
9102
9103    xz: Rename chain_idx to chain_num
9104
9105 src/xz/coder.c | 6 +++---
9106 1 file changed, 3 insertions(+), 3 deletions(-)
9107
9108commit a731a6993c34bbbd55abaf9c166718682b1da24f
9109Author: Lasse Collin <lasse.collin@tukaani.org>
9110Date:   2024-05-12 22:29:11 +0300
9111
9112    xz: Edit coding style
9113
9114 src/xz/coder.c | 2 +-
9115 1 file changed, 1 insertion(+), 1 deletion(-)
9116
9117commit 32eb176b89243fce3112347fe43a8ad14a9fd2be
9118Author: Lasse Collin <lasse.collin@tukaani.org>
9119Date:   2024-05-12 22:16:05 +0300
9120
9121    xz: Edit comments
9122
9123    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9124
9125 src/xz/coder.c | 8 ++------
9126 1 file changed, 2 insertions(+), 6 deletions(-)
9127
9128commit b90339f4daa510d2b1b8c550f855a99667f1d004
9129Author: Lasse Collin <lasse.collin@tukaani.org>
9130Date:   2024-05-12 21:57:49 +0300
9131
9132    xz: Fix grammar in a comment
9133
9134    Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02
9135
9136 src/xz/coder.c | 2 +-
9137 1 file changed, 1 insertion(+), 1 deletion(-)
9138
9139commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13
9140Author: Lasse Collin <lasse.collin@tukaani.org>
9141Date:   2024-05-12 21:46:56 +0300
9142
9143    xz: Rename filter_memusages to encoder_memusages
9144
9145 src/xz/coder.c | 12 ++++++------
9146 1 file changed, 6 insertions(+), 6 deletions(-)
9147
9148commit b54aa023e0ec291b06e976e5f094ab0549e7b09b
9149Author: Lasse Collin <lasse.collin@tukaani.org>
9150Date:   2024-05-12 21:42:05 +0300
9151
9152    xz: Edit coding style
9153
9154 src/xz/coder.c | 8 ++++----
9155 1 file changed, 4 insertions(+), 4 deletions(-)
9156
9157commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce
9158Author: Lasse Collin <lasse.collin@tukaani.org>
9159Date:   2024-05-12 21:31:02 +0300
9160
9161    xz: Rename filters_index to chain_num
9162
9163    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
9164
9165 src/xz/args.c  | 8 ++++----
9166 src/xz/coder.c | 8 ++++----
9167 src/xz/coder.h | 2 +-
9168 3 files changed, 9 insertions(+), 9 deletions(-)
9169
9170commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492
9171Author: Lasse Collin <lasse.collin@tukaani.org>
9172Date:   2024-05-12 21:22:43 +0300
9173
9174    xz: Replace a few uint32_t with "unsigned" to reduce the number of casts
9175
9176    These hold only tiny values.
9177
9178 src/xz/args.c  |  2 +-
9179 src/xz/coder.c | 17 ++++++++---------
9180 src/xz/coder.h |  2 +-
9181 3 files changed, 10 insertions(+), 11 deletions(-)
9182
9183commit b5e6c1113b1ba02c282bd9163eccdb521c937a78
9184Author: Lasse Collin <lasse.collin@tukaani.org>
9185Date:   2024-05-12 21:10:45 +0300
9186
9187    xz: Rename filters_used_mask to chains_used_mask
9188
9189    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
9190
9191 src/xz/coder.c | 30 +++++++++++++++---------------
9192 1 file changed, 15 insertions(+), 15 deletions(-)
9193
9194commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52
9195Author: Lasse Collin <lasse.collin@tukaani.org>
9196Date:   2024-05-12 17:14:43 +0300
9197
9198    xz: Move the setting of "check" in coder_set_compression_settings()
9199
9200    It's more logical to do it in the beginning instead of in the middle
9201    of the filter chain handling.
9202
9203    Fixes: d6af7f347077b22403133239592e478931307759
9204
9205 src/xz/coder.c | 18 +++++++++---------
9206 1 file changed, 9 insertions(+), 9 deletions(-)
9207
9208commit ad146b1f42bbb678175a503a45ce525e779f9b8b
9209Author: Lasse Collin <lasse.collin@tukaani.org>
9210Date:   2024-05-12 17:09:17 +0300
9211
9212    xz: Rename "filters" to "chains"
9213
9214    The convention is that
9215
9216        lzma_filter filters[LZMA_FILTERS_MAX + 1];
9217
9218    contains the filters of a single filter chain.
9219    It was so here as well before the commit
9220    d6af7f347077b22403133239592e478931307759.
9221    It changes "filters" to a ten-element array of filter chains.
9222    It's clearer to call this array-of-arrays "chains".
9223
9224    This also renames "filter_idx" to "chain_idx" which is used
9225    as an index as in chains[chain_idx].
9226
9227 src/xz/coder.c | 68 +++++++++++++++++++++++++++++-----------------------------
9228 1 file changed, 34 insertions(+), 34 deletions(-)
9229
9230commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0
9231Author: Lasse Collin <lasse.collin@tukaani.org>
9232Date:   2024-05-12 16:56:15 +0300
9233
9234    xz: Clean up a comment
9235
9236 src/xz/coder.c | 9 +++------
9237 1 file changed, 3 insertions(+), 6 deletions(-)
9238
9239commit 2de80494ed9a4dc7db395a32a5efb770ce769804
9240Author: Lasse Collin <lasse.collin@tukaani.org>
9241Date:   2024-05-12 16:52:09 +0300
9242
9243    xz: Add clarifying assertions
9244
9245 src/xz/coder.c | 4 ++++
9246 1 file changed, 4 insertions(+)
9247
9248commit 1eaad004bf7748976324672db028e34f42802e61
9249Author: Lasse Collin <lasse.collin@tukaani.org>
9250Date:   2024-05-10 20:23:33 +0300
9251
9252    xz: Add a clarifying assertion
9253
9254    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9255
9256 src/xz/coder.c | 1 +
9257 1 file changed, 1 insertion(+)
9258
9259commit 605094329b986244833c967c04963cacc41a868d
9260Author: Lasse Collin <lasse.collin@tukaani.org>
9261Date:   2024-05-12 16:47:17 +0300
9262
9263    xz: Clarify a comment
9264
9265 src/xz/coder.c | 4 +++-
9266 1 file changed, 3 insertions(+), 1 deletion(-)
9267
9268commit 8fac2577f2dbb9491afd8500f60d004c9071df3b
9269Author: Lasse Collin <lasse.collin@tukaani.org>
9270Date:   2024-05-12 16:28:25 +0300
9271
9272    xz: Use the info collected in parse_block_list()
9273
9274    This is slightly simpler and it avoids looping through
9275    the opt_block_list array.
9276
9277 src/xz/coder.c | 95 ++++++++++++++++++++++++----------------------------------
9278 1 file changed, 39 insertions(+), 56 deletions(-)
9279
9280commit 81d350dab864b985b740742772f3b132d4c52914
9281Author: Lasse Collin <lasse.collin@tukaani.org>
9282Date:   2024-05-12 15:48:45 +0300
9283
9284    xz: Remember the filter chains and the largest Block in parse_block_list()
9285
9286 src/xz/args.c  | 18 ++++++++++++++++++
9287 src/xz/coder.c |  2 ++
9288 src/xz/coder.h | 13 +++++++++++++
9289 3 files changed, 33 insertions(+)
9290
9291commit 46ab56968f7dfdac187710a1223659d832fa1565
9292Author: Lasse Collin <lasse.collin@tukaani.org>
9293Date:   2024-05-12 15:38:48 +0300
9294
9295    xz: Update a comment and initialization of filters_used_mask
9296
9297 src/xz/coder.c | 16 ++++++++--------
9298 1 file changed, 8 insertions(+), 8 deletions(-)
9299
9300commit e89293a0baeb8663707c6b4a74fbb310ec698a8f
9301Author: Lasse Collin <lasse.collin@tukaani.org>
9302Date:   2024-05-12 15:08:10 +0300
9303
9304    xz: parse_block_list: Edit integer type casting
9305
9306 src/xz/args.c | 5 ++---
9307 1 file changed, 2 insertions(+), 3 deletions(-)
9308
9309commit 87011e40c168255cd2edea129ee68c901770603b
9310Author: Lasse Collin <lasse.collin@tukaani.org>
9311Date:   2024-05-12 14:51:37 +0300
9312
9313    xz: Make filter_memusages a local variable
9314
9315 src/xz/coder.c | 35 +++++++++++++++++++++--------------
9316 1 file changed, 21 insertions(+), 14 deletions(-)
9317
9318commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5
9319Author: Lasse Collin <lasse.collin@tukaani.org>
9320Date:   2024-05-10 20:33:08 +0300
9321
9322    xz: Remove unused code and simplify
9323
9324    opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't
9325    defined. Thus, when *encoding*, the message about *decoder* memory
9326    usage is possible to show only when both encoder and decoder have
9327    been built.
9328
9329    Since the message is shown only at V_DEBUG, skip the memusage
9330    calculation if verbosity level isn't high enough.
9331
9332    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9333
9334 src/xz/coder.c | 16 ++++------------
9335 1 file changed, 4 insertions(+), 12 deletions(-)
9336
9337commit 31358c057c9de9d6aba96bae112b2d17942de7cb
9338Author: Lasse Collin <lasse.collin@tukaani.org>
9339Date:   2024-05-10 20:22:58 +0300
9340
9341    xz: Fix integer type from uint64_t to uint32_t
9342
9343    lzma_options_lzma.dict_size is uint32_t so use it here too.
9344
9345    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9346
9347 src/xz/coder.c | 2 +-
9348 1 file changed, 1 insertion(+), 1 deletion(-)
9349
9350commit 3f71e0f3a118e1012526f94fd640a626d30cb599
9351Author: Lasse Collin <lasse.collin@tukaani.org>
9352Date:   2024-05-08 21:40:07 +0300
9353
9354    debug/translation.bash: Remove an outdated test command
9355
9356    Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs
9357    at least nice=4. It is rounded up internally by liblzma when needed.
9358
9359    Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
9360
9361 debug/translation.bash | 1 -
9362 1 file changed, 1 deletion(-)
9363
9364commit b05a516830095a0e1937aeb31c937fb0400408b6
9365Author: Lasse Collin <lasse.collin@tukaani.org>
9366Date:   2024-05-07 20:41:28 +0300
9367
9368    Fix the date of NEWS for 5.4.5
9369
9370 NEWS | 2 +-
9371 1 file changed, 1 insertion(+), 1 deletion(-)
9372
9373commit 6d336aeb97b69c496ddc626af403f6f21c753658
9374Author: Lasse Collin <lasse.collin@tukaani.org>
9375Date:   2024-05-07 16:21:15 +0300
9376
9377    Build: Update visibility.m4 from Gnulib
9378
9379    This fixes the syntax of the "serial" line and renames
9380    a temporary variable.
9381
9382 m4/visibility.m4 | 13 +++++++------
9383 1 file changed, 7 insertions(+), 6 deletions(-)
9384
9385commit ab51e8ee610e2a893906859848f93d5cb0d5ba83
9386Author: Lasse Collin <lasse.collin@tukaani.org>
9387Date:   2024-05-07 15:05:21 +0300
9388
9389    po4a/update-po: Delete the *.po.authors files
9390
9391    These are temporary files that are needed only when running po4a.
9392    The top-level Makefile.am puts the whole po4a directory into
9393    distribution tarball (it's simpler) so deleting these temporary
9394    files is needed to prevent them from getting into tarballs.
9395
9396 po4a/update-po | 4 ++++
9397 1 file changed, 4 insertions(+)
9398
9399commit e4780244a17420cc95d5498cd6e02ad10eac6e5f
9400Author: Lasse Collin <lasse.collin@tukaani.org>
9401Date:   2024-05-07 13:12:17 +0300
9402
9403    xz: Edit comments and coding style
9404
9405 src/xz/coder.c | 25 ++++++++++++-------------
9406 1 file changed, 12 insertions(+), 13 deletions(-)
9407
9408commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c
9409Author: Lasse Collin <lasse.collin@tukaani.org>
9410Date:   2024-05-06 23:08:22 +0300
9411
9412    xz: Omit an incorrect comment
9413
9414    It likely was a leftover from a development version of the code.
9415
9416    Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f
9417
9418 src/xz/coder.c | 6 +-----
9419 1 file changed, 1 insertion(+), 5 deletions(-)
9420
9421commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937
9422Author: Lasse Collin <lasse.collin@tukaani.org>
9423Date:   2024-05-06 23:04:31 +0300
9424
9425    xz: Add braces to a for-statement and to an if-statement
9426
9427    No functional changes.
9428
9429    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
9430    Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a
9431
9432 src/xz/coder.c | 6 ++++--
9433 1 file changed, 4 insertions(+), 2 deletions(-)
9434
9435commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57
9436Author: Lasse Collin <lasse.collin@tukaani.org>
9437Date:   2024-05-06 23:00:09 +0300
9438
9439    liblzma: Omit an unneeded array from the x86 filter
9440
9441    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
9442
9443 src/liblzma/simple/x86.c | 5 +----
9444 1 file changed, 1 insertion(+), 4 deletions(-)
9445
9446commit 7da488cb933fdf51cfc14cb5810beb0766224380
9447Author: Lasse Collin <lasse.collin@tukaani.org>
9448Date:   2024-05-06 22:56:31 +0300
9449
9450    CMake: Add test_suffix.sh to the tests
9451
9452 tests/tests.cmake | 13 +++++++++++++
9453 1 file changed, 13 insertions(+)
9454
9455commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876
9456Author: Lasse Collin <lasse.collin@tukaani.org>
9457Date:   2024-05-06 22:55:54 +0300
9458
9459    Test: Add CMake support to test_suffix.sh
9460
9461    It needs to find the xz executable from a different directory
9462    and work without config.h.
9463
9464 tests/test_suffix.sh | 12 +++++++-----
9465 1 file changed, 7 insertions(+), 5 deletions(-)
9466
9467commit 50e19489387774bab3c4a988397d0d9c7a142a46
9468Author: Lasse Collin <lasse.collin@tukaani.org>
9469Date:   2024-05-06 20:45:34 +0300
9470
9471    Update INSTALL about MINIX 3
9472
9473    The latest stable is 3.3.0 and it's from 2014.
9474    Don't mention the older versions in INSTALL.
9475    3.3.0 ships with Clang already.
9476
9477    Testing with 3.4.0beta6 shows that tuklib_physmem
9478    works too so omit comments about that from INSTALL.
9479    Visibility warnigns weren't a problem either.
9480
9481    Thus it's enough to mention the need for --disable-threads
9482    as configure doesn't autodetect the lack of pthreads.
9483
9484 INSTALL | 20 +++++++-------------
9485 1 file changed, 7 insertions(+), 13 deletions(-)
9486
9487commit 68d18aea1422a2b86b98b71d0b019233d84e01b0
9488Author: Lasse Collin <lasse.collin@tukaani.org>
9489Date:   2024-05-02 23:00:16 +0300
9490
9491    Windows: Remove the "doc/api" line from README-Windows.txt
9492
9493    Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864
9494
9495 windows/README-Windows.txt | 2 --
9496 1 file changed, 2 deletions(-)
9497
9498commit 8ede961374613aa302a13571d662cfaea1cf91f7
9499Author: Lasse Collin <lasse.collin@tukaani.org>
9500Date:   2024-05-02 22:59:04 +0300
9501
9502    Build: Don't copy doc/api from source tree to distribution tarball
9503
9504    It was copied if it existed. This was intentional when autogen.sh
9505    still built liblzma API docs with Doxygen.
9506
9507    Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
9508
9509 Makefile.am | 5 -----
9510 1 file changed, 5 deletions(-)
9511
9512commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc
9513Author: Sam James <sam@gentoo.org>
9514Date:   2024-05-02 13:26:40 +0100
9515
9516    ci: add SPDX headers
9517
9518    I've checked over each of these and they're straightforward applications
9519    of the relevant Github Actions.
9520
9521 .github/workflows/freebsd.yml | 2 ++
9522 .github/workflows/netbsd.yml  | 2 ++
9523 .github/workflows/openbsd.yml | 2 ++
9524 3 files changed, 6 insertions(+)
9525
9526commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3
9527Author: Yaroslav Halchenko <debian@onerussian.com>
9528Date:   2024-03-29 14:37:24 -0400
9529
9530    codespell: Ignore the THANKS file and debbugs.gnu.org URL
9531
9532    This way "codespell -i 0" is silent.
9533
9534    This is the first commit from
9535    https://github.com/tukaani-project/xz/pull/93
9536    with trivial edits by Lasse Collin.
9537
9538 .codespellrc | 6 +++++-
9539 1 file changed, 5 insertions(+), 1 deletion(-)
9540
9541commit 905bfc74fe2670fd9c39014803017ab53d325401
9542Author: Lasse Collin <lasse.collin@tukaani.org>
9543Date:   2024-04-30 14:37:11 +0300
9544
9545    Add .gitattributes to clean up git-archive output
9546
9547 .gitattributes | 7 +++++++
9548 1 file changed, 7 insertions(+)
9549
9550commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501
9551Author: Lasse Collin <lasse.collin@tukaani.org>
9552Date:   2024-04-19 12:11:09 +0300
9553
9554    xzdec: Support Landlock ABI version 4
9555
9556    This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899
9557    but I forgot to do the same in xzdec.
9558
9559    The Landlock sandbox in xzdec could be stricter as now it's
9560    active only for the last file being decompressed. In xz,
9561    read-only sandbox is used for multi-file case. On the other hand,
9562    xz doesn't go to the strictest mode when processing the last file
9563    when more than one file was specified; xzdec does.
9564
9565 src/xzdec/xzdec.c | 18 ++++++++++++++----
9566 1 file changed, 14 insertions(+), 4 deletions(-)
9567
9568commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8
9569Author: Lasse Collin <lasse.collin@tukaani.org>
9570Date:   2024-04-30 22:22:45 +0300
9571
9572    liblzma: Fix incorrect function type error from sanitizer
9573
9574    Clang 17 with -fsanitize=address,undefined:
9575
9576        src/liblzma/common/filter_common.c:366:8: runtime error:
9577            call to function encoder_find through pointer to incorrect
9578            function type 'const lzma_filter_coder *(*)(unsigned long)'
9579        src/liblzma/common/filter_encoder.c:187: note:
9580            encoder_find defined here
9581
9582    Use a wrapper function to get the correct type neatly.
9583    This reduces the number of casts needed too.
9584
9585    This issue could be a problem with control flow integrity (CFI)
9586    methods that check the function type on indirect function calls.
9587
9588    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
9589
9590 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
9591 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
9592 2 files changed, 25 insertions(+), 7 deletions(-)
9593
9594commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff
9595Author: Lasse Collin <lasse.collin@tukaani.org>
9596Date:   2024-04-30 21:41:11 +0300
9597
9598    xz: Avoid arithmetic on a null pointer
9599
9600    It's undefined behavior. The result wasn't ever used as it occurred
9601    in the last iteration of a loop.
9602
9603    Clang 17 with -fsanitize=address,undefined:
9604
9605        $ src/xz/xz --block-list=123
9606        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
9607            to null pointer
9608
9609    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
9610    Co-authored-by: Sam James <sam@gentoo.org>
9611
9612 src/xz/args.c | 8 +++++++-
9613 1 file changed, 7 insertions(+), 1 deletion(-)
9614
9615commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5
9616Author: Lasse Collin <lasse.collin@tukaani.org>
9617Date:   2024-04-27 20:42:00 +0300
9618
9619    CMake: Support building liblzma API docs using Doxygen
9620
9621    This is disabled by default to match the default in Autotools.
9622    Use -DUSE_DOXYGEN=ON to enable Doxygen usage.
9623
9624    This uses the update-doxygen script, thus this is under if(UNIX)
9625    although Doxygen itself can run on Windows too.
9626
9627 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++---------
9628 1 file changed, 31 insertions(+), 9 deletions(-)
9629
9630commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37
9631Author: Lasse Collin <lasse.collin@tukaani.org>
9632Date:   2024-04-20 23:36:39 +0300
9633
9634    CMake: List API headers in LIBLZMA_API_HEADERS variable
9635
9636    This way the same list will be usable in more than one location.
9637
9638 CMakeLists.txt | 21 ++++++++++++---------
9639 1 file changed, 12 insertions(+), 9 deletions(-)
9640
9641commit 541406bee3f09e9813103c6406b10fc6ab2e0d30
9642Author: Lasse Collin <lasse.collin@tukaani.org>
9643Date:   2024-04-19 15:16:42 +0300
9644
9645    PACKAGERS: Document the optional Doxygen usage
9646
9647    Also add a note that packagers should check the licensing
9648    of the Doxygen output.
9649
9650 PACKAGERS | 19 ++++++++++---------
9651 1 file changed, 10 insertions(+), 9 deletions(-)
9652
9653commit e21efdf96f39378fe417479f89e97046680406f5
9654Author: Lasse Collin <lasse.collin@tukaani.org>
9655Date:   2024-04-27 17:47:09 +0300
9656
9657    Build: Add --enable-doxygen to generate and install API docs
9658
9659    It requires Doxygen. This option is disabled by default.
9660
9661 INSTALL                     |  6 ++++++
9662 configure.ac                | 10 +++++++++-
9663 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++
9664 3 files changed, 34 insertions(+), 1 deletion(-)
9665
9666commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b
9667Author: Lasse Collin <lasse.collin@tukaani.org>
9668Date:   2024-04-19 15:15:17 +0300
9669
9670    Doxygen: update-doxygen: Support out-of-tree builds
9671
9672    Also, now $0 is used to refer to the script itself.
9673
9674 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++-------------------
9675 1 file changed, 68 insertions(+), 42 deletions(-)
9676
9677commit 2c519f641f266fd897edf680827d9c905f411440
9678Author: Lasse Collin <lasse.collin@tukaani.org>
9679Date:   2024-04-28 21:08:00 +0300
9680
9681    Doxygen: Simplify Doxyfile and add SPDX license identifier
9682
9683    This omits all comments and a few non-default options that weren't
9684    needed. Now it contains no copyrighted content from Doxygen itself.
9685
9686 doxygen/Doxyfile | 2698 +-----------------------------------------------------
9687 1 file changed, 25 insertions(+), 2673 deletions(-)
9688
9689commit bdba39a57530d11b88440df8024002be3d09e4a1
9690Author: Lasse Collin <lasse.collin@tukaani.org>
9691Date:   2024-04-19 15:14:02 +0300
9692
9693    Doxygen: Don't strip JavaScript anymore
9694
9695    The stripping method worked well with Doxygen 1.8 and 1.9 but
9696    it doesn't work with Doxygen 1.10 anymore. Since we won't ship
9697    pre-generated liblzma API docs anymore, the extra bloat and
9698    extra license info of the JavaScript files won't affect the
9699    upstream source package anymore.
9700
9701 doxygen/update-doxygen | 21 ---------------------
9702 1 file changed, 21 deletions(-)
9703
9704commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
9705Author: Lasse Collin <lasse.collin@tukaani.org>
9706Date:   2024-04-19 17:26:41 +0300
9707
9708    Build: Remove old Doxygen rules from top-level Makefile.am
9709
9710 Makefile.am | 12 ------------
9711 1 file changed, 12 deletions(-)
9712
9713commit fd7faa4c338a42a6a40e854b837d285ae2e8c609
9714Author: Lasse Collin <lasse.collin@tukaani.org>
9715Date:   2024-04-19 15:10:06 +0300
9716
9717    Update COPYING to match the autogen.sh and mydist changes
9718
9719 COPYING | 11 -----------
9720 1 file changed, 11 deletions(-)
9721
9722commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3
9723Author: Lasse Collin <lasse.collin@tukaani.org>
9724Date:   2024-04-19 17:23:43 +0300
9725
9726    Build: Don't run update-doxygen as part of "make mydist"
9727
9728 Makefile.am | 1 -
9729 1 file changed, 1 deletion(-)
9730
9731commit e9be74f5b129fe8a5388d588e68b1b7f5168a310
9732Author: Lasse Collin <lasse.collin@tukaani.org>
9733Date:   2024-04-19 15:09:48 +0300
9734
9735    autogen.sh: Don't generated Doxygen docs anymore
9736
9737 autogen.sh | 18 +++---------------
9738 1 file changed, 3 insertions(+), 15 deletions(-)
9739
9740commit 252aa1d67bc015eeba462803ab72edeb7744d864
9741Author: Lasse Collin <lasse.collin@tukaani.org>
9742Date:   2024-04-19 17:41:36 +0300
9743
9744    windows/build.bash: Omit Doxygen docs from the package
9745
9746    They will be omitted from the source tarball and I don't want
9747    to make Doxygen a dependency of build.bash.
9748
9749 windows/build.bash | 4 ++--
9750 1 file changed, 2 insertions(+), 2 deletions(-)
9751
9752commit 634095364d87444d62d8ec54c134c0cd4705f5d7
9753Author: Lasse Collin <lasse.collin@tukaani.org>
9754Date:   2024-04-19 14:14:47 +0300
9755
9756    README: Don't mention PDF man pages anymore
9757
9758 README | 6 +++---
9759 1 file changed, 3 insertions(+), 3 deletions(-)
9760
9761commit dc684bf76ea23574ee9d88382057381e04e6089a
9762Author: Lasse Collin <lasse.collin@tukaani.org>
9763Date:   2024-04-19 14:10:39 +0300
9764
9765    Build: Omit PDF man pages from the package
9766
9767    pdf-local rule was added to create the PDFs still with "make pdf".
9768    The install rules are missing but that likely doesn't matter at all.
9769
9770 Makefile.am | 29 +++++++++++++++++++----------
9771 1 file changed, 19 insertions(+), 10 deletions(-)
9772
9773commit e3531ab4125cbd5c01ebd3200791350960547189
9774Author: Lasse Collin <lasse.collin@tukaani.org>
9775Date:   2024-04-19 13:54:39 +0300
9776
9777    windows/build.bash: Don't copy PDF man pages to the package
9778
9779 windows/README-Windows.txt | 2 +-
9780 windows/build.bash         | 2 +-
9781 2 files changed, 2 insertions(+), 2 deletions(-)
9782
9783commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7
9784Author: Lasse Collin <lasse.collin@tukaani.org>
9785Date:   2024-04-28 01:34:50 +0300
9786
9787    Tests: test_index: Fix failures when features are disabled
9788
9789    Fixes: cd88423e76d54eb72aea037364f3ebb21f122503
9790
9791 tests/test_index.c | 13 ++++++++-----
9792 1 file changed, 8 insertions(+), 5 deletions(-)
9793
9794commit aaff75c3486c4489ce88b0efb36b41cf138af7c3
9795Author: Lasse Collin <lasse.collin@tukaani.org>
9796Date:   2024-04-20 17:09:11 +0300
9797
9798    CMake: Keep the build working if the "tests" directory is missing
9799
9800    This moves the tests section as is from CMakeLists.txt into
9801    tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake
9802    if the latter file exists.
9803
9804    Now it's possible to delete the whole "tests" directory and
9805    building with CMake will still work normally, just without
9806    the tests. This way the tests are readily available for those
9807    who want them, and those who won't run the tests anyway have
9808    a straightforward way to ensure that nothing from the "tests"
9809    directory can affect the build process.
9810
9811 CMakeLists.txt    | 76 ++---------------------------------------------
9812 tests/Makefile.am |  1 +
9813 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
9814 3 files changed, 92 insertions(+), 73 deletions(-)
9815
9816commit a5f2aa5618fe9183706c9c514c3067985f6c338b
9817Author: Lasse Collin <lasse.collin@tukaani.org>
9818Date:   2024-04-20 13:12:50 +0300
9819
9820    Tests: Remove x86 and SPARC BCJ tests
9821
9822    These are very old but the exact test file isn't easy to reproduce
9823    as it was compiled from a short C program (bcj_test.c) long ago.
9824    These tests weren't very good anyway, just a little better than nothing.
9825
9826 tests/Makefile.am                      |   7 ----
9827 tests/bcj_test.c                       |  64 ---------------------------------
9828 tests/compress_prepared_bcj_sparc      | Bin 1240 -> 0 bytes
9829 tests/compress_prepared_bcj_x86        | Bin 1388 -> 0 bytes
9830 tests/files/README                     |   8 -----
9831 tests/files/good-1-sparc-lzma2.xz      | Bin 612 -> 0 bytes
9832 tests/files/good-1-x86-lzma2.xz        | Bin 716 -> 0 bytes
9833 tests/test_compress_prepared_bcj_sparc |   4 ---
9834 tests/test_compress_prepared_bcj_x86   |   4 ---
9835 9 files changed, 87 deletions(-)
9836
9837commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07
9838Author: Lasse Collin <lasse.collin@tukaani.org>
9839Date:   2024-04-27 18:30:40 +0300
9840
9841    Tests: test_index: Edit a misleading test
9842
9843 tests/test_index.c | 7 +++++--
9844 1 file changed, 5 insertions(+), 2 deletions(-)
9845
9846commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd
9847Author: Lasse Collin <lasse.collin@tukaani.org>
9848Date:   2024-04-27 16:46:01 +0300
9849
9850    Tests: test_index: Use minimal values to test integer overflow
9851
9852 tests/test_index.c | 4 ++--
9853 1 file changed, 2 insertions(+), 2 deletions(-)
9854
9855commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d
9856Author: Lasse Collin <lasse.collin@tukaani.org>
9857Date:   2024-04-27 15:13:39 +0300
9858
9859    Tests: test_index: Test lzma_index_buffer_decode() more
9860
9861 tests/test_index.c | 29 ++++++++++++++++++++++++++---
9862 1 file changed, 26 insertions(+), 3 deletions(-)
9863
9864commit 575b11b0d291e66c5fce31ce7a72f11436d57c83
9865Author: Lasse Collin <lasse.collin@tukaani.org>
9866Date:   2024-04-27 15:08:29 +0300
9867
9868    Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR
9869
9870    On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was
9871    already done but this adds a test for that case too.
9872
9873 tests/test_index.c | 31 +++++++++++++++++++++++++++----
9874 1 file changed, 27 insertions(+), 4 deletions(-)
9875
9876commit 2c970debdb285823f01f75e875561d893345ac2b
9877Author: Lasse Collin <lasse.collin@tukaani.org>
9878Date:   2024-04-27 15:01:25 +0300
9879
9880    Tests: test_index: Test lzma_index_buffer_encode() with empty output buf
9881
9882 tests/test_index.c | 3 +++
9883 1 file changed, 3 insertions(+)
9884
9885commit cd88423e76d54eb72aea037364f3ebb21f122503
9886Author: Lasse Collin <lasse.collin@tukaani.org>
9887Date:   2024-04-27 14:59:55 +0300
9888
9889    Tests: test_index: Replace if-statements with tuktest assertions
9890
9891 tests/test_index.c | 22 +++++++++-------------
9892 1 file changed, 9 insertions(+), 13 deletions(-)
9893
9894commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51
9895Author: Lasse Collin <lasse.collin@tukaani.org>
9896Date:   2024-04-27 14:56:16 +0300
9897
9898    Tests: test_index: Make it clear that my_alloc() has no integer overflows
9899
9900    liblzma guarantees that the product of the allocation size arguments
9901    will fit in size_t.
9902
9903    Putting the pre-increment in the if-statement was clearly wrong
9904    although in practice it didn't matter here as the function is
9905    called only a couple of times.
9906
9907 tests/test_index.c | 5 ++++-
9908 1 file changed, 4 insertions(+), 1 deletion(-)
9909
9910commit 12313a3b6596cdcf012e180597f84d231f8730d3
9911Author: Lasse Collin <lasse.collin@tukaani.org>
9912Date:   2024-04-27 14:51:52 +0300
9913
9914    Tests: test_index: Verify also iter.block.number_in_stream
9915
9916 tests/test_index.c | 2 ++
9917 1 file changed, 2 insertions(+)
9918
9919commit ad2654010d9d641ce1601beeff00630027e6bcd4
9920Author: Lasse Collin <lasse.collin@tukaani.org>
9921Date:   2024-04-27 14:51:06 +0300
9922
9923    Tests: test_index: Check cases that aren't a multiple of 4 bytes
9924
9925 tests/test_index.c | 33 +++++++++++++++++++++++++--------
9926 1 file changed, 25 insertions(+), 8 deletions(-)
9927
9928commit 2524fcf2b68b662035437cee8edbe80067c0c240
9929Author: Lasse Collin <lasse.collin@tukaani.org>
9930Date:   2024-04-27 14:40:25 +0300
9931
9932    Tests: test_index: Edit comments and white space
9933
9934 tests/test_index.c | 18 +++++++++++-------
9935 1 file changed, 11 insertions(+), 7 deletions(-)
9936
9937commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0
9938Author: Lasse Collin <lasse.collin@tukaani.org>
9939Date:   2024-04-27 14:33:38 +0300
9940
9941    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
9942
9943    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
9944    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
9945    argument wasn't touched even though the API docs say that *i = NULL
9946    is done if an error occurs. This obviously won't be done even now
9947    if i == NULL but otherwise it is best to do it due to the wording
9948    in the API docs.
9949
9950    In practice this matters very little: The problem can occur only
9951    if the functions are called with invalid arguments, that is,
9952    the calling application must already have a bug.
9953
9954 src/liblzma/common/index_decoder.c | 11 +++++++++++
9955 1 file changed, 11 insertions(+)
9956
9957commit 0478473953f50716a2bc37b619b1c7dc2682b1ad
9958Author: Lasse Collin <lasse.collin@tukaani.org>
9959Date:   2024-04-26 18:25:18 +0300
9960
9961    CMake: Bump maximum policy version to 3.29
9962
9963 CMakeLists.txt | 2 +-
9964 1 file changed, 1 insertion(+), 1 deletion(-)
9965
9966commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3
9967Author: Sam James <sam@gentoo.org>
9968Date:   2024-04-13 22:30:44 +0100
9969
9970    ci: add NetBSD
9971
9972 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++
9973 1 file changed, 29 insertions(+)
9974
9975commit 72c210336de26fb87a928160d025fa10a638d23b
9976Author: Sam James <sam@gentoo.org>
9977Date:   2024-04-13 23:49:26 +0100
9978
9979    ci: add FreeBSD
9980
9981 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++
9982 1 file changed, 29 insertions(+)
9983
9984commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2
9985Author: Sam James <sam@gentoo.org>
9986Date:   2024-04-13 23:16:08 +0100
9987
9988    ci: add OpenBSD
9989
9990 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++
9991 1 file changed, 31 insertions(+)
9992
9993commit c7ef767c49351743d8d011574abb9e200bf6b24f
9994Author: Sam James <sam@gentoo.org>
9995Date:   2024-04-15 05:53:01 +0100
9996
9997    liblzma: outqueue: add header guard
9998
9999    Reported by github's codeql.
10000
10001 src/liblzma/common/outqueue.h | 5 +++++
10002 1 file changed, 5 insertions(+)
10003
10004commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c
10005Author: Sam James <sam@gentoo.org>
10006Date:   2024-04-15 05:53:56 +0100
10007
10008    liblzma: easy_preset: add header guard
10009
10010    Reported by github's codeql.
10011
10012 src/liblzma/common/easy_preset.h | 5 +++++
10013 1 file changed, 5 insertions(+)
10014
10015commit 4ffc60f32397371769b7d6b5e3ed8626292d58df
10016Author: Lasse Collin <lasse.collin@tukaani.org>
10017Date:   2024-04-25 14:00:57 +0300
10018
10019    tuklib_integer: Rename bswapXX to byteswapXX
10020
10021    The __builtin_bswapXX from GCC and Clang are preferred when
10022    they are available. This can allow compilers to emit the x86 MOVBE
10023    instruction instead of doing a load + byteswap as two instructions
10024    (which would happen if the byteswapping is done in inline asm).
10025
10026    bswap16, bswap32, and bswap64 exist in system headers on *BSDs
10027    and Darwin. #defining bswap16 on NetBSD results in a warning about
10028    macro redefinition. It's safest to avoid this namespace conflict
10029    completely.
10030
10031    No OS supported by tuklib_integer.h uses byteswapXX names and
10032    a web search doesn't immediately find any obvious danger of
10033    namespace conflicts. So let's try these still-pretty-short names
10034    for the macros.
10035
10036    Thanks to Sam James for pointing out the compiler warning on
10037    NetBSD 10.0.
10038
10039 src/common/tuklib_integer.h        | 47 ++++++++++++++++++++------------------
10040 src/liblzma/check/crc32_fast.c     |  4 ++--
10041 src/liblzma/check/crc32_tablegen.c |  2 +-
10042 src/liblzma/check/crc64_fast.c     |  4 ++--
10043 src/liblzma/check/crc64_tablegen.c |  2 +-
10044 5 files changed, 31 insertions(+), 28 deletions(-)
10045
10046commit 08ab0966a75b501aa7c717622223f0c13a113c75
10047Author: Lasse Collin <lasse.collin@tukaani.org>
10048Date:   2024-04-24 01:20:26 +0300
10049
10050    liblzma: API doc cleanups
10051
10052 src/liblzma/api/lzma/container.h | 2 +-
10053 src/liblzma/api/lzma/index.h     | 6 +++---
10054 src/liblzma/api/lzma/vli.h       | 5 ++---
10055 3 files changed, 6 insertions(+), 7 deletions(-)
10056
10057commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989
10058Author: Lasse Collin <lasse.collin@tukaani.org>
10059Date:   2024-04-23 16:35:33 +0300
10060
10061    Tests: test_filter_str: Add a few assertions
10062
10063 tests/test_filter_str.c | 4 ++++
10064 1 file changed, 4 insertions(+)
10065
10066commit 26c69be80523b05c84dea86c47c4ddd9a10945d7
10067Author: Lasse Collin <lasse.collin@tukaani.org>
10068Date:   2024-04-23 16:35:08 +0300
10069
10070    Tests: test_filter_str: Move one assertion and add a comment
10071
10072 tests/test_filter_str.c | 6 ++++--
10073 1 file changed, 4 insertions(+), 2 deletions(-)
10074
10075commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b
10076Author: Lasse Collin <lasse.collin@tukaani.org>
10077Date:   2024-04-23 16:26:06 +0300
10078
10079    Tests: test_filter_str: Tweak comments and white space
10080
10081 tests/test_filter_str.c | 3 +++
10082 1 file changed, 3 insertions(+)
10083
10084commit c92663aa1bd576e0615498a4189acf0df12e84b9
10085Author: Lasse Collin <lasse.collin@tukaani.org>
10086Date:   2024-04-23 16:25:22 +0300
10087
10088    Tests: test_filter_str: Add missing RISC-V case
10089
10090    Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
10091
10092 tests/test_filter_str.c | 3 +++
10093 1 file changed, 3 insertions(+)
10094
10095commit b0366df1d7ed26268101f9303a001c91c0806dfc
10096Author: Lasse Collin <lasse.collin@tukaani.org>
10097Date:   2024-04-22 22:23:32 +0300
10098
10099    Tests: test_filter_str: Test *error_pos more thoroughly
10100
10101 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++-
10102 1 file changed, 76 insertions(+), 1 deletion(-)
10103
10104commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d
10105Author: Lasse Collin <lasse.collin@tukaani.org>
10106Date:   2024-04-22 21:54:39 +0300
10107
10108    liblzma: lzma_str_to_filters: Set *error_pos on all errors
10109
10110    The API docs clearly say that if error_pos isn't NULL then *error
10111    is always set on any error. However, it wasn't touched if str == NULL
10112    or filters == NULL or unsupported flags were specified.
10113
10114    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
10115
10116 src/liblzma/common/string_conversion.c | 6 ++++++
10117 1 file changed, 6 insertions(+)
10118
10119commit ed8e552395701fbf046027cebc8be4a6755b263f
10120Author: Lasse Collin <lasse.collin@tukaani.org>
10121Date:   2024-04-22 20:31:25 +0300
10122
10123    liblzma: Clean up white space
10124
10125 src/liblzma/lz/lz_encoder.h | 2 +-
10126 1 file changed, 1 insertion(+), 1 deletion(-)
10127
10128commit 2f06920f20b1ad63b7953dc09569e1d424998849
10129Author: Lasse Collin <lasse.collin@tukaani.org>
10130Date:   2024-04-22 18:35:19 +0300
10131
10132    Tests: test_filter_flags: Edit comments and style
10133
10134 tests/test_filter_flags.c | 13 +++++++++----
10135 1 file changed, 9 insertions(+), 4 deletions(-)
10136
10137commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82
10138Author: Lasse Collin <lasse.collin@tukaani.org>
10139Date:   2024-04-22 16:39:44 +0300
10140
10141    Tests: Fix C99/C11 compatibility when features are disabled
10142
10143    The array could become empty and then the initializer would be
10144    simply {} which is allowed only in GNU-C and C23.
10145
10146 tests/test_filter_flags.c | 18 ++++++++----------
10147 1 file changed, 8 insertions(+), 10 deletions(-)
10148
10149commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d
10150Author: Lasse Collin <lasse.collin@tukaani.org>
10151Date:   2024-04-21 20:32:16 +0300
10152
10153    DOS: Omit useless defines from config.h
10154
10155 dos/config.h | 12 ------------
10156 1 file changed, 12 deletions(-)
10157
10158commit fc1921b04b8840caaa777c2bd5340d41b259da20
10159Author: Lasse Collin <lasse.collin@tukaani.org>
10160Date:   2024-04-21 20:27:50 +0300
10161
10162    Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h
10163
10164 configure.ac | 6 ------
10165 1 file changed, 6 deletions(-)
10166
10167commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
10168Author: Lasse Collin <lasse.collin@tukaani.org>
10169Date:   2024-04-19 22:04:21 +0300
10170
10171    liblzma: Silence a warning from Coverity static analysis
10172
10173    It is logical why it cannot know for sure that the value has
10174    to be at most 4 if it is less than 16.
10175
10176    The x86 filter is based on a very old LZMA SDK version. Newer
10177    ones have quite a different implementation for the same filter.
10178
10179    Thanks to Sam James.
10180
10181 src/liblzma/simple/x86.c | 12 +++++-------
10182 1 file changed, 5 insertions(+), 7 deletions(-)
10183
10184commit e89d3e83b4496d0b5410870634970c0aa9721d59
10185Author: Lasse Collin <lasse.collin@tukaani.org>
10186Date:   2024-04-19 23:18:19 +0300
10187
10188    Update .gitignore
10189
10190 .gitignore | 21 ++++++++-------------
10191 1 file changed, 8 insertions(+), 13 deletions(-)
10192
10193commit 86fc4ee859709da0ff9617a1490f13ddac0a109b
10194Author: Lasse Collin <lasse.collin@tukaani.org>
10195Date:   2024-04-19 20:53:24 +0300
10196
10197    Tests: test_lzip_decoder: Tweak coding style and comments
10198
10199 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------
10200 1 file changed, 28 insertions(+), 30 deletions(-)
10201
10202commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5
10203Author: Lasse Collin <lasse.collin@tukaani.org>
10204Date:   2024-04-19 20:51:36 +0300
10205
10206    Tests: test_lzip_decoder: Remove redundant initializations
10207
10208 tests/test_lzip_decoder.c | 6 ++----
10209 1 file changed, 2 insertions(+), 4 deletions(-)
10210
10211commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9
10212Author: Lasse Collin <lasse.collin@tukaani.org>
10213Date:   2024-04-19 20:47:24 +0300
10214
10215    Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
10216
10217 tests/test_lzip_decoder.c | 12 ++----------
10218 1 file changed, 2 insertions(+), 10 deletions(-)
10219
10220commit eeca8f7c5baf1ad69606bb734d5001763466d58f
10221Author: Lasse Collin <lasse.collin@tukaani.org>
10222Date:   2024-04-15 20:35:07 +0300
10223
10224    xz: Fix white space error.
10225
10226    Thanks to xx on #tukaani.
10227
10228 src/xz/args.c | 2 +-
10229 1 file changed, 1 insertion(+), 1 deletion(-)
10230
10231commit 462ca9409940a19f743daee6b3bcc611277d0007
10232Author: Sam James <sam@gentoo.org>
10233Date:   2024-04-11 23:01:44 +0100
10234
10235    xz: add missing noreturn for message_filters_help
10236
10237    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
10238
10239 src/xz/message.h | 1 +
10240 1 file changed, 1 insertion(+)
10241
10242commit 863f13d2828b99b0539ce73f9cf85bde32358034
10243Author: Sam James <sam@gentoo.org>
10244Date:   2024-04-11 19:34:04 +0100
10245
10246    xz: signals: suppress -Wsign-conversion on macOS
10247
10248    On macOS, we get:
10249    ```
10250    signals.c: In function 'signals_init':
10251    signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
10252       76 |                 sigaddset(&hooked_signals, sigs[i]);
10253          |                 ^~~~~~~~~
10254    signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
10255       81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
10256          |                 ^~~~~~~~~
10257    signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
10258       86 |         sigaddset(&hooked_signals, SIGTSTP);
10259          |         ^~~~~~~~~
10260    ```
10261
10262    We use `int` for `hooked_signals` but we can't just cast to whatever
10263    `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
10264    on macOS. On macOS, `sigaddset` is implemented as a macro.
10265
10266    Just suppress -Wsign-conversion for `signals_init` for macOS given
10267    there's no real nice way of fixing this.
10268
10269 src/xz/signals.c | 7 +++++++
10270 1 file changed, 7 insertions(+)
10271
10272commit fcbd0d199933a69713cb293cbd7409a757d854cd
10273Author: Lasse Collin <lasse.collin@tukaani.org>
10274Date:   2024-04-13 22:19:40 +0300
10275
10276    Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
10277
10278 tests/test_microlzma.c | 8 ++++++++
10279 1 file changed, 8 insertions(+)
10280
10281commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e
10282Author: Lasse Collin <lasse.collin@tukaani.org>
10283Date:   2024-04-13 18:05:31 +0300
10284
10285    Tests: test_microlzma: Tweak comments, coding style, and minor details
10286
10287    A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
10288    and a few uint32_t were changed to size_t. No real functional changes
10289    were intended.
10290
10291 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++----------------------
10292 1 file changed, 83 insertions(+), 66 deletions(-)
10293
10294commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992
10295Author: Ryan Carsten Schmidt <git@ryandesign.com>
10296Date:   2024-04-12 19:31:13 -0500
10297
10298    CI: Use only the active CPUs on macOS
10299
10300    hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
10301    only the active CPUs.
10302
10303 build-aux/ci_build.bash | 2 +-
10304 1 file changed, 1 insertion(+), 1 deletion(-)
10305
10306commit 73f629e321b74f68c9954728fa4f19261afccf46
10307Author: Sam James <sam@gentoo.org>
10308Date:   2024-04-10 18:33:55 +0100
10309
10310    ci: rename ci_build.sh -> ci_build.bash
10311
10312    We discussed the name and it's less cognitive load to just call it '.bash'
10313    so you don't have an immediate question about if bashisms are OK.
10314
10315 .github/workflows/ci.yml                 | 52 ++++++++++++++++----------------
10316 .github/workflows/windows-ci.yml         | 20 ++++++------
10317 build-aux/{ci_build.sh => ci_build.bash} |  0
10318 3 files changed, 36 insertions(+), 36 deletions(-)
10319
10320commit 8709407a9ef8e7e8aec117879400e4dd3e227ada
10321Author: Sam James <sam@gentoo.org>
10322Date:   2024-04-10 17:42:23 +0100
10323
10324    ci: build in parallel by default
10325
10326 build-aux/ci_build.sh | 2 ++
10327 1 file changed, 2 insertions(+)
10328
10329commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f
10330Author: Sam James <sam@gentoo.org>
10331Date:   2024-04-10 15:41:08 +0100
10332
10333    ci: default to -O2
10334
10335    We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
10336    with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
10337    environment and append what was passed on the command line.
10338
10339 build-aux/ci_build.sh | 3 ++-
10340 1 file changed, 2 insertions(+), 1 deletion(-)
10341
10342commit bc899f9e0700ad153bd65f4804c4de7515c8a847
10343Author: Sam James <sam@gentoo.org>
10344Date:   2024-04-10 15:17:47 +0100
10345
10346    ci: make automake's test runner verbose on failures
10347
10348    This is a lot easier to work with than the save-logs thing the action
10349    tries to do...
10350
10351 build-aux/ci_build.sh | 2 +-
10352 1 file changed, 1 insertion(+), 1 deletion(-)
10353
10354commit b5e3470442531717b2457b40ab412740296af1bc
10355Author: Sam James <sam@gentoo.org>
10356Date:   2024-04-10 12:38:51 +0100
10357
10358    ci: make UBSAN abort on errors
10359
10360    Unfortunately, UBSAN doesn't do this by default. See also the change
10361    I made in Meson for this in October [0].
10362
10363    [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c
10364
10365 .github/workflows/ci.yml | 1 +
10366 1 file changed, 1 insertion(+)
10367
10368commit 6c095a98fbec70b790253a663173ecdb669108c4
10369Author: Sam James <sam@gentoo.org>
10370Date:   2024-04-10 11:43:10 +0100
10371
10372    ci: test Valgrind
10373
10374    Using `--trace-children=yes` has a trade-off here, as it makes
10375    `test_scripts.sh` pretty slow when calling various non-xz utilities.
10376
10377    But I also feel like it's not useless to have Valgrind used there and it's
10378    not easy to exclude Valgrind just for that one test...
10379
10380    I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
10381    immediately with some conditionally-built tests and I wondered if it was
10382    worth spending time on at least while we're debating xz's future build
10383    system situation.
10384
10385    [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
10386    [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/
10387
10388 .github/workflows/ci.yml | 11 ++++++++++-
10389 build-aux/ci_build.sh    |  8 +++++---
10390 2 files changed, 15 insertions(+), 4 deletions(-)
10391
10392commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59
10393Author: Lasse Collin <lasse.collin@tukaani.org>
10394Date:   2024-04-10 23:20:02 +0300
10395
10396    liblzma: CRC: Simplify table omission macros
10397
10398    A macro is useful to prevent a single #if directive from
10399    getting too ugly but only one macro is needed for all archs.
10400
10401 src/liblzma/check/crc32_table.c | 10 ++++------
10402 src/liblzma/check/crc64_table.c |  4 ++--
10403 src/liblzma/check/crc_common.h  |  5 +++--
10404 3 files changed, 9 insertions(+), 10 deletions(-)
10405
10406commit 45da936c879acf4f053a3055665bf1b10ded4462
10407Author: Lasse Collin <lasse.collin@tukaani.org>
10408Date:   2024-04-10 23:09:40 +0300
10409
10410    liblzma: ARM64 CRC: Fix omission of CRC32 table
10411
10412    The macro name had an odd typo so the table wasn't omitted
10413    when it should have.
10414
10415    Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
10416
10417 src/liblzma/check/crc32_table.c | 2 +-
10418 1 file changed, 1 insertion(+), 1 deletion(-)
10419
10420commit 308a9af85400b0e2019f0f012c8354e831d06d65
10421Author: Lasse Collin <lasse.collin@tukaani.org>
10422Date:   2024-04-10 22:21:51 +0300
10423
10424    Build: If ARM64 feature detection func is found, stop looking for others
10425
10426    This can speed up configure a tiny bit.
10427
10428    Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
10429
10430 configure.ac | 2 +-
10431 1 file changed, 1 insertion(+), 1 deletion(-)
10432
10433commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6
10434Author: Lasse Collin <lasse.collin@tukaani.org>
10435Date:   2024-04-10 22:04:27 +0300
10436
10437    liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
10438
10439    I didn't test this but it shouldn't change any functionality.
10440
10441    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
10442
10443 src/liblzma/check/crc32_arm64.h | 7 ++++---
10444 1 file changed, 4 insertions(+), 3 deletions(-)
10445
10446commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57
10447Author: Lasse Collin <lasse.collin@tukaani.org>
10448Date:   2024-04-10 21:59:27 +0300
10449
10450    liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
10451
10452    Also add parenthesis to the return statement.
10453
10454    I didn't test this.
10455
10456    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
10457
10458 src/liblzma/check/crc32_arm64.h | 6 ++++--
10459 1 file changed, 4 insertions(+), 2 deletions(-)
10460
10461commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0
10462Author: Lasse Collin <lasse.collin@tukaani.org>
10463Date:   2024-04-10 21:56:33 +0300
10464
10465    liblzma: ARM64 CRC32: Use negation instead of subtracting from 8
10466
10467    Subtracting from 0 is negation, this just keeps warnings away.
10468
10469    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
10470
10471 src/liblzma/check/crc32_arm64.h | 2 +-
10472 1 file changed, 1 insertion(+), 1 deletion(-)
10473
10474commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7
10475Author: Lasse Collin <lasse.collin@tukaani.org>
10476Date:   2024-04-10 21:55:10 +0300
10477
10478    liblzma: ARM64 CRC32: Tweak coding style and comments
10479
10480 src/liblzma/check/crc32_arm64.h | 10 +++++-----
10481 1 file changed, 5 insertions(+), 5 deletions(-)
10482
10483commit 780d2c236de0e4749655696c2e0c26fb7565afd3
10484Author: Lasse Collin <lasse.collin@tukaani.org>
10485Date:   2024-04-09 21:55:01 +0300
10486
10487    Update SECURITY.md.
10488
10489 .github/SECURITY.md | 25 ++++++++-----------------
10490 1 file changed, 8 insertions(+), 17 deletions(-)
10491
10492commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a
10493Author: Lasse Collin <lasse.collin@tukaani.org>
10494Date:   2024-04-09 17:47:01 +0300
10495
10496    CI: Remove ifunc support.
10497
10498 .github/workflows/ci.yml | 13 +++----------
10499 build-aux/ci_build.sh    |  5 +----
10500 2 files changed, 4 insertions(+), 14 deletions(-)
10501
10502commit 689ae2427342a2ea1206eb5ca08301baf410e7e0
10503Author: Lasse Collin <lasse.collin@tukaani.org>
10504Date:   2024-04-09 17:43:16 +0300
10505
10506    liblzma: Remove ifunc support.
10507
10508    This is *NOT* done for security reasons even though the backdoor
10509    relied on the ifunc code. Instead, the reason is that in this
10510    project ifunc provides little benefits but it's quite a bit of
10511    extra code to support it. The only case where ifunc *might* matter
10512    for performance is if the CRC functions are used directly by an
10513    application. In normal compression use it's completely irrelevant.
10514
10515 CMakeLists.txt                    | 79 ---------------------------------------
10516 INSTALL                           |  8 ----
10517 configure.ac                      | 79 ---------------------------------------
10518 src/liblzma/check/crc32_fast.c    | 48 +++---------------------
10519 src/liblzma/check/crc64_fast.c    | 21 -----------
10520 src/liblzma/check/crc_common.h    |  9 +----
10521 src/liblzma/check/crc_x86_clmul.h | 11 +-----
10522 7 files changed, 8 insertions(+), 247 deletions(-)
10523
10524commit 6b4c859059a7eb9b0547590c081668e14ecf8af6
10525Author: Lasse Collin <lasse.collin@tukaani.org>
10526Date:   2024-04-08 22:04:41 +0300
10527
10528    tests/files/README: Update the main heading.
10529
10530 tests/files/README | 4 ++--
10531 1 file changed, 2 insertions(+), 2 deletions(-)
10532
10533commit 2a851e06b891ce894f918faff32a6cca6fdecee6
10534Author: Lasse Collin <lasse.collin@tukaani.org>
10535Date:   2024-04-08 22:02:45 +0300
10536
10537    tests/files/README: Explain how to recreate the ARM64 test files.
10538
10539 tests/files/README | 15 ++++++++++++++-
10540 1 file changed, 14 insertions(+), 1 deletion(-)
10541
10542commit 3d09b721b94e18fe1f853a04799697f5de10b291
10543Author: Lasse Collin <lasse.collin@tukaani.org>
10544Date:   2024-04-08 21:51:55 +0300
10545
10546    debug: Add generator for the ARM64 test file data.
10547
10548 debug/Makefile.am         |   3 +-
10549 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++
10550 2 files changed, 118 insertions(+), 1 deletion(-)
10551
10552commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48
10553Author: Lasse Collin <lasse.collin@tukaani.org>
10554Date:   2024-04-08 21:19:38 +0300
10555
10556    xz man page: Use .ft CR instead of CW to silence warnings from groff.
10557
10558 src/xz/xz.1 | 32 ++++++++++++++++----------------
10559 1 file changed, 16 insertions(+), 16 deletions(-)
10560
10561commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685
10562Author: Lasse Collin <lasse.collin@tukaani.org>
10563Date:   2024-04-08 19:28:35 +0300
10564
10565    Fix NEWS for 5.6.0 and 5.6.1.
10566
10567 NEWS | 6 ++++++
10568 1 file changed, 6 insertions(+)
10569
10570commit bfd0c7c478e93a1911b845459549ff94587b6ea2
10571Author: Lasse Collin <lasse.collin@tukaani.org>
10572Date:   2024-04-08 19:22:26 +0300
10573
10574    Remove the XZ logo.
10575
10576 COPYING              |   5 -
10577 COPYING.CC-BY-SA-4.0 | 427 ---------------------------------------------------
10578 Makefile.am          |   2 -
10579 README               |   2 -
10580 doc/xz-logo.png      | Bin 6771 -> 0 bytes
10581 doxygen/Doxyfile     |   6 +-
10582 doxygen/footer.html  |  13 --
10583 7 files changed, 3 insertions(+), 452 deletions(-)
10584
10585commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4
10586Author: Lasse Collin <lasse.collin@tukaani.org>
10587Date:   2024-04-08 18:27:39 +0300
10588
10589    Update maintainer and author info.
10590
10591    The other maintainer suddenly disappeared.
10592
10593 AUTHORS                |  9 +++++++--
10594 README                 | 10 +++-------
10595 THANKS                 |  1 -
10596 src/liblzma/api/lzma.h |  2 +-
10597 4 files changed, 11 insertions(+), 11 deletions(-)
10598
10599commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072
10600Author: Lasse Collin <lasse.collin@tukaani.org>
10601Date:   2024-04-08 18:05:32 +0300
10602
10603    Docs: Update .xz file format specification to 1.2.1.
10604
10605    This only reverts the XZ URL changes.
10606
10607 doc/xz-file-format.txt | 12 ++++++++----
10608 1 file changed, 8 insertions(+), 4 deletions(-)
10609
10610commit 17aa2e1a796d3f758802df29afc89dcf335db567
10611Author: Lasse Collin <lasse.collin@tukaani.org>
10612Date:   2024-04-08 17:33:56 +0300
10613
10614    Update website URLs back to tukaani.org.
10615
10616    The XZ projects were moved back to their original URLs.
10617
10618 .github/SECURITY.md        |  2 +-
10619 CMakeLists.txt             |  2 +-
10620 COPYING                    |  3 +--
10621 README                     |  4 ++--
10622 configure.ac               |  2 +-
10623 doc/faq.txt                |  2 +-
10624 doc/lzma-file-format.txt   | 12 ++++++------
10625 dos/config.h               |  2 +-
10626 src/liblzma/api/lzma.h     |  2 +-
10627 src/xz/xz.1                |  6 +++---
10628 src/xzdec/xzdec.1          |  4 ++--
10629 windows/README-Windows.txt |  2 +-
10630 12 files changed, 21 insertions(+), 22 deletions(-)
10631
10632commit 2739db981023373a2ddabc7b456c7e658bb4f582
10633Author: Lasse Collin <lasse.collin@tukaani.org>
10634Date:   2024-04-08 17:07:08 +0300
10635
10636    xzdec: Tweak coding style and comments.
10637
10638 src/xzdec/xzdec.c | 32 +++++++++++++++++++++-----------
10639 1 file changed, 21 insertions(+), 11 deletions(-)
10640
10641commit 408b6adb2a07d07c6535f859571cca38837caaf3
10642Author: Lasse Collin <lasse.collin@tukaani.org>
10643Date:   2024-04-08 15:53:46 +0300
10644
10645    tests/ossfuzz: Tiny fix to a comment.
10646
10647 tests/ossfuzz/fuzz_decode_stream.c | 2 +-
10648 1 file changed, 1 insertion(+), 1 deletion(-)
10649
10650commit db4dd74a344580e0b81436598d9741a3454245b0
10651Author: Lasse Collin <lasse.collin@tukaani.org>
10652Date:   2024-04-09 18:22:16 +0300
10653
10654    Update THANKS.
10655
10656 THANKS | 1 +
10657 1 file changed, 1 insertion(+)
10658
10659commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754
10660Author: Lasse Collin <lasse.collin@tukaani.org>
10661Date:   2024-04-08 15:32:58 +0300
10662
10663    Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
10664
10665    While the backdoor was inactive (and thus harmless) without inserting
10666    a small trigger code into the build system when the source package was
10667    created, it's good to remove this anyway:
10668
10669      - The executable payloads were embedded as binary blobs in
10670        the test files. This was a blatant violation of the
10671        Debian Free Software Guidelines.
10672
10673      - On machines that see lots bots poking at the SSH port, the backdoor
10674        noticeably increased CPU load, resulting in degraded user experience
10675        and thus overwhelmingly negative user feedback.
10676
10677      - The maintainer who added the backdoor has disappeared.
10678
10679      - Backdoors are bad for security.
10680
10681    This reverts the following without making any other changes:
10682
10683    6e636819 Tests: Update two test files.
10684    a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
10685    0b4ccc91 Tests: Update RISC-V test files.
10686    8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
10687    82ecc538 liblzma: Fix false Valgrind error report with GCC.
10688    cf44e4b7 Tests: Add a few test files.
10689    3060e107 Tests: Use smaller dictionary size in RISC-V test files.
10690    e2870db5 Tests: Add two RISC-V Filter test files.
10691
10692    The RISC-V test files also have real content that tests the filter
10693    but the real content would fit into much smaller files. A generator
10694    program would need to be available as well.
10695
10696    Thanks to Andres Freund for finding and reporting it and making
10697    it public quickly so others could act without a delay.
10698    See: https://www.openwall.com/lists/oss-security/2024/03/29/4
10699
10700 src/liblzma/check/crc32_fast.c         |   7 +++++--
10701 src/liblzma/check/crc64_fast.c         |   4 +++-
10702 src/liblzma/check/crc_common.h         |  25 -------------------------
10703 tests/files/README                     |  27 ---------------------------
10704 tests/files/bad-3-corrupt_lzma2.xz     | Bin 512 -> 0 bytes
10705 tests/files/bad-dict_size.lzma         | Bin 41 -> 0 bytes
10706 tests/files/good-1-riscv-lzma2-1.xz    | Bin 7424 -> 0 bytes
10707 tests/files/good-1-riscv-lzma2-2.xz    | Bin 7432 -> 0 bytes
10708 tests/files/good-2cat.xz               | Bin 136 -> 0 bytes
10709 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes
10710 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes
10711 tests/test_files.sh                    |  11 -----------
10712 12 files changed, 8 insertions(+), 66 deletions(-)
10713
10714commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00
10715Author: Lasse Collin <lasse.collin@tukaani.org>
10716Date:   2024-03-30 14:36:28 +0200
10717
10718    CMake: Fix sabotaged Landlock sandbox check.
10719
10720    It never enabled it.
10721
10722 CMakeLists.txt | 2 +-
10723 1 file changed, 1 insertion(+), 1 deletion(-)
10724
10725commit af071ef7702debef4f1d324616a0137a5001c14c
10726Author: Jia Tan <jiat0218@gmail.com>
10727Date:   2024-03-26 01:50:02 +0800
10728
10729    Docs: Simplify SECURITY.md.
10730
10731 .github/SECURITY.md | 8 +-------
10732 1 file changed, 1 insertion(+), 7 deletions(-)
10733
10734commit 0b99783d63f27606936bb79a16c52d0d70c0b56f
10735Author: Lasse Collin <lasse.collin@tukaani.org>
10736Date:   2024-03-22 17:46:30 +0200
10737
10738    liblzma: memcmplen.h: Add a comment why subtraction is used.
10739
10740 src/liblzma/common/memcmplen.h | 13 +++++++++++++
10741 1 file changed, 13 insertions(+)
10742
10743commit 8a25ba024d55610c448c6e4f1400a00bae51b493
10744Author: Lasse Collin <lasse.collin@tukaani.org>
10745Date:   2024-03-15 17:43:39 +0200
10746
10747    INSTALL: Document arguments of --enable-symbol-versions.
10748
10749 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
10750 1 file changed, 39 insertions(+), 4 deletions(-)
10751
10752commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5
10753Author: Lasse Collin <lasse.collin@tukaani.org>
10754Date:   2024-03-15 17:15:50 +0200
10755
10756    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
10757
10758    This does the previous commit with CMake.
10759
10760    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
10761    be changed to AS_IF to ensure that things wont break some day.
10762    See 5a5bd7f871818029d5ccbe189f087f591258c294.
10763
10764 configure.ac | 18 +++++++++++++-----
10765 1 file changed, 13 insertions(+), 5 deletions(-)
10766
10767commit c273123ed0ebaebf49994057a7fe98aae7f42c40
10768Author: Lasse Collin <lasse.collin@tukaani.org>
10769Date:   2024-03-15 16:36:35 +0200
10770
10771    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
10772
10773    It doesn't support the __symver__ attribute or __asm__(".symver ...").
10774    The generic symbol versioning can still be used since it only needs
10775    linker support.
10776
10777 CMakeLists.txt | 7 ++++++-
10778 1 file changed, 6 insertions(+), 1 deletion(-)
10779
10780commit df7f487648d18a3992386a59b8a061edca862d17
10781Author: Lasse Collin <lasse.collin@tukaani.org>
10782Date:   2024-03-13 21:38:24 +0200
10783
10784    Update THANKS.
10785
10786 THANKS | 1 +
10787 1 file changed, 1 insertion(+)
10788
10789commit 3217b82b3ec023bf8338249134a076bea0ea30ec
10790Author: Lasse Collin <lasse.collin@tukaani.org>
10791Date:   2024-03-13 21:30:18 +0200
10792
10793    liblzma: Minor comment edits.
10794
10795 src/liblzma/common/string_conversion.c | 4 ++--
10796 src/liblzma/delta/delta_decoder.c      | 2 ++
10797 2 files changed, 4 insertions(+), 2 deletions(-)
10798
10799commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31
10800Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
10801Date:   2024-03-13 13:07:13 +0100
10802
10803    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
10804
10805    NVHPC compiler has several issues that make it impossible to
10806    build liblzma:
10807      - the compiler cannot handle unions that contain pointers that
10808        are not the first members;
10809      - the compiler cannot handle the assembler code in range_decoder.h
10810        (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
10811      - the compiler fails to produce valid code for delta_decode if the
10812        vectorization is enabled, which results in failed tests.
10813
10814    This introduces NVHPC-specific workarounds that address the issues.
10815
10816 src/liblzma/common/string_conversion.c | 6 ++++--
10817 src/liblzma/delta/delta_decoder.c      | 3 +++
10818 src/liblzma/rangecoder/range_decoder.h | 1 +
10819 3 files changed, 8 insertions(+), 2 deletions(-)
10820
10821commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62
10822Author: Lasse Collin <lasse.collin@tukaani.org>
10823Date:   2024-03-13 21:17:10 +0200
10824
10825    CMake: Disable symbol versioning on non-glibc Linux.
10826
10827    This better matches what configure.ac does. For example, musl has
10828    only basic symbol versioning support:
10829
10830    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
10831
10832    configure.ac tries to enable symbol versioning only with glibc
10833    so now CMake does the same.
10834
10835 CMakeLists.txt | 22 ++++++++++++++++++++--
10836 1 file changed, 20 insertions(+), 2 deletions(-)
10837
10838commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4
10839Author: Lasse Collin <lasse.collin@tukaani.org>
10840Date:   2024-03-13 20:32:46 +0200
10841
10842    CMake: Make symbol versioning configurable.
10843
10844 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
10845 1 file changed, 42 insertions(+), 20 deletions(-)
10846
10847commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076
10848Author: Lasse Collin <lasse.collin@tukaani.org>
10849Date:   2024-03-13 19:47:36 +0200
10850
10851    Build: Style tweaks to configure.ac.
10852
10853    The AC_MSG_ERROR line is overlong anyway as are a few other
10854    AC_MSG_ERROR lines already.
10855
10856 configure.ac | 16 +++++++++-------
10857 1 file changed, 9 insertions(+), 7 deletions(-)
10858
10859commit f56ed6fac6619b56b005878d3b5210e2f0d721c0
10860Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
10861Date:   2024-03-12 20:03:49 +0100
10862
10863    Build: Let the users override the symbol versioning variant.
10864
10865    There are cases when the users want to decide themselves whether
10866    they want to have the generic (even on GNU/Linux) or the linux
10867    (even if we do not recommend that) symbol versioning variant.
10868    The former might be needed to circumvent compiler issues (i.e.
10869    the compiler does not support all features that are required
10870    for the linux versioning), the latter might help in overriding
10871    the assumptions made in the configure script.
10872
10873 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
10874 1 file changed, 50 insertions(+), 41 deletions(-)
10875
10876commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378
10877Author: Jia Tan <jiat0218@gmail.com>
10878Date:   2024-03-09 11:27:27 +0800
10879
10880    Add NEWS for 5.6.1
10881
10882 NEWS | 26 ++++++++++++++++++++++++++
10883 1 file changed, 26 insertions(+)
10884
10885commit f01be8ad754a905d8c418601767480ec11621b02
10886Author: Jia Tan <jiat0218@gmail.com>
10887Date:   2024-03-09 10:43:20 +0800
10888
10889    Translations: Add missing --riscv option to man page translations.
10890
10891 po4a/de.po    | 702 +++++++++++++++++++++++++++++-----------------------------
10892 po4a/fr.po    | 549 ++++++++++++++++++++++-----------------------
10893 po4a/ko.po    | 702 +++++++++++++++++++++++++++++-----------------------------
10894 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++--------------------------
10895 po4a/ro.po    | 702 +++++++++++++++++++++++++++++-----------------------------
10896 po4a/uk.po    | 702 +++++++++++++++++++++++++++++-----------------------------
10897 6 files changed, 2024 insertions(+), 1974 deletions(-)
10898
10899commit 6e636819e8f070330d835fce46289a3ff72a7b89
10900Author: Jia Tan <jiat0218@gmail.com>
10901Date:   2024-03-09 10:18:29 +0800
10902
10903    Tests: Update two test files.
10904
10905    The original files were generated with random local to my machine.
10906    To better reproduce these files in the future, a constant seed was used
10907    to recreate these files.
10908
10909 tests/files/bad-3-corrupt_lzma2.xz     | Bin 484 -> 512 bytes
10910 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes
10911 2 files changed, 0 insertions(+), 0 deletions(-)
10912
10913commit a3a29bbd5d86183fc7eae8f0182dace374e778d8
10914Author: Jia Tan <jiat0218@gmail.com>
10915Date:   2024-03-09 10:08:32 +0800
10916
10917    Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
10918
10919    The first stream in this file is valid, so this tests that xz properly
10920    stops after decompressing it.
10921
10922 tests/test_files.sh | 11 +++++++++++
10923 1 file changed, 11 insertions(+)
10924
10925commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c
10926Author: Jia Tan <jiat0218@gmail.com>
10927Date:   2024-03-09 10:05:32 +0800
10928
10929    Tests: Update RISC-V test files.
10930
10931    This increases code coverage and tests for possible shifting bugs.
10932
10933 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes
10934 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes
10935 2 files changed, 0 insertions(+), 0 deletions(-)
10936
10937commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb
10938Author: Jia Tan <jiat0218@gmail.com>
10939Date:   2024-03-09 09:52:32 +0800
10940
10941    liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
10942
10943 src/liblzma/check/crc32_fast.c | 4 ++--
10944 src/liblzma/check/crc64_fast.c | 3 +--
10945 2 files changed, 3 insertions(+), 4 deletions(-)
10946
10947commit b93a8d7631d9517da63f03e0185455024a4609e8
10948Author: Jia Tan <jiat0218@gmail.com>
10949Date:   2024-03-09 09:49:55 +0800
10950
10951    Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
10952
10953    This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
10954
10955 CMakeLists.txt         | 15 ++++++++++-----
10956 configure.ac           |  9 ++-------
10957 tests/Makefile.am      |  9 ++++++---
10958 tests/test_microlzma.c | 12 ++++--------
10959 4 files changed, 22 insertions(+), 23 deletions(-)
10960
10961commit 82ecc538193b380a21622aea02b0ba078e7ade92
10962Author: Jia Tan <jiat0218@gmail.com>
10963Date:   2024-03-09 09:20:57 +0800
10964
10965    liblzma: Fix false Valgrind error report with GCC.
10966
10967    With GCC and a certain combination of flags, Valgrind will falsely
10968    trigger an invalid write. This appears to be due to the omission of
10969    instructions to properly save, set up, and restore the frame pointer.
10970
10971    The IFUNC resolver is a leaf function since it only calls a function
10972    that is inlined. So sometimes GCC omits the frame pointer instructions
10973    in the resolver unless this optimization is explictly disabled.
10974
10975    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
10976
10977 src/liblzma/check/crc32_fast.c |  9 +++------
10978 src/liblzma/check/crc64_fast.c |  7 +++----
10979 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++
10980 3 files changed, 31 insertions(+), 10 deletions(-)
10981
10982commit 3007e74ef250f0ce95d97ffbdf2282284f93764d
10983Author: Lasse Collin <lasse.collin@tukaani.org>
10984Date:   2024-03-05 23:21:26 +0200
10985
10986    liblzma: Fix a typo in a comment in the RISC-V filter.
10987
10988 src/liblzma/simple/riscv.c | 2 +-
10989 1 file changed, 1 insertion(+), 1 deletion(-)
10990
10991commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f
10992Author: Jia Tan <jiat0218@gmail.com>
10993Date:   2024-03-05 00:34:46 +0800
10994
10995    liblzma: Use attribute no_profile_instrument_function with ifunc.
10996
10997    Thanks to Sam James for determining this was the attribute needed to
10998    workaround the GCC bug and for his version of the patch in Gentoo.
10999
11000 src/liblzma/check/crc32_fast.c | 5 +++++
11001 src/liblzma/check/crc64_fast.c | 3 +++
11002 2 files changed, 8 insertions(+)
11003
11004commit e5faaebbcf02ea880cfc56edc702d4f7298788ad
11005Author: Jia Tan <jiat0218@gmail.com>
11006Date:   2024-03-05 00:27:31 +0800
11007
11008    Build: Require attribute no_profile_instrument_function for ifunc usage.
11009
11010    Using __attribute__((__no_profile_instrument_function__)) on the ifunc
11011    resolver works around a bug in GCC -fprofile-generate:
11012    it adds profiling code even to ifunc resolvers which can make
11013    the ifunc resolver crash at program startup. This attribute
11014    was not introduced until GCC 7 and Clang 13, so ifunc won't
11015    be used with prior versions of these compilers.
11016
11017    This bug was brought to our attention by:
11018
11019        https://bugs.gentoo.org/925415
11020
11021    And was reported to upstream GCC by:
11022
11023        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
11024
11025 CMakeLists.txt | 7 +++++++
11026 configure.ac   | 7 +++++++
11027 2 files changed, 14 insertions(+)
11028
11029commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7
11030Author: Lasse Collin <lasse.collin@tukaani.org>
11031Date:   2024-03-04 19:23:18 +0200
11032
11033    liblzma: Fix a comment in the RISC-V filter.
11034
11035 src/liblzma/simple/riscv.c | 4 ++--
11036 1 file changed, 2 insertions(+), 2 deletions(-)
11037
11038commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333
11039Author: Lasse Collin <lasse.collin@tukaani.org>
11040Date:   2024-02-29 16:35:52 +0200
11041
11042    CMake: Warn if translated man pages are missing.
11043
11044 CMakeLists.txt | 9 +++++++++
11045 1 file changed, 9 insertions(+)
11046
11047commit 4cd1042ee752d61370c685d0d8b20c1e935672f7
11048Author: Lasse Collin <lasse.collin@tukaani.org>
11049Date:   2024-02-29 16:35:52 +0200
11050
11051    CMake: Warn if gettext tools and pre-created .gmo files are missing.
11052
11053    It's only done with CMake >= 3.20 and if library support
11054    for translation was already found.
11055
11056    Sort of fixes: https://github.com/tukaani-project/xz/issues/82
11057
11058 CMakeLists.txt | 25 +++++++++++++++++++++++++
11059 1 file changed, 25 insertions(+)
11060
11061commit a94b42362c8e807f92236d6d63373f04991e3a50
11062Author: Lasse Collin <lasse.collin@tukaani.org>
11063Date:   2024-02-28 18:26:25 +0200
11064
11065    xz: Add comments.
11066
11067 src/xz/coder.c | 10 ++++++++++
11068 1 file changed, 10 insertions(+)
11069
11070commit bbf112e32307a75a54a9e170bc392811443d5c87
11071Author: Jia Tan <jiat0218@gmail.com>
11072Date:   2024-02-27 23:42:41 +0800
11073
11074    xz: Change logging level for thread reduction to highest verbosity only.
11075
11076    Now that multi threaded encoding is the default, users do not need to
11077    see a warning message everytime the number of threads is reduced. On
11078    some machines, this could happen very often. It is not unreasonable for
11079    users to need to set double verbose mode to see this kind of
11080    information.
11081
11082    To see these warning messages -vv or --verbose --verbose must be passed
11083    to set xz into the highest possible verbosity mode.
11084
11085    These warnings had caused automated testing frameworks to fail when they
11086    expected no output to stderr.
11087
11088    Thanks to Sebastian Andrzej Siewior for reporting this and for the
11089    initial version of the patch.
11090
11091 src/xz/coder.c | 4 ++--
11092 1 file changed, 2 insertions(+), 2 deletions(-)
11093
11094commit 649f6447441510d593a88475ad6df4bcdf74ce48
11095Author: Lasse Collin <lasse.collin@tukaani.org>
11096Date:   2024-02-26 23:06:13 +0200
11097
11098    Fix sorting in THANKS.
11099
11100 THANKS | 4 ++--
11101 1 file changed, 2 insertions(+), 2 deletions(-)
11102
11103commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa
11104Author: Jia Tan <jiat0218@gmail.com>
11105Date:   2024-02-26 23:39:29 +0800
11106
11107    Update THANKS.
11108
11109 THANKS | 1 +
11110 1 file changed, 1 insertion(+)
11111
11112commit eee579fff50099ba163c12305e81a4bd42b7dd53
11113Author: Chien Wong <m@xv97.com>
11114Date:   2024-02-25 21:38:13 +0800
11115
11116    xz: Add missing RISC-V on the filter list in the man page
11117
11118    Signed-off-by: Chien Wong <m@xv97.com>
11119
11120 src/xz/xz.1 | 4 +++-
11121 1 file changed, 3 insertions(+), 1 deletion(-)
11122
11123commit 328c52da8a2bbb81307644efdb58db2c422d9ba7
11124Author: Jia Tan <jiat0218@gmail.com>
11125Date:   2024-02-26 23:02:06 +0800
11126
11127    Build: Fix Linux Landlock feature test in Autotools and CMake builds.
11128
11129    The previous Linux Landlock feature test assumed that having the
11130    linux/landlock.h header file was enough. The new feature tests also
11131    requires that prctl() and the required Landlock system calls are
11132    supported.
11133
11134 CMakeLists.txt    | 25 ++++++++++++++++++++++---
11135 configure.ac      | 27 ++++++++++++++++++++++++++-
11136 src/xz/sandbox.c  |  2 +-
11137 src/xz/sandbox.h  |  2 +-
11138 src/xzdec/xzdec.c |  8 ++++----
11139 5 files changed, 54 insertions(+), 10 deletions(-)
11140
11141commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d
11142Author: Jia Tan <jiat0218@gmail.com>
11143Date:   2024-02-26 20:06:10 +0800
11144
11145    Tests: Add test_microlzma to .gitignore and CMakeLists.txt.
11146
11147 .gitignore     | 1 +
11148 CMakeLists.txt | 1 +
11149 2 files changed, 2 insertions(+)
11150
11151commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093
11152Author: Jia Tan <jiat0218@gmail.com>
11153Date:   2024-02-26 19:56:25 +0800
11154
11155    Tests: Correct license header in test_microlzma.c.
11156
11157 tests/test_microlzma.c | 5 ++---
11158 1 file changed, 2 insertions(+), 3 deletions(-)
11159
11160commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d
11161Author: Jia Tan <jiat0218@gmail.com>
11162Date:   2024-02-25 21:41:55 +0800
11163
11164    Fix typos in NEWS and CMakeLists.
11165
11166 CMakeLists.txt | 2 +-
11167 NEWS           | 2 +-
11168 2 files changed, 2 insertions(+), 2 deletions(-)
11169
11170commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7
11171Author: Jia Tan <jiat0218@gmail.com>
11172Date:   2024-02-24 16:30:06 +0800
11173
11174    Bump version and soname for 5.7.0alpha.
11175
11176    Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that
11177    the branch is not stable.
11178
11179    Once again there is no API/ABI stability for new features in devel
11180    versions. The major soname won't be bumped even if API/ABI of new
11181    features breaks between devel releases.
11182
11183 src/liblzma/Makefile.am         | 2 +-
11184 src/liblzma/api/lzma/version.h  | 6 +++---
11185 src/liblzma/liblzma_generic.map | 2 +-
11186 src/liblzma/liblzma_linux.map   | 2 +-
11187 4 files changed, 6 insertions(+), 6 deletions(-)
11188
11189commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
11190Author: Jia Tan <jiat0218@gmail.com>
11191Date:   2024-02-24 15:50:36 +0800
11192
11193    Add NEWS for 5.6.0.
11194
11195 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11196 1 file changed, 143 insertions(+)
11197
11198commit 24355c5280bc95e3d594432d60bb8432aa6af173
11199Author: Jia Tan <jiat0218@gmail.com>
11200Date:   2024-02-22 22:27:01 +0800
11201
11202    Translations: Remove obsolete and fuzzy matches from some translations.
11203
11204    The French and Brazilian Portuguese man page translations have not been
11205    updated since the switch from public domain to 0BSD. The old GPLv2
11206    strings have now been removed from these files.
11207
11208 po4a/fr.po    | 4702 +++++++++++++++++++++++++++++++++++++----------------
11209 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++-----------------
11210 2 files changed, 6832 insertions(+), 2857 deletions(-)
11211
11212commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1
11213Author: Jia Tan <jiat0218@gmail.com>
11214Date:   2024-02-21 00:31:54 +0800
11215
11216    Translations: Patch man pages to avoid fuzzy matches.
11217
11218    This will be fixed in the next round of translations, but this avoids
11219    having a fuzzy match or not fixing the English version.
11220
11221 po4a/de.po | 2 +-
11222 po4a/ko.po | 2 +-
11223 po4a/ro.po | 2 +-
11224 po4a/uk.po | 2 +-
11225 4 files changed, 4 insertions(+), 4 deletions(-)
11226
11227commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64
11228Author: Jia Tan <jiat0218@gmail.com>
11229Date:   2024-02-21 00:30:43 +0800
11230
11231    xzmore: Fix typo in xzmore.1.
11232
11233    Thanks to Yuri Chornoivan.
11234
11235 src/scripts/xzmore.1 | 2 +-
11236 1 file changed, 1 insertion(+), 1 deletion(-)
11237
11238commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba
11239Author: Jia Tan <jiat0218@gmail.com>
11240Date:   2024-02-24 12:12:16 +0800
11241
11242    Translations: Update the Vietnamese translation.
11243
11244 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++-------------------------
11245 1 file changed, 309 insertions(+), 196 deletions(-)
11246
11247commit a65fd7ce9d6228e87faf61dc56a35984d0088248
11248Author: Jia Tan <jiat0218@gmail.com>
11249Date:   2024-02-24 12:06:40 +0800
11250
11251    Translations: Update the Esperanto translation.
11252
11253 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++-------------------------
11254 1 file changed, 306 insertions(+), 196 deletions(-)
11255
11256commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0
11257Author: Jia Tan <jiat0218@gmail.com>
11258Date:   2024-02-23 23:09:59 +0800
11259
11260    Tests: Add a few test files.
11261
11262 tests/files/README                     |  19 +++++++++++++++++++
11263 tests/files/bad-3-corrupt_lzma2.xz     | Bin 0 -> 484 bytes
11264 tests/files/bad-dict_size.lzma         | Bin 0 -> 41 bytes
11265 tests/files/good-2cat.xz               | Bin 0 -> 136 bytes
11266 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes
11267 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes
11268 6 files changed, 19 insertions(+)
11269
11270commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73
11271Author: Jia Tan <jiat0218@gmail.com>
11272Date:   2024-02-23 20:58:36 +0800
11273
11274    Tests: Add MicroLZMA test.
11275
11276 tests/Makefile.am      |   4 +-
11277 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++
11278 2 files changed, 551 insertions(+), 1 deletion(-)
11279
11280commit adaacafde6661496ca2814b1e94a3ba5186428cb
11281Author: Jia Tan <jiat0218@gmail.com>
11282Date:   2024-02-23 20:57:59 +0800
11283
11284    Build: Define HAVE_MICROLZMA when it is configured.
11285
11286 CMakeLists.txt | 4 ++++
11287 configure.ac   | 9 +++++++--
11288 2 files changed, 11 insertions(+), 2 deletions(-)
11289
11290commit eea78216d27182ca917bf00e02feaab058a4d21e
11291Author: Jia Tan <jiat0218@gmail.com>
11292Date:   2024-02-23 20:27:15 +0800
11293
11294    xz: Fix Capsicum sandbox compile error.
11295
11296    user_abort_pipe[] was still being used instead of the parameters.
11297
11298 src/xz/sandbox.c | 4 ++--
11299 1 file changed, 2 insertions(+), 2 deletions(-)
11300
11301commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d
11302Author: Jia Tan <jiat0218@gmail.com>
11303Date:   2024-02-23 16:12:32 +0800
11304
11305    Build: Fix ARM64 CRC32 instruction feature test.
11306
11307    Old versions of Clang reported the unsupported function attribute and
11308    __crc32d() function as warnings instead of errors, so the feature test
11309    passed when it shouldn't have, causing a compile error at build time.
11310    -Werror was added to this feature test to fix this. The change is not
11311    needed for CMake because check_c_source_compiles() also performs
11312    linking and the error is caught then.
11313
11314    Thanks to Sebastian Andrzej Siewior for reporting this.
11315
11316 configure.ac | 10 ++++++++++
11317 1 file changed, 10 insertions(+)
11318
11319commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
11320Author: Lasse Collin <lasse.collin@tukaani.org>
11321Date:   2024-02-22 19:16:35 +0200
11322
11323    CMake: Add LOCALEDIR to the windres workaround.
11324
11325    LOCALEDIR may contain spaces like in "C:\Program Files".
11326
11327 CMakeLists.txt | 16 +++++++++++-----
11328 1 file changed, 11 insertions(+), 5 deletions(-)
11329
11330commit de4337fd89ca7db5feb97b5c40143404f6e22986
11331Author: Lasse Collin <lasse.collin@tukaani.org>
11332Date:   2024-02-22 15:18:25 +0200
11333
11334    xz: Landlock: Fix error message if input file is a directory.
11335
11336    If xz is given a directory, it should look like this:
11337
11338        $ xz /usr/bin
11339        xz: /usr/bin: Is a directory, skipping
11340
11341    The Landlock rules didn't allow opening directories for reading:
11342
11343        $ xz /usr/bin
11344        xz: /usr/bin: Permission denied
11345
11346    The simplest fix was to allow opening directories for reading.
11347    While it's a bit silly to allow it solely for the error message,
11348    it shouldn't make the sandbox significantly weaker.
11349
11350    The single-file use case (like when called from GNU tar) is
11351    still as strict as possible: all Landlock restrictions are
11352    enabled before (de)compression starts.
11353
11354 src/xz/sandbox.c | 15 ++++++++++++++-
11355 1 file changed, 14 insertions(+), 1 deletion(-)
11356
11357commit 120da10ae139ea52ca4275452adf8eda02d07cc8
11358Author: Lasse Collin <lasse.collin@tukaani.org>
11359Date:   2024-02-22 14:41:29 +0200
11360
11361    liblzma: Disable branchless C version in range decoder.
11362
11363    Thanks to Sebastian Andrzej Siewior and Sam James for
11364    benchmarking on various systems.
11365
11366 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++---
11367 1 file changed, 10 insertions(+), 3 deletions(-)
11368
11369commit 00440f52be9ac2c7438c7b0cb1082f12399632c6
11370Author: Lasse Collin <lasse.collin@tukaani.org>
11371Date:   2024-02-21 17:41:32 +0200
11372
11373    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
11374
11375 INSTALL | 18 +++++++++---------
11376 1 file changed, 9 insertions(+), 9 deletions(-)
11377
11378commit 11405be84ea294497e12d03d7219f607063f4a00
11379Author: Lasse Collin <lasse.collin@tukaani.org>
11380Date:   2024-02-19 18:41:37 +0200
11381
11382    Windows: build.bash: Include COPYING.0BSD in the package.
11383
11384 windows/build.bash | 2 +-
11385 1 file changed, 1 insertion(+), 1 deletion(-)
11386
11387commit c27cf64e3e27f4968431d65be7098a12a3a80d30
11388Author: Lasse Collin <lasse.collin@tukaani.org>
11389Date:   2024-02-18 17:59:46 +0200
11390
11391    Windows: build.bash: include liblzma-crt-mixing.txt in the package.
11392
11393 windows/build.bash | 6 ++++--
11394 1 file changed, 4 insertions(+), 2 deletions(-)
11395
11396commit 8d38941baed05de4ff7cc775de14833108f62184
11397Author: Lasse Collin <lasse.collin@tukaani.org>
11398Date:   2024-02-18 17:17:43 +0200
11399
11400    Windows: Major update to Windows build instructions.
11401
11402 INSTALL                                      |  68 ++++-----
11403 windows/INSTALL-MSVC.txt                     |  23 +--
11404 windows/INSTALL-MinGW-w64_with_Autotools.txt |  49 +++++++
11405 windows/INSTALL-MinGW-w64_with_CMake.txt     | 203 +++++++++++++++++++++++++++
11406 windows/INSTALL-MinGW.txt                    | 138 ------------------
11407 windows/README-Windows.txt                   |   2 +
11408 windows/build-with-cmake.bat                 |  35 +++++
11409 windows/liblzma-crt-mixing.txt               |  70 +++++++++
11410 8 files changed, 404 insertions(+), 184 deletions(-)
11411
11412commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1
11413Author: Lasse Collin <lasse.collin@tukaani.org>
11414Date:   2024-02-18 15:15:04 +0200
11415
11416    Windows: Update windows/README-Windows.txt.
11417
11418    It's for binary packages built with windows/build.bash.
11419
11420 windows/README-Windows.txt | 104 ++++++++++++++++++---------------------------
11421 1 file changed, 41 insertions(+), 63 deletions(-)
11422
11423commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
11424Author: Lasse Collin <lasse.collin@tukaani.org>
11425Date:   2024-02-18 15:15:04 +0200
11426
11427    Windows: Update windows/build.bash.
11428
11429    Support for the old MinGW was dropped. Only MinGW-w64 with GCC
11430    is supported now.
11431
11432    The script now supports also cross-compilation from GNU/Linux
11433    (tests are not run). MSYS2 and also the old MSYS 1.0.11 work
11434    for building on Windows. The i686 and x86_64 toolchains must
11435    be in PATH to build both 32-bit and 64-bit versions.
11436
11437    Parallel builds are done if "nproc" from GNU coreutils is available.
11438
11439    MinGW-w64 runtime copyright information file was renamed from
11440    COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which
11441    is the filename used by MinGW-w64 itself. Its existence
11442    is now mandatory, it's checked at the beginning of the script.
11443
11444    The file TODO is no longer copied to the package.
11445
11446 windows/build.bash | 191 +++++++++++++++++++++++++++++++----------------------
11447 1 file changed, 112 insertions(+), 79 deletions(-)
11448
11449commit 60462e42609a1d961868a1d1ebecc713c6d27e2e
11450Author: Jia Tan <jiat0218@gmail.com>
11451Date:   2024-02-20 23:32:22 +0800
11452
11453    Translations: Update the Romanian man page translations.
11454
11455 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++-----------------------------
11456 1 file changed, 875 insertions(+), 840 deletions(-)
11457
11458commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05
11459Author: Jia Tan <jiat0218@gmail.com>
11460Date:   2024-02-20 23:30:25 +0800
11461
11462    Translations: Update the Korean man page translations.
11463
11464 po4a/ko.po | 6 +++---
11465 1 file changed, 3 insertions(+), 3 deletions(-)
11466
11467commit 797a34b72ac6baff237d7a546fa941d8f78f2f62
11468Author: Jia Tan <jiat0218@gmail.com>
11469Date:   2024-02-20 21:03:53 +0800
11470
11471    Translations: Update the Spanish translation.
11472
11473 po/es.po | 6 +++---
11474 1 file changed, 3 insertions(+), 3 deletions(-)
11475
11476commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49
11477Author: Jia Tan <jiat0218@gmail.com>
11478Date:   2024-02-20 20:18:07 +0800
11479
11480    Translations: Update the Romanian translation.
11481
11482 po/ro.po | 470 ++++++++++++++++++++++++++++++---------------------------------
11483 1 file changed, 227 insertions(+), 243 deletions(-)
11484
11485commit e2d31154ecc750935436e8b62c6b073b2cfa84e3
11486Author: Jia Tan <jiat0218@gmail.com>
11487Date:   2024-02-20 20:15:50 +0800
11488
11489    Translations: Update the Croatian translation.
11490
11491 po/hr.po | 648 ++++++++++++++++++++++++++++++++++-----------------------------
11492 1 file changed, 355 insertions(+), 293 deletions(-)
11493
11494commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2
11495Author: Jia Tan <jiat0218@gmail.com>
11496Date:   2024-02-20 20:05:44 +0800
11497
11498    Translations: Update the German man page translations.
11499
11500 po4a/de.po | 1696 +++++++++++++++++++++++++++++++-----------------------------
11501 1 file changed, 873 insertions(+), 823 deletions(-)
11502
11503commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f
11504Author: Jia Tan <jiat0218@gmail.com>
11505Date:   2024-02-20 19:58:25 +0800
11506
11507    Translations: Update the German translation.
11508
11509 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------
11510 1 file changed, 225 insertions(+), 202 deletions(-)
11511
11512commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a
11513Author: Jia Tan <jiat0218@gmail.com>
11514Date:   2024-02-20 19:56:52 +0800
11515
11516    Translations: Update the Hungarian translation.
11517
11518 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++-------------------------
11519 1 file changed, 338 insertions(+), 218 deletions(-)
11520
11521commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04
11522Author: Lasse Collin <lasse.collin@tukaani.org>
11523Date:   2024-02-19 16:48:05 +0200
11524
11525    CMake: Fix building of lzmainfo when translations are enabled.
11526
11527 CMakeLists.txt | 2 ++
11528 1 file changed, 2 insertions(+)
11529
11530commit b0d1422b6037bfea6f6723683bd82a8e6d77026c
11531Author: Lasse Collin <lasse.collin@tukaani.org>
11532Date:   2024-02-19 13:38:42 +0200
11533
11534    CMake: Don't assume that -fvisibility=hidden is supported outside Windows.
11535
11536    The original code was good enough for supporting GNU/Linux
11537    and a few others but it wasn't very portable.
11538
11539    CMake doesn't support Solaris Studio's -xldscope=hidden.
11540    If it ever does, things should still work with this commit
11541    as Solaris Studio supports not only its own __global but also
11542    the GNU C __attribute__((visibility("default"))). Support for the
11543    attribute was added in 2007 to Sun Studio 12 compiler version 5.9.
11544
11545 CMakeLists.txt | 26 ++++++++++++++++++++++----
11546 1 file changed, 22 insertions(+), 4 deletions(-)
11547
11548commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c
11549Author: Lasse Collin <lasse.collin@tukaani.org>
11550Date:   2024-02-19 12:20:59 +0200
11551
11552    CMake: Revise the component splitting.
11553
11554 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++--------------------------
11555 1 file changed, 31 insertions(+), 26 deletions(-)
11556
11557commit 426bdc709c169d39b31dec410016779de117ef69
11558Author: Lasse Collin <lasse.collin@tukaani.org>
11559Date:   2024-02-17 21:45:07 +0200
11560
11561    CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release.
11562
11563 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------
11564 1 file changed, 63 insertions(+), 16 deletions(-)
11565
11566commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10
11567Author: Lasse Collin <lasse.collin@tukaani.org>
11568Date:   2024-02-17 21:27:48 +0200
11569
11570    CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release.
11571
11572    -O3 doesn't seem useful for speed but it makes the code bigger.
11573    CMake makes is difficult for users to simply override the
11574    optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because
11575    they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override
11576    CMAKE_C_FLAGS_RELEASE directly but then they have to remember to
11577    add also -DNDEBUG to disable assertions.
11578
11579    This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if
11580    CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if
11581    a custom value is passed on the command line (or reconfiguring an
11582    already-configured build), the cache variable won't be modified.
11583
11584 CMakeLists.txt | 19 +++++++++++++++++++
11585 1 file changed, 19 insertions(+)
11586
11587commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660
11588Author: Lasse Collin <lasse.collin@tukaani.org>
11589Date:   2024-02-18 14:59:52 +0200
11590
11591    CMake: Handle symbol versioning on MicroBlaze specially.
11592
11593    This is to match configure.ac.
11594
11595 CMakeLists.txt | 23 +++++++++++++++++++----
11596 1 file changed, 19 insertions(+), 4 deletions(-)
11597
11598commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce
11599Author: Lasse Collin <lasse.collin@tukaani.org>
11600Date:   2024-02-17 22:18:12 +0200
11601
11602    CMake: Keep build working even if lib/*.[ch] are removed.
11603
11604 CMakeLists.txt | 7 ++++++-
11605 1 file changed, 6 insertions(+), 1 deletion(-)
11606
11607commit d753e2ce4715552884afadc4ed6fbf8ccca6efac
11608Author: Lasse Collin <lasse.collin@tukaani.org>
11609Date:   2024-02-17 18:10:40 +0200
11610
11611    CMake: Install documentation.
11612
11613 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
11614 1 file changed, 32 insertions(+)
11615
11616commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
11617Author: Lasse Collin <lasse.collin@tukaani.org>
11618Date:   2024-02-17 15:35:35 +0200
11619
11620    CMake: Bump maximum policy version to 3.28.
11621
11622    CMP0154 doesn't affect us since we don't use FILE_SET.
11623
11624 CMakeLists.txt | 2 +-
11625 1 file changed, 1 insertion(+), 1 deletion(-)
11626
11627commit c2264ffbe3892d28930b89b0123efc369cabc143
11628Author: Lasse Collin <lasse.collin@tukaani.org>
11629Date:   2024-02-17 15:35:35 +0200
11630
11631    CMake: Build lzmainfo.
11632
11633 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
11634 1 file changed, 54 insertions(+)
11635
11636commit 998d0b29536094a89cf385a3b894e157db1ccefe
11637Author: Lasse Collin <lasse.collin@tukaani.org>
11638Date:   2024-02-17 15:35:35 +0200
11639
11640    CMake: Build lzmadec.
11641
11642 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++--------------------------
11643 1 file changed, 42 insertions(+), 34 deletions(-)
11644
11645commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9
11646Author: Lasse Collin <lasse.collin@tukaani.org>
11647Date:   2024-02-17 15:35:35 +0200
11648
11649    CMake: Add test_scripts.sh to the tests.
11650
11651    In contrast to Automake, skipping of this test when decoders
11652    are disabled is handled at CMake side instead of test_scripts.sh
11653    because CMake-build doesn't create config.h.
11654
11655 CMakeLists.txt        | 14 ++++++++++++++
11656 tests/test_scripts.sh | 13 ++++++++-----
11657 2 files changed, 22 insertions(+), 5 deletions(-)
11658
11659commit 4808f238a731befcd46c2117c62a1caaf4403989
11660Author: Lasse Collin <lasse.collin@tukaani.org>
11661Date:   2024-02-17 15:35:35 +0200
11662
11663    CMake: Install scripts.
11664
11665    Compared to the Autotools-based build, this has simpler handling
11666    for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts
11667    (configure has --enable-path-for-scripts=PREFIX). The simpler
11668    metho should be enough for non-ancient systems and Solaris.
11669
11670 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
11671 1 file changed, 82 insertions(+), 1 deletion(-)
11672
11673commit 3462362ebd94d835c664e94ad8f414cfe7590ca7
11674Author: Lasse Collin <lasse.collin@tukaani.org>
11675Date:   2024-02-17 15:35:35 +0200
11676
11677    Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@.
11678
11679    PACKAGE_VERSION was already used in liblzma.pc.in.
11680    This way only one version @foo@ is used.
11681
11682 src/scripts/xzdiff.in | 2 +-
11683 src/scripts/xzgrep.in | 2 +-
11684 src/scripts/xzless.in | 2 +-
11685 src/scripts/xzmore.in | 2 +-
11686 4 files changed, 4 insertions(+), 4 deletions(-)
11687
11688commit 67610c245ba6c68cf65991693bab9312b7dc987b
11689Author: Lasse Collin <lasse.collin@tukaani.org>
11690Date:   2024-02-17 15:35:35 +0200
11691
11692    CMake: Simplify symlink creation and install translated man pages.
11693
11694    It helps that cmake_install.cmake doesn't parallelize installation
11695    so symlinks can be created so that the target is always known to
11696    exist (a requirement on Windows in some cases).
11697
11698    This bumps the minimum CMake version from 3.13 to 3.14 to use
11699    file(CREATE_LINK ...). It could be made to work on 3.13 by
11700    calling "cmake -E create_symlink" but it's uglier code and
11701    slower in "make install". 3.14 should be a reasonable version
11702    to require nowadays, especially since the Autotools build
11703    is still the primary build system for most OSes.
11704
11705 CMakeLists.txt | 195 +++++++++++++++++++++++++++++----------------------------
11706 1 file changed, 98 insertions(+), 97 deletions(-)
11707
11708commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf
11709Author: Lasse Collin <lasse.collin@tukaani.org>
11710Date:   2024-02-17 15:35:35 +0200
11711
11712    CMake: Add support for building and installing xz with translations.
11713
11714    If gettext tools are available, the .po files listed in po/LINGUAS
11715    are converted using msgfmt. This allows building with translations
11716    directly from xz.git without Autotools.
11717
11718    If gettext tools aren't available, the Autotools-created .gmo files
11719    in the "po" directory will be used. This allows CMake-based build
11720    to use translations from Autotools-generated tarball.
11721
11722    If translation support is found (Intl_FOUND) but both the
11723    gettext tools and the pre-generated .gmo files are missing,
11724    then "make" will fail.
11725
11726 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
11727 1 file changed, 66 insertions(+), 2 deletions(-)
11728
11729commit 746c471643009947f94a3494a1148f74c7381b56
11730Author: Lasse Collin <lasse.collin@tukaani.org>
11731Date:   2024-02-19 11:58:33 +0200
11732
11733    liblzma: Remove commented-out code.
11734
11735 src/liblzma/rangecoder/range_decoder.h | 3 ---
11736 1 file changed, 3 deletions(-)
11737
11738commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7
11739Author: Lasse Collin <lasse.collin@tukaani.org>
11740Date:   2024-02-17 23:07:35 +0200
11741
11742    xz: Delete old commented-out code.
11743
11744 src/xz/message.c | 19 -------------------
11745 1 file changed, 19 deletions(-)
11746
11747commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa
11748Author: Lasse Collin <lasse.collin@tukaani.org>
11749Date:   2024-02-17 23:07:35 +0200
11750
11751    xz: Use stricter pledge(2) and Landlock sandbox.
11752
11753    This makes these sandboxing methods stricter when no files are
11754    created or deleted. That is, it's a middle ground between the
11755    initial sandbox and the strictest single-file-to-stdout sandbox:
11756    this allows opening files for reading but output has to go to stdout.
11757
11758 src/xz/main.c    | 46 +++++++++++++++++++++++++++++++++-------------
11759 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++
11760 src/xz/sandbox.h |  4 ++++
11761 3 files changed, 69 insertions(+), 13 deletions(-)
11762
11763commit 02e3505991233901575b7eabc06b2c6c62a96899
11764Author: Lasse Collin <lasse.collin@tukaani.org>
11765Date:   2024-02-17 23:07:35 +0200
11766
11767    xz: Support Landlock ABI version 4.
11768
11769    Linux 6.7 added support for ABI version 4 which restricts
11770    TCP connections which xz won't need and thus those can be
11771    forbidden now. Since the ABI version is handled at runtime,
11772    supporting version 4 won't cause any compatibility issues.
11773
11774    Note that new enough kernel headers are required to get
11775    version 4 support enabled at build time.
11776
11777 src/xz/sandbox.c | 25 ++++++++++++++++++++-----
11778 1 file changed, 20 insertions(+), 5 deletions(-)
11779
11780commit 374868d81d473ab56556a1cfd6b1b36a1fab348b
11781Author: Lasse Collin <lasse.collin@tukaani.org>
11782Date:   2024-02-17 23:07:35 +0200
11783
11784    xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.
11785
11786    Landlock is now always used just like pledge(2) is: first in more
11787    permissive mode and later (under certain common conditions) in
11788    a strict mode that doesn't allow opening more files.
11789
11790    I put pledge(2) first in sandbox.c because it's the simplest API
11791    to use and still somewhat fine-grained for basic applications.
11792    So it's the simplest thing to understand for anyone reading sandbox.c.
11793
11794 CMakeLists.txt     |   2 +
11795 src/xz/Makefile.am |   2 +
11796 src/xz/file_io.c   | 170 +-----------------------------
11797 src/xz/file_io.h   |   6 --
11798 src/xz/main.c      |  50 +++------
11799 src/xz/private.h   |   6 +-
11800 src/xz/sandbox.c   | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++
11801 src/xz/sandbox.h   |  39 +++++++
11802 8 files changed, 357 insertions(+), 213 deletions(-)
11803
11804commit 7312dfbb02197c7f990c7a3cefd027a9387d1473
11805Author: Lasse Collin <lasse.collin@tukaani.org>
11806Date:   2024-02-17 23:07:35 +0200
11807
11808    xz: Tweak comments.
11809
11810 src/xz/main.c | 4 +++-
11811 1 file changed, 3 insertions(+), 1 deletion(-)
11812
11813commit c701a5909ad9882469fbab4fab5d2d5556d3ba78
11814Author: Lasse Collin <lasse.collin@tukaani.org>
11815Date:   2024-02-17 23:07:35 +0200
11816
11817    xz: Fix message_init() description.
11818
11819    Also explicitly initialize progress_automatic to make it clear
11820    that it can be read before message_init() sets it. Static variable
11821    was initialized to false by default already so this is only for
11822    clarity.
11823
11824 src/xz/main.c    | 3 ++-
11825 src/xz/message.c | 2 +-
11826 src/xz/message.h | 5 ++++-
11827 3 files changed, 7 insertions(+), 3 deletions(-)
11828
11829commit 9466306719f3b76e92fac4e55fbfd89ec92295fa
11830Author: Lasse Collin <lasse.collin@tukaani.org>
11831Date:   2024-02-17 19:35:47 +0200
11832
11833    Build: Makefile.am: Sort EXTRA_DIST.
11834
11835    Dirs first, then files in case-sensitive ASCII order.
11836
11837 Makefile.am | 14 +++++++-------
11838 1 file changed, 7 insertions(+), 7 deletions(-)
11839
11840commit f3440e78c9517db75bfa52e1a378fad60b073bbe
11841Author: Lasse Collin <lasse.collin@tukaani.org>
11842Date:   2024-02-17 19:25:05 +0200
11843
11844    Build: Don't install TODO.
11845
11846 Makefile.am | 2 +-
11847 1 file changed, 1 insertion(+), 1 deletion(-)
11848
11849commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381
11850Author: Jia Tan <jiat0218@gmail.com>
11851Date:   2024-02-18 01:09:11 +0800
11852
11853    Translations: Update the Korean man page translations.
11854
11855 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++-----------------------------
11856 1 file changed, 871 insertions(+), 836 deletions(-)
11857
11858commit 9b315db2d5e74700f3dc0755eb86c27947c0b393
11859Author: Jia Tan <jiat0218@gmail.com>
11860Date:   2024-02-18 01:08:32 +0800
11861
11862    Translations: Update the Korean translation.
11863
11864 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------
11865 1 file changed, 223 insertions(+), 200 deletions(-)
11866
11867commit 56246607dff177b0410d140fcca4a42c865723dc
11868Author: Lasse Collin <lasse.collin@tukaani.org>
11869Date:   2024-02-17 16:23:14 +0200
11870
11871    Build: Install translated lzmainfo man pages.
11872
11873    All other translated man pages were being installed but
11874    lzmainfo had been forgotten.
11875
11876 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++
11877 1 file changed, 26 insertions(+)
11878
11879commit f1d6b88aefcced538403c5c2606ba57065b16e70
11880Author: Lasse Collin <lasse.collin@tukaani.org>
11881Date:   2024-02-17 16:01:32 +0200
11882
11883    liblzma: Avoid implementation-defined behavior in the RISC-V filter.
11884
11885    GCC docs promise that it works and a few other compilers do
11886    too. Clang/LLVM is documented source code only but unsurprisingly
11887    it behaves the same as others on x86-64 at least. But the
11888    certainly-portable way is good enough here so use that.
11889
11890 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++--------
11891 1 file changed, 22 insertions(+), 8 deletions(-)
11892
11893commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a
11894Author: Lasse Collin <lasse.collin@tukaani.org>
11895Date:   2024-02-17 15:48:28 +0200
11896
11897    liblzma: Wrap a line exceeding 80 chars.
11898
11899 src/liblzma/rangecoder/range_decoder.h | 3 ++-
11900 1 file changed, 2 insertions(+), 1 deletion(-)
11901
11902commit e9053c907250c70d98b319d95fa54cb94fc76869
11903Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
11904Date:   2024-02-16 21:50:15 +0100
11905
11906    liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
11907
11908    The x32 port has a x86-64 ABI in term of all registers but uses only
11909    32bit pointer like x86-32. The assembly optimisation fails to compile on
11910    x32. Given the state of x32 I suggest to exclude it from the
11911    optimisation rather than trying to fix it.
11912
11913    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
11914
11915 src/liblzma/rangecoder/range_decoder.h | 2 +-
11916 1 file changed, 1 insertion(+), 1 deletion(-)
11917
11918commit 3d198fb13b87f8803442e5799d465f7434a70555
11919Author: Jia Tan <jiat0218@gmail.com>
11920Date:   2024-02-17 21:05:07 +0800
11921
11922    Translations: Update the Spanish translation.
11923
11924 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------
11925 1 file changed, 226 insertions(+), 201 deletions(-)
11926
11927commit cf278bfe60a25b54b3786f06503bc61272970820
11928Author: Jia Tan <jiat0218@gmail.com>
11929Date:   2024-02-17 20:43:29 +0800
11930
11931    Translations: Update the Swedish translation.
11932
11933 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------
11934 1 file changed, 230 insertions(+), 204 deletions(-)
11935
11936commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2
11937Author: Jia Tan <jiat0218@gmail.com>
11938Date:   2024-02-17 20:41:38 +0800
11939
11940    Translations: Update the Polish translation.
11941
11942 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------
11943 1 file changed, 224 insertions(+), 200 deletions(-)
11944
11945commit d74ed48b30c631b6a4c7e7858b06828293bf8520
11946Author: Jia Tan <jiat0218@gmail.com>
11947Date:   2024-02-17 20:41:02 +0800
11948
11949    Translations: Update the Ukrainian translation.
11950
11951 po/uk.po | 2 +-
11952 1 file changed, 1 insertion(+), 1 deletion(-)
11953
11954commit 711e22d5c5f3bac39ac904efb3ede874a66e2045
11955Author: Lasse Collin <lasse.collin@tukaani.org>
11956Date:   2024-02-16 17:53:34 +0200
11957
11958    Translations: Use the same sentence in xz.pot-header that the TP uses.
11959
11960 po/xz.pot-header | 2 +-
11961 1 file changed, 1 insertion(+), 1 deletion(-)
11962
11963commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422
11964Author: Jia Tan <jiat0218@gmail.com>
11965Date:   2024-02-16 22:53:46 +0800
11966
11967    Fix typos discovered by codespell.
11968
11969 AUTHORS                                | 2 +-
11970 NEWS                                   | 2 +-
11971 src/liblzma/rangecoder/range_decoder.h | 4 ++--
11972 3 files changed, 4 insertions(+), 4 deletions(-)
11973
11974commit c64723bbb094e29b4edd98f6fcce866e1b569b42
11975Author: Jia Tan <jiat0218@gmail.com>
11976Date:   2024-02-16 22:52:41 +0800
11977
11978    Translations: Update the Ukrainian man page translations.
11979
11980 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++-----------------------------
11981 1 file changed, 873 insertions(+), 837 deletions(-)
11982
11983commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6
11984Author: Jia Tan <jiat0218@gmail.com>
11985Date:   2024-02-16 22:51:04 +0800
11986
11987    Translations: Update the Ukrainian translation.
11988
11989 po/uk.po | 466 ++++++++++++++++++++++++++++++---------------------------------
11990 1 file changed, 225 insertions(+), 241 deletions(-)
11991
11992commit 4c20781f4c8f04879b64d631a4f44b4909147bde
11993Author: Lasse Collin <lasse.collin@tukaani.org>
11994Date:   2024-02-15 22:32:52 +0200
11995
11996    Translations: Omit the generic copyright line from man page headers.
11997
11998 po4a/update-po | 1 +
11999 1 file changed, 1 insertion(+)
12000
12001commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e
12002Author: Jia Tan <jiat0218@gmail.com>
12003Date:   2024-02-15 22:26:43 +0800
12004
12005    Update m4/.gitignore.
12006
12007 m4/.gitignore | 1 +
12008 1 file changed, 1 insertion(+)
12009
12010commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
12011Author: Lasse Collin <lasse.collin@tukaani.org>
12012Date:   2024-02-14 21:11:49 +0200
12013
12014    Tests: tuktest.h: Treat Clang separately from GCC.
12015
12016    Don't assume that Clang defines __GNUC__ as the extensions
12017    are available in clang-cl as well (and possibly in some other
12018    Clang variants?).
12019
12020 tests/tuktest.h | 6 +++---
12021 1 file changed, 3 insertions(+), 3 deletions(-)
12022
12023commit cce7330b9f23485a0879422e0c3395a7065439ac
12024Author: Lasse Collin <lasse.collin@tukaani.org>
12025Date:   2024-02-14 21:11:03 +0200
12026
12027    Tests: tuktest.h: Add a missing word to a comment.
12028
12029 tests/tuktest.h | 4 ++--
12030 1 file changed, 2 insertions(+), 2 deletions(-)
12031
12032commit 5dd8fc9452a3373cedc27379067ce638f992c741
12033Author: Lasse Collin <lasse.collin@tukaani.org>
12034Date:   2024-02-14 21:10:10 +0200
12035
12036    Tests: tuktest.h: Fix the comment about STest.
12037
12038 tests/tuktest.h | 3 ++-
12039 1 file changed, 2 insertions(+), 1 deletion(-)
12040
12041commit 6f1790254a03c5edf0f2976f773220f070450acd
12042Author: Jia Tan <jiat0218@gmail.com>
12043Date:   2024-02-15 01:53:40 +0800
12044
12045    Bump version for 5.5.2beta.
12046
12047 src/liblzma/api/lzma/version.h  | 4 ++--
12048 src/liblzma/liblzma_generic.map | 2 +-
12049 src/liblzma/liblzma_linux.map   | 2 +-
12050 3 files changed, 4 insertions(+), 4 deletions(-)
12051
12052commit 924fdeedf48113fb1e0646d86bd89a356d21a055
12053Author: Lasse Collin <lasse.collin@tukaani.org>
12054Date:   2024-02-14 19:46:11 +0200
12055
12056    liblzma: Fix validate_map.sh.
12057
12058    Adding the SPDX license identifier changed the line numbers.
12059
12060 src/liblzma/validate_map.sh | 2 +-
12061 1 file changed, 1 insertion(+), 1 deletion(-)
12062
12063commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01
12064Author: Lasse Collin <lasse.collin@tukaani.org>
12065Date:   2024-02-14 19:38:34 +0200
12066
12067    Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0.
12068
12069 Makefile.am | 2 +-
12070 1 file changed, 1 insertion(+), 1 deletion(-)
12071
12072commit 0b8cefa136c21d403a01b78517f4decb50172bdb
12073Author: Lasse Collin <lasse.collin@tukaani.org>
12074Date:   2024-02-14 19:27:46 +0200
12075
12076    Fixed NEWS for 5.5.2beta.
12077
12078 NEWS | 8 ++++++--
12079 1 file changed, 6 insertions(+), 2 deletions(-)
12080
12081commit a4557bad96361d93ea171ed859ac5a696fca824f
12082Author: Lasse Collin <lasse.collin@tukaani.org>
12083Date:   2024-02-14 19:21:45 +0200
12084
12085    liblzma: Silence warnings in --enable-small build.
12086
12087 src/liblzma/lzma/lzma_decoder.c        | 2 ++
12088 src/liblzma/rangecoder/range_decoder.h | 1 +
12089 2 files changed, 3 insertions(+)
12090
12091commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2
12092Author: Lasse Collin <lasse.collin@tukaani.org>
12093Date:   2024-02-14 19:15:58 +0200
12094
12095    Build: Install COPYING.0BSD as part of docs.
12096
12097 Makefile.am | 1 +
12098 1 file changed, 1 insertion(+)
12099
12100commit b74e10bd839bcdc239afb5300ffaee195f34c217
12101Author: Lasse Collin <lasse.collin@tukaani.org>
12102Date:   2024-02-14 19:14:05 +0200
12103
12104    Docs: List COPYING.0BSD in README.
12105
12106 README | 1 +
12107 1 file changed, 1 insertion(+)
12108
12109commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e
12110Author: Lasse Collin <lasse.collin@tukaani.org>
12111Date:   2024-02-14 19:11:48 +0200
12112
12113    Docs: Include doc/examples/11_file_info.c in tarballs.
12114
12115    It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
12116    but it never got into any release tarballs because it was
12117    forgotten to be added to Makefile.am.
12118
12119 Makefile.am | 1 +
12120 1 file changed, 1 insertion(+)
12121
12122commit 160b6862646d95dfdbd73ab7f1031ede0f54992d
12123Author: Lasse Collin <lasse.collin@tukaani.org>
12124Date:   2024-02-14 19:05:58 +0200
12125
12126    liblzma: Silence a warning.
12127
12128 src/liblzma/rangecoder/range_decoder.h | 2 +-
12129 1 file changed, 1 insertion(+), 1 deletion(-)
12130
12131commit eeedd4d0925ea417add04ceb42a6c0829244b50c
12132Author: Lasse Collin <lasse.collin@tukaani.org>
12133Date:   2024-02-14 18:32:27 +0200
12134
12135    Add NEWS for 5.5.2beta.
12136
12137 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12138 1 file changed, 60 insertions(+)
12139
12140commit 8af7db854f903068d72a9a0d21103cb0c5027fa8
12141Author: Lasse Collin <lasse.collin@tukaani.org>
12142Date:   2024-02-13 14:32:47 +0200
12143
12144    xz: Mention lzmainfo if trying to use 'lzma --list'.
12145
12146    This kind of fixes the problem reported here:
12147    https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020
12148
12149 src/xz/list.c | 16 ++++++++++++++--
12150 1 file changed, 14 insertions(+), 2 deletions(-)
12151
12152commit 0668907ff736e4cd16738c10d39a2bc9e851aefb
12153Author: Lasse Collin <lasse.collin@tukaani.org>
12154Date:   2024-02-14 14:58:36 +0200
12155
12156    liblzma: Add comments.
12157
12158 src/liblzma/lzma/lzma_decoder.c        |  9 +++++++++
12159 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++--
12160 2 files changed, 18 insertions(+), 2 deletions(-)
12161
12162commit 109f1913d4824c8214d5bbd38ebebf62c37572da
12163Author: Lasse Collin <lasse.collin@tukaani.org>
12164Date:   2024-02-13 17:00:17 +0200
12165
12166    Scripts: Add lz4 support to xzgrep and xzdiff.
12167
12168 src/scripts/xzdiff.1  |  8 +++++---
12169 src/scripts/xzdiff.in | 14 +++++++++-----
12170 src/scripts/xzgrep.1  |  6 ++++--
12171 src/scripts/xzgrep.in |  1 +
12172 4 files changed, 19 insertions(+), 10 deletions(-)
12173
12174commit de55485cb23af56c5adbe3239b935c957ff8ac4f
12175Author: Lasse Collin <lasse.collin@tukaani.org>
12176Date:   2024-02-13 14:05:13 +0200
12177
12178    liblzma: Choose the range decoder variants using a bitmask macro.
12179
12180 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------
12181 1 file changed, 53 insertions(+), 11 deletions(-)
12182
12183commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5
12184Author: Lasse Collin <lasse.collin@tukaani.org>
12185Date:   2024-02-13 11:38:10 +0200
12186
12187    xz: Fix outdated threading related info on the man page.
12188
12189 src/xz/xz.1 | 22 ++++++++++++++--------
12190 1 file changed, 14 insertions(+), 8 deletions(-)
12191
12192commit 3182a330c1512cc1f5c87b5c5a272578e60a5158
12193Author: Lasse Collin <lasse.collin@tukaani.org>
12194Date:   2024-02-12 17:09:10 +0200
12195
12196    liblzma: Range decoder: Add x86-64 inline assembly.
12197
12198    It's compatible with GCC and Clang.
12199
12200 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++
12201 1 file changed, 491 insertions(+)
12202
12203commit cba2edc991dffba7cd4891dbc1bd26cb950cf053
12204Author: Lasse Collin <lasse.collin@tukaani.org>
12205Date:   2024-02-12 17:09:10 +0200
12206
12207    liblzma: Range decoder: Add branchless C code.
12208
12209    It's used only for basic bittrees and fixed-size reverse bittree
12210    because those showed a clear benefit on x86-64 with GCC and Clang.
12211    The other methods were more mixed and thus are commented out but
12212    they should be tested on other archs.
12213
12214 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++
12215 1 file changed, 76 insertions(+)
12216
12217commit e290a72d6dee71faf3a90c9678b2f730083666a7
12218Author: Lasse Collin <lasse.collin@tukaani.org>
12219Date:   2024-02-12 17:09:10 +0200
12220
12221    liblzma: Clarify a comment.
12222
12223 src/liblzma/lzma/lzma_decoder.c | 9 ++++++---
12224 1 file changed, 6 insertions(+), 3 deletions(-)
12225
12226commit 5e04706b91ca90d6befd4da24a588a55e631d4a9
12227Author: Lasse Collin <lasse.collin@tukaani.org>
12228Date:   2024-02-12 17:09:10 +0200
12229
12230    liblzma: LZMA decoder: Optimize loop comparison.
12231
12232    But now it needs one more local variable.
12233
12234 src/liblzma/lzma/lzma_decoder.c        |  5 ++---
12235 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++-
12236 2 files changed, 11 insertions(+), 4 deletions(-)
12237
12238commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66
12239Author: Lasse Collin <lasse.collin@tukaani.org>
12240Date:   2024-02-12 17:09:10 +0200
12241
12242    liblzma: Optimize literal_subcoder() macro slightly.
12243
12244 src/liblzma/lzma/lzma_common.h                 | 22 ++++++++++++----------
12245 src/liblzma/lzma/lzma_decoder.c                | 12 ++++++------
12246 src/liblzma/lzma/lzma_encoder.c                |  6 +++---
12247 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  2 +-
12248 src/liblzma/lzma/lzma_encoder_private.h        |  4 ++--
12249 5 files changed, 24 insertions(+), 22 deletions(-)
12250
12251commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5
12252Author: Lasse Collin <lasse.collin@tukaani.org>
12253Date:   2024-02-12 17:09:10 +0200
12254
12255    liblzma: LZ decoder: Add unlikely().
12256
12257 src/liblzma/lz/lz_decoder.h | 2 +-
12258 1 file changed, 1 insertion(+), 1 deletion(-)
12259
12260commit 9c252e3ed086c6b72590b2531586c42596d4a9d9
12261Author: Lasse Collin <lasse.collin@tukaani.org>
12262Date:   2024-02-12 17:09:10 +0200
12263
12264    liblzma: LZ decoder: Remove a useless unlikely().
12265
12266 src/liblzma/lz/lz_decoder.h | 2 +-
12267 1 file changed, 1 insertion(+), 1 deletion(-)
12268
12269commit f3872a59475456c5d365cad9f1c5be514cfa54b5
12270Author: Lasse Collin <lasse.collin@tukaani.org>
12271Date:   2024-02-12 17:09:10 +0200
12272
12273    liblzma: Optimize LZ decoder slightly.
12274
12275    Now extra buffer space is reserved so that repeating bytes for
12276    any single match will never need to copy from two places (both
12277    the beginning and the end of the buffer). This simplifies
12278    dict_repeat() and helps a little with speed.
12279
12280    This seems to reduce .lzma decompression time about 2 %, so
12281    with .xz and CRC it could be slightly less. The small things
12282    add up still.
12283
12284 src/liblzma/lz/lz_decoder.c     |  43 ++++++++++++-----
12285 src/liblzma/lz/lz_decoder.h     | 101 +++++++++++++++++++++-------------------
12286 src/liblzma/lzma/lzma_decoder.c |   4 +-
12287 3 files changed, 88 insertions(+), 60 deletions(-)
12288
12289commit eb518446e578acf079abae5f1ce28db7b6e59bc1
12290Author: Lasse Collin <lasse.collin@tukaani.org>
12291Date:   2024-02-12 17:09:10 +0200
12292
12293    liblzma: LZMA decoder: Get rid of next_state[].
12294
12295    It's not completely obvious if this is better in the decoder.
12296    It should be good if compiler can avoid creating a branch
12297    (like using CMOV on x86).
12298
12299    This also makes lzma_encoder.c use the new macros.
12300
12301 src/liblzma/lzma/lzma_common.h  | 14 ++++++++++++++
12302 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++----------------------
12303 src/liblzma/lzma/lzma_encoder.c |  4 ++--
12304 3 files changed, 24 insertions(+), 24 deletions(-)
12305
12306commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604
12307Author: Lasse Collin <lasse.collin@tukaani.org>
12308Date:   2024-02-12 17:09:10 +0200
12309
12310    liblzma: LZMA decoder improvements.
12311
12312    This adds macros for bittree decoding which prepares the code
12313    for alternative C versions and inline assembly.
12314
12315 src/liblzma/lzma/lzma_decoder.c        | 264 ++++++++++-----------------------
12316 src/liblzma/rangecoder/range_common.h  |   4 +
12317 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++--
12318 3 files changed, 210 insertions(+), 200 deletions(-)
12319
12320commit de5c5e417645ad8906ef914bc059d08c1462fc29
12321Author: Jia Tan <jiat0218@gmail.com>
12322Date:   2024-02-12 17:09:10 +0200
12323
12324    liblzma: Creates Non-resumable and Resumable modes for lzma_decoder.
12325
12326    The new decoder resumes the first decoder loop in the Resumable mode.
12327    Then, the code executes in Non-resumable mode until it detects that it
12328    cannot guarantee to have enough input/output to decode another symbol.
12329
12330    The Resumable mode is how the decoder has always worked. Before decoding
12331    every input bit, it checks if there is enough space and will save its
12332    location to be resumed later. When the decoder has more input/output,
12333    it jumps back to the correct sequence in the Resumable mode code.
12334
12335    When the input/output buffers are large, the Resumable mode is much
12336    slower than the Non-resumable because it has more branches and is harder
12337    for the compiler to optimize since it is in a large switch block.
12338
12339    Early benchmarking shows significant time improvement (8-10% on gcc and
12340    clang x86) by using the Non-resumable code as much as possible.
12341
12342 src/liblzma/lz/lz_decoder.h     |  14 +-
12343 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------
12344 2 files changed, 521 insertions(+), 213 deletions(-)
12345
12346commit e446ab7a18abfde18f8d1cf02a914df72b1370e3
12347Author: Jia Tan <jiat0218@gmail.com>
12348Date:   2024-02-12 17:09:10 +0200
12349
12350    liblzma: Creates separate "safe" range decoder mode.
12351
12352    The new "safe" range decoder mode is the same as old range decoder, but
12353    now the default behavior of the range decoder will not check if there is
12354    enough input or output to complete the operation. When the buffers are
12355    close to fully consumed, the "safe" operations must be used instead. This
12356    will improve speed because it will reduce the number of branches needed
12357    for most of the range decoder operations.
12358
12359 src/liblzma/lzma/lzma_decoder.c        | 108 ++++++++-------------------------
12360 src/liblzma/rangecoder/range_decoder.h |  77 +++++++++++++++++------
12361 2 files changed, 82 insertions(+), 103 deletions(-)
12362
12363commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9
12364Author: Lasse Collin <lasse.collin@tukaani.org>
12365Date:   2024-02-12 17:09:10 +0200
12366
12367    doxygen/footer.html: Add missing closing tags and don't open a new tab.
12368
12369    The footer template from Doxygen has the closing </body> </html>
12370    as Doxygen doesn't add them otherwise.
12371
12372    target="_blank" was omitted as it's not useful here but
12373    it can be slightly annoying as one cannot just go back
12374    in the browser history.
12375
12376    Since the footer links to the license file in the same
12377    directory and not to CC website, the rel attributes
12378    can be omitted.
12379
12380 doxygen/footer.html | 6 ++++--
12381 1 file changed, 4 insertions(+), 2 deletions(-)
12382
12383commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92
12384Author: Lasse Collin <lasse.collin@tukaani.org>
12385Date:   2024-02-13 13:19:10 +0200
12386
12387    Tweak the expressions in AUTHORS.
12388
12389 AUTHORS | 31 +++++++++++++++++++++++--------
12390 1 file changed, 23 insertions(+), 8 deletions(-)
12391
12392commit d231d56580175fa040fdd3c6207a58243ce6217b
12393Author: Lasse Collin <lasse.collin@tukaani.org>
12394Date:   2024-02-13 13:07:33 +0200
12395
12396    Translations: Add the man page translators into man page header comment.
12397
12398    It looked odd to only have the original English authors listed
12399    in the header comments of the translated files.
12400
12401 po4a/.gitignore |  1 +
12402 po4a/po4a.conf  | 14 +++++++-------
12403 po4a/update-po  | 18 ++++++++++++++++++
12404 3 files changed, 26 insertions(+), 7 deletions(-)
12405
12406commit 6d35fcb936474fca1acaebfd9502c097b6fde88e
12407Author: Lasse Collin <lasse.collin@tukaani.org>
12408Date:   2024-02-12 17:09:10 +0200
12409
12410    Translations: Translate also messages of lzmainfo.
12411
12412    lzmainfo has had translation support since 2009 at least but
12413    it was never added to po/POTFILES.in so the messages weren't
12414    translated. It's a very rarely needed tool so it's not too bad.
12415
12416    This also adds src/xz/mytime.c to po/POTFILES.in although there
12417    are no translatable strings. It's simpler this way so that it
12418    won't be forgotten if strings were ever added to that file.
12419
12420 po/POTFILES.in | 2 ++
12421 1 file changed, 2 insertions(+)
12422
12423commit a9f369dd54b05f9ac4e00ead9d765d04fc259868
12424Author: Lasse Collin <lasse.collin@tukaani.org>
12425Date:   2024-02-12 17:09:10 +0200
12426
12427    Translations: Add custom .pot header with SPDX license identifier.
12428
12429    The same is used for both po/xz.pot and po4a/xz-man.pot.
12430
12431 Makefile.am      | 1 +
12432 po/xz.pot-header | 7 +++++++
12433 po4a/update-po   | 8 ++++++++
12434 3 files changed, 16 insertions(+)
12435
12436commit 469cd6653bb96e83c5cf1031c204d34566b15f44
12437Author: Lasse Collin <lasse.collin@tukaani.org>
12438Date:   2024-02-12 17:09:10 +0200
12439
12440    Translations: po4a/update-po: Add copyright notice to xz-man.pot.
12441
12442    All man pages are under 0BSD now so this is simple now.
12443
12444 po4a/update-po | 2 +-
12445 1 file changed, 1 insertion(+), 1 deletion(-)
12446
12447commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699
12448Author: Lasse Collin <lasse.collin@tukaani.org>
12449Date:   2024-02-12 17:09:10 +0200
12450
12451    Update COPYING about the man pages of the scripts.
12452
12453 COPYING | 6 +++---
12454 1 file changed, 3 insertions(+), 3 deletions(-)
12455
12456commit e48287bf51afd5184ea74de1dcade9e153f873f7
12457Author: Lasse Collin <lasse.collin@tukaani.org>
12458Date:   2024-02-12 17:09:10 +0200
12459
12460    xzdiff, xzgrep, and xzmore: Rewrite the man pages.
12461
12462    The main reason is a kind of silly one:
12463
12464    xz-man.pot contains strings from all man pages in XZ Utils.
12465    The man pages of xzdiff, xzgrep, and xzmore were under GPLv2
12466    and the rest under 0BSD. Thus xz-man.pot contained strings
12467    under two licences. po4a creates the translated man pages
12468    from the combined 0BSD+GPLv2 xz-man.pot.
12469
12470    I haven't liked this mixing in xz-man.pot but the
12471    Translation Project requires that all man pages must be
12472    in the same .pot file. So a separate xz-man-gpl.pot
12473    wasn't an option.
12474
12475    Since these man pages are short, rewriting them was quick enough.
12476    Now xz-man.pot is entirely under 0BSD and marking the per-file
12477    licenses is simpler.
12478
12479    As a bonus, some wording hopefully is now slightly better
12480    although it's perhaps a matter of taste.
12481
12482    NOTE: In xzgrep.1, the EXIT STATUS section was written by me
12483    in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's
12484    why that section could be taken as is from the old xzgrep.1.
12485
12486 src/scripts/xzdiff.1 |  94 ++++++++++++++++++++++++-----------------
12487 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++-------------------
12488 src/scripts/xzmore.1 |  79 ++++++++++++++++++++---------------
12489 3 files changed, 173 insertions(+), 116 deletions(-)
12490
12491commit 3e551b111b8ae8150f1a1040364dbafc034f22be
12492Author: Lasse Collin <lasse.collin@tukaani.org>
12493Date:   2024-02-12 17:09:10 +0200
12494
12495    xzless: Update man page slightly.
12496
12497    The xz tool can decompress three file formats and xzless
12498    has always supported uncompressed files too.
12499
12500 src/scripts/xzless.1 | 8 ++++----
12501 1 file changed, 4 insertions(+), 4 deletions(-)
12502
12503commit 40f36da2262d13d6e1ba8449caa855512ae626d7
12504Author: Lasse Collin <lasse.collin@tukaani.org>
12505Date:   2024-02-12 17:09:10 +0200
12506
12507    Translations: Change po/Makevars to add a copyright notice to po/xz.pot.
12508
12509 po/Makevars | 4 ++--
12510 1 file changed, 2 insertions(+), 2 deletions(-)
12511
12512commit 24192854e2ea5c06997431a98bda3c36c5da1497
12513Author: Lasse Collin <lasse.collin@tukaani.org>
12514Date:   2024-02-12 17:09:10 +0200
12515
12516    Translations: Update po/Makevars to use the template from gettext 0.22.4.
12517
12518    Also add SPDX license identifier now that there is a known license.
12519
12520 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
12521 1 file changed, 46 insertions(+), 5 deletions(-)
12522
12523commit b94154957370116480b43bcabca25fc52deb9853
12524Author: Lasse Collin <lasse.collin@tukaani.org>
12525Date:   2024-02-12 17:09:10 +0200
12526
12527    liblzma: Include the SPDX license identifier 0BSD to generated files.
12528
12529    Perhaps the generated files aren't even copyrightable but
12530    using the same license for them as for the rest of the liblzma
12531    keeps things more consistent for tools that look for license info.
12532
12533 src/liblzma/check/crc32_table_be.h      |  4 +++-
12534 src/liblzma/check/crc32_table_le.h      |  4 +++-
12535 src/liblzma/check/crc32_tablegen.c      | 16 ++++++++++------
12536 src/liblzma/check/crc64_table_be.h      |  4 +++-
12537 src/liblzma/check/crc64_table_le.h      |  4 +++-
12538 src/liblzma/check/crc64_tablegen.c      |  8 +++++---
12539 src/liblzma/lz/lz_encoder_hash_table.h  |  4 +++-
12540 src/liblzma/lzma/fastpos_table.c        |  4 +++-
12541 src/liblzma/lzma/fastpos_tablegen.c     | 12 +++++++-----
12542 src/liblzma/rangecoder/price_table.c    |  4 +++-
12543 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++-----
12544 11 files changed, 50 insertions(+), 26 deletions(-)
12545
12546commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4
12547Author: Lasse Collin <lasse.collin@tukaani.org>
12548Date:   2024-02-12 17:09:10 +0200
12549
12550    liblzma: Fix compilation of price_tablegen.c.
12551
12552    It is built and run only manually so this didn't matter
12553    unless one wanted to regenerate the price_table.c.
12554
12555 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
12556 src/liblzma/rangecoder/range_common.h   | 5 ++++-
12557 2 files changed, 9 insertions(+), 1 deletion(-)
12558
12559commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf
12560Author: Lasse Collin <lasse.collin@tukaani.org>
12561Date:   2024-02-12 17:09:10 +0200
12562
12563    Add SPDX license identifiers to GPL, LGPL, and FSFULLR files.
12564
12565 extra/scanlzma/scanlzma.c | 2 ++
12566 lib/Makefile.am           | 2 ++
12567 lib/getopt-cdefs.h        | 2 ++
12568 lib/getopt-core.h         | 2 ++
12569 lib/getopt-ext.h          | 2 ++
12570 lib/getopt-pfx-core.h     | 2 ++
12571 lib/getopt-pfx-ext.h      | 2 ++
12572 lib/getopt.c              | 2 ++
12573 lib/getopt.in.h           | 2 ++
12574 lib/getopt1.c             | 2 ++
12575 lib/getopt_int.h          | 2 ++
12576 m4/ax_pthread.m4          | 2 ++
12577 m4/getopt.m4              | 2 ++
12578 m4/posix-shell.m4         | 2 ++
12579 m4/visibility.m4          | 2 ++
12580 src/scripts/xzdiff.1      | 3 +--
12581 src/scripts/xzdiff.in     | 1 +
12582 src/scripts/xzgrep.1      | 3 +--
12583 src/scripts/xzgrep.in     | 1 +
12584 src/scripts/xzless.in     | 1 +
12585 src/scripts/xzmore.1      | 3 +--
12586 src/scripts/xzmore.in     | 1 +
12587 22 files changed, 37 insertions(+), 6 deletions(-)
12588
12589commit 22af94128b89a131f5e58ae69bee5e50227c15da
12590Author: Lasse Collin <lasse.collin@tukaani.org>
12591Date:   2024-02-12 17:09:10 +0200
12592
12593    Add SPDX license identifier into 0BSD source code files.
12594
12595 .github/workflows/ci.yml                       | 2 ++
12596 .github/workflows/windows-ci.yml               | 2 ++
12597 CMakeLists.txt                                 | 2 ++
12598 Makefile.am                                    | 3 +--
12599 autogen.sh                                     | 1 +
12600 build-aux/ci_build.sh                          | 3 ++-
12601 build-aux/manconv.sh                           | 3 ++-
12602 build-aux/version.sh                           | 3 ++-
12603 cmake/remove-ordinals.cmake                    | 2 ++
12604 cmake/tuklib_common.cmake                      | 4 ++++
12605 cmake/tuklib_cpucores.cmake                    | 4 ++++
12606 cmake/tuklib_integer.cmake                     | 4 ++++
12607 cmake/tuklib_large_file_support.cmake          | 4 ++++
12608 cmake/tuklib_mbstr.cmake                       | 4 ++++
12609 cmake/tuklib_physmem.cmake                     | 4 ++++
12610 cmake/tuklib_progname.cmake                    | 4 ++++
12611 configure.ac                                   | 4 +++-
12612 debug/Makefile.am                              | 3 +--
12613 debug/crc32.c                                  | 2 ++
12614 debug/full_flush.c                             | 2 ++
12615 debug/hex2bin.c                                | 2 ++
12616 debug/known_sizes.c                            | 2 ++
12617 debug/memusage.c                               | 2 ++
12618 debug/repeat.c                                 | 2 ++
12619 debug/sync_flush.c                             | 2 ++
12620 debug/translation.bash                         | 1 +
12621 doc/examples/01_compress_easy.c                | 2 ++
12622 doc/examples/02_decompress.c                   | 2 ++
12623 doc/examples/03_compress_custom.c              | 2 ++
12624 doc/examples/04_compress_easy_mt.c             | 2 ++
12625 doc/examples/11_file_info.c                    | 2 ++
12626 doc/examples/Makefile                          | 3 +--
12627 dos/Makefile                                   | 2 ++
12628 dos/config.h                                   | 2 ++
12629 doxygen/update-doxygen                         | 3 ++-
12630 extra/7z2lzma/7z2lzma.bash                     | 3 ++-
12631 m4/tuklib_common.m4                            | 8 ++++++--
12632 m4/tuklib_cpucores.m4                          | 8 ++++++--
12633 m4/tuklib_integer.m4                           | 8 ++++++--
12634 m4/tuklib_mbstr.m4                             | 8 ++++++--
12635 m4/tuklib_physmem.m4                           | 8 ++++++--
12636 m4/tuklib_progname.m4                          | 8 ++++++--
12637 po/POTFILES.in                                 | 2 ++
12638 po4a/po4a.conf                                 | 2 ++
12639 po4a/update-po                                 | 3 ++-
12640 src/Makefile.am                                | 3 +--
12641 src/common/common_w32res.rc                    | 2 ++
12642 src/common/mythread.h                          | 2 ++
12643 src/common/sysdefs.h                           | 2 ++
12644 src/common/tuklib_common.h                     | 2 ++
12645 src/common/tuklib_config.h                     | 2 ++
12646 src/common/tuklib_cpucores.c                   | 2 ++
12647 src/common/tuklib_cpucores.h                   | 2 ++
12648 src/common/tuklib_exit.c                       | 2 ++
12649 src/common/tuklib_exit.h                       | 2 ++
12650 src/common/tuklib_gettext.h                    | 2 ++
12651 src/common/tuklib_integer.h                    | 2 ++
12652 src/common/tuklib_mbstr.h                      | 2 ++
12653 src/common/tuklib_mbstr_fw.c                   | 2 ++
12654 src/common/tuklib_mbstr_width.c                | 2 ++
12655 src/common/tuklib_open_stdxxx.c                | 2 ++
12656 src/common/tuklib_open_stdxxx.h                | 2 ++
12657 src/common/tuklib_physmem.c                    | 2 ++
12658 src/common/tuklib_physmem.h                    | 2 ++
12659 src/common/tuklib_progname.c                   | 2 ++
12660 src/common/tuklib_progname.h                   | 2 ++
12661 src/liblzma/Makefile.am                        | 3 +--
12662 src/liblzma/api/Makefile.am                    | 3 +--
12663 src/liblzma/api/lzma.h                         | 2 ++
12664 src/liblzma/api/lzma/base.h                    | 2 ++
12665 src/liblzma/api/lzma/bcj.h                     | 2 ++
12666 src/liblzma/api/lzma/block.h                   | 2 ++
12667 src/liblzma/api/lzma/check.h                   | 2 ++
12668 src/liblzma/api/lzma/container.h               | 2 ++
12669 src/liblzma/api/lzma/delta.h                   | 2 ++
12670 src/liblzma/api/lzma/filter.h                  | 2 ++
12671 src/liblzma/api/lzma/hardware.h                | 2 ++
12672 src/liblzma/api/lzma/index.h                   | 2 ++
12673 src/liblzma/api/lzma/index_hash.h              | 2 ++
12674 src/liblzma/api/lzma/lzma12.h                  | 2 ++
12675 src/liblzma/api/lzma/stream_flags.h            | 2 ++
12676 src/liblzma/api/lzma/version.h                 | 2 ++
12677 src/liblzma/api/lzma/vli.h                     | 2 ++
12678 src/liblzma/check/Makefile.inc                 | 4 ++--
12679 src/liblzma/check/check.c                      | 2 ++
12680 src/liblzma/check/check.h                      | 2 ++
12681 src/liblzma/check/crc32_arm64.h                | 2 ++
12682 src/liblzma/check/crc32_fast.c                 | 2 ++
12683 src/liblzma/check/crc32_small.c                | 2 ++
12684 src/liblzma/check/crc32_table.c                | 2 ++
12685 src/liblzma/check/crc32_tablegen.c             | 2 ++
12686 src/liblzma/check/crc32_x86.S                  | 2 ++
12687 src/liblzma/check/crc64_fast.c                 | 2 ++
12688 src/liblzma/check/crc64_small.c                | 2 ++
12689 src/liblzma/check/crc64_table.c                | 2 ++
12690 src/liblzma/check/crc64_tablegen.c             | 2 ++
12691 src/liblzma/check/crc64_x86.S                  | 2 ++
12692 src/liblzma/check/crc_common.h                 | 2 ++
12693 src/liblzma/check/crc_x86_clmul.h              | 2 ++
12694 src/liblzma/check/sha256.c                     | 2 ++
12695 src/liblzma/common/Makefile.inc                | 3 +--
12696 src/liblzma/common/alone_decoder.c             | 2 ++
12697 src/liblzma/common/alone_decoder.h             | 2 ++
12698 src/liblzma/common/alone_encoder.c             | 2 ++
12699 src/liblzma/common/auto_decoder.c              | 2 ++
12700 src/liblzma/common/block_buffer_decoder.c      | 2 ++
12701 src/liblzma/common/block_buffer_encoder.c      | 2 ++
12702 src/liblzma/common/block_buffer_encoder.h      | 2 ++
12703 src/liblzma/common/block_decoder.c             | 2 ++
12704 src/liblzma/common/block_decoder.h             | 2 ++
12705 src/liblzma/common/block_encoder.c             | 2 ++
12706 src/liblzma/common/block_encoder.h             | 2 ++
12707 src/liblzma/common/block_header_decoder.c      | 2 ++
12708 src/liblzma/common/block_header_encoder.c      | 2 ++
12709 src/liblzma/common/block_util.c                | 2 ++
12710 src/liblzma/common/common.c                    | 2 ++
12711 src/liblzma/common/common.h                    | 2 ++
12712 src/liblzma/common/easy_buffer_encoder.c       | 2 ++
12713 src/liblzma/common/easy_decoder_memusage.c     | 2 ++
12714 src/liblzma/common/easy_encoder.c              | 2 ++
12715 src/liblzma/common/easy_encoder_memusage.c     | 2 ++
12716 src/liblzma/common/easy_preset.c               | 2 ++
12717 src/liblzma/common/easy_preset.h               | 2 ++
12718 src/liblzma/common/file_info.c                 | 2 ++
12719 src/liblzma/common/filter_buffer_decoder.c     | 2 ++
12720 src/liblzma/common/filter_buffer_encoder.c     | 2 ++
12721 src/liblzma/common/filter_common.c             | 2 ++
12722 src/liblzma/common/filter_common.h             | 2 ++
12723 src/liblzma/common/filter_decoder.c            | 2 ++
12724 src/liblzma/common/filter_decoder.h            | 2 ++
12725 src/liblzma/common/filter_encoder.c            | 2 ++
12726 src/liblzma/common/filter_encoder.h            | 2 ++
12727 src/liblzma/common/filter_flags_decoder.c      | 2 ++
12728 src/liblzma/common/filter_flags_encoder.c      | 2 ++
12729 src/liblzma/common/hardware_cputhreads.c       | 2 ++
12730 src/liblzma/common/hardware_physmem.c          | 2 ++
12731 src/liblzma/common/index.c                     | 2 ++
12732 src/liblzma/common/index.h                     | 2 ++
12733 src/liblzma/common/index_decoder.c             | 2 ++
12734 src/liblzma/common/index_decoder.h             | 2 ++
12735 src/liblzma/common/index_encoder.c             | 2 ++
12736 src/liblzma/common/index_encoder.h             | 2 ++
12737 src/liblzma/common/index_hash.c                | 2 ++
12738 src/liblzma/common/lzip_decoder.c              | 2 ++
12739 src/liblzma/common/lzip_decoder.h              | 2 ++
12740 src/liblzma/common/memcmplen.h                 | 2 ++
12741 src/liblzma/common/microlzma_decoder.c         | 2 ++
12742 src/liblzma/common/microlzma_encoder.c         | 2 ++
12743 src/liblzma/common/outqueue.c                  | 2 ++
12744 src/liblzma/common/outqueue.h                  | 2 ++
12745 src/liblzma/common/stream_buffer_decoder.c     | 2 ++
12746 src/liblzma/common/stream_buffer_encoder.c     | 2 ++
12747 src/liblzma/common/stream_decoder.c            | 2 ++
12748 src/liblzma/common/stream_decoder.h            | 2 ++
12749 src/liblzma/common/stream_decoder_mt.c         | 2 ++
12750 src/liblzma/common/stream_encoder.c            | 2 ++
12751 src/liblzma/common/stream_encoder_mt.c         | 2 ++
12752 src/liblzma/common/stream_flags_common.c       | 2 ++
12753 src/liblzma/common/stream_flags_common.h       | 2 ++
12754 src/liblzma/common/stream_flags_decoder.c      | 2 ++
12755 src/liblzma/common/stream_flags_encoder.c      | 2 ++
12756 src/liblzma/common/string_conversion.c         | 2 ++
12757 src/liblzma/common/vli_decoder.c               | 2 ++
12758 src/liblzma/common/vli_encoder.c               | 2 ++
12759 src/liblzma/common/vli_size.c                  | 2 ++
12760 src/liblzma/delta/Makefile.inc                 | 3 +--
12761 src/liblzma/delta/delta_common.c               | 2 ++
12762 src/liblzma/delta/delta_common.h               | 2 ++
12763 src/liblzma/delta/delta_decoder.c              | 2 ++
12764 src/liblzma/delta/delta_decoder.h              | 2 ++
12765 src/liblzma/delta/delta_encoder.c              | 2 ++
12766 src/liblzma/delta/delta_encoder.h              | 2 ++
12767 src/liblzma/delta/delta_private.h              | 2 ++
12768 src/liblzma/liblzma.pc.in                      | 3 +--
12769 src/liblzma/liblzma_generic.map                | 2 ++
12770 src/liblzma/liblzma_linux.map                  | 2 ++
12771 src/liblzma/liblzma_w32res.rc                  | 2 ++
12772 src/liblzma/lz/Makefile.inc                    | 3 +--
12773 src/liblzma/lz/lz_decoder.c                    | 2 ++
12774 src/liblzma/lz/lz_decoder.h                    | 2 ++
12775 src/liblzma/lz/lz_encoder.c                    | 2 ++
12776 src/liblzma/lz/lz_encoder.h                    | 2 ++
12777 src/liblzma/lz/lz_encoder_hash.h               | 2 ++
12778 src/liblzma/lz/lz_encoder_mf.c                 | 2 ++
12779 src/liblzma/lzma/Makefile.inc                  | 3 +--
12780 src/liblzma/lzma/fastpos.h                     | 2 ++
12781 src/liblzma/lzma/fastpos_tablegen.c            | 2 ++
12782 src/liblzma/lzma/lzma2_decoder.c               | 2 ++
12783 src/liblzma/lzma/lzma2_decoder.h               | 2 ++
12784 src/liblzma/lzma/lzma2_encoder.c               | 2 ++
12785 src/liblzma/lzma/lzma2_encoder.h               | 2 ++
12786 src/liblzma/lzma/lzma_common.h                 | 2 ++
12787 src/liblzma/lzma/lzma_decoder.c                | 2 ++
12788 src/liblzma/lzma/lzma_decoder.h                | 2 ++
12789 src/liblzma/lzma/lzma_encoder.c                | 2 ++
12790 src/liblzma/lzma/lzma_encoder.h                | 2 ++
12791 src/liblzma/lzma/lzma_encoder_optimum_fast.c   | 2 ++
12792 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++
12793 src/liblzma/lzma/lzma_encoder_presets.c        | 2 ++
12794 src/liblzma/lzma/lzma_encoder_private.h        | 2 ++
12795 src/liblzma/rangecoder/Makefile.inc            | 3 +--
12796 src/liblzma/rangecoder/price.h                 | 2 ++
12797 src/liblzma/rangecoder/price_tablegen.c        | 2 ++
12798 src/liblzma/rangecoder/range_common.h          | 2 ++
12799 src/liblzma/rangecoder/range_decoder.h         | 2 ++
12800 src/liblzma/rangecoder/range_encoder.h         | 2 ++
12801 src/liblzma/simple/Makefile.inc                | 3 +--
12802 src/liblzma/simple/arm.c                       | 2 ++
12803 src/liblzma/simple/arm64.c                     | 2 ++
12804 src/liblzma/simple/armthumb.c                  | 2 ++
12805 src/liblzma/simple/ia64.c                      | 2 ++
12806 src/liblzma/simple/powerpc.c                   | 2 ++
12807 src/liblzma/simple/riscv.c                     | 2 ++
12808 src/liblzma/simple/simple_coder.c              | 2 ++
12809 src/liblzma/simple/simple_coder.h              | 2 ++
12810 src/liblzma/simple/simple_decoder.c            | 2 ++
12811 src/liblzma/simple/simple_decoder.h            | 2 ++
12812 src/liblzma/simple/simple_encoder.c            | 2 ++
12813 src/liblzma/simple/simple_encoder.h            | 2 ++
12814 src/liblzma/simple/simple_private.h            | 2 ++
12815 src/liblzma/simple/sparc.c                     | 2 ++
12816 src/liblzma/simple/x86.c                       | 2 ++
12817 src/liblzma/validate_map.sh                    | 1 +
12818 src/lzmainfo/Makefile.am                       | 3 +--
12819 src/lzmainfo/lzmainfo.c                        | 2 ++
12820 src/lzmainfo/lzmainfo_w32res.rc                | 2 ++
12821 src/scripts/Makefile.am                        | 3 +--
12822 src/xz/Makefile.am                             | 3 +--
12823 src/xz/args.c                                  | 2 ++
12824 src/xz/args.h                                  | 2 ++
12825 src/xz/coder.c                                 | 2 ++
12826 src/xz/coder.h                                 | 2 ++
12827 src/xz/file_io.c                               | 2 ++
12828 src/xz/file_io.h                               | 2 ++
12829 src/xz/hardware.c                              | 2 ++
12830 src/xz/hardware.h                              | 2 ++
12831 src/xz/list.c                                  | 2 ++
12832 src/xz/list.h                                  | 2 ++
12833 src/xz/main.c                                  | 2 ++
12834 src/xz/main.h                                  | 2 ++
12835 src/xz/message.c                               | 2 ++
12836 src/xz/message.h                               | 2 ++
12837 src/xz/mytime.c                                | 2 ++
12838 src/xz/mytime.h                                | 2 ++
12839 src/xz/options.c                               | 2 ++
12840 src/xz/options.h                               | 2 ++
12841 src/xz/private.h                               | 2 ++
12842 src/xz/signals.c                               | 2 ++
12843 src/xz/signals.h                               | 2 ++
12844 src/xz/suffix.c                                | 2 ++
12845 src/xz/suffix.h                                | 2 ++
12846 src/xz/util.c                                  | 2 ++
12847 src/xz/util.h                                  | 2 ++
12848 src/xz/xz_w32res.rc                            | 2 ++
12849 src/xzdec/Makefile.am                          | 3 +--
12850 src/xzdec/lzmadec_w32res.rc                    | 2 ++
12851 src/xzdec/xzdec.c                              | 2 ++
12852 src/xzdec/xzdec_w32res.rc                      | 2 ++
12853 tests/Makefile.am                              | 3 +--
12854 tests/bcj_test.c                               | 2 ++
12855 tests/code_coverage.sh                         | 1 +
12856 tests/create_compress_files.c                  | 2 ++
12857 tests/ossfuzz/fuzz_common.h                    | 2 ++
12858 tests/ossfuzz/fuzz_decode_alone.c              | 2 ++
12859 tests/ossfuzz/fuzz_decode_stream.c             | 2 ++
12860 tests/ossfuzz/fuzz_encode_stream.c             | 2 ++
12861 tests/test_bcj_exact_size.c                    | 2 ++
12862 tests/test_block_header.c                      | 2 ++
12863 tests/test_check.c                             | 2 ++
12864 tests/test_compress.sh                         | 1 +
12865 tests/test_compress_generated_abc              | 1 +
12866 tests/test_compress_generated_random           | 1 +
12867 tests/test_compress_generated_text             | 1 +
12868 tests/test_compress_prepared_bcj_sparc         | 1 +
12869 tests/test_compress_prepared_bcj_x86           | 1 +
12870 tests/test_files.sh                            | 1 +
12871 tests/test_filter_flags.c                      | 2 ++
12872 tests/test_filter_str.c                        | 2 ++
12873 tests/test_hardware.c                          | 2 ++
12874 tests/test_index.c                             | 2 ++
12875 tests/test_index_hash.c                        | 2 ++
12876 tests/test_lzip_decoder.c                      | 2 ++
12877 tests/test_memlimit.c                          | 2 ++
12878 tests/test_scripts.sh                          | 1 +
12879 tests/test_stream_flags.c                      | 2 ++
12880 tests/test_suffix.sh                           | 1 +
12881 tests/test_vli.c                               | 2 ++
12882 tests/tests.h                                  | 2 ++
12883 tests/tuktest.h                                | 2 ++
12884 windows/build.bash                             | 3 ++-
12885 290 files changed, 588 insertions(+), 58 deletions(-)
12886
12887commit 23de53421ea258cde6a3c33a038b1e9d08f771d1
12888Author: Lasse Collin <lasse.collin@tukaani.org>
12889Date:   2024-02-12 23:25:54 +0200
12890
12891    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
12892
12893 src/liblzma/api/lzma.h | 10 ++++------
12894 1 file changed, 4 insertions(+), 6 deletions(-)
12895
12896commit 689e0228baeb95232430e90d628379db89583d71
12897Author: Lasse Collin <lasse.collin@tukaani.org>
12898Date:   2024-02-12 17:09:10 +0200
12899
12900    Change most public domain parts to 0BSD.
12901
12902    Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
12903    were not touched.
12904
12905    COPYING.0BSD was added.
12906
12907 .github/workflows/ci.yml                       |   3 -
12908 .github/workflows/windows-ci.yml               |   3 -
12909 CMakeLists.txt                                 |   3 -
12910 COPYING                                        | 112 ++++++++++++++-----------
12911 COPYING.0BSD                                   |  11 +++
12912 Makefile.am                                    |   3 -
12913 PACKAGERS                                      |  11 +--
12914 autogen.sh                                     |   3 -
12915 build-aux/ci_build.sh                          |   3 -
12916 build-aux/manconv.sh                           |   3 -
12917 build-aux/version.sh                           |   3 -
12918 cmake/remove-ordinals.cmake                    |   3 -
12919 cmake/tuklib_common.cmake                      |   3 -
12920 cmake/tuklib_cpucores.cmake                    |   3 -
12921 cmake/tuklib_integer.cmake                     |   3 -
12922 cmake/tuklib_large_file_support.cmake          |   3 -
12923 cmake/tuklib_mbstr.cmake                       |   3 -
12924 cmake/tuklib_physmem.cmake                     |   3 -
12925 cmake/tuklib_progname.cmake                    |   3 -
12926 configure.ac                                   |   3 -
12927 debug/Makefile.am                              |   3 -
12928 debug/crc32.c                                  |   3 -
12929 debug/full_flush.c                             |   3 -
12930 debug/hex2bin.c                                |   3 -
12931 debug/known_sizes.c                            |   3 -
12932 debug/memusage.c                               |   3 -
12933 debug/repeat.c                                 |   3 -
12934 debug/sync_flush.c                             |   3 -
12935 debug/translation.bash                         |   3 -
12936 doc/examples/01_compress_easy.c                |   3 -
12937 doc/examples/02_decompress.c                   |   3 -
12938 doc/examples/03_compress_custom.c              |   3 -
12939 doc/examples/04_compress_easy_mt.c             |   3 -
12940 doc/examples/11_file_info.c                    |   3 -
12941 doc/examples/Makefile                          |   3 -
12942 dos/Makefile                                   |   3 -
12943 doxygen/update-doxygen                         |   3 -
12944 extra/7z2lzma/7z2lzma.bash                     |   3 -
12945 m4/tuklib_common.m4                            |   3 -
12946 m4/tuklib_cpucores.m4                          |   3 -
12947 m4/tuklib_integer.m4                           |   3 -
12948 m4/tuklib_mbstr.m4                             |   3 -
12949 m4/tuklib_physmem.m4                           |   3 -
12950 m4/tuklib_progname.m4                          |   3 -
12951 po4a/update-po                                 |   3 -
12952 src/Makefile.am                                |   3 -
12953 src/common/common_w32res.rc                    |   3 -
12954 src/common/mythread.h                          |   3 -
12955 src/common/sysdefs.h                           |   3 -
12956 src/common/tuklib_common.h                     |   3 -
12957 src/common/tuklib_cpucores.c                   |   3 -
12958 src/common/tuklib_cpucores.h                   |   3 -
12959 src/common/tuklib_exit.c                       |   3 -
12960 src/common/tuklib_exit.h                       |   3 -
12961 src/common/tuklib_gettext.h                    |   3 -
12962 src/common/tuklib_integer.h                    |   3 -
12963 src/common/tuklib_mbstr.h                      |   3 -
12964 src/common/tuklib_mbstr_fw.c                   |   3 -
12965 src/common/tuklib_mbstr_width.c                |   3 -
12966 src/common/tuklib_open_stdxxx.c                |   3 -
12967 src/common/tuklib_open_stdxxx.h                |   3 -
12968 src/common/tuklib_physmem.c                    |   3 -
12969 src/common/tuklib_physmem.h                    |   3 -
12970 src/common/tuklib_progname.c                   |   3 -
12971 src/common/tuklib_progname.h                   |   3 -
12972 src/liblzma/Makefile.am                        |   3 -
12973 src/liblzma/api/Makefile.am                    |   3 -
12974 src/liblzma/api/lzma.h                         |  13 ++-
12975 src/liblzma/api/lzma/base.h                    |   3 -
12976 src/liblzma/api/lzma/bcj.h                     |   3 -
12977 src/liblzma/api/lzma/block.h                   |   3 -
12978 src/liblzma/api/lzma/check.h                   |   3 -
12979 src/liblzma/api/lzma/container.h               |   3 -
12980 src/liblzma/api/lzma/delta.h                   |   3 -
12981 src/liblzma/api/lzma/filter.h                  |   3 -
12982 src/liblzma/api/lzma/hardware.h                |   3 -
12983 src/liblzma/api/lzma/index.h                   |   3 -
12984 src/liblzma/api/lzma/index_hash.h              |   3 -
12985 src/liblzma/api/lzma/lzma12.h                  |   3 -
12986 src/liblzma/api/lzma/stream_flags.h            |   3 -
12987 src/liblzma/api/lzma/version.h                 |   3 -
12988 src/liblzma/api/lzma/vli.h                     |   3 -
12989 src/liblzma/check/Makefile.inc                 |   3 -
12990 src/liblzma/check/check.c                      |   3 -
12991 src/liblzma/check/check.h                      |   3 -
12992 src/liblzma/check/crc32_arm64.h                |   3 -
12993 src/liblzma/check/crc32_fast.c                 |   3 -
12994 src/liblzma/check/crc32_small.c                |   3 -
12995 src/liblzma/check/crc32_table.c                |   3 -
12996 src/liblzma/check/crc32_tablegen.c             |   3 -
12997 src/liblzma/check/crc32_x86.S                  |   3 -
12998 src/liblzma/check/crc64_fast.c                 |   3 -
12999 src/liblzma/check/crc64_small.c                |   3 -
13000 src/liblzma/check/crc64_table.c                |   3 -
13001 src/liblzma/check/crc64_tablegen.c             |   3 -
13002 src/liblzma/check/crc64_x86.S                  |   3 -
13003 src/liblzma/check/crc_common.h                 |   3 -
13004 src/liblzma/check/crc_x86_clmul.h              |   3 -
13005 src/liblzma/check/sha256.c                     |   3 -
13006 src/liblzma/common/Makefile.inc                |   3 -
13007 src/liblzma/common/alone_decoder.c             |   3 -
13008 src/liblzma/common/alone_decoder.h             |   3 -
13009 src/liblzma/common/alone_encoder.c             |   3 -
13010 src/liblzma/common/auto_decoder.c              |   3 -
13011 src/liblzma/common/block_buffer_decoder.c      |   3 -
13012 src/liblzma/common/block_buffer_encoder.c      |   3 -
13013 src/liblzma/common/block_buffer_encoder.h      |   3 -
13014 src/liblzma/common/block_decoder.c             |   3 -
13015 src/liblzma/common/block_decoder.h             |   3 -
13016 src/liblzma/common/block_encoder.c             |   3 -
13017 src/liblzma/common/block_encoder.h             |   3 -
13018 src/liblzma/common/block_header_decoder.c      |   3 -
13019 src/liblzma/common/block_header_encoder.c      |   3 -
13020 src/liblzma/common/block_util.c                |   3 -
13021 src/liblzma/common/common.c                    |   3 -
13022 src/liblzma/common/common.h                    |   3 -
13023 src/liblzma/common/easy_buffer_encoder.c       |   3 -
13024 src/liblzma/common/easy_decoder_memusage.c     |   3 -
13025 src/liblzma/common/easy_encoder.c              |   3 -
13026 src/liblzma/common/easy_encoder_memusage.c     |   3 -
13027 src/liblzma/common/easy_preset.c               |   3 -
13028 src/liblzma/common/easy_preset.h               |   3 -
13029 src/liblzma/common/file_info.c                 |   3 -
13030 src/liblzma/common/filter_buffer_decoder.c     |   3 -
13031 src/liblzma/common/filter_buffer_encoder.c     |   3 -
13032 src/liblzma/common/filter_common.c             |   3 -
13033 src/liblzma/common/filter_common.h             |   3 -
13034 src/liblzma/common/filter_decoder.c            |   3 -
13035 src/liblzma/common/filter_decoder.h            |   3 -
13036 src/liblzma/common/filter_encoder.c            |   3 -
13037 src/liblzma/common/filter_encoder.h            |   3 -
13038 src/liblzma/common/filter_flags_decoder.c      |   3 -
13039 src/liblzma/common/filter_flags_encoder.c      |   3 -
13040 src/liblzma/common/hardware_cputhreads.c       |   3 -
13041 src/liblzma/common/hardware_physmem.c          |   3 -
13042 src/liblzma/common/index.c                     |   3 -
13043 src/liblzma/common/index.h                     |   3 -
13044 src/liblzma/common/index_decoder.c             |   3 -
13045 src/liblzma/common/index_decoder.h             |   3 -
13046 src/liblzma/common/index_encoder.c             |   3 -
13047 src/liblzma/common/index_encoder.h             |   3 -
13048 src/liblzma/common/index_hash.c                |   3 -
13049 src/liblzma/common/lzip_decoder.c              |   3 -
13050 src/liblzma/common/lzip_decoder.h              |   3 -
13051 src/liblzma/common/memcmplen.h                 |   3 -
13052 src/liblzma/common/microlzma_decoder.c         |   3 -
13053 src/liblzma/common/microlzma_encoder.c         |   3 -
13054 src/liblzma/common/outqueue.c                  |   3 -
13055 src/liblzma/common/outqueue.h                  |   3 -
13056 src/liblzma/common/stream_buffer_decoder.c     |   3 -
13057 src/liblzma/common/stream_buffer_encoder.c     |   3 -
13058 src/liblzma/common/stream_decoder.c            |   3 -
13059 src/liblzma/common/stream_decoder.h            |   3 -
13060 src/liblzma/common/stream_decoder_mt.c         |   3 -
13061 src/liblzma/common/stream_encoder.c            |   3 -
13062 src/liblzma/common/stream_encoder_mt.c         |   3 -
13063 src/liblzma/common/stream_flags_common.c       |   3 -
13064 src/liblzma/common/stream_flags_common.h       |   3 -
13065 src/liblzma/common/stream_flags_decoder.c      |   3 -
13066 src/liblzma/common/stream_flags_encoder.c      |   3 -
13067 src/liblzma/common/string_conversion.c         |   3 -
13068 src/liblzma/common/vli_decoder.c               |   3 -
13069 src/liblzma/common/vli_encoder.c               |   3 -
13070 src/liblzma/common/vli_size.c                  |   3 -
13071 src/liblzma/delta/Makefile.inc                 |   3 -
13072 src/liblzma/delta/delta_common.c               |   3 -
13073 src/liblzma/delta/delta_common.h               |   3 -
13074 src/liblzma/delta/delta_decoder.c              |   3 -
13075 src/liblzma/delta/delta_decoder.h              |   3 -
13076 src/liblzma/delta/delta_encoder.c              |   3 -
13077 src/liblzma/delta/delta_encoder.h              |   3 -
13078 src/liblzma/delta/delta_private.h              |   3 -
13079 src/liblzma/liblzma.pc.in                      |   3 -
13080 src/liblzma/liblzma_w32res.rc                  |   3 -
13081 src/liblzma/lz/Makefile.inc                    |   3 -
13082 src/liblzma/lz/lz_decoder.c                    |   3 -
13083 src/liblzma/lz/lz_decoder.h                    |   3 -
13084 src/liblzma/lz/lz_encoder.c                    |   3 -
13085 src/liblzma/lz/lz_encoder.h                    |   3 -
13086 src/liblzma/lz/lz_encoder_hash.h               |   3 -
13087 src/liblzma/lz/lz_encoder_mf.c                 |   3 -
13088 src/liblzma/lzma/Makefile.inc                  |   3 -
13089 src/liblzma/lzma/fastpos.h                     |   3 -
13090 src/liblzma/lzma/fastpos_tablegen.c            |   3 -
13091 src/liblzma/lzma/lzma2_decoder.c               |   3 -
13092 src/liblzma/lzma/lzma2_decoder.h               |   3 -
13093 src/liblzma/lzma/lzma2_encoder.c               |   3 -
13094 src/liblzma/lzma/lzma2_encoder.h               |   3 -
13095 src/liblzma/lzma/lzma_common.h                 |   3 -
13096 src/liblzma/lzma/lzma_decoder.c                |   3 -
13097 src/liblzma/lzma/lzma_decoder.h                |   3 -
13098 src/liblzma/lzma/lzma_encoder.c                |   3 -
13099 src/liblzma/lzma/lzma_encoder.h                |   3 -
13100 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 -
13101 src/liblzma/lzma/lzma_encoder_optimum_normal.c |   3 -
13102 src/liblzma/lzma/lzma_encoder_presets.c        |   3 -
13103 src/liblzma/lzma/lzma_encoder_private.h        |   3 -
13104 src/liblzma/rangecoder/Makefile.inc            |   3 -
13105 src/liblzma/rangecoder/price.h                 |   3 -
13106 src/liblzma/rangecoder/price_tablegen.c        |   3 -
13107 src/liblzma/rangecoder/range_common.h          |   3 -
13108 src/liblzma/rangecoder/range_decoder.h         |   3 -
13109 src/liblzma/rangecoder/range_encoder.h         |   3 -
13110 src/liblzma/simple/Makefile.inc                |   3 -
13111 src/liblzma/simple/arm.c                       |   3 -
13112 src/liblzma/simple/arm64.c                     |   3 -
13113 src/liblzma/simple/armthumb.c                  |   3 -
13114 src/liblzma/simple/ia64.c                      |   3 -
13115 src/liblzma/simple/powerpc.c                   |   3 -
13116 src/liblzma/simple/riscv.c                     |   3 -
13117 src/liblzma/simple/simple_coder.c              |   3 -
13118 src/liblzma/simple/simple_coder.h              |   3 -
13119 src/liblzma/simple/simple_decoder.c            |   3 -
13120 src/liblzma/simple/simple_decoder.h            |   3 -
13121 src/liblzma/simple/simple_encoder.c            |   3 -
13122 src/liblzma/simple/simple_encoder.h            |   3 -
13123 src/liblzma/simple/simple_private.h            |   3 -
13124 src/liblzma/simple/sparc.c                     |   3 -
13125 src/liblzma/simple/x86.c                       |   3 -
13126 src/liblzma/validate_map.sh                    |   3 -
13127 src/lzmainfo/Makefile.am                       |   3 -
13128 src/lzmainfo/lzmainfo.1                        |   4 +-
13129 src/lzmainfo/lzmainfo.c                        |   3 -
13130 src/lzmainfo/lzmainfo_w32res.rc                |   3 -
13131 src/scripts/Makefile.am                        |   3 -
13132 src/scripts/xzless.1                           |   4 +-
13133 src/xz/Makefile.am                             |   3 -
13134 src/xz/args.c                                  |   3 -
13135 src/xz/args.h                                  |   3 -
13136 src/xz/coder.c                                 |   3 -
13137 src/xz/coder.h                                 |   3 -
13138 src/xz/file_io.c                               |   3 -
13139 src/xz/file_io.h                               |   3 -
13140 src/xz/hardware.c                              |   3 -
13141 src/xz/hardware.h                              |   3 -
13142 src/xz/list.c                                  |   3 -
13143 src/xz/list.h                                  |   3 -
13144 src/xz/main.c                                  |   3 -
13145 src/xz/main.h                                  |   3 -
13146 src/xz/message.c                               |   3 -
13147 src/xz/message.h                               |   3 -
13148 src/xz/mytime.c                                |   3 -
13149 src/xz/mytime.h                                |   3 -
13150 src/xz/options.c                               |   3 -
13151 src/xz/options.h                               |   3 -
13152 src/xz/private.h                               |   3 -
13153 src/xz/signals.c                               |   3 -
13154 src/xz/signals.h                               |   3 -
13155 src/xz/suffix.c                                |   3 -
13156 src/xz/suffix.h                                |   3 -
13157 src/xz/util.c                                  |   3 -
13158 src/xz/util.h                                  |   3 -
13159 src/xz/xz.1                                    |   4 +-
13160 src/xz/xz_w32res.rc                            |   3 -
13161 src/xzdec/Makefile.am                          |   3 -
13162 src/xzdec/lzmadec_w32res.rc                    |   3 -
13163 src/xzdec/xzdec.1                              |   4 +-
13164 src/xzdec/xzdec.c                              |   3 -
13165 src/xzdec/xzdec_w32res.rc                      |   3 -
13166 tests/Makefile.am                              |   3 -
13167 tests/bcj_test.c                               |   3 -
13168 tests/code_coverage.sh                         |   3 -
13169 tests/create_compress_files.c                  |   3 -
13170 tests/files/README                             |   3 +-
13171 tests/ossfuzz/fuzz_common.h                    |   3 -
13172 tests/ossfuzz/fuzz_decode_alone.c              |   3 -
13173 tests/ossfuzz/fuzz_decode_stream.c             |   3 -
13174 tests/ossfuzz/fuzz_encode_stream.c             |   3 -
13175 tests/test_bcj_exact_size.c                    |   3 -
13176 tests/test_block_header.c                      |   3 -
13177 tests/test_check.c                             |   3 -
13178 tests/test_compress.sh                         |   3 -
13179 tests/test_files.sh                            |   3 -
13180 tests/test_filter_flags.c                      |   3 -
13181 tests/test_filter_str.c                        |   3 -
13182 tests/test_hardware.c                          |   3 -
13183 tests/test_index.c                             |   3 -
13184 tests/test_index_hash.c                        |   3 -
13185 tests/test_lzip_decoder.c                      |   3 -
13186 tests/test_memlimit.c                          |   3 -
13187 tests/test_scripts.sh                          |   3 -
13188 tests/test_stream_flags.c                      |   3 -
13189 tests/test_suffix.sh                           |   3 -
13190 tests/test_vli.c                               |   3 -
13191 tests/tests.h                                  |   3 -
13192 tests/tuktest.h                                |   3 -
13193 windows/README-Windows.txt                     |  11 +--
13194 windows/build.bash                             |   3 -
13195 288 files changed, 100 insertions(+), 911 deletions(-)
13196
13197commit 76946dc4336c831fe2cc26696a035d807dd3cf13
13198Author: Lasse Collin <lasse.collin@tukaani.org>
13199Date:   2024-02-09 17:20:31 +0200
13200
13201    Fix SHA-256 authors.
13202
13203    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
13204    in 2007 had a comment in sha256.c that the code is based on
13205    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
13206    and the AUTHORS file was updated with information that the
13207    code had come from Crypto++ but via 7-Zip. I know I had viewed
13208    7-Zip's SHA-256 code but back then the C code has been identical
13209    enough with Crypto++, so I don't why I thought the author info
13210    would need that extra step via 7-Zip for this single file.
13211
13212    Another error is that I had mixed sha.* and shacal2.* files
13213    when checking for author info in Crypto++. The shacal2.* files
13214    aren't related to liblzma's sha256.c and thus Kevin Springle's
13215    code in Crypto++ isn't either.
13216
13217 AUTHORS                    |  6 ++----
13218 src/liblzma/check/sha256.c | 14 ++++----------
13219 2 files changed, 6 insertions(+), 14 deletions(-)
13220
13221commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851
13222Author: Lasse Collin <lasse.collin@tukaani.org>
13223Date:   2024-02-09 17:20:31 +0200
13224
13225    Remove macosx/build.sh.
13226
13227    It was last updated in 2013.
13228
13229 Makefile.am     |   1 -
13230 macosx/build.sh | 113 --------------------------------------------------------
13231 2 files changed, 114 deletions(-)
13232
13233commit eac2c3c67f9113a225fb6667df862edd30366931
13234Author: Lasse Collin <lasse.collin@tukaani.org>
13235Date:   2024-02-09 17:20:31 +0200
13236
13237    Doc: Remove doc/examples_old.
13238
13239    It was good to keep these around in parallel with the newer examples
13240    but I think it's OK to remove the old ones at this point.
13241
13242 Makefile.am                       |   5 --
13243 doc/examples_old/xz_pipe_comp.c   | 127 --------------------------------------
13244 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------
13245 3 files changed, 255 deletions(-)
13246
13247commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
13248Author: Jia Tan <jiat0218@gmail.com>
13249Date:   2024-02-13 22:38:58 +0800
13250
13251    Tests: Add RISC-V filter support in a few places.
13252
13253 tests/test_filter_flags.c | 6 ++++++
13254 tests/test_filter_str.c   | 6 ++++++
13255 2 files changed, 12 insertions(+)
13256
13257commit 45663443eb2b377e6171529380fee312f1adcdf4
13258Author: Jia Tan <jiat0218@gmail.com>
13259Date:   2024-02-13 22:37:07 +0800
13260
13261    liblzma: Fix build error if only RISC-V BCJ filter is enabled.
13262
13263    If any other BCJ filter was enabled for encoding or decoding, then this
13264    was not a problem.
13265
13266 src/liblzma/common/string_conversion.c | 4 +++-
13267 1 file changed, 3 insertions(+), 1 deletion(-)
13268
13269commit 2f15597d677bc35743c777d4cf3bfa698b478681
13270Author: Jia Tan <jiat0218@gmail.com>
13271Date:   2024-02-13 22:56:24 +0800
13272
13273    Translations: Update the Korean translation.
13274
13275 po/ko.po | 526 ++++++++++++++++++++++++++++++++++-----------------------------
13276 1 file changed, 284 insertions(+), 242 deletions(-)
13277
13278commit df873143ad1615c6d6aaa1bf8808b1676091dfe3
13279Author: Jia Tan <jiat0218@gmail.com>
13280Date:   2024-02-13 01:55:53 +0800
13281
13282    Translations: Update the Korean man page translations.
13283
13284 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++--------------------------
13285 1 file changed, 770 insertions(+), 605 deletions(-)
13286
13287commit b3f415eddb150341865a1af47959c3baba076b33
13288Author: Jia Tan <jiat0218@gmail.com>
13289Date:   2024-02-13 01:53:33 +0800
13290
13291    Translations: Update the Chinese (simplified) translation.
13292
13293 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++----------------------
13294 1 file changed, 268 insertions(+), 156 deletions(-)
13295
13296commit 9860d418d296eb3c721e5384fb367c0499b579c8
13297Author: Lasse Collin <lasse.collin@tukaani.org>
13298Date:   2024-02-09 23:21:01 +0200
13299
13300    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
13301
13302 src/scripts/xzless.in | 9 ++++++++-
13303 1 file changed, 8 insertions(+), 1 deletion(-)
13304
13305commit fd0692b0525e6c26b496492be9e2c865cab734f8
13306Author: Lasse Collin <lasse.collin@tukaani.org>
13307Date:   2024-02-09 23:00:05 +0200
13308
13309    xzless: Use --show-preproc-errors with "less" 632 and newer.
13310
13311    This makes "less" show a warning if a decompression error occurred.
13312
13313 src/scripts/xzless.in | 11 +++++++++--
13314 1 file changed, 9 insertions(+), 2 deletions(-)
13315
13316commit adb073da76a920b5a81e6b32254f4ddb054dc57a
13317Author: Jia Tan <jiat0218@gmail.com>
13318Date:   2024-02-09 23:59:54 +0800
13319
13320    liblzma: Fix typo discovered by codespell.
13321
13322 src/liblzma/check/crc32_arm64.h | 2 +-
13323 1 file changed, 1 insertion(+), 1 deletion(-)
13324
13325commit 55d9fc883d221cbace951a370f1fb144698f8c2e
13326Author: Jia Tan <jiat0218@gmail.com>
13327Date:   2024-02-09 20:01:06 +0800
13328
13329    Translations: Update the Swedish translation.
13330
13331 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++-------------------------
13332 1 file changed, 254 insertions(+), 166 deletions(-)
13333
13334commit 55ba4a1ea321499c805eedfa811ffde690bae311
13335Author: Jia Tan <jiat0218@gmail.com>
13336Date:   2024-02-08 20:09:04 +0800
13337
13338    Translations: Update the Spanish translation.
13339
13340 po/es.po | 22 +++++++++++-----------
13341 1 file changed, 11 insertions(+), 11 deletions(-)
13342
13343commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae
13344Author: Jia Tan <jiat0218@gmail.com>
13345Date:   2024-02-07 21:34:35 +0800
13346
13347    Translations: Update the Spanish translation.
13348
13349 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++-------------------------
13350 1 file changed, 253 insertions(+), 166 deletions(-)
13351
13352commit f4af2036bc625739d6d33d9e1fede583a25c3828
13353Author: Jia Tan <jiat0218@gmail.com>
13354Date:   2024-02-07 21:28:32 +0800
13355
13356    Translations: Update the Polish translation.
13357
13358 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++-------------------------
13359 1 file changed, 249 insertions(+), 162 deletions(-)
13360
13361commit e5e93bb816043c559cddf03a3b7ba13bec353ee4
13362Author: Jia Tan <jiat0218@gmail.com>
13363Date:   2024-02-07 19:40:12 +0800
13364
13365    Translations: Update the German translation.
13366
13367 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++-------------------------
13368 1 file changed, 242 insertions(+), 154 deletions(-)
13369
13370commit 28f18ff8e26902762fb007c13be235b4ac1ac071
13371Author: Jia Tan <jiat0218@gmail.com>
13372Date:   2024-02-07 19:27:25 +0800
13373
13374    Translations: Update the German man page translations.
13375
13376 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++---------------------------
13377 1 file changed, 752 insertions(+), 601 deletions(-)
13378
13379commit cabfbc7947da05aa5dfe39bec9759e076f940e3c
13380Author: Jia Tan <jiat0218@gmail.com>
13381Date:   2024-02-06 23:44:06 +0800
13382
13383    Translations: Update the Romanian translation.
13384
13385 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++-------------------------
13386 1 file changed, 252 insertions(+), 164 deletions(-)
13387
13388commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e
13389Author: Jia Tan <jiat0218@gmail.com>
13390Date:   2024-02-06 23:45:02 +0800
13391
13392    Translations: Update the Romanian man page translations.
13393
13394 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++---------------------------
13395 1 file changed, 966 insertions(+), 793 deletions(-)
13396
13397commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96
13398Author: Jia Tan <jiat0218@gmail.com>
13399Date:   2024-02-07 20:56:57 +0800
13400
13401    Translations: Update the Ukrainian translation.
13402
13403 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++-------------------------
13404 1 file changed, 242 insertions(+), 155 deletions(-)
13405
13406commit b3523250e9eef10b017473754c1e1c9e31f10374
13407Author: Jia Tan <jiat0218@gmail.com>
13408Date:   2024-02-06 23:30:03 +0800
13409
13410    Translations: Update the Ukrainian man page translations.
13411
13412 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++--------------------------
13413 1 file changed, 764 insertions(+), 599 deletions(-)
13414
13415commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d
13416Author: Jia Tan <jiat0218@gmail.com>
13417Date:   2024-02-02 01:39:28 +0800
13418
13419    Update AUTHORS.
13420
13421 AUTHORS | 3 ++-
13422 1 file changed, 2 insertions(+), 1 deletion(-)
13423
13424commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
13425Author: Jia Tan <jiat0218@gmail.com>
13426Date:   2024-02-02 01:38:51 +0800
13427
13428    liblzma: Update Authors list in crc32_arm64.h.
13429
13430 src/liblzma/check/crc32_arm64.h | 1 +
13431 1 file changed, 1 insertion(+)
13432
13433commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0
13434Author: Jia Tan <jiat0218@gmail.com>
13435Date:   2024-02-01 16:07:03 +0800
13436
13437    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table.
13438
13439    This was split from the prior commit so it could be easily applied to
13440    the 5.4 branch.
13441
13442    Closes: https://github.com/tukaani-project/xz/pull/77
13443
13444 src/liblzma/check/crc32_table.c | 4 ++--
13445 1 file changed, 2 insertions(+), 2 deletions(-)
13446
13447commit ca9015f4dead2c97b48f5a6933631b0a448b65b9
13448Author: Jia Tan <jiat0218@gmail.com>
13449Date:   2024-02-01 16:06:29 +0800
13450
13451    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table.
13452
13453    If liblzma is configured with --disable-clmul-crc
13454    CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the
13455    generic version must be used but the CRC tables were not included.
13456
13457 src/liblzma/check/crc64_table.c | 4 ++--
13458 1 file changed, 2 insertions(+), 2 deletions(-)
13459
13460commit 2f1552a91c825e87013925e1a67a0930e7aef592
13461Author: Jia Tan <jiat0218@gmail.com>
13462Date:   2024-01-23 18:02:13 +0800
13463
13464    liblzma: Only use ifunc in crcXX_fast.c if its needed.
13465
13466    The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC.
13467    With ARM64, ifunc is incompatible because it requires non-inline
13468    function calls for runtime detection.
13469
13470 src/liblzma/check/crc32_fast.c | 6 +++---
13471 src/liblzma/check/crc64_fast.c | 6 +++---
13472 2 files changed, 6 insertions(+), 6 deletions(-)
13473
13474commit 30a25f3742287697bc57a1bef86c19ecf5129322
13475Author: Jia Tan <jiat0218@gmail.com>
13476Date:   2024-01-22 22:08:45 +0800
13477
13478    Docs: Add --disable-arm64-crc32 description to INSTALL.
13479
13480 INSTALL | 12 +++++++++++-
13481 1 file changed, 11 insertions(+), 1 deletion(-)
13482
13483commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
13484Author: Jia Tan <jiat0218@gmail.com>
13485Date:   2024-01-22 21:36:09 +0800
13486
13487    liblzma: Omit CRC tables when not needed with ARM64 optimizations.
13488
13489    This is similar to the existing x86-64 CLMUL conditions to omit the
13490    tables. They were slightly refactored to improve readability.
13491
13492 src/liblzma/check/crc32_table.c | 18 +++++++++++++++---
13493 src/liblzma/check/crc64_table.c |  7 ++++++-
13494 src/liblzma/check/crc_common.h  |  5 ++++-
13495 3 files changed, 25 insertions(+), 5 deletions(-)
13496
13497commit 761f5b69a4c778c8bcb09279b845b07c28790575
13498Author: Jia Tan <jiat0218@gmail.com>
13499Date:   2024-01-22 20:54:56 +0800
13500
13501    liblzma: Rename crc32_aarch64.h to crc32_arm64.h.
13502
13503    Even though the proper name for the architecture is aarch64, this
13504    project uses ARM64 throughout. So the rename is for consistency.
13505
13506    Additionally, crc32_arm64.h was slightly refactored for the following
13507    changes:
13508
13509       * Added MSVC, FreeBSD, and macOS support in
13510         is_arch_extension_supported().
13511
13512       * crc32_arch_optimized() now checks the size when aligning the
13513         buffer.
13514
13515       * crc32_arch_optimized() loop conditions were slightly modified to
13516         avoid both decrementing the size and incrementing the buffer
13517         pointer.
13518
13519       * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and
13520         Clang name them differently.
13521
13522       * Minor spacing and comment changes.
13523
13524 CMakeLists.txt                    |   2 +-
13525 src/liblzma/check/Makefile.inc    |   2 +-
13526 src/liblzma/check/crc32_aarch64.h | 109 ----------------------------------
13527 src/liblzma/check/crc32_arm64.h   | 119 ++++++++++++++++++++++++++++++++++++++
13528 src/liblzma/check/crc32_fast.c    |   3 +-
13529 src/liblzma/check/crc64_fast.c    |   3 -
13530 6 files changed, 122 insertions(+), 116 deletions(-)
13531
13532commit 455a08609caa3223066a717fb01bfa42c5dba47d
13533Author: Jia Tan <jiat0218@gmail.com>
13534Date:   2024-01-22 20:49:30 +0800
13535
13536    liblzma: Refactor crc_common.h.
13537
13538    The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since
13539    the ARM64 optimizations will be different between CRC32 and CRC64.
13540
13541    For the same reason, CRC_ARCH_OPTIMIZED is split into
13542    CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED.
13543
13544    ifunc will only be used with x86-64 CLMUL because the runtime detection
13545    methods needed with ARM64 are not compatible with ifunc.
13546
13547 src/liblzma/check/crc32_fast.c |   8 +--
13548 src/liblzma/check/crc64_fast.c |   8 +--
13549 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++-------------
13550 3 files changed, 82 insertions(+), 42 deletions(-)
13551
13552commit 61908e816049af7a9f43ea804a57ee8570e2e644
13553Author: Jia Tan <jiat0218@gmail.com>
13554Date:   2024-01-22 00:42:28 +0800
13555
13556    CMake: Add support for ARM64 CRC32 instruction detection.
13557
13558 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
13559 1 file changed, 50 insertions(+)
13560
13561commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732
13562Author: Jia Tan <jiat0218@gmail.com>
13563Date:   2024-01-22 00:36:47 +0800
13564
13565    Build: Add support for ARM64 CRC32 instruction detection.
13566
13567    This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by
13568    default) for using the ARM64 CRC32 instruction. This can be disabled if
13569    one knows the binary will never need to run on an ARM64 machine
13570    with this instruction extension.
13571
13572 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
13573 1 file changed, 52 insertions(+)
13574
13575commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
13576Author: Chenxi Mao <chenxi.mao2013@gmail.com>
13577Date:   2024-01-09 17:23:11 +0800
13578
13579    Speed up CRC32 calculation on ARM64
13580
13581    The CRC32 instructions in ARM64 can calculate the CRC32 result
13582    for 8 bytes in a single operation, making the use of ARM64
13583    instructions much faster compared to the general CRC32 algorithm.
13584
13585    Optimized CRC32 will be enabled if ARM64 has CRC extension
13586    running on Linux.
13587
13588    Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
13589
13590 CMakeLists.txt                    |   1 +
13591 src/liblzma/check/Makefile.inc    |   3 +-
13592 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++
13593 src/liblzma/check/crc32_fast.c    |   5 +-
13594 src/liblzma/check/crc64_fast.c    |   5 +-
13595 src/liblzma/check/crc_common.h    |  16 +++---
13596 6 files changed, 130 insertions(+), 9 deletions(-)
13597
13598commit b43c3e48bf6097095eef36d44cdbec811074940a
13599Author: Jia Tan <jiat0218@gmail.com>
13600Date:   2024-01-26 19:05:51 +0800
13601
13602    Bump version number for 5.5.1alpha.
13603
13604 src/liblzma/api/lzma/version.h  | 2 +-
13605 src/liblzma/liblzma_generic.map | 2 +-
13606 src/liblzma/liblzma_linux.map   | 2 +-
13607 3 files changed, 3 insertions(+), 3 deletions(-)
13608
13609commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f
13610Author: Jia Tan <jiat0218@gmail.com>
13611Date:   2024-01-26 19:00:52 +0800
13612
13613    Add NEWS for 5.5.1alpha
13614
13615 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13616 1 file changed, 80 insertions(+)
13617
13618commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df
13619Author: Jia Tan <jiat0218@gmail.com>
13620Date:   2024-01-26 18:54:24 +0800
13621
13622    Add NEWS for 5.4.6.
13623
13624 NEWS | 22 ++++++++++++++++++++++
13625 1 file changed, 22 insertions(+)
13626
13627commit 93de7e751d17731315a899264f2a7239d7d2d316
13628Author: Lasse Collin <lasse.collin@tukaani.org>
13629Date:   2024-01-24 20:00:57 +0200
13630
13631    Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
13632
13633    The footer isn't a complete HTML file so having it in the doxygen
13634    directory is a tiny bit clearer.
13635
13636 Makefile.am                                    |   2 +-
13637 doc/{logo => }/xz-logo.png                     | Bin
13638 doxygen/Doxyfile                               |   4 ++--
13639 doc/logo/copyright.html => doxygen/footer.html |   0
13640 4 files changed, 3 insertions(+), 3 deletions(-)
13641
13642commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9
13643Author: Jia Tan <jiat0218@gmail.com>
13644Date:   2024-01-09 17:05:01 +0800
13645
13646    README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1.
13647
13648    The Overall documentation section (1.1) table spacing had to be adjusted
13649    since the filename was very long.
13650
13651 README | 38 ++++++++++++++++++++------------------
13652 1 file changed, 20 insertions(+), 18 deletions(-)
13653
13654commit e280470040b27c5e58d78b25b9e2bb71fc6c3882
13655Author: Jia Tan <jiat0218@gmail.com>
13656Date:   2024-01-09 16:56:16 +0800
13657
13658    Build: Add the logo and license to the release.
13659
13660 Makefile.am | 2 ++
13661 1 file changed, 2 insertions(+)
13662
13663commit b1ee6cf259bb49ce91abe9f622294524e37edf4c
13664Author: Jia Tan <jiat0218@gmail.com>
13665Date:   2024-01-09 16:44:42 +0800
13666
13667    COPYING: Add the license for the XZ logo.
13668
13669 COPYING              |   5 +
13670 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++
13671 2 files changed, 432 insertions(+)
13672
13673commit 31293ae7074802cc7286089a89c7b552d930c97f
13674Author: Jia Tan <jiat0218@gmail.com>
13675Date:   2024-01-09 16:40:56 +0800
13676
13677    Doxygen: Added the XZ logo and copyright information.
13678
13679    The PROJECT_LOGO field is now used to include the XZ logo. The footer
13680    of each page now lists the copyright information instead of the default
13681    footer. The license is also copied to statisfy the copyright and so the
13682    link in the documentation can be local.
13683
13684 doc/logo/copyright.html |  11 +++++++++++
13685 doc/logo/xz-logo.png    | Bin 0 -> 6771 bytes
13686 doxygen/Doxyfile        |   6 +++---
13687 3 files changed, 14 insertions(+), 3 deletions(-)
13688
13689commit 6daa4d0ea46a8441f21f609149f3633158bf4704
13690Author: Lasse Collin <lasse.collin@tukaani.org>
13691Date:   2024-01-23 18:29:28 +0200
13692
13693    xz: Use threaded mode by defaut (as if --threads=0 was used).
13694
13695    This hopefully does more good than bad:
13696
13697      + It's faster by default.
13698
13699      + Only the threaded compressor creates files that
13700        can be decompressed in threaded mode.
13701
13702      - Compression ratio is worse, usually not too much though.
13703        When it matters, -T1 must be used.
13704
13705      - Memory usage increases.
13706
13707      - Scripts that assume single-threaded mode but don't use -T1 will
13708        possibly use too much resources, for example, if they run
13709        multiple xz processes in parallel to compress multiple files.
13710
13711      - Output from single-threaded and multi-threaded compressors
13712        differ but such changes could happen for other reasons too
13713        (they just haven't happened since 5.0.0).
13714
13715 src/xz/hardware.c | 6 +++++-
13716 src/xz/message.c  | 4 ++--
13717 src/xz/xz.1       | 9 +++++++++
13718 3 files changed, 16 insertions(+), 3 deletions(-)
13719
13720commit a2dd2dc8e5307a7280bb99868bc478560facba2c
13721Author: Jia Tan <jiat0218@gmail.com>
13722Date:   2024-01-23 23:52:49 +0800
13723
13724    CI: Use RISC-V filter when building with BCJ support.
13725
13726 build-aux/ci_build.sh | 4 ++--
13727 1 file changed, 2 insertions(+), 2 deletions(-)
13728
13729commit 3060e1070b2421b26c0e17794c1307ec5622f11d
13730Author: Jia Tan <jiat0218@gmail.com>
13731Date:   2024-01-23 23:52:14 +0800
13732
13733    Tests: Use smaller dictionary size in RISC-V test files.
13734
13735 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes
13736 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes
13737 2 files changed, 0 insertions(+), 0 deletions(-)
13738
13739commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3
13740Author: Jia Tan <jiat0218@gmail.com>
13741Date:   2024-01-23 23:50:57 +0800
13742
13743    Tests: Skip RISC-V test files if decoder was not built.
13744
13745 tests/test_files.sh | 5 +++++
13746 1 file changed, 5 insertions(+)
13747
13748commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e
13749Author: Lasse Collin <lasse.collin@tukaani.org>
13750Date:   2024-01-23 16:11:54 +0200
13751
13752    xz: Man page: Add more examples of LZMA2 options with BCJ filters.
13753
13754 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++-------
13755 1 file changed, 31 insertions(+), 7 deletions(-)
13756
13757commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d
13758Author: Lasse Collin <lasse.collin@tukaani.org>
13759Date:   2024-01-23 00:09:48 +0200
13760
13761    liblzma: RISC-V filter: Use byte-by-byte access.
13762
13763    Not all RISC-V processors support fast unaligned access so
13764    it's better to read only one byte in the main loop. This can
13765    be faster even on x86-64 when compared to reading 32 bits at
13766    a time as half the time the address is only 16-bit aligned.
13767
13768    The downside is larger code size on archs that do support
13769    fast unaligned access.
13770
13771 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------
13772 1 file changed, 84 insertions(+), 30 deletions(-)
13773
13774commit db5eb5f563e8baa8d912ecf576f53391ff861596
13775Author: Jia Tan <jiat0218@gmail.com>
13776Date:   2024-01-22 23:33:39 +0800
13777
13778    xz: Update xz -lvv for RISC-V filter.
13779
13780    Version 5.6.0 will be shown, even though upcoming alphas and betas
13781    will be able to support this filter. 5.6.0 looks nicer in the output and
13782    people shouldn't be encouraged to use an unstable version in production
13783    in any way.
13784
13785 src/xz/list.c | 10 ++++++++++
13786 1 file changed, 10 insertions(+)
13787
13788commit e2870db5be1503e6a489fc3d47daf950d6f62723
13789Author: Jia Tan <jiat0218@gmail.com>
13790Date:   2024-01-22 23:33:39 +0800
13791
13792    Tests: Add two RISC-V Filter test files.
13793
13794    These test files achieve 100% code coverage in
13795    src/liblzma/simple/riscv.c. They contain all of the instructions that
13796    should be filtered and a few cases that should not.
13797
13798 tests/files/README                  |   8 ++++++++
13799 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes
13800 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes
13801 3 files changed, 8 insertions(+)
13802
13803commit b26a89869315ece2f6d9d10d32d45f672550f245
13804Author: Jia Tan <jiat0218@gmail.com>
13805Date:   2024-01-22 23:33:39 +0800
13806
13807    xz: Update message in --long-help for RISC-V Filter.
13808
13809 src/xz/message.c | 1 +
13810 1 file changed, 1 insertion(+)
13811
13812commit 283f778908873eca61388029fc418fa800c9d7d7
13813Author: Jia Tan <jiat0218@gmail.com>
13814Date:   2024-01-22 23:33:39 +0800
13815
13816    xz: Update the man page for the RISC-V Filter.
13817
13818    A special note was added to suggest using four-byte alignment when the
13819    compressed instruction extension is not present in a RISC-V binary.
13820
13821 src/xz/xz.1 | 3 ++-
13822 1 file changed, 2 insertions(+), 1 deletion(-)
13823
13824commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28
13825Author: Jia Tan <jiat0218@gmail.com>
13826Date:   2024-01-22 23:33:39 +0800
13827
13828    Tests: Add RISC-V Filter test in test_compress.sh.
13829
13830 tests/test_compress.sh | 1 +
13831 1 file changed, 1 insertion(+)
13832
13833commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4
13834Author: Jia Tan <jiat0218@gmail.com>
13835Date:   2024-01-22 23:33:39 +0800
13836
13837    liblzma: Update string_conversion.c to support RISC-V Filter.
13838
13839 src/liblzma/common/string_conversion.c | 5 +++++
13840 1 file changed, 5 insertions(+)
13841
13842commit 34372a5adbe5a7f6bf29498410ba3a463a720966
13843Author: Jia Tan <jiat0218@gmail.com>
13844Date:   2024-01-22 23:33:39 +0800
13845
13846    CMake: Support RISC-V BCJ Filter for encoding and decoding.
13847
13848 CMakeLists.txt | 1 +
13849 1 file changed, 1 insertion(+)
13850
13851commit 440a2eccb082dc13400c09e22308a58fef85146c
13852Author: Jia Tan <jiat0218@gmail.com>
13853Date:   2024-01-22 23:33:39 +0800
13854
13855    liblzma: Add RISC-V BCJ filter.
13856
13857    The new Filter ID is 0x0B.
13858
13859    Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
13860    the xz CLI updates, and the Autotools build system modifications.
13861
13862    Thanks to Igor Pavlov for his many contributions to the design of
13863    the filter.
13864
13865 configure.ac                        |   4 +-
13866 src/liblzma/api/lzma/bcj.h          |   5 +
13867 src/liblzma/common/filter_common.c  |   9 +
13868 src/liblzma/common/filter_decoder.c |   8 +
13869 src/liblzma/common/filter_encoder.c |  10 +
13870 src/liblzma/simple/Makefile.inc     |   4 +
13871 src/liblzma/simple/riscv.c          | 688 ++++++++++++++++++++++++++++++++++++
13872 src/liblzma/simple/simple_coder.h   |   9 +
13873 src/xz/args.c                       |   7 +
13874 9 files changed, 742 insertions(+), 2 deletions(-)
13875
13876commit 5540f4329bbdb4deb4850d4af48b18ad074bba19
13877Author: Jia Tan <jiat0218@gmail.com>
13878Date:   2024-01-19 23:08:14 +0800
13879
13880    Docs: Update .xz file format specification to 1.2.0.
13881
13882    The new RISC-V filter was added to the specification, in addition to
13883    updating the specification URL.
13884
13885 doc/xz-file-format.txt | 29 +++++++++++++++++------------
13886 1 file changed, 17 insertions(+), 12 deletions(-)
13887
13888commit 22d86192f8cf00902a1f90ee2a83ca600794459b
13889Author: Jia Tan <jiat0218@gmail.com>
13890Date:   2024-01-19 23:08:14 +0800
13891
13892    xz: Update website URLs in the man pages.
13893
13894 src/xz/xz.1       | 6 +++---
13895 src/xzdec/xzdec.1 | 4 ++--
13896 2 files changed, 5 insertions(+), 5 deletions(-)
13897
13898commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d
13899Author: Jia Tan <jiat0218@gmail.com>
13900Date:   2024-01-19 23:08:14 +0800
13901
13902    liblzma: Update website URL.
13903
13904 dos/config.h           | 2 +-
13905 src/liblzma/api/lzma.h | 6 +++---
13906 2 files changed, 4 insertions(+), 4 deletions(-)
13907
13908commit fce4758018f3a3589236f3fe7999fd9dd08c77e9
13909Author: Jia Tan <jiat0218@gmail.com>
13910Date:   2024-01-19 23:08:14 +0800
13911
13912    Docs: Update website URLs.
13913
13914 .github/SECURITY.md        |  2 +-
13915 COPYING                    |  3 ++-
13916 README                     |  4 ++--
13917 doc/faq.txt                |  2 +-
13918 doc/lzma-file-format.txt   | 18 +++++++++---------
13919 windows/README-Windows.txt |  3 ++-
13920 6 files changed, 17 insertions(+), 15 deletions(-)
13921
13922commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5
13923Author: Jia Tan <jiat0218@gmail.com>
13924Date:   2024-01-19 23:08:14 +0800
13925
13926    Build: Update website URL.
13927
13928 CMakeLists.txt | 2 +-
13929 configure.ac   | 2 +-
13930 2 files changed, 2 insertions(+), 2 deletions(-)
13931
13932commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b
13933Author: Lasse Collin <lasse.collin@tukaani.org>
13934Date:   2024-01-11 15:01:50 +0200
13935
13936    liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
13937
13938 src/liblzma/check/crc_x86_clmul.h | 6 ++++++
13939 1 file changed, 6 insertions(+)
13940
13941commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882
13942Author: Lasse Collin <lasse.collin@tukaani.org>
13943Date:   2024-01-11 15:22:36 +0200
13944
13945    liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
13946
13947    Now crc_simd_body() in crc_x86_clmul.h is only called once
13948    in a translation unit, we no longer need to be so cautious
13949    about ensuring the always-inline behavior.
13950
13951 src/liblzma/check/crc_common.h    | 20 --------------------
13952 src/liblzma/check/crc_x86_clmul.h |  2 +-
13953 2 files changed, 1 insertion(+), 21 deletions(-)
13954
13955commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20
13956Author: Lasse Collin <lasse.collin@tukaani.org>
13957Date:   2024-01-11 14:39:46 +0200
13958
13959    liblzma: CRC: Update CLMUL comments to more generic wording.
13960
13961 src/liblzma/check/crc32_fast.c | 16 ++++++++--------
13962 src/liblzma/check/crc64_fast.c | 10 +++++-----
13963 2 files changed, 13 insertions(+), 13 deletions(-)
13964
13965commit 66f080e8016129576536482ac377e2ecac7a2b90
13966Author: Lasse Collin <lasse.collin@tukaani.org>
13967Date:   2024-01-10 18:23:31 +0200
13968
13969    liblzma: Rename arch-specific CRC functions and macros.
13970
13971    CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL.
13972    CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used.
13973    Currently the x86 CLMUL implementations are the only arch-optimized
13974    versions, and these also use the CRC_x86_CLMUL macro to tell when
13975    crc_x86_clmul.h needs to be included.
13976
13977    is_clmul_supported() was renamed to is_arch_extension_supported().
13978    crc32_clmul() and crc64_clmul() were renamed to
13979    crc32_arch_optimized() and crc64_arch_optimized().
13980    This way the names make sense with arch-specific non-CLMUL
13981    implementations as well.
13982
13983 src/liblzma/check/crc32_fast.c    | 13 +++++++------
13984 src/liblzma/check/crc64_fast.c    | 13 +++++++------
13985 src/liblzma/check/crc_common.h    |  9 ++++++---
13986 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++----------
13987 4 files changed, 31 insertions(+), 25 deletions(-)
13988
13989commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99
13990Author: Lasse Collin <lasse.collin@tukaani.org>
13991Date:   2024-01-10 18:19:21 +0200
13992
13993    liblzma: Fix a comment in crc_common.h.
13994
13995 src/liblzma/check/crc_common.h | 3 ++-
13996 1 file changed, 2 insertions(+), 1 deletion(-)
13997
13998commit 419f55f9dfc2df8792902b8953d50690121afeea
13999Author: Lasse Collin <lasse.collin@tukaani.org>
14000Date:   2023-10-20 23:35:10 +0300
14001
14002    liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul().
14003
14004    A CLMUL-only build will have the crcxx_clmul() inlined into
14005    lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul()
14006    was needed. Notes about shared liblzma on ELF platforms:
14007
14008      - On platforms that support ifunc and -fvisibility=hidden, this
14009        was silly because CLMUL-only build would have that single extra
14010        jump instruction of extra overhead.
14011
14012      - On platforms that support neither -fvisibility=hidden nor linker
14013        version script (liblzma*.map), jumping to lzma_crcxx_clmul()
14014        would go via PLT so a few more instructions of overhead (still
14015        not a big issue but silly nevertheless).
14016
14017    There was a downside with static liblzma too: if an application only
14018    needs lzma_crc64(), static linking would make the linker include the
14019    CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though
14020    the CRC32 code wouldn't be needed, thus increasing code size of the
14021    executable (assuming that -ffunction-sections isn't used).
14022
14023    Also, now compilers are likely to inline crc_simd_body()
14024    even if they don't support the always_inline attribute
14025    (or MSVC's __forceinline). Quite possibly all compilers
14026    that build the code do support such an attribute. But now
14027    it likely isn't a problem even if the attribute wasn't supported.
14028
14029    Now all x86-specific stuff is in crc_x86_clmul.h. If other archs
14030    The other archs can then have their own headers with their own
14031    is_clmul_supported() and crcxx_clmul().
14032
14033    Another bonus is that the build system doesn't need to care if
14034    crc_clmul.c is needed.
14035
14036    is_clmul_supported() stays as inline function as it's not needed
14037    when doing a CLMUL-only build (avoids a warning about unused function).
14038
14039 CMakeLists.txt                                     |  7 +-
14040 configure.ac                                       |  1 -
14041 src/liblzma/check/Makefile.inc                     |  6 +-
14042 src/liblzma/check/crc32_fast.c                     |  9 ++-
14043 src/liblzma/check/crc64_fast.c                     |  9 ++-
14044 src/liblzma/check/crc_common.h                     | 64 ----------------
14045 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++----
14046 7 files changed, 91 insertions(+), 91 deletions(-)
14047
14048commit e3833e297dfb5021a197bda34ba2a795e30aaf8a
14049Author: Lasse Collin <lasse.collin@tukaani.org>
14050Date:   2023-10-21 00:06:52 +0300
14051
14052    liblzma: crc_clmul.c: Add crc_attr_target macro.
14053
14054    This reduces the number of the complex #if directives.
14055
14056 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++--------------
14057 1 file changed, 16 insertions(+), 14 deletions(-)
14058
14059commit d164ac0e62904126f7920c25f9a2875c8cd28b97
14060Author: Lasse Collin <lasse.collin@tukaani.org>
14061Date:   2023-10-20 22:49:48 +0300
14062
14063    liblzma: Simplify existing cases with lzma_attr_no_sanitize_address.
14064
14065 src/liblzma/check/crc_clmul.c | 12 +++---------
14066 1 file changed, 3 insertions(+), 9 deletions(-)
14067
14068commit 9523c1300d22fa715765c181cf991d14d6112fb1
14069Author: Lasse Collin <lasse.collin@tukaani.org>
14070Date:   2023-10-20 21:53:35 +0300
14071
14072    liblzma: #define crc_attr_no_sanitize_address in crc_common.h.
14073
14074 src/liblzma/check/crc_common.h | 10 ++++++++++
14075 1 file changed, 10 insertions(+)
14076
14077commit 93d144f0930821590524247bd174afd38003d7f0
14078Author: Lasse Collin <lasse.collin@tukaani.org>
14079Date:   2023-10-20 23:25:14 +0300
14080
14081    liblzma: CRC: Add empty lines.
14082
14083    And remove one too.
14084
14085 src/liblzma/check/crc32_fast.c | 2 ++
14086 src/liblzma/check/crc64_fast.c | 3 +++
14087 src/liblzma/check/crc_clmul.c  | 1 -
14088 3 files changed, 5 insertions(+), 1 deletion(-)
14089
14090commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae
14091Author: Lasse Collin <lasse.collin@tukaani.org>
14092Date:   2023-10-20 23:19:33 +0300
14093
14094    liblzma: crc_clmul.c: Tidy up the location of MSVC pragma.
14095
14096    It makes no difference in practice.
14097
14098 src/liblzma/check/crc_clmul.c | 4 ++--
14099 1 file changed, 2 insertions(+), 2 deletions(-)
14100
14101commit 15cf3f04f270d707a5c91cc0208b23b6db42b774
14102Author: Lasse Collin <lasse.collin@tukaani.org>
14103Date:   2023-12-20 21:16:24 +0200
14104
14105    Update THANKS.
14106
14107 THANKS | 1 +
14108 1 file changed, 1 insertion(+)
14109
14110commit cd64dd70d5665b6048829c45772d08606f44672e
14111Author: Lasse Collin <lasse.collin@tukaani.org>
14112Date:   2023-12-20 21:15:16 +0200
14113
14114    liblzma: Use 8-byte method in memcmplen.h on ARM64.
14115
14116    It requires fast unaligned access to 64-bit integers
14117    and a fast instruction to count leading zeros in
14118    a 64-bit integer (__builtin_ctzll()). This perhaps
14119    should be enabled on some other archs too.
14120
14121    Thanks to Chenxi Mao for the original patch:
14122    https://github.com/tukaani-project/xz/pull/75 (the first commit)
14123    According to the numbers there, this may improve encoding
14124    speed by about 3-5 %.
14125
14126    This enables the 8-byte method on MSVC ARM64 too which
14127    should work but wasn't tested.
14128
14129 src/liblzma/common/memcmplen.h | 18 ++++++++++--------
14130 1 file changed, 10 insertions(+), 8 deletions(-)
14131
14132commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606
14133Author: Lasse Collin <lasse.collin@tukaani.org>
14134Date:   2023-12-20 21:01:06 +0200
14135
14136    liblzma: Check also for __clang__ in memcmplen.h.
14137
14138    This change hopefully makes no practical difference as Clang
14139    likely was detected via __GNUC__ or _MSC_VER already.
14140
14141 src/liblzma/common/memcmplen.h | 3 ++-
14142 1 file changed, 2 insertions(+), 1 deletion(-)
14143
14144commit 133c5851eb917c6d99d0b623c1689c8518e65f38
14145Author: Jia Tan <jiat0218@gmail.com>
14146Date:   2023-12-21 21:39:08 +0800
14147
14148    Translations: Update the French translation.
14149
14150 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++--------------------------
14151 1 file changed, 370 insertions(+), 262 deletions(-)
14152
14153commit 710cbc186cad0ac601c38bd6bf31167648a5581e
14154Author: Jia Tan <jiat0218@gmail.com>
14155Date:   2023-12-21 16:39:53 +0800
14156
14157    xz: Add a comment to Capsicum sandbox setup.
14158
14159    This comment is repeated in xzdec.c to help remind us why all the
14160    capabilities are removed from stdin in certain situations.
14161
14162 src/xz/file_io.c | 1 +
14163 1 file changed, 1 insertion(+)
14164
14165commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12
14166Author: Jia Tan <jiat0218@gmail.com>
14167Date:   2023-12-20 22:19:19 +0800
14168
14169    Docs: Update --enable-sandbox option in INSTALL.
14170
14171    xzdec now also uses the sandbox when its configured.
14172
14173 INSTALL | 17 ++++++++++-------
14174 1 file changed, 10 insertions(+), 7 deletions(-)
14175
14176commit ebddf20214143a8e002ab897e95e880bb4c5ac44
14177Author: Jia Tan <jiat0218@gmail.com>
14178Date:   2023-12-20 22:39:13 +0800
14179
14180    CMake: Move sandbox detection outside of xz section.
14181
14182    The sandbox is now enabled for xzdec as well, so it no longer belongs
14183    in just the xz section. xz and xzdec are always built, except for older
14184    MSVC versions, so there isn't a need to conditionally show the sandbox
14185    configuration. CMake will do a little unecessary work on older MSVC
14186    versions that can't build xz or xzdec, but this is a very small
14187    downside.
14188
14189 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++--------------------------
14190 1 file changed, 98 insertions(+), 80 deletions(-)
14191
14192commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316
14193Author: Jia Tan <jiat0218@gmail.com>
14194Date:   2023-12-20 22:43:44 +0800
14195
14196    Build: Allow sandbox to be configured for just xzdec.
14197
14198    If xz is disabled, then xzdec can still use the sandbox.
14199
14200 configure.ac | 10 +++++-----
14201 1 file changed, 5 insertions(+), 5 deletions(-)
14202
14203commit d74fb5f060b76db709b50f5fd37490394e52f975
14204Author: Jia Tan <jiat0218@gmail.com>
14205Date:   2023-12-19 21:18:28 +0800
14206
14207    xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.
14208
14209    A very strict sandbox is used when the last file is decompressed. The
14210    likely most common use case of xzdec is to decompress a single file.
14211    The Pledge sandbox is applied to the entire process with slightly more
14212    relaxed promises, until the last file is processed.
14213
14214    Thanks to Christian Weisgerber for the initial patch adding Pledge
14215    sandboxing.
14216
14217 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++---
14218 1 file changed, 139 insertions(+), 7 deletions(-)
14219
14220commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5
14221Author: Jia Tan <jiat0218@gmail.com>
14222Date:   2023-12-20 21:31:34 +0800
14223
14224    liblzma: Initialize lzma_lz_encoder pointers with NULL.
14225
14226    This fixes the recent change to lzma_lz_encoder that used memzero
14227    instead of the NULL constant. On some compilers the NULL constant
14228    (always 0) may not equal the NULL pointer (this only needs to guarentee
14229    to not point to valid memory address).
14230
14231    Later code compares the pointers to the NULL pointer so we must
14232    initialize them with the NULL pointer instead of 0 to guarentee
14233    code correctness.
14234
14235 src/liblzma/lz/lz_encoder.c | 6 +++++-
14236 1 file changed, 5 insertions(+), 1 deletion(-)
14237
14238commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df
14239Author: Jia Tan <jiat0218@gmail.com>
14240Date:   2023-12-16 20:51:38 +0800
14241
14242    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
14243
14244    The first member of lzma_lz_encoder doesn't necessarily need to be set
14245    to NULL since it will always be set before anything tries to use it.
14246    However the function pointer members must be set to NULL since other
14247    functions rely on this NULL value to determine if this behavior is
14248    supported or not.
14249
14250    This fixes a somewhat serious bug, where the options_update() and
14251    set_out_limit() function pointers are not set to NULL. This seems to
14252    have been forgotten since these function pointers were added many years
14253    after the original two (code() and end()).
14254
14255    The problem is that by not setting this to NULL we are relying on the
14256    memory allocation to zero things out if lzma_filters_update() is called
14257    on a LZMA1 encoder. The function pointer for set_out_limit() is less
14258    serious because there is not an API function that could call this in an
14259    incorrect way. set_out_limit() is only called by the MicroLZMA encoder,
14260    which must use LZMA1 where set_out_limit() is always set. Its currently
14261    not possible to call set_out_limit() on an LZMA2 encoder at this time.
14262
14263    So calling lzma_filters_update() on an LZMA1 encoder had undefined
14264    behavior since its possible that memory could be manipulated so the
14265    options_update member pointed to a different instruction sequence.
14266
14267    This is unlikely to be a bug in an existing application since it relies
14268    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
14269    For instance, it does not affect xz because lzma_filters_update() can
14270    only be used when encoding to the .xz format.
14271
14272    This is fixed by using memzero() to set all members of lzma_lz_encoder
14273    to NULL after it is allocated. This ensures this mistake will not occur
14274    here in the future if any additional function pointers are added.
14275
14276 src/liblzma/lz/lz_encoder.c | 4 +---
14277 1 file changed, 1 insertion(+), 3 deletions(-)
14278
14279commit 1a1bb381db7a20cf86cb45a350e5cca35224d017
14280Author: Jia Tan <jiat0218@gmail.com>
14281Date:   2023-12-16 20:30:55 +0800
14282
14283    liblzma: Tweak a comment.
14284
14285 src/liblzma/lz/lz_encoder.c | 2 +-
14286 1 file changed, 1 insertion(+), 1 deletion(-)
14287
14288commit 55810780e04f759747b02683fb8020b8cd022a85
14289Author: Jia Tan <jiat0218@gmail.com>
14290Date:   2023-12-16 20:28:21 +0800
14291
14292    liblzma: Make parameter names in function definition match declaration.
14293
14294    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
14295    parameter name instead of "filters" (used by the declaration). "filters"
14296    is more clear since the parameter represents the list of filters passed
14297    to the raw encoder, each of which contains filter options.
14298
14299 src/liblzma/common/filter_encoder.c | 8 ++++----
14300 1 file changed, 4 insertions(+), 4 deletions(-)
14301
14302commit 5dad6f628af742bab826819760deb677597445f7
14303Author: Jia Tan <jiat0218@gmail.com>
14304Date:   2023-12-16 20:18:47 +0800
14305
14306    liblzma: Improve lzma encoder init function consistency.
14307
14308    lzma_encoder_init() did not check for NULL options, but
14309    lzma2_encoder_init() did. This is more of a code style improvement than
14310    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
14311    more similar.
14312
14313 src/liblzma/lzma/lzma_encoder.c | 3 +++
14314 1 file changed, 3 insertions(+)
14315
14316commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf
14317Author: Jia Tan <jiat0218@gmail.com>
14318Date:   2023-12-16 11:20:20 +0800
14319
14320    Docs: Update repository URL in Changelog.
14321
14322 ChangeLog | 2 +-
14323 1 file changed, 1 insertion(+), 1 deletion(-)
14324
14325commit f9b82bc64a9405e486575c65c1729229eb0a8198
14326Author: Jia Tan <jiat0218@gmail.com>
14327Date:   2023-12-15 16:56:31 +0800
14328
14329    CI: Update Upload Artifact Action.
14330
14331 .github/workflows/ci.yml         | 2 +-
14332 .github/workflows/windows-ci.yml | 2 +-
14333 2 files changed, 2 insertions(+), 2 deletions(-)
14334
14335commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e
14336Author: Jia Tan <jiat0218@gmail.com>
14337Date:   2023-12-07 21:48:07 +0800
14338
14339    Tests: Silence -Wsign-conversion warning on GCC version < 10.
14340
14341    Since GCC version 10, GCC no longer complains about simple implicit
14342    integer conversions with Arithmetic operators.
14343
14344    For instance:
14345
14346        uint8_t a = 5;
14347        uint32_t b = a + 5;
14348
14349    Give a warning on GCC 9 and earlier but this:
14350
14351        uint8_t a = 5;
14352        uint32_t b = (a + 5) * 2;
14353
14354    Gives a warning with GCC 10+.
14355
14356 tests/test_block_header.c | 2 +-
14357 1 file changed, 1 insertion(+), 1 deletion(-)
14358
14359commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8
14360Author: Jia Tan <jiat0218@gmail.com>
14361Date:   2023-12-06 18:39:03 +0800
14362
14363    Update THANKS.
14364
14365 THANKS | 1 +
14366 1 file changed, 1 insertion(+)
14367
14368commit ee2f48350099201694a7586e41d7aa2f09fc74da
14369Author: Jia Tan <jiat0218@gmail.com>
14370Date:   2023-12-06 18:30:25 +0800
14371
14372    Tests: Minor cleanups to OSS-Fuzz files.
14373
14374    Most of these fixes are small typos and tweaks. A few were caused by bad
14375    advice from me. Here is the summary of what is changed:
14376
14377    - Author line edits
14378
14379    - Small comment changes/additions
14380
14381    - Using the return value in the error messages in the fuzz targets'
14382      coder initialization code
14383
14384    - Removed fuzz_encode_stream.options. This set a max length, which may
14385      prevent some worthwhile code paths from being properly exercised.
14386
14387    - Removed the max_len option from fuzz_decode_stream.options for the
14388      same reason as fuzz_encode_stream. The alone decoder fuzz target still
14389      has this restriction.
14390
14391    - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping
14392      the properties static and varying the dictionary size, the properties
14393      are varied and the dictionary size is kept small. The dictionary size
14394      doesn't have much impact on the code paths but the properties do.
14395
14396    Closes: https://github.com/tukaani-project/xz/pull/73
14397
14398 tests/ossfuzz/Makefile                          |  3 ++
14399 tests/ossfuzz/config/fuzz_decode_stream.options |  1 -
14400 tests/ossfuzz/config/fuzz_lzma.dict             | 34 +++++++++++-----------
14401 tests/ossfuzz/fuzz_common.h                     | 16 +++++------
14402 tests/ossfuzz/fuzz_decode_alone.c               | 15 +++++-----
14403 tests/ossfuzz/fuzz_decode_stream.c              | 15 +++++-----
14404 tests/ossfuzz/fuzz_encode_stream.c              | 38 +++++++++++++++----------
14405 7 files changed, 66 insertions(+), 56 deletions(-)
14406
14407commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d
14408Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
14409Date:   2023-12-05 16:31:09 +0100
14410
14411    Tests: Add fuzz_encode_stream ossfuzz target.
14412
14413    This fuzz target handles .xz stream encoding. The first byte of input
14414    is used to dynamically set the preset level in order to increase the
14415    fuzz coverage of complex critical code paths.
14416
14417 tests/ossfuzz/config/fuzz_encode_stream.options |  2 +
14418 tests/ossfuzz/fuzz_encode_stream.c              | 79 +++++++++++++++++++++++++
14419 2 files changed, 81 insertions(+)
14420
14421commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48
14422Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
14423Date:   2023-12-04 17:23:24 +0100
14424
14425    Tests: Add fuzz_decode_alone OSS-Fuzz target
14426
14427    This fuzz target that handles LZMA alone decoding. A new fuzz
14428    dictionary .dict was also created with common LZMA header values to
14429    help speed up the discovery of valid headers.
14430
14431 tests/ossfuzz/config/fuzz_decode_alone.options |  3 ++
14432 tests/ossfuzz/config/fuzz_lzma.dict            | 22 ++++++++++++++
14433 tests/ossfuzz/fuzz_decode_alone.c              | 41 ++++++++++++++++++++++++++
14434 3 files changed, 66 insertions(+)
14435
14436commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a
14437Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
14438Date:   2023-12-04 17:21:29 +0100
14439
14440    Tests: Update OSS-Fuzz Makefile.
14441
14442    All .c files can be built as separate fuzz targets. This simplifies
14443    the Makefile by allowing us to use wildcards instead of having a
14444    Makefile target for each fuzz target.
14445
14446 tests/ossfuzz/Makefile | 13 +++++++++----
14447 1 file changed, 9 insertions(+), 4 deletions(-)
14448
14449commit 28ce6a1c2a74866c51f7996a6869679c236d3c94
14450Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
14451Date:   2023-12-04 17:20:08 +0100
14452
14453    Tests: Move common OSS-Fuzz target code to .h file.
14454
14455 tests/ossfuzz/fuzz_common.h        | 56 ++++++++++++++++++++++++++++++++++++
14456 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++----------------------------
14457 2 files changed, 71 insertions(+), 44 deletions(-)
14458
14459commit bf0521ea1591c25b9d510c1b8be86073e9d847c6
14460Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
14461Date:   2023-12-04 17:18:20 +0100
14462
14463    Tests: Rename OSS-Fuzz files.
14464
14465 tests/ossfuzz/config/fuzz.options                | 2 --
14466 tests/ossfuzz/config/fuzz_decode_stream.options  | 3 +++
14467 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0
14468 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c}   | 0
14469 4 files changed, 3 insertions(+), 2 deletions(-)
14470
14471commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7
14472Author: Jia Tan <jiat0218@gmail.com>
14473Date:   2023-11-30 23:10:43 +0800
14474
14475    Update THANKS.
14476
14477 THANKS | 1 +
14478 1 file changed, 1 insertion(+)
14479
14480commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
14481Author: Kian-Meng Ang <kianmeng@cpan.org>
14482Date:   2023-11-30 23:01:19 +0800
14483
14484    Tests: Fix typos
14485
14486 tests/test_index.c        | 2 +-
14487 tests/test_lzip_decoder.c | 4 ++--
14488 2 files changed, 3 insertions(+), 3 deletions(-)
14489
14490commit 424d46ead8cbc0da57f406b76926ec4ed47437f5
14491Author: Kian-Meng Ang <kianmeng@cpan.org>
14492Date:   2023-11-30 22:59:47 +0800
14493
14494    xz: Fix typo
14495
14496 src/xz/file_io.c | 2 +-
14497 1 file changed, 1 insertion(+), 1 deletion(-)
14498
14499commit 35558adf9c45e5597f2c8dbd969885dd484038d2
14500Author: Jia Tan <jiat0218@gmail.com>
14501Date:   2023-11-30 20:41:00 +0800
14502
14503    Update THANKS.
14504
14505 THANKS | 1 +
14506 1 file changed, 1 insertion(+)
14507
14508commit fd170e8557727bed6bec0518c16415064d972e4e
14509Author: Jia Tan <jiat0218@gmail.com>
14510Date:   2023-11-22 21:20:12 +0800
14511
14512    CI: Test musl libc builds on Ubuntu runner.
14513
14514 .github/workflows/ci.yml | 19 +++++++++++++++++--
14515 1 file changed, 17 insertions(+), 2 deletions(-)
14516
14517commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e
14518Author: Jia Tan <jiat0218@gmail.com>
14519Date:   2023-11-22 21:12:15 +0800
14520
14521    CI: Allow ci_build.sh to set a different C compiler.
14522
14523 build-aux/ci_build.sh | 11 ++++++++++-
14524 1 file changed, 10 insertions(+), 1 deletion(-)
14525
14526commit ff7badef53c2cd698d4b72b945f34dfd0835e13c
14527Author: Jia Tan <jiat0218@gmail.com>
14528Date:   2023-11-24 21:19:12 +0800
14529
14530    CMake: Use consistent indentation with check_c_source_compiles().
14531
14532 CMakeLists.txt | 4 ++--
14533 1 file changed, 2 insertions(+), 2 deletions(-)
14534
14535commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1
14536Author: Jia Tan <jiat0218@gmail.com>
14537Date:   2023-11-22 20:33:36 +0800
14538
14539    CMake: Change __attribute__((__ifunc__())) detection.
14540
14541    This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc
14542    detection changes that were made to the Autotools build.
14543
14544    Fixes: https://github.com/tukaani-project/xz/issues/70
14545
14546 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
14547 1 file changed, 45 insertions(+), 8 deletions(-)
14548
14549commit 20ecee40a0053fd16371ef0628046bf45e548d72
14550Author: Jia Tan <jiat0218@gmail.com>
14551Date:   2023-11-24 20:19:11 +0800
14552
14553    Docs: Update INSTALL for --enable_ifunc change.
14554
14555 INSTALL | 16 ++++++++--------
14556 1 file changed, 8 insertions(+), 8 deletions(-)
14557
14558commit ffb456593d695d70052a2f71c7a2e6269217d194
14559Author: Jia Tan <jiat0218@gmail.com>
14560Date:   2023-11-21 20:56:55 +0800
14561
14562    Build: Change --enable-ifunc handling.
14563
14564    Some compilers support __attribute__((__ifunc__())) even though the
14565    dynamic linker does not. The compiler is able to create the binary
14566    but it will fail on startup. So it is not enough to just test if
14567    the attribute is supported.
14568
14569    The default value for enable_ifunc is now auto, which will attempt
14570    to compile a program using __attribute__((__ifunc__())). There are
14571    additional checks in this program if glibc is being used or if it
14572    is running on FreeBSD.
14573
14574    Setting --enable-ifunc will skip this test and always enable
14575    __attribute__((__ifunc__())), even if is not supported.
14576
14577 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++-----------------
14578 1 file changed, 44 insertions(+), 17 deletions(-)
14579
14580commit 12b89bcc9915090eb42ae638e565af44b6832a23
14581Author: Lasse Collin <lasse.collin@tukaani.org>
14582Date:   2023-11-23 17:39:10 +0200
14583
14584    xz: Tweak a comment.
14585
14586 src/xz/util.c | 4 ++--
14587 1 file changed, 2 insertions(+), 2 deletions(-)
14588
14589commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e
14590Author: Jia Tan <jiat0218@gmail.com>
14591Date:   2023-11-23 22:13:39 +0800
14592
14593    xz: Use is_tty() in message.c.
14594
14595 src/xz/message.c | 7 +------
14596 1 file changed, 1 insertion(+), 6 deletions(-)
14597
14598commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e
14599Author: Jia Tan <jiat0218@gmail.com>
14600Date:   2023-11-23 22:04:35 +0800
14601
14602    xz: Create separate is_tty() function.
14603
14604    The new is_tty() will report if a file descriptor is a terminal or not.
14605    On POSIX systems, it is a wrapper around isatty(). However, the native
14606    Windows implementation of isatty() will return true for all character
14607    devices, not just terminals. So is_tty() has a special case for Windows
14608    so it can use alternative Windows API functions to determine if a file
14609    descriptor is a terminal.
14610
14611    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
14612    or write to non-terminal character devices because xz thought it was a
14613    terminal. For instance:
14614
14615        xz foo -c > /dev/null
14616
14617    would fail because /dev/null was assumed to be a terminal.
14618
14619 src/xz/util.c | 30 +++++++++++++++++++++++-------
14620 src/xz/util.h | 14 ++++++++++++++
14621 2 files changed, 37 insertions(+), 7 deletions(-)
14622
14623commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d
14624Author: Jia Tan <jiat0218@gmail.com>
14625Date:   2023-11-22 20:39:41 +0800
14626
14627    tuklib_integer: Fix typo discovered by codespell.
14628
14629    Based on internet dictionary searches, 'choise' is an outdated spelling
14630    of 'choice'.
14631
14632 src/common/tuklib_integer.h | 2 +-
14633 1 file changed, 1 insertion(+), 1 deletion(-)
14634
14635commit 659aca0d695807c0762d4101765189e4e33d1e2c
14636Author: Lasse Collin <lasse.collin@tukaani.org>
14637Date:   2023-11-17 19:35:19 +0200
14638
14639    xz: Move the check for --suffix with --format=raw a few lines earlier.
14640
14641    Now it reads from argv[] instead of args->arg_names.
14642
14643 src/xz/args.c | 44 ++++++++++++++++++++++----------------------
14644 1 file changed, 22 insertions(+), 22 deletions(-)
14645
14646commit ca278eb2b7f5a4940f5ab18955297b398d423824
14647Author: Jia Tan <jiat0218@gmail.com>
14648Date:   2023-11-17 20:35:11 +0800
14649
14650    Tests: Create test_suffix.sh.
14651
14652    This tests some complicated interactions with the --suffix= option.
14653    The suffix option must be used with --format=raw, but can optionally
14654    be used to override the default .xz suffix.
14655
14656    This test also verifies some recent bugs have been correctly solved
14657    and to hopefully avoid further regressions in the future.
14658
14659 tests/Makefile.am    |   2 +
14660 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++
14661 2 files changed, 191 insertions(+)
14662
14663commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce
14664Author: Jia Tan <jiat0218@gmail.com>
14665Date:   2023-11-17 20:19:26 +0800
14666
14667    xz: Fix a bug with --files and --files0 in raw mode without a suffix.
14668
14669    The following command caused a segmentation fault:
14670
14671        xz -Fraw --lzma1 --files=foo
14672
14673    when foo was a valid file. The usage of --files or --files0 was not
14674    being checked when compressing or decompressing in raw mode without a
14675    suffix. The suffix checking code was meant to validate that all files
14676    to be processed are "-" (if not writing to standard out), meaning the
14677    data is only coming from standard in. In this case, there were no file
14678    names to check since --files and --files0 store their file name in a
14679    different place.
14680
14681    Later code assumed the suffix was set and caused a segmentation fault.
14682    Now, the above command results in an error.
14683
14684 src/xz/args.c | 5 +++++
14685 1 file changed, 5 insertions(+)
14686
14687commit 299920bab9ae258a247366339264e8aefca9e3ce
14688Author: Jia Tan <jiat0218@gmail.com>
14689Date:   2023-11-17 20:04:58 +0800
14690
14691    Tests: Fix typo in a comment.
14692
14693 tests/test_files.sh | 2 +-
14694 1 file changed, 1 insertion(+), 1 deletion(-)
14695
14696commit f481523baac946fa3bc13d79186ffaf0c0b818a7
14697Author: Jia Tan <jiat0218@gmail.com>
14698Date:   2023-11-15 23:40:13 +0800
14699
14700    xz: Refactor suffix test with raw format.
14701
14702    The previous version set opt_stdout, but this caused an issue with
14703    copying an input file to standard out when decompressing an unknown file
14704    type. The following needs to result in an error:
14705
14706        echo foo | xz -df
14707
14708    since -c, --stdout is not used. This fixes the previous error by not
14709    setting opt_stdout.
14710
14711 src/xz/args.c | 38 +++++++++++++-------------------------
14712 1 file changed, 13 insertions(+), 25 deletions(-)
14713
14714commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6
14715Author: Jia Tan <jiat0218@gmail.com>
14716Date:   2023-11-14 20:27:46 +0800
14717
14718    xz: Move suffix check after stdout mode is detected.
14719
14720    This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0
14721    when the suffix check was initially moved. This caused a situation that
14722    previously worked:
14723
14724        echo foo | xz -Fraw --lzma1 | wc -c
14725
14726    to fail because the old code knew that this would write to standard out
14727    so a suffix was not needed.
14728
14729 src/xz/args.c | 16 ++++++++--------
14730 1 file changed, 8 insertions(+), 8 deletions(-)
14731
14732commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf
14733Author: Jia Tan <jiat0218@gmail.com>
14734Date:   2023-11-14 20:27:04 +0800
14735
14736    xz: Detect when all data will be written to standard out earlier.
14737
14738    If the -c, --stdout argument is not used, then we can still detect when
14739    the data will be written to standard out if all of the provided
14740    filenames are "-" (denoting standard in) or if no filenames are
14741    provided.
14742
14743 src/xz/args.c | 21 +++++++++++++++++++++
14744 1 file changed, 21 insertions(+)
14745
14746commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b
14747Author: Jia Tan <jiat0218@gmail.com>
14748Date:   2023-11-09 01:21:53 +0800
14749
14750    liblzma: Add missing comments to lz_encoder.h.
14751
14752 src/liblzma/lz/lz_encoder.h | 6 +++++-
14753 1 file changed, 5 insertions(+), 1 deletion(-)
14754
14755commit 5fe1450603dc625340b8b7866fb4a83ff748ad06
14756Author: Jia Tan <jiat0218@gmail.com>
14757Date:   2023-11-01 20:18:30 +0800
14758
14759    Add NEWS for 5.4.5.
14760
14761 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14762 1 file changed, 74 insertions(+)
14763
14764commit 46007049cd42e606543dbe650feb17bdf4469c29
14765Author: Lasse Collin <lasse.collin@tukaani.org>
14766Date:   2023-10-31 21:41:09 +0200
14767
14768    liblzma: Fix compilation of fastpos_tablegen.c.
14769
14770    The macro lzma_attr_visibility_hidden has to be defined to make
14771    fastpos.h usable. The visibility attribute is irrelevant to
14772    fastpos_tablegen.c so simply #define the macro to an empty value.
14773
14774    fastpos_tablegen.c is never built by the included build systems
14775    and so the problem wasn't noticed earlier. It's just a standalone
14776    program for generating fastpos_table.c.
14777
14778    Fixes: https://github.com/tukaani-project/xz/pull/69
14779    Thanks to GitHub user Jamaika1.
14780
14781 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
14782 1 file changed, 2 insertions(+)
14783
14784commit 148e20607e95781558bdfc823ecba07b7af4b590
14785Author: Jia Tan <jiat0218@gmail.com>
14786Date:   2023-10-31 21:51:40 +0800
14787
14788    Build: Fix text wrapping in an output message.
14789
14790 configure.ac | 9 +++++----
14791 1 file changed, 5 insertions(+), 4 deletions(-)
14792
14793commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c
14794Author: Lasse Collin <lasse.collin@tukaani.org>
14795Date:   2023-10-30 18:09:53 +0200
14796
14797    liblzma: Add a note why crc_always_inline exists for now.
14798
14799    Solaris Studio is a possible example (not tested) which
14800    supports the always_inline attribute but might not get
14801    detected by the common.h #ifdefs.
14802
14803 src/liblzma/check/crc_common.h | 5 +++++
14804 1 file changed, 5 insertions(+)
14805
14806commit e7a86b94cd247435ac96bc79ba528b690b9ca388
14807Author: Lasse Collin <lasse.collin@tukaani.org>
14808Date:   2023-10-22 17:59:11 +0300
14809
14810    liblzma: Use lzma_always_inline in memcmplen.h.
14811
14812 src/liblzma/common/memcmplen.h | 3 +--
14813 1 file changed, 1 insertion(+), 2 deletions(-)
14814
14815commit dcfe5632992fb7f06f921da13fcdd84f83d0d285
14816Author: Lasse Collin <lasse.collin@tukaani.org>
14817Date:   2023-10-30 17:43:03 +0200
14818
14819    liblzma: #define lzma_always_inline in common.h.
14820
14821 src/liblzma/common/common.h | 17 +++++++++++++++++
14822 1 file changed, 17 insertions(+)
14823
14824commit 41113fe30a47f6fd3e30cb4494dd538e86212edf
14825Author: Lasse Collin <lasse.collin@tukaani.org>
14826Date:   2023-10-22 17:15:32 +0300
14827
14828    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
14829
14830    These variables are internal to liblzma and not exposed in the API.
14831
14832 src/liblzma/check/check.h                | 7 +++++++
14833 src/liblzma/common/stream_flags_common.h | 3 +++
14834 src/liblzma/lz/lz_encoder_hash.h         | 1 +
14835 src/liblzma/lzma/fastpos.h               | 1 +
14836 src/liblzma/rangecoder/price.h           | 1 +
14837 5 files changed, 13 insertions(+)
14838
14839commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478
14840Author: Lasse Collin <lasse.collin@tukaani.org>
14841Date:   2023-10-22 17:08:39 +0300
14842
14843    liblzma: #define lzma_attr_visibility_hidden in common.h.
14844
14845    In ELF shared libs:
14846
14847    -fvisibility=hidden affects definitions of symbols but not
14848    declarations.[*] This doesn't affect direct calls to functions
14849    inside liblzma as a linker can replace a call to lzma_foo@plt
14850    with a call directly to lzma_foo when -fvisibility=hidden is used.
14851
14852    [*] It has to be like this because otherwise every installed
14853        header file would need to explictly set the symbol visibility
14854        to default.
14855
14856    When accessing extern variables that aren't defined in the
14857    same translation unit, compiler assumes that the variable has
14858    the default visibility and thus indirection is needed. Unlike
14859    function calls, linker cannot optimize this.
14860
14861    Using __attribute__((__visibility__("hidden"))) with the extern
14862    variable declarations tells the compiler that indirection isn't
14863    needed because the definition is in the same shared library.
14864
14865    About 15+ years ago, someone told me that it would be good if
14866    the CRC tables would be defined in the same translation unit
14867    as the C code of the CRC functions. While I understood that it
14868    could help a tiny amount, I didn't want to change the code because
14869    a separate translation unit for the CRC tables was needed for the
14870    x86 assembly code anyway. But when visibility attributes are
14871    supported, simply marking the extern declaration with the
14872    hidden attribute will get identical result. When there are only
14873    a few affected variables, this is trivial to do. I wish I had
14874    understood this back then already.
14875
14876 src/liblzma/common/common.h | 11 +++++++++++
14877 1 file changed, 11 insertions(+)
14878
14879commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8
14880Author: Lasse Collin <lasse.collin@tukaani.org>
14881Date:   2023-09-30 22:54:28 +0300
14882
14883    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
14884
14885    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
14886    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
14887    most recent GCC package (released 2021-02-02). The project might
14888    still be alive but majority of people have switched to MinGW-w64.
14889    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
14890    Building with MinGW is likely to still work but I haven't tested it
14891    in the recent years.
14892
14893 src/liblzma/api/lzma.h         | 4 ++--
14894 src/liblzma/api/lzma/version.h | 2 +-
14895 2 files changed, 3 insertions(+), 3 deletions(-)
14896
14897commit 597f49b61475438a43a417236989b2acc968a686
14898Author: Lasse Collin <lasse.collin@tukaani.org>
14899Date:   2023-09-27 00:58:17 +0300
14900
14901    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
14902
14903    A CMake option LARGE_FILE_SUPPORT is created if and only if
14904    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
14905
14906    This is needed on many 32-bit platforms and even with 64-bit builds
14907    with MinGW-w64 to get support for files larger than 2 GiB.
14908
14909 CMakeLists.txt                        |  7 ++++-
14910 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
14911 2 files changed, 58 insertions(+), 1 deletion(-)
14912
14913commit 1bc548b8210366e44ba35b0b11577a8e328c1228
14914Author: Lasse Collin <lasse.collin@tukaani.org>
14915Date:   2023-09-30 02:14:25 +0300
14916
14917    CMake: Generate and install liblzma.pc if not using MSVC.
14918
14919    Autotools based build uses -pthread and thus adds it to Libs.private
14920    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
14921    are available in libc so Libs.private doesn't get -pthread either.
14922
14923 CMakeLists.txt | 21 +++++++++++++++++++++
14924 1 file changed, 21 insertions(+)
14925
14926commit 2add71966f891d315105d6245f724ed4f43a4eff
14927Author: Lasse Collin <lasse.collin@tukaani.org>
14928Date:   2023-09-30 01:13:13 +0300
14929
14930    CMake: Rearrange the PACKAGE_ variables.
14931
14932    The windres workaround now replaces spaces with \x20 so
14933    the package name isn't repeated.
14934
14935    These changes will help with creation of liblzma.pc.
14936
14937 CMakeLists.txt | 26 +++++++++++++++-----------
14938 1 file changed, 15 insertions(+), 11 deletions(-)
14939
14940commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91
14941Author: Lasse Collin <lasse.collin@tukaani.org>
14942Date:   2023-09-29 20:46:11 +0300
14943
14944    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
14945
14946    It properly adds -DLZMA_API_STATIC when compiling code that
14947    will be linked against static liblzma. Having it there on
14948    systems other than Windows does no harm.
14949
14950    See: https://www.msys2.org/docs/pkgconfig/
14951
14952 src/liblzma/liblzma.pc.in | 1 +
14953 1 file changed, 1 insertion(+)
14954
14955commit 80e0750e3996c1c659e972ce9cf789ca2e99f702
14956Author: Lasse Collin <lasse.collin@tukaani.org>
14957Date:   2023-09-27 22:46:20 +0300
14958
14959    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
14960
14961 CMakeLists.txt              | 20 ++++++++++++++++++++
14962 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
14963 2 files changed, 46 insertions(+)
14964
14965commit 08d12595f486890cf601b87f36ee0ddbce57728e
14966Author: Lasse Collin <lasse.collin@tukaani.org>
14967Date:   2023-10-26 21:44:42 +0300
14968
14969    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
14970
14971    In this case they have identical values.
14972
14973 CMakeLists.txt | 2 +-
14974 1 file changed, 1 insertion(+), 1 deletion(-)
14975
14976commit e67aaf698de75c73443a5ec786781cbf2034461d
14977Author: Lasse Collin <lasse.collin@tukaani.org>
14978Date:   2023-10-01 19:10:57 +0300
14979
14980    CMake/Windows: Fix the import library filename.
14981
14982    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
14983    liblzma.dll and liblzma.dll.a.
14984
14985 CMakeLists.txt | 1 +
14986 1 file changed, 1 insertion(+)
14987
14988commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179
14989Author: Lasse Collin <lasse.collin@tukaani.org>
14990Date:   2023-10-25 19:13:25 +0300
14991
14992    Build: Detect -fsanitize= in CFLAGS and incompatible build options.
14993
14994    Now configure will fail if -fsanitize= is found in CFLAGS
14995    and sanitizer-incompatible ifunc or Landlock sandboxing
14996    would be used. These are incompatible with one or more sanitizers.
14997    It's simpler to reject all -fsanitize= uses instead of trying to
14998    pass those that might not cause problems.
14999
15000    CMake-based build was updated similarly. It lets the configuration
15001    finish (SEND_ERROR instead of FATAL_ERROR) so that both error
15002    messages can be seen at once.
15003
15004 CMakeLists.txt | 29 +++++++++++++++++++++++++++++
15005 configure.ac   | 37 +++++++++++++++++++++++++++++++++----
15006 2 files changed, 62 insertions(+), 4 deletions(-)
15007
15008commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468
15009Author: Jia Tan <jiat0218@gmail.com>
15010Date:   2023-10-24 00:50:08 +0800
15011
15012    CI: Disable sandboxing in fsanitize=address,undefined job.
15013
15014    The sandboxing on Linux now supports Landlock, which restricts all
15015    supported filesystem actions after xz opens the files it needs. The
15016    sandbox is only enabled when one file is input and we are writing to
15017    standard out. With fsanitize=address,undefined, the instrumentation
15018    needs to read additional files after the sandbox is in place. This
15019    forces all xz based test to fail, so the sandbox must instead be
15020    disabled.
15021
15022 .github/workflows/ci.yml | 8 ++++++--
15023 1 file changed, 6 insertions(+), 2 deletions(-)
15024
15025commit b1408987ea832e2760e478ae960a636df17a1363
15026Author: Jia Tan <jiat0218@gmail.com>
15027Date:   2023-10-24 00:15:39 +0800
15028
15029    CI: Allow disabling the sandbox in ci_build.sh.
15030
15031 build-aux/ci_build.sh | 5 ++++-
15032 1 file changed, 4 insertions(+), 1 deletion(-)
15033
15034commit 91c435cf1c7a1e893706d4d716dfd361621ed824
15035Author: Lasse Collin <lasse.collin@tukaani.org>
15036Date:   2023-10-11 19:47:44 +0300
15037
15038    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
15039
15040    Using set(ENABLE_THREADS "posix") is confusing because it sets
15041    a new normal variable and leaves the cache entry with the same
15042    name unchanged. The intent wasn't to change the cache entry so
15043    this switches to a different variable name.
15044
15045 CMakeLists.txt | 10 +++++++---
15046 1 file changed, 7 insertions(+), 3 deletions(-)
15047
15048commit fa1609eb9393ecd30decfed4891c907829f06710
15049Author: Lasse Collin <lasse.collin@tukaani.org>
15050Date:   2023-10-09 22:28:49 +0300
15051
15052    Docs: Update INSTALL about sandboxing support.
15053
15054 INSTALL | 7 ++++++-
15055 1 file changed, 6 insertions(+), 1 deletion(-)
15056
15057commit 8276c7f41c671eee4aa3239490658b23dcfd3021
15058Author: Lasse Collin <lasse.collin@tukaani.org>
15059Date:   2023-10-09 22:07:52 +0300
15060
15061    xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3).
15062
15063    It is enabled only when decompressing one file to stdout,
15064    similar to how Capsicum is used.
15065
15066    Landlock was added in Linux 5.13.
15067
15068 CMakeLists.txt   | 12 +++++++++++-
15069 configure.ac     | 11 ++++++++---
15070 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
15071 src/xz/main.c    | 19 +++++++++++++++++++
15072 src/xz/private.h |  3 ++-
15073 5 files changed, 98 insertions(+), 5 deletions(-)
15074
15075commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c
15076Author: Lasse Collin <lasse.collin@tukaani.org>
15077Date:   2023-10-09 21:12:31 +0300
15078
15079    CMake: Edit threading related messages.
15080
15081    It's mostly to change from "thread method" to "threading method".
15082
15083 CMakeLists.txt | 19 ++++++++++---------
15084 1 file changed, 10 insertions(+), 9 deletions(-)
15085
15086commit bf011352528ae3539ea7b780b45b96736ee57a99
15087Author: Lasse Collin <lasse.collin@tukaani.org>
15088Date:   2023-10-09 20:59:24 +0300
15089
15090    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
15091
15092    This way typos are caught quickly and compounding error messages
15093    are avoided (a single typo could cause more than one error).
15094
15095    This keeps using SEND_ERROR when the system is lacking a feature
15096    (like threading library or sandboxing method). This way the whole
15097    configuration log will be generated in case someone wishes to
15098    report a problem upstream.
15099
15100 CMakeLists.txt | 28 ++++++++++++++--------------
15101 1 file changed, 14 insertions(+), 14 deletions(-)
15102
15103commit 3f53870c249945d657ca3d75e0993e6267d71f75
15104Author: Lasse Collin <lasse.collin@tukaani.org>
15105Date:   2023-10-09 18:37:32 +0300
15106
15107    CMake: Add sandboxing support.
15108
15109 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
15110 1 file changed, 49 insertions(+), 1 deletion(-)
15111
15112commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0
15113Author: Lasse Collin <lasse.collin@tukaani.org>
15114Date:   2023-10-09 18:13:08 +0300
15115
15116    Simplify detection of Capsicum support.
15117
15118    This removes support for FreeBSD 10.0 and 10.1 which used
15119    <sys/capability.h> instead of <sys/capsicum.h>. Support for
15120    FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is
15121    required to enable Capsicum support.
15122
15123    This also removes support for Capsicum on Linux (libcaprights)
15124    which seems to have been unmaintained since 2017 and Linux 4.11:
15125    https://github.com/google/capsicum-linux
15126
15127 configure.ac            |  4 +--
15128 m4/ax_check_capsicum.m4 | 85 -------------------------------------------------
15129 src/xz/Makefile.am      |  2 +-
15130 src/xz/file_io.c        | 14 +++-----
15131 src/xz/private.h        |  2 +-
15132 5 files changed, 9 insertions(+), 98 deletions(-)
15133
15134commit c57858b60e186d020b2dbaf7aabd9b32c71da824
15135Author: Lasse Collin <lasse.collin@tukaani.org>
15136Date:   2023-09-25 01:46:36 +0300
15137
15138    xz/Windows: Allow clock_gettime with POSIX threads.
15139
15140    If winpthreads are used for threading, it's OK to use clock_gettime()
15141    from winpthreads too.
15142
15143 src/xz/mytime.c | 9 ++++++---
15144 1 file changed, 6 insertions(+), 3 deletions(-)
15145
15146commit dd32f628bb5541ef4e8ce66966ef456a1934084c
15147Author: Lasse Collin <lasse.collin@tukaani.org>
15148Date:   2023-09-25 01:39:26 +0300
15149
15150    mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads.
15151
15152    This might be almost useless but it doesn't need much extra code either.
15153
15154 src/common/mythread.h | 23 ++++++++++++++++++++++-
15155 1 file changed, 22 insertions(+), 1 deletion(-)
15156
15157commit 680e52cdd086e92691d8a0bca2c98815565f60ca
15158Author: Lasse Collin <lasse.collin@tukaani.org>
15159Date:   2023-09-23 03:06:36 +0300
15160
15161    CMake: Check for clock_gettime() even on Windows.
15162
15163    This mirrors configure.ac although currently MinGW-w64 builds
15164    don't use clock_gettime() even if it is found.
15165
15166 CMakeLists.txt | 44 +++++++++++++++++++++-----------------------
15167 1 file changed, 21 insertions(+), 23 deletions(-)
15168
15169commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419
15170Author: Lasse Collin <lasse.collin@tukaani.org>
15171Date:   2023-09-23 03:23:32 +0300
15172
15173    Build: Check for clock_gettime() even if not using POSIX threads.
15174
15175    See the new comment in the code.
15176
15177    This also makes the check for clock_gettime() run with MinGW-w64
15178    with which we don't want to use clock_gettime(). The previous
15179    commit already took care of this situation.
15180
15181 configure.ac | 31 ++++++++++++++++++-------------
15182 1 file changed, 18 insertions(+), 13 deletions(-)
15183
15184commit 46fd991cd2808ef62554853864c946232e7547f0
15185Author: Lasse Collin <lasse.collin@tukaani.org>
15186Date:   2023-09-24 22:58:53 +0300
15187
15188    xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64.
15189
15190    This commit alone doesn't change anything in the real-world:
15191
15192      - configure.ac currently checks for clock_gettime() only
15193        when using pthreads.
15194
15195      - CMakeLists.txt doesn't check for clock_gettime() on Windows.
15196
15197    So clock_gettime() wasn't used with MinGW-w64 before either.
15198
15199    clock_gettime() provides monotonic time and it's better than
15200    gettimeofday() in this sense. But clock_gettime() is defined
15201    in winpthreads, and liblzma or xz needs nothing else from
15202    winpthreads. By avoiding clock_gettime(), we avoid the dependency on
15203    libwinpthread-1.dll or the need to link against the static version.
15204
15205    As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be
15206    faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution
15207    is more than good enough for the progress indicator in xz.
15208
15209 src/xz/mytime.c | 9 +++++++--
15210 1 file changed, 7 insertions(+), 2 deletions(-)
15211
15212commit cdb4d91f2464b50c985ef7b9517314ea237ddda7
15213Author: Lasse Collin <lasse.collin@tukaani.org>
15214Date:   2023-09-24 00:21:22 +0300
15215
15216    xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
15217
15218 src/xz/mytime.c | 14 +++++++++++---
15219 1 file changed, 11 insertions(+), 3 deletions(-)
15220
15221commit 988e09f27b9b04a43d45d10f92782e0092ee27a9
15222Author: Jia Tan <jiat0218@gmail.com>
15223Date:   2023-10-20 19:17:46 +0800
15224
15225    liblzma: Move is_clmul_supported() back to crc_common.h.
15226
15227    This partially reverts creating crc_clmul.c
15228    (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
15229    was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
15230    caused a problem when the function call to lzma_is_clmul_supported()
15231    results in a call through the PLT. ifunc resolvers run very early in
15232    the dynamic loading sequence, so the PLT may not be setup properly at
15233    this point. Whether the PLT is used or not for
15234    lzma_is_clmul_supported() depened upon the compiler-toolchain used and
15235    flags.
15236
15237    In liblzma compiled with GCC, for instance, GCC will go through the PLT
15238    for function calls internal to liblzma if the version scripts and
15239    symbol visibility hiding are not used. If lazy-binding is disabled,
15240    then it would have made any program linked with liblzma fail during
15241    dynamic loading in the ifunc resolver.
15242
15243 src/liblzma/check/crc32_fast.c |  2 +-
15244 src/liblzma/check/crc64_fast.c |  2 +-
15245 src/liblzma/check/crc_clmul.c  | 45 ------------------------------------
15246 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++---
15247 4 files changed, 51 insertions(+), 50 deletions(-)
15248
15249commit 105c7ca90d4152942e0798580a37f736d02faa22
15250Author: Jia Tan <jiat0218@gmail.com>
15251Date:   2023-10-19 16:23:32 +0800
15252
15253    Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc.
15254
15255    Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be
15256    set. Because of this, it makes the recent change to conditionally
15257    compile check/crc_clmul.c appear wrong since that file has CLMUL
15258    implementations for both CRC32 and CRC64.
15259
15260 src/liblzma/check/Makefile.inc | 4 ++--
15261 1 file changed, 2 insertions(+), 2 deletions(-)
15262
15263commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c
15264Author: Jia Tan <jiat0218@gmail.com>
15265Date:   2023-10-19 16:09:01 +0800
15266
15267    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
15268
15269    The option is enabled by default, but will only be visible to a user
15270    listing cache variables or using a CMake GUI application if the
15271    immintrin.h header file is found.
15272
15273    This mirrors our Autotools build --disable-clmul-crc functionality.
15274
15275 CMakeLists.txt | 44 +++++++++++++++++++++++++-------------------
15276 1 file changed, 25 insertions(+), 19 deletions(-)
15277
15278commit c60b25569d414bb73b705977a4dd342f8f9f1965
15279Author: Jia Tan <jiat0218@gmail.com>
15280Date:   2023-10-19 00:22:50 +0800
15281
15282    liblzma: Fix -fsanitize=address failure with crc_clmul functions.
15283
15284    After forcing crc_simd_body() to always be inlined it caused
15285    -fsanitize=address to fail for lzma_crc32_clmul() and
15286    lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added
15287    to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from
15288    crc_simd_body(). ASAN and inline functions behavior has changed over
15289    the years for GCC specifically, so while strictly required we will
15290    keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in
15291    case this becomes a requirement in the future.
15292
15293    Older GCC versions refuse to inline a function with ASAN if the
15294    caller and callee do not agree on sanitization flags
15295    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the
15296    function was forced to be inlined, it will not compile if the callee
15297    function has __no_sanitize_address__ but the caller doesn't.
15298
15299 src/liblzma/check/crc_clmul.c | 6 ++++++
15300 1 file changed, 6 insertions(+)
15301
15302commit 9a78971261bc67622cbd7dae02f6966968ac1393
15303Author: Lasse Collin <lasse.collin@tukaani.org>
15304Date:   2023-10-14 20:16:13 +0300
15305
15306    tuklib_integer: Update the CMake test for fast unaligned access.
15307
15308 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++----------
15309 1 file changed, 54 insertions(+), 15 deletions(-)
15310
15311commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4
15312Author: Lasse Collin <lasse.collin@tukaani.org>
15313Date:   2023-09-23 23:28:48 +0300
15314
15315    Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V.
15316
15317    PowerPC64LE wasn't tested but it seems like a safe change.
15318    POWER8 supports unaligned access in little endian mode. Testing
15319    on godbolt.org shows that GCC uses unaligned access by default.
15320
15321    The RISC-V macro __riscv_misaligned_fast is very new and not
15322    in any stable compiler release yet.
15323
15324    Documentation in INSTALL was updated to match.
15325
15326    Documentation about an autodetection bug when using ARM64 GCC
15327    with -mstrict-align was added to INSTALL.
15328
15329    CMake files weren't updated yet.
15330
15331 INSTALL              | 39 +++++++++++++++++++++++++++++++++++++--
15332 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++-------
15333 2 files changed, 64 insertions(+), 9 deletions(-)
15334
15335commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2
15336Author: Lasse Collin <lasse.collin@tukaani.org>
15337Date:   2023-10-14 17:56:59 +0300
15338
15339    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
15340
15341    In XZ Utils context this doesn't matter much because
15342    unaligned reads and writes aren't used in hot code
15343    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
15344
15345 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
15346 1 file changed, 189 insertions(+), 67 deletions(-)
15347
15348commit 6828242735cbf61b93d140383336e1e51a006f2d
15349Author: Lasse Collin <lasse.collin@tukaani.org>
15350Date:   2023-09-23 02:21:49 +0300
15351
15352    tuklib_integer: Add missing write64be and write64le fallback functions.
15353
15354 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
15355 1 file changed, 34 insertions(+)
15356
15357commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416
15358Author: Jia Tan <jiat0218@gmail.com>
15359Date:   2023-10-18 19:57:10 +0800
15360
15361    liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul().
15362
15363    After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul()
15364    has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the
15365    optimizations disabled.
15366
15367 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++---------------
15368 1 file changed, 15 insertions(+), 15 deletions(-)
15369
15370commit 5ce0f7a48bdf5c3b45430850a4487307afac6143
15371Author: Lasse Collin <lasse.collin@tukaani.org>
15372Date:   2023-10-18 14:30:00 +0300
15373
15374    liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc.
15375
15376 src/liblzma/check/crc_common.h | 4 +++-
15377 1 file changed, 3 insertions(+), 1 deletion(-)
15378
15379commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b
15380Author: Lasse Collin <lasse.collin@tukaani.org>
15381Date:   2023-10-17 21:53:11 +0300
15382
15383    liblzma: Include common.h in crc_common.h.
15384
15385    crc_common.h depends on common.h. The headers include common.h except
15386    when there is a reason to not do so.
15387
15388 src/liblzma/check/crc_clmul.c  | 1 -
15389 src/liblzma/check/crc_common.h | 3 +++
15390 2 files changed, 3 insertions(+), 1 deletion(-)
15391
15392commit e13b7947b92355c334edd594295d3a2c99c4bca1
15393Author: Jia Tan <jiat0218@gmail.com>
15394Date:   2023-10-18 01:23:26 +0800
15395
15396    liblzma: Add include guards to crc_common.h.
15397
15398 src/liblzma/check/crc_common.h | 5 +++++
15399 1 file changed, 5 insertions(+)
15400
15401commit 40abd88afcc61a8157fcd12d78d491caeb8e12be
15402Author: Jia Tan <jiat0218@gmail.com>
15403Date:   2023-10-18 22:50:25 +0800
15404
15405    liblzma: Add the crc_always_inline macro to crc_simd_body().
15406
15407    Forcing this to be inline has a significant speed improvement at the
15408    cost of a few repeated instructions. The compilers tested on did not
15409    inline this function since it is large and is used twice in the same
15410    translation unit.
15411
15412 src/liblzma/check/crc_clmul.c | 2 +-
15413 1 file changed, 1 insertion(+), 1 deletion(-)
15414
15415commit a5966c276bd6fa975f0389f8a8dc61393de750b0
15416Author: Jia Tan <jiat0218@gmail.com>
15417Date:   2023-10-18 22:48:19 +0800
15418
15419    liblzma: Create crc_always_inline macro.
15420
15421    This macro must be used instead of the inline keyword. On MSVC, it is
15422    a replacement for __forceinline which is an MSVC specific keyword that
15423    should not be used with inline (it will issue a warning if it is).
15424
15425    It does not use a build system check to determine if
15426    __attribute__((__always_inline__)) since all compilers that can use
15427    CLMUL extensions (except the special case for MSVC) should support this
15428    attribute. If this assumption is incorrect then it will result in a bug
15429    report instead of silently producing slow code.
15430
15431 src/liblzma/check/crc_common.h | 15 +++++++++++++++
15432 1 file changed, 15 insertions(+)
15433
15434commit 96b663f67c0e738a99ba8f35d9f4ced9add74544
15435Author: Jia Tan <jiat0218@gmail.com>
15436Date:   2023-10-14 13:23:23 +0800
15437
15438    liblzma: Refactor CRC comments.
15439
15440    A detailed description of the three dispatch methods was added. Also,
15441    duplicated comments now only appear in crc32_fast.c or were removed from
15442    both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c.
15443
15444 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++-------------
15445 src/liblzma/check/crc64_fast.c | 61 ++++++----------------------------------
15446 2 files changed, 53 insertions(+), 72 deletions(-)
15447
15448commit 8c0f9376f58c0696d5d6719705164d35542dd891
15449Author: Jia Tan <jiat0218@gmail.com>
15450Date:   2023-10-14 12:17:57 +0800
15451
15452    liblzma: Create crc_clmul.c.
15453
15454    Both crc32_clmul() and crc64_clmul() are now exported from
15455    crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This
15456    ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is
15457    not duplicated between crc32_fast.c and crc64_fast.c.
15458
15459    Also, it encapsulates the complexity of the CLMUL implementations into a
15460    single file and reduces the complexity of crc32_fast.c and crc64_fast.c.
15461    Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and
15462    crc_common.h.
15463
15464    During the conversion, various cleanups were applied to code (thanks to
15465    Lasse Collin) including:
15466
15467    - Require using semicolons with MASK_/L/H/LH macros.
15468    - Variable typing and const handling improvements.
15469    - Improvements to comments.
15470    - Fixes to the pragmas used.
15471    - Removed unneeded variables.
15472    - Whitespace improvements.
15473    - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling.
15474    - Silenced warnings and removed the need for some #pragmas
15475
15476 CMakeLists.txt                 |   6 +-
15477 configure.ac                   |   6 +-
15478 src/liblzma/check/Makefile.inc |   3 +
15479 src/liblzma/check/crc32_fast.c | 120 +-----------
15480 src/liblzma/check/crc64_fast.c | 128 +------------
15481 src/liblzma/check/crc_clmul.c  | 414 +++++++++++++++++++++++++++++++++++++++++
15482 src/liblzma/check/crc_common.h | 190 +------------------
15483 7 files changed, 444 insertions(+), 423 deletions(-)
15484
15485commit a3ebc2c516b09616638060806c841bd4bcf7bce3
15486Author: Jia Tan <jiat0218@gmail.com>
15487Date:   2023-10-14 10:23:03 +0800
15488
15489    liblzma: Define CRC_USE_IFUNC in crc_common.h.
15490
15491    When ifunc is supported, we can define a simpler macro instead of
15492    repeating the more complex check in both crc32_fast.c and crc64_fast.c.
15493
15494 src/liblzma/check/crc32_fast.c | 3 +--
15495 src/liblzma/check/crc64_fast.c | 3 +--
15496 src/liblzma/check/crc_common.h | 5 +++++
15497 3 files changed, 7 insertions(+), 4 deletions(-)
15498
15499commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17
15500Author: Hans Jansen <hansjansen162@outlook.com>
15501Date:   2023-10-12 19:37:01 +0200
15502
15503    liblzma: Added crc32_clmul to crc32_fast.c.
15504
15505 src/liblzma/check/crc32_fast.c  | 247 ++++++++++++++++++++++++++++++++++++++--
15506 src/liblzma/check/crc32_table.c |  19 +++-
15507 2 files changed, 255 insertions(+), 11 deletions(-)
15508
15509commit 93e6fb08b22c7c13be2dd1e7274fe78413436254
15510Author: Hans Jansen <hansjansen162@outlook.com>
15511Date:   2023-10-12 19:23:40 +0200
15512
15513    liblzma: Moved CLMUL CRC logic to crc_common.h.
15514
15515    crc64_fast.c was updated to use the code from crc_common.h instead.
15516
15517 src/liblzma/check/crc64_fast.c | 257 ++---------------------------------------
15518 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++-
15519 2 files changed, 240 insertions(+), 247 deletions(-)
15520
15521commit 233885a437f8b55a5c8442984ebc0aaa579e92de
15522Author: Hans Jansen <hansjansen162@outlook.com>
15523Date:   2023-10-12 19:07:50 +0200
15524
15525    liblzma: Rename crc_macros.h to crc_common.h.
15526
15527 CMakeLists.txt                                   | 2 +-
15528 src/liblzma/check/Makefile.inc                   | 2 +-
15529 src/liblzma/check/crc32_fast.c                   | 2 +-
15530 src/liblzma/check/crc64_fast.c                   | 2 +-
15531 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +-
15532 5 files changed, 5 insertions(+), 5 deletions(-)
15533
15534commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd
15535Author: Gabriela Gutierrez <gabigutierrez@google.com>
15536Date:   2023-09-26 15:55:13 +0000
15537
15538    CI: Bump and ref actions by commit SHA in windows-ci.yml
15539
15540    Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch.
15541
15542    It's important to make sure the SHA's are from the original repositories and not forks.
15543
15544    For reference:
15545
15546    https://github.com/msys2/setup-msys2/releases/tag/v2.20.1
15547    https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d
15548
15549    https://github.com/actions/checkout/releases/tag/v4.1.0
15550    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
15551
15552    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
15553    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
15554
15555    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
15556
15557 .github/workflows/windows-ci.yml | 6 +++---
15558 1 file changed, 3 insertions(+), 3 deletions(-)
15559
15560commit f28cc9bd481ce493da11f98c18526d324211599a
15561Author: Gabriela Gutierrez <gabigutierrez@google.com>
15562Date:   2023-09-26 14:35:08 +0000
15563
15564    CI: Bump and ref actions by commit SHA in ci.yml
15565
15566    Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch.
15567
15568    It's important to make sure the SHA's are from the original repositories and not forks.
15569
15570    For reference:
15571
15572    https://github.com/actions/checkout/releases/tag/v4.1.0
15573    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
15574
15575    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
15576    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
15577
15578    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
15579
15580 .github/workflows/ci.yml | 4 ++--
15581 1 file changed, 2 insertions(+), 2 deletions(-)
15582
15583commit f74f1740067b75042497edbfa6ea457ff75484b9
15584Author: Jia Tan <jiat0218@gmail.com>
15585Date:   2023-10-12 20:12:18 +0800
15586
15587    Build: Update visibility.m4 from Gnulib.
15588
15589    Updating from version 6 -> 8 from upstream. Declarations for variables
15590    and function bodies were added to avoid unnecessary failures with
15591    -Werror.
15592
15593 m4/visibility.m4 | 9 +++++++--
15594 1 file changed, 7 insertions(+), 2 deletions(-)
15595
15596commit 5c4bca521e6fb435898a0012b3276eee70a6dadf
15597Author: Lasse Collin <lasse.collin@tukaani.org>
15598Date:   2023-10-06 19:36:35 +0300
15599
15600    Update THANKS.
15601
15602 THANKS | 1 +
15603 1 file changed, 1 insertion(+)
15604
15605commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
15606Author: Lasse Collin <lasse.collin@tukaani.org>
15607Date:   2023-10-06 18:55:57 +0300
15608
15609    CMake/Windows: Fix when the windres workaround is applied.
15610
15611    CMake doesn't set WIN32 on CYGWIN but the workaround is
15612    probably needed on Cygwin too. Same for MSYS and MSYS2.
15613
15614    The workaround must not be used with Clang that is acting in
15615    MSVC mode. This fixes it by checking for the known environments
15616    that need the workaround instead of using "NOT MSVC".
15617
15618    Thanks to Martin Storsjö.
15619    https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431
15620
15621 CMakeLists.txt | 6 +++---
15622 1 file changed, 3 insertions(+), 3 deletions(-)
15623
15624commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d
15625Author: Jia Tan <jiat0218@gmail.com>
15626Date:   2023-09-29 22:11:54 +0800
15627
15628    CI: Disable CLANG64 MSYS2 environment until bug is resolved.
15629
15630    lld 17.0.1 searches for libraries to link first in the toolchain
15631    directories before the local directory when building. The is a problem
15632    for us because liblzma.a is installed in MSYS2 CLANG64 by default and
15633    xz.exe will thus use the installed library instead of the one being
15634    built.
15635
15636    This causes tests to fail when they are expecting features to be
15637    disabled. More importantly, it will compile xz.exe with an incorrect
15638    liblzma and could cause unexpected behavior by being unable to update
15639    liblzma code in static builds. The CLANG64 environment can be tested
15640    again once this is fixed.
15641
15642    Link to bug: https://github.com/llvm/llvm-project/issues/67779.
15643
15644 .github/workflows/windows-ci.yml | 8 +++++---
15645 1 file changed, 5 insertions(+), 3 deletions(-)
15646
15647commit 30d0c35327f3639cb11224872aa58fdbf0b1526e
15648Author: Jia Tan <jiat0218@gmail.com>
15649Date:   2023-09-29 20:14:39 +0800
15650
15651    CMake: Rename xz and man page symlink custom targets.
15652
15653    The Ninja Generator for CMake cannot have a custom target and its
15654    BYPRODUCTS have the same name. This has prevented Ninja builds on
15655    Unix-like systems since the xz symlinks were introduced in
15656    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
15657
15658 CMakeLists.txt | 6 +++---
15659 1 file changed, 3 insertions(+), 3 deletions(-)
15660
15661commit 506d03127a8565442b028ec991e1578124fd3025
15662Author: Jia Tan <jiat0218@gmail.com>
15663Date:   2023-09-29 19:58:44 +0800
15664
15665    CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator.
15666
15667    CMake is unable to guess the linker language for just a header file so
15668    it must be explicitly set.
15669
15670 CMakeLists.txt | 6 ++++++
15671 1 file changed, 6 insertions(+)
15672
15673commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f
15674Author: Lasse Collin <lasse.collin@tukaani.org>
15675Date:   2023-09-27 19:54:35 +0300
15676
15677    CMake: Fix Windows build with Clang/LLVM 17.
15678
15679    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
15680    the hack for GNU windres must now be used with llvm-windres too.
15681
15682    LLVM 16.0.6 has the old behavior and there likely won't be more
15683    16.x releases. So we can simply check for >= 17.0.0.
15684
15685    See also:
15686    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
15687
15688 CMakeLists.txt | 26 ++++++++++++++------------
15689 1 file changed, 14 insertions(+), 12 deletions(-)
15690
15691commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1
15692Author: Lasse Collin <lasse.collin@tukaani.org>
15693Date:   2023-09-26 21:47:13 +0300
15694
15695    liblzma: Update a comment.
15696
15697    The C standards don't allow an empty translation unit which can be
15698    avoided by declaring something, without exporting any symbols.
15699
15700    When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had
15701    a feeling that some specific toolchain somewhere didn't like
15702    empty object files (assembler or maybe "ar" complained) but
15703    I cannot find anything to confirm this now. Quite likely I
15704    remembered nonsense. I leave this here as a note to my future self. :-)
15705
15706 src/liblzma/check/crc64_table.c | 3 +--
15707 1 file changed, 1 insertion(+), 2 deletions(-)
15708
15709commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499
15710Author: Jia Tan <jiat0218@gmail.com>
15711Date:   2023-09-27 00:02:11 +0800
15712
15713    liblzma: Avoid compiler warning without creating extra symbol.
15714
15715    When the generic fast crc64 method is used, then we omit
15716    lzma_crc64_table[][]. Similar to
15717    d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings
15718    with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a
15719    never used typedef instead of an extra symbol.
15720
15721 src/liblzma/check/crc64_table.c | 3 +--
15722 1 file changed, 1 insertion(+), 2 deletions(-)
15723
15724commit 092d21db2e5eea19fe079264ce48c178989c7606
15725Author: Lasse Collin <lasse.collin@tukaani.org>
15726Date:   2023-09-26 17:24:15 +0300
15727
15728    Build: Update the comment about -Werror usage in checks.
15729
15730 configure.ac | 10 ++++++++--
15731 1 file changed, 8 insertions(+), 2 deletions(-)
15732
15733commit a37a2763383e6c204fe878e1416dd35e7711d3a9
15734Author: Lasse Collin <lasse.collin@tukaani.org>
15735Date:   2023-09-26 15:00:43 +0300
15736
15737    Build: Fix __attribute__((ifunc(...))) detection with clang -Wall.
15738
15739    Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic
15740    the two checks that need -Werror will still work.
15741
15742    At CMake side there is add_compile_options(-Wall -Wextra)
15743    but it didn't affect the -Werror tests. So with both Autotools
15744    and CMake only user-supplied CFLAGS could make the checks fail
15745    when they shouldn't.
15746
15747    This is not a full fix as things like -Wunused-macros in
15748    user-supplied CFLAGS will still cause problems with both
15749    GCC and Clang.
15750
15751 CMakeLists.txt | 8 ++++++++
15752 configure.ac   | 8 ++++++++
15753 2 files changed, 16 insertions(+)
15754
15755commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2
15756Author: Lasse Collin <lasse.collin@tukaani.org>
15757Date:   2023-09-26 13:51:31 +0300
15758
15759    Build: Fix underquoted AC_LANG_SOURCE.
15760
15761    It made no practical difference in this case.
15762
15763 configure.ac | 2 +-
15764 1 file changed, 1 insertion(+), 1 deletion(-)
15765
15766commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982
15767Author: Lasse Collin <lasse.collin@tukaani.org>
15768Date:   2023-09-26 13:14:37 +0300
15769
15770    Build: Silence two Autoconf warnings.
15771
15772    There were two uses of AC_COMPILE_IFELSE that didn't use
15773    AC_LANG_SOURCE and Autoconf warned about these. The omission
15774    had been intentional but it turned out that this didn't do
15775    what I thought it would.
15776
15777    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
15778    inserts all #defines that have been made with AC_DEFINE so
15779    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
15780    would mean that only the exact code included in the
15781    AC_COMPILE_IFELSE call would be compiled.
15782
15783    With C programs this is not true: the #defines get added without
15784    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
15785    Thus, with the C language at least, adding AC_LANG_SOURCE makes
15786    no other difference than silencing a warning from Autoconf. The
15787    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
15788    say that the #defines have been inserted since Autoconf 2.63b and
15789    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
15790    documented if one also reads the docs of macros that one isn't
15791    calling directly.)
15792
15793    Any extra code, including #defines, can cause problems for
15794    these two tests because these tests must use -Werror.
15795    CC=clang CFLAGS=-Weverything is the most extreme example.
15796    It enables -Wreserved-macro-identifier which warns about
15797    #define __EXTENSIONS__ 1 because it begins with two underscores.
15798    It's possible to write a test file that passes -Weverything but
15799    it becomes impossible when Autoconf inserts confdefs.h.
15800
15801    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
15802    A different solution is needed for -Werror tests.
15803
15804 configure.ac | 9 ++++-----
15805 1 file changed, 4 insertions(+), 5 deletions(-)
15806
15807commit 519e47c2818acde571fadc79551294527fe6cc22
15808Author: Jia Tan <jiat0218@gmail.com>
15809Date:   2023-09-26 01:17:11 +0800
15810
15811    CMake: Remove accidental extra newline.
15812
15813 CMakeLists.txt | 1 -
15814 1 file changed, 1 deletion(-)
15815
15816commit bbb42412da6a02705ba3e668e90840c2683e4e67
15817Author: Jia Tan <jiat0218@gmail.com>
15818Date:   2023-09-26 00:47:26 +0800
15819
15820    Build: Remove Gnulib dependency from tests.
15821
15822    The tests do not use any Gnulib replacements so they do not need to link
15823    libgnu.a or have /lib in the include path.
15824
15825 tests/Makefile.am | 7 +------
15826 1 file changed, 1 insertion(+), 6 deletions(-)
15827
15828commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa
15829Author: Jia Tan <jiat0218@gmail.com>
15830Date:   2023-09-26 00:43:43 +0800
15831
15832    CMake: Remove /lib from tests include path.
15833
15834    The tests never included anything from /lib, so this was not needed.
15835
15836 CMakeLists.txt | 1 -
15837 1 file changed, 1 deletion(-)
15838
15839commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f
15840Author: Jia Tan <jiat0218@gmail.com>
15841Date:   2023-09-24 22:10:41 +0800
15842
15843    Scripts: Change quoting style from `...' to '...'.
15844
15845 src/scripts/xzdiff.in | 2 +-
15846 src/scripts/xzgrep.in | 2 +-
15847 2 files changed, 2 insertions(+), 2 deletions(-)
15848
15849commit eaebdef4d4de3c088b0905f42626b74e0d23abf3
15850Author: Jia Tan <jiat0218@gmail.com>
15851Date:   2023-09-24 22:10:18 +0800
15852
15853    xz: Change quoting style from `...' to '...'.
15854
15855 src/xz/args.c    |  6 +++---
15856 src/xz/file_io.c |  2 +-
15857 src/xz/main.c    |  4 ++--
15858 src/xz/message.c | 14 +++++++-------
15859 src/xz/options.c |  2 +-
15860 src/xz/suffix.c  |  2 +-
15861 src/xz/util.c    |  6 +++---
15862 7 files changed, 18 insertions(+), 18 deletions(-)
15863
15864commit f6667702bf075a05fbe336dbf3576ad1a82ec645
15865Author: Jia Tan <jiat0218@gmail.com>
15866Date:   2023-09-24 22:09:47 +0800
15867
15868    liblzma: Change quoting style from `...' to '...'.
15869
15870    This was done for both internal and API headers.
15871
15872 src/liblzma/api/lzma/base.h            | 18 +++++++++---------
15873 src/liblzma/api/lzma/container.h       | 10 +++++-----
15874 src/liblzma/api/lzma/filter.h          |  6 +++---
15875 src/liblzma/api/lzma/index.h           |  8 ++++----
15876 src/liblzma/api/lzma/lzma12.h          |  2 +-
15877 src/liblzma/lz/lz_encoder.h            |  2 +-
15878 src/liblzma/rangecoder/range_decoder.h |  2 +-
15879 7 files changed, 24 insertions(+), 24 deletions(-)
15880
15881commit be012b8097a4eaee335b51357d6befa745f753ce
15882Author: Jia Tan <jiat0218@gmail.com>
15883Date:   2023-09-24 22:09:16 +0800
15884
15885    Build: Change quoting style from `...' to '...'.
15886
15887 configure.ac          | 18 +++++++++---------
15888 dos/config.h          |  6 +++---
15889 m4/getopt.m4          |  2 +-
15890 m4/tuklib_progname.m4 |  2 +-
15891 windows/build.bash    |  2 +-
15892 5 files changed, 15 insertions(+), 15 deletions(-)
15893
15894commit ce162db07f03495bd333696e66883c8f36abdc1e
15895Author: Jia Tan <jiat0218@gmail.com>
15896Date:   2023-09-24 22:05:02 +0800
15897
15898    Docs: Change quoting style from `...' to '...'.
15899
15900    These days the ` and ' do not look symmetric. This quoting style has
15901    been changed in various apps over the years including the GNU tools.
15902
15903 INSTALL                         |  6 +++---
15904 doc/examples/01_compress_easy.c |  2 +-
15905 doc/examples/11_file_info.c     | 16 ++++++++--------
15906 3 files changed, 12 insertions(+), 12 deletions(-)
15907
15908commit db17656721e43939bfa4ec13506e7c76f4b86da6
15909Author: Jia Tan <jiat0218@gmail.com>
15910Date:   2023-09-24 21:25:01 +0800
15911
15912    lib: Silence -Wsign-conversion in getopt.c.
15913
15914 lib/getopt.c | 6 +++---
15915 1 file changed, 3 insertions(+), 3 deletions(-)
15916
15917commit a6234f677d66888f435010bc0b67de6a32fefcf6
15918Author: Jia Tan <jiat0218@gmail.com>
15919Date:   2023-09-24 20:48:52 +0800
15920
15921    Build: Update getopt.m4 from Gnulib.
15922
15923    This file was modified from upstream since we do not need to replace
15924    getopt() and can avoid complexity and feature tests.
15925
15926 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------
15927 1 file changed, 39 insertions(+), 40 deletions(-)
15928
15929commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10
15930Author: Jia Tan <jiat0218@gmail.com>
15931Date:   2023-09-26 00:09:53 +0800
15932
15933    CMake: Add /lib to include path.
15934
15935 CMakeLists.txt | 5 +++++
15936 1 file changed, 5 insertions(+)
15937
15938commit 01804a0b4b64e0f33568e947e0579263808c59d3
15939Author: Jia Tan <jiat0218@gmail.com>
15940Date:   2023-09-24 20:36:34 +0800
15941
15942    CMake: Update libgnu target with new header files.
15943
15944 CMakeLists.txt | 5 +++++
15945 1 file changed, 5 insertions(+)
15946
15947commit d34558388fe1d8929f6478d61dc322eb4f2900af
15948Author: Jia Tan <jiat0218@gmail.com>
15949Date:   2023-09-23 00:47:52 +0800
15950
15951    lib: Update Makefile.am for new header files.
15952
15953 lib/Makefile.am | 12 +++++++++++-
15954 1 file changed, 11 insertions(+), 1 deletion(-)
15955
15956commit 52bf644bdf536e20fcc743b712cede135e05eec5
15957Author: Jia Tan <jiat0218@gmail.com>
15958Date:   2023-09-24 20:34:03 +0800
15959
15960    lib: Update getopt1.c from Gnulib.
15961
15962    The only difference was maintaining the conditional inclusion for
15963    config.h.
15964
15965 lib/getopt1.c | 56 ++++++++++++++++++++++----------------------------------
15966 1 file changed, 22 insertions(+), 34 deletions(-)
15967
15968commit 7e884c00d0093c38339f17fb1d280eec493f42ca
15969Author: Jia Tan <jiat0218@gmail.com>
15970Date:   2023-09-23 03:27:00 +0800
15971
15972    lib: Update getopt.in.h from Gnulib with modifications.
15973
15974    We can still avoid modifying the contents of this file during
15975    configuration to simplify the build systems. Gnulib added replacements
15976    for inclusions guards for Cygwin. Cygwin should not need getopt_long
15977    replacement so this feature can be omitted.
15978
15979    <unistd.h> is conditionally included to avoid MSVC since it is not
15980    available.
15981
15982    The definition for _GL_ARG_NONNULL was also copied into this file from
15983    Gnulib since this stage is usually done during gnulib-tool.
15984
15985 lib/getopt.in.h | 228 +++++++-------------------------------------------------
15986 1 file changed, 29 insertions(+), 199 deletions(-)
15987
15988commit cff05f82066ca3ce9425dafdb086325a8eef8de3
15989Author: Jia Tan <jiat0218@gmail.com>
15990Date:   2023-09-23 00:31:55 +0800
15991
15992    lib: Update getopt_int.h from Gnulib.
15993
15994 lib/getopt_int.h | 109 ++++++++++++++++++++++++-------------------------------
15995 1 file changed, 48 insertions(+), 61 deletions(-)
15996
15997commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024
15998Author: Jia Tan <jiat0218@gmail.com>
15999Date:   2023-09-23 00:27:23 +0800
16000
16001    lib: Update getopt.c from Gnulib with modifications.
16002
16003    The code maintains the prior modifications of conditionally including
16004    config.h and disabling NLS support.
16005
16006    _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED
16007    is only used for these two parameters so its simpler than having to
16008    define it.
16009
16010 lib/getopt.c | 1134 +++++++++++++++++++---------------------------------------
16011 1 file changed, 377 insertions(+), 757 deletions(-)
16012
16013commit 56b42be7287844db20b3a3bc1372c6ae8c040d63
16014Author: Jia Tan <jiat0218@gmail.com>
16015Date:   2023-09-23 00:18:56 +0800
16016
16017    lib: Add getopt-cdefs.h for getopt_long update.
16018
16019    This was modified slightly from Gnulib. In Gnulib, it expects the
16020    @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H
16021    on systems that have it and avoid copying another file into the build
16022    directory. Since we are not using gnulib-tool, copying extra files
16023    requires extra build system updates (and special handling with CMake) so
16024    we should avoid when possible.
16025
16026 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
16027 1 file changed, 70 insertions(+)
16028
16029commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196
16030Author: Jia Tan <jiat0218@gmail.com>
16031Date:   2023-09-23 00:15:25 +0800
16032
16033    lib: Copy new header files from Gnulib without modification.
16034
16035    The getopt related files have changed from Gnulib by splitting up
16036    getopt.in.h into more modular header files. We could have kept
16037    everything in just getopt.in.h, but this will help us continue to update
16038    in the future.
16039
16040 lib/getopt-core.h     | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++
16041 lib/getopt-ext.h      | 77 +++++++++++++++++++++++++++++++++++++++++
16042 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++
16043 lib/getopt-pfx-ext.h  | 70 +++++++++++++++++++++++++++++++++++++
16044 4 files changed, 309 insertions(+)
16045
16046commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93
16047Author: Lasse Collin <lasse.collin@tukaani.org>
16048Date:   2023-09-22 21:16:52 +0300
16049
16050    Windows: Update the version requirement comments from Win95 to W2k.
16051
16052 windows/README-Windows.txt | 10 ++++------
16053 windows/build.bash         |  6 +++---
16054 2 files changed, 7 insertions(+), 9 deletions(-)
16055
16056commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1
16057Author: Lasse Collin <lasse.collin@tukaani.org>
16058Date:   2023-09-22 21:12:54 +0300
16059
16060    tuklib_physmem: Comment out support for Windows versions older than 2000.
16061
16062 src/common/tuklib_physmem.c | 20 +++++++++-----------
16063 1 file changed, 9 insertions(+), 11 deletions(-)
16064
16065commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a
16066Author: Lasse Collin <lasse.collin@tukaani.org>
16067Date:   2023-09-24 16:32:32 +0300
16068
16069    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
16070
16071 src/common/sysdefs.h | 10 +++++++++-
16072 1 file changed, 9 insertions(+), 1 deletion(-)
16073
16074commit 2a9929af0ab7e6c0ab725565034afe3293e51d71
16075Author: Lasse Collin <lasse.collin@tukaani.org>
16076Date:   2023-09-22 02:33:29 +0300
16077
16078    xz: Windows: Don't (de)compress to special files like "con" or "nul".
16079
16080    Before this commit, the following writes "foo" to the
16081    console and deletes the input file:
16082
16083        echo foo | xz > con_xz
16084        xz --suffix=_xz --decompress con_xz
16085
16086    It cannot happen without --suffix because names like con.xz
16087    are also special and so attempting to decompress con.xz
16088    (or compress con to con.xz) will already fail when opening
16089    the input file.
16090
16091    Similar thing is possible when compressing. The following
16092    writes to "nul" and the input file "n" is deleted.
16093
16094        echo foo | xz > n
16095        xz --suffix=ul n
16096
16097    Now xz checks if the destination is a special file before
16098    continuing. DOS/DJGPP version had a check for this but
16099    Windows (and OS/2) didn't.
16100
16101 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
16102 1 file changed, 28 insertions(+), 7 deletions(-)
16103
16104commit 01311b81f03cce1c0ce847a3d556f84dbd439343
16105Author: Lasse Collin <lasse.collin@tukaani.org>
16106Date:   2023-09-21 20:42:52 +0300
16107
16108    CMake: Wrap two overlong lines that are possible to wrap.
16109
16110 CMakeLists.txt | 6 ++++--
16111 1 file changed, 4 insertions(+), 2 deletions(-)
16112
16113commit 152d0771ddd0cffcac9042ad1a66f110d228eee2
16114Author: Lasse Collin <lasse.collin@tukaani.org>
16115Date:   2023-09-21 20:36:31 +0300
16116
16117    CMake: Add a comment about threads on Cygwin.
16118
16119 CMakeLists.txt | 1 +
16120 1 file changed, 1 insertion(+)
16121
16122commit 6df988cceffaa3100b428ed816fad334935b27bf
16123Author: Lasse Collin <lasse.collin@tukaani.org>
16124Date:   2023-09-12 23:53:25 +0300
16125
16126    MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt.
16127
16128    CMake is now the preferred build file generator when building
16129    with MSVC.
16130
16131 windows/INSTALL-MSVC.txt           |  37 ++--
16132 windows/vs2013/config.h            | 157 ---------------
16133 windows/vs2013/liblzma.vcxproj     | 363 ---------------------------------
16134 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------
16135 windows/vs2013/xz_win.sln          |  48 -----
16136 windows/vs2017/config.h            | 157 ---------------
16137 windows/vs2017/liblzma.vcxproj     | 363 ---------------------------------
16138 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------
16139 windows/vs2017/xz_win.sln          |  48 -----
16140 windows/vs2019/config.h            | 157 ---------------
16141 windows/vs2019/liblzma.vcxproj     | 364 ---------------------------------
16142 windows/vs2019/liblzma_dll.vcxproj | 399 -------------------------------------
16143 windows/vs2019/xz_win.sln          |  51 -----
16144 13 files changed, 12 insertions(+), 2928 deletions(-)
16145
16146commit edd563daf0da1d00018684614803c77ab62efcd6
16147Author: Lasse Collin <lasse.collin@tukaani.org>
16148Date:   2023-09-21 19:17:40 +0300
16149
16150    CMake: Require VS2015 or later for building xzdec.
16151
16152    xzdec might build with VS2013 but it hasn't been tested.
16153    It was never supported before and VS2013 is old anyway
16154    so for simplicity only liblzma is supported with VS2013.
16155
16156 CMakeLists.txt | 2 +-
16157 1 file changed, 1 insertion(+), 1 deletion(-)
16158
16159commit daea64d158a7151ca6c255a0e4554c6d521cd589
16160Author: Lasse Collin <lasse.collin@tukaani.org>
16161Date:   2023-09-12 23:43:49 +0300
16162
16163    CMake: Allow building xz with Visual Studio 2015 and later.
16164
16165    Building the command line tools xz and xzdec with the combination
16166    of CMake + Visual Studio 2015/2017/2019/2022 works now.
16167
16168    VS2013 update 2 should still be able to build liblzma.
16169    VS2013 cannot build the xz command line tool because xz
16170    needs snprintf() that roughly conforms to C99.
16171    VS2013 is old and no extra code will be added to support it.
16172
16173    Thanks to Kelvin Lee and Jia Tan for testing.
16174
16175 CMakeLists.txt | 2 +-
16176 1 file changed, 1 insertion(+), 1 deletion(-)
16177
16178commit 8c2d197c940d246849b2ec48109bb22e54036927
16179Author: Lasse Collin <lasse.collin@tukaani.org>
16180Date:   2023-09-12 23:34:31 +0300
16181
16182    MSVC: #define inline and restrict only when needed.
16183
16184    This also drops the check for _WIN32 as that shouldn't be needed.
16185
16186 src/common/sysdefs.h | 13 ++++++++-----
16187 1 file changed, 8 insertions(+), 5 deletions(-)
16188
16189commit af66cd585902045e5689a0418103ec81f19f1d0a
16190Author: Lasse Collin <lasse.collin@tukaani.org>
16191Date:   2023-09-12 22:16:56 +0300
16192
16193    CMake: Add support for replacement getopt_long (lib/getopt*).
16194
16195    Thanks to Jia Tan for the initial work. I added the libgnu target
16196    and made a few related minor edits.
16197
16198 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
16199 1 file changed, 47 insertions(+), 7 deletions(-)
16200
16201commit e3288fdb45c580cb849f6799cf419c4922004ae5
16202Author: Lasse Collin <lasse.collin@tukaani.org>
16203Date:   2023-09-12 21:12:34 +0300
16204
16205    CMake: Bump maximum policy version to 3.27.
16206
16207    There are several new policies. CMP0149 may affect the Windows SDK
16208    version that CMake will choose by default. The new behavior is more
16209    predictable, always choosing the latest SDK version by default.
16210
16211    The other new policies shouldn't affect this package.
16212
16213 CMakeLists.txt | 2 +-
16214 1 file changed, 1 insertion(+), 1 deletion(-)
16215
16216commit aff1b479c7b168652bd20305ceed4317d5db6661
16217Author: Lasse Collin <lasse.collin@tukaani.org>
16218Date:   2023-09-12 20:55:10 +0300
16219
16220    lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined.
16221
16222    The CMake-based build doesn't use config.h.
16223
16224    Up-to-date getopt_long in Gnulib is LGPLv2 so at some
16225    point it could be included in XZ Utils too but for now
16226    this commit is enough to make CMake-based build possible.
16227
16228 lib/getopt.c  | 4 +++-
16229 lib/getopt1.c | 4 +++-
16230 2 files changed, 6 insertions(+), 2 deletions(-)
16231
16232commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5
16233Author: Lasse Collin <lasse.collin@tukaani.org>
16234Date:   2023-09-08 19:08:57 +0300
16235
16236    Doxygen: Add more C macro names to PREDEFINED.
16237
16238 doxygen/Doxyfile | 7 +++++--
16239 1 file changed, 5 insertions(+), 2 deletions(-)
16240
16241commit ee7709bae53637e1765ce142ef102914f1423cb5
16242Author: Lasse Collin <lasse.collin@tukaani.org>
16243Date:   2023-09-11 18:47:26 +0300
16244
16245    liblzma: Move a few __attribute__ uses in function declarations.
16246
16247    The API headers have many attributes but these were left
16248    as is for now.
16249
16250 src/liblzma/common/common.c    | 6 ++++--
16251 src/liblzma/common/common.h    | 8 ++++----
16252 src/liblzma/common/memcmplen.h | 3 ++-
16253 3 files changed, 10 insertions(+), 7 deletions(-)
16254
16255commit 217958d88713b5dc73d366d24dd64b2b311b86fe
16256Author: Lasse Collin <lasse.collin@tukaani.org>
16257Date:   2023-09-11 19:03:35 +0300
16258
16259    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
16260
16261    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
16262    must be at the beginning of declaration (before "extern" or
16263    "static", and even before any GNU C's __attribute__).
16264
16265    This commit also moves all other function attributes to
16266    the beginning of function declarations. "extern" is kept
16267    at the beginning of a line so the attributes are listed on
16268    separate lines before "extern" or "static".
16269
16270 src/lzmainfo/lzmainfo.c |  6 ++++--
16271 src/xz/coder.c          |  3 ++-
16272 src/xz/hardware.h       |  3 ++-
16273 src/xz/message.h        | 30 +++++++++++++++++-------------
16274 src/xz/options.c        |  3 ++-
16275 src/xz/util.h           |  8 ++++----
16276 src/xzdec/xzdec.c       |  9 ++++++---
16277 7 files changed, 37 insertions(+), 25 deletions(-)
16278
16279commit 18a66fbac031c98f9c2077fc88846e4d07849197
16280Author: Lasse Collin <lasse.collin@tukaani.org>
16281Date:   2023-09-11 18:53:31 +0300
16282
16283    Remove incorrect uses of __attribute__((__malloc__)).
16284
16285    xrealloc() is obviously incorrect, modern GCC docs even
16286    mention realloc() as an example where this attribute
16287    cannot be used.
16288
16289    liblzma's lzma_alloc() and lzma_alloc_zero() would be
16290    correct uses most of the time but custom allocators
16291    may use a memory pool or otherwise hold the pointer
16292    so aliasing issues could happen in theory.
16293
16294    The xstrdup() case likely was correct but I removed it anyway.
16295    Now there are no __malloc__ attributes left in the code.
16296    The allocations aren't in hot paths so this should make
16297    no practical difference.
16298
16299 src/liblzma/common/common.c | 4 ++--
16300 src/liblzma/common/common.h | 4 ++--
16301 src/xz/util.h               | 4 ++--
16302 3 files changed, 6 insertions(+), 6 deletions(-)
16303
16304commit 74b0e900c92d5b222b36f474f1efa431f8e262f7
16305Author: Lasse Collin <lasse.collin@tukaani.org>
16306Date:   2023-09-08 18:41:25 +0300
16307
16308    Build: Omit -Wc99-c11-compat since it warns about _Noreturn.
16309
16310 configure.ac | 1 -
16311 1 file changed, 1 deletion(-)
16312
16313commit 90c94dddfd57b7d744bfad64c54e10d15778144b
16314Author: Lasse Collin <lasse.collin@tukaani.org>
16315Date:   2023-09-08 18:19:26 +0300
16316
16317    tuklib: Update tuklib_attr_noreturn for C11/C17 and C23.
16318
16319    This makes no difference for GCC or Clang as they support
16320    GNU C's __attribute__((__noreturn__)) but this helps with MSVC:
16321
16322      - VS 2019 version 16.7 and later support _Noreturn if the
16323        options /std:c11 or /std:c17 are used. This gets handled
16324        with the check for __STDC_VERSION__ >= 201112.
16325
16326      - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used.
16327
16328    C23 will deprecate _Noreturn (and <stdnoreturn.h>)
16329    for [[noreturn]]. This commit anticipates that but
16330    the final __STDC_VERSION__ value isn't known yet.
16331
16332 src/common/tuklib_common.h | 22 +++++++++++++++++++++-
16333 src/common/tuklib_exit.h   |  4 ++--
16334 2 files changed, 23 insertions(+), 3 deletions(-)
16335
16336commit 189f72581329ab281ad6af37f60135910cb1b146
16337Author: Lasse Collin <lasse.collin@tukaani.org>
16338Date:   2023-09-11 17:22:44 +0300
16339
16340    Update THANKS.
16341
16342 THANKS | 1 +
16343 1 file changed, 1 insertion(+)
16344
16345commit 79334e7f20f2bf9e0de095835b48868f1238f584
16346Author: Lasse Collin <lasse.collin@tukaani.org>
16347Date:   2023-09-05 22:42:10 +0300
16348
16349    MSVC: xz: Make file_io.c and file_io.h compatible with MSVC.
16350
16351    Thanks to Kelvin Lee for the original patches
16352    and testing the modifications I made.
16353
16354 src/xz/file_io.c | 26 ++++++++++++++++++++++++++
16355 src/xz/file_io.h | 10 ++++++++++
16356 2 files changed, 36 insertions(+)
16357
16358commit c660b8d78b7bda43b12b285550d8c70e8ccec698
16359Author: Lasse Collin <lasse.collin@tukaani.org>
16360Date:   2023-09-05 21:33:35 +0300
16361
16362    MSVC: xz: Use GetTickCount64() to implement mytime_now().
16363
16364    It's available since Windows Vista.
16365
16366 src/xz/mytime.c | 11 +++++++++--
16367 1 file changed, 9 insertions(+), 2 deletions(-)
16368
16369commit 5c6f892d411670e3060f4bc309402617a209e57c
16370Author: Kelvin Lee <kiyolee@gmail.com>
16371Date:   2023-09-05 15:05:09 +0300
16372
16373    MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c.
16374
16375 src/xz/suffix.c | 10 ++++++++--
16376 1 file changed, 8 insertions(+), 2 deletions(-)
16377
16378commit e241051f50044259d174e8b4633dd9a1c4478408
16379Author: Kelvin Lee <kiyolee@gmail.com>
16380Date:   2023-09-05 15:01:10 +0300
16381
16382    MSVC: xz: Use _isatty() from <io.h> to implement isatty().
16383
16384 src/xz/message.c | 5 +++++
16385 src/xz/util.c    | 5 +++++
16386 2 files changed, 10 insertions(+)
16387
16388commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
16389Author: Kelvin Lee <kiyolee@gmail.com>
16390Date:   2023-09-05 15:10:31 +0300
16391
16392    MSVC: xz: Use _fileno() instead of fileno().
16393
16394 src/xz/private.h | 4 ++++
16395 1 file changed, 4 insertions(+)
16396
16397commit c4edd367678e6a38c42b149856159bf417da7fe1
16398Author: Kelvin Lee <kiyolee@gmail.com>
16399Date:   2023-09-05 15:00:07 +0300
16400
16401    MSVC: xzdec: Use _fileno and _setmode.
16402
16403 src/xzdec/xzdec.c | 4 ++++
16404 1 file changed, 4 insertions(+)
16405
16406commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0
16407Author: Kelvin Lee <kiyolee@gmail.com>
16408Date:   2023-09-05 14:37:50 +0300
16409
16410    MSVC: Don't #include <unistd.h>.
16411
16412 lib/getopt.c      | 4 +++-
16413 lib/getopt.in.h   | 4 +++-
16414 src/xz/private.h  | 5 ++++-
16415 src/xzdec/xzdec.c | 5 ++++-
16416 4 files changed, 14 insertions(+), 4 deletions(-)
16417
16418commit adef92f23563a2cc088b31ddee9040ecc96bc996
16419Author: Lasse Collin <lasse.collin@tukaani.org>
16420Date:   2023-09-19 14:03:45 +0300
16421
16422    Update THANKS.
16423
16424 THANKS | 1 +
16425 1 file changed, 1 insertion(+)
16426
16427commit 953e775941a25bfcfa353f802b13e66acb1edf2c
16428Author: Jia Tan <jiat0218@gmail.com>
16429Date:   2023-09-14 21:13:23 +0800
16430
16431    CI: Enable CLMUL in address sanitization test.
16432
16433    The crc64_clmul() function should be ignored by the address sanitizer
16434    now so these builds should still pass.
16435
16436 .github/workflows/ci.yml | 12 ++++--------
16437 1 file changed, 4 insertions(+), 8 deletions(-)
16438
16439commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77
16440Author: Lasse Collin <lasse.collin@tukaani.org>
16441Date:   2023-09-14 16:35:46 +0300
16442
16443    Update THANKS.
16444
16445 THANKS | 1 +
16446 1 file changed, 1 insertion(+)
16447
16448commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
16449Author: Lasse Collin <lasse.collin@tukaani.org>
16450Date:   2023-09-14 16:34:07 +0300
16451
16452    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
16453
16454    Thanks to Agostino Sarubbo.
16455    Fixes: https://github.com/tukaani-project/xz/issues/62
16456
16457 src/liblzma/check/crc64_fast.c | 8 ++++++++
16458 1 file changed, 8 insertions(+)
16459
16460commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08
16461Author: Jia Tan <jiat0218@gmail.com>
16462Date:   2023-09-12 22:36:12 +0800
16463
16464    CMake: Fix time.h checks not running on second CMake run.
16465
16466    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
16467    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
16468    for librt being needed to provide HAVE_CLOCK_GETTIME was also
16469    simplified.
16470
16471 CMakeLists.txt | 18 ++++++++++--------
16472 1 file changed, 10 insertions(+), 8 deletions(-)
16473
16474commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6
16475Author: Jia Tan <jiat0218@gmail.com>
16476Date:   2023-09-12 22:34:06 +0800
16477
16478    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
16479
16480    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
16481    added as a compile definition even if the check for it failed.
16482
16483 CMakeLists.txt | 8 +++-----
16484 1 file changed, 3 insertions(+), 5 deletions(-)
16485
16486commit eccf12866527b8d24c7d7f92f755142be8ef9b11
16487Author: Lasse Collin <lasse.collin@tukaani.org>
16488Date:   2023-08-31 19:50:05 +0300
16489
16490    xz: Refactor thousand separator detection and disable it on MSVC.
16491
16492    Now the two variations of the format strings are created with
16493    a macro, and the whole detection code can be easily disabled
16494    on platforms where thousand separator formatting is known to
16495    not work (MSVC has no support, and on DJGPP 2.05 it can have
16496    problems in some cases).
16497
16498 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
16499 1 file changed, 45 insertions(+), 44 deletions(-)
16500
16501commit f7093cd9d130477c234b40aeda613964171f8f21
16502Author: Lasse Collin <lasse.collin@tukaani.org>
16503Date:   2023-08-31 18:14:43 +0300
16504
16505    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
16506
16507    SSIZE_MAX isn't readily available on MSVC. Removing it means
16508    that there is one thing less to worry when porting to MSVC.
16509
16510 src/xz/file_io.c | 5 ++---
16511 src/xz/file_io.h | 4 ++--
16512 2 files changed, 4 insertions(+), 5 deletions(-)
16513
16514commit 74c3449d8b816a724b12ebce7417e00fb597309a
16515Author: Jia Tan <jiat0218@gmail.com>
16516Date:   2023-08-28 23:14:45 +0800
16517
16518    Tests: Improve invalid unpadded size check in test_lzma_index_append().
16519
16520    This check was extended to test the code added to fix a failing assert
16521    in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
16522
16523 tests/test_index.c | 26 +++++++++++++++++++++++---
16524 1 file changed, 23 insertions(+), 3 deletions(-)
16525
16526commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336
16527Author: Jia Tan <jiat0218@gmail.com>
16528Date:   2023-08-28 21:54:41 +0800
16529
16530    Tests: Improve comments in test_index.c.
16531
16532 tests/test_index.c | 6 +++---
16533 1 file changed, 3 insertions(+), 3 deletions(-)
16534
16535commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b
16536Author: Jia Tan <jiat0218@gmail.com>
16537Date:   2023-08-28 21:52:54 +0800
16538
16539    Update THANKS.
16540
16541 THANKS | 1 +
16542 1 file changed, 1 insertion(+)
16543
16544commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
16545Author: Jia Tan <jiat0218@gmail.com>
16546Date:   2023-08-28 21:50:16 +0800
16547
16548    liblzma: Update assert in vli_ceil4().
16549
16550    The argument to vli_ceil4() should always guarantee the return value
16551    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
16552    are invalid arguments. All uses of the function ensure this so the
16553    assert is updated to match this.
16554
16555 src/liblzma/common/index.h | 2 +-
16556 1 file changed, 1 insertion(+), 1 deletion(-)
16557
16558commit ae5c07b22a6b3766b84f409f1b6b5c100469068a
16559Author: Jia Tan <jiat0218@gmail.com>
16560Date:   2023-08-28 21:31:25 +0800
16561
16562    liblzma: Add overflow check for Unpadded size in lzma_index_append().
16563
16564    This was not a security bug since there was no path to overflow
16565    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
16566    The bug was discovered by a failing assert() in vli_ceil4() when called
16567    from index_file_size() when unpadded_sum (the sum of the compressed size
16568    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
16569
16570    Previously, the unpadded_size parameter was checked to be not greater
16571    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
16572    added.
16573
16574    This could not have caused an integer overflow in index_file_size() when
16575    called by lzma_index_append(). The calculation for file_size breaks down
16576    into the sum of:
16577
16578    - Compressed base from all previous Streams
16579    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
16580      footer)
16581    - stream_padding (can be set by lzma_index_stream_padding())
16582    - Compressed base from the current Stream
16583    - Unpadded size (parameter to lzma_index_append())
16584
16585    The sum of everything except for Unpadded size must be less than
16586    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
16587    that can set these values including lzma_index_stream_padding(),
16588    lzma_index_append(), and lzma_index_cat(). The maximum value for
16589    Unpadded size is enforced by lzma_index_append() to be less than or
16590    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
16591    LZMA_VLI_MAX is half of UINT64_MAX.
16592
16593    Thanks to Joona Kannisto for reporting this.
16594
16595 src/liblzma/common/index.c | 6 ++++++
16596 1 file changed, 6 insertions(+)
16597
16598commit 1057765aaabfe0f1397b8094531846655376ae38
16599Author: Jia Tan <jiat0218@gmail.com>
16600Date:   2023-08-28 22:18:29 +0800
16601
16602    Translations: Update the Esperanto translation.
16603
16604 po/eo.po | 4 ++--
16605 1 file changed, 2 insertions(+), 2 deletions(-)
16606
16607commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856
16608Author: Jia Tan <jiat0218@gmail.com>
16609Date:   2023-08-26 20:10:23 +0800
16610
16611    Translations: Update the Esperanto translation.
16612
16613 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
16614 1 file changed, 29 insertions(+), 18 deletions(-)
16615
16616commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3
16617Author: Jia Tan <jiat0218@gmail.com>
16618Date:   2023-08-09 20:55:36 +0800
16619
16620    Docs: Update INSTALL for --enable-threads method win95.
16621
16622    The Autotools build allows win95 threads and --enable-small together now
16623    if the compiler supports __attribute__((__constructor__)).
16624
16625 INSTALL | 6 ++++--
16626 1 file changed, 4 insertions(+), 2 deletions(-)
16627
16628commit 356ad5b26b4196f085ce3afa1869154ca81faad8
16629Author: Jia Tan <jiat0218@gmail.com>
16630Date:   2023-08-09 20:54:15 +0800
16631
16632    CMake: Conditionally allow win95 threads and --enable-small.
16633
16634 CMakeLists.txt | 28 ++++++++++++++++++++--------
16635 1 file changed, 20 insertions(+), 8 deletions(-)
16636
16637commit de574404c4c2f87aca049f232c38526e3ce092aa
16638Author: Jia Tan <jiat0218@gmail.com>
16639Date:   2023-08-09 20:35:16 +0800
16640
16641    Build: Conditionally allow win95 threads and --enable-small.
16642
16643    When the compiler supports __attribute__((__constructor__))
16644    mythread_once() is never used, even with --enable-small. A configuration
16645    with win95 threads and --enable-small will compile and be thread safe so
16646    it can be allowed.
16647
16648    This isn't a very common configuration since MSVC does not support
16649    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
16650    for MSYS2 can use win95 threads and have
16651    __attribute__((__constructor__)) support.
16652
16653 configure.ac | 21 +++++++++++++--------
16654 1 file changed, 13 insertions(+), 8 deletions(-)
16655
16656commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a
16657Author: Jamaika1 <lukaszcz18@wp.pl>
16658Date:   2023-08-08 14:07:59 +0200
16659
16660    mythread.h: Fix typo error in Vista threads mythread_once().
16661
16662    The "once_" variable was accidentally referred to as just "once". This
16663    prevented building with Vista threads when
16664    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
16665
16666 src/common/mythread.h | 2 +-
16667 1 file changed, 1 insertion(+), 1 deletion(-)
16668
16669commit 80cb961e5380a3878246d41341ff91378ca59e05
16670Author: Jia Tan <jiat0218@gmail.com>
16671Date:   2023-08-04 22:17:11 +0800
16672
16673    codespell: Add .codespellrc to set default options.
16674
16675    The .codespellrc allows setting default options to avoid false positive
16676    matches, set additional dictionaries, etc. For now, codespell can be
16677    used locally before committing doc and comment changes.
16678
16679    It should help prevent silly errors and fix up commits in the future.
16680
16681 .codespellrc | 24 ++++++++++++++++++++++++
16682 1 file changed, 24 insertions(+)
16683
16684commit cd678a6077358935249b64a4a16fe8d17434f9c9
16685Author: Jia Tan <jiat0218@gmail.com>
16686Date:   2023-08-03 20:10:21 +0800
16687
16688    Tests: Style fixes to test_lzip_decoder.c.
16689
16690 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
16691 1 file changed, 24 insertions(+), 12 deletions(-)
16692
16693commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81
16694Author: Jia Tan <jiat0218@gmail.com>
16695Date:   2023-08-03 15:56:20 +0800
16696
16697    Translations: Update the Chinese (simplified) translation.
16698
16699 po/zh_CN.po | 2 +-
16700 1 file changed, 1 insertion(+), 1 deletion(-)
16701
16702commit 16068f6c30b888cdb873f6285af941d00f95741d
16703Author: Lasse Collin <lasse.collin@tukaani.org>
16704Date:   2023-08-02 17:15:12 +0300
16705
16706    xz: Omit an empty paragraph on the man page.
16707
16708 src/xz/xz.1 | 1 -
16709 1 file changed, 1 deletion(-)
16710
16711commit 9ae4371b5106189486e850ce777e40f7b6021c0b
16712Author: Jia Tan <jiat0218@gmail.com>
16713Date:   2023-08-02 20:30:07 +0800
16714
16715    Add NEWS for 5.4.4.
16716
16717 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
16718 1 file changed, 43 insertions(+)
16719
16720commit e8c2203b2c76466d8d3387c5212b46151de8e605
16721Author: Lasse Collin <lasse.collin@tukaani.org>
16722Date:   2023-08-02 15:19:43 +0300
16723
16724    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
16725
16726    groff defaults to SGR escapes. Using -P-c passes -c to grotty
16727    which restores the old behavior. Perhaps there is a better way to
16728    get pure plain text output but this works for now.
16729
16730 build-aux/manconv.sh | 4 ++--
16731 1 file changed, 2 insertions(+), 2 deletions(-)
16732
16733commit 9a706167b0d903d92fd134895acb4bc6a5e3e688
16734Author: Lasse Collin <lasse.collin@tukaani.org>
16735Date:   2023-08-01 19:10:43 +0300
16736
16737    Update THANKS.
16738
16739 THANKS | 1 +
16740 1 file changed, 1 insertion(+)
16741
16742commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
16743Author: Lasse Collin <lasse.collin@tukaani.org>
16744Date:   2023-08-01 18:22:24 +0300
16745
16746    Update THANKS.
16747
16748 THANKS | 1 +
16749 1 file changed, 1 insertion(+)
16750
16751commit 81db3b889830132334d1f2129bdc93177ac2ca7d
16752Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
16753Date:   2023-08-01 18:17:17 +0300
16754
16755    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
16756
16757    signal.h in WASI SDK doesn't currently provide sigprocmask()
16758    or sigset_t. liblzma doesn't need them so this change makes
16759    liblzma and xzdec build against WASI SDK. xz doesn't build yet
16760    and the tests don't either as tuktest needs setjmp() which
16761    isn't (yet?) implemented in WASI SDK.
16762
16763    Closes: https://github.com/tukaani-project/xz/pull/57
16764    See also: https://github.com/tukaani-project/xz/pull/56
16765
16766    (The original commit was edited a little by Lasse Collin.)
16767
16768 src/common/mythread.h | 2 +-
16769 1 file changed, 1 insertion(+), 1 deletion(-)
16770
16771commit 71c638c611324e606d324c8189fef8fe79db6991
16772Author: Jia Tan <jiat0218@gmail.com>
16773Date:   2023-08-01 21:58:51 +0800
16774
16775    Add newline to end of .gitignore.
16776
16777    Newline was accidentally removed in commit
16778    01cbb7f023ee7fda8ddde04bd17cf7d3c2418706.
16779
16780 .gitignore | 2 +-
16781 1 file changed, 1 insertion(+), 1 deletion(-)
16782
16783commit 42df7c7aa1cca385e509eb33c65136e61890f0bf
16784Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
16785Date:   2023-07-31 14:02:21 +0200
16786
16787    Docs: Fix typos found by codespell
16788
16789 CMakeLists.txt                            | 4 ++--
16790 NEWS                                      | 2 +-
16791 configure.ac                              | 2 +-
16792 src/liblzma/api/lzma/container.h          | 4 ++--
16793 src/liblzma/api/lzma/filter.h             | 2 +-
16794 src/liblzma/api/lzma/lzma12.h             | 4 ++--
16795 src/liblzma/common/block_buffer_encoder.c | 2 +-
16796 src/liblzma/common/common.h               | 2 +-
16797 src/liblzma/common/file_info.c            | 2 +-
16798 src/liblzma/common/lzip_decoder.c         | 2 +-
16799 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
16800 src/liblzma/common/string_conversion.c    | 6 +++---
16801 src/liblzma/lz/lz_encoder.h               | 2 +-
16802 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
16803 src/xz/hardware.c                         | 4 ++--
16804 tests/test_filter_flags.c                 | 4 ++--
16805 tests/test_index.c                        | 2 +-
16806 tests/test_vli.c                          | 2 +-
16807 18 files changed, 29 insertions(+), 29 deletions(-)
16808
16809commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706
16810Author: Jia Tan <jiat0218@gmail.com>
16811Date:   2023-07-26 20:26:23 +0800
16812
16813    Update .gitignore.
16814
16815 .gitignore | 4 ++++
16816 1 file changed, 4 insertions(+)
16817
16818commit f97a1afd564c48ad9cb94682e10972a72e11fa08
16819Author: Jia Tan <jiat0218@gmail.com>
16820Date:   2023-07-28 22:03:08 +0800
16821
16822    CMake: Conditionally allow the creation of broken symlinks.
16823
16824    The CMake build will try to create broken symlinks on Unix and Unix-like
16825    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
16826    broken symlinks. The value of the CYGWIN or MSYS environment variables
16827    determine if broken symlinks are valid.
16828
16829    The default for MSYS2 does not allow for broken symlinks, so the CMake
16830    build has been broken for MSYS2 since commit
16831    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
16832
16833 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
16834 1 file changed, 75 insertions(+), 7 deletions(-)
16835
16836commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f
16837Author: Jia Tan <jiat0218@gmail.com>
16838Date:   2023-07-28 21:56:48 +0800
16839
16840    CI: Fix windows-ci dependency installation.
16841
16842    All of the MSYS2 environments need make, and it does not come with the
16843    toolchain package. The toolchain package will install the needed
16844    compiler toolchains since without this package CMake cannot properly
16845    generate the Makefiles.
16846
16847 .github/workflows/windows-ci.yml | 6 +++---
16848 1 file changed, 3 insertions(+), 3 deletions(-)
16849
16850commit a048f472cd9a2245265cb292853cbbcdd4f02001
16851Author: Jia Tan <jiat0218@gmail.com>
16852Date:   2023-07-28 21:54:22 +0800
16853
16854    CI: Update ci_build.sh CMake to always make Unix Makefiles.
16855
16856    The default for many of the MSYS2 environments is for CMake to create
16857    Ninja build files. This would complicate the build script since we would
16858    need a different command to run the tests. Its simpler to always use
16859    Unix Makefiles so that "make test" is always a usable target for
16860    testing.
16861
16862 build-aux/ci_build.sh | 4 ++--
16863 1 file changed, 2 insertions(+), 2 deletions(-)
16864
16865commit 7870396a0ca945473aa0d1d790f4cbef456610bd
16866Author: Jia Tan <jiat0218@gmail.com>
16867Date:   2023-07-25 20:17:23 +0800
16868
16869    CI: Test CMake builds and test framework with MSYS2.
16870
16871 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------
16872 1 file changed, 20 insertions(+), 12 deletions(-)
16873
16874commit 6497d1f8875cb7e3007f714336cc09c06fed235b
16875Author: Jia Tan <jiat0218@gmail.com>
16876Date:   2023-07-25 20:14:53 +0800
16877
16878    CI: Windows CI rename system matrix variable -> msys2_env.
16879
16880    Calling the MSYS2 environment "system" was a bit vague and should be
16881    more specific.
16882
16883 .github/workflows/windows-ci.yml | 15 +++++----------
16884 1 file changed, 5 insertions(+), 10 deletions(-)
16885
16886commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd
16887Author: Jia Tan <jiat0218@gmail.com>
16888Date:   2023-07-24 23:11:45 +0800
16889
16890    CI: Add Clang64 MSYS2 environment to Windows CI.
16891
16892 .github/workflows/windows-ci.yml | 1 +
16893 1 file changed, 1 insertion(+)
16894
16895commit d9166b52cf3458a4da3eb92224837ca8fc208d79
16896Author: Jia Tan <jiat0218@gmail.com>
16897Date:   2023-07-24 21:43:44 +0800
16898
16899    liblzma: Prevent an empty translation unit in Windows builds.
16900
16901    To workaround Automake lacking Windows resource compiler support, an
16902    empty source file is compiled to overwrite the resource files for static
16903    library builds. Translation units without an external declaration are
16904    not allowed by the C standard and result in a warning when used with
16905    -Wempty-translation-unit (Clang) or -pedantic (GCC).
16906
16907 src/liblzma/Makefile.am | 6 +++++-
16908 1 file changed, 5 insertions(+), 1 deletion(-)
16909
16910commit db5019d691f980d622fb56fdcf383af2c3519c98
16911Author: Jia Tan <jiat0218@gmail.com>
16912Date:   2023-07-22 18:37:56 +0800
16913
16914    Translations: Update the Vietnamese translation.
16915
16916 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
16917 1 file changed, 28 insertions(+), 17 deletions(-)
16918
16919commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5
16920Author: Jia Tan <jiat0218@gmail.com>
16921Date:   2023-07-22 14:55:42 +0800
16922
16923    CI: Add Windows runner for Autotools builds with MSYS2.
16924
16925    Only a subset of the tests run by the Linux and MacOS Autotools builds
16926    are run. The most interesting tests are the ones that disable threads,
16927    encoders, and decoders.
16928
16929    The Windows runner will only be run manually since these tests will
16930    likely take much longer than the Linux and MacOS runners. This runner
16931    should be used before merging any large features and before releases.
16932
16933    Currently the clang64 environment fails to due to a warning and
16934    -Werror is enabled for the CI tests. This is still an early version
16935    since the CMake build can be done for MSVC and optionally each of the
16936    MSYS2 environments. GitHub does not allow manually running the CI tests
16937    unless the workflow is checked on the default branch so checking in a
16938    minimum version is a good idea.
16939
16940    Thanks to Arthur S for the original proposing the original patch.
16941
16942    Closes: https://github.com/tukaani-project/xz/pull/34
16943
16944 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++
16945 1 file changed, 119 insertions(+)
16946
16947commit 556536a3525df9e5ed78b8c7057991cfa9edfac8
16948Author: Jia Tan <jiat0218@gmail.com>
16949Date:   2023-07-21 22:11:01 +0800
16950
16951    CI: Add argument to ci_build.sh to pass flags to autogen.sh.
16952
16953 build-aux/ci_build.sh | 9 +++++++--
16954 1 file changed, 7 insertions(+), 2 deletions(-)
16955
16956commit 39a32d36fc465c4e70f13192eea380e518ba6e8a
16957Author: Jia Tan <jiat0218@gmail.com>
16958Date:   2023-07-21 18:05:44 +0800
16959
16960    Tests: Skip .lz files in test_files.sh if not configured.
16961
16962    Previously if the lzip decoder was not configured then test_files.sh
16963    would pass the lzip tests instead of skipping them.
16964
16965 tests/test_files.sh | 2 +-
16966 1 file changed, 1 insertion(+), 1 deletion(-)
16967
16968commit 194d12724b30fe42789d12a0184f9d412c449347
16969Author: Jia Tan <jiat0218@gmail.com>
16970Date:   2023-07-20 22:11:13 +0800
16971
16972    Tests: Add ARM64 filter test to test_compress.sh.
16973
16974 tests/test_compress.sh | 1 +
16975 1 file changed, 1 insertion(+)
16976
16977commit d850365c444368102c69beaddf849ed463c33467
16978Author: Jia Tan <jiat0218@gmail.com>
16979Date:   2023-07-20 20:30:05 +0800
16980
16981    Translations: Update the Croatian translation.
16982
16983 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
16984 1 file changed, 30 insertions(+), 19 deletions(-)
16985
16986commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe
16987Author: Jia Tan <jiat0218@gmail.com>
16988Date:   2023-07-20 20:28:32 +0800
16989
16990    Translations: Update the Korean man page translations.
16991
16992 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
16993 1 file changed, 629 insertions(+), 626 deletions(-)
16994
16995commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49
16996Author: Jia Tan <jiat0218@gmail.com>
16997Date:   2023-07-20 20:25:24 +0800
16998
16999    Translations: Update the Korean translation.
17000
17001 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
17002 1 file changed, 28 insertions(+), 17 deletions(-)
17003
17004commit 237f06d9c55cf438a7538a598354bcf103f23711
17005Author: Jia Tan <jiat0218@gmail.com>
17006Date:   2023-07-20 20:24:05 +0800
17007
17008    Translations: Update the Polish translation.
17009
17010 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
17011 1 file changed, 29 insertions(+), 18 deletions(-)
17012
17013commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a
17014Author: Jia Tan <jiat0218@gmail.com>
17015Date:   2023-07-20 20:22:23 +0800
17016
17017    Translations: Update the German man page translations.
17018
17019 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
17020 1 file changed, 629 insertions(+), 626 deletions(-)
17021
17022commit fdbde14503ca03069d3649aa51926f5f796b89d8
17023Author: Jia Tan <jiat0218@gmail.com>
17024Date:   2023-07-20 20:18:44 +0800
17025
17026    Translations: Update the German translation.
17027
17028 po/de.po | 47 +++++++++++++++++++++++++++++------------------
17029 1 file changed, 29 insertions(+), 18 deletions(-)
17030
17031commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101
17032Author: Jia Tan <jiat0218@gmail.com>
17033Date:   2023-07-20 20:17:10 +0800
17034
17035    Translations: Update the Chinese (simplified) translation.
17036
17037 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
17038 1 file changed, 29 insertions(+), 18 deletions(-)
17039
17040commit 376938c588011567c74f1d5a160c0ccce6336d46
17041Author: Jia Tan <jiat0218@gmail.com>
17042Date:   2023-07-20 20:15:47 +0800
17043
17044    Translations: Update the Swedish translation.
17045
17046 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
17047 1 file changed, 29 insertions(+), 18 deletions(-)
17048
17049commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8
17050Author: Jia Tan <jiat0218@gmail.com>
17051Date:   2023-07-20 20:14:00 +0800
17052
17053    Translations: Update the Ukrainian man page translations.
17054
17055 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
17056 1 file changed, 628 insertions(+), 625 deletions(-)
17057
17058commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b
17059Author: Jia Tan <jiat0218@gmail.com>
17060Date:   2023-07-20 20:09:15 +0800
17061
17062    Translations: Update the Ukrainian translation.
17063
17064 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
17065 1 file changed, 28 insertions(+), 17 deletions(-)
17066
17067commit f881018b503fd334331c24a09075429558abbce1
17068Author: Jia Tan <jiat0218@gmail.com>
17069Date:   2023-07-20 20:06:57 +0800
17070
17071    Translations: Update the Spanish translation.
17072
17073 po/es.po | 47 +++++++++++++++++++++++++++++------------------
17074 1 file changed, 29 insertions(+), 18 deletions(-)
17075
17076commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31
17077Author: Jia Tan <jiat0218@gmail.com>
17078Date:   2023-07-20 20:05:19 +0800
17079
17080    Translations: Update the Romanian translation.
17081
17082 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
17083 1 file changed, 30 insertions(+), 18 deletions(-)
17084
17085commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77
17086Author: Jia Tan <jiat0218@gmail.com>
17087Date:   2023-07-20 20:02:56 +0800
17088
17089    Translations: Update the Romanian man page translations.
17090
17091 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
17092 1 file changed, 629 insertions(+), 625 deletions(-)
17093
17094commit 0184d344fa4f215cd345bb131db9068e077c69b8
17095Author: Jia Tan <jiat0218@gmail.com>
17096Date:   2023-07-19 23:36:00 +0800
17097
17098    liblzma: Suppress -Wunused-function warning.
17099
17100    Clang 16.0.0 and earlier have a bug that the ifunc resolver function
17101    triggers the -Wunused-function warning. The resolver function is static
17102    and only "used" by the __attribute__((__ifunc()__)).
17103
17104    At this time, the bug is still unresolved, but has been reported:
17105    https://github.com/llvm/llvm-project/issues/63957
17106
17107    This is not a problem in GCC.
17108
17109 src/liblzma/check/crc64_fast.c | 10 ++++++++++
17110 1 file changed, 10 insertions(+)
17111
17112commit 43845fa70fc751736c44c18f4cee42d49bfd1392
17113Author: Jia Tan <jiat0218@gmail.com>
17114Date:   2023-07-18 22:52:25 +0800
17115
17116    liblzma: Reword lzma_str_list_filters() documentation.
17117
17118    This further improves the documentation from commit
17119    f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of
17120    "supported options" was slightly misleading since the options that are
17121    printed are the ones that are relevant for encoding/decoding. It is not
17122    about which options can or must be specified.
17123
17124 src/liblzma/api/lzma/filter.h | 2 +-
17125 1 file changed, 1 insertion(+), 1 deletion(-)
17126
17127commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67
17128Author: Jia Tan <jiat0218@gmail.com>
17129Date:   2023-07-18 22:49:57 +0800
17130
17131    liblzma: Improve comment in string_conversion.c.
17132
17133    The comment used "flag" when referring to decoder options. Just
17134    referring to them as options is more clear and consistent.
17135
17136 src/liblzma/common/string_conversion.c | 4 ++--
17137 1 file changed, 2 insertions(+), 2 deletions(-)
17138
17139commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090
17140Author: Lasse Collin <lasse.collin@tukaani.org>
17141Date:   2023-07-18 17:37:33 +0300
17142
17143    xz: Translate the second "%s: " in message.c since French needs "%s : ".
17144
17145    This string is used to print a filename when using "xz -v" and
17146    stderr isn't a terminal.
17147
17148 src/xz/message.c | 2 +-
17149 1 file changed, 1 insertion(+), 1 deletion(-)
17150
17151commit be644042c3066d8e7a2834f989671ba74d27f749
17152Author: Lasse Collin <lasse.collin@tukaani.org>
17153Date:   2023-07-18 14:35:33 +0300
17154
17155    xz: Make "%s: %s" translatable because French needs "%s : %s".
17156
17157 src/xz/args.c    |  5 ++++-
17158 src/xz/coder.c   |  8 ++++----
17159 src/xz/file_io.c |  8 ++++----
17160 src/xz/list.c    | 11 ++++++-----
17161 4 files changed, 18 insertions(+), 14 deletions(-)
17162
17163commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2
17164Author: Lasse Collin <lasse.collin@tukaani.org>
17165Date:   2023-07-18 13:57:54 +0300
17166
17167    liblzma: Tweak #if condition in memcmplen.h.
17168
17169    Maybe ICC always #defines _MSC_VER on Windows but now
17170    it's very clear which code will get used.
17171
17172 src/liblzma/common/memcmplen.h | 4 ++--
17173 1 file changed, 2 insertions(+), 2 deletions(-)
17174
17175commit 40392c19f71985852d75997f109dea97177d6f3f
17176Author: Lasse Collin <lasse.collin@tukaani.org>
17177Date:   2023-07-18 13:49:43 +0300
17178
17179    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
17180
17181 src/liblzma/common/memcmplen.h | 4 ++--
17182 1 file changed, 2 insertions(+), 2 deletions(-)
17183
17184commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98
17185Author: Jia Tan <jiat0218@gmail.com>
17186Date:   2023-07-18 00:51:48 +0800
17187
17188    xz: Update Authors list in a few files.
17189
17190 src/xz/args.c    | 3 ++-
17191 src/xz/args.h    | 3 ++-
17192 src/xz/coder.c   | 3 ++-
17193 src/xz/coder.h   | 3 ++-
17194 src/xz/message.c | 3 ++-
17195 5 files changed, 10 insertions(+), 5 deletions(-)
17196
17197commit 289034a168878baa9df6ff6e159110aade69cba5
17198Author: Jia Tan <jiat0218@gmail.com>
17199Date:   2023-07-14 23:20:33 +0800
17200
17201    Docs: Add a new section to INSTALL for Tests.
17202
17203    The new Tests section describes basic information about the tests, how
17204    to run them, and important details when cross compiling. We have had a
17205    few questions about how to compile the tests without running them, so
17206    hopefully this information will help others with the same question in the
17207    future.
17208
17209    Fixes: https://github.com/tukaani-project/xz/issues/54
17210
17211 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
17212 1 file changed, 64 insertions(+), 17 deletions(-)
17213
17214commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513
17215Author: Jia Tan <jiat0218@gmail.com>
17216Date:   2023-07-14 21:10:27 +0800
17217
17218    Docs: Update README.
17219
17220    This adds an entry to "Other implementations of the .xz format" for
17221    XZ for Java.
17222
17223 README | 4 ++++
17224 1 file changed, 4 insertions(+)
17225
17226commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9
17227Author: Jia Tan <jiat0218@gmail.com>
17228Date:   2023-07-13 23:32:10 +0800
17229
17230    xz: Fix typo in man page.
17231
17232    The Memory limit information section described three output
17233    columns when it actually has six. This was reworded to
17234    "multiple" to make it more future proof.
17235
17236 src/xz/xz.1 | 2 +-
17237 1 file changed, 1 insertion(+), 1 deletion(-)
17238
17239commit f907705eb1f6c5edaafc9668a34c51a989932f1d
17240Author: Jia Tan <jiat0218@gmail.com>
17241Date:   2023-07-13 21:46:12 +0800
17242
17243    xz: Minor clean up for coder.c
17244
17245    * Moved max_block_list_size from a global to local variable.
17246    * Reworded error message in validate_block_list_filter().
17247    * Removed helper function filter_chain_error().
17248    * Changed 1 << X to 1U << X in many places
17249
17250 src/xz/coder.c | 53 +++++++++++++++++++++--------------------------------
17251 1 file changed, 21 insertions(+), 32 deletions(-)
17252
17253commit 9adc9e56157ecbf2948e5036df8567809b9ae177
17254Author: Jia Tan <jiat0218@gmail.com>
17255Date:   2023-07-13 21:26:47 +0800
17256
17257    xz: Update man page Authors and date.
17258
17259 src/xz/xz.1 | 5 +++--
17260 1 file changed, 3 insertions(+), 2 deletions(-)
17261
17262commit c12e429f2635da8d8f5749e5f733f451baca6945
17263Author: Jia Tan <jiat0218@gmail.com>
17264Date:   2023-06-20 20:32:59 +0800
17265
17266    xz: Add a section to man page for robot mode --filters-help.
17267
17268 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++--
17269 1 file changed, 30 insertions(+), 2 deletions(-)
17270
17271commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d
17272Author: Jia Tan <jiat0218@gmail.com>
17273Date:   2023-06-19 23:11:41 +0800
17274
17275    xz: Slight reword in xz man page for consistency.
17276
17277    Changed will print => prints in xz --robot --version description to
17278    match --robot --info-memory description.
17279
17280 src/xz/xz.1 | 2 +-
17281 1 file changed, 1 insertion(+), 1 deletion(-)
17282
17283commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81
17284Author: Jia Tan <jiat0218@gmail.com>
17285Date:   2023-06-19 23:07:10 +0800
17286
17287    xz: Reorder robot mode subsections in the man page.
17288
17289    The order is now consistent with the order the command line arguments
17290    are documented earlier in the man page. The new order is:
17291    1. --list
17292    2. --info-memory
17293    3. --version
17294
17295    Instead of the previous order:
17296    1. --version
17297    2. --info-memory
17298    3. --list
17299
17300 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------
17301 1 file changed, 96 insertions(+), 96 deletions(-)
17302
17303commit 9628be23aef2784249fd9f3199799d785d2ec5cc
17304Author: Jia Tan <jiat0218@gmail.com>
17305Date:   2023-05-13 00:46:50 +0800
17306
17307    xz: Update man page for new --filters-help option.
17308
17309 src/xz/xz.1 | 10 ++++++++++
17310 1 file changed, 10 insertions(+)
17311
17312commit a165d7df1964121eb9df715e6f836a31c865beef
17313Author: Jia Tan <jiat0218@gmail.com>
17314Date:   2023-05-13 00:44:41 +0800
17315
17316    xz: Add a new --filters-help option.
17317
17318    The --filters-help can be used to help create filter chains with the
17319    --filters and --filtersX options. The message in --long-help is too
17320    short to fully explain the syntax to construct complex filter chains.
17321
17322    In --robot mode, xz will only print the output from liblzma function
17323    lzma_str_list_filters.
17324
17325 src/xz/args.c    |  8 ++++++++
17326 src/xz/message.c | 30 ++++++++++++++++++++++++++++++
17327 src/xz/message.h |  5 +++++
17328 3 files changed, 43 insertions(+)
17329
17330commit 95f1a414b156ee35d3e71862a14915fdd138f913
17331Author: Jia Tan <jiat0218@gmail.com>
17332Date:   2023-04-21 20:28:11 +0800
17333
17334    xz: Update the man page for --block-list and --filtersX
17335
17336    The --block-list option description needed updating since the new
17337    --filtersX option changes how it can be used. The new entry for
17338    --filters1=FILTERS ... --filter9=FILTERS was created right after
17339    the --filters option.
17340
17341 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++---------------
17342 1 file changed, 80 insertions(+), 26 deletions(-)
17343
17344commit 47a63cad2aa778280e0c1926b7159427ea028cb1
17345Author: Jia Tan <jiat0218@gmail.com>
17346Date:   2023-04-21 19:50:14 +0800
17347
17348    xz: Update --long-help for the new --filtersX option.
17349
17350 src/xz/message.c | 12 ++++++++++--
17351 1 file changed, 10 insertions(+), 2 deletions(-)
17352
17353commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13
17354Author: Jia Tan <jiat0218@gmail.com>
17355Date:   2023-06-17 20:46:21 +0800
17356
17357    xz: Ignore filter chains that are set but never used in --block-list.
17358
17359    If a filter chain is set but not used in --block-list, it introduced
17360    unexpected behavior such as requiring an unneeded amount of memory to
17361    compress, reducing the number of threads in multi-threaded encoding, and
17362    printing an incorrect amount of memory needed to decompress.
17363
17364    This also renames filters_init_mask => filters_used_mask. A filter is
17365    assumed to be used if it is specified in --filtersX until
17366    coder_set_compression_settings() determines which filters are referenced
17367    in --block-list.
17368
17369 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++----------------
17370 1 file changed, 48 insertions(+), 18 deletions(-)
17371
17372commit 183819bfd9efac8c184d9bf123325719b7eee30f
17373Author: Jia Tan <jiat0218@gmail.com>
17374Date:   2023-05-13 20:11:13 +0800
17375
17376    xz: Set the Block size for mt encoding correctly.
17377
17378    When opt_block_size is not used, the Block size for mt encoder is
17379    derived from the minimum of the largest Block specified by
17380    --block-list and the recommended Block size on all filter chains
17381    calculated by lzma_mt_block_size(). This avoids using unnecessary
17382    memory and ensures that all Blocks are large enough for the most memory
17383    needy filter chain.
17384
17385 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
17386 1 file changed, 67 insertions(+), 1 deletion(-)
17387
17388commit afb2dbec3d857b026486b75e42a4728e12d234cb
17389Author: Jia Tan <jiat0218@gmail.com>
17390Date:   2023-05-11 00:09:41 +0800
17391
17392    xz: Validate --flush-timeout for all specified filter chains.
17393
17394 src/xz/coder.c | 24 ++++++++++++++++--------
17395 1 file changed, 16 insertions(+), 8 deletions(-)
17396
17397commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
17398Author: Jia Tan <jiat0218@gmail.com>
17399Date:   2023-05-13 19:54:33 +0800
17400
17401    xz: Allows --block-list filters to scale down memory usage.
17402
17403    Previously, only the default filter chain could have its memory usage
17404    adjusted. The filter chains specified with --filtersX were not checked
17405    for memory usage. Now, all used filter chains will be adjusted if
17406    necessary.
17407
17408 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------
17409 1 file changed, 214 insertions(+), 55 deletions(-)
17410
17411commit 479fd58d60622331fcbe48fddf756927b9f80d9a
17412Author: Jia Tan <jiat0218@gmail.com>
17413Date:   2023-05-10 21:50:33 +0800
17414
17415    xz: Do not include block splitting if encoders are disabled.
17416
17417    The block splitting logic and split_block() function are not needed if
17418    encoders are disabled. This will help slightly reduce the binary size
17419    when built without encoders and allow split_block() to use functions
17420    that require encoders being enabled.
17421
17422 src/xz/coder.c | 29 ++++++++++++++++++++---------
17423 1 file changed, 20 insertions(+), 9 deletions(-)
17424
17425commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3
17426Author: Jia Tan <jiat0218@gmail.com>
17427Date:   2023-05-10 22:38:59 +0800
17428
17429    xz: Free filters[] in debug mode.
17430
17431    This will only free filter chains created with --filters1-9 since the
17432    default filter chain may be set from a static function variable. The
17433    complexity to free the default filter chain is not worth the burden on
17434    code maintenance.
17435
17436 src/xz/coder.c | 10 ++++++++++
17437 1 file changed, 10 insertions(+)
17438
17439commit f281cd0d692ac0c70fc7669b80dddb863ea947e1
17440Author: Jia Tan <jiat0218@gmail.com>
17441Date:   2023-05-13 19:28:23 +0800
17442
17443    xz: Add a message if --block-list is used outside of xz compresssion.
17444
17445    --block-list is only supported with compression in xz format. This avoids
17446    silently ignoring when --block-list is unused.
17447
17448 src/xz/args.c | 11 +++++++++++
17449 1 file changed, 11 insertions(+)
17450
17451commit d6af7f347077b22403133239592e478931307759
17452Author: Jia Tan <jiat0218@gmail.com>
17453Date:   2023-04-18 20:29:09 +0800
17454
17455    xz: Create command line options for filters[1-9].
17456
17457    The new command line options are meant to be combined with --block-list.
17458    They work as an optional extension to --block-list to specify a custom
17459    filter chain for each block listed. The new options allow the creation
17460    of up to 9 reusable filter chains. For instance:
17461
17462    xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \
17463    --filters2=x86--lzma2 --filters3=arm64--lzma2
17464
17465    Will create the following blocks:
17466    1. A block of size 10 MiB with filter chain delta, lzma2.
17467    2. A block of size 5 MiB with filter chain arm64, lzma2.
17468    3. A block of size 5 MiB with filter chain arm64, lzma2.
17469    4. A block of size 5 MiB with filter chain x86, lzma2.
17470    5. A block containing the rest of the file contents with filter chain
17471       delta, lzma2.
17472
17473 src/xz/args.c  |  82 ++++++++++++++++++++++---
17474 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++---------------
17475 src/xz/coder.h |  20 +++++-
17476 3 files changed, 230 insertions(+), 60 deletions(-)
17477
17478commit 072d29250113268536719ad0e040ab8a66fb6435
17479Author: Jia Tan <jiat0218@gmail.com>
17480Date:   2023-05-13 19:36:09 +0800
17481
17482    xz: Use lzma_filters_free() in forget_filter_chain().
17483
17484    This is a little cleaner than the previous implementation of
17485    forget_filter_chain(). It is also more consistent since
17486    lzma_str_to_filters() will always terminate the filter chain so there
17487    is no need to terminate it later in coder_set_compression_settings().
17488
17489 src/xz/coder.c | 18 ++++++++++--------
17490 1 file changed, 10 insertions(+), 8 deletions(-)
17491
17492commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059
17493Author: Jia Tan <jiat0218@gmail.com>
17494Date:   2023-04-17 22:22:45 +0800
17495
17496    xz: Separate string to filter conversion into a helper function.
17497
17498    Converting from string to filter will also need to be done for block
17499    specific filter chains.
17500
17501 src/xz/coder.c | 33 ++++++++++++++++++++-------------
17502 1 file changed, 20 insertions(+), 13 deletions(-)
17503
17504commit a6583726e5f950278f96abcf79c04f1056810be6
17505Author: Jia Tan <jiat0218@gmail.com>
17506Date:   2023-01-06 00:03:35 +0800
17507
17508    Tests: Use new --filters option in test_compress.sh
17509
17510 tests/test_compress.sh | 20 ++++++++++----------
17511 1 file changed, 10 insertions(+), 10 deletions(-)
17512
17513commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0
17514Author: Jia Tan <jiat0218@gmail.com>
17515Date:   2023-01-06 00:03:06 +0800
17516
17517    xz: Update --long-help and man page for new --filters option.
17518
17519 src/xz/message.c |  6 ++++++
17520 src/xz/xz.1      | 41 ++++++++++++++++++++++++++++++++++++-----
17521 2 files changed, 42 insertions(+), 5 deletions(-)
17522
17523commit 9ded880a0221f4d1256845fc4ab957ffd377c760
17524Author: Jia Tan <jiat0218@gmail.com>
17525Date:   2023-01-06 00:02:29 +0800
17526
17527    xz: Add --filters option to CLI.
17528
17529    The --filters option uses the new lzma_str_to_filters() function
17530    to convert a string into a full filter chain. Using this option
17531    will reset all previous filters set by --preset, --[filter], or
17532    --filters.
17533
17534 src/xz/args.c  |  9 +++++++--
17535 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
17536 src/xz/coder.h |  3 +++
17537 3 files changed, 58 insertions(+), 4 deletions(-)
17538
17539commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88
17540Author: Jia Tan <jiat0218@gmail.com>
17541Date:   2023-07-14 21:30:25 +0800
17542
17543    Tests: Improve feature testing for skipping.
17544
17545    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
17546    filters were enabled for compression but arm was disabled. Since the
17547    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
17548    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
17549
17550    Now the config.h feature test requires " 1" at the end to prevent the
17551    prefix problem. have_feature() was also updated for this even though
17552    there were known current bugs affecting it. This is just in case future
17553    features have a similar prefix problem.
17554
17555 tests/test_compress.sh | 4 ++--
17556 tests/test_files.sh    | 2 +-
17557 2 files changed, 3 insertions(+), 3 deletions(-)
17558
17559commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357
17560Author: Jia Tan <jiat0218@gmail.com>
17561Date:   2023-07-10 20:56:28 +0800
17562
17563    Translations: Update the Chinese (traditional) translation.
17564
17565 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
17566 1 file changed, 377 insertions(+), 282 deletions(-)
17567
17568commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd
17569Author: Jia Tan <jiat0218@gmail.com>
17570Date:   2023-07-08 21:24:19 +0800
17571
17572    liblzma: Remove non-portable empty initializer.
17573
17574    Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty
17575    initializer {} to prevent a warning. The empty initializer is a GNU
17576    extension and results in a build failure on MSVC. The -wpedantic flag
17577    warns about empty initializers.
17578
17579 src/liblzma/common/stream_encoder_mt.c | 2 +-
17580 1 file changed, 1 insertion(+), 1 deletion(-)
17581
17582commit 3aca4f629cd577f0c54f594d5d88722edf0b0413
17583Author: Jia Tan <jiat0218@gmail.com>
17584Date:   2023-07-08 20:03:59 +0800
17585
17586    Translations: Update the Vietnamese translation.
17587
17588 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
17589 1 file changed, 349 insertions(+), 271 deletions(-)
17590
17591commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4
17592Author: Jia Tan <jiat0218@gmail.com>
17593Date:   2023-06-28 20:46:31 +0800
17594
17595    Tests: Fix memory leaks in test_index.
17596
17597    Several tests were missing calls to lzma_index_end() to clean up the
17598    lzma_index structs. The memory leaks were discovered by using
17599    -fsanitize=address with GCC.
17600
17601 tests/test_index.c | 11 +++++++++++
17602 1 file changed, 11 insertions(+)
17603
17604commit fe3bd438fb119f9bad3f08dc29d331e4956196e1
17605Author: Jia Tan <jiat0218@gmail.com>
17606Date:   2023-06-28 20:43:29 +0800
17607
17608    Tests: Fix memory leaks in test_block_header.
17609
17610    test_block_header was not properly freeing the filter options between
17611    calls to lzma_block_header_decode(). The memory leaks were discovered by
17612    using -fsanitize=address with GCC.
17613
17614 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
17615 1 file changed, 22 insertions(+), 16 deletions(-)
17616
17617commit 78704f36e74205857c898a351c757719a6c8b666
17618Author: Jia Tan <jiat0218@gmail.com>
17619Date:   2023-06-28 20:31:11 +0800
17620
17621    liblzma: Prevent uninitialzed warning in mt stream encoder.
17622
17623    This change only impacts the compiler warning since it was impossible
17624    for the wait_abs struct in stream_encode_mt() to be used before it was
17625    initialized since mythread_condtime_set() will always be called before
17626    mythread_cond_timedwait().
17627
17628    Since the mythread.h code is different between the POSIX and
17629    Windows versions, this warning was only present on Windows builds.
17630
17631    Thanks to Arthur S for reporting the warning and providing an initial
17632    patch.
17633
17634 src/liblzma/common/stream_encoder_mt.c | 2 +-
17635 1 file changed, 1 insertion(+), 1 deletion(-)
17636
17637commit e3356a204c5ae02db3ec4552b6c1be354e9b6142
17638Author: Jia Tan <jiat0218@gmail.com>
17639Date:   2023-06-28 20:22:38 +0800
17640
17641    liblzma: Prevent warning for MSYS2 Windows build.
17642
17643    In lzma_memcmplen(), the <intrin.h> header file is only included if
17644    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
17645    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
17646    not _MSC_VER so _BitScanForward64() was used without including
17647    <intrin.h>.
17648
17649    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
17650    expected.
17651
17652 src/liblzma/common/memcmplen.h | 6 ++++--
17653 1 file changed, 4 insertions(+), 2 deletions(-)
17654
17655commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e
17656Author: Jia Tan <jiat0218@gmail.com>
17657Date:   2023-06-28 21:01:22 +0800
17658
17659    CI: Add test with -fsanitize=address,undefined.
17660
17661    ci_build.sh was updated to accept disabling of __attribute__ ifunc
17662    and CLMUL. This will allow -fsanitize=address to pass because ifunc
17663    is incompatible with -fsanitize=address. The CLMUL implementation has
17664    optimizations that potentially read past the buffer and mask out the
17665    unwanted bytes.
17666
17667    This test will only run on Autotools Linux.
17668
17669 .github/workflows/ci.yml | 23 +++++++++++++++++++----
17670 build-aux/ci_build.sh    |  8 +++++++-
17671 2 files changed, 26 insertions(+), 5 deletions(-)
17672
17673commit 596ee722cd7ddf0afae584fc06365adc0e735977
17674Author: Jia Tan <jiat0218@gmail.com>
17675Date:   2023-06-28 20:16:04 +0800
17676
17677    CI: Upgrade checkout action from v2 to v3.
17678
17679 .github/workflows/ci.yml | 2 +-
17680 1 file changed, 1 insertion(+), 1 deletion(-)
17681
17682commit 86118ea320f867e09e98a8682cc08cbbdfd640e2
17683Author: Jia Tan <jiat0218@gmail.com>
17684Date:   2023-06-27 23:38:32 +0800
17685
17686    Update THANKS.
17687
17688 THANKS | 1 +
17689 1 file changed, 1 insertion(+)
17690
17691commit 3d1fdddf92321b516d55651888b9c669e254634e
17692Author: Jia Tan <jiat0218@gmail.com>
17693Date:   2023-06-27 17:27:09 +0300
17694
17695    Docs: Document the configure option --disable-ifunc in INSTALL.
17696
17697 INSTALL | 8 ++++++++
17698 1 file changed, 8 insertions(+)
17699
17700commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3
17701Author: Lasse Collin <lasse.collin@tukaani.org>
17702Date:   2023-06-27 17:24:49 +0300
17703
17704    Minor tweaks to style and comments.
17705
17706 CMakeLists.txt | 8 ++++----
17707 configure.ac   | 9 +++++----
17708 2 files changed, 9 insertions(+), 8 deletions(-)
17709
17710commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1
17711Author: Lasse Collin <lasse.collin@tukaani.org>
17712Date:   2023-06-27 17:19:49 +0300
17713
17714    CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC.
17715
17716    It's so that there's a clear difference in wording compared
17717    to liblzma's integrity check types.
17718
17719 CMakeLists.txt | 6 +++---
17720 1 file changed, 3 insertions(+), 3 deletions(-)
17721
17722commit ee44863ae88e377a5df10db007ba9bfadde3d314
17723Author: Lasse Collin <lasse.collin@tukaani.org>
17724Date:   2023-06-27 17:05:23 +0300
17725
17726    liblzma: Add ifunc implementation to crc64_fast.c.
17727
17728    The ifunc method avoids indirection via the function pointer
17729    crc64_func. This works on GNU/Linux and probably on FreeBSD too.
17730    The previous __attribute((__constructor__)) method is kept for
17731    compatibility with ELF platforms which do support ifunc.
17732
17733    The ifunc method has some limitations, for example, building
17734    liblzma with -fsanitize=address will result in segfaults.
17735    The configure option --disable-ifunc must be used for such builds.
17736
17737    Thanks to Hans Jansen for the original patch.
17738    Closes: https://github.com/tukaani-project/xz/pull/53
17739
17740 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++---------
17741 1 file changed, 26 insertions(+), 9 deletions(-)
17742
17743commit b72d21202402a603db6d512fb9271cfa83249639
17744Author: Hans Jansen <hansjansen162@outlook.com>
17745Date:   2023-06-22 19:49:30 +0200
17746
17747    Add ifunc check to CMakeLists.txt
17748
17749    CMake build system will now verify if __attribute__((__ifunc__())) can be
17750    used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be
17751    defined to 1.
17752
17753 CMakeLists.txt | 19 +++++++++++++++++++
17754 1 file changed, 19 insertions(+)
17755
17756commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b
17757Author: Hans Jansen <hansjansen162@outlook.com>
17758Date:   2023-06-22 19:46:55 +0200
17759
17760    Add ifunc check to configure.ac
17761
17762    configure.ac will now verify if __attribute__((__ifunc__())) can be used in
17763    the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1.
17764
17765 configure.ac | 28 ++++++++++++++++++++++++++++
17766 1 file changed, 28 insertions(+)
17767
17768commit dbb3a536ed9873ffa0870321f6873e564c6a9da8
17769Author: Jia Tan <jiat0218@gmail.com>
17770Date:   2023-06-07 00:18:30 +0800
17771
17772    CI: Add apt update command before installing dependencies.
17773
17774    Without the extra command, all of the CI tests were automatically
17775    failing because the Ubuntu servers could not be reached properly.
17776
17777 .github/workflows/ci.yml | 8 ++++++--
17778 1 file changed, 6 insertions(+), 2 deletions(-)
17779
17780commit 6bcd516812331de42b347922913230895bebad34
17781Author: Jia Tan <jiat0218@gmail.com>
17782Date:   2023-06-07 00:10:38 +0800
17783
17784    Update THANKS.
17785
17786 THANKS | 1 +
17787 1 file changed, 1 insertion(+)
17788
17789commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
17790Author: Benjamin Buch <bebuch@users.noreply.github.com>
17791Date:   2023-06-06 15:32:45 +0200
17792
17793    CMake: Protects against double find_package
17794
17795    Boost iostream uses `find_package` in quiet mode and then again uses
17796    `find_package` with required. This second call triggers a
17797    `add_library cannot create imported target "ZLIB::ZLIB" because another
17798    target with the same name already exists.`
17799
17800    This can simply be fixed by skipping the alias part on secondary
17801    `find_package` runs.
17802
17803 CMakeLists.txt | 16 +++++++++-------
17804 1 file changed, 9 insertions(+), 7 deletions(-)
17805
17806commit 045d7aae286ecd2ce163be9e0d9041343a03f89a
17807Author: Jia Tan <jiat0218@gmail.com>
17808Date:   2023-05-31 20:26:42 +0800
17809
17810    Translations: Update the Esperanto translation.
17811
17812 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
17813 1 file changed, 92 insertions(+), 93 deletions(-)
17814
17815commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78
17816Author: Jia Tan <jiat0218@gmail.com>
17817Date:   2023-05-31 20:25:00 +0800
17818
17819    Translations: Update the Croatian translation.
17820
17821 po/hr.po | 2 +-
17822 1 file changed, 1 insertion(+), 1 deletion(-)
17823
17824commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce
17825Author: Jia Tan <jiat0218@gmail.com>
17826Date:   2023-05-31 20:15:53 +0800
17827
17828    Translations: Update the Chinese (simplified) translation.
17829
17830 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
17831 1 file changed, 157 insertions(+), 160 deletions(-)
17832
17833commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383
17834Author: Jia Tan <jiat0218@gmail.com>
17835Date:   2023-05-17 23:12:13 +0800
17836
17837    Translations: Update German translation of man pages.
17838
17839 po4a/de.po | 52 ++++++++++++----------------------------------------
17840 1 file changed, 12 insertions(+), 40 deletions(-)
17841
17842commit 592961ccdbba39c7d60fe37e36764232feb57c60
17843Author: Jia Tan <jiat0218@gmail.com>
17844Date:   2023-05-17 23:09:18 +0800
17845
17846    Translations: Update the German translation.
17847
17848 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
17849 1 file changed, 94 insertions(+), 95 deletions(-)
17850
17851commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524
17852Author: Jia Tan <jiat0218@gmail.com>
17853Date:   2023-05-17 20:30:01 +0800
17854
17855    Translations: Update the Croatian translation.
17856
17857 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
17858 1 file changed, 93 insertions(+), 94 deletions(-)
17859
17860commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d
17861Author: Jia Tan <jiat0218@gmail.com>
17862Date:   2023-05-17 20:26:54 +0800
17863
17864    Translations: Update Korean translation of man pages.
17865
17866 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
17867 1 file changed, 568 insertions(+), 2447 deletions(-)
17868
17869commit d5ef1f6faf7c270f60093629257150085ecf19ca
17870Author: Jia Tan <jiat0218@gmail.com>
17871Date:   2023-05-17 20:13:01 +0800
17872
17873    Translations: Update the Korean translation.
17874
17875 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
17876 1 file changed, 158 insertions(+), 161 deletions(-)
17877
17878commit e22d0b0f2e301e7906d0106689d967ed84362028
17879Author: Jia Tan <jiat0218@gmail.com>
17880Date:   2023-05-16 23:49:09 +0800
17881
17882    Translations: Update the Spanish translation.
17883
17884 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
17885 1 file changed, 158 insertions(+), 161 deletions(-)
17886
17887commit f50da74d52d01f6cfd826a921249e289cf671678
17888Author: Jia Tan <jiat0218@gmail.com>
17889Date:   2023-05-16 23:47:23 +0800
17890
17891    Translations: Update the Romanian translation.
17892
17893 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
17894 1 file changed, 98 insertions(+), 97 deletions(-)
17895
17896commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696
17897Author: Jia Tan <jiat0218@gmail.com>
17898Date:   2023-05-16 23:45:43 +0800
17899
17900    Translations: Update Romanian translation of man pages.
17901
17902 po4a/ro.po | 19 ++++++++++---------
17903 1 file changed, 10 insertions(+), 9 deletions(-)
17904
17905commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea
17906Author: Jia Tan <jiat0218@gmail.com>
17907Date:   2023-05-16 23:43:51 +0800
17908
17909    Translations: Update Ukrainian translation of man pages.
17910
17911 po4a/uk.po | 12 ++++++------
17912 1 file changed, 6 insertions(+), 6 deletions(-)
17913
17914commit c3e8fcbc2db4861f92ad15606c995bd255803c52
17915Author: Jia Tan <jiat0218@gmail.com>
17916Date:   2023-05-16 23:37:54 +0800
17917
17918    Translations: Update the Ukrainian translation.
17919
17920 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
17921 1 file changed, 159 insertions(+), 162 deletions(-)
17922
17923commit 27b81b84fcedbc55aa6e6b21004c44070b15b038
17924Author: Jia Tan <jiat0218@gmail.com>
17925Date:   2023-05-16 23:07:35 +0800
17926
17927    Translations: Update the Polish translation.
17928
17929 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
17930 1 file changed, 155 insertions(+), 161 deletions(-)
17931
17932commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed
17933Author: Jia Tan <jiat0218@gmail.com>
17934Date:   2023-05-16 22:52:14 +0800
17935
17936    Translations: Update the Swedish translation.
17937
17938 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
17939 1 file changed, 158 insertions(+), 161 deletions(-)
17940
17941commit 6699a29673f227c4664826db485ed9f7596320d2
17942Author: Jia Tan <jiat0218@gmail.com>
17943Date:   2023-05-16 21:21:38 +0800
17944
17945    Translations: Update the Esperanto translation.
17946
17947 po/eo.po | 34 +++++++++++++++++-----------------
17948 1 file changed, 17 insertions(+), 17 deletions(-)
17949
17950commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf
17951Author: Jia Tan <jiat0218@gmail.com>
17952Date:   2023-05-13 21:21:54 +0800
17953
17954    liblzma: Slightly rewords lzma_str_list_filters() documentation.
17955
17956    Reword "options required" to "supported options". The previous may have
17957    suggested that the options listed were all required anytime a filter is
17958    used for encoding or decoding. The reword makes this more clear that
17959    adjusting the options is optional.
17960
17961 src/liblzma/api/lzma/filter.h | 2 +-
17962 1 file changed, 1 insertion(+), 1 deletion(-)
17963
17964commit 3374a5359e52f1671d8f831d65827d5020fe2595
17965Author: Jia Tan <jiat0218@gmail.com>
17966Date:   2023-05-11 23:49:23 +0800
17967
17968    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
17969
17970    None of the liblzma functions may throw an exception, so this
17971    attribute should be applied to all liblzma API functions.
17972
17973 src/liblzma/api/lzma/container.h | 5 +++--
17974 1 file changed, 3 insertions(+), 2 deletions(-)
17975
17976commit 8f236574986e7c414c0ea059f441982d1387e6a4
17977Author: Jia Tan <jiat0218@gmail.com>
17978Date:   2023-05-09 20:20:06 +0800
17979
17980    liblzma: Exports lzma_mt_block_size() as an API function.
17981
17982    The lzma_mt_block_size() was previously just an internal function for
17983    the multithreaded .xz encoder. It is used to provide a recommended Block
17984    size for a given filter chain.
17985
17986    This function is helpful to determine the maximum Block size for the
17987    multithreaded .xz encoder when one wants to change the filters between
17988    blocks. Then, this determined Block size can be provided to
17989    lzma_stream_encoder_mt() in the lzma_mt options parameter when
17990    intializing the coder. This requires one to know all the filter chains
17991    they are using before starting to encode (or at least the filter chain
17992    that will need the largest Block size), but that isn't a bad limitation.
17993
17994 src/liblzma/api/lzma/container.h       | 28 ++++++++++++++++++++++++++++
17995 src/liblzma/common/filter_encoder.c    | 16 ++++++++++------
17996 src/liblzma/common/filter_encoder.h    |  6 +-----
17997 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++-----------
17998 src/liblzma/liblzma_generic.map        |  5 +++++
17999 src/liblzma/liblzma_linux.map          |  5 +++++
18000 src/liblzma/lzma/lzma2_encoder.c       |  3 +++
18001 7 files changed, 61 insertions(+), 22 deletions(-)
18002
18003commit d0f33d672a4da7985ebb5ba8d829f885de49c171
18004Author: Jia Tan <jiat0218@gmail.com>
18005Date:   2023-05-08 22:58:09 +0800
18006
18007    liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
18008
18009    This creates an internal liblzma macro to test if the dictionary size
18010    is valid for encoding.
18011
18012 src/liblzma/lz/lz_encoder.c | 4 +---
18013 src/liblzma/lz/lz_encoder.h | 8 ++++++++
18014 2 files changed, 9 insertions(+), 3 deletions(-)
18015
18016commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f
18017Author: Jia Tan <jiat0218@gmail.com>
18018Date:   2023-05-02 20:39:56 +0800
18019
18020    Add NEWS for 5.4.3.
18021
18022 NEWS | 10 ++++++++++
18023 1 file changed, 10 insertions(+)
18024
18025commit 77050b78364ffb6b0f129e742b7c31602d725c08
18026Author: Jia Tan <jiat0218@gmail.com>
18027Date:   2023-05-02 20:39:37 +0800
18028
18029    Add NEWS for 5.2.12.
18030
18031 NEWS | 14 ++++++++++++++
18032 1 file changed, 14 insertions(+)
18033
18034commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0
18035Author: Jia Tan <jiat0218@gmail.com>
18036Date:   2023-05-04 20:38:52 +0800
18037
18038    Translations: Update the Croatian translation.
18039
18040 po/hr.po | 6 +++---
18041 1 file changed, 3 insertions(+), 3 deletions(-)
18042
18043commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9
18044Author: Jia Tan <jiat0218@gmail.com>
18045Date:   2023-05-04 20:30:25 +0800
18046
18047    tuklib_integer.h: Reverts previous commit.
18048
18049    Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an
18050    error if the integer size was 32 bit.
18051
18052 src/common/tuklib_integer.h | 4 ++--
18053 1 file changed, 2 insertions(+), 2 deletions(-)
18054
18055commit 6be460dde07113fe3f08f814b61ddc3264125a96
18056Author: Jia Tan <jiat0218@gmail.com>
18057Date:   2023-05-04 19:25:20 +0800
18058
18059    tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=.
18060
18061 src/common/tuklib_integer.h | 4 ++--
18062 1 file changed, 2 insertions(+), 2 deletions(-)
18063
18064commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878
18065Author: Lasse Collin <lasse.collin@tukaani.org>
18066Date:   2023-05-03 22:46:42 +0300
18067
18068    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
18069
18070    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
18071    Also, this has >= instead of == since ints larger than 32 bits would
18072    work too even if not relevant in practice.
18073
18074 src/common/tuklib_integer.h | 4 ++--
18075 1 file changed, 2 insertions(+), 2 deletions(-)
18076
18077commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68
18078Author: Jia Tan <jiat0218@gmail.com>
18079Date:   2023-04-25 20:06:15 +0800
18080
18081    CI: Adds a build and test for small configuration.
18082
18083 .github/workflows/ci.yml | 5 +++++
18084 1 file changed, 5 insertions(+)
18085
18086commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43
18087Author: Jia Tan <jiat0218@gmail.com>
18088Date:   2023-04-25 20:05:26 +0800
18089
18090    CI: ci_build.sh allows configuring small build.
18091
18092 build-aux/ci_build.sh | 7 ++++++-
18093 1 file changed, 6 insertions(+), 1 deletion(-)
18094
18095commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d
18096Author: Jia Tan <jiat0218@gmail.com>
18097Date:   2023-04-20 20:15:00 +0800
18098
18099    Update THANKS.
18100
18101 THANKS | 1 +
18102 1 file changed, 1 insertion(+)
18103
18104commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
18105Author: Jia Tan <jiat0218@gmail.com>
18106Date:   2023-04-19 22:22:16 +0800
18107
18108    Windows: Include <intrin.h> when needed.
18109
18110    Legacy Windows did not need to #include <intrin.h> to use the MSVC
18111    intrinsics. Newer versions likely just issue a warning, but the MSVC
18112    documentation says to include the header file for the intrinsics we use.
18113
18114    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
18115    needed in tuklib_integer.h to only include <intrin.h> when it will is
18116    actually needed.
18117
18118 src/common/tuklib_integer.h    |  6 ++++++
18119 src/liblzma/common/memcmplen.h | 10 ++++++++++
18120 2 files changed, 16 insertions(+)
18121
18122commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7
18123Author: Jia Tan <jiat0218@gmail.com>
18124Date:   2023-04-19 21:59:03 +0800
18125
18126    tuklib_integer: Use __builtin_clz() with Clang.
18127
18128    Clang has support for __builtin_clz(), but previously Clang would
18129    fallback to either the MSVC intrinsic or the regular C code. This was
18130    discovered due to a bug where a new version of Clang required the
18131    <intrin.h> header file in order to use the MSVC intrinsics.
18132
18133    Thanks to Anton Kochkov for notifying us about the bug.
18134
18135 src/common/tuklib_integer.h | 6 +++---
18136 1 file changed, 3 insertions(+), 3 deletions(-)
18137
18138commit 3938718ce3773c90755785c0df8777f133b7ae29
18139Author: Lasse Collin <lasse.collin@tukaani.org>
18140Date:   2023-04-14 18:42:33 +0300
18141
18142    liblzma: Update project maintainers in lzma.h.
18143
18144    AUTHORS was updated earlier, lzma.h was simply forgotten.
18145
18146 src/liblzma/api/lzma.h | 2 +-
18147 1 file changed, 1 insertion(+), 1 deletion(-)
18148
18149commit 2a89670ab295e377f8b44f5bda6d198deb8ea285
18150Author: Jia Tan <jiat0218@gmail.com>
18151Date:   2023-04-13 20:45:19 +0800
18152
18153    liblzma: Cleans up old commented out code.
18154
18155 src/liblzma/common/alone_encoder.c | 11 -----------
18156 1 file changed, 11 deletions(-)
18157
18158commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81
18159Author: Jia Tan <jiat0218@gmail.com>
18160Date:   2023-04-07 20:46:41 +0800
18161
18162    Docs: Add missing word to SECURITY.md.
18163
18164 .github/SECURITY.md | 2 +-
18165 1 file changed, 1 insertion(+), 1 deletion(-)
18166
18167commit fb9c50f38a17bf37581de4034b36c8df8ec90a87
18168Author: Jia Tan <jiat0218@gmail.com>
18169Date:   2023-04-07 20:43:22 +0800
18170
18171    Update THANKS.
18172
18173 THANKS | 1 +
18174 1 file changed, 1 insertion(+)
18175
18176commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
18177Author: Jia Tan <jiat0218@gmail.com>
18178Date:   2023-04-07 20:42:12 +0800
18179
18180    Docs: Minor edits to SECURITY.md.
18181
18182 .github/SECURITY.md | 25 ++++++++++++++++++++-----
18183 1 file changed, 20 insertions(+), 5 deletions(-)
18184
18185commit 6549df8dd53f358345957e232648fdb699930074
18186Author: Gabriela Gutierrez <gabigutierrez@google.com>
18187Date:   2023-04-07 12:08:30 +0000
18188
18189    Docs: Create SECURITY.md
18190
18191    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
18192
18193 .github/SECURITY.md | 14 ++++++++++++++
18194 1 file changed, 14 insertions(+)
18195
18196commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
18197Author: Jia Tan <jiat0218@gmail.com>
18198Date:   2023-03-28 22:48:24 +0800
18199
18200    CI: Tests for disabling threading on CMake builds.
18201
18202 .github/workflows/ci.yml | 3 ---
18203 build-aux/ci_build.sh    | 4 ++--
18204 2 files changed, 2 insertions(+), 5 deletions(-)
18205
18206commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d
18207Author: Jia Tan <jiat0218@gmail.com>
18208Date:   2023-03-28 22:45:42 +0800
18209
18210    CI: Removes CMakeCache.txt between builds.
18211
18212    If the cache file is not removed, CMake will not reset configurations
18213    back to their default values. In order to make the tests independent, it
18214    is simplest to purge the cache. Unfortunatly, this will slow down the
18215    tests a little and repeat some checks.
18216
18217 build-aux/ci_build.sh | 2 ++
18218 1 file changed, 2 insertions(+)
18219
18220commit 2cb6028fc31de082b7f927632363bb1426b61aaa
18221Author: Jia Tan <jiat0218@gmail.com>
18222Date:   2023-03-28 22:32:40 +0800
18223
18224    CMake: Update liblzma-config.cmake generation.
18225
18226    Now that the threading is configurable, the liblzma CMake package only
18227    needs the threading library when using POSIX threads.
18228
18229 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
18230 1 file changed, 22 insertions(+), 11 deletions(-)
18231
18232commit 4d7fac0b07cc722825ba8d7838c558827e635611
18233Author: Jia Tan <jiat0218@gmail.com>
18234Date:   2023-03-28 22:25:33 +0800
18235
18236    CMake: Allows setting thread method.
18237
18238    The thread method is now configurable for the CMake build. It matches
18239    the Autotools build by allowing ON (pick the best threading method),
18240    OFF (no threading), posix, win95, and vista. If both Windows and
18241    posix threading are both available, then ON will choose Windows
18242    threading. Windows threading will also not use:
18243
18244    target_link_libraries(liblzma Threads::Threads)
18245
18246    since on systems like MinGW-w64 it would link the posix threads
18247    without purpose.
18248
18249 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
18250 1 file changed, 104 insertions(+), 40 deletions(-)
18251
18252commit 20cd905d898c1494dee42b78530769bb9c9f8076
18253Author: Jia Tan <jiat0218@gmail.com>
18254Date:   2023-03-24 23:05:48 +0800
18255
18256    CI: Runs CMake feature tests.
18257
18258    Now, CMake will run similar feature disable tests that the Autotools
18259    version did before. In order to do this without repeating lines in
18260    ci.yml, it now makes sense to use the GitHub Workflow matrix to create
18261    a loop.
18262
18263 .github/workflows/ci.yml | 169 +++++++++++++++--------------------------------
18264 1 file changed, 55 insertions(+), 114 deletions(-)
18265
18266commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229
18267Author: Jia Tan <jiat0218@gmail.com>
18268Date:   2023-03-24 20:35:11 +0800
18269
18270    CI: ci_build.sh allows CMake features to be configured.
18271
18272    Also included various clean ups for style and helper functions for
18273    repeated work.
18274
18275 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++-------------------
18276 1 file changed, 143 insertions(+), 90 deletions(-)
18277
18278commit cf3d1f130e50cf63da4bb1031771605f6f443b6a
18279Author: Jia Tan <jiat0218@gmail.com>
18280Date:   2023-03-24 20:06:33 +0800
18281
18282    CI: Change ci_build.sh to use bash instead of sh.
18283
18284    This script is only meant to be run as part of the CI build/test process
18285    on machines that are known to have bash (Ubuntu and MacOS). If this
18286    assumption changes in the future, then the bash specific commands will
18287    need to be replaced with a more portable option. For now, it is
18288    convenient to use bash commands.
18289
18290 build-aux/ci_build.sh | 2 +-
18291 1 file changed, 1 insertion(+), 1 deletion(-)
18292
18293commit ddfe164368e779c40d061aa4ccc376129e92f8e1
18294Author: Jia Tan <jiat0218@gmail.com>
18295Date:   2023-03-24 20:05:59 +0800
18296
18297    CMake: Only build xzdec if decoders are enabled.
18298
18299 CMakeLists.txt | 2 +-
18300 1 file changed, 1 insertion(+), 1 deletion(-)
18301
18302commit 116e81f002c503d3c3cd12726db8f9116e58ef25
18303Author: Jia Tan <jiat0218@gmail.com>
18304Date:   2023-03-22 15:42:04 +0800
18305
18306    Build: Removes redundant check for LZMA1 filter support.
18307
18308 src/liblzma/lzma/Makefile.inc | 5 +----
18309 1 file changed, 1 insertion(+), 4 deletions(-)
18310
18311commit 0ba234f692772595329d225462d391fe2c199d0a
18312Author: Lasse Collin <lasse.collin@tukaani.org>
18313Date:   2023-03-23 15:14:29 +0200
18314
18315    CMake: Bump maximum policy version to 3.26.
18316
18317    It adds only one new policy related to FOLDERS which we don't use.
18318    This makes it clear that the code is compatible with the policies
18319    up to 3.26.
18320
18321 CMakeLists.txt | 2 +-
18322 1 file changed, 1 insertion(+), 1 deletion(-)
18323
18324commit b0891684b4436aed31510fddcbb218d513bd5489
18325Author: Jia Tan <jiat0218@gmail.com>
18326Date:   2023-03-21 23:36:00 +0800
18327
18328    CMake: Conditionally build xz list.* files if decoders are enabled.
18329
18330 CMakeLists.txt | 9 +++++++--
18331 1 file changed, 7 insertions(+), 2 deletions(-)
18332
18333commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227
18334Author: Jia Tan <jiat0218@gmail.com>
18335Date:   2023-02-25 11:46:50 +0800
18336
18337    CMake: Allow configuring features as cache variables.
18338
18339    This allows users to change the features they build either in
18340    CMakeCache.txt or by using a CMake GUI. The sources built for
18341    liblzma are affected by this too, so only the necessary files
18342    will be compiled.
18343
18344 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
18345 1 file changed, 391 insertions(+), 137 deletions(-)
18346
18347commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff
18348Author: Lasse Collin <lasse.collin@tukaani.org>
18349Date:   2023-03-21 14:07:51 +0200
18350
18351    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
18352
18353    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
18354    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
18355
18356 configure.ac | 3 +++
18357 1 file changed, 3 insertions(+)
18358
18359commit 53cc475f2652d9e390ca002018dfd0af0626ef80
18360Author: Lasse Collin <lasse.collin@tukaani.org>
18361Date:   2023-03-21 14:04:37 +0200
18362
18363    Build: configure.ac: Use AS_IF and AS_CASE where required.
18364
18365    This makes no functional difference in the generated configure
18366    (at least with the Autotools versions I have installed) but this
18367    change might prevent future bugs like the one that was just
18368    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
18369
18370 configure.ac | 30 +++++++++++++++---------------
18371 1 file changed, 15 insertions(+), 15 deletions(-)
18372
18373commit 3b8890a40233b6c783bb101ec14405e786871775
18374Author: Lasse Collin <lasse.collin@tukaani.org>
18375Date:   2023-03-21 13:12:03 +0200
18376
18377    Update THANKS.
18378
18379 THANKS | 1 +
18380 1 file changed, 1 insertion(+)
18381
18382commit 5a5bd7f871818029d5ccbe189f087f591258c294
18383Author: Lasse Collin <lasse.collin@tukaani.org>
18384Date:   2023-03-21 13:11:49 +0200
18385
18386    Build: Fix --disable-threads breaking the building of shared libs.
18387
18388    This is broken in the releases 5.2.6 to 5.4.2. A workaround
18389    for these releases is to pass EGREP='grep -E' as an argument
18390    to configure in addition to --disable-threads.
18391
18392    The problem appeared when m4/ax_pthread.m4 was updated in
18393    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
18394    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
18395    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
18396    but this was only executed if POSIX threads were enabled.
18397    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
18398    omits it as AC_PROG_EGREP has already been required earlier.
18399    Thus, if not using POSIX threads, the shell variable EGREP
18400    would be undefined in the Libtool code in configure.
18401
18402    ax_pthread.m4 is fine. The bug was in configure.ac which called
18403    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
18404    ensures that all AC_REQUIREs get always run.
18405
18406    Thanks to Frank Busse for reporting the bug.
18407    Fixes: https://github.com/tukaani-project/xz/issues/45
18408
18409 configure.ac | 16 ++++++++--------
18410 1 file changed, 8 insertions(+), 8 deletions(-)
18411
18412commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06
18413Author: Lasse Collin <lasse.collin@tukaani.org>
18414Date:   2023-03-19 22:45:59 +0200
18415
18416    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
18417
18418    Thanks to Christian Hesse for reporting the issue.
18419    Fixes: https://github.com/tukaani-project/xz/issues/44
18420
18421 src/liblzma/common/memcmplen.h | 3 ++-
18422 1 file changed, 2 insertions(+), 1 deletion(-)
18423
18424commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce
18425Author: Jia Tan <jiat0218@gmail.com>
18426Date:   2023-03-18 22:10:57 +0800
18427
18428    Add NEWS for 5.4.2.
18429
18430 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
18431 1 file changed, 48 insertions(+)
18432
18433commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6
18434Author: Jia Tan <jiat0218@gmail.com>
18435Date:   2023-03-18 22:10:12 +0800
18436
18437    Add NEWS for 5.2.11.
18438
18439 NEWS | 27 +++++++++++++++++++++++++++
18440 1 file changed, 27 insertions(+)
18441
18442commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40
18443Author: Lasse Collin <lasse.collin@tukaani.org>
18444Date:   2023-03-18 16:00:54 +0200
18445
18446    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
18447
18448 COPYING.GPLv3 | 8 ++++----
18449 1 file changed, 4 insertions(+), 4 deletions(-)
18450
18451commit b473a92891f7e991398a3b5eff305f6f2b6d7293
18452Author: Lasse Collin <lasse.collin@tukaani.org>
18453Date:   2023-03-18 15:51:57 +0200
18454
18455    Change a few HTTP URLs to HTTPS.
18456
18457    The xz man page timestamp was intentionally left unchanged.
18458
18459 INSTALL                    |  2 +-
18460 README                     |  8 ++++----
18461 configure.ac               |  2 +-
18462 dos/INSTALL.txt            |  4 ++--
18463 src/liblzma/api/lzma.h     |  8 ++++----
18464 src/liblzma/check/sha256.c |  2 +-
18465 src/xz/xz.1                |  2 +-
18466 windows/INSTALL-MinGW.txt  | 10 +++++-----
18467 8 files changed, 19 insertions(+), 19 deletions(-)
18468
18469commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8
18470Author: Jia Tan <jiat0218@gmail.com>
18471Date:   2023-03-18 00:40:28 +0800
18472
18473    CMake: Fix typo in a comment.
18474
18475 CMakeLists.txt | 2 +-
18476 1 file changed, 1 insertion(+), 1 deletion(-)
18477
18478commit 76e2315e14c399c15cc90e7930fd4d3d086b0227
18479Author: Lasse Collin <lasse.collin@tukaani.org>
18480Date:   2023-03-17 18:36:22 +0200
18481
18482    Windows: build.bash: Copy liblzma API docs to the output package.
18483
18484 windows/build.bash | 3 ++-
18485 1 file changed, 2 insertions(+), 1 deletion(-)
18486
18487commit 133cf55edc5ce92952d2709abd992e48ef1f45ee
18488Author: Lasse Collin <lasse.collin@tukaani.org>
18489Date:   2023-03-17 08:53:38 +0200
18490
18491    Windows: Add microlzma_*.c to the VS project files.
18492
18493    These should have been included in 5.3.2alpha already.
18494
18495 windows/vs2013/liblzma.vcxproj     | 2 ++
18496 windows/vs2013/liblzma_dll.vcxproj | 2 ++
18497 windows/vs2017/liblzma.vcxproj     | 2 ++
18498 windows/vs2017/liblzma_dll.vcxproj | 2 ++
18499 windows/vs2019/liblzma.vcxproj     | 2 ++
18500 windows/vs2019/liblzma_dll.vcxproj | 2 ++
18501 6 files changed, 12 insertions(+)
18502
18503commit 75c9ca450fab6982fda9286b168081c9d54126cd
18504Author: Lasse Collin <lasse.collin@tukaani.org>
18505Date:   2023-03-17 08:43:51 +0200
18506
18507    CMake: Add microlzma_*.c to the build.
18508
18509    These should have been included in 5.3.2alpha already.
18510
18511 CMakeLists.txt | 2 ++
18512 1 file changed, 2 insertions(+)
18513
18514commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b
18515Author: Lasse Collin <lasse.collin@tukaani.org>
18516Date:   2023-03-17 08:41:36 +0200
18517
18518    Build: Update comments about unaligned access to mention 64-bit.
18519
18520 cmake/tuklib_integer.cmake | 7 +++----
18521 m4/tuklib_integer.m4       | 4 ++--
18522 2 files changed, 5 insertions(+), 6 deletions(-)
18523
18524commit 5e57e3301319f20c35f8111dea73fa58403b96b1
18525Author: Lasse Collin <lasse.collin@tukaani.org>
18526Date:   2023-03-17 00:02:30 +0200
18527
18528    Tests: Update .gitignore.
18529
18530 .gitignore | 3 ++-
18531 1 file changed, 2 insertions(+), 1 deletion(-)
18532
18533commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac
18534Author: Lasse Collin <lasse.collin@tukaani.org>
18535Date:   2023-03-14 20:04:03 +0200
18536
18537    po4a/update-po: Display the script name consistently in error messages.
18538
18539 po4a/update-po | 2 +-
18540 1 file changed, 1 insertion(+), 1 deletion(-)
18541
18542commit 509157c80c500426ec853bd992d684ebafc8500c
18543Author: Jia Tan <jiat0218@gmail.com>
18544Date:   2023-03-17 01:30:36 +0800
18545
18546    Doc: Rename Doxygen HTML doc directory name liblzma => api.
18547
18548    When the docs are installed, calling the directory "liblzma" is
18549    confusing since multiple other files in the doc directory are for
18550    liblzma. This should also make it more natural for distros when they
18551    package the documentation.
18552
18553 .gitignore             |  2 +-
18554 Makefile.am            | 18 +++++++++---------
18555 PACKAGERS              |  4 ++--
18556 doxygen/Doxyfile       |  2 +-
18557 doxygen/update-doxygen | 18 +++++++++---------
18558 5 files changed, 22 insertions(+), 22 deletions(-)
18559
18560commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3
18561Author: Jia Tan <jiat0218@gmail.com>
18562Date:   2023-03-16 22:07:15 +0800
18563
18564    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
18565
18566    This was left in by mistake since an early version of the ARM64 filter
18567    used a different struct for its options.
18568
18569 src/liblzma/api/lzma/bcj.h | 2 +-
18570 1 file changed, 1 insertion(+), 1 deletion(-)
18571
18572commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d
18573Author: Jia Tan <jiat0218@gmail.com>
18574Date:   2023-03-16 21:44:02 +0800
18575
18576    CI: Add doxygen as a dependency.
18577
18578    Autogen now requires --no-doxygen or having doxygen installed to run
18579    without errors.
18580
18581 .github/workflows/ci.yml | 5 ++---
18582 1 file changed, 2 insertions(+), 3 deletions(-)
18583
18584commit f68f4b27f62f53fdac570885a1f4f23367ce6599
18585Author: Lasse Collin <lasse.collin@tukaani.org>
18586Date:   2023-03-15 19:19:13 +0200
18587
18588    COPYING: Add a note about the included Doxygen-generated HTML.
18589
18590 COPYING | 11 +++++++++++
18591 1 file changed, 11 insertions(+)
18592
18593commit 8979308528c1f45cb9ee52d511f05232b4ad90a1
18594Author: Jia Tan <jiat0218@gmail.com>
18595Date:   2023-03-16 21:41:09 +0800
18596
18597    Doc: Update PACKAGERS with details about liblzma API docs install.
18598
18599 PACKAGERS | 22 ++++++++++++++++------
18600 1 file changed, 16 insertions(+), 6 deletions(-)
18601
18602commit 55ba6e93004842ae0a0792214a23504267ad8f43
18603Author: Jia Tan <jiat0218@gmail.com>
18604Date:   2023-03-16 21:38:32 +0800
18605
18606    liblzma: Add set lzma.h as the main page for Doxygen documentation.
18607
18608    The \mainpage command is used in the first block of comments in lzma.h.
18609    This changes the previously nearly empty index.html to use the first
18610    comment block in lzma.h for its contents.
18611
18612    lzma.h is no longer documented separately, but this is for the better
18613    since lzma.h only defined a few macros that users do not need to use.
18614    The individual API header files all have a disclaimer that they should
18615    not be #included directly, so there should be no confusion on the fact
18616    that lzma.h should be the only header used by applications.
18617
18618    Additionally, the note "See ../lzma.h for information about liblzma as
18619    a whole." was removed since lzma.h is now the main page of the
18620    generated HTML and does not have its own page anymore. So it would be
18621    confusing in the HTML version and was only a "nice to have" when
18622    browsing the source files.
18623
18624 src/liblzma/api/lzma.h              | 1 +
18625 src/liblzma/api/lzma/base.h         | 2 --
18626 src/liblzma/api/lzma/bcj.h          | 2 --
18627 src/liblzma/api/lzma/block.h        | 2 --
18628 src/liblzma/api/lzma/check.h        | 2 --
18629 src/liblzma/api/lzma/container.h    | 2 --
18630 src/liblzma/api/lzma/delta.h        | 2 --
18631 src/liblzma/api/lzma/filter.h       | 2 --
18632 src/liblzma/api/lzma/hardware.h     | 2 --
18633 src/liblzma/api/lzma/index.h        | 2 --
18634 src/liblzma/api/lzma/index_hash.h   | 4 +---
18635 src/liblzma/api/lzma/lzma12.h       | 2 --
18636 src/liblzma/api/lzma/stream_flags.h | 2 --
18637 src/liblzma/api/lzma/version.h      | 2 --
18638 src/liblzma/api/lzma/vli.h          | 2 --
18639 15 files changed, 2 insertions(+), 29 deletions(-)
18640
18641commit 16f21255597f6a57e5692780f962cdc090f62b8c
18642Author: Jia Tan <jiat0218@gmail.com>
18643Date:   2023-03-16 21:37:32 +0800
18644
18645    Build: Generate doxygen documentation in autogen.sh.
18646
18647    Another command line option (--no-doxygen) was added to disable
18648    creating the doxygen documenation in cases where it not wanted or
18649    if the doxygen tool is not installed.
18650
18651 autogen.sh | 35 +++++++++++++++++++++++++++++------
18652 1 file changed, 29 insertions(+), 6 deletions(-)
18653
18654commit 1321852a3be7196bd7fcfd146221a5669e46407c
18655Author: Jia Tan <jiat0218@gmail.com>
18656Date:   2023-03-16 21:35:55 +0800
18657
18658    Build: Create doxygen/update-doxygen script.
18659
18660    This is a helper script to generate the Doxygen documentation. It can be
18661    run in 'liblzma' or 'internal' mode by setting the first argument. It
18662    will default to 'liblzma' mode and only generate documentation for the
18663    liblzma API header files.
18664
18665    The helper script will be run during the custom mydist hook when we
18666    create releases. This hook already alters the source directory, so its
18667    fine to do it here too. This way, we can include the Doxygen generated
18668    files in the distrubtion and when installing.
18669
18670    In 'liblzma' mode, the JavaScript is stripped from the .html files and
18671    the .js files are removed. This avoids license hassle from jQuery and
18672    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
18673
18674 Makefile.am            |   1 +
18675 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
18676 2 files changed, 112 insertions(+)
18677
18678commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b
18679Author: Jia Tan <jiat0218@gmail.com>
18680Date:   2023-03-16 21:34:36 +0800
18681
18682    Build: Install Doxygen docs and include in distribution if generated.
18683
18684    Added a install-data-local target to install the Doxygen documentation
18685    only when it has been generated. In order to correctly remove the docs,
18686    a corresponding uninstall-local target was added.
18687
18688    If the doxygen docs exist in the source tree, they will also be included
18689    in the distribution now too.
18690
18691 Makefile.am | 18 ++++++++++++++++++
18692 1 file changed, 18 insertions(+)
18693
18694commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73
18695Author: Lasse Collin <lasse.collin@tukaani.org>
18696Date:   2023-03-16 21:23:48 +0800
18697
18698    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
18699
18700    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
18701    can have the tags that need to be configured piped into the doxygen
18702    command through stdin with the overrides after Doxyfile's contents.
18703
18704    Going forward, the documentation should be generated in two different
18705    modes: liblzma or internal.
18706
18707    liblzma is useful for most users. It is the documentation for just
18708    the liblzma API header files. This is the default.
18709
18710    internal is for people who want to understand how xz and liblzma work.
18711    It might be useful for people who want to contribute to the project.
18712
18713 .gitignore                      |   3 +-
18714 Makefile.am                     |   1 -
18715 configure.ac                    |  40 ---
18716 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++---------------
18717 4 files changed, 456 insertions(+), 309 deletions(-)
18718
18719commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f
18720Author: Jia Tan <jiat0218@gmail.com>
18721Date:   2023-02-28 23:22:36 +0800
18722
18723    Tests: Remove unused macros and functions.
18724
18725 tests/tests.h | 75 -----------------------------------------------------------
18726 1 file changed, 75 deletions(-)
18727
18728commit af55191102f01e76de658c881299f0909ca0feda
18729Author: Jia Tan <jiat0218@gmail.com>
18730Date:   2022-12-29 21:52:15 +0800
18731
18732    liblzma: Defines masks for return values from lzma_index_checks().
18733
18734 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++
18735 tests/test_index.c           | 22 +++++++++++-----------
18736 2 files changed, 34 insertions(+), 11 deletions(-)
18737
18738commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73
18739Author: Jia Tan <jiat0218@gmail.com>
18740Date:   2023-01-12 22:29:07 +0800
18741
18742    Tests: Refactors existing lzma_index tests.
18743
18744    Converts the existing lzma_index tests into tuktests and covers every
18745    API function from index.h except for lzma_file_info_decoder, which can
18746    be tested in the future.
18747
18748 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
18749 1 file changed, 1492 insertions(+), 544 deletions(-)
18750
18751commit 717aa3651ce582807f379d8654c2516e1594df77
18752Author: Lasse Collin <lasse.collin@tukaani.org>
18753Date:   2023-03-11 18:42:08 +0200
18754
18755    xz: Simplify the error-label in Capsicum sandbox code.
18756
18757    Also remove unneeded "sandbox_allowed = false;" as this code
18758    will never be run more than once (making it work with multiple
18759    input files isn't trivial).
18760
18761 src/xz/file_io.c | 27 ++++++++++++---------------
18762 1 file changed, 12 insertions(+), 15 deletions(-)
18763
18764commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75
18765Author: Lasse Collin <lasse.collin@tukaani.org>
18766Date:   2023-03-07 19:59:23 +0200
18767
18768    xz: Make Capsicum sandbox more strict with stdin and stdout.
18769
18770 src/xz/file_io.c | 8 ++++++++
18771 1 file changed, 8 insertions(+)
18772
18773commit 916448d624aaf55cef0fc3e53754affb8c4f309d
18774Author: Jia Tan <jiat0218@gmail.com>
18775Date:   2023-03-08 23:08:46 +0800
18776
18777    Revert: "Add warning if Capsicum sandbox system calls are unsupported."
18778
18779    The warning causes the exit status to be 2, so this will cause problems
18780    for many scripted use cases for xz. The sandbox usage is already very
18781    limited already, so silently disabling this allows it to be more usable.
18782
18783 src/xz/file_io.c | 10 ++++------
18784 1 file changed, 4 insertions(+), 6 deletions(-)
18785
18786commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f
18787Author: Jia Tan <jiat0218@gmail.com>
18788Date:   2023-03-07 20:02:22 +0800
18789
18790    xz: Fix -Wunused-label in io_sandbox_enter().
18791
18792    Thanks to Xin Li for recommending the fix.
18793
18794 src/xz/file_io.c | 4 ++--
18795 1 file changed, 2 insertions(+), 2 deletions(-)
18796
18797commit 5fb936786601a1cd013a5d436adde65982b1e13c
18798Author: Jia Tan <jiat0218@gmail.com>
18799Date:   2023-03-06 21:37:45 +0800
18800
18801    xz: Add warning if Capsicum sandbox system calls are unsupported.
18802
18803    The warning is only used when errno == ENOSYS. Otherwise, xz still
18804    issues a fatal error.
18805
18806 src/xz/file_io.c | 2 ++
18807 1 file changed, 2 insertions(+)
18808
18809commit 61ee82cb1232a402c82282bbae42821f2b952b0d
18810Author: Jia Tan <jiat0218@gmail.com>
18811Date:   2023-03-06 21:27:53 +0800
18812
18813    xz: Skip Capsicum sandbox system calls when they are unsupported.
18814
18815    If a system has the Capsicum header files but does not actually
18816    implement the system calls, then this would render xz unusable. Instead,
18817    we can check if errno == ENOSYS and not issue a fatal error.
18818
18819 src/xz/file_io.c | 22 +++++++++++++++++-----
18820 1 file changed, 17 insertions(+), 5 deletions(-)
18821
18822commit f070722b57ba975a0dff36492d766f03026b1d21
18823Author: Jia Tan <jiat0218@gmail.com>
18824Date:   2023-03-06 21:08:26 +0800
18825
18826    xz: Reorder cap_enter() to beginning of capsicum sandbox code.
18827
18828    cap_enter() puts the process into the sandbox. If later calls to
18829    cap_rights_limit() fail, then the process can still have some extra
18830    protections.
18831
18832 src/xz/file_io.c | 6 +++---
18833 1 file changed, 3 insertions(+), 3 deletions(-)
18834
18835commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f
18836Author: Jia Tan <jiat0218@gmail.com>
18837Date:   2023-02-24 23:46:23 +0800
18838
18839    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
18840
18841    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
18842    usable in an encoder even if it returns false (success). If liblzma
18843    is built with default configurations, then the options will always be
18844    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
18845    the options may not be usable depending on the preset level requested.
18846
18847    The documentation was updated to reflect this complexity, since this
18848    behavior was unclear before.
18849
18850 src/liblzma/api/lzma/lzma12.h | 5 +++++
18851 1 file changed, 5 insertions(+)
18852
18853commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99
18854Author: Lasse Collin <lasse.collin@tukaani.org>
18855Date:   2023-02-27 18:38:35 +0200
18856
18857    CMake: Require that the C compiler supports C99 or a newer standard.
18858
18859    Thanks to autoantwort for reporting the issue and suggesting
18860    a different patch:
18861    https://github.com/tukaani-project/xz/pull/42
18862
18863 CMakeLists.txt | 8 ++++++++
18864 1 file changed, 8 insertions(+)
18865
18866commit 9aa7fdeb04c486d2700967090956af88fdccab7e
18867Author: Jia Tan <jiat0218@gmail.com>
18868Date:   2023-02-24 18:10:37 +0800
18869
18870    Tests: Small tweak to test-vli.c.
18871
18872    The static global variables can be disabled if encoders and decoders
18873    are not built. If they are not disabled and -Werror is used, it will
18874    cause an usused warning as an error.
18875
18876 tests/test_vli.c | 2 ++
18877 1 file changed, 2 insertions(+)
18878
18879commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9
18880Author: Jia Tan <jiat0218@gmail.com>
18881Date:   2023-02-06 21:46:43 +0800
18882
18883    liblzma: Replace '\n' -> newline in filter.h documentation.
18884
18885    The '\n' renders as a newline when the comments are converted to html
18886    by Doxygen.
18887
18888 src/liblzma/api/lzma/filter.h | 2 +-
18889 1 file changed, 1 insertion(+), 1 deletion(-)
18890
18891commit 002006be62d77c706565fa6ec828bea64be302da
18892Author: Jia Tan <jiat0218@gmail.com>
18893Date:   2023-02-06 21:45:37 +0800
18894
18895    liblzma: Shorten return description for two functions in filter.h.
18896
18897    Shorten the description for lzma_raw_encoder_memusage() and
18898    lzma_raw_decoder_memusage().
18899
18900 src/liblzma/api/lzma/filter.h | 8 ++------
18901 1 file changed, 2 insertions(+), 6 deletions(-)
18902
18903commit 463d9359b8595f01d44ada1739d75aeb87f36524
18904Author: Jia Tan <jiat0218@gmail.com>
18905Date:   2023-02-06 21:44:45 +0800
18906
18907    liblzma: Reword a few lines in filter.h
18908
18909 src/liblzma/api/lzma/filter.h | 10 +++++-----
18910 1 file changed, 5 insertions(+), 5 deletions(-)
18911
18912commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0
18913Author: Jia Tan <jiat0218@gmail.com>
18914Date:   2023-02-06 21:35:06 +0800
18915
18916    liblzma: Improve documentation in filter.h.
18917
18918    All functions now explicitly specify parameter and return values.
18919    The notes and code annotations were moved before the parameter and
18920    return value descriptions for consistency.
18921
18922    Also, the description above lzma_filter_encoder_is_supported() about
18923    not being able to list available filters was removed since
18924    lzma_str_list_filters() will do this.
18925
18926 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
18927 1 file changed, 143 insertions(+), 83 deletions(-)
18928
18929commit 805b45cd60bfd5da3d3d89077de3789df179b324
18930Author: Lasse Collin <lasse.collin@tukaani.org>
18931Date:   2023-02-23 20:46:16 +0200
18932
18933    Update THANKS.
18934
18935 THANKS | 1 +
18936 1 file changed, 1 insertion(+)
18937
18938commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
18939Author: Lasse Collin <lasse.collin@tukaani.org>
18940Date:   2023-02-21 22:57:10 +0200
18941
18942    liblzma: Avoid null pointer + 0 (undefined behavior in C).
18943
18944    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
18945    adding 0 to a null pointer is undefined behavior. As of writing,
18946    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
18947    I'm not aware of any compiler that would take advantage of this
18948    when optimizing (Clang 15 included). It's good to avoid this anyway
18949    since compilers might some day infer that pointer arithmetic implies
18950    that the pointer is not NULL. That is, the following foo() would then
18951    unconditionally return 0, even for foo(NULL, 0):
18952
18953        void bar(char *a, char *b);
18954
18955        int foo(char *a, size_t n)
18956        {
18957            bar(a, a + n);
18958            return a == NULL;
18959        }
18960
18961    In contrast to C, C++ explicitly allows null pointer + 0. So if
18962    the above is compiled as C++ then there is no undefined behavior
18963    in the foo(NULL, 0) call.
18964
18965    To me it seems that changing the C standard would be the sane
18966    thing to do (just add one sentence) as it would ensure that a huge
18967    amount of old code won't break in the future. Based on web searches
18968    it seems that a large number of codebases (where null pointer + 0
18969    occurs) are being fixed instead to be future-proof in case compilers
18970    will some day optimize based on it (like making the above foo(NULL, 0)
18971    return 0) which in the worst case will cause security bugs.
18972
18973    Some projects don't plan to change it. For example, gnulib and thus
18974    many GNU tools currently require that null pointer + 0 is defined:
18975
18976        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
18977
18978        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
18979
18980    In XZ Utils null pointer + 0 issue should be fixed after this
18981    commit. This adds a few if-statements and thus branches to avoid
18982    null pointer + 0. These check for size > 0 instead of ptr != NULL
18983    because this way bugs where size > 0 && ptr == NULL will likely
18984    get caught quickly. None of them are in hot spots so it shouldn't
18985    matter for performance.
18986
18987    A little less readable version would be replacing
18988
18989        ptr + offset
18990
18991    with
18992
18993        offset != 0 ? ptr + offset : ptr
18994
18995    or creating a macro for it:
18996
18997        #define my_ptr_add(ptr, offset) \
18998                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
18999
19000    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
19001    Clang >= 7, and Clang-based ICX to optimize it to the very same code
19002    as ptr + offset. That is, it won't create a branch. So for hot code
19003    this could be a good solution to avoid null pointer + 0. Unfortunately
19004    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
19005    branch from my_ptr_add().
19006
19007    Thanks to Marcin Kowalczyk for reporting the problem:
19008    https://github.com/tukaani-project/xz/issues/36
19009
19010 src/liblzma/common/block_decoder.c |  5 ++++-
19011 src/liblzma/common/block_encoder.c |  7 +++++--
19012 src/liblzma/common/common.c        | 20 ++++++++++++++------
19013 src/liblzma/common/index_decoder.c | 13 ++++++++++---
19014 src/liblzma/common/index_encoder.c | 11 +++++++++--
19015 src/liblzma/common/index_hash.c    | 13 ++++++++++---
19016 src/liblzma/common/lzip_decoder.c  |  6 +++++-
19017 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
19018 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
19019 src/liblzma/simple/simple_coder.c  |  6 ++++--
19020 10 files changed, 77 insertions(+), 23 deletions(-)
19021
19022commit fa9065fac54194fe0407fc7f0cc9633fdce13c21
19023Author: Jia Tan <jiat0218@gmail.com>
19024Date:   2023-02-07 00:00:44 +0800
19025
19026    liblzma: Adjust container.h for consistency with filter.h.
19027
19028 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
19029 1 file changed, 9 insertions(+), 11 deletions(-)
19030
19031commit 00a721b63d82dfb658dca8d8cb599d8a245c663f
19032Author: Jia Tan <jiat0218@gmail.com>
19033Date:   2023-02-07 00:00:09 +0800
19034
19035    liblzma: Fix small typos and reword a few things in filter.h.
19036
19037 src/liblzma/api/lzma/container.h | 13 ++++++-------
19038 1 file changed, 6 insertions(+), 7 deletions(-)
19039
19040commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39
19041Author: Jia Tan <jiat0218@gmail.com>
19042Date:   2023-02-06 23:42:08 +0800
19043
19044    liblzma: Convert list of flags in lzma_mt to bulleted list.
19045
19046 src/liblzma/api/lzma/container.h | 9 ++++++---
19047 1 file changed, 6 insertions(+), 3 deletions(-)
19048
19049commit dbd47622eb99fefb3538a22baec3def002aa56f5
19050Author: Jia Tan <jiat0218@gmail.com>
19051Date:   2023-01-26 23:17:41 +0800
19052
19053    liblzma: Fix typo in documentation in container.h
19054
19055    lzma_microlzma_decoder -> lzma_microlzma_encoder
19056
19057 src/liblzma/api/lzma/container.h | 2 +-
19058 1 file changed, 1 insertion(+), 1 deletion(-)
19059
19060commit 14cd30806d69e55906073745bcce3ee50e0ec942
19061Author: Jia Tan <jiat0218@gmail.com>
19062Date:   2023-01-26 23:16:34 +0800
19063
19064    liblzma: Improve documentation for container.h
19065
19066    Standardizing each function to always specify parameters and return
19067    values. Also moved the parameters and return values to the end of each
19068    function description.
19069
19070 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
19071 1 file changed, 93 insertions(+), 53 deletions(-)
19072
19073commit c9c8bfae3502842dcead85eeb2b951b437c2cd88
19074Author: Jia Tan <jiat0218@gmail.com>
19075Date:   2023-02-22 20:59:41 +0800
19076
19077    CMake: Add LZIP decoder test to list of tests.
19078
19079 CMakeLists.txt | 1 +
19080 1 file changed, 1 insertion(+)
19081
19082commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a
19083Author: Lasse Collin <lasse.collin@tukaani.org>
19084Date:   2023-02-17 20:56:49 +0200
19085
19086    Update THANKS.
19087
19088 THANKS | 1 +
19089 1 file changed, 1 insertion(+)
19090
19091commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
19092Author: Lasse Collin <lasse.collin@tukaani.org>
19093Date:   2023-02-17 20:48:28 +0200
19094
19095    Build: Use only the generic symbol versioning on MicroBlaze.
19096
19097    On MicroBlaze, GCC 12 is broken in sense that
19098    __has_attribute(__symver__) returns true but it still doesn't
19099    support the __symver__ attribute even though the platform is ELF
19100    and symbol versioning is supported if using the traditional
19101    __asm__(".symver ...") method. Avoiding the traditional method is
19102    good because it breaks LTO (-flto) builds with GCC.
19103
19104    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
19105
19106    For now the only extra symbols in liblzma_linux.map are the
19107    compatibility symbols with the patch that spread from RHEL/CentOS 7.
19108    These require the use of __symver__ attribute or __asm__(".symver ...")
19109    in the C code. Compatibility with the patch from CentOS 7 doesn't
19110    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
19111    instead. It doesn't require anything special in the C code and thus
19112    no LTO issues either.
19113
19114    An alternative would be to detect support for __symver__
19115    attribute in configure.ac and CMakeLists.txt and fall back
19116    to __asm__(".symver ...") but then LTO would be silently broken
19117    on MicroBlaze. It sounds likely that MicroBlaze is a special
19118    case so let's treat it as a such because that is simpler. If
19119    a similar issue exists on some other platform too then hopefully
19120    someone will report it and this can be reconsidered.
19121
19122    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
19123    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
19124    The problem breaks the build so it's easy to notice and can be fixed
19125    later.)
19126
19127    Thanks to Vincent Fazio for reporting the problem and proposing
19128    a patch (in the end that solution wasn't used):
19129    https://github.com/tukaani-project/xz/pull/32
19130
19131 configure.ac | 12 ++++++++++--
19132 1 file changed, 10 insertions(+), 2 deletions(-)
19133
19134commit d831072cceca458d94d2d5da201862f6d43a417b
19135Author: Lasse Collin <lasse.collin@tukaani.org>
19136Date:   2023-02-16 21:09:00 +0200
19137
19138    liblzma: Very minor API doc tweaks.
19139
19140    Use "member" to refer to struct members as that's the term used
19141    by the C standard.
19142
19143    Use lzma_options_delta.dist and such in docs so that in Doxygen's
19144    HTML output they will link to the doc of the struct member.
19145
19146    Clean up a few trailing white spaces too.
19147
19148 src/liblzma/api/lzma/block.h        |  6 +++---
19149 src/liblzma/api/lzma/delta.h        |  6 +++---
19150 src/liblzma/api/lzma/index.h        | 10 +++++-----
19151 src/liblzma/api/lzma/stream_flags.h |  6 +++---
19152 4 files changed, 14 insertions(+), 14 deletions(-)
19153
19154commit f029daea39c215fd7d5cb6b6798818b055cf5b22
19155Author: Jia Tan <jiat0218@gmail.com>
19156Date:   2023-02-17 00:54:33 +0800
19157
19158    liblzma: Adjust spacing in doc headers in bcj.h.
19159
19160 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
19161 1 file changed, 7 insertions(+), 7 deletions(-)
19162
19163commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c
19164Author: Jia Tan <jiat0218@gmail.com>
19165Date:   2023-02-17 00:44:44 +0800
19166
19167    liblzma: Adjust documentation in bcj.h for consistent style.
19168
19169 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
19170 1 file changed, 22 insertions(+), 21 deletions(-)
19171
19172commit efa498c13b883810497e0ea8a169efd6f48f5026
19173Author: Jia Tan <jiat0218@gmail.com>
19174Date:   2023-02-17 00:36:05 +0800
19175
19176    liblzma: Rename field => member in documentation.
19177
19178    Also adjusted preset value => preset level.
19179
19180 src/liblzma/api/lzma/base.h         | 18 +++++++--------
19181 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
19182 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
19183 src/liblzma/api/lzma/delta.h        | 12 +++++-----
19184 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
19185 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
19186 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
19187 7 files changed, 95 insertions(+), 95 deletions(-)
19188
19189commit 718b22a6c5e3ee5de123323ea798872381f9320e
19190Author: Lasse Collin <lasse.collin@tukaani.org>
19191Date:   2023-02-16 17:59:50 +0200
19192
19193    liblzma: Silence a warning from MSVC.
19194
19195    It gives C4146 here since unary minus with unsigned integer
19196    is still unsigned (which is the intention here). Doing it
19197    with substraction makes it clearer and avoids the warning.
19198
19199    Thanks to Nathan Moinvaziri for reporting this.
19200
19201 src/liblzma/check/crc64_fast.c | 2 +-
19202 1 file changed, 1 insertion(+), 1 deletion(-)
19203
19204commit 87c53553fa7d50f777b4edfa99f2083628f590fe
19205Author: Jia Tan <jiat0218@gmail.com>
19206Date:   2023-02-16 21:04:54 +0800
19207
19208     liblzma: Improve documentation for stream_flags.h
19209
19210    Standardizing each function to always specify parameters and return
19211    values. Also moved the parameters and return values to the end of each
19212    function description.
19213
19214    A few small things were reworded and long sentences broken up.
19215
19216 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
19217 1 file changed, 46 insertions(+), 30 deletions(-)
19218
19219commit 13d99e75a543e9e5f8633cc241eae55b91a3b242
19220Author: Jia Tan <jiat0218@gmail.com>
19221Date:   2023-02-14 21:50:16 +0800
19222
19223    liblzma: Improve documentation in lzma12.h.
19224
19225    All functions now explicitly specify parameter and return values.
19226
19227 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
19228 1 file changed, 23 insertions(+), 9 deletions(-)
19229
19230commit 43ec344c868f930e96879eb9e49212cce92a9884
19231Author: Jia Tan <jiat0218@gmail.com>
19232Date:   2023-01-27 22:44:06 +0800
19233
19234    liblzma: Improve documentation in check.h.
19235
19236    All functions now explicitly specify parameter and return values.
19237    Also moved the note about SHA-256 functions not being exported to the
19238    top of the file.
19239
19240 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
19241 1 file changed, 28 insertions(+), 13 deletions(-)
19242
19243commit 9c71db4e884fd49aea3d1e711036bff45ca66487
19244Author: Jia Tan <jiat0218@gmail.com>
19245Date:   2023-02-08 21:33:52 +0800
19246
19247    liblzma: Improve documentation in index.h
19248
19249    All functions now explicitly specify parameter and return values.
19250
19251 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
19252 1 file changed, 126 insertions(+), 51 deletions(-)
19253
19254commit 421f2f2e160720f6009e3b6a125cafe2feaa9419
19255Author: Jia Tan <jiat0218@gmail.com>
19256Date:   2023-02-08 20:35:32 +0800
19257
19258    liblzma: Reword a comment in index.h.
19259
19260 src/liblzma/api/lzma/index.h | 4 ++--
19261 1 file changed, 2 insertions(+), 2 deletions(-)
19262
19263commit b67539484981351d501b68de5e925425e50c59b1
19264Author: Jia Tan <jiat0218@gmail.com>
19265Date:   2023-02-08 20:30:23 +0800
19266
19267    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
19268
19269    Add \private above this field and its sub-fields since it is not meant
19270    to be modified by users.
19271
19272 src/liblzma/api/lzma/index.h | 9 ++++++++-
19273 1 file changed, 8 insertions(+), 1 deletion(-)
19274
19275commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96
19276Author: Jia Tan <jiat0218@gmail.com>
19277Date:   2023-01-21 21:32:03 +0800
19278
19279    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
19280
19281    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
19282    documentation after a member.
19283
19284 src/liblzma/api/lzma/base.h | 2 +-
19285 1 file changed, 1 insertion(+), 1 deletion(-)
19286
19287commit 816fec125aa74bcef46512c73acc6d9e5a700d15
19288Author: Jia Tan <jiat0218@gmail.com>
19289Date:   2023-01-21 00:29:38 +0800
19290
19291    liblzma: Improve documentation for base.h.
19292
19293    Standardizing each function to always specify params and return values.
19294    Also fixed a small grammar mistake.
19295
19296 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
19297 1 file changed, 25 insertions(+), 5 deletions(-)
19298
19299commit 862dacef1a4e7e1b28d465956fa4244ed01df154
19300Author: Jia Tan <jiat0218@gmail.com>
19301Date:   2023-02-14 00:12:34 +0800
19302
19303    liblzma: Add one more missing [out] annotation in vli.h
19304
19305 src/liblzma/api/lzma/vli.h | 2 +-
19306 1 file changed, 1 insertion(+), 1 deletion(-)
19307
19308commit 867b08ae4254bf55dd1f7fd502cc618231b92f75
19309Author: Jia Tan <jiat0218@gmail.com>
19310Date:   2023-02-14 00:08:33 +0800
19311
19312    liblzma: Minor improvements to vli.h.
19313
19314    Added [out] annotations to parameters that are pointers and can have
19315    their value changed. Also added a clarification to lzma_vli_is_valid.
19316
19317 src/liblzma/api/lzma/vli.h | 13 +++++++------
19318 1 file changed, 7 insertions(+), 6 deletions(-)
19319
19320commit 90d0e628ff11e5030bcc4fc000bca056adda6603
19321Author: Jia Tan <jiat0218@gmail.com>
19322Date:   2023-02-10 21:38:02 +0800
19323
19324    liblzma: Add comments for macros in delta.h.
19325
19326    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
19327    and to avoid Doxygen warnings.
19328
19329 src/liblzma/api/lzma/delta.h | 8 ++++++++
19330 1 file changed, 8 insertions(+)
19331
19332commit 9255fffdb13e59874bf7f95c370c410ad3a7e114
19333Author: Jia Tan <jiat0218@gmail.com>
19334Date:   2023-02-10 21:35:23 +0800
19335
19336    liblzma: Improve documentation in index_hash.h.
19337
19338    All functions now explicitly specify parameter and return values.
19339    Also reworded the description of lzma_index_hash_init() for readability.
19340
19341 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
19342 1 file changed, 27 insertions(+), 9 deletions(-)
19343
19344commit 1dbe12b90cff79bb51923733ac0840747b4b4131
19345Author: Lasse Collin <lasse.collin@tukaani.org>
19346Date:   2023-02-07 19:07:45 +0200
19347
19348    xz: Improve the comment about start_time in mytime.c.
19349
19350    start_time is relative to an arbitary point in time, it's not
19351    time of day, so using it for anything else than time differences
19352    wouldn't make sense.
19353
19354 src/xz/mytime.c | 15 ++++++++++-----
19355 1 file changed, 10 insertions(+), 5 deletions(-)
19356
19357commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56
19358Author: Jia Tan <jiat0218@gmail.com>
19359Date:   2023-02-04 21:06:35 +0800
19360
19361    Build: Adjust CMake version search regex.
19362
19363    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
19364    macros do not need to be on consecutive lines in version.h. They can be
19365    separated by more whitespace, comments, or even other content, as long
19366    as they appear in the proper order (major, minor, patch).
19367
19368 CMakeLists.txt | 2 ++
19369 1 file changed, 2 insertions(+)
19370
19371commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac
19372Author: Jia Tan <jiat0218@gmail.com>
19373Date:   2023-02-04 12:01:23 +0800
19374
19375    xz: Add a comment clarifying the use of start_time in mytime.c.
19376
19377 src/xz/mytime.c | 5 +++++
19378 1 file changed, 5 insertions(+)
19379
19380commit 912af91b10a18fb9bb3167247ecaaefca8248ee9
19381Author: Jia Tan <jiat0218@gmail.com>
19382Date:   2023-01-26 09:50:21 +0800
19383
19384    liblzma: Improve documentation for version.h.
19385
19386    Specified parameter and return values for API functions and documented
19387    a few more of the macros.
19388
19389 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
19390 1 file changed, 22 insertions(+), 7 deletions(-)
19391
19392commit 850adec171203cd22b57d016084d713f72ae5307
19393Author: Jia Tan <jiat0218@gmail.com>
19394Date:   2023-02-03 22:52:55 +0800
19395
19396    Docs: Omit SIGTSTP not handled from TODO.
19397
19398 TODO | 4 ----
19399 1 file changed, 4 deletions(-)
19400
19401commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3
19402Author: Jia Tan <jiat0218@gmail.com>
19403Date:   2023-02-03 00:33:32 +0800
19404
19405    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
19406
19407    The bug is only a problem in applications that do not properly terminate
19408    the filters[] array with LZMA_VLI_UNKNOWN or have more than
19409    LZMA_FILTERS_MAX filters. This bug does not affect xz.
19410
19411 src/liblzma/common/string_conversion.c | 7 +++++++
19412 1 file changed, 7 insertions(+)
19413
19414commit e01f01b9af1c074463b92694a16ecc16a31907c0
19415Author: Jia Tan <jiat0218@gmail.com>
19416Date:   2023-02-03 00:32:47 +0800
19417
19418    Tests: Create test_filter_str.c.
19419
19420    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
19421    lzma_str_list_filters() API functions.
19422
19423 CMakeLists.txt          |   1 +
19424 tests/Makefile.am       |   2 +
19425 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
19426 3 files changed, 596 insertions(+)
19427
19428commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26
19429Author: Jia Tan <jiat0218@gmail.com>
19430Date:   2023-01-22 08:49:00 +0800
19431
19432    liblzma: Fix typos in comments in string_conversion.c.
19433
19434 src/liblzma/common/string_conversion.c | 4 ++--
19435 1 file changed, 2 insertions(+), 2 deletions(-)
19436
19437commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6
19438Author: Jia Tan <jiat0218@gmail.com>
19439Date:   2023-02-03 00:20:20 +0800
19440
19441    liblzma: Clarify block encoder and decoder documentation.
19442
19443    Added a few sentences to the description for lzma_block_encoder() and
19444    lzma_block_decoder() to highlight that the Block Header must be coded
19445    before calling these functions.
19446
19447 src/liblzma/api/lzma/block.h | 15 +++++++++++----
19448 1 file changed, 11 insertions(+), 4 deletions(-)
19449
19450commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f
19451Author: Jia Tan <jiat0218@gmail.com>
19452Date:   2023-02-03 00:12:24 +0800
19453
19454    Update lzma_block documentation for lzma_block_uncomp_encode().
19455
19456 src/liblzma/api/lzma/block.h | 3 +++
19457 1 file changed, 3 insertions(+)
19458
19459commit 504cf4af895fd45aad0c56eb3b49d90acd54465b
19460Author: Jia Tan <jiat0218@gmail.com>
19461Date:   2023-02-03 00:11:37 +0800
19462
19463    liblzma: Minor edits to lzma_block header_size documentation.
19464
19465 src/liblzma/api/lzma/block.h | 3 ++-
19466 1 file changed, 2 insertions(+), 1 deletion(-)
19467
19468commit 115b720fb521f99aa832d06b2c12b7f8c6c50680
19469Author: Jia Tan <jiat0218@gmail.com>
19470Date:   2023-02-03 00:11:07 +0800
19471
19472    liblzma: Enumerate functions that read version in lzma_block.
19473
19474 src/liblzma/api/lzma/block.h | 13 +++++++++++--
19475 1 file changed, 11 insertions(+), 2 deletions(-)
19476
19477commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1
19478Author: Jia Tan <jiat0218@gmail.com>
19479Date:   2023-02-03 00:10:34 +0800
19480
19481    liblzma: Clarify comment in block.h.
19482
19483 src/liblzma/api/lzma/block.h | 3 ++-
19484 1 file changed, 2 insertions(+), 1 deletion(-)
19485
19486commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8
19487Author: Jia Tan <jiat0218@gmail.com>
19488Date:   2023-02-03 00:07:23 +0800
19489
19490    liblzma: Improve documentation for block.h.
19491
19492    Standardizing each function to always specify params and return values.
19493    Output pointer parameters are also marked with doxygen style [out] to
19494    make it clear. Any note sections were also moved above the parameter and
19495    return sections for consistency.
19496
19497 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
19498 1 file changed, 75 insertions(+), 21 deletions(-)
19499
19500commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3
19501Author: Jia Tan <jiat0218@gmail.com>
19502Date:   2023-02-01 23:38:30 +0800
19503
19504    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
19505
19506    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
19507    about the treatment for filters than cannot be used with .xz format
19508    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
19509    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
19510
19511 src/liblzma/api/lzma/filter.h | 5 +++--
19512 1 file changed, 3 insertions(+), 2 deletions(-)
19513
19514commit 315c64c7e18acc59a745b68148188a73e998252b
19515Author: Jia Tan <jiat0218@gmail.com>
19516Date:   2023-02-01 21:43:33 +0800
19517
19518    CI: Update .gitignore for artifacts directory in build-aux.
19519
19520    The workflow action for our CI pipeline can only reference artifacts in
19521    the source directory, so we should ignore these files if the ci_build.sh
19522    is run locally.
19523
19524 .gitignore | 1 +
19525 1 file changed, 1 insertion(+)
19526
19527commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f
19528Author: Jia Tan <jiat0218@gmail.com>
19529Date:   2023-02-01 21:36:46 +0800
19530
19531    CI: Add quotes around variables in a few places.
19532
19533 build-aux/ci_build.sh | 6 +++---
19534 1 file changed, 3 insertions(+), 3 deletions(-)
19535
19536commit 3a401b0e0c7a2658af7801dd0690256ef24149e0
19537Author: Jia Tan <jiat0218@gmail.com>
19538Date:   2023-02-01 21:36:22 +0800
19539
19540    CI: Upload test logs as artifacts if a test fails.
19541
19542 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++--------------
19543 build-aux/ci_build.sh    | 31 ++++++++++++++++++++-----
19544 2 files changed, 68 insertions(+), 23 deletions(-)
19545
19546commit 610dde15a88f12cc540424eb3eb3ed61f3876f74
19547Author: Lasse Collin <lasse.collin@tukaani.org>
19548Date:   2023-01-27 20:02:49 +0200
19549
19550    xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
19551
19552    mythread.h and thus liblzma already does it.
19553
19554 src/xz/mytime.c  | 11 ++++++++---
19555 src/xz/private.h |  3 +--
19556 2 files changed, 9 insertions(+), 5 deletions(-)
19557
19558commit 2e02877288f6576cd4595e9ac7684f867cd47d68
19559Author: Lasse Collin <lasse.collin@tukaani.org>
19560Date:   2023-01-27 19:41:19 +0200
19561
19562    po4a/po4a.conf: Sort the language identifiers in alphabetical order.
19563
19564 po4a/po4a.conf | 2 +-
19565 1 file changed, 1 insertion(+), 1 deletion(-)
19566
19567commit ff592c616eda274215b485cf1b8d34f060c9f3be
19568Author: Lasse Collin <lasse.collin@tukaani.org>
19569Date:   2023-01-26 18:29:17 +0200
19570
19571    xz: Add SIGTSTP handler for progress indicator time keeping.
19572
19573    This way, if xz is stopped the elapsed time and estimated time
19574    remaining won't get confused by the amount of time spent in
19575    the stopped state.
19576
19577    This raises SIGSTOP. It's not clear to me if this is the correct way.
19578    POSIX and glibc docs say that SIGTSTP shouldn't stop the process if
19579    it is orphaned but this commit doesn't attempt to handle that.
19580
19581    Search for SIGTSTP in section 2.4.3:
19582
19583    https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
19584
19585 src/xz/mytime.c  | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
19586 src/xz/mytime.h  |  6 ++++++
19587 src/xz/private.h | 12 ++++++++++++
19588 src/xz/signals.c | 17 ++++++++++++++++-
19589 4 files changed, 89 insertions(+), 2 deletions(-)
19590
19591commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76
19592Author: Jia Tan <jiat0218@gmail.com>
19593Date:   2023-01-27 20:14:51 +0800
19594
19595    Translations: Add Brazilian Portuguese translation of man pages.
19596
19597    Thanks to Rafael Fontenelle.
19598
19599 po4a/po4a.conf |    2 +-
19600 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19601 2 files changed, 3678 insertions(+), 1 deletion(-)
19602
19603commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc
19604Author: Lasse Collin <lasse.collin@tukaani.org>
19605Date:   2023-01-26 17:51:06 +0200
19606
19607    Build: Avoid different quoting style in --enable-doxygen doc.
19608
19609 configure.ac | 10 +++++-----
19610 1 file changed, 5 insertions(+), 5 deletions(-)
19611
19612commit af5a4bd5afc089d9697756dded38feafaa987ae4
19613Author: Lasse Collin <lasse.collin@tukaani.org>
19614Date:   2023-01-26 17:39:46 +0200
19615
19616    tuklib_physmem: Check for __has_warning before GCC version.
19617
19618    Clang can be configured to fake a too high GCC version so
19619    this way it's more robust.
19620
19621 src/common/tuklib_physmem.c | 6 +++---
19622 1 file changed, 3 insertions(+), 3 deletions(-)
19623
19624commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4
19625Author: Jia Tan <jiat0218@gmail.com>
19626Date:   2023-01-24 20:48:50 +0800
19627
19628    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
19629
19630    The previous documentation for lzma_str_to_filters() was technically
19631    correct, but misleading. lzma_str_to_filters() returns NULL on success,
19632    which is in practice always defined to 0. This is the same value as
19633    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
19634    be more clear.
19635
19636 src/liblzma/api/lzma/filter.h | 2 +-
19637 1 file changed, 1 insertion(+), 1 deletion(-)
19638
19639commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2
19640Author: Lasse Collin <lasse.collin@tukaani.org>
19641Date:   2023-01-23 23:44:58 +0200
19642
19643    Revert "tuklib_common: Define __has_warning if it is not defined."
19644
19645    This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766.
19646
19647    Macros in the reserved namespace (_foo or __foo) shouldn't be #defined
19648    without a very good reason. Here the alternative would have been
19649    to #define tuklib_has_warning(str) to an approriate value.
19650
19651    Also the tuklib_* files should stay namespace clean if possible.
19652
19653 src/common/tuklib_common.h | 7 -------
19654 1 file changed, 7 deletions(-)
19655
19656commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575
19657Author: Lasse Collin <lasse.collin@tukaani.org>
19658Date:   2023-01-23 23:38:34 +0200
19659
19660    tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows.
19661
19662    __has_warning and other __has_foo macros are meant to become
19663    compiler-agnostic so it's not good to check for __clang__ with it.
19664
19665    This also relied on tuklib_common.h for #defining __has_warning
19666    which was confusing as #defining reserved macros is generally
19667    not a good idea.
19668
19669 src/common/tuklib_physmem.c | 17 +++++++++++++----
19670 1 file changed, 13 insertions(+), 4 deletions(-)
19671
19672commit 683a3c7e2fcd922200c31078e5c9dd1348e90941
19673Author: Lasse Collin <lasse.collin@tukaani.org>
19674Date:   2023-01-24 00:05:38 +0200
19675
19676    xz: Flip the return value of suffix_is_set to match the documentation.
19677
19678    Also edit style to match the existing coding style in the project.
19679
19680 src/xz/args.c   | 6 +++---
19681 src/xz/suffix.c | 2 +-
19682 src/xz/suffix.h | 1 +
19683 3 files changed, 5 insertions(+), 4 deletions(-)
19684
19685commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0
19686Author: Jia Tan <jiat0218@gmail.com>
19687Date:   2023-01-07 21:55:06 +0800
19688
19689    xz: Refactor duplicated check for custom suffix when using --format=raw
19690
19691 src/xz/args.c   |  8 ++++++++
19692 src/xz/suffix.c | 26 ++++++++------------------
19693 src/xz/suffix.h |  7 +++++++
19694 3 files changed, 23 insertions(+), 18 deletions(-)
19695
19696commit 9663141274e01592a281a7f2df5d7a31a1dac8bf
19697Author: Jia Tan <jiat0218@gmail.com>
19698Date:   2023-01-20 21:53:14 +0800
19699
19700    liblzma: Set documentation on all reserved fields to private.
19701
19702    This prevents the reserved fields from being part of the generated
19703    Doxygen documentation.
19704
19705 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
19706 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
19707 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
19708 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
19709 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
19710 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
19711 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
19712 7 files changed, 173 insertions(+)
19713
19714commit 6327a045f34d48fc5afc58ba0d32a82c94403049
19715Author: Jia Tan <jiat0218@gmail.com>
19716Date:   2022-12-20 21:39:59 +0800
19717
19718    Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17.
19719
19720    A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released
19721    in 2019, so this should be compatible with resonable modern distros.
19722    The purpose of Doxygen these days is for docs on the website, so it
19723    doesn't necessarily have to work for everyone. Just when the maintainers
19724    want to update the docs.
19725
19726 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++---------------
19727 1 file changed, 1893 insertions(+), 630 deletions(-)
19728
19729commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad
19730Author: Jia Tan <jiat0218@gmail.com>
19731Date:   2023-01-03 20:37:30 +0800
19732
19733    Doxygen: Make Doxygen only produce liblzma API documentation by default.
19734
19735    Doxygen is now configurable in autotools only with
19736    --enable-doxygen=[api|all]. The default is "api", which will only
19737    generate HTML output for liblzma API functions. The LaTex documentation
19738    output was also disabled.
19739
19740 Doxyfile.in  | 18 +++++++++---------
19741 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
19742 2 files changed, 48 insertions(+), 9 deletions(-)
19743
19744commit 6fcf4671b6047113c583a0919fc850987a4ec5f4
19745Author: Jia Tan <jiat0218@gmail.com>
19746Date:   2022-12-21 23:59:43 +0800
19747
19748    liblzma: Highlight liblzma API headers should not be included directly.
19749
19750    This improves the generated Doxygen HTML files to better highlight
19751    how to properly use the liblzma API header files.
19752
19753 src/liblzma/api/lzma/base.h         | 5 +++--
19754 src/liblzma/api/lzma/bcj.h          | 5 +++--
19755 src/liblzma/api/lzma/block.h        | 5 +++--
19756 src/liblzma/api/lzma/check.h        | 5 +++--
19757 src/liblzma/api/lzma/container.h    | 5 +++--
19758 src/liblzma/api/lzma/delta.h        | 5 +++--
19759 src/liblzma/api/lzma/filter.h       | 5 +++--
19760 src/liblzma/api/lzma/hardware.h     | 5 +++--
19761 src/liblzma/api/lzma/index.h        | 5 +++--
19762 src/liblzma/api/lzma/index_hash.h   | 5 +++--
19763 src/liblzma/api/lzma/lzma12.h       | 5 +++--
19764 src/liblzma/api/lzma/stream_flags.h | 5 +++--
19765 src/liblzma/api/lzma/version.h      | 5 +++--
19766 src/liblzma/api/lzma/vli.h          | 5 +++--
19767 14 files changed, 42 insertions(+), 28 deletions(-)
19768
19769commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4
19770Author: Jia Tan <jiat0218@gmail.com>
19771Date:   2023-01-19 20:35:09 +0800
19772
19773    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
19774
19775    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
19776    to retrieve a function address. The proper way to do this is to cast the
19777    return value to the type of function pointer retrieved. Unfortunately,
19778    this causes a cast-function-type warning, so the best solution is to
19779    simply ignore the warning.
19780
19781 src/common/tuklib_physmem.c | 9 +++++++++
19782 1 file changed, 9 insertions(+)
19783
19784commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766
19785Author: Jia Tan <jiat0218@gmail.com>
19786Date:   2023-01-19 20:32:40 +0800
19787
19788    tuklib_common: Define __has_warning if it is not defined.
19789
19790    clang supports the __has_warning macro to determine if the version of
19791    clang compiling the code supports a given warning. If we do not define
19792    it for other compilers, it may cause a preprocessor error.
19793
19794 src/common/tuklib_common.h | 7 +++++++
19795 1 file changed, 7 insertions(+)
19796
19797commit b2ba1a489df451cdcd93b2334e319dd06778de19
19798Author: Jia Tan <jiat0218@gmail.com>
19799Date:   2023-01-18 22:11:05 +0800
19800
19801    CI: Reorder 32-bit build first for Linux autotool builds.
19802
19803    The 32-bit build needs to be first so the configure cache only needs to
19804    be reset one time. The 32-bit build sets the CFLAGS env variable, so any
19805    build using that flag after will fail unless the cache is reset.
19806
19807 .github/workflows/ci.yml | 17 ++++++++++++-----
19808 1 file changed, 12 insertions(+), 5 deletions(-)
19809
19810commit dd1c1135741057c91e8d018be9ec4d43968b0e64
19811Author: Jia Tan <jiat0218@gmail.com>
19812Date:   2023-01-18 21:51:43 +0800
19813
19814    CI: Enable --config-cache in autotool builds.
19815
19816    If CFLAGS are set in a build, the cache must be cleared with
19817    "make distclean", or by deleting the cache file.
19818
19819 build-aux/ci_build.sh | 2 +-
19820 1 file changed, 1 insertion(+), 1 deletion(-)
19821
19822commit d3e11477053764c003eec2daa5198c747d70ff69
19823Author: Jia Tan <jiat0218@gmail.com>
19824Date:   2023-01-16 21:35:45 +0800
19825
19826    xz: Add missing comment for coder_set_compression_settings()
19827
19828 src/xz/coder.h | 3 ++-
19829 1 file changed, 2 insertions(+), 1 deletion(-)
19830
19831commit 123255b6ed15f4428b2aa92e4962015a5362f6bf
19832Author: Jia Tan <jiat0218@gmail.com>
19833Date:   2023-01-16 20:55:10 +0800
19834
19835    xz: Do not set compression settings with raw format in list mode.
19836
19837    Calling coder_set_compression_settings() in list mode with verbose mode
19838    on caused the filter chain and memory requirements to print. This was
19839    unnecessary since the command results in an error and not consistent
19840    with other formats like lzma and alone.
19841
19842 src/xz/args.c | 3 ++-
19843 1 file changed, 2 insertions(+), 1 deletion(-)
19844
19845commit 571919c47b9ff5171ede84378620ed0a9aeb98c0
19846Author: Jia Tan <jiat0218@gmail.com>
19847Date:   2023-01-13 20:37:06 +0800
19848
19849    Translations: Update the Brazilian Portuguese translation.
19850
19851 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
19852 1 file changed, 344 insertions(+), 259 deletions(-)
19853
19854commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf
19855Author: Jia Tan <jiat0218@gmail.com>
19856Date:   2023-01-12 23:43:06 +0800
19857
19858    CI: Disable shared and nls from various jobs in autotool runners.
19859
19860    Disabling shared library generation and linking should help speed up the
19861    runners. The shared library is still being tested in the 32 bit build
19862    and the full feature.
19863
19864    Disabling nls is to check for any unexpected warnings or errors.
19865
19866 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------
19867 1 file changed, 28 insertions(+), 28 deletions(-)
19868
19869commit 58a052198a7bcaf6e958f87fad72e69e19a2579b
19870Author: Jia Tan <jiat0218@gmail.com>
19871Date:   2023-01-12 23:39:19 +0800
19872
19873    CI: Reorder the 32-bit job in the Ubuntu runner.
19874
19875    Run the 32 bit job sooner since this is a more interesting test than
19876    some of the later jobs.
19877
19878 .github/workflows/ci.yml | 10 +++++-----
19879 1 file changed, 5 insertions(+), 5 deletions(-)
19880
19881commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797
19882Author: Jia Tan <jiat0218@gmail.com>
19883Date:   2023-01-12 23:09:03 +0800
19884
19885    CI: Allow disabling Native Language Support.
19886
19887 build-aux/ci_build.sh | 9 ++++++++-
19888 1 file changed, 8 insertions(+), 1 deletion(-)
19889
19890commit 0dec634e705b5bf89a37c5d62d71e8511d480058
19891Author: Jia Tan <jiat0218@gmail.com>
19892Date:   2023-01-12 23:02:20 +0800
19893
19894    CI: Only run autogen.sh if it has not already run.
19895
19896 build-aux/ci_build.sh | 11 ++++++++---
19897 1 file changed, 8 insertions(+), 3 deletions(-)
19898
19899commit 32287dc8def94df4546e903495d14c132bd54cc4
19900Author: Jia Tan <jiat0218@gmail.com>
19901Date:   2023-01-12 22:58:36 +0800
19902
19903    CI: Allow disabling shared library in autotools builds.
19904
19905 build-aux/ci_build.sh | 9 ++++++++-
19906 1 file changed, 8 insertions(+), 1 deletion(-)
19907
19908commit 77d1ebcc99ddd82a300d1838f608150221931dcd
19909Author: Jia Tan <jiat0218@gmail.com>
19910Date:   2023-01-12 22:44:18 +0800
19911
19912    CI: Improve Usage readability and add -h option.
19913
19914 build-aux/ci_build.sh | 15 +++++++++++++--
19915 1 file changed, 13 insertions(+), 2 deletions(-)
19916
19917commit a8bb8358d10b059274f3cf993d9b8f490bafb268
19918Author: Lasse Collin <lasse.collin@tukaani.org>
19919Date:   2023-01-12 13:04:05 +0200
19920
19921    Build: Omit -Wmissing-noreturn from the default warnings.
19922
19923    It's not that important. It can be annoying in builds that
19924    disable many features since in those cases the tests programs
19925    will correctly trigger this warning with Clang.
19926
19927 configure.ac | 1 -
19928 1 file changed, 1 deletion(-)
19929
19930commit 52dc033d0bde0d19e3912303c6c74bae559d6498
19931Author: Lasse Collin <lasse.collin@tukaani.org>
19932Date:   2023-01-12 06:05:58 +0200
19933
19934    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
19935
19936    It makes no difference here as the return value fits into an int
19937    too and it then gets ignored but this looks better.
19938
19939 src/xz/file_io.c | 2 +-
19940 1 file changed, 1 insertion(+), 1 deletion(-)
19941
19942commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3
19943Author: Lasse Collin <lasse.collin@tukaani.org>
19944Date:   2023-01-12 06:01:12 +0200
19945
19946    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
19947
19948 src/common/tuklib_mbstr_fw.c | 2 +-
19949 src/xz/list.c                | 4 ++--
19950 2 files changed, 3 insertions(+), 3 deletions(-)
19951
19952commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339
19953Author: Lasse Collin <lasse.collin@tukaani.org>
19954Date:   2023-01-12 05:38:48 +0200
19955
19956    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
19957
19958    It doesn't warn on a 64-bit system because truncating
19959    a ptrdiff_t (signed long) to uint32_t is diagnosed under
19960    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
19961
19962 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
19963 1 file changed, 4 insertions(+), 3 deletions(-)
19964
19965commit 37fbdfb7263522c11c7ad2685413d6295532581d
19966Author: Lasse Collin <lasse.collin@tukaani.org>
19967Date:   2023-01-12 04:46:45 +0200
19968
19969    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
19970
19971 src/common/mythread.h | 4 ++--
19972 1 file changed, 2 insertions(+), 2 deletions(-)
19973
19974commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008
19975Author: Lasse Collin <lasse.collin@tukaani.org>
19976Date:   2023-01-12 04:17:24 +0200
19977
19978    Build: Make configure add more warning flags for GCC and Clang.
19979
19980    -Wstrict-aliasing was removed from the list since it is enabled
19981    by -Wall already.
19982
19983    A normal build is clean with these on GNU/Linux x86-64 with
19984    GCC 12.2.0 and Clang 14.0.6.
19985
19986 configure.ac | 36 +++++++++++++++++++++++++++++++-----
19987 1 file changed, 31 insertions(+), 5 deletions(-)
19988
19989commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c
19990Author: Lasse Collin <lasse.collin@tukaani.org>
19991Date:   2023-01-12 04:14:18 +0200
19992
19993    Tests: Fix warnings from clang --Wassign-enum.
19994
19995    Explicitly casting the integer to lzma_check silences the warning.
19996    Since such an invalid value is needed in multiple tests, a constant
19997    INVALID_LZMA_CHECK_ID was added to tests.h.
19998
19999    The use of 0x1000 for lzma_block.check wasn't optimal as if
20000    the underlying type is a char then 0x1000 will be truncated to 0.
20001    However, in these test cases the value is ignored, thus even with
20002    such truncation the test would have passed.
20003
20004 tests/test_block_header.c | 6 +++---
20005 tests/test_check.c        | 2 +-
20006 tests/test_stream_flags.c | 8 ++++----
20007 tests/tests.h             | 9 +++++++++
20008 4 files changed, 17 insertions(+), 8 deletions(-)
20009
20010commit 49245bb31e215ad455a1ab85e4ed6783152dc522
20011Author: Lasse Collin <lasse.collin@tukaani.org>
20012Date:   2023-01-12 03:51:07 +0200
20013
20014    Tests: Silence warnings from -Wsign-conversion.
20015
20016    Note that assigning an unsigned int to lzma_check doesn't warn
20017    on GNU/Linux x86-64 since the enum type is unsigned on that
20018    platform. The enum can be signed on some other platform though
20019    so it's best to use enumeration type lzma_check in these situations.
20020
20021 tests/test_check.c        |  6 +++---
20022 tests/test_stream_flags.c | 10 +++++-----
20023 2 files changed, 8 insertions(+), 8 deletions(-)
20024
20025commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571
20026Author: Lasse Collin <lasse.collin@tukaani.org>
20027Date:   2023-01-12 03:19:59 +0200
20028
20029    liblzma: Silence warnings from clang -Wconditional-uninitialized.
20030
20031    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
20032    The actual initialization of the variables is done inside
20033    mythread_sync() macro. Clang doesn't seem to see that
20034    the initialization code inside the macro is always executed.
20035
20036 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
20037 src/liblzma/common/stream_encoder_mt.c | 2 +-
20038 2 files changed, 6 insertions(+), 4 deletions(-)
20039
20040commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6
20041Author: Lasse Collin <lasse.collin@tukaani.org>
20042Date:   2023-01-12 03:11:40 +0200
20043
20044    Fix warnings from clang -Wdocumentation.
20045
20046 src/liblzma/check/check.h      | 4 ----
20047 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
20048 src/xz/options.c               | 4 ++--
20049 3 files changed, 4 insertions(+), 8 deletions(-)
20050
20051commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba
20052Author: Lasse Collin <lasse.collin@tukaani.org>
20053Date:   2023-01-12 03:04:28 +0200
20054
20055    Tests: test_lzip_decoder: Remove trailing white-space.
20056
20057 tests/test_lzip_decoder.c | 4 ++--
20058 1 file changed, 2 insertions(+), 2 deletions(-)
20059
20060commit c0f8d6782f29e219fd496dd23f6a033270509d5c
20061Author: Lasse Collin <lasse.collin@tukaani.org>
20062Date:   2023-01-12 03:03:55 +0200
20063
20064    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
20065
20066 tests/test_lzip_decoder.c | 13 +++++++------
20067 1 file changed, 7 insertions(+), 6 deletions(-)
20068
20069commit 62efd48a825e8f439e84c85e165d8774ddc68fd2
20070Author: Jia Tan <jiat0218@gmail.com>
20071Date:   2023-01-11 23:58:16 +0800
20072
20073    Add NEWS for 5.4.1.
20074
20075 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20076 1 file changed, 70 insertions(+)
20077
20078commit d1561c47ec8cd3844a785d3741dc932f9b9c5790
20079Author: Jia Tan <jiat0218@gmail.com>
20080Date:   2023-01-11 22:46:48 +0800
20081
20082    xz: Fix warning -Wformat-nonliteral on clang in message.c.
20083
20084    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
20085    allow a non-literal format string as long as the function takes its
20086    format arguments as a va_list.
20087
20088 src/xz/message.c | 9 +++++++++
20089 1 file changed, 9 insertions(+)
20090
20091commit 8c0f115cc489331c48df77beca92fe378039d919
20092Author: Jia Tan <jiat0218@gmail.com>
20093Date:   2023-01-11 20:58:31 +0800
20094
20095    Tests: Fix test_filter_flags copy/paste error.
20096
20097 tests/test_filter_flags.c | 4 ++--
20098 1 file changed, 2 insertions(+), 2 deletions(-)
20099
20100commit 25035813d1d596fde692addc33e7f715f1fe55eb
20101Author: Jia Tan <jiat0218@gmail.com>
20102Date:   2023-01-11 20:42:29 +0800
20103
20104    Tests: Fix type-limits warning in test_filter_flags.
20105
20106    This only occurs in test_filter_flags when the BCJ filters are not
20107    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
20108    type-limits warning with the loop variable since an unsigned number will
20109    always be >= 0.
20110
20111 tests/test_filter_flags.c | 13 ++++++++++---
20112 1 file changed, 10 insertions(+), 3 deletions(-)
20113
20114commit 0b8fa310cf56fec55663f62340e49e8e1441594f
20115Author: Lasse Collin <lasse.collin@tukaani.org>
20116Date:   2023-01-10 22:14:03 +0200
20117
20118    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
20119
20120    This affects only 32-bit x86 builds. x86-64 is OK as is.
20121
20122    I still cannot easily test this myself. The reporter has tested
20123    this and it passes the tests included in the CMake build and
20124    performance is good: raw CRC64 is 2-3 times faster than the
20125    C version of the slice-by-four method. (Note that liblzma doesn't
20126    include a MSVC-compatible version of the 32-bit x86 assembly code
20127    for the slice-by-four method.)
20128
20129    Thanks to Iouri Kharon for figuring out a fix, testing, and
20130    benchmarking.
20131
20132 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
20133 1 file changed, 18 insertions(+)
20134
20135commit 765354b50c2886fc0d294d6be3b207f7ae2ada70
20136Author: Jia Tan <jiat0218@gmail.com>
20137Date:   2023-01-11 01:18:50 +0800
20138
20139    Tests: Fix unused function warning in test_block_header.
20140
20141    One of the global arrays of filters was only used in a test that
20142    required both encoders and decoders to be configured in the build.
20143
20144 tests/test_block_header.c | 4 ++++
20145 1 file changed, 4 insertions(+)
20146
20147commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa
20148Author: Jia Tan <jiat0218@gmail.com>
20149Date:   2023-01-11 01:08:03 +0800
20150
20151    Tests: Fix unused function warning in test_index_hash.
20152
20153    test_index_hash does not use fill_index_hash() unless both encoders
20154    and decoders are configured in the build.
20155
20156 tests/test_index_hash.c | 4 +---
20157 1 file changed, 1 insertion(+), 3 deletions(-)
20158
20159commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6
20160Author: Jia Tan <jiat0218@gmail.com>
20161Date:   2023-01-11 00:54:45 +0800
20162
20163    CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner.
20164
20165    If all goes well, Mac autotools and Linux and Mac CMake will be added
20166    later for 32-bit builds.
20167
20168 .github/workflows/ci.yml | 7 ++++++-
20169 1 file changed, 6 insertions(+), 1 deletion(-)
20170
20171commit 923eb689a4b863b6cca8df6360d4962aae994edf
20172Author: Jia Tan <jiat0218@gmail.com>
20173Date:   2023-01-11 00:51:01 +0800
20174
20175    CI/CD: Enables warnings as errors in autotool build.
20176
20177    This will help us catch warnings and potential bugs in builds that are
20178    not often tested by us.
20179
20180 build-aux/ci_build.sh | 2 +-
20181 1 file changed, 1 insertion(+), 1 deletion(-)
20182
20183commit feae5528a30c006b6e2f96a95116e20b983703fc
20184Author: Jia Tan <jiat0218@gmail.com>
20185Date:   2023-01-11 00:48:35 +0800
20186
20187    CI/CD: Add -f argument to set CFLAGS in ci_build.sh.
20188
20189    For now, the suggested option is for -m32 only, but this can be updated
20190    later if other flags are deemed useful.
20191
20192 build-aux/ci_build.sh | 8 ++++++--
20193 1 file changed, 6 insertions(+), 2 deletions(-)
20194
20195commit cfabb62a4874c146e7d6f30445637602545bc054
20196Author: Lasse Collin <lasse.collin@tukaani.org>
20197Date:   2023-01-10 12:47:16 +0200
20198
20199    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
20200
20201    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
20202
20203    It was reported that it wasn't a good enough fix and MSVC
20204    still produced (different kind of) bad code when building
20205    for 32-bit x86 if optimizations are enabled.
20206
20207    Thanks to Iouri Kharon.
20208
20209 src/liblzma/check/crc64_fast.c | 6 ------
20210 1 file changed, 6 deletions(-)
20211
20212commit 0b64215170dd3562f207ef26f794755bcd600526
20213Author: Lasse Collin <lasse.collin@tukaani.org>
20214Date:   2023-01-10 11:56:11 +0200
20215
20216    sysdefs.h: Don't include strings.h anymore.
20217
20218    On some platforms src/xz/suffix.c may need <strings.h> for
20219    strcasecmp() but suffix.c includes the header when it needs it.
20220
20221    Unless there is an old system that otherwise supports enough C99
20222    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
20223    there should be no need to include <strings.h> in sysdefs.h.
20224
20225 src/common/sysdefs.h | 6 ------
20226 1 file changed, 6 deletions(-)
20227
20228commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
20229Author: Lasse Collin <lasse.collin@tukaani.org>
20230Date:   2023-01-10 11:23:41 +0200
20231
20232    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
20233
20234    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
20235    Of these, strcasecmp() is used on some platforms in suffix.c.
20236    Nothing else in the project needs <strings.h> (at least if
20237    building on a modern system).
20238
20239    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
20240    defined and suffix.c relied on this.
20241
20242    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
20243    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
20244    is also in <string.h> in DJGPP.
20245
20246 src/xz/suffix.c | 3 +++
20247 1 file changed, 3 insertions(+)
20248
20249commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
20250Author: Lasse Collin <lasse.collin@tukaani.org>
20251Date:   2023-01-10 10:05:13 +0200
20252
20253    sysdefs.h: Fix a comment.
20254
20255 src/common/sysdefs.h | 2 +-
20256 1 file changed, 1 insertion(+), 1 deletion(-)
20257
20258commit 194a5fab69277d9e804a6113b5f676b8666b3a61
20259Author: Lasse Collin <lasse.collin@tukaani.org>
20260Date:   2023-01-10 10:04:06 +0200
20261
20262    sysdefs.h: Don't include memory.h anymore even if it were available.
20263
20264    It quite probably was never needed, that is, any system where memory.h
20265    was required likely couldn't compile XZ Utils for other reasons anyway.
20266
20267    XZ Utils 5.2.6 and later source packages were generated using
20268    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
20269    being removed is no longer used anyway.
20270
20271 src/common/sysdefs.h | 8 ++------
20272 1 file changed, 2 insertions(+), 6 deletions(-)
20273
20274commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0
20275Author: Lasse Collin <lasse.collin@tukaani.org>
20276Date:   2023-01-10 08:29:32 +0200
20277
20278    CMake: Fix appending to CMAKE_RC_FLAGS.
20279
20280    It's a string, not a list. It only worked when the variable was empty.
20281
20282    Thanks to Iouri Kharon.
20283
20284 CMakeLists.txt | 2 +-
20285 1 file changed, 1 insertion(+), 1 deletion(-)
20286
20287commit 6e652ceb18c615c578c869db300fa0756788b4e0
20288Author: Lasse Collin <lasse.collin@tukaani.org>
20289Date:   2023-01-10 00:33:14 +0200
20290
20291    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
20292
20293 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
20294 1 file changed, 12 insertions(+), 7 deletions(-)
20295
20296commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47
20297Author: Lasse Collin <lasse.collin@tukaani.org>
20298Date:   2023-01-09 23:41:25 +0200
20299
20300    CMake: Fix windres issues again.
20301
20302    At least on some systems, GNU windres needs --use-temp-file
20303    in addition to the \x20 hack to avoid spaces in the command line
20304    argument. Hovever, that \x20 syntax is broken with llvm-windres
20305    version 15.0.0 (results in "XZx20Utils") but luckily it works
20306    with a regular space. Thus it is best to limit the workarounds
20307    to GNU toolchain on Windows.
20308
20309 CMakeLists.txt | 35 +++++++++++++++++++++++------------
20310 1 file changed, 23 insertions(+), 12 deletions(-)
20311
20312commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935
20313Author: Lasse Collin <lasse.collin@tukaani.org>
20314Date:   2023-01-06 22:53:38 +0200
20315
20316    Tests: test_filter_flags: Clean up minor issues.
20317
20318    Here are the list of the most significant issues addressed:
20319    - Avoid using internal common.h header. It's not good to copy the
20320    constants like this but common.h cannot be included for use outside
20321    of liblzma. This is the quickest thing to do that could be fixed later.
20322
20323    - Omit the INIT_FILTER macro. Initialization should be done with just
20324    regular designated initializers.
20325
20326    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
20327    Flags encoder and decoder don't validate the options thoroughly.
20328    257 is valid only for the x86 filter. This is a bit silly but
20329    not a significant problem in practice because the encoder and
20330    decoder initialization functions will catch bad alignment still.
20331    Perhaps this should be fixed but it's not urgent and doesn't need
20332    to be in 5.4.x.
20333
20334    - Various tweaks to comments such as filter id -> Filter ID
20335
20336 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
20337 1 file changed, 78 insertions(+), 75 deletions(-)
20338
20339commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865
20340Author: Jia Tan <jiat0218@gmail.com>
20341Date:   2022-12-29 23:33:33 +0800
20342
20343    Tests: Refactors existing filter flags tests.
20344
20345    Converts the existing filter flags tests into tuktests.
20346
20347 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
20348 1 file changed, 457 insertions(+), 198 deletions(-)
20349
20350commit 36edc65ab4cf10a131f239acbd423b4510ba52d5
20351Author: Lasse Collin <lasse.collin@tukaani.org>
20352Date:   2023-01-09 12:22:05 +0200
20353
20354    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
20355
20356    I haven't tested with MSVC myself and there doesn't seem to be
20357    information about the problem online, so I'm relying on the bug report.
20358
20359    Thanks to Iouri Kharon for the bug report and the patch.
20360
20361 src/liblzma/check/crc64_fast.c | 6 ++++++
20362 1 file changed, 6 insertions(+)
20363
20364commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d
20365Author: Lasse Collin <lasse.collin@tukaani.org>
20366Date:   2023-01-09 11:27:24 +0200
20367
20368    CMake: Fix a copypaste error in xzdec Windows resource file handling.
20369
20370    It was my mistake. Thanks to Iouri Kharon for the bug report.
20371
20372 CMakeLists.txt | 4 ++--
20373 1 file changed, 2 insertions(+), 2 deletions(-)
20374
20375commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848
20376Author: Lasse Collin <lasse.collin@tukaani.org>
20377Date:   2023-01-08 00:32:29 +0200
20378
20379    Tests: tuktest.h: Support tuktest_malloc(0).
20380
20381    It's not needed in XZ Utils at least for now. It's good to support
20382    it still because if such use is needed later, it wouldn't be
20383    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
20384
20385 tests/tuktest.h | 4 ++--
20386 1 file changed, 2 insertions(+), 2 deletions(-)
20387
20388commit 69d5d78c6904668eb09a131da86276beec3281f8
20389Author: Lasse Collin <lasse.collin@tukaani.org>
20390Date:   2023-01-08 00:24:23 +0200
20391
20392    Update THANKS.
20393
20394 THANKS | 1 +
20395 1 file changed, 1 insertion(+)
20396
20397commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
20398Author: Lasse Collin <lasse.collin@tukaani.org>
20399Date:   2023-01-07 21:57:11 +0200
20400
20401    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
20402
20403    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
20404    shouldn't affect this project.
20405
20406 CMakeLists.txt | 2 +-
20407 1 file changed, 1 insertion(+), 1 deletion(-)
20408
20409commit a890a637bee9193d5b690aefa9a59eba5b8532ae
20410Author: Lasse Collin <lasse.collin@tukaani.org>
20411Date:   2023-01-07 19:50:35 +0200
20412
20413    Update THANKS.
20414
20415 THANKS | 1 +
20416 1 file changed, 1 insertion(+)
20417
20418commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
20419Author: Lasse Collin <lasse.collin@tukaani.org>
20420Date:   2023-01-07 19:50:03 +0200
20421
20422    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
20423
20424    The command line tools cannot be built with MSVC for now but
20425    they can be built with MinGW-w64.
20426
20427    Thanks to Iouri Kharon for the bug report and the original patch.
20428
20429 CMakeLists.txt | 16 ++++++++++++++++
20430 1 file changed, 16 insertions(+)
20431
20432commit 443dfebced041adc88f10d824188eeef5b5821a9
20433Author: Lasse Collin <lasse.collin@tukaani.org>
20434Date:   2023-01-07 19:48:52 +0200
20435
20436    CMake/Windows: Add a workaround for windres from GNU binutils.
20437
20438    Thanks to Iouri Kharon for the bug report and the original patch.
20439
20440 CMakeLists.txt | 21 ++++++++++++++++++++-
20441 1 file changed, 20 insertions(+), 1 deletion(-)
20442
20443commit ceb805011747d04a915f3f39e4bed9eed151c634
20444Author: Lasse Collin <lasse.collin@tukaani.org>
20445Date:   2023-01-07 19:31:15 +0200
20446
20447    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
20448
20449    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
20450    disabled with VS2013.
20451
20452    Thanks to Iouri Kharon for the bug report.
20453
20454 CMakeLists.txt | 3 ++-
20455 configure.ac   | 8 ++++++--
20456 2 files changed, 8 insertions(+), 3 deletions(-)
20457
20458commit 8d372bd94066b1a5b0570b2550f83c2868486adf
20459Author: Jia Tan <jiat0218@gmail.com>
20460Date:   2023-01-07 21:05:15 +0800
20461
20462    CI/CD: Split CMake Linux and MacOS build phase to build and test.
20463
20464    The phase split was only done for Autotools before, so should also
20465    apply to CMake.
20466
20467 .github/workflows/ci.yml | 8 ++++++--
20468 1 file changed, 6 insertions(+), 2 deletions(-)
20469
20470commit 747c7f2b34bd498f6702c6875500a26b06201772
20471Author: Jia Tan <jiat0218@gmail.com>
20472Date:   2023-01-07 11:16:55 +0800
20473
20474    CI/CD: Reduce job runners to 4 instead of using matrix strategy.
20475
20476    The old version used too many runners that resulted in unnecessary
20477    dependency downloads. Now, the runners are reused for the different
20478    configurations for each OS and build system.
20479
20480 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------
20481 1 file changed, 83 insertions(+), 12 deletions(-)
20482
20483commit 4de35fd6b58d46fc887c78faf163f6a37b790c45
20484Author: Jia Tan <jiat0218@gmail.com>
20485Date:   2023-01-07 10:07:20 +0800
20486
20487    CI/CD: Add new -p (PHASE) argument to ci_build.sh
20488
20489    The new PHASE argument can be build, test, or all. all is the default.
20490    This way, the CI/CD script can differentiate between the build and test
20491    phases to make it easier to track down errors when they happen.
20492
20493 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++-----------------------
20494 1 file changed, 76 insertions(+), 64 deletions(-)
20495
20496commit 6fd39664de47801e670a16617863196bfbde4755
20497Merge: 78e0561d fc0c7884
20498Author: Jia Tan <jiat0218@gmail.com>
20499Date:   2023-01-07 00:10:50 +0800
20500
20501    Merge pull request #7 from tukaani-project/tuktest_index_hash
20502
20503    Tuktest index hash
20504
20505commit fc0c788469159f634f09ff23c8cef6925c91da57
20506Author: Lasse Collin <lasse.collin@tukaani.org>
20507Date:   2023-01-06 17:58:48 +0200
20508
20509    Tests: test_index_hash: Add an assert_uint_eq().
20510
20511 tests/test_index_hash.c | 3 +++
20512 1 file changed, 3 insertions(+)
20513
20514commit d550304f5343b3a082da265107cd820e0d81dc71
20515Author: Lasse Collin <lasse.collin@tukaani.org>
20516Date:   2023-01-06 17:55:06 +0200
20517
20518    Tests: test_index_hash: Fix a memory leak.
20519
20520 tests/test_index_hash.c | 2 ++
20521 1 file changed, 2 insertions(+)
20522
20523commit 02608f74ea1f2d2d56585711ff241c34b4ad0937
20524Author: Lasse Collin <lasse.collin@tukaani.org>
20525Date:   2023-01-06 17:53:03 +0200
20526
20527    Tests: test_index_hash: Don't treat pointers as booleans.
20528
20529 tests/test_index_hash.c | 6 +++---
20530 1 file changed, 3 insertions(+), 3 deletions(-)
20531
20532commit 056766c8601a3808bea1761f6cc833197a35a3e0
20533Author: Lasse Collin <lasse.collin@tukaani.org>
20534Date:   2023-01-06 17:51:41 +0200
20535
20536    Tests: test_index_hash: Fix a typo in a comment.
20537
20538 tests/test_index_hash.c | 2 +-
20539 1 file changed, 1 insertion(+), 1 deletion(-)
20540
20541commit 873e684028ba9738f071c5236db7d452ed797b4c
20542Author: Lasse Collin <lasse.collin@tukaani.org>
20543Date:   2023-01-06 17:44:29 +0200
20544
20545    Tests: test_index_hash: Avoid the variable name "index".
20546
20547    It can trigger warnings from -Wshadow on some systems.
20548
20549 tests/test_index_hash.c | 16 ++++++++--------
20550 1 file changed, 8 insertions(+), 8 deletions(-)
20551
20552commit d1f24c35874eeba8432d75aa77b06c50375ed937
20553Author: Lasse Collin <lasse.collin@tukaani.org>
20554Date:   2023-01-06 17:35:50 +0200
20555
20556    Tests: test_index_hash: Use the word "Record" instead of "entry".
20557
20558 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------
20559 1 file changed, 51 insertions(+), 51 deletions(-)
20560
20561commit b93f7c5cbb02b42024ac866fc0af541de3d816e2
20562Author: Lasse Collin <lasse.collin@tukaani.org>
20563Date:   2023-01-06 17:35:05 +0200
20564
20565    Tests: test_index_hash: Tweak comments and style.
20566
20567    The words defined in the .xz file format specification
20568    begin with capital letter to emphasize that they have
20569    a specific meaning.
20570
20571 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++-----------------------
20572 1 file changed, 33 insertions(+), 29 deletions(-)
20573
20574commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036
20575Author: Lasse Collin <lasse.collin@tukaani.org>
20576Date:   2023-01-06 17:17:37 +0200
20577
20578    Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.
20579
20580 tests/test_index_hash.c | 2 +-
20581 1 file changed, 1 insertion(+), 1 deletion(-)
20582
20583commit 78e0561dfebaa9d5e34558de537efcda890e0629
20584Author: Jia Tan <jiat0218@gmail.com>
20585Date:   2023-01-06 20:43:31 +0800
20586
20587    Style: Change #if !defined() to #ifndef in mythread.h.
20588
20589 src/common/mythread.h | 2 +-
20590 1 file changed, 1 insertion(+), 1 deletion(-)
20591
20592commit e834e1e934ed0af673598d8c0c34afb2af56bee0
20593Author: Jia Tan <jiat0218@gmail.com>
20594Date:   2023-01-06 20:35:55 +0800
20595
20596    Build: Add missing stream_decoder_mt.c to .vcxproj files.
20597
20598    The line in the .vcxproj files for building with was missing in 5.4.0.
20599    Thank to Hajin Jang for reporting the issue.
20600
20601 windows/vs2013/liblzma.vcxproj     | 1 +
20602 windows/vs2013/liblzma_dll.vcxproj | 1 +
20603 windows/vs2017/liblzma.vcxproj     | 1 +
20604 windows/vs2017/liblzma_dll.vcxproj | 1 +
20605 windows/vs2019/liblzma.vcxproj     | 1 +
20606 windows/vs2019/liblzma_dll.vcxproj | 1 +
20607 6 files changed, 6 insertions(+)
20608
20609commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111
20610Author: Jia Tan <jiat0218@gmail.com>
20611Date:   2023-01-05 20:57:25 +0800
20612
20613    liblzma: Remove common.h include from common/index.h.
20614
20615    common/index.h is needed by liblzma internally and tests. common.h will
20616    include and define many things that are not needed by the tests. Also,
20617    this prevents include order problems because common.h will redefine
20618    LZMA_API resulting in a warning.
20619
20620 src/liblzma/common/index.c                 | 1 +
20621 src/liblzma/common/index.h                 | 9 +++++++--
20622 src/liblzma/common/index_decoder.h         | 1 +
20623 src/liblzma/common/stream_buffer_encoder.c | 1 +
20624 4 files changed, 10 insertions(+), 2 deletions(-)
20625
20626commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f
20627Author: Lasse Collin <lasse.collin@tukaani.org>
20628Date:   2023-01-04 22:40:54 +0200
20629
20630    Update THANKS.
20631
20632 THANKS | 1 +
20633 1 file changed, 1 insertion(+)
20634
20635commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
20636Author: Lasse Collin <lasse.collin@tukaani.org>
20637Date:   2023-01-04 18:40:28 +0200
20638
20639    Tests: Adjust style in test_compress.sh.
20640
20641 tests/test_compress.sh | 12 +++++++-----
20642 1 file changed, 7 insertions(+), 5 deletions(-)
20643
20644commit 52380678f42364daa4510f92f6d3b18ec98c3638
20645Author: Jia Tan <jiat0218@gmail.com>
20646Date:   2023-01-04 23:58:58 +0800
20647
20648    Tests: Replace non portable shell parameter expansion
20649
20650    The shell parameter expansion using # and ## is not supported in
20651    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
20652    portable, so we should avoid it.
20653
20654 tests/create_compress_files.c          |  2 +-
20655 tests/test_compress.sh                 | 20 +++++++++++++-------
20656 tests/test_compress_prepared_bcj_sparc |  2 +-
20657 tests/test_compress_prepared_bcj_x86   |  2 +-
20658 4 files changed, 16 insertions(+), 10 deletions(-)
20659
20660commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b
20661Author: Jia Tan <jiat0218@gmail.com>
20662Date:   2023-01-03 21:02:38 +0800
20663
20664    Translations: Add Korean translation of man pages.
20665
20666    Thanks to Seong-ho Cho
20667
20668 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20669 po4a/po4a.conf |    2 +-
20670 2 files changed, 5553 insertions(+), 1 deletion(-)
20671
20672commit c4145978d95ebf1690c778d354e15f7c2823d7a8
20673Author: Jia Tan <jiat0218@gmail.com>
20674Date:   2023-01-03 20:47:27 +0800
20675
20676    Translations: Update the Esperanto translation.
20677
20678 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
20679 1 file changed, 332 insertions(+), 288 deletions(-)
20680
20681commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c
20682Author: Lasse Collin <lasse.collin@tukaani.org>
20683Date:   2023-01-02 17:20:47 +0200
20684
20685    Bump version and soname for 5.5.0alpha.
20686
20687    5.5.0alpha won't be released, it's just to mark that
20688    the branch is not for stable 5.4.x.
20689
20690    Once again there is no API/ABI stability for new features
20691    in devel versions. The major soname won't be bumped even
20692    if API/ABI of new features breaks between devel releases.
20693
20694 src/liblzma/Makefile.am        | 2 +-
20695 src/liblzma/api/lzma/version.h | 4 ++--
20696 2 files changed, 3 insertions(+), 3 deletions(-)
20697
20698commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a
20699Author: Lasse Collin <lasse.collin@tukaani.org>
20700Date:   2023-01-02 17:05:07 +0200
20701
20702    Build: Fix config.h comments.
20703
20704 configure.ac          | 2 +-
20705 m4/tuklib_progname.m4 | 2 +-
20706 2 files changed, 2 insertions(+), 2 deletions(-)
20707
20708commit bb740e3b117f1a3c65152d01e5755523a908ecb1
20709Author: Jia Tan <jiat0218@gmail.com>
20710Date:   2023-01-02 22:33:48 +0800
20711
20712    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
20713
20714    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
20715    HAVE_PROGRAM_INVOCATION_NAME. Previously,
20716    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
20717    building with autotools. CMake would only set this when it was 1, and the
20718    dos/config.h did not define it. The new macro definition is consistent
20719    across build systems.
20720
20721 cmake/tuklib_progname.cmake  | 5 ++---
20722 m4/tuklib_progname.m4        | 5 ++++-
20723 src/common/tuklib_progname.c | 2 +-
20724 src/common/tuklib_progname.h | 2 +-
20725 4 files changed, 8 insertions(+), 6 deletions(-)
20726
20727commit 064cd385a716abc78d93a3612411a82d69ceb221
20728Author: Jia Tan <jiat0218@gmail.com>
20729Date:   2022-12-29 00:30:52 +0800
20730
20731    Adds test_index_hash to .gitignore.
20732
20733 .gitignore | 1 +
20734 1 file changed, 1 insertion(+)
20735
20736commit 3959162baec074511d83ba0fec1284c3ed724799
20737Author: Jia Tan <jiat0218@gmail.com>
20738Date:   2022-12-29 00:25:18 +0800
20739
20740    Tests: Creates test_index_hash.c
20741
20742    Tests all API functions exported from index_hash.h. Does not have a
20743    dedicated test for lzma_index_hash_end.
20744
20745 CMakeLists.txt          |   2 +
20746 tests/Makefile.am       |   3 +
20747 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++
20748 3 files changed, 384 insertions(+)
20749
20750commit f16e12d5e755d371247202fcccbcccd1ec16b2cf
20751Author: Jia Tan <jiat0218@gmail.com>
20752Date:   2022-08-17 20:20:16 +0800
20753
20754    liblzma: Add NULL check to lzma_index_hash_append.
20755
20756    This is for consistency with lzma_index_append.
20757
20758 src/liblzma/common/index_hash.c | 2 +-
20759 1 file changed, 1 insertion(+), 1 deletion(-)
20760
20761commit 203b008eb220208981902e0db541c02d1c1c9f5e
20762Author: Jia Tan <jiat0218@gmail.com>
20763Date:   2022-08-17 17:59:51 +0800
20764
20765    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
20766
20767 src/liblzma/common/index.h             | 3 +++
20768 src/liblzma/common/index_decoder.c     | 2 +-
20769 src/liblzma/common/index_encoder.c     | 2 +-
20770 src/liblzma/common/index_hash.c        | 2 +-
20771 src/liblzma/common/stream_decoder.c    | 3 ++-
20772 src/liblzma/common/stream_decoder_mt.c | 2 +-
20773 6 files changed, 9 insertions(+), 5 deletions(-)
20774
20775commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0
20776Author: Lasse Collin <lasse.collin@tukaani.org>
20777Date:   2022-12-30 20:10:08 +0200
20778
20779    Tests: test_check: Test corner cases of CLMUL CRC64.
20780
20781 tests/test_check.c | 27 +++++++++++++++++++++++++++
20782 1 file changed, 27 insertions(+)
20783
20784commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7
20785Author: Lasse Collin <lasse.collin@tukaani.org>
20786Date:   2022-12-30 19:36:49 +0200
20787
20788    Tests: Clarify a comment in test_lzip_decoder.c.
20789
20790 tests/test_lzip_decoder.c | 8 ++++++--
20791 1 file changed, 6 insertions(+), 2 deletions(-)
20792
20793commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8
20794Author: Jia Tan <jiat0218@gmail.com>
20795Date:   2022-12-29 01:55:19 +0800
20796
20797    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
20798
20799    Previously, mytime.c depended on mythread.h for <time.h> to be included.
20800
20801 src/xz/mytime.c | 4 +++-
20802 1 file changed, 3 insertions(+), 1 deletion(-)
20803
20804commit f82294c8318a7a0990583d51ac5c7de682ad36ef
20805Author: Jia Tan <jiat0218@gmail.com>
20806Date:   2022-12-29 01:15:27 +0800
20807
20808    liblzma: Includes sys/time.h conditionally in mythread
20809
20810    Previously, <sys/time.h> was always included, even if mythread only used
20811    clock_gettime. <time.h> is still needed even if clock_gettime is not used
20812    though because struct timespec is needed for mythread_condtime.
20813
20814 src/common/mythread.h | 8 +++++++-
20815 1 file changed, 7 insertions(+), 1 deletion(-)
20816
20817commit 74dae7d30091e906d6a92a57952dea4354473f9b
20818Author: Jia Tan <jiat0218@gmail.com>
20819Date:   2022-12-29 01:10:53 +0800
20820
20821    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
20822
20823    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
20824    be set to 0 or 1. However, this macro was needed in xz so if xz was not
20825    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
20826    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
20827    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
20828    will only be set if it is 1.
20829
20830 CMakeLists.txt        | 8 +++-----
20831 configure.ac          | 5 ++++-
20832 src/common/mythread.h | 4 ++--
20833 src/xz/mytime.c       | 5 ++---
20834 4 files changed, 11 insertions(+), 11 deletions(-)
20835
20836commit 7339e39dc060df6eda74a2c5b69961befc3d5d24
20837Author: Jia Tan <jiat0218@gmail.com>
20838Date:   2022-12-28 01:14:07 +0800
20839
20840    Translations: Add Ukrainian translations of man pages.
20841
20842    Thanks to Yuri Chornoivan
20843
20844 po4a/po4a.conf |    2 +-
20845 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20846 2 files changed, 3677 insertions(+), 1 deletion(-)
20847
20848commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e
20849Author: Jia Tan <jiat0218@gmail.com>
20850Date:   2022-12-23 00:34:48 +0800
20851
20852    CI/CD: Create initial version of CI/CD workflow.
20853
20854    The CI/CD workflow will only execute on Ubuntu and MacOS latest version.
20855    The workflow will attempt to build with autotools and CMake and execute
20856    the tests. The workflow will run for all pull requests and pushes done
20857    to the master branch.
20858
20859 .github/workflows/ci.yml |  72 ++++++++++++++++++++++++
20860 build-aux/ci_build.sh    | 141 +++++++++++++++++++++++++++++++++++++++++++++++
20861 2 files changed, 213 insertions(+)
20862
20863commit 1275ebfba74230dbd028049141423c79c8b83b8f
20864Author: Jia Tan <jiat0218@gmail.com>
20865Date:   2022-12-22 23:14:53 +0800
20866
20867    liblzma: Update documentation for lzma_filter_encoder.
20868
20869 src/liblzma/common/filter_encoder.c | 7 +++++--
20870 1 file changed, 5 insertions(+), 2 deletions(-)
20871
20872commit 7c9ff5f1667a16733163b75dfd4b509662c387f4
20873Author: Jia Tan <jiat0218@gmail.com>
20874Date:   2022-12-21 21:12:03 +0800
20875
20876    Tests: Adds lzip decoder tests
20877
20878 .gitignore                |   1 +
20879 tests/Makefile.am         |   2 +
20880 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
20881 3 files changed, 474 insertions(+)
20882
20883commit 799ead162de63b8400733603d3abcd2e1977bdca
20884Author: Jia Cheong Tan <jiat0218@gmail.com>
20885Date:   2022-12-20 22:05:21 +0800
20886
20887    Doxygen: Update .gitignore for generating docs for in source build.
20888
20889    In source builds are not recommended, but we should still ignore
20890    the generated artifacts.
20891
20892 .gitignore | 2 ++
20893 1 file changed, 2 insertions(+)
20894
20895commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e
20896Author: Jia Tan <jiat0218@gmail.com>
20897Date:   2022-12-20 20:46:44 +0800
20898
20899    liblzma: Fix lzma_microlzma_encoder() return value.
20900
20901    Using return_if_error on lzma_lzma_lclppb_encode was improper because
20902    return_if_error is expecting an lzma_ret value, but
20903    lzma_lzma_lclppb_encode returns a boolean. This could result in
20904    lzma_microlzma_encoder, which would be misleading for applications.
20905
20906 src/liblzma/common/microlzma_encoder.c | 3 ++-
20907 1 file changed, 2 insertions(+), 1 deletion(-)
20908
20909commit 8ace358d65059152d9a1f43f4770170d29d35754
20910Author: Jia Tan <jiat0218@gmail.com>
20911Date:   2022-12-16 20:58:55 +0800
20912
20913    CMake: Update .gitignore for CMake artifacts from in source build.
20914
20915    In source builds are not recommended, but we can make it easier
20916    by ignoring the generated artifacts from CMake.
20917
20918 .gitignore | 23 +++++++++++++++++++++++
20919 1 file changed, 23 insertions(+)
20920
20921commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad
20922Author: Lasse Collin <lasse.collin@tukaani.org>
20923Date:   2022-12-16 18:30:02 +0200
20924
20925    liblzma: Update authors list in arm64.c.
20926
20927 src/liblzma/simple/arm64.c | 1 +
20928 1 file changed, 1 insertion(+)
20929
20930commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
20931Author: Lasse Collin <lasse.collin@tukaani.org>
20932Date:   2022-12-13 20:37:17 +0200
20933
20934    Bump version to 5.4.0 and soname to 5.4.0.
20935
20936 src/liblzma/Makefile.am         | 2 +-
20937 src/liblzma/api/lzma/version.h  | 6 +++---
20938 src/liblzma/liblzma_generic.map | 2 +-
20939 src/liblzma/liblzma_linux.map   | 2 +-
20940 4 files changed, 6 insertions(+), 6 deletions(-)
20941