xref: /freebsd/contrib/xz/ChangeLog (revision 128836d304d93f2d00eb14069c27089ab46c38d4)
1commit a522a226545730551f7e7c2685fab27cf567746c
2Author: Lasse Collin <lasse.collin@tukaani.org>
3Date:   2025-04-03 14:34:43 +0300
4
5    Bump version and soname for 5.8.1
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 1c462c2ad86ff85766928638431029cd0b0dc995
12Author: Lasse Collin <lasse.collin@tukaani.org>
13Date:   2025-04-03 14:34:43 +0300
14
15    Add NEWS for 5.8.1
16
17 NEWS | 30 ++++++++++++++++++++++++++++++
18 1 file changed, 30 insertions(+)
19
20commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   2025-04-03 14:34:43 +0300
23
24    Tests: Call lzma_code() in smaller chunks in fuzz_common.h
25
26    This makes it easy to crash fuzz_decode_stream_mt when tested
27    against the code from 5.8.0.
28
29    Obviously this might make it harder to reach some other code path now.
30    The previous code has been in use since 2018 when fuzzing was added
31    in 106d1a663d4b ("Tests: Add a fuzz test program and a config file
32    for OSS-Fuzz.").
33
34 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++-------
35 1 file changed, 24 insertions(+), 7 deletions(-)
36
37commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf
38Author: Lasse Collin <lasse.collin@tukaani.org>
39Date:   2025-04-03 14:34:43 +0300
40
41    Tests: Add a fuzzing target for the multithreaded .xz decoder
42
43    It doesn't seem possible to trigger the CVE-2025-31115 bug with this
44    fuzzing target at the moment. It's because the code in fuzz_common.h
45    passes the whole input buffer to lzma_code() at once.
46
47 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++
48 1 file changed, 47 insertions(+)
49
50commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d
51Author: Lasse Collin <lasse.collin@tukaani.org>
52Date:   2025-04-03 14:34:42 +0300
53
54    liblzma: mt dec: Fix lack of parallelization in single-shot decoding
55
56    Single-shot decoding means calling lzma_code() by giving it the whole
57    input at once and enough output buffer space to store the uncompressed
58    data, and combining this with LZMA_FINISH and no timeout
59    (lzma_mt.timeout = 0). This way the file is decoded with a single
60    lzma_code() call if possible.
61
62    The bug prevented the decoder from starting more than one worker thread
63    in single-shot mode. The issue was noticed when reviewing the code;
64    there are no bug reports. Thus maybe few have tried this mode.
65
66    Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.")
67
68 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++--
69 1 file changed, 9 insertions(+), 2 deletions(-)
70
71commit 8188048854e8d11071b8a50d093c74f4c030acc9
72Author: Lasse Collin <lasse.collin@tukaani.org>
73Date:   2025-04-03 14:34:42 +0300
74
75    liblzma: mt dec: Don't modify thr->in_size in the worker thread
76
77    Don't set thr->in_size = 0 when returning the thread to the stack of
78    available threads. Not only is it useless, but the main thread may
79    read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made
80    no difference if the main thread saw the original value or 0. With
81    invalid inputs (when worker thread stops early), thr->in_size was
82    no longer modified after the previous commit with the security fix
83    ("Don't free the input buffer too early").
84
85    So while the bug appears harmless now, it's important to fix it because
86    the variable was being modified without proper locking. It's trivial
87    to fix because there is no need to change the value. Only main thread
88    needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new
89    Block before the worker thread is activated.
90
91    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
92    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
93    Thanks-to: Sam James <sam@gentoo.org>
94
95 src/liblzma/common/stream_decoder_mt.c | 6 ++++--
96 1 file changed, 4 insertions(+), 2 deletions(-)
97
98commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480
99Author: Lasse Collin <lasse.collin@tukaani.org>
100Date:   2025-04-03 14:34:42 +0300
101
102    liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)
103
104    The input buffer must be valid as long as the main thread is writing
105    to the worker-specific input buffer. Fix it by making the worker
106    thread not free the buffer on errors and not return the worker thread to
107    the pool. The input buffer will be freed when threads_end() is called.
108
109    With invalid input, the bug could at least result in a crash. The
110    effects include heap use after free and writing to an address based
111    on the null pointer plus an offset.
112
113    The bug has been there since the first committed version of the threaded
114    decoder and thus affects versions from 5.3.3alpha to 5.8.0.
115
116    As the commit message in 4cce3e27f529 says, I had made significant
117    changes on top of Sebastian's patch. This bug was indeed introduced
118    by my changes; it wasn't in Sebastian's version.
119
120    Thanks to Harri K. Koskinen for discovering and reporting this issue.
121
122    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
123    Reported-by: Harri K. Koskinen <x64nop@nannu.org>
124    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
125    Thanks-to: Sam James <sam@gentoo.org>
126
127 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++---------
128 1 file changed, 22 insertions(+), 9 deletions(-)
129
130commit c0c835964dfaeb2513a3c0bdb642105152fe9f34
131Author: Lasse Collin <lasse.collin@tukaani.org>
132Date:   2025-04-03 14:34:42 +0300
133
134    liblzma: mt dec: Simplify by removing the THR_STOP state
135
136    The main thread can directly set THR_IDLE in threads_stop() which is
137    called when errors are detected. threads_stop() won't return the stopped
138    threads to the pool or free the memory pointed by thr->in anymore, but
139    it doesn't matter because the existing workers won't be reused after
140    an error. The resources will be cleaned up when threads_end() is
141    called (reinitializing the decoder always calls threads_end()).
142
143    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
144    Thanks-to: Sam James <sam@gentoo.org>
145
146 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++---------------------
147 1 file changed, 29 insertions(+), 46 deletions(-)
148
149commit 831b55b971cf579ee16a854f177c36b20d3c6999
150Author: Lasse Collin <lasse.collin@tukaani.org>
151Date:   2025-04-03 14:34:42 +0300
152
153    liblzma: mt dec: Fix a comment
154
155    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
156    Thanks-to: Sam James <sam@gentoo.org>
157
158 src/liblzma/common/stream_decoder_mt.c | 2 +-
159 1 file changed, 1 insertion(+), 1 deletion(-)
160
161commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a
162Author: Lasse Collin <lasse.collin@tukaani.org>
163Date:   2025-04-03 14:34:30 +0300
164
165    liblzma: Add assertions to lzma_bufcpy()
166
167 src/liblzma/common/common.c | 6 ++++++
168 1 file changed, 6 insertions(+)
169
170commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae
171Author: Lasse Collin <lasse.collin@tukaani.org>
172Date:   2025-04-02 16:40:22 +0300
173
174    DOS: Update Makefile to fix the build
175
176 dos/Makefile | 2 ++
177 1 file changed, 2 insertions(+)
178
179commit 307c02ed698a69763ef1c9c0df4ff24727442118
180Author: Lasse Collin <lasse.collin@tukaani.org>
181Date:   2025-03-29 12:41:32 +0200
182
183    sysdefs.h: Avoid <stdalign.h> even with C11 compilers
184
185    Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in
186    __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing.
187    We only need alignas, so define it to _Alignas with C11/C17 compilers.
188    If something included <stdalign.h> later, it shouldn't cause problems.
189
190    Thanks to Ihsan Dogan for reporting the issue and testing the fix.
191
192    Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
193
194 src/common/sysdefs.h | 4 +++-
195 1 file changed, 3 insertions(+), 1 deletion(-)
196
197commit 7ce38b318339d6c01378a77585e08169ca3a604e
198Author: Lasse Collin <lasse.collin@tukaani.org>
199Date:   2025-03-29 12:32:05 +0200
200
201    Update THANKS
202
203 THANKS | 1 +
204 1 file changed, 1 insertion(+)
205
206commit 688e51bde4c987589717b2be1a1fde9576c604fc
207Author: Lasse Collin <lasse.collin@tukaani.org>
208Date:   2025-03-29 12:21:51 +0200
209
210    Translations: Update the Croatian translation
211
212 po/hr.po | 14 +++++++-------
213 1 file changed, 7 insertions(+), 7 deletions(-)
214
215commit 173fb5c68b08a8c1369550267be258132b7760c6
216Author: Lasse Collin <lasse.collin@tukaani.org>
217Date:   2025-03-25 18:23:57 +0200
218
219    doc/SHA256SUMS: Add 5.8.0
220
221 doc/SHA256SUMS | 6 ++++++
222 1 file changed, 6 insertions(+)
223
224commit db9258e828bc2cd96e3954f1ddcc9d3530589025
225Author: Lasse Collin <lasse.collin@tukaani.org>
226Date:   2025-03-25 15:18:32 +0200
227
228    Bump version and soname for 5.8.0
229
230    Also remove the LZMA_UNSTABLE macro.
231
232 src/liblzma/Makefile.am         | 2 +-
233 src/liblzma/api/lzma/bcj.h      | 2 --
234 src/liblzma/api/lzma/version.h  | 6 +++---
235 src/liblzma/common/common.h     | 2 --
236 src/liblzma/liblzma_generic.map | 2 +-
237 src/liblzma/liblzma_linux.map   | 2 +-
238 6 files changed, 6 insertions(+), 10 deletions(-)
239
240commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2
241Author: Lasse Collin <lasse.collin@tukaani.org>
242Date:   2025-03-25 15:18:32 +0200
243
244    Add NEWS for 5.8.0
245
246 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
247 1 file changed, 62 insertions(+)
248
249commit 6ccbb904da851eb0c174c8dbd43e84da31739720
250Author: Lasse Collin <lasse.collin@tukaani.org>
251Date:   2025-03-25 15:18:31 +0200
252
253    Translations: Run "make -C po update-po"
254
255    POT-Creation-Date is set to match the timestamp in 5.7.2beta which
256    in the Translation Project is known as 5.8.0-pre1. The strings
257    haven't changed since 5.7.1alpha but a few comments have.
258
259    This is a very noisy commit, but this helps keeping the PO files
260    similar between the Git repository and stable release tarballs.
261
262 po/ca.po    | 964 ++++++++++++++++++++++++++++++++++++++++++++---------------
263 po/cs.po    | 935 ++++++++++++++++++++++++++++++++++++++++++----------------
264 po/da.po    | 663 ++++++++++++++++++++++++++++++-----------
265 po/de.po    |   7 +-
266 po/eo.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
267 po/es.po    |   7 +-
268 po/fi.po    |   2 +-
269 po/fr.po    | 916 +++++++++++++++++++++++++++++++++++++++++---------------
270 po/hu.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
271 po/ka.po    |   7 +-
272 po/ko.po    |   7 +-
273 po/nl.po    |   7 +-
274 po/pl.po    |   7 +-
275 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++---------------
276 po/sr.po    |   2 +-
277 po/sv.po    |   7 +-
278 po/tr.po    |   7 +-
279 po/uk.po    |   7 +-
280 po/vi.po    | 948 +++++++++++++++++++++++++++++++++++++++++++---------------
281 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++--------------
282 po/zh_TW.po |   2 +-
283 21 files changed, 6209 insertions(+), 2120 deletions(-)
284
285commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800
286Author: Lasse Collin <lasse.collin@tukaani.org>
287Date:   2025-03-25 15:18:31 +0200
288
289    Translations: Run po4a/update-po
290
291    Also remove the trivial obsolete messages like man page dates.
292
293    This is a noisy commit, but this helps keeping the PO files similar
294    between the Git repository and stable release tarballs.
295
296 po4a/fr.po    | 82 +++++++++++++++++++++++++++++++++++++------------------
297 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------
298 po4a/sr.po    | 79 ++++++++++++++++++++++++++++++++++-------------------
299 3 files changed, 167 insertions(+), 82 deletions(-)
300
301commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c
302Author: Lasse Collin <lasse.collin@tukaani.org>
303Date:   2025-03-25 15:18:31 +0200
304
305    Translations: Partially fix overtranslation in Serbian man pages
306
307    Names of environment variables and some other strings must be present
308    in the original form. The translator couldn't be reached so I'm
309    changing some of the strings myself. In the "Robot mode" section,
310    occurrences in the middle of sentences weren't changed to reduce
311    the chance of grammar breakage, but I kept the translated strings in
312    parenthesis in the headings. It's not ideal, but now people shouldn't
313    need to look at the English man page to find the English strings.
314
315 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++--------------------
316 1 file changed, 45 insertions(+), 21 deletions(-)
317
318commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b
319Author: Lasse Collin <lasse.collin@tukaani.org>
320Date:   2025-03-25 15:18:31 +0200
321
322    liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage
323
324 src/liblzma/lz/lz_decoder.c | 3 ++-
325 1 file changed, 2 insertions(+), 1 deletion(-)
326
327commit 943b012d09f717f7b44284c4e4976ea41264c731
328Author: Lasse Collin <lasse.collin@tukaani.org>
329Date:   2025-03-25 15:18:31 +0200
330
331    liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
332
333    SSE2 is supported on every x86-64 processor. The SSE2 code is used on
334    32-bit x86 if compiler options permit unconditional use of SSE2.
335
336    dict_repeat() copies short random-sized unaligned buffers. At least
337    on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
338    clearly faster than byte-by-byte copying in this use case. Compared
339    to the memcpy() version, the new SSE2 version reduces decompression
340    time by 0-5 % depending on the machine and libc. It should never be
341    slower than the memcpy() version.
342
343    However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
344    Compared to the memcpy() version:
345
346      - The byte-by-version takes 6-7 % less time to decompress.
347      - The SSE2 version takes 16-18 % less time to decompress.
348
349    The numbers are from decompressing a Linux kernel source tarball in
350    single-threaded mode on older AMD and Intel systems. The tarball
351    compresses well, and thus dict_repeat() performance matters more
352    than with some other files.
353
354 src/liblzma/lz/lz_decoder.c | 14 ++++++--
355 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++-----
356 2 files changed, 90 insertions(+), 11 deletions(-)
357
358commit bc14e4c94e788d42eeab984298391fc0ca46f969
359Author: Lasse Collin <lasse.collin@tukaani.org>
360Date:   2025-03-25 15:18:31 +0200
361
362    liblzma: Add "restrict" to a few functions in lz_decoder.h
363
364    This doesn't make any difference in practice because compilers can
365    already see that writing through the dict->buf pointer cannot modify
366    the contents of *dict itself: The LZMA decoder makes a local copy of
367    the lzma_dict structure, and even if it didn't, the pointer to
368    lzma_dict in the LZMA decoder is already "restrict".
369
370    It's nice to add "restrict" anyway. uint8_t is typically unsigned char
371    which can alias anything. Without the above conditions or "restrict",
372    compilers could need to assume that writing through dict->buf might
373    modify *dict. This would matter in dict_repeat() because the loops
374    refer to dict->buf and dict->pos instead of making local copies of
375    those members for the duration of the loops. If compilers had to
376    assume that writing through dict->buf can affect *dict, then compilers
377    would need to emit code that reloads dict->buf and dict->pos after
378    every write through dict->buf.
379
380 src/liblzma/lz/lz_decoder.h | 7 ++++---
381 1 file changed, 4 insertions(+), 3 deletions(-)
382
383commit e82ee090c567e560f51a056775a17f534d159d65
384Author: Lasse Collin <lasse.collin@tukaani.org>
385Date:   2025-03-25 15:18:30 +0200
386
387    liblzma: Define LZ_DICT_INIT_POS for initial dictionary position
388
389    It's more readable.
390
391 src/liblzma/lz/lz_decoder.c | 4 ++--
392 src/liblzma/lz/lz_decoder.h | 9 ++++++---
393 2 files changed, 8 insertions(+), 5 deletions(-)
394
395commit 8e7cd0091e5239334437decbe1989662d45a2f47
396Author: Lasse Collin <lasse.collin@tukaani.org>
397Date:   2025-03-25 15:18:30 +0200
398
399    Windows: Update README-Windows.txt about UCRT
400
401 windows/README-Windows.txt | 3 ++-
402 1 file changed, 2 insertions(+), 1 deletion(-)
403
404commit 2c24292d341e505e5579fccac3bce5bc71d839ef
405Author: Lasse Collin <lasse.collin@tukaani.org>
406Date:   2025-03-25 15:18:15 +0200
407
408    Update THANKS
409
410 THANKS | 1 +
411 1 file changed, 1 insertion(+)
412
413commit 48053c90898fa191a216aefca01626520a7413f4
414Author: Lasse Collin <lasse.collin@tukaani.org>
415Date:   2025-03-17 15:33:25 +0200
416
417    Translations: Update the Italian translation
418
419 po/it.po | 32 ++++++++++++++++----------------
420 1 file changed, 16 insertions(+), 16 deletions(-)
421
422commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58
423Author: Lasse Collin <lasse.collin@tukaani.org>
424Date:   2025-03-17 15:28:56 +0200
425
426    Translations: Update the Portuguese translation
427
428    The language tag in the Translation Project is pt, not pt_PT,
429    thus I changed the "Language:" line to pt.
430
431 po/pt.po | 1045 +++++++++++++++++++++++++++++++-------------------------------
432 1 file changed, 526 insertions(+), 519 deletions(-)
433
434commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c
435Author: Lasse Collin <lasse.collin@tukaani.org>
436Date:   2025-03-14 13:02:21 +0200
437
438    Translations: Update the Italian translation
439
440 po/it.po | 1020 +++++++++++++++++++++++++++++++-------------------------------
441 1 file changed, 516 insertions(+), 504 deletions(-)
442
443commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf
444Author: Lasse Collin <lasse.collin@tukaani.org>
445Date:   2025-03-12 20:48:39 +0200
446
447    Translations: Update the Italian man page translations
448
449    Only trivial additions but this keeps the file in sync with the TP.
450
451 po4a/it.po | 4 ++--
452 1 file changed, 2 insertions(+), 2 deletions(-)
453
454commit 515b6fc8557825e1335012b3b1c8cf71e2c38775
455Author: Lasse Collin <lasse.collin@tukaani.org>
456Date:   2025-03-12 19:38:54 +0200
457
458    Translations: Update the Italian man page translations
459
460 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++-------------------------
461 1 file changed, 77 insertions(+), 52 deletions(-)
462
463commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218
464Author: Lasse Collin <lasse.collin@tukaani.org>
465Date:   2025-03-10 21:00:31 +0200
466
467    Translations: Update the Korean man page translations
468
469 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++--------------------------
470 1 file changed, 80 insertions(+), 59 deletions(-)
471
472commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88
473Author: Lasse Collin <lasse.collin@tukaani.org>
474Date:   2025-03-10 20:56:57 +0200
475
476    Translations: Update the German man page translations
477
478 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++-----------------------
479 1 file changed, 63 insertions(+), 39 deletions(-)
480
481commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d
482Author: Lasse Collin <lasse.collin@tukaani.org>
483Date:   2025-03-10 13:13:30 +0200
484
485    CMake: Fix tuklib_use_system_extensions
486
487    Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
488    will affect the calling scope. I had forgotten that while CMake
489    functions inherit the variables from the parent scope, the changes
490    to them are local unless using set(... PARENT_SCOPE).
491
492    This also means that the commit message in 5bb77d0920dc is wrong. The
493    commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
494    is only needed for specific check_c_source_compiles() calls.
495
496    Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
497
498 cmake/tuklib_common.cmake | 7 +++++--
499 1 file changed, 5 insertions(+), 2 deletions(-)
500
501commit 80e48836024ec2d7cbd557575be6da3d1f055cba
502Author: Lasse Collin <lasse.collin@tukaani.org>
503Date:   2025-03-10 11:38:55 +0200
504
505    INSTALL: Document -bmaxdata on AIX
506
507    This is based on a pull request and AIX docs. I haven't tested the
508    instructions myself.
509
510    Closes: https://github.com/tukaani-project/xz/pull/137
511
512 INSTALL | 5 +++++
513 1 file changed, 5 insertions(+)
514
515commit ab319186b6d0454285ff4941a777ac95e580f60f
516Author: Lasse Collin <lasse.collin@tukaani.org>
517Date:   2025-03-10 11:37:19 +0200
518
519    Update THANKS
520
521 THANKS | 1 +
522 1 file changed, 1 insertion(+)
523
524commit 4434671a04436038f88ab0feaa251cc8d7abb683
525Author: Collin Funk <collin.funk1@gmail.com>
526Date:   2025-03-09 19:14:31 -0700
527
528    tuklib_physmem: Silence -Wsign-conversion on AIX
529
530    Closes: https://github.com/tukaani-project/xz/pull/168
531
532 src/common/tuklib_physmem.c | 2 +-
533 1 file changed, 1 insertion(+), 1 deletion(-)
534
535commit 18bcaa4fafc935d89ffde94301fa6427907306bf
536Author: Lasse Collin <lasse.collin@tukaani.org>
537Date:   2025-03-09 22:10:38 +0200
538
539    Translations: Update the Romanian man page translations
540
541 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++-------------------------
542 1 file changed, 66 insertions(+), 44 deletions(-)
543
544commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363
545Author: Lasse Collin <lasse.collin@tukaani.org>
546Date:   2025-03-09 21:28:15 +0200
547
548    Translations: Update the Croatian translation
549
550 po/hr.po | 19 +++++++++++--------
551 1 file changed, 11 insertions(+), 8 deletions(-)
552
553commit ff85e6130d5940896915cdbb99aa9ece9d41240b
554Author: Lasse Collin <lasse.collin@tukaani.org>
555Date:   2025-03-09 21:23:34 +0200
556
557    Translations: Update the Romanian translation
558
559 po/ro.po | 24 +++++++++++++-----------
560 1 file changed, 13 insertions(+), 11 deletions(-)
561
562commit a5bfb33f30f77e656723d365db8b06e089d3de61
563Author: Lasse Collin <lasse.collin@tukaani.org>
564Date:   2025-03-09 21:11:34 +0200
565
566    Translations: Update the Ukrainian man page translations
567
568 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++-------------------------
569 1 file changed, 64 insertions(+), 43 deletions(-)
570
571commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df
572Author: Lasse Collin <lasse.collin@tukaani.org>
573Date:   2025-03-09 14:43:07 +0200
574
575    CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
576
577    Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
578    leak to the calling code.
579
580 cmake/tuklib_cpucores.cmake | 3 +++
581 cmake/tuklib_physmem.cmake  | 4 +++-
582 2 files changed, 6 insertions(+), 1 deletion(-)
583
584commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
585Author: Lasse Collin <lasse.collin@tukaani.org>
586Date:   2025-03-09 14:06:35 +0200
587
588    CMake: Revise tuklib_use_system_extensions
589
590    Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
591    these too (and a few others).
592
593    Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
594    makes a difference with mingw-w64.
595
596    Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
597    because there's always global effect because the global variable
598    CMAKE_REQUIRED_DEFINITIONS is modified.
599
600 CMakeLists.txt            |  2 +-
601 cmake/tuklib_common.cmake | 27 +++++++++++++++------------
602 2 files changed, 16 insertions(+), 13 deletions(-)
603
604commit 4243c45a48ef8c103d77b75d9f93d48adcb631db
605Author: Lasse Collin <lasse.collin@tukaani.org>
606Date:   2025-03-08 14:54:29 +0200
607
608    doc/SHA256SUMS: Add 5.7.2beta
609
610 doc/SHA256SUMS | 3 +++
611 1 file changed, 3 insertions(+)
612
613commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b
614Author: Lasse Collin <lasse.collin@tukaani.org>
615Date:   2025-03-08 14:29:57 +0200
616
617    Bump version and soname for 5.7.2beta
618
619 src/liblzma/Makefile.am         | 2 +-
620 src/liblzma/api/lzma/version.h  | 4 ++--
621 src/liblzma/liblzma_generic.map | 2 +-
622 src/liblzma/liblzma_linux.map   | 2 +-
623 4 files changed, 5 insertions(+), 5 deletions(-)
624
625commit 62e44b36167de27541776dcf677ed04077c9fd19
626Author: Lasse Collin <lasse.collin@tukaani.org>
627Date:   2025-03-08 14:24:38 +0200
628
629    Add NEWS for 5.7.2beta
630
631 NEWS | 35 +++++++++++++++++++++++++++++++++++
632 1 file changed, 35 insertions(+)
633
634commit 70f1f203789433b5d7b8b22e1655abc465d659f7
635Author: Lasse Collin <lasse.collin@tukaani.org>
636Date:   2025-03-08 14:23:00 +0200
637
638    COPYING: Remove the note about old releases
639
640 COPYING | 19 -------------------
641 1 file changed, 19 deletions(-)
642
643commit db9827dc38ff79de747a6fc7a99619e961dbc5e6
644Author: Lasse Collin <lasse.collin@tukaani.org>
645Date:   2025-03-08 14:22:28 +0200
646
647    xz: Update the man page about the environment variables again
648
649 src/xz/xz.1 | 22 +++++++++++-----------
650 1 file changed, 11 insertions(+), 11 deletions(-)
651
652commit 99c584891bd1d946561cebded2226df9b83f1efb
653Author: Lasse Collin <lasse.collin@tukaani.org>
654Date:   2025-03-06 19:26:09 +0200
655
656    liblzma: Edit spelling in a comment
657
658    It was found with codespell.
659
660 src/liblzma/api/lzma/container.h | 2 +-
661 1 file changed, 1 insertion(+), 1 deletion(-)
662
663commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28
664Author: Lasse Collin <lasse.collin@tukaani.org>
665Date:   2025-03-06 19:14:23 +0200
666
667    xz: Update the man page about the environment variables
668
669 src/xz/xz.1 | 26 ++++++++++++++++++++++++--
670 1 file changed, 24 insertions(+), 2 deletions(-)
671
672commit 808f05af3ef40730d40b3798666757bd866484f1
673Author: Lasse Collin <lasse.collin@tukaani.org>
674Date:   2025-03-06 17:37:39 +0200
675
676    Docs: Add a few TRANSLATORS comments to man pages
677
678    All translators know that --command-line-options must not be translated.
679    With some other strings it's not obvious when the untranslated string
680    must be preserved. These comments hopefully help.
681
682 src/scripts/xzmore.1 |  2 ++
683 src/xz/xz.1          | 22 ++++++++++++++++++++++
684 2 files changed, 24 insertions(+)
685
686commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b
687Author: Lasse Collin <lasse.collin@tukaani.org>
688Date:   2025-03-06 16:34:32 +0200
689
690    Scripts: Mark the LZMA Utils script aliases as deprecated
691
692    The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
693    lzgrep, lzegrep, and lzfgrep. The commands that start with
694    the xz prefix have identical behavior, for example, both
695    lzgrep and xzgrep handle all supported file formats.
696
697    This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
698    The last release of LZMA Utils was made in 2008, but the lzma
699    compatibility alias for the gzip-like tool is still in common use.
700    Deprecating it would cause unnecessary breakage.
701
702 src/scripts/xzdiff.1 | 5 ++++-
703 src/scripts/xzgrep.1 | 6 +++++-
704 src/scripts/xzless.1 | 4 +++-
705 src/scripts/xzmore.1 | 4 +++-
706 4 files changed, 15 insertions(+), 4 deletions(-)
707
708commit 4941ea454c02cf15a64d6434a0778fc2a81282fc
709Author: Lasse Collin <lasse.collin@tukaani.org>
710Date:   2025-03-02 21:13:04 +0200
711
712    Translations: Add Serbian man page translations
713
714 po4a/po4a.conf |    2 +-
715 po4a/sr.po     | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
716 2 files changed, 3893 insertions(+), 1 deletion(-)
717
718commit d142d96f24daa451edaabfca8594e202932b3c0b
719Author: Lasse Collin <lasse.collin@tukaani.org>
720Date:   2025-03-02 20:42:14 +0200
721
722    Translations: Update Georgian translation
723
724 po/ka.po | 4 ++--
725 1 file changed, 2 insertions(+), 2 deletions(-)
726
727commit 9b7e45d841195c8fd8d286e26f810df28c53dd16
728Author: Lasse Collin <lasse.collin@tukaani.org>
729Date:   2025-02-28 21:07:21 +0200
730
731    Update THANKS
732
733 THANKS | 1 +
734 1 file changed, 1 insertion(+)
735
736commit 9351592710e0df3238b09d39c545a643c50ac88f
737Author: Lasse Collin <lasse.collin@tukaani.org>
738Date:   2025-02-22 16:04:58 +0200
739
740    Update THANKS
741
742 THANKS | 1 +
743 1 file changed, 1 insertion(+)
744
745commit 9023be7831faca2f28def55e16c39e3a42e1e262
746Author: Lasse Collin <lasse.collin@tukaani.org>
747Date:   2025-02-19 16:33:52 +0200
748
749    Translations: Update the Croatian translation
750
751 po/hr.po | 6 +++---
752 1 file changed, 3 insertions(+), 3 deletions(-)
753
754commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5
755Author: Lasse Collin <lasse.collin@tukaani.org>
756Date:   2025-02-17 21:46:15 +0200
757
758    Build: Fix out-of-tree builds when using the replacement getopt_long
759
760    Nowaways $(top_builddir)/lib/getopt.h depends on headers in
761    $(top_srcdir)/lib, so both have to be in the include path.
762    CMake-based build already did this.
763
764    Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca
765
766 src/lzmainfo/Makefile.am | 6 ++++--
767 src/xz/Makefile.am       | 6 ++++--
768 src/xzdec/Makefile.am    | 6 ++++--
769 3 files changed, 12 insertions(+), 6 deletions(-)
770
771commit 41322b2c60cd2c67a1053cb40d27e573420185b7
772Author: Lasse Collin <lasse.collin@tukaani.org>
773Date:   2025-02-17 18:25:52 +0200
774
775    m4/getopt.m4: Remove an outdated comment
776
777 m4/getopt.m4 | 3 ---
778 1 file changed, 3 deletions(-)
779
780commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489
781Author: Lasse Collin <lasse.collin@tukaani.org>
782Date:   2025-02-17 18:11:58 +0200
783
784    Build: Allow forcing the use of the replacement getopt_long
785
786    Now one can pass gl_replace_getopt=yes to configure to force the use
787    of GNU getopt_long from the lib directory. This only checks that the
788    value of gl_replace_getopt is non-empty, so one cannot force the
789    replacement to be disabled.
790
791    Closes: https://github.com/tukaani-project/xz/pull/166
792
793 m4/getopt.m4 | 5 +++--
794 1 file changed, 3 insertions(+), 2 deletions(-)
795
796commit c23b837d15960ecc0d537f0260f389904e1e7f02
797Author: Lasse Collin <lasse.collin@tukaani.org>
798Date:   2025-02-17 18:11:42 +0200
799
800    Update THANKS
801
802 THANKS | 1 +
803 1 file changed, 1 insertion(+)
804
805commit 2672a38f1159babf9ba3cca429f644bb823a8bdd
806Author: Lasse Collin <lasse.collin@tukaani.org>
807Date:   2025-02-12 19:23:31 +0200
808
809    Update THANKS
810
811 THANKS | 2 ++
812 1 file changed, 2 insertions(+)
813
814commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23
815Author: Lasse Collin <lasse.collin@tukaani.org>
816Date:   2025-02-11 12:13:41 +0200
817
818    Update THANKS
819
820 THANKS | 3 +++
821 1 file changed, 3 insertions(+)
822
823commit 0d553568f1af9a35779ecac41392a6c871786930
824Author: Lasse Collin <lasse.collin@tukaani.org>
825Date:   2025-02-08 11:39:08 +0200
826
827    Translations: Update the Polish translation
828
829 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++---------------------------
830 1 file changed, 464 insertions(+), 338 deletions(-)
831
832commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd
833Author: Lasse Collin <lasse.collin@tukaani.org>
834Date:   2025-02-07 19:12:03 +0200
835
836    Docs: Update TODO a little
837
838 TODO | 22 ++++------------------
839 1 file changed, 4 insertions(+), 18 deletions(-)
840
841commit f5aa292c534f87b9dd588e667d1c65ed31e5f289
842Author: Lasse Collin <lasse.collin@tukaani.org>
843Date:   2025-02-07 18:50:56 +0200
844
845    Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS
846
847    These are specific phrases that were included in the advisories and
848    NEWS. It's nice to have them in THANKS as well.
849
850 THANKS | 4 ++++
851 1 file changed, 4 insertions(+)
852
853commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9
854Author: Lasse Collin <lasse.collin@tukaani.org>
855Date:   2025-02-07 18:43:00 +0200
856
857    Update THANKS
858
859 THANKS | 5 +++++
860 1 file changed, 5 insertions(+)
861
862commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d
863Author: Lasse Collin <lasse.collin@tukaani.org>
864Date:   2025-02-04 14:12:46 +0200
865
866    Docs: Update the "Translations" section in README
867
868    Make it clearer that translations cannot be accepted if they don't
869    come via the Translation Project.
870
871    Column headings have been handled automatically for years and now --help
872    is autowrapped too, so the related instructions can be removed.
873
874 README | 107 ++++++++++++++++++++++++-----------------------------------------
875 1 file changed, 39 insertions(+), 68 deletions(-)
876
877commit 2c7aee94936babf84b61b55420e503a0b2629ec1
878Author: Lasse Collin <lasse.collin@tukaani.org>
879Date:   2025-02-04 13:23:53 +0200
880
881    debug/translations.bash: Revise a little
882
883    Make it work for out-of-tree builds without requiring one to specify
884    the location of the xz executable.
885
886    Add xz --filters-help.
887
888    Make the output shorter by reducing the number of xz -lvv test files.
889
890    Show the value of LANGUAGE environment variable.
891
892    Show the xz.git version using git describe --abbrev=8 instead of =4.
893
894 debug/translation.bash | 24 +++++++++++-------------
895 1 file changed, 11 insertions(+), 13 deletions(-)
896
897commit c6b15e7045209002bbbf4979c48072af01c20d8d
898Author: Lasse Collin <lasse.collin@tukaani.org>
899Date:   2025-02-04 13:20:52 +0200
900
901    Build: Use "git describe --abbrev=8" in snapshot tarball names
902
903    8 is more likely to be reproducible than the old 4 without being
904    excessively long for a small repository like this.
905
906 Makefile.am | 2 +-
907 1 file changed, 1 insertion(+), 1 deletion(-)
908
909commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33
910Author: Lasse Collin <lasse.collin@tukaani.org>
911Date:   2025-02-04 19:37:17 +0200
912
913    Update THANKS
914
915 THANKS | 2 ++
916 1 file changed, 2 insertions(+)
917
918commit 353c33355cb12e5016d49052fd1e90d15568aa37
919Author: Lasse Collin <lasse.collin@tukaani.org>
920Date:   2025-02-03 16:29:31 +0200
921
922    Translations: Update the Serbian translation
923
924 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++---------------------------
925 1 file changed, 458 insertions(+), 347 deletions(-)
926
927commit 887dc281885052bced32b3aa309506ea58a2e78e
928Author: Lasse Collin <lasse.collin@tukaani.org>
929Date:   2025-02-03 16:15:38 +0200
930
931    Translations: Update Chinese (traditional) translation
932
933    Since there are no spaces between words, the unsophisticated automatic
934    word wrapping code needs some help. Compared to the version in the
935    Translation Project, I added a few \t characters which the word
936    wrapping code interprets as zero width spaces (hopefully they are
937    placed correctly). These edits can be seen with this command:
938
939        grep -v ^# po/zh_TW.po | grep --color -F '\t'
940
941 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++---------------------------
942 1 file changed, 471 insertions(+), 372 deletions(-)
943
944commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f
945Author: Lasse Collin <lasse.collin@tukaani.org>
946Date:   2025-02-03 16:12:44 +0200
947
948    Update THANKS
949
950 THANKS | 2 ++
951 1 file changed, 2 insertions(+)
952
953commit 23ea031820086d302a213be005a091df763b8a7b
954Author: Lasse Collin <lasse.collin@tukaani.org>
955Date:   2025-02-02 14:15:07 +0200
956
957    Build: Update posix-shell.m4 from Gnulib
958
959    Tabs have been converted to spaces and a "serial" number has been
960    added. The previous version was from 2008/2009. There are no functional
961    changes since then but now it's clearer that the copy in XZ Utils
962    isn't outdated.
963
964    The new file was picked from the Gnulib commit
965    81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds
966    a warranty disclaimer to the license, which obviously is fine,
967    but I didn't find a SPDX license identifier for the new license,
968    so for simplicity I used the earlier commit.
969
970 m4/posix-shell.m4 | 31 ++++++++++++++++---------------
971 1 file changed, 16 insertions(+), 15 deletions(-)
972
973commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b
974Author: Lasse Collin <lasse.collin@tukaani.org>
975Date:   2025-02-02 12:51:03 +0200
976
977    Build: Check for -fsanitize= also in $CC
978
979    People may put -fsanitize in CC instead of CFLAGS so check both.
980    Landlock sandbox isn't compatible with sanitizers so it's nice
981    to catch the incompatible options at configure time.
982
983    Don't attempt to do the same in CMakeLists.txt; the check for
984    CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from
985    the CC environment variable go into the undocumented internal variable
986    CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable).
987    Peeking the internal variable merely for improved diagnostics isn't
988    worth it.
989
990    Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179
991
992 configure.ac | 5 +++--
993 1 file changed, 3 insertions(+), 2 deletions(-)
994
995commit a7304ea4a7daede9789a8fe422b714e372737120
996Author: Lasse Collin <lasse.collin@tukaani.org>
997Date:   2023-09-26 19:11:20 +0300
998
999    Build: Remove the FIXME about -Werror checks
1000
1001 configure.ac | 7 -------
1002 1 file changed, 7 deletions(-)
1003
1004commit 1780bba74075da5e7764615bd323e95e19057dee
1005Author: Lasse Collin <lasse.collin@tukaani.org>
1006Date:   2023-09-26 19:10:51 +0300
1007
1008    Build: If using a GCC compatible compiler, ensure that -Werror works
1009
1010    The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure.
1011    It won't be documented anywhere else than in the error message.
1012
1013    Ways to test:
1014
1015        ./configure CC=gcc CFLAGS=-Wunused-macros
1016        ./configure CC=clang CFLAGS=-Weverything
1017        ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes
1018
1019 configure.ac | 26 ++++++++++++++++++++++++++
1020 1 file changed, 26 insertions(+)
1021
1022commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d
1023Author: Lasse Collin <lasse.collin@tukaani.org>
1024Date:   2025-02-02 14:30:15 +0200
1025
1026    Update THANKS
1027
1028 THANKS | 4 ++++
1029 1 file changed, 4 insertions(+)
1030
1031commit 186ff78ab40ceb07cde139506cab42a927ca99d2
1032Author: Lasse Collin <lasse.collin@tukaani.org>
1033Date:   2025-02-01 12:49:09 +0200
1034
1035    Translations: Update Romanian translation
1036
1037 po/ro.po | 12 ++++++------
1038 1 file changed, 6 insertions(+), 6 deletions(-)
1039
1040commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4
1041Author: Lasse Collin <lasse.collin@tukaani.org>
1042Date:   2025-01-30 18:16:43 +0200
1043
1044    Translations: Update Korean man page translations
1045
1046 po4a/ko.po | 146 ++++++++++++++++++++++++-------------------------------------
1047 1 file changed, 56 insertions(+), 90 deletions(-)
1048
1049commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72
1050Author: Lasse Collin <lasse.collin@tukaani.org>
1051Date:   2025-01-30 18:15:52 +0200
1052
1053    Translations: Add Italian man page translations
1054
1055 po4a/it.po     | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1056 po4a/po4a.conf |    2 +-
1057 2 files changed, 3877 insertions(+), 1 deletion(-)
1058
1059commit 9b9182e561787a811fc0178489589f28c3e0174c
1060Author: Lasse Collin <lasse.collin@tukaani.org>
1061Date:   2025-01-29 22:18:29 +0200
1062
1063    Translations: Update the Finnish translation
1064
1065 po/fi.po | 13 +++++++------
1066 1 file changed, 7 insertions(+), 6 deletions(-)
1067
1068commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f
1069Author: Lasse Collin <lasse.collin@tukaani.org>
1070Date:   2025-01-29 20:50:03 +0200
1071
1072    lzmainfo: Use tuklib_mbstr_wrap for --help text
1073
1074    Some languages have so long strings that they need to be wrapped.
1075
1076 CMakeLists.txt           |  4 ++++
1077 src/lzmainfo/Makefile.am |  2 ++
1078 src/lzmainfo/lzmainfo.c  | 36 ++++++++++++++++++++++++++----------
1079 3 files changed, 32 insertions(+), 10 deletions(-)
1080
1081commit c56eb4707627d700695813fccdddd1483eac4f21
1082Author: Lasse Collin <lasse.collin@tukaani.org>
1083Date:   2025-01-29 20:00:06 +0200
1084
1085    Translations: Update the Croatian translation
1086
1087 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++---------------------------
1088 1 file changed, 529 insertions(+), 397 deletions(-)
1089
1090commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc
1091Author: Lasse Collin <lasse.collin@tukaani.org>
1092Date:   2025-01-29 19:56:01 +0200
1093
1094    Translations: Update the Finnish translation
1095
1096 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------
1097 1 file changed, 483 insertions(+), 428 deletions(-)
1098
1099commit d49dde33cf5f488bb38b1f57e172c4e3343fb383
1100Author: Lasse Collin <lasse.collin@tukaani.org>
1101Date:   2025-01-29 19:55:27 +0200
1102
1103    Translations: Update the German man page translations
1104
1105 po4a/de.po | 147 +++++++++++++++++++++++--------------------------------------
1106 1 file changed, 55 insertions(+), 92 deletions(-)
1107
1108commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c
1109Author: Lasse Collin <lasse.collin@tukaani.org>
1110Date:   2025-01-29 19:55:17 +0200
1111
1112    Translations: Update the German translation
1113
1114 po/de.po | 825 +++++++++++++++++++++++++++++++++++----------------------------
1115 1 file changed, 460 insertions(+), 365 deletions(-)
1116
1117commit 7edab2bde0606b42229d9c04fe664069e38de3fb
1118Author: Lasse Collin <lasse.collin@tukaani.org>
1119Date:   2025-01-29 19:55:05 +0200
1120
1121    Translations: Update the Turkish translation
1122
1123 po/tr.po | 892 +++++++++++++++++++++++++++++++++++----------------------------
1124 1 file changed, 490 insertions(+), 402 deletions(-)
1125
1126commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5
1127Author: Lasse Collin <lasse.collin@tukaani.org>
1128Date:   2025-01-29 19:54:36 +0200
1129
1130    Translations: Add the Dutch translation
1131
1132 po/LINGUAS |    1 +
1133 po/nl.po   | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1134 2 files changed, 1269 insertions(+)
1135
1136commit abe5092f24b55dde9f7f78fac1bf810bce173273
1137Author: Lasse Collin <lasse.collin@tukaani.org>
1138Date:   2025-01-29 19:53:50 +0200
1139
1140    Translations: Update the Georgian translation
1141
1142 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++----------------
1143 1 file changed, 115 insertions(+), 38 deletions(-)
1144
1145commit b97b23c78d8100eec363c3e999c511560366d347
1146Author: Lasse Collin <lasse.collin@tukaani.org>
1147Date:   2025-01-29 19:53:21 +0200
1148
1149    Translations: Update the Spanish translation
1150
1151 po/es.po | 824 ++++++++++++++++++++++++++++++++++-----------------------------
1152 1 file changed, 450 insertions(+), 374 deletions(-)
1153
1154commit c68318cb49e0562bd22e88724ce85e76c6789a3a
1155Author: Lasse Collin <lasse.collin@tukaani.org>
1156Date:   2025-01-29 19:53:06 +0200
1157
1158    Translations: Update the Korean translation
1159
1160 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++--------------------------
1161 1 file changed, 460 insertions(+), 325 deletions(-)
1162
1163commit 153ee17f635962a474499f786ea1de1e1a2bb276
1164Author: Lasse Collin <lasse.collin@tukaani.org>
1165Date:   2025-01-29 19:52:42 +0200
1166
1167    Translations: Update the Romanian man page translations
1168
1169 po4a/ro.po | 141 +++++++++++++++++++++++--------------------------------------
1170 1 file changed, 54 insertions(+), 87 deletions(-)
1171
1172commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4
1173Author: Lasse Collin <lasse.collin@tukaani.org>
1174Date:   2025-01-29 19:51:59 +0200
1175
1176    Translations: Update the Romanian translation
1177
1178 po/ro.po | 818 +++++++++++++++++++++++++++++++++++----------------------------
1179 1 file changed, 461 insertions(+), 357 deletions(-)
1180
1181commit 06028803e19219f642aa9abddd3525c43594ec6c
1182Author: Lasse Collin <lasse.collin@tukaani.org>
1183Date:   2025-01-29 19:50:50 +0200
1184
1185    Translations: Update the Ukrainian man page translations
1186
1187 po4a/uk.po | 142 +++++++++++++++++++++++--------------------------------------
1188 1 file changed, 54 insertions(+), 88 deletions(-)
1189
1190commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df
1191Author: Lasse Collin <lasse.collin@tukaani.org>
1192Date:   2025-01-29 19:50:26 +0200
1193
1194    Translations: Update the Ukrainian translation
1195
1196 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++---------------------------
1197 1 file changed, 460 insertions(+), 353 deletions(-)
1198
1199commit 81c352907b8048b97d9868947026701a49f377ef
1200Author: Lasse Collin <lasse.collin@tukaani.org>
1201Date:   2025-01-29 19:48:43 +0200
1202
1203    Translations: Update the Swedish translation
1204
1205 po/sv.po | 847 ++++++++++++++++++++++++++++++++++-----------------------------
1206 1 file changed, 462 insertions(+), 385 deletions(-)
1207
1208commit 999ce263718a52ba74245c3e2a416ab11494d1b1
1209Author: Lasse Collin <lasse.collin@tukaani.org>
1210Date:   2025-01-28 16:33:32 +0200
1211
1212    tuklib_physmem: Clean up disabled code
1213
1214 src/common/tuklib_physmem.c | 9 +--------
1215 1 file changed, 1 insertion(+), 8 deletions(-)
1216
1217commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab
1218Author: Lasse Collin <lasse.collin@tukaani.org>
1219Date:   2025-01-28 16:28:18 +0200
1220
1221    Windows: Avoid an error message on broken pipe
1222
1223    Also make xz not process more input files after a broken pipe has
1224    been detected. This matches the behavior on POSIX. If all files
1225    are being written to standard output, trying with the next file is
1226    pointless when it's known that standard output won't accept more data.
1227
1228    xzdec already stopped after the first error. It does so with all
1229    errors, so it differs from xz:
1230
1231        $ xz -dc not_found_1 not_found_2
1232        xz: not_found_1: No such file or directory
1233        xz: not_found_2: No such file or directory
1234
1235        $ xzdec not_found_1 not_found_2
1236        xzdec: not_found_1: No such file or directory
1237
1238    Reported-by: Vincent Torri
1239
1240 src/xz/file_io.c  | 13 +++++++++++++
1241 src/xzdec/xzdec.c | 11 ++++++++++-
1242 2 files changed, 23 insertions(+), 1 deletion(-)
1243
1244commit 95b638480aa8203e547c709c651f421c22db1718
1245Author: Lasse Collin <lasse.collin@tukaani.org>
1246Date:   2025-01-23 19:59:17 +0200
1247
1248    doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha
1249
1250 doc/SHA256SUMS | 9 +++++++++
1251 1 file changed, 9 insertions(+)
1252
1253commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d
1254Author: Lasse Collin <lasse.collin@tukaani.org>
1255Date:   2025-01-23 11:50:42 +0200
1256
1257    Bump version and soname for 5.7.1alpha
1258
1259 src/liblzma/Makefile.am         | 2 +-
1260 src/liblzma/api/lzma/version.h  | 2 +-
1261 src/liblzma/liblzma_generic.map | 2 +-
1262 src/liblzma/liblzma_linux.map   | 2 +-
1263 4 files changed, 4 insertions(+), 4 deletions(-)
1264
1265commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322
1266Author: Lasse Collin <lasse.collin@tukaani.org>
1267Date:   2025-01-23 11:48:43 +0200
1268
1269    Translations: Run po4a/update-po
1270
1271 po4a/de.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1272 po4a/fr.po    | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
1273 po4a/ko.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1274 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
1275 po4a/ro.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1276 po4a/uk.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1277 6 files changed, 320 insertions(+), 50 deletions(-)
1278
1279commit ff0b825505e60e21b32e33c42f551c8f34ba393f
1280Author: Lasse Collin <lasse.collin@tukaani.org>
1281Date:   2025-01-23 11:40:46 +0200
1282
1283    Add NEWS for 5.7.1alpha
1284
1285 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1286 1 file changed, 107 insertions(+)
1287
1288commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf
1289Author: Lasse Collin <lasse.collin@tukaani.org>
1290Date:   2025-01-23 11:40:46 +0200
1291
1292    Add NEWS for 5.6.4
1293
1294 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
1295 1 file changed, 45 insertions(+)
1296
1297commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228
1298Author: Lasse Collin <lasse.collin@tukaani.org>
1299Date:   2025-01-23 11:40:46 +0200
1300
1301    NEWS: The security fix in 5.6.3 is known as CVE-2024-47611
1302
1303 NEWS | 4 +++-
1304 1 file changed, 3 insertions(+), 1 deletion(-)
1305
1306commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29
1307Author: Lasse Collin <lasse.collin@tukaani.org>
1308Date:   2025-01-22 16:55:09 +0200
1309
1310    windows/build.bash: Fix error message
1311
1312    Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
1313
1314 windows/build.bash | 2 +-
1315 1 file changed, 1 insertion(+), 1 deletion(-)
1316
1317commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb
1318Author: Lasse Collin <lasse.collin@tukaani.org>
1319Date:   2025-01-22 15:03:55 +0200
1320
1321    Windows: Disable MinGW-w64's stdio functions in size-optimized builds
1322
1323    This only affects builds with UCRT. With legacy MSVCRT, the replacement
1324    functions are always enabled.
1325
1326    Omitting the MinGW-w64 replacements saves over 20 KiB per executable.
1327    The downside is that --enable-small or XZ_SMALL=ON disables thousand
1328    separator support in xz messages. If someone is OK with the slower
1329    speed of slightly smaller builds, lack of thousand separators won't
1330    matter.
1331
1332    Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via
1333    CPPFLAGS or such method).
1334
1335 src/common/sysdefs.h | 30 +++++++++++++++++++++---------
1336 src/xz/util.c        |  6 +++++-
1337 2 files changed, 26 insertions(+), 10 deletions(-)
1338
1339commit a831bc185bdd44c06847eae8df2d35cc281f65da
1340Author: Lasse Collin <lasse.collin@tukaani.org>
1341Date:   2025-01-20 16:44:27 +0200
1342
1343    liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs
1344
1345    Put them behind the LZMA_UNSTABLE macro for now.
1346
1347    These low-level special APIs might become useful in erofs-utils.
1348
1349 src/liblzma/api/lzma/bcj.h      | 99 +++++++++++++++++++++++++++++++++++++++++
1350 src/liblzma/common/common.h     |  2 +
1351 src/liblzma/liblzma_generic.map | 10 +++++
1352 src/liblzma/liblzma_linux.map   | 10 +++++
1353 src/liblzma/simple/arm64.c      | 18 ++++++++
1354 src/liblzma/simple/riscv.c      | 18 ++++++++
1355 src/liblzma/simple/x86.c        | 24 ++++++++++
1356 7 files changed, 181 insertions(+)
1357
1358commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c
1359Author: Lasse Collin <lasse.collin@tukaani.org>
1360Date:   2025-01-20 16:31:49 +0200
1361
1362    xz: Unify a few strings with liblzma
1363
1364    Avoid having both "%s: foo" and "foo" as translatable strings
1365    so that translators don't need to handle it twice.
1366
1367 src/xz/options.c | 11 ++++++-----
1368 src/xz/util.c    |  4 ++--
1369 2 files changed, 8 insertions(+), 7 deletions(-)
1370
1371commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb
1372Author: Lasse Collin <lasse.collin@tukaani.org>
1373Date:   2025-01-20 16:31:49 +0200
1374
1375    xz: Translate error messages from lzma_str_to_filters()
1376
1377    liblzma doesn't use gettext but the messages are included in xz.pot,
1378    so xz can translate the messages.
1379
1380 src/xz/coder.c | 9 +++------
1381 1 file changed, 3 insertions(+), 6 deletions(-)
1382
1383commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028
1384Author: Lasse Collin <lasse.collin@tukaani.org>
1385Date:   2025-01-20 16:31:49 +0200
1386
1387    liblzma: Mark string conversion messages as translatable
1388
1389 po/POTFILES.in                         |  1 +
1390 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++--------------
1391 2 files changed, 59 insertions(+), 38 deletions(-)
1392
1393commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9
1394Author: Lasse Collin <lasse.collin@tukaani.org>
1395Date:   2025-01-20 16:31:35 +0200
1396
1397    liblzma: Tweak a few error messages in lzma_str_to_filters()
1398
1399 src/liblzma/common/string_conversion.c | 9 +++++----
1400 1 file changed, 5 insertions(+), 4 deletions(-)
1401
1402commit da359c360e986b21cd8d7b888c6a80f56b9d49c7
1403Author: Lasse Collin <lasse.collin@tukaani.org>
1404Date:   2025-01-19 20:11:54 +0200
1405
1406    Update THANKS
1407
1408 THANKS | 1 +
1409 1 file changed, 1 insertion(+)
1410
1411commit f032373561cefaf07f92ffe3fbc471ec6770456e
1412Author: Lasse Collin <lasse.collin@tukaani.org>
1413Date:   2025-01-19 19:40:32 +0200
1414
1415    Update THANKS
1416
1417 THANKS | 1 +
1418 1 file changed, 1 insertion(+)
1419
1420commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615
1421Author: Lasse Collin <lasse.collin@tukaani.org>
1422Date:   2025-01-13 08:44:58 +0200
1423
1424    liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs
1425
1426    Previously it was enabled only on x86-64 and ARM64 when also support
1427    for unaligned access was detected or manually enabled at built time.
1428
1429    In the default build configuration, the 8-byte method is now enabled
1430    also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was
1431    reported that on big endian POWER9, encoding time may reduce 12-13 %.
1432
1433    This change only affects builds with GCC and Clang because the code
1434    uses __builtin_ctzll or __builtin_clzll.
1435
1436    Thanks to Marcus Comstedt for testing on POWER9.
1437
1438 src/liblzma/common/memcmplen.h | 3 +--
1439 1 file changed, 1 insertion(+), 2 deletions(-)
1440
1441commit 96336b0110d47756a9fd2a103fbf0a99e905fbed
1442Author: Lasse Collin <lasse.collin@tukaani.org>
1443Date:   2025-01-12 13:06:17 +0200
1444
1445    Update THANKS
1446
1447 THANKS | 1 +
1448 1 file changed, 1 insertion(+)
1449
1450commit 150356207c8d6a3e0af465b676430d19d62f884c
1451Author: Lasse Collin <lasse.collin@tukaani.org>
1452Date:   2025-01-12 12:59:20 +0200
1453
1454    liblzma: Fix the encoder breakage on big endian ARM64
1455
1456    When the 8-byte method was enabled for ARM64, a check for endianness
1457    wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it.
1458
1459    Fixes: cd64dd70d5665b6048829c45772d08606f44672e
1460    Co-authored-by: Marcus Comstedt <marcus@mc.pp.se>
1461
1462 src/liblzma/common/memcmplen.h | 9 +++++++--
1463 1 file changed, 7 insertions(+), 2 deletions(-)
1464
1465commit b01b0958025a2da284b53a583f313f8140636cb5
1466Author: Lasse Collin <lasse.collin@tukaani.org>
1467Date:   2025-01-12 11:04:27 +0200
1468
1469    Windows: Update manifest comments about long UTF-8 filenames
1470
1471 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++--------
1472 1 file changed, 15 insertions(+), 8 deletions(-)
1473
1474commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a
1475Author: Lasse Collin <lasse.collin@tukaani.org>
1476Date:   2025-01-12 10:47:58 +0200
1477
1478    Windows: Update build.bash and its README-Windows.txt to UCRT
1479
1480    While MSVCRT builds are possible, UCRT works better with UTF-8.
1481    A 32-bit build is included still but hopefully it's not actually
1482    needed anymore.
1483
1484 windows/README-Windows.txt | 17 ++++++++---------
1485 windows/build.bash         | 20 ++++++++++++++------
1486 2 files changed, 22 insertions(+), 15 deletions(-)
1487
1488commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2
1489Author: Lasse Collin <lasse.collin@tukaani.org>
1490Date:   2025-01-10 13:11:40 +0200
1491
1492    Translations: Update Serbian translation
1493
1494    I rewrapped a few overlong lines. Those edits aren't in the
1495    Translation Project. Automatic wrapping in the master branch
1496    means that these strings need to be updated soon anyway.
1497
1498 po/sr.po | 346 ++++++++++++++++++++++-----------------------------------------
1499 1 file changed, 121 insertions(+), 225 deletions(-)
1500
1501commit 950da11ce09c90412dcbca29689575037640667a
1502Author: Lasse Collin <lasse.collin@tukaani.org>
1503Date:   2025-01-08 19:26:29 +0200
1504
1505    Build: Use --sort=name in TAR_OPTIONS
1506
1507    Use also LC_COLLATE=C to make the sorting locale-independent.
1508    Sorting makes the file order reproducible.
1509
1510 Makefile.am | 3 ++-
1511 1 file changed, 2 insertions(+), 1 deletion(-)
1512
1513commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d
1514Author: Lasse Collin <lasse.collin@tukaani.org>
1515Date:   2025-01-08 19:08:08 +0200
1516
1517    xz: Workaround broken O_SEARCH in musl
1518
1519    Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result
1520    in a file descriptor that works with fsync() although it should work.
1521    See the added comment.
1522
1523    The same issue affected gzip --synchronous:
1524
1525        https://bugs.gnu.org/75405
1526
1527    Thanks to Paul Eggert.
1528
1529 src/xz/file_io.c | 11 +++++++++++
1530 1 file changed, 11 insertions(+)
1531
1532commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c
1533Author: Lasse Collin <lasse.collin@tukaani.org>
1534Date:   2025-01-07 21:34:33 +0200
1535
1536    Revert "xz: O_SEARCH cannot be used for fsync()"
1537
1538    This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f.
1539
1540    POSIX-conforming O_SEARCH should allow fsync().
1541
1542 src/xz/file_io.c | 21 +++++++++++----------
1543 1 file changed, 11 insertions(+), 10 deletions(-)
1544
1545commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f
1546Author: Lasse Collin <lasse.collin@tukaani.org>
1547Date:   2025-01-05 21:43:11 +0200
1548
1549    xz: O_SEARCH cannot be used for fsync()
1550
1551    Opening a directory with O_SEARCH results in a file descriptor that can
1552    be used with functions like openat(). Such a file descriptor cannot be
1553    used with fsync(). Use O_RDONLY instead.
1554
1555    In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor
1556    from O_PATH doesn't allow fsync().
1557
1558    Seems that it's not possible to fsync() a directory that has write
1559    and search permissions but not read permission.
1560
1561    Fixes: 2a9e91d796d091740489d951fa7780525e4275f1
1562
1563 src/xz/file_io.c | 21 ++++++++++-----------
1564 1 file changed, 10 insertions(+), 11 deletions(-)
1565
1566commit ad2b57cb477b753293c25a01fc24c7f84ee523c2
1567Author: Lasse Collin <lasse.collin@tukaani.org>
1568Date:   2025-01-05 20:48:28 +0200
1569
1570    CI: Make ctest show errors from failed tests
1571
1572 build-aux/ci_build.bash | 2 +-
1573 1 file changed, 1 insertion(+), 1 deletion(-)
1574
1575commit c405264c031aceaf68dfd1546d6337afcebd48e5
1576Author: Lasse Collin <lasse.collin@tukaani.org>
1577Date:   2025-01-05 20:14:49 +0200
1578
1579    tuklib_mbstr_nonprint: Preserve the value of errno
1580
1581    A typical use case is like this:
1582
1583        printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno));
1584
1585    tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify
1586    errno. If errno isn't preserved, the error message might be wrong if
1587    a compiler decides to call tuklib_mask_nonprint() before strerror().
1588
1589    Fixes: 40e573305535960574404d2eae848b248c95ea7e
1590
1591 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++---
1592 src/common/tuklib_mbstr_nonprint.h |  4 +++-
1593 2 files changed, 17 insertions(+), 4 deletions(-)
1594
1595commit 2a9e91d796d091740489d951fa7780525e4275f1
1596Author: Lasse Collin <lasse.collin@tukaani.org>
1597Date:   2025-01-05 20:14:49 +0200
1598
1599    xz: Use fsync() before deleting the input file, and add --no-sync
1600
1601    xz's default behavior is to delete the input file after successful
1602    compression or decompression (unless writing to standard output).
1603    If the system crashes soon after the deletion, it is possible that
1604    the newly written file has not yet hit the disk while the previous
1605    delete operation might have. In that case neither the original file
1606    nor the written file is available.
1607
1608    Call fsync() on the file. On POSIX systems, sync also the directory
1609    where the file was created.
1610
1611    Add a new option --no-sync which disables fsync() usage. It can avoid
1612    a (possibly significant) performance penalty when processing many
1613    small files. It's fine to use --no-sync when one knows that the files
1614    are easy to recreate or restore after a system crash.
1615
1616    Using fsync() after every flush initiated by --flush-timeout was
1617    considered. It wasn't implemented at least for now.
1618
1619      - --flush-timeout is typically used when writing to stdout. If stdout
1620        is a file, xz cannot (portably) sync the directory of the file.
1621        One would need to create the output file first, sync the directory,
1622        and then run xz with fsync() enabled.
1623
1624      - If xz --flush-timeout output goes to a file, it's possible to use
1625        a separate script to sync the file, for example, once per minute
1626        while telling xz to flush more frequently.
1627
1628      - Not supporting syncing with --flush-timeout was simpler.
1629
1630    Portability notes:
1631
1632      - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now
1633        fail if "dir" cannot be opened for reading. If "dir" still has
1634        write and search permissions (like d-wx------ in "ls -l"),
1635        previously xz would have been able to compress "dir/file" still.
1636        Now it only works if using --no-sync (or --keep or --stdout).
1637
1638      - <libgen.h> and dirname() should be available on all POSIX systems,
1639        and aren't needed on non-POSIX systems.
1640
1641      - fsync() is available on all POSIX systems. The directory syncing
1642        could be changed to fdatasync() although at least on ext4 it
1643        doesn't seem to make a performance difference in xz's usage.
1644        fdatasync() would need a build system check to support (old)
1645        special cases, for example, MINIX 3.3.0 doesn't have fdatasync()
1646        and Solaris 10 needs -lrt.
1647
1648      - On native Windows, _commit() is used to replace fsync(). Directory
1649        syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on
1650        directories is a no-op.)
1651
1652      - DJGPP has fsync() for files. ;-)
1653
1654    Using fsync() was considered somewhere around 2009 and again in 2016 but
1655    those times the idea was rejected. For comparison, GNU gzip 1.7 (2016)
1656    added the option --synchronous which enables fsync().
1657
1658    Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1659    Fixes: https://bugs.debian.org/814089
1660    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html
1661    Closes: https://github.com/tukaani-project/xz/pull/151
1662
1663 src/xz/args.c    |  14 ++++++
1664 src/xz/args.h    |   2 +-
1665 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1666 src/xz/file_io.h |   6 +++
1667 src/xz/message.c |   3 ++
1668 src/xz/sandbox.c |   5 ++-
1669 src/xz/xz.1      |  24 ++++++++++-
1670 7 files changed, 177 insertions(+), 6 deletions(-)
1671
1672commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f
1673Author: Lasse Collin <lasse.collin@tukaani.org>
1674Date:   2024-12-27 09:15:50 +0200
1675
1676    xz: Use "goto" for error handling in io_open_dest_real()
1677
1678 src/xz/file_io.c | 20 +++++++++-----------
1679 1 file changed, 9 insertions(+), 11 deletions(-)
1680
1681commit 75107217670a97b7b772833669d88c3c2f188e37
1682Author: Lasse Collin <lasse.collin@tukaani.org>
1683Date:   2025-01-05 12:10:05 +0200
1684
1685    liblzma: Always validate the first digit of a preset string
1686
1687    lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The
1688    call from str_to_filters() detects the string type from the first
1689    character(s) and as a side-effect it validates the first digit of
1690    the preset string. So this change makes no difference there.
1691
1692    However, the call from parse_options() doesn't pre-validate the string.
1693    parse_lzma12_preset() will return an invalid value which is passed to
1694    lzma_lzma_preset() which safely rejects it. The bug still affects the
1695    the error message:
1696
1697        $ xz --filters=lzma2:preset=X
1698        xz: Error in --filters=FILTERS option:
1699        xz: lzma2:preset=X
1700        xz:               ^
1701        xz: Unsupported preset
1702
1703    After the fix:
1704
1705        $ xz --filters=lzma2:preset=X
1706        xz: Error in --filters=FILTERS option:
1707        xz: lzma2:preset=X
1708        xz:              ^
1709        xz: Unsupported preset
1710
1711    The ^ now correctly points to the X and not past it because the X itself
1712    is the problematic character.
1713
1714    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
1715
1716 src/liblzma/common/string_conversion.c | 4 ++++
1717 1 file changed, 4 insertions(+)
1718
1719commit 52ff32433734d03befd85a5bf00fba77d6501455
1720Author: Lasse Collin <lasse.collin@tukaani.org>
1721Date:   2025-01-05 11:40:34 +0200
1722
1723    xz: Fix getopt_long argument type in --filters*
1724
1725    Forgetting the argument (or not using = to separate the option from
1726    the argument) resulted in lzma_str_to_filters() being called with NULL
1727    as input string argument. The function handles it fine but xz passes
1728    the NULL to printf() too:
1729
1730        $ xz --filters
1731        xz: Error in --filters=FILTERS option:
1732        xz: (null)
1733        xz: ^
1734        xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters()
1735
1736    Now it's correct:
1737
1738        $ xz --filters
1739        xz: option '--filters' requires an argument
1740
1741    The --filters-help option doesn't take any arguments.
1742
1743    Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760
1744    Fixes: d6af7f347077b22403133239592e478931307759
1745    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
1746
1747 src/xz/args.c | 22 +++++++++++-----------
1748 1 file changed, 11 insertions(+), 11 deletions(-)
1749
1750commit 2655c81b5e92278b0fd51f6537c1116f8349b02a
1751Author: Lasse Collin <lasse.collin@tukaani.org>
1752Date:   2025-01-04 20:04:56 +0200
1753
1754    xzdec: Don't leave Landlock file descriptor open for no reason
1755
1756    This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427.
1757
1758    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
1759
1760 src/xzdec/xzdec.c | 2 ++
1761 1 file changed, 2 insertions(+)
1762
1763commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e
1764Author: Lasse Collin <lasse.collin@tukaani.org>
1765Date:   2025-01-04 20:02:18 +0200
1766
1767    xz: Make --single-stream imply --keep
1768
1769    Suggested by xx on #tukaani on 2024-04-12.
1770
1771 src/xz/args.c | 3 +++
1772 src/xz/xz.1   | 9 ++++++++-
1773 2 files changed, 11 insertions(+), 1 deletion(-)
1774
1775commit 6f412814a8019700248229ce972530159a0d9872
1776Author: Lasse Collin <lasse.collin@tukaani.org>
1777Date:   2025-01-04 19:57:07 +0200
1778
1779    Update AUTHORS
1780
1781    The contributions have been rewritten.
1782
1783 AUTHORS                         | 2 +-
1784 src/liblzma/check/crc32_arm64.h | 1 -
1785 src/liblzma/check/crc32_fast.c  | 1 -
1786 src/liblzma/check/crc_common.h  | 1 -
1787 4 files changed, 1 insertion(+), 4 deletions(-)
1788
1789commit 5651d153031a7ee2581cdba9bff658031826cb50
1790Author: Lasse Collin <lasse.collin@tukaani.org>
1791Date:   2025-01-04 15:02:16 +0200
1792
1793    xz: Avoid printf formats like %2$s
1794
1795    It's a POSIX feature that isn't in standard C. It's not available on
1796    Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support
1797    it even though it supports POSIX %'d for thousand separators.
1798
1799    Gettext's <libintl.h> provides overrides for printf and other functions
1800    which do support the %2$s formats. Translations use them. But xz should
1801    work on Windows without <libintl.h> too.
1802
1803    Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229
1804
1805 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++-------------------
1806 1 file changed, 32 insertions(+), 19 deletions(-)
1807
1808commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf
1809Author: Lasse Collin <lasse.collin@tukaani.org>
1810Date:   2025-01-04 14:41:37 +0200
1811
1812    tuklib_mbstr_wrap: Add printf format attribute
1813
1814    It's supported by GCC 3.x already.
1815
1816 src/common/tuklib_common.h     | 7 +++++++
1817 src/common/tuklib_mbstr_wrap.h | 1 +
1818 2 files changed, 8 insertions(+)
1819
1820commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b
1821Author: Lasse Collin <lasse.collin@tukaani.org>
1822Date:   2025-01-04 13:44:12 +0200
1823
1824    xz: Translate a Windows-specific string
1825
1826    Originally I thought that native Windows builds wouldn't be translated
1827    but nowadays at least MSYS2 ships such binaries.
1828
1829 src/xz/file_io.c | 2 +-
1830 1 file changed, 1 insertion(+), 1 deletion(-)
1831
1832commit 00eb6073c088be9e7516dfc00a13ef520827b57c
1833Author: Lasse Collin <lasse.collin@tukaani.org>
1834Date:   2025-01-02 15:32:10 +0200
1835
1836    xz: Use my_landlock.h
1837
1838    A slightly silly thing is that xz may now query the ABI version up to
1839    three times. We could call my_landlock_ruleset_attr_forbid_all() only
1840    once and cache the result but it didn't seem worth doing.
1841
1842 CMakeLists.txt   |  1 +
1843 src/xz/sandbox.c | 72 ++++++++++----------------------------------------------
1844 2 files changed, 13 insertions(+), 60 deletions(-)
1845
1846commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6
1847Author: Lasse Collin <lasse.collin@tukaani.org>
1848Date:   2025-01-02 15:32:10 +0200
1849
1850    xzdec: Use my_landlock.h
1851
1852 CMakeLists.txt    |  1 +
1853 src/xzdec/xzdec.c | 34 ++++++----------------------------
1854 2 files changed, 7 insertions(+), 28 deletions(-)
1855
1856commit 38cb8ec9fd70d25fca6b473de44cf61586238552
1857Author: Lasse Collin <lasse.collin@tukaani.org>
1858Date:   2025-01-02 15:32:10 +0200
1859
1860    Add my_landlock.h with helper functions to use Linux Landlock
1861
1862    This supports up to Landlock ABI version 6. The current code in
1863    xz and xzdec only support up to ABI version 4.
1864
1865 src/Makefile.am          |   1 +
1866 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++
1867 2 files changed, 142 insertions(+)
1868
1869commit 672da29bb3a209a727ae46c0df948d7eea69f2e2
1870Author: Lasse Collin <lasse.collin@tukaani.org>
1871Date:   2025-01-01 18:46:50 +0200
1872
1873    liblzma: Silence warnings from "clang -Wimplicit-fallthrough"
1874
1875 src/liblzma/lzma/lzma_decoder.c | 2 +-
1876 1 file changed, 1 insertion(+), 1 deletion(-)
1877
1878commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd
1879Author: Lasse Collin <lasse.collin@tukaani.org>
1880Date:   2025-01-01 15:34:51 +0200
1881
1882    Build: Use -Wimplicit-fallthrough=5 when supported
1883
1884    Now that we have the FALLTHROUGH macro, use the strictest mode with
1885    GCC so that comment-based fallthrough markings are no longer accepted.
1886
1887    In GCC, -Wextra includes -Wimplicit-fallthrough=3 and
1888    -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3.
1889    Thus, the strict mode requires specifying -Wimplicit-fallthrough=5.
1890
1891    Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra.
1892    Clang doesn't have a variant that takes an argument. Thus we need
1893    to check for -Wimplicit-fallthrough. Do it before checking for
1894    -Wimplicit-fallthrough=5 so that the latter overrides the former
1895    when using GCC.
1896
1897 CMakeLists.txt | 2 ++
1898 configure.ac   | 2 ++
1899 2 files changed, 4 insertions(+)
1900
1901commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22
1902Author: Lasse Collin <lasse.collin@tukaani.org>
1903Date:   2025-01-01 15:30:50 +0200
1904
1905    Replace "Fall through" comments with FALLTHROUGH
1906
1907 src/liblzma/common/alone_decoder.c     |  3 +--
1908 src/liblzma/common/auto_decoder.c      |  5 ++---
1909 src/liblzma/common/block_decoder.c     |  6 ++----
1910 src/liblzma/common/block_encoder.c     |  6 ++----
1911 src/liblzma/common/common.c            |  2 +-
1912 src/liblzma/common/file_info.c         | 22 +++++++++-------------
1913 src/liblzma/common/index_decoder.c     |  9 +++------
1914 src/liblzma/common/index_encoder.c     |  6 ++----
1915 src/liblzma/common/index_hash.c        |  7 +++----
1916 src/liblzma/common/lzip_decoder.c      | 14 +++++---------
1917 src/liblzma/common/stream_decoder.c    | 16 ++++++----------
1918 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++----------------
1919 src/liblzma/common/stream_encoder_mt.c | 10 ++++------
1920 src/liblzma/lzma/lzma2_encoder.c       |  9 +++------
1921 src/xz/args.c                          |  2 +-
1922 src/xz/list.c                          |  3 +--
1923 16 files changed, 54 insertions(+), 91 deletions(-)
1924
1925commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22
1926Author: Lasse Collin <lasse.collin@tukaani.org>
1927Date:   2025-01-01 15:08:51 +0200
1928
1929    sysdefs.h: Add FALLTHROUGH macro
1930
1931 src/common/sysdefs.h | 9 +++++++++
1932 1 file changed, 9 insertions(+)
1933
1934commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc
1935Author: Lasse Collin <lasse.collin@tukaani.org>
1936Date:   2025-01-01 15:06:15 +0200
1937
1938    xzdec: Fix language in a comment
1939
1940 src/xzdec/xzdec.c | 2 +-
1941 1 file changed, 1 insertion(+), 1 deletion(-)
1942
1943commit 16821252c504071f5c2012e415e59cbf5fb79820
1944Author: Lasse Collin <lasse.collin@tukaani.org>
1945Date:   2025-01-02 13:35:48 +0200
1946
1947    Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1
1948
1949    Also remove the recently-added workaround from tuklib_gettext.h.
1950    Requiring a new enough gettext-runtime is cleaner. I guess it's
1951    mostly MSYS2 where xz is built with translation support, so once
1952    MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem
1953    in practice.
1954
1955 CMakeLists.txt              | 29 ++++++++++++++++++++++++++
1956 configure.ac                | 29 ++++++++++++++++++++++++++
1957 src/common/tuklib_gettext.h | 51 ---------------------------------------------
1958 3 files changed, 58 insertions(+), 51 deletions(-)
1959
1960commit aa1807ed942579f700a08ab091b796cf04e31aec
1961Author: Lasse Collin <lasse.collin@tukaani.org>
1962Date:   2025-01-02 11:52:17 +0200
1963
1964    windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS
1965
1966    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
1967
1968 windows/build-with-cmake.bat | 2 +-
1969 1 file changed, 1 insertion(+), 1 deletion(-)
1970
1971commit ea21c76aa2406ba06ac154fe57741734c04f260f
1972Author: Lasse Collin <lasse.collin@tukaani.org>
1973Date:   2024-12-30 11:21:57 +0200
1974
1975    Build: Use git log --pretty=medium when creating ChangeLog
1976
1977    It's the default in git-log. Specifying it explicitly is good in case
1978    a user has set format.pretty to a different value.
1979
1980 Makefile.am | 4 ++--
1981 1 file changed, 2 insertions(+), 2 deletions(-)
1982
1983commit 08050c0788ce5bac0ffd572e9784a2749c4a13df
1984Author: Lasse Collin <lasse.collin@tukaani.org>
1985Date:   2024-12-30 10:51:33 +0200
1986
1987    Windows: Update MinGW-w64 + CMake instructions to recommend UCRT
1988
1989 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++-------------
1990 1 file changed, 23 insertions(+), 15 deletions(-)
1991
1992commit 653732bd6f06d8f465bf353bf6e1c16f1405b906
1993Author: Lasse Collin <lasse.collin@tukaani.org>
1994Date:   2024-12-30 10:51:26 +0200
1995
1996    xz man page: Describe the source file deletion in -z and -d options
1997
1998    The DESCRIPTION section always explained it, and the OPTIONS section
1999    only described the differences to the default behavior. However, new
2000    users in a hurry may skip reading DESCRIPTION. The default behavior
2001    is a bit dangerous, thus it's good to repeat in --compress and
2002    --decompress docs that source file is removed after successful operation.
2003
2004    Fixes: https://github.com/tukaani-project/xz/issues/150
2005
2006 src/xz/xz.1 | 17 ++++++++++++++++-
2007 1 file changed, 16 insertions(+), 1 deletion(-)
2008
2009commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf
2010Author: Lasse Collin <lasse.collin@tukaani.org>
2011Date:   2024-12-27 21:52:28 +0200
2012
2013    Build: Set libtool -version-info so that it matches with CMake
2014
2015    In the past, they haven't been in sync in development versions
2016    although they (of course) have been in stable releases.
2017
2018 src/liblzma/Makefile.am | 2 +-
2019 1 file changed, 1 insertion(+), 1 deletion(-)
2020
2021commit cf54f70e14c218faf5019ffa2fa769ed73772ee8
2022Author: Lasse Collin <lasse.collin@tukaani.org>
2023Date:   2024-12-28 18:28:56 +0200
2024
2025    CMake/macOS: Use GNU Libtool compatible shared library versioning
2026
2027    Because this increases the Mach-O compatibility_version, this commit
2028    shouldn't cause any ABI compatibility trouble for existing CMake users
2029    on macOS. This is assuming that they won't later downgrade to an older
2030    liblzma version that was built with CMake before this commit.
2031
2032    Meson allows customising the Mach-O versioning too. So the three
2033    build systems can be configured to be compatible.
2034
2035 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
2036 1 file changed, 48 insertions(+), 3 deletions(-)
2037
2038commit 94e17916689d38bc09bf35e602ed6f6276034b59
2039Author: Lasse Collin <lasse.collin@tukaani.org>
2040Date:   2024-12-28 14:49:45 +0200
2041
2042    CMake: Edit a comment
2043
2044 CMakeLists.txt | 2 +-
2045 1 file changed, 1 insertion(+), 1 deletion(-)
2046
2047commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b
2048Author: Lasse Collin <lasse.collin@tukaani.org>
2049Date:   2024-12-28 20:39:49 +0200
2050
2051    version.sh: Omit an unwanted dot from development versions
2052
2053    It printed 5.7.0.alpha instead of 5.7.0alpha.
2054
2055    Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae
2056
2057 build-aux/version.sh | 2 +-
2058 1 file changed, 1 insertion(+), 1 deletion(-)
2059
2060commit f7a248f56e94310a080051c4a709c08514fa48b1
2061Author: Lasse Collin <lasse.collin@tukaani.org>
2062Date:   2024-12-27 16:25:07 +0200
2063
2064    CMake: Remove a duplicate word from a comment
2065
2066 CMakeLists.txt | 4 ++--
2067 1 file changed, 2 insertions(+), 2 deletions(-)
2068
2069commit 8b7c55d148f4a9b3702207164e862437ddffad33
2070Author: Lasse Collin <lasse.collin@tukaani.org>
2071Date:   2024-12-27 16:23:12 +0200
2072
2073    INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION
2074
2075 INSTALL | 19 +++++++++++++++++++
2076 1 file changed, 19 insertions(+)
2077
2078commit 260d5d36203955a7148ae1ab05d0931c942028d5
2079Author: Lasse Collin <lasse.collin@tukaani.org>
2080Date:   2024-12-26 21:27:18 +0200
2081
2082    xz: Fix comments
2083
2084 src/xz/file_io.c | 4 ++--
2085 src/xz/file_io.h | 4 ++--
2086 2 files changed, 4 insertions(+), 4 deletions(-)
2087
2088commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11
2089Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
2090Date:   2024-12-22 13:44:03 +0100
2091
2092    CMake: Disable unity builds project-wide
2093
2094    liblzma and xz can't be compiled as a unity/jumbo build because of
2095    redeclarations and type name reuse. The CMake documentation recommends
2096    setting UNITY_BUILD to false in this case.
2097
2098    This is especially important if we're compiled as a subproject and the
2099    consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code
2100    base.
2101
2102    Closes: https://github.com/tukaani-project/xz/pull/158
2103
2104 CMakeLists.txt | 6 ++++++
2105 1 file changed, 6 insertions(+)
2106
2107commit f8c328eed1bf0a0168132025a52116b7735f894c
2108Author: Lasse Collin <lasse.collin@tukaani.org>
2109Date:   2024-12-20 08:51:18 +0200
2110
2111    Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale()
2112
2113    See the comment. In this package, locale is set at program startup and
2114    not changed later, so the point (2) in the comment isn't a problem.
2115
2116    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
2117
2118 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++
2119 1 file changed, 51 insertions(+)
2120
2121commit 03533906093529701ba91081907d8977991997de
2122Author: Lasse Collin <lasse.collin@tukaani.org>
2123Date:   2024-12-20 06:50:36 +0200
2124
2125    Revert "Windows: Use UTF-8 locale when active code page is UTF-8"
2126
2127    This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a.
2128
2129 src/common/tuklib_gettext.h | 32 ++------------------------------
2130 1 file changed, 2 insertions(+), 30 deletions(-)
2131
2132commit 4b319e05afef4eab2fbafb6223f25d128ec99fce
2133Author: Lasse Collin <lasse.collin@tukaani.org>
2134Date:   2024-12-19 18:31:09 +0200
2135
2136    xzdec: Use setlocale() instead of tuklib_gettext_setlocale()
2137
2138    xzdec isn't translated and doesn't need libintl on Windows even
2139    when NLS is enabled, thus libintl_setlocale() cannot interfere
2140    with the locale settings. Thus, standard setlocale() works perfectly.
2141
2142    In the commit 78868b6e, the explanation in the commit message is wrong.
2143
2144    Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
2145
2146 src/xzdec/xzdec.c | 9 +++------
2147 1 file changed, 3 insertions(+), 6 deletions(-)
2148
2149commit 34b80e282ea76ec793eaedaef58a36c3913dec78
2150Author: Lasse Collin <lasse.collin@tukaani.org>
2151Date:   2024-12-19 19:36:15 +0200
2152
2153    Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation
2154
2155    Only leave the FindFileFirstA() notes from 20dfca81, reverting
2156    the incorrect setlocale() notes. On Windows, Gettext's <libintl.h>
2157    overrides setlocale() with libintl_setlocale() wrapper. I hadn't
2158    noticed this, and thus my conclusions were wrong.
2159
2160    Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b
2161
2162 src/common/w32_application.manifest.comments.txt | 21 +--------------------
2163 1 file changed, 1 insertion(+), 20 deletions(-)
2164
2165commit 5794cda064ce980450eaa5a4e2c71bd317168ce4
2166Author: Lasse Collin <lasse.collin@tukaani.org>
2167Date:   2024-12-18 17:49:05 +0200
2168
2169    tuklib_mbstr_wrap: Silence a warning from Clang
2170
2171    Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634
2172
2173 src/common/tuklib_mbstr_wrap.c | 9 +++++++++
2174 1 file changed, 9 insertions(+)
2175
2176commit 16c9796ef970ae349c54fef9a346e394d7cc4c75
2177Author: Lasse Collin <lasse.collin@tukaani.org>
2178Date:   2024-12-18 14:00:09 +0200
2179
2180    Update THANKS
2181
2182 THANKS | 2 ++
2183 1 file changed, 2 insertions(+)
2184
2185commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053
2186Author: Lasse Collin <lasse.collin@tukaani.org>
2187Date:   2024-12-18 14:00:09 +0200
2188
2189    Update TODO
2190
2191    Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947
2192
2193 TODO | 3 ---
2194 1 file changed, 3 deletions(-)
2195
2196commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e
2197Author: Lasse Collin <lasse.collin@tukaani.org>
2198Date:   2024-12-18 14:00:09 +0200
2199
2200    lzmainfo: Use tuklib_mbstr_nonprint
2201
2202 CMakeLists.txt           |  3 +++
2203 src/lzmainfo/Makefile.am |  1 +
2204 src/lzmainfo/lzmainfo.c  | 16 ++++++++++------
2205 3 files changed, 14 insertions(+), 6 deletions(-)
2206
2207commit 03111595ee713e0f94fb4f4a19a15594d5149347
2208Author: Lasse Collin <lasse.collin@tukaani.org>
2209Date:   2024-12-18 14:00:09 +0200
2210
2211    xzdec: Use tuklib_mbstr_nonprint
2212
2213 CMakeLists.txt        |  3 +++
2214 src/xzdec/Makefile.am |  2 ++
2215 src/xzdec/xzdec.c     | 15 +++++++++++----
2216 3 files changed, 16 insertions(+), 4 deletions(-)
2217
2218commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122
2219Author: Lasse Collin <lasse.collin@tukaani.org>
2220Date:   2024-12-18 14:00:09 +0200
2221
2222    xz: Use tuklib_mbstr_nonprint
2223
2224    Call tuklib_mask_nonprint() on filenames and also on a few other
2225    strings from the command line too.
2226
2227    The filename printed by "xz --robot --list" (in list.c) is also masked.
2228    It's good to get rid of tabs and newlines which would desync the output
2229    but masking other chars wouldn't be strictly necessary. It might matter
2230    with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject
2231    non-ASCII chars) and a script wants to read a filename from xz's output.
2232    Hopefully it's an unusual enough corner case to not be a real problem.
2233
2234 CMakeLists.txt     |  2 ++
2235 src/xz/Makefile.am |  1 +
2236 src/xz/coder.c     | 19 ++++++++-----
2237 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++--------------------
2238 src/xz/list.c      | 32 +++++++++++++--------
2239 src/xz/main.c      | 10 +++++--
2240 src/xz/message.c   |  8 ++++--
2241 src/xz/options.c   | 10 ++++---
2242 src/xz/private.h   |  1 +
2243 src/xz/suffix.c    | 12 ++++----
2244 10 files changed, 113 insertions(+), 63 deletions(-)
2245
2246commit 40e573305535960574404d2eae848b248c95ea7e
2247Author: Lasse Collin <lasse.collin@tukaani.org>
2248Date:   2024-12-18 14:00:09 +0200
2249
2250    Add tuklib_mbstr_nonprint to mask non-printable characters
2251
2252    Malicious filenames or other untrusted strings may affect the state of
2253    the terminal when such strings are printed as part of (error) messages.
2254    Add functions that mask such characters.
2255
2256    It's not enough to handle only single-byte control characters.
2257    In multibyte locales, some control characters are multibyte too, for
2258    example, terminals interpret C1 control characters (U+0080 to U+009F)
2259    that are two bytes as UTF-8.
2260
2261    Instead of checking for control characters with iswcntrl(), this
2262    uses iswprint() to detect printable characters. This is much stricter.
2263    On Windows it's actually too strict as it rejects some characters that
2264    definitely are printable.
2265
2266    Gnulib's quotearg would do a lot more but I hope this simpler method
2267    is good enough here.
2268
2269    Thanks to Ryan Colyer for the discussion about the problems of
2270    the earlier single-byte-only method.
2271
2272    Thanks to Christian Weisgerber for reporting a bug in an earlier
2273    version of this code.
2274
2275    Thanks to Jeroen Roovers for a typo fix.
2276
2277    Closes: https://github.com/tukaani-project/xz/pull/118
2278
2279 src/Makefile.am                    |   2 +
2280 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++
2281 src/common/tuklib_mbstr_nonprint.h |  69 +++++++++++++++++
2282 3 files changed, 222 insertions(+)
2283
2284commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402
2285Author: Lasse Collin <lasse.collin@tukaani.org>
2286Date:   2024-12-18 11:33:09 +0200
2287
2288    Translations: Add preliminary Georgian translation
2289
2290    Most of the auto-wrapped strings are translated already. A few
2291    strings have changed since this was created though. This file
2292    isn't in the Translation Project *yet* because these strings
2293    are still very new.
2294
2295    Closes: https://github.com/tukaani-project/xz/pull/145
2296
2297 po/LINGUAS |    1 +
2298 po/ka.po   | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2299 2 files changed, 1187 insertions(+)
2300
2301commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e
2302Author: Lasse Collin <lasse.collin@tukaani.org>
2303Date:   2024-10-30 20:50:20 +0200
2304
2305    xz: Make one string simpler for translators
2306
2307    Leading spaces in the string can get miscounted by translators.
2308
2309 src/xz/list.c | 4 ++--
2310 1 file changed, 2 insertions(+), 2 deletions(-)
2311
2312commit 3fcf547e926f6c0414b23459f7b43164f7e8c378
2313Author: Lasse Collin <lasse.collin@tukaani.org>
2314Date:   2024-12-17 10:26:10 +0200
2315
2316    lzmainfo: Sync the translatable strings with xz
2317
2318 src/lzmainfo/lzmainfo.c | 20 ++++++++++++--------
2319 1 file changed, 12 insertions(+), 8 deletions(-)
2320
2321commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229
2322Author: Lasse Collin <lasse.collin@tukaani.org>
2323Date:   2024-12-17 10:26:10 +0200
2324
2325    xz: Use automatic word wrapping for help texts
2326
2327    --long-help is now one line longer because --lzma1 is now on its
2328    own line.
2329
2330 CMakeLists.txt     |   2 +
2331 src/xz/Makefile.am |   3 +-
2332 src/xz/message.c   | 482 ++++++++++++++++++++++++++++++++++-------------------
2333 3 files changed, 313 insertions(+), 174 deletions(-)
2334
2335commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d
2336Author: Lasse Collin <lasse.collin@tukaani.org>
2337Date:   2024-12-16 18:46:45 +0200
2338
2339    po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS
2340
2341    The text was copied from tuklib_gettext.h.
2342
2343    Also rearrange the --keyword options to be last on the line.
2344
2345 po/Makevars | 2 +-
2346 1 file changed, 1 insertion(+), 1 deletion(-)
2347
2348commit ca529c3f41a4a19a59e2e252e6dd9255f130c634
2349Author: Lasse Collin <lasse.collin@tukaani.org>
2350Date:   2024-12-16 18:43:52 +0200
2351
2352    Add tuklib_mbstr_wrap for automatic word wrapping
2353
2354    Automatic word wrapping makes translators' work easier and reduces
2355    errors like misaligned columns or overlong lines. Right-to-left
2356    languages and languages that don't use spaces between words will
2357    still need extra effort. (xz hasn't been translated to any RTL
2358    language so far.)
2359
2360 cmake/tuklib_mbstr.cmake       |   4 +
2361 m4/tuklib_mbstr.m4             |   2 +-
2362 src/Makefile.am                |   2 +
2363 src/common/tuklib_gettext.h    |  11 ++
2364 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++
2365 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++
2366 6 files changed, 506 insertions(+), 1 deletion(-)
2367
2368commit 314b83cebad0244a0015a8abc6d8d086b581c215
2369Author: Lasse Collin <lasse.collin@tukaani.org>
2370Date:   2024-12-17 17:57:18 +0200
2371
2372    Build: Sort filenames to ASCII order in Makefile.am
2373
2374 src/Makefile.am | 2 +-
2375 1 file changed, 1 insertion(+), 1 deletion(-)
2376
2377commit df399c52554dfdf60259ca2cce97adbcfff39dc0
2378Author: Lasse Collin <lasse.collin@tukaani.org>
2379Date:   2024-10-21 18:51:24 +0300
2380
2381    tuklib_mbstr_width: Add tuklib_mbstr_width_mem()
2382
2383    It's a new function split from tuklib_mbstr_width().
2384    It's useful with partial strings that aren't terminated with \0.
2385
2386 src/common/tuklib_mbstr.h       | 17 +++++++++++++++++
2387 src/common/tuklib_mbstr_width.c |  8 ++++++++
2388 2 files changed, 25 insertions(+)
2389
2390commit 51081efae4c52c226e96da95313916eba99f885f
2391Author: Lasse Collin <lasse.collin@tukaani.org>
2392Date:   2024-12-16 20:08:27 +0200
2393
2394    tuklib_mbstr_width: Update a comment about shift states
2395
2396 src/common/tuklib_mbstr_width.c | 11 ++++++++---
2397 1 file changed, 8 insertions(+), 3 deletions(-)
2398
2399commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b
2400Author: Lasse Collin <lasse.collin@tukaani.org>
2401Date:   2024-10-21 18:47:56 +0300
2402
2403    tuklib_mbstr_width: Don't mention shift states in the API docs
2404
2405    It is assumed that this code won't be used with charsets that use
2406    locking shift states.
2407
2408 src/common/tuklib_mbstr.h | 8 ++------
2409 1 file changed, 2 insertions(+), 6 deletions(-)
2410
2411commit 3c16105936320e4095dbe84fa9a33a4a6d46a597
2412Author: Lasse Collin <lasse.collin@tukaani.org>
2413Date:   2024-10-21 18:41:41 +0300
2414
2415    tuklib_mbstr_width: Use stricter return value checking
2416
2417    This should make no difference in practice (at least if mbrtowc()
2418    isn't broken).
2419
2420 src/common/tuklib_mbstr_width.c | 2 +-
2421 1 file changed, 1 insertion(+), 1 deletion(-)
2422
2423commit b797c44c42ea54fe1c52722a2fca0c9618575598
2424Author: Lasse Collin <lasse.collin@tukaani.org>
2425Date:   2024-12-16 20:06:07 +0200
2426
2427    tuklib_mbstr_width: Change the behavior when wcwidth() is not available
2428
2429    If wcwidth() isn't available (Windows), previously it was assumed
2430    that one byte == one column in the terminal. Now it is assumed that
2431    one multibyte character == one column. This works better with UTF-8.
2432    Languages that only use single-width characters without any combining
2433    characters should work correctly with this.
2434
2435    In xz, none of po/*.po contain combining characters and only ko.po,
2436    zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only"
2437    those three translations in xz are broken on Windows with the
2438    UTF-8 code page. Broken means that column headings in xz -lvv and
2439    (only in the master branch) strings in --long-help are misaligned,
2440    so it's not a huge problem. I don't know if those three languages
2441    displayed perfectly before the UTF-8 change because I hadn't tested
2442    translations with native Windows builds before.
2443
2444    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
2445
2446 src/common/tuklib_mbstr_width.c | 13 +++++++++++--
2447 1 file changed, 11 insertions(+), 2 deletions(-)
2448
2449commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
2450Author: Lasse Collin <lasse.collin@tukaani.org>
2451Date:   2024-12-18 14:23:13 +0200
2452
2453    xzdec: Use setlocale() via tuklib_gettext_setlocale()
2454
2455    xzdec isn't translated and didn't have locale-specific behavior
2456    in the past. On Windows with UTF-8 in the application manifest,
2457    setting the locale makes a difference though:
2458
2459      - Without any setlocale() call, non-ASCII filenames don't display
2460        properly in Command Prompt unless one first uses "chcp 65001"
2461        to set the console code page to UTF-8.
2462
2463      - setlocale(LC_ALL, "") is enough to make non-ASCII filenames
2464        print correctly in Command Prompt without using "chcp 65001",
2465        assuming that the non-UTF-8 code page (like 850) supports
2466        those non-ASCII characters.
2467
2468      - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and
2469        such functions use an UTF-8 locale instead of a legacy code page.
2470        The tuklib_gettext_setlocale() macro takes care of this (without
2471        enabling any translations).
2472
2473    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
2474
2475 src/xzdec/xzdec.c | 12 ++++++++++++
2476 1 file changed, 12 insertions(+)
2477
2478commit 0d0b574cc45045d6150d397776340c068df59e2a
2479Author: Lasse Collin <lasse.collin@tukaani.org>
2480Date:   2024-12-17 14:59:37 +0200
2481
2482    Windows: Use UTF-8 locale when active code page is UTF-8
2483
2484    XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611.
2485    This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus
2486    non-ASCII characters from translations became mojibake.
2487
2488    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
2489
2490 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++--
2491 1 file changed, 30 insertions(+), 2 deletions(-)
2492
2493commit 20dfca8171dad4c64785ac61d5b68972c444877b
2494Author: Lasse Collin <lasse.collin@tukaani.org>
2495Date:   2024-12-17 15:01:29 +0200
2496
2497    Windows: Document the need for setlocale(LC_ALL, ".UTF8")
2498
2499    Also warn about unpaired surrogates and (somewhat UTF-8-specific)
2500    MAX_PATH issue in FindFirstFileA().
2501
2502    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
2503
2504 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++-
2505 1 file changed, 27 insertions(+), 1 deletion(-)
2506
2507commit 4e936f234056e5831013ed922145b666b04bb1e3
2508Author: Lasse Collin <lasse.collin@tukaani.org>
2509Date:   2024-12-18 14:12:22 +0200
2510
2511    xzdec: Call tuklib_progname_init() early enough
2512
2513    If the early pledge() call on OpenBSD fails, it calls my_errorf()
2514    which requires the "progname" variable.
2515
2516    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
2517
2518 src/xzdec/xzdec.c | 6 +++---
2519 1 file changed, 3 insertions(+), 3 deletions(-)
2520
2521commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8
2522Author: Lasse Collin <lasse.collin@tukaani.org>
2523Date:   2024-12-15 19:08:32 +0200
2524
2525    CMake: Bump maximum policy version to 3.31
2526
2527    With CMake 3.31, there were a few warnings from
2528    CMP0177 "install() DESTINATION paths are normalized".
2529    These occurred because the install(FILES) command in
2530    my_install_man_lang() is called with a DESTINATION path
2531    that contains two consecutive slashes, for example,
2532    "share/man//man1". Such a path is for the English man pages.
2533    With translated man pages, the language code goes between
2534    the slashes. The warning was probably triggered because the
2535    extra slash gets removed by the normalization.
2536
2537 CMakeLists.txt | 2 +-
2538 1 file changed, 1 insertion(+), 1 deletion(-)
2539
2540commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18
2541Author: Lasse Collin <lasse.collin@tukaani.org>
2542Date:   2024-12-15 18:35:27 +0200
2543
2544    Update THANKS
2545
2546 THANKS | 1 +
2547 1 file changed, 1 insertion(+)
2548
2549commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27
2550Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
2551Date:   2024-12-08 18:24:29 +0100
2552
2553    liblzma: Fix incorrect macro name in a comment
2554
2555    Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559
2556    Closes: https://github.com/tukaani-project/xz/pull/155
2557
2558 src/liblzma/api/lzma/lzma12.h | 2 +-
2559 1 file changed, 1 insertion(+), 1 deletion(-)
2560
2561commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a
2562Author: Lasse Collin <lasse.collin@tukaani.org>
2563Date:   2024-12-17 10:36:43 +0200
2564
2565    license-check.sh: Add an exception for doc/SHA256SUMS
2566
2567    Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
2568
2569 build-aux/license-check.sh | 1 +
2570 1 file changed, 1 insertion(+)
2571
2572commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
2573Author: Lasse Collin <lasse.collin@tukaani.org>
2574Date:   2024-12-01 21:38:17 +0200
2575
2576    doc/SHA256SUMS: Add the list of SHA-256 hashes of release files
2577
2578    The release files are signed but verifying the signatures cannot
2579    catch certain types of attacks:
2580
2581    1. A malicious maintainer could make more than one variant of
2582       a package. One could be for general distribution. Another
2583       with malicious content could be targeted to specific users,
2584       for example, distributing the malicious version on a mirror
2585       controlled by the attacker.
2586
2587    2. If the signing key of an honest maintainer was compromised
2588       without being detected, a similar situation as described
2589       above could occur.
2590
2591    SHA256SUMS could be put on the project website but having it in
2592    the Git repository makes it obvious that old lines aren't modified
2593    when the file is updated.
2594
2595    Hashes of uncompressed files are included too. This way tarballs
2596    can be recompressed and the hashes can still be verified.
2597
2598 .gitattributes |   1 +
2599 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2600 2 files changed, 219 insertions(+)
2601
2602commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42
2603Author: Lasse Collin <lasse.collin@tukaani.org>
2604Date:   2024-11-30 12:05:59 +0200
2605
2606    Docs: Remove .github/SECURITY.md
2607
2608    One of the reasons to have this file in the xz repository was to
2609    show vulnerability reporting info in the Security section on GitHub.
2610    On 2024-11-25, I added SECURITY.md to the tukaani-project organization
2611    on GitHub:
2612
2613        https://github.com/tukaani-project/.github/blob/main/SECURITY.md
2614
2615    GitHub shows that file in all projects in the organization unless
2616    overridden by a project-specific SECURITY.md. Thus, removing
2617    the file from the xz repo makes GitHub show the organization-wide
2618    text instead.
2619
2620    Maintaining a single copy for the whole GitHub organization makes
2621    things simpler. It's also nicer to have fewer GitHub-specific files
2622    in the xz repo. Information how to report bugs (including security
2623    issues) is available in README and on the home page too.
2624
2625    The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the
2626    xz repository. There was a suggestion to move the file to the top-level
2627    directory where Scorecard should find it. However, Scorecard does find
2628    the organization-wide SECURITY.md. Thus, the file isn't needed in the
2629    xz repository to score points in the Scorecard game:
2630
2631        https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz
2632
2633    Closes: https://github.com/tukaani-project/xz/issues/148
2634    Closes: https://github.com/tukaani-project/xz/pull/149
2635
2636 .github/SECURITY.md | 14 --------------
2637 1 file changed, 14 deletions(-)
2638
2639commit b36177273602ebc83e9cc58517f63a7b6af33f70
2640Author: Lasse Collin <lasse.collin@tukaani.org>
2641Date:   2024-11-30 10:27:14 +0200
2642
2643    Translations: Update the Chinese (traditional) translation
2644
2645 po/zh_TW.po | 201 +++++++++++++++++++++++++-----------------------------------
2646 1 file changed, 84 insertions(+), 117 deletions(-)
2647
2648commit c15115f7ede492f20c91b08ba485f9426f60233f
2649Author: Lasse Collin <lasse.collin@tukaani.org>
2650Date:   2024-10-30 19:54:34 +0200
2651
2652    liblzma: Optimize the loop conditions in BCJ filters
2653
2654    Compilers cannot optimize the addition "i + 4" away since theoretically
2655    it could overflow.
2656
2657 src/liblzma/simple/arm.c      | 4 +++-
2658 src/liblzma/simple/arm64.c    | 4 +++-
2659 src/liblzma/simple/armthumb.c | 7 ++++++-
2660 src/liblzma/simple/ia64.c     | 4 +++-
2661 src/liblzma/simple/powerpc.c  | 4 +++-
2662 src/liblzma/simple/sparc.c    | 5 +++--
2663 6 files changed, 21 insertions(+), 7 deletions(-)
2664
2665commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5
2666Author: Lasse Collin <lasse.collin@tukaani.org>
2667Date:   2024-11-25 16:26:54 +0200
2668
2669    Update THANKS
2670
2671 THANKS | 1 +
2672 1 file changed, 1 insertion(+)
2673
2674commit 48ff3f06521ca326996ab9a04d1b342098960427
2675Author: Mark Wielaard <mark@klomp.org>
2676Date:   2024-11-25 12:28:44 +0200
2677
2678    xz: Landlock: Fix a file descriptor leak
2679
2680 src/xz/sandbox.c | 1 +
2681 1 file changed, 1 insertion(+)
2682
2683commit dbca3d078ec581600600abebbb18769d3d713914
2684Author: Sam James <sam@gentoo.org>
2685Date:   2024-10-02 03:04:03 +0100
2686
2687    CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions
2688
2689    Checked the changes and they're all innocuous. This should hopefully
2690    fix the "externally managed" pip error in these jobs that started
2691    recently.
2692
2693 .github/workflows/freebsd.yml | 2 +-
2694 .github/workflows/netbsd.yml  | 2 +-
2695 .github/workflows/openbsd.yml | 2 +-
2696 .github/workflows/solaris.yml | 2 +-
2697 4 files changed, 4 insertions(+), 4 deletions(-)
2698
2699commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f
2700Author: Lasse Collin <lasse.collin@tukaani.org>
2701Date:   2024-10-01 12:17:39 +0300
2702
2703    Add NEWS for 5.6.3
2704
2705 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2706 1 file changed, 125 insertions(+)
2707
2708commit be4bf94446b6286a5dffdde85fc1d21448f4edff
2709Author: Lasse Collin <lasse.collin@tukaani.org>
2710Date:   2024-10-01 14:49:41 +0300
2711
2712    cmake/tuklib_large_file_support.cmake: Add a missing include
2713
2714    v5.2 didn't build with CMake. Other branches had
2715    include(CMakePushCheckState) in top-level CMakeLists.txt
2716    which made the build work.
2717
2718    Fixes: 597f49b61475438a43a417236989b2acc968a686
2719
2720 cmake/tuklib_large_file_support.cmake | 1 +
2721 1 file changed, 1 insertion(+)
2722
2723commit 1ebbe915d4e0d877154261b5f8103719a6722975
2724Author: Lasse Collin <lasse.collin@tukaani.org>
2725Date:   2024-10-01 12:10:23 +0300
2726
2727    Update THANKS
2728
2729 THANKS | 2 ++
2730 1 file changed, 2 insertions(+)
2731
2732commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0
2733Author: Lasse Collin <lasse.collin@tukaani.org>
2734Date:   2024-10-01 12:10:23 +0300
2735
2736    Tests/Windows: Add the application manifest to the test programs
2737
2738    This ensures that the test programs get executed the same way as
2739    the binaries that are installed.
2740
2741 CMakeLists.txt        | 14 ++++++++++----
2742 tests/Makefile.am     | 10 ++++++++++
2743 tests/tests.cmake     | 33 ++++++++++++++++++++++++++++++++-
2744 tests/tests_w32res.rc | 18 ++++++++++++++++++
2745 4 files changed, 70 insertions(+), 5 deletions(-)
2746
2747commit 7ddf2273e0e4654582ee65db19d44431bfdb5791
2748Author: Lasse Collin <lasse.collin@tukaani.org>
2749Date:   2024-10-01 12:10:23 +0300
2750
2751    license-check.sh: Add an exception for w32_application.manifest
2752
2753    The file gets embedded as is into executables, thus it cannot
2754    hold a license identifier.
2755
2756 build-aux/license-check.sh | 1 +
2757 1 file changed, 1 insertion(+)
2758
2759commit 46ee0061629fb075d61d83839e14dd193337af59
2760Author: Lasse Collin <lasse.collin@tukaani.org>
2761Date:   2024-10-01 12:10:23 +0300
2762
2763    Windows: Embed an application manifest in the EXE files
2764
2765    IMPORTANT: This includes a security fix to command line tool
2766               argument handling.
2767
2768    Some toolchains embed an application manifest by default to declare
2769    UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11
2770    to let the app access features newer than those of Vista.
2771
2772    We want all the above but also two more things:
2773
2774      - Declare that the app is long path aware to support paths longer
2775        than 259 characters (this may also require a registry change).
2776
2777      - Force the code page to UTF-8. This allows the command line tools
2778        to access files whose names contain characters that don't exist
2779        in the current legacy code page (except unpaired surrogates).
2780        The UTF-8 code page also fixes security issues in command line
2781        argument handling which can be exploited with malicious filenames.
2782        See the new file w32_application.manifest.comments.txt.
2783
2784    Thanks to Orange Tsai and splitline from DEVCORE Research Team
2785    for discovering this issue.
2786
2787    Thanks to Vijay Sarvepalli for reporting the issue to me.
2788
2789    Thanks to Kelvin Lee for testing with MSVC and helping with
2790    the required build system fixes.
2791
2792 CMakeLists.txt                                   |  18 +++
2793 src/Makefile.am                                  |   4 +-
2794 src/common/common_w32res.rc                      |   5 +
2795 src/common/w32_application.manifest              |  28 ++++
2796 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++
2797 5 files changed, 232 insertions(+), 1 deletion(-)
2798
2799commit dad153091552b52a41b95ec4981c6951f1cae487
2800Author: Lasse Collin <lasse.collin@tukaani.org>
2801Date:   2024-09-29 14:46:52 +0300
2802
2803    Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2
2804
2805    Now the information in the "Details" tab in the file properties
2806    dialog matches the naming convention of Cygwin and MSYS2. This
2807    is only a cosmetic change.
2808
2809 src/liblzma/liblzma_w32res.rc | 10 +++++++++-
2810 1 file changed, 9 insertions(+), 1 deletion(-)
2811
2812commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904
2813Author: Lasse Collin <lasse.collin@tukaani.org>
2814Date:   2024-09-25 15:47:55 +0300
2815
2816    common_w32res.rc: White space edits
2817
2818    LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line
2819    between them.
2820
2821 src/common/common_w32res.rc | 15 ++++++++-------
2822 1 file changed, 8 insertions(+), 7 deletions(-)
2823
2824commit c3b9dad07d3fd9319f88386b7095019bcea45ce1
2825Author: Lasse Collin <lasse.collin@tukaani.org>
2826Date:   2024-09-28 20:09:50 +0300
2827
2828    CMake: Add the resource files to the Cygwin and MSYS2 builds
2829
2830    Autotools-based build has always done this so this is for consistency.
2831
2832    However, the CMake build won't create the DEF file when building
2833    for Cygwin or MSYS2 because in that context it should be useless.
2834    (If Cygwin or MSYS2 is used to host building of normal Windows
2835    binaries then the DEF file is still created.)
2836
2837 CMakeLists.txt | 16 ++++++++++------
2838 1 file changed, 10 insertions(+), 6 deletions(-)
2839
2840commit da4f275bd1c18b897e5c2dd0043546de3accce0a
2841Author: Lasse Collin <lasse.collin@tukaani.org>
2842Date:   2024-09-28 15:19:14 +0300
2843
2844    CMake: Fix Windows resource file dependencies
2845
2846    If common_w32res.rc is modified, the resource files need to be rebuilt.
2847    In contrast, the liblzma*.map files truly are link dependencies.
2848
2849 CMakeLists.txt | 17 +++++++++--------
2850 1 file changed, 9 insertions(+), 8 deletions(-)
2851
2852commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47
2853Author: Lasse Collin <lasse.collin@tukaani.org>
2854Date:   2024-09-29 01:20:03 +0300
2855
2856    CMake: Checking for CYGWIN covers MSYS2 too
2857
2858    On MSYS2, both CYGWIN and MSYS are set.
2859
2860 CMakeLists.txt | 2 +-
2861 1 file changed, 1 insertion(+), 1 deletion(-)
2862
2863commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521
2864Author: Lasse Collin <lasse.collin@tukaani.org>
2865Date:   2024-09-28 09:37:30 +0300
2866
2867    Translations: Add the SPDX license identifier to pt_BR.po
2868
2869 po/pt_BR.po | 2 ++
2870 1 file changed, 2 insertions(+)
2871
2872commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb
2873Author: Lasse Collin <lasse.collin@tukaani.org>
2874Date:   2024-09-25 16:41:37 +0300
2875
2876    Windows/CMake: Use the correct resource file for lzmadec.exe
2877
2878    CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec.
2879
2880    Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe
2881
2882 CMakeLists.txt | 2 +-
2883 1 file changed, 1 insertion(+), 1 deletion(-)
2884
2885commit b834ae5f80911a3819d6cdb484f61b257174c544
2886Author: Lasse Collin <lasse.collin@tukaani.org>
2887Date:   2024-09-25 21:29:59 +0300
2888
2889    Translations: Update the Brazilian Portuguese translation
2890
2891 po/pt_BR.po | 144 ++++++++++++++++++++++--------------------------------------
2892 1 file changed, 53 insertions(+), 91 deletions(-)
2893
2894commit eceb023d4c129fd63ee881a2d8696eaf52ad1532
2895Author: Lasse Collin <lasse.collin@tukaani.org>
2896Date:   2024-09-17 01:21:15 +0300
2897
2898    Update THANKS
2899
2900 THANKS | 1 +
2901 1 file changed, 1 insertion(+)
2902
2903commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f
2904Author: Tobias Stoeckmann <tobias@stoeckmann.org>
2905Date:   2024-09-16 23:19:46 +0200
2906
2907    lzmainfo: Avoid integer overflow
2908
2909    The MB output can overflow with huge numbers. Most likely these are
2910    invalid .lzma files anyway, but let's avoid garbage output.
2911
2912    lzmadec was adapted from LZMA Utils. The original code with this bug
2913    was written in 2005, over 19 years ago.
2914
2915    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
2916    Closes: https://github.com/tukaani-project/xz/pull/144
2917
2918 src/lzmainfo/lzmainfo.c | 5 ++---
2919 1 file changed, 2 insertions(+), 3 deletions(-)
2920
2921commit 78355aebb7fb654302e5e33692ba109909dacaff
2922Author: Tobias Stoeckmann <tobias@stoeckmann.org>
2923Date:   2024-09-16 22:04:40 +0200
2924
2925    xzdec: Remove unused short option -M
2926
2927    "xzdec -M123" exited with exit status 1 without printing
2928    any messages. The "M:" entry should have been removed when
2929    the memory usage limiter support was removed from xzdec.
2930
2931    Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae
2932    Closes: https://github.com/tukaani-project/xz/pull/143
2933    [ Lasse: Commit message edits ]
2934
2935 src/xzdec/xzdec.c | 2 +-
2936 1 file changed, 1 insertion(+), 1 deletion(-)
2937
2938commit e5758db7bd75587a2499e0771907521a4aa86908
2939Author: Lasse Collin <lasse.collin@tukaani.org>
2940Date:   2024-09-10 13:54:47 +0300
2941
2942    Update THANKS
2943
2944 THANKS | 1 +
2945 1 file changed, 1 insertion(+)
2946
2947commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c
2948Author: Firas Khalil Khana <firasuke@gmail.com>
2949Date:   2024-09-10 12:30:32 +0300
2950
2951    Build: Fix a typo in autogen.sh
2952
2953    Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310
2954    Closes: https://github.com/tukaani-project/xz/pull/141
2955
2956 autogen.sh | 2 +-
2957 1 file changed, 1 insertion(+), 1 deletion(-)
2958
2959commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2
2960Author: Lasse Collin <lasse.collin@tukaani.org>
2961Date:   2024-09-02 20:08:40 +0300
2962
2963    Translations: Update Chinese (simplified) translation
2964
2965    Differences to the zh_CN.po file from the Translation Project:
2966
2967      - Two uses of \v were fixed.
2968
2969      - Missing "OPTS" translation in --riscv[=OPTS] was copied from
2970        previous lines.
2971
2972      - "make update-po" was run to remove line numbers from comments.
2973
2974 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------
2975 1 file changed, 40 insertions(+), 62 deletions(-)
2976
2977commit 2230692aa1bcebb586100183831e3daf1714d60a
2978Author: Lasse Collin <lasse.collin@tukaani.org>
2979Date:   2024-09-02 19:40:50 +0300
2980
2981    Translations: Update the Catalan translation
2982
2983    Differences to the ca.po file from the Translation Project:
2984
2985      - An overlong line translating --filters-help was wrapped.
2986
2987      - "make update-po" was used to remove line numbers from the comments
2988        to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637
2989        and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP
2990        is older than these commits.
2991
2992 po/ca.po | 171 ++++++++++++++++++++++++++-------------------------------------
2993 1 file changed, 69 insertions(+), 102 deletions(-)
2994
2995commit 3e7723ce26f74c71919984a6180504b4548cbb7e
2996Author: Lasse Collin <lasse.collin@tukaani.org>
2997Date:   2024-08-22 14:06:16 +0300
2998
2999    Update THANKS
3000
3001 THANKS | 1 +
3002 1 file changed, 1 insertion(+)
3003
3004commit d3e0e679b2b8b428598bb8ba56a17715190814db
3005Author: Lasse Collin <lasse.collin@tukaani.org>
3006Date:   2024-08-22 14:06:16 +0300
3007
3008    CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF
3009
3010    Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
3011    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
3012    Closes: https://github.com/tukaani-project/xz/pull/134
3013
3014 CMakeLists.txt | 12 ++++++++++--
3015 1 file changed, 10 insertions(+), 2 deletions(-)
3016
3017commit acdf21033abe347d9a279e9fe757f90ed16c1dbb
3018Author: Lasse Collin <lasse.collin@tukaani.org>
3019Date:   2024-08-22 14:06:16 +0300
3020
3021    CMake: Fix the build when XZ_TOOL_LZMADEC=OFF
3022
3023    Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
3024    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
3025    Fixes: https://github.com/tukaani-project/xz/pull/134
3026
3027 CMakeLists.txt | 6 ++++--
3028 1 file changed, 4 insertions(+), 2 deletions(-)
3029
3030commit 5e375987509fab484b7bef0b90be92f241c58c91
3031Author: Lasse Collin <lasse.collin@tukaani.org>
3032Date:   2024-08-22 11:01:07 +0300
3033
3034    Update THANKS
3035
3036 THANKS | 1 +
3037 1 file changed, 1 insertion(+)
3038
3039commit 6cd7c8607843c337edfe2c472aa316602a393754
3040Author: Yifeng Li <tomli@tomli.me>
3041Date:   2024-08-22 02:18:49 +0000
3042
3043    liblzma: Fix x86-64 movzw compatibility in range_decoder.h
3044
3045    Support for instruction "movzw" without suffix in "GNU as" was
3046    added in commit [1] and stabilized in binutils 2.27, released
3047    in August 2016. Earlier systems don't accept this instruction
3048    without a suffix, making range_decoder.h's inline assembly
3049    unable to build on old systems such as Ubuntu 16.04, creating
3050    error messages like:
3051
3052        lzma_decoder.c: Assembler messages:
3053        lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi'
3054        lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi'
3055        lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx'
3056        lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi'
3057
3058    Change "movzw" to "movzwl" for compatibility.
3059
3060    [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2
3061
3062    Suggested-by: Lasse Collin <lasse.collin@tukaani.org>
3063    Tested-by: Yifeng Li <tomli@tomli.me>
3064    Signed-off-by: Yifeng Li <tomli@tomli.me>
3065    Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158
3066    Fixes: https://github.com/tukaani-project/xz/issues/121
3067    Closes: https://github.com/tukaani-project/xz/pull/136
3068
3069 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------
3070 1 file changed, 12 insertions(+), 12 deletions(-)
3071
3072commit bf901dee5d4c46609645e50311c0cb2dfdcf9738
3073Author: Lasse Collin <lasse.collin@tukaani.org>
3074Date:   2024-07-19 20:02:43 +0300
3075
3076    Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6
3077
3078 CMakeLists.txt |  2 +-
3079 configure.ac   | 17 +++++++++++------
3080 2 files changed, 12 insertions(+), 7 deletions(-)
3081
3082commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd
3083Author: Lasse Collin <lasse.collin@tukaani.org>
3084Date:   2024-07-19 19:42:26 +0300
3085
3086    Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD"
3087
3088    This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599.
3089
3090    OpenBSD 7.6 will support elf_aux_info(3), and the detection code used
3091    on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop
3092    the OpenBSD-specific sysctl() method.
3093
3094    Thanks to Christian Weisgerber.
3095
3096 CMakeLists.txt                  |  6 ------
3097 configure.ac                    |  9 ---------
3098 src/liblzma/check/crc32_arm64.h | 15 ---------------
3099 src/liblzma/check/crc_common.h  |  1 -
3100 4 files changed, 31 deletions(-)
3101
3102commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede
3103Author: Lasse Collin <lasse.collin@tukaani.org>
3104Date:   2024-07-13 22:10:37 +0300
3105
3106    liblzma: Tweak a comment
3107
3108 src/liblzma/simple/arm64.c | 4 ++--
3109 1 file changed, 2 insertions(+), 2 deletions(-)
3110
3111commit 6408edac5529d6ec0abf52794074f229c8362303
3112Author: Lasse Collin <lasse.collin@tukaani.org>
3113Date:   2024-07-11 22:17:56 +0300
3114
3115    CMake: Bump maximum policy version to 3.30
3116
3117 CMakeLists.txt | 2 +-
3118 1 file changed, 1 insertion(+), 1 deletion(-)
3119
3120commit 9231c39ffb518196d6664a86e5325e744621a21b
3121Author: Lasse Collin <lasse.collin@tukaani.org>
3122Date:   2024-07-06 15:13:19 +0300
3123
3124    CMake: Require CMake 3.20 or later
3125
3126    This allows a few cleanups.
3127
3128 CMakeLists.txt | 78 ++++++++++++++++++++--------------------------------------
3129 1 file changed, 27 insertions(+), 51 deletions(-)
3130
3131commit 028185dd4889e3d6235ff13560160ebca6985021
3132Author: Lasse Collin <lasse.collin@tukaani.org>
3133Date:   2024-07-09 14:27:51 +0300
3134
3135    Update THANKS
3136
3137 THANKS | 1 +
3138 1 file changed, 1 insertion(+)
3139
3140commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747
3141Author: Lasse Collin <lasse.collin@tukaani.org>
3142Date:   2024-07-06 14:04:48 +0300
3143
3144    xz: Remove the TODO comment about --recursive
3145
3146    It won't be implemented. find + xargs is more flexible, for example,
3147    it allows compressing small files in parallel. An example for that
3148    has been included in the xz man page since 2010.
3149
3150 src/xz/args.c | 1 -
3151 1 file changed, 1 deletion(-)
3152
3153commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8
3154Author: Lasse Collin <lasse.collin@tukaani.org>
3155Date:   2024-07-06 14:04:16 +0300
3156
3157    Document --disable-loongarch-crc32 in INSTALL
3158
3159 INSTALL | 8 ++++++++
3160 1 file changed, 8 insertions(+)
3161
3162commit b3e53122f42796aaebd767bab920cf7bedf69966
3163Author: Lasse Collin <lasse.collin@tukaani.org>
3164Date:   2024-07-03 20:45:48 +0300
3165
3166    CMake: Link xz against Threads::Threads if using pthreads
3167
3168    The liblzma target was recently changed to link against Threads::Threads
3169    with the PRIVATE keyword. I had forgotten that xz itself depends on
3170    pthreads too due to pthread_sigmask(). Thus, the build broke when
3171    building shared liblzma and pthread_sigmask() wasn't in libc.
3172
3173    Thanks to Peter Seiderer for the bug report.
3174
3175    Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
3176    Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994
3177
3178 CMakeLists.txt | 13 +++++++++++++
3179 1 file changed, 13 insertions(+)
3180
3181commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374
3182Author: Lasse Collin <lasse.collin@tukaani.org>
3183Date:   2024-07-02 22:49:33 +0300
3184
3185    Update THANKS
3186
3187 THANKS | 1 +
3188 1 file changed, 1 insertion(+)
3189
3190commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a
3191Author: Lasse Collin <lasse.collin@tukaani.org>
3192Date:   2024-07-02 20:23:35 +0300
3193
3194    CMake: Improve NLS error messages
3195
3196 CMakeLists.txt | 11 +++++++----
3197 1 file changed, 7 insertions(+), 4 deletions(-)
3198
3199commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909
3200Author: Lasse Collin <lasse.collin@tukaani.org>
3201Date:   2024-07-02 20:19:47 +0300
3202
3203    CMake: Update the comment at the top of CMakeLists.txt
3204
3205    While po/*.gmo files won't be used from the release tarball,
3206    the generated translated man pages will be used still. Those
3207    are text files and po4a has slightly more dependencies than
3208    gettext tools so installing po4a might be a bit more challenging
3209    in some situations.
3210
3211 CMakeLists.txt | 17 +++++++----------
3212 1 file changed, 7 insertions(+), 10 deletions(-)
3213
3214commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507
3215Author: Lasse Collin <lasse.collin@tukaani.org>
3216Date:   2024-07-02 20:12:40 +0300
3217
3218    CMake: Drop support for pre-generated po/*.gmo files
3219
3220    When a release tarball is created using Autotools, the tarball includes
3221    po/*.gmo files which are binary files generated from po/*.po. Other
3222    tarball creation methods don't and won't create the .gmo files.
3223
3224    It feels clearer if CMake will never install pre-generated binary files
3225    from the source package. If people are able to install CMake, they
3226    likely are able to install gettext tools as well (assuming they want
3227    translations).
3228
3229 CMakeLists.txt | 66 +++++++++++++++++++---------------------------------------
3230 1 file changed, 21 insertions(+), 45 deletions(-)
3231
3232commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a
3233Author: Lasse Collin <lasse.collin@tukaani.org>
3234Date:   2024-07-02 19:14:50 +0300
3235
3236    CMake: Make XZ_NLS handling more robust
3237
3238    If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version
3239    wasn't at least 3.20, the configuration would fail in a cryptic way.
3240
3241    If XZ_NLS is enabled, require that CMake is new enough and that either
3242    gettext tools or pre-generated .gmo files are available. Otherwise fail
3243    the configuration. Previously missing gettext tools and .gmo files would
3244    only result in a warning.
3245
3246    Missing man page translations are still only a warning.
3247
3248    Thanks to Peter Seiderer for the bug report.
3249
3250    Fixes: https://github.com/tukaani-project/xz/issues/129
3251    Closes: https://github.com/tukaani-project/xz/pull/130
3252
3253 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++--------------------------
3254 1 file changed, 46 insertions(+), 36 deletions(-)
3255
3256commit ec6157570ea8a8e38158894e530d35416ff6a0f8
3257Author: Lasse Collin <lasse.collin@tukaani.org>
3258Date:   2024-07-02 19:39:05 +0300
3259
3260    CI: Add gettext as a dependency to CMake builds
3261
3262 .github/workflows/ci.yml | 4 ++--
3263 1 file changed, 2 insertions(+), 2 deletions(-)
3264
3265commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac
3266Author: Lasse Collin <lasse.collin@tukaani.org>
3267Date:   2024-07-02 18:43:56 +0300
3268
3269    CMake: Fix ENABLE_NLS comment too
3270
3271    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
3272
3273 CMakeLists.txt | 2 +-
3274 1 file changed, 1 insertion(+), 1 deletion(-)
3275
3276commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb
3277Author: Lasse Collin <lasse.collin@tukaani.org>
3278Date:   2024-07-02 18:02:50 +0300
3279
3280    CMake: The compile definition is ENABLE_NLS, not XZ_NLS
3281
3282    The CMake variables were renamed and accidentally also
3283    the compile definition was renamed. As a result, translation
3284    support wasn't actually enabled in the executables.
3285
3286    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
3287
3288 CMakeLists.txt | 4 ++--
3289 1 file changed, 2 insertions(+), 2 deletions(-)
3290
3291commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b
3292Author: Lasse Collin <lasse.collin@tukaani.org>
3293Date:   2024-07-01 17:33:20 +0300
3294
3295    Update AUTHORS and THANKS
3296
3297 AUTHORS | 2 +-
3298 THANKS  | 1 +
3299 2 files changed, 2 insertions(+), 1 deletion(-)
3300
3301commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e
3302Author: Xi Ruoyao <xry111@xry111.site>
3303Date:   2024-06-28 13:36:43 +0300
3304
3305    liblzma: Speed up CRC32 calculation on 64-bit LoongArch
3306
3307    The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32
3308    result for 1/2/4/8 bytes in a single operation. Using these is much
3309    faster compared to the generic method.
3310
3311    Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because
3312    the LoongArch specification says that CRC32 instructions shall be
3313    implemented for 64-bit processors. Optimized CRC32 isn't enabled for
3314    32-bit LoongArch processors because not enough information is available
3315    about them.
3316
3317    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
3318
3319    Closes: https://github.com/tukaani-project/xz/pull/86
3320
3321 CMakeLists.txt                      | 25 ++++++++++++++
3322 configure.ac                        | 40 +++++++++++++++++++++++
3323 src/liblzma/check/Makefile.inc      |  3 +-
3324 src/liblzma/check/crc32_fast.c      |  2 ++
3325 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++
3326 src/liblzma/check/crc_common.h      | 15 +++++++++
3327 6 files changed, 149 insertions(+), 1 deletion(-)
3328
3329commit 0ed893668554fb0758003289f8a6af9bd08b89d1
3330Author: Lasse Collin <lasse.collin@tukaani.org>
3331Date:   2024-06-28 14:20:49 +0300
3332
3333    liblzma: ARM64 CRC32: Align the buffer faster
3334
3335    Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions.
3336
3337 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++-----------
3338 1 file changed, 40 insertions(+), 14 deletions(-)
3339
3340commit 7e99856f66c07852c4e0de7aa01951e9147d86b0
3341Author: Sam James <sam@gentoo.org>
3342Date:   2024-06-28 14:18:35 +0300
3343
3344    CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...
3345
3346    This addresses the issue I mentioned in
3347    6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind
3348    job a bit, because non-xz tools aren't run unnecessarily with
3349    Valgrind by the script tests.
3350
3351 .github/workflows/ci.yml | 2 +-
3352 1 file changed, 1 insertion(+), 1 deletion(-)
3353
3354commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098
3355Author: Lasse Collin <lasse.collin@tukaani.org>
3356Date:   2024-06-25 16:00:22 +0300
3357
3358    Build: Prepend, not append, PTHREAD_CFLAGS to LIBS
3359
3360    It shouldn't make any difference because LIBS should be empty
3361    at that point in configure. But prepending is the correct way
3362    because in general the libraries being added might require other
3363    libraries that come later on the command line.
3364
3365 configure.ac | 2 +-
3366 1 file changed, 1 insertion(+), 1 deletion(-)
3367
3368commit 7bb46f2b7b3989c1b589a247a251470f65e91cda
3369Author: Lasse Collin <lasse.collin@tukaani.org>
3370Date:   2024-06-25 14:24:29 +0300
3371
3372    Build: Use AC_LINK_IFELSE to handle implicit function declarations
3373
3374    It's more robust in case the compiler allows pre-C99 implicit function
3375    declarations. If an x86 intrinsic is missing and gets treated as
3376    implicit function, the linking step will very probably fail. This
3377    isn't the only way to workaround implicit function declarations but
3378    it might be the simplest and cleanest.
3379
3380    The problem hasn't been observed in the wild.
3381
3382    There are a couple more AC_COMPILE_IFELSE uses in configure.ac.
3383    Of these, Landlock check calls prctl() and in theory could have
3384    the same problem. In practice it doesn't as the check program
3385    looks for several other things too. However, it was changed to
3386    AC_LINK_IFELSE still to look more correct.
3387
3388    Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were
3389    updated although they haven't given any trouble either. They
3390    have worked all these years because those check programs rely
3391    on specific headers and types: if headers or types are missing,
3392    compilation will fail. Using the linker makes these checks more
3393    similar to the ones in cmake/tuklib_*.cmake which always link.
3394
3395 configure.ac          |  8 ++++++--
3396 m4/tuklib_cpucores.m4 |  8 ++++----
3397 m4/tuklib_physmem.m4  | 17 +++++++++++------
3398 3 files changed, 21 insertions(+), 12 deletions(-)
3399
3400commit 35eb57355ad1c415a838d26192d5af84abb7cf39
3401Author: Lasse Collin <lasse.collin@tukaani.org>
3402Date:   2024-06-24 23:35:59 +0300
3403
3404    Build: Use AC_LINK_IFELSE instead of -Werror
3405
3406    AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely
3407    warn about the unsupported attribute and implicit function declaration.
3408    Changing to AC_LINK_IFELSE handles the implicit declaration because
3409    the symbol __crc32d is unlikely to exist in libc.
3410
3411    Note that the other part of the check is that #include <arm_acle.h>
3412    must work. If the header is missing, most compilers give an error
3413    and the linking step won't be attempted.
3414
3415    Avoiding -Werror makes the check more robust in case CFLAGS contains
3416    warning flags that break -Werror anyway (but this isn't the only check
3417    in configure.ac that has this problem). Using AC_LINK_IFELSE also makes
3418    the check more similar to how it is done in CMakeLists.txt.
3419
3420 configure.ac | 12 +-----------
3421 1 file changed, 1 insertion(+), 11 deletions(-)
3422
3423commit 5a728813c378cc3c4c9c95793762452418d08f1b
3424Author: Lasse Collin <lasse.collin@tukaani.org>
3425Date:   2024-06-24 23:34:34 +0300
3426
3427    Build: Sync the compile check changes from CMakeLists.txt
3428
3429    It's nice to keep these in sync. The use of main() will later allow
3430    AC_LINK_IFELSE usage too which may avoid the more fragile -Werror.
3431
3432 configure.ac | 15 ++++++++-------
3433 1 file changed, 8 insertions(+), 7 deletions(-)
3434
3435commit 5279828635a95abdef82e691fc4979d362780e63
3436Author: Lasse Collin <lasse.collin@tukaani.org>
3437Date:   2024-06-24 20:14:43 +0300
3438
3439    CMake: Not experimental anymore
3440
3441    While the CMake support has gotten a lot less testing than
3442    the Autotools-based build, the supported features should now
3443    be equal. The output may differ slightly, for example,
3444    liblzma.pc may have
3445
3446        Libs.private: -pthread -lpthread
3447
3448    with Autotools on GNU/Linux. CMake doesn't put any options
3449    in Libs.private because on modern glibc the pthread functions
3450    are in libc. The options options aren't required to link static
3451    liblzma into an application.
3452
3453    Autotools-based build doesn't generate or install
3454    lib/cmake/liblzma-*.cmake files. This means that on most
3455    platforms one cannot rely on
3456
3457        find_package(liblzma 5.2.5 REQUIRED CONFIG)
3458
3459    or such finding those files.
3460
3461 CMakeLists.txt | 9 ++++++---
3462 1 file changed, 6 insertions(+), 3 deletions(-)
3463
3464commit de215a0517645d16343f3a5336d3df884a4f665f
3465Author: Lasse Collin <lasse.collin@tukaani.org>
3466Date:   2024-06-25 16:11:13 +0300
3467
3468    CMake: Use configure_file() to copy a file
3469
3470    I had missed this simpler method before. It does create a dependency
3471    so that if .in.h changes the copying is done again.
3472
3473 CMakeLists.txt | 17 +++++++----------
3474 1 file changed, 7 insertions(+), 10 deletions(-)
3475
3476commit e620f35097c0ad20cd76d8258750aa706758ced9
3477Author: Lasse Collin <lasse.collin@tukaani.org>
3478Date:   2024-06-25 15:51:48 +0300
3479
3480    CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES
3481
3482    It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES
3483    only if CLOCK_MONOTONIC is available. Alternative would be to remove
3484    the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for
3485    pthread_condattr_setclock() but keeping the libs should be fine too.
3486    Then it's ready in case more pthread functions were wanted some day.
3487
3488 CMakeLists.txt | 6 ++++--
3489 1 file changed, 4 insertions(+), 2 deletions(-)
3490
3491commit 068a70e54932ca32ca2922aff5a67a62615c650b
3492Author: Sam James <sam@gentoo.org>
3493Date:   2024-06-24 19:25:30 +0100
3494
3495    CMake: Tweak comments
3496
3497    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
3498
3499 CMakeLists.txt | 15 +++++++--------
3500 1 file changed, 7 insertions(+), 8 deletions(-)
3501
3502commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa
3503Author: Lasse Collin <lasse.collin@tukaani.org>
3504Date:   2024-06-24 22:42:01 +0300
3505
3506    CMake: Edit white space for consistency
3507
3508 CMakeLists.txt | 26 +++++++++++++-------------
3509 1 file changed, 13 insertions(+), 13 deletions(-)
3510
3511commit 114cba69dbb96003e676c8c87a2e9943b12d065f
3512Author: Lasse Collin <lasse.collin@tukaani.org>
3513Date:   2024-06-24 22:41:10 +0300
3514
3515    CMake: Fix three checks if building with -flto
3516
3517    In CMake, check_c_source_compiles() always links too. With
3518    link-time optimization, unused functions may get omitted if
3519    main() doesn't depend on them. Consider the following which
3520    tries to check if somefunction() is available when <someheader.h>
3521    has been included:
3522
3523        #include <someheader.h>
3524        int foo(void) { return somefunction(); }
3525        int main(void) { return 0; }
3526
3527    LTO may omit foo() completely because the program as a whole doesn't
3528    need it and then the program will link even if the symbol somefunction
3529    isn't available in libc or other library being linked in, and then
3530    the test may pass when it shouldn't.
3531
3532    What happens if <someheader.h> doesn't declare somefunction()?
3533    Shouldn't the test fail in the compilation phase already? It should
3534    but many compilers don't follow the C99 and later standards that
3535    prohibit implicit function declarations. Instead such compilers
3536    assume that somefunction() exists, compilation succeeds (with a
3537    warning), and then linker with LTO omits the call to somefunction().
3538
3539    Change the tests so that they are part of main(). If compiler accepts
3540    implicitly declared functions, LTO cannot omit them because it has to
3541    assume that they might have side effects and thus linking will fail.
3542    On the other hand, if the functions/intrinsics being used are supported,
3543    they might get optimized away but in that case it's fine because they
3544    really are supported.
3545
3546    It is fine to use __attribute__((target(...))) for main(). At least
3547    it works with GCC 4.9 to 14.1 on x86-64.
3548
3549    Reported-by: Sam James <sam@gentoo.org>
3550
3551 CMakeLists.txt | 19 ++++++++-----------
3552 1 file changed, 8 insertions(+), 11 deletions(-)
3553
3554commit 78e882205e1f1e91df2af2cb7da00fe205dede99
3555Author: Lasse Collin <lasse.collin@tukaani.org>
3556Date:   2024-06-24 21:19:14 +0300
3557
3558    CMake: Use MATCHES instead of multiple STREQUAL
3559
3560 CMakeLists.txt | 11 ++++-------
3561 1 file changed, 4 insertions(+), 7 deletions(-)
3562
3563commit d3f20382fc1bd865eb70a65455d5022ed05caac8
3564Author: Lasse Collin <lasse.collin@tukaani.org>
3565Date:   2024-06-24 21:06:18 +0300
3566
3567    CMake: Improve the comment about LIBS
3568
3569 CMakeLists.txt | 6 ++++++
3570 1 file changed, 6 insertions(+)
3571
3572commit 33ec377729a3889e58d98934b2777b2754a3e045
3573Author: Lasse Collin <lasse.collin@tukaani.org>
3574Date:   2024-06-24 20:01:25 +0300
3575
3576    CMake: Fix a typo in a message
3577
3578    It was spotted with codespell.
3579
3580 CMakeLists.txt | 2 +-
3581 1 file changed, 1 insertion(+), 1 deletion(-)
3582
3583commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f
3584Author: Lasse Collin <lasse.collin@tukaani.org>
3585Date:   2024-06-24 19:58:54 +0300
3586
3587    Document CMake options in INSTALL
3588
3589 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
3590 1 file changed, 106 insertions(+), 9 deletions(-)
3591
3592commit 3faf4e8079a46bd46e05cd1234365724a6a33802
3593Author: Lasse Collin <lasse.collin@tukaani.org>
3594Date:   2024-06-24 17:18:44 +0300
3595
3596    CI: Don't omit crc32 from the list with CMake anymore
3597
3598    XZ_CHECKS accepts it but works without too.
3599
3600 build-aux/ci_build.bash | 10 +---------
3601 1 file changed, 1 insertion(+), 9 deletions(-)
3602
3603commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a
3604Author: Lasse Collin <lasse.collin@tukaani.org>
3605Date:   2024-06-24 17:39:54 +0300
3606
3607    CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS
3608
3609    Check for the wrong triplet from config.guess and override it with
3610    the --build option on the configure command line. Then i386 assembly
3611    autodetection will work.
3612
3613    These Ubuntu versions (and as of writing, also Debian unstable)
3614    ship config.guess version 2022-01-09 which contains a bug that
3615    was fixed in version 2022-05-08. It results in a wrong configure
3616    triplet when using CC="gcc -m32" to build i386 binaries.
3617
3618    Upstream fix:
3619    https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329
3620
3621    More information:
3622    https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html
3623
3624 build-aux/ci_build.bash | 9 +++++++++
3625 1 file changed, 9 insertions(+)
3626
3627commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679
3628Author: Lasse Collin <lasse.collin@tukaani.org>
3629Date:   2024-06-24 15:24:52 +0300
3630
3631    CI: Use CC="gcc -m32" to get i386 compiler on x86-64
3632
3633    The old method put it in CFLAGS which is a wrong place because
3634    config.guess doesn't read CFLAGS.
3635
3636 .github/workflows/ci.yml | 4 ++--
3637 1 file changed, 2 insertions(+), 2 deletions(-)
3638
3639commit 0c1e6d900bac127464fb30a854776e1810ab5f16
3640Author: Lasse Collin <lasse.collin@tukaani.org>
3641Date:   2024-06-24 14:54:17 +0300
3642
3643    CI: Let CMake use the CC environment variable
3644
3645    CC from environment is used to initialize CMAKE_C_COMPILER so
3646    setting CMAKE_C_COMPILER explicitly isn't needed.
3647
3648    The syntax in ci_build.bash was broken in case one wished to put
3649    spaces in CC.
3650
3651 build-aux/ci_build.bash | 4 ----
3652 1 file changed, 4 deletions(-)
3653
3654commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075
3655Author: Lasse Collin <lasse.collin@tukaani.org>
3656Date:   2024-06-20 23:25:42 +0300
3657
3658    CMake: Add autodetection for 32-bit x86 CRC assembly usage
3659
3660 CMakeLists.txt | 33 ++++++++++++++++++---------------
3661 1 file changed, 18 insertions(+), 15 deletions(-)
3662
3663commit dbc14f213e5cf866f1f42b7c6381a91e1189908c
3664Author: Lasse Collin <lasse.collin@tukaani.org>
3665Date:   2024-06-20 23:00:59 +0300
3666
3667    CMake: Move option(XZ_ASM_I386) downwards a few lines
3668
3669 CMakeLists.txt | 16 ++++++++--------
3670 1 file changed, 8 insertions(+), 8 deletions(-)
3671
3672commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a
3673Author: Lasse Collin <lasse.collin@tukaani.org>
3674Date:   2024-06-20 18:45:41 +0300
3675
3676    DOS: Update Makefile and config.h for the CRC changes
3677
3678 dos/Makefile | 4 ++--
3679 dos/config.h | 3 +++
3680 2 files changed, 5 insertions(+), 2 deletions(-)
3681
3682commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88
3683Author: Lasse Collin <lasse.collin@tukaani.org>
3684Date:   2024-06-23 15:35:35 +0300
3685
3686    liblzma: Tidy up crc_common.h
3687
3688    Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with
3689    the other ARM64-specific lines. That macro isn't used outside this
3690    file.
3691
3692    ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL
3693    isn't used anywhere yet.
3694
3695    It's not ideal that the single-letter CRC utility macros are here
3696    as they pollute the namespace of the LZ encoder files. Those could
3697    be moved their own crc_macros.h like they were in 5.2.x but in practice
3698    this is fine enough already.
3699
3700 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++--------------
3701 1 file changed, 42 insertions(+), 20 deletions(-)
3702
3703commit 7484d375384f551d475ff44a93590a225e0cb8f6
3704Author: Lasse Collin <lasse.collin@tukaani.org>
3705Date:   2024-06-23 14:22:08 +0300
3706
3707    liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h
3708
3709    LZ encoder needs lzma_crc32_table[0] but otherwise those tables
3710    are private to the CRC code. In contrast, the other things in
3711    check.h are needed in several places.
3712
3713 src/liblzma/check/check.h        | 18 ------------------
3714 src/liblzma/check/crc32_small.c  |  3 +++
3715 src/liblzma/check/crc_common.h   | 18 ++++++++++++++++++
3716 src/liblzma/lz/lz_encoder_hash.h |  4 ++--
3717 4 files changed, 23 insertions(+), 20 deletions(-)
3718
3719commit 85b081f5d4598342b8c155a2c08697fb2adc372c
3720Author: Lasse Collin <lasse.collin@tukaani.org>
3721Date:   2024-06-19 18:38:22 +0300
3722
3723    liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL
3724
3725    Now runtime detection of CLMUL support can pick between the CLMUL and
3726    the generic assembly implementations. Whatever overhead this has for
3727    builds that omit CLMUL completely isn't important because builds for
3728    any non-ancient system is likely to include the CLMUL code too.
3729
3730    Handle the CRC tables in crcXX_fast.c files because now these files
3731    are built even when assembly code is used.
3732
3733    If 32-bit x86 assembly is enabled then it will always be built even
3734    if compiler flags were such that CLMUL would be allowed unconditionally.
3735    That is, runtime detection will be used anyway. This keeps the build
3736    rules simpler.
3737
3738    In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC
3739    is used without runtime detection. Previously this wasn't needed
3740    because crc32_table.c included the lzma_crc32_table[][] in the build
3741    unless encoder support had been disabled. Including an 8 KiB table
3742    was silly when only 1 KiB is actually used. So now liblzma is 7 KiB
3743    smaller if CLMUL is enabled without runtime detection.
3744
3745 CMakeLists.txt                    |  8 ++------
3746 src/liblzma/check/Makefile.inc    |  8 ++------
3747 src/liblzma/check/crc32_fast.c    | 14 ++++++++++++-
3748 src/liblzma/check/crc32_table.c   | 42 ---------------------------------------
3749 src/liblzma/check/crc32_x86.S     | 14 +++++--------
3750 src/liblzma/check/crc64_fast.c    | 18 +++++++++++++----
3751 src/liblzma/check/crc64_table.c   | 37 ----------------------------------
3752 src/liblzma/check/crc64_x86.S     | 14 +++++--------
3753 src/liblzma/check/crc_common.h    | 18 +++++++++--------
3754 src/liblzma/check/crc_x86_clmul.h |  5 -----
3755 src/liblzma/lz/lz_encoder.c       |  2 +-
3756 src/liblzma/lz/lz_encoder_hash.h  | 30 ++++++++++++++++++++--------
3757 12 files changed, 74 insertions(+), 136 deletions(-)
3758
3759commit 6667d503b5dc9826654e3d9ad505e1883ff6c388
3760Author: Lasse Collin <lasse.collin@tukaani.org>
3761Date:   2024-06-19 17:44:41 +0300
3762
3763    liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic
3764
3765    This prepares for the possibility that lzma_crc32_generic and
3766    lzma_crc64_generic are extern functions.
3767
3768 src/liblzma/check/crc32_fast.c | 6 +++---
3769 src/liblzma/check/crc64_fast.c | 6 +++---
3770 2 files changed, 6 insertions(+), 6 deletions(-)
3771
3772commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845
3773Author: Lasse Collin <lasse.collin@tukaani.org>
3774Date:   2024-06-20 22:55:22 +0300
3775
3776    CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
3777
3778 CMakeLists.txt | 3 +++
3779 1 file changed, 3 insertions(+)
3780
3781commit f76837acb65676e541d8ee79cd62dbbf27280a62
3782Author: Lasse Collin <lasse.collin@tukaani.org>
3783Date:   2024-05-10 16:00:26 +0300
3784
3785    Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
3786
3787    This makes it easier to determine when the CRC tables are needed.
3788
3789 configure.ac | 9 +++++++--
3790 1 file changed, 7 insertions(+), 2 deletions(-)
3791
3792commit 9ce0866b070850da4dc837741ff055faa218bdd6
3793Author: Lasse Collin <lasse.collin@tukaani.org>
3794Date:   2024-06-21 00:46:09 +0300
3795
3796    CI: Update to the new renamed options in CMakeLists.txt
3797
3798 build-aux/ci_build.bash | 10 +++++-----
3799 1 file changed, 5 insertions(+), 5 deletions(-)
3800
3801commit 0232e66d5bc5b01a25a447c657e51747626488ab
3802Author: Lasse Collin <lasse.collin@tukaani.org>
3803Date:   2024-06-20 18:12:22 +0300
3804
3805    CMake: Add XZ_EXTERNAL_SHA256
3806
3807 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
3808 1 file changed, 116 insertions(+), 5 deletions(-)
3809
3810commit 4535b80caead82a7ddf7feb988b8fbc773152522
3811Author: Lasse Collin <lasse.collin@tukaani.org>
3812Date:   2024-06-20 18:12:21 +0300
3813
3814    CMake: Move threading detection a few lines up
3815
3816    It feels clearer this way, and when support for external SHA-256
3817    is added, this will keep the order of the library detection the
3818    same as in configure.ac (check for pthreads before libmd) although
3819    it shouldn't matter in practice.
3820
3821 CMakeLists.txt | 176 ++++++++++++++++++++++++++++-----------------------------
3822 1 file changed, 88 insertions(+), 88 deletions(-)
3823
3824commit 94d062dbac34d366eb26625034200cc3457e6645
3825Author: Lasse Collin <lasse.collin@tukaani.org>
3826Date:   2024-06-20 18:12:21 +0300
3827
3828    CMake: Move the sandbox code out of the liblzma section
3829
3830    Sandboxing is for the command line tools, not liblzma.
3831    No functional changes.
3832
3833 CMakeLists.txt | 214 ++++++++++++++++++++++++++++-----------------------------
3834 1 file changed, 107 insertions(+), 107 deletions(-)
3835
3836commit 75ce4797d49621710e6da95d8cb91541028c6d68
3837Author: Lasse Collin <lasse.collin@tukaani.org>
3838Date:   2024-06-20 18:12:21 +0300
3839
3840    CMake: Keep existing options in LIBS when adding -lrt
3841
3842    This makes no difference yet because -lrt is currently the only option
3843    that might be added to LIBS.
3844
3845 CMakeLists.txt | 2 +-
3846 1 file changed, 1 insertion(+), 1 deletion(-)
3847
3848commit 47aaa92516fd9609821d04e5e94ca6558e56d62b
3849Author: Lasse Collin <lasse.collin@tukaani.org>
3850Date:   2024-06-15 18:07:04 +0300
3851
3852    CMake: Don't install scripts if the xz tool isn't built
3853
3854    The scripts need the xz tool.
3855
3856 CMakeLists.txt    | 11 +++++++++--
3857 tests/tests.cmake |  2 +-
3858 2 files changed, 10 insertions(+), 3 deletions(-)
3859
3860commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
3861Author: Lasse Collin <lasse.collin@tukaani.org>
3862Date:   2024-06-15 18:07:04 +0300
3863
3864    CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC
3865
3866 CMakeLists.txt | 15 ++++++++++++++-
3867 1 file changed, 14 insertions(+), 1 deletion(-)
3868
3869commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34
3870Author: Lasse Collin <lasse.collin@tukaani.org>
3871Date:   2024-06-15 18:07:04 +0300
3872
3873    CMake: Add XZ_TOOL_LZMAINFO
3874
3875 CMakeLists.txt | 4 +++-
3876 1 file changed, 3 insertions(+), 1 deletion(-)
3877
3878commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0
3879Author: Lasse Collin <lasse.collin@tukaani.org>
3880Date:   2024-06-15 18:07:04 +0300
3881
3882    CMake: Add XZ_TOOL_XZ
3883
3884 CMakeLists.txt | 4 +++-
3885 1 file changed, 3 insertions(+), 1 deletion(-)
3886
3887commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f
3888Author: Lasse Collin <lasse.collin@tukaani.org>
3889Date:   2024-06-15 18:07:04 +0300
3890
3891    Windows: Drop Visual Studio 2013 support
3892
3893    This simplifies things a little. Building liblzma with VS2013 probably
3894    still worked but building the command line tools was not supported.
3895
3896    Microsoft ended support for VS2013 on 2024-04.
3897
3898 CMakeLists.txt           | 9 +++++++--
3899 src/common/sysdefs.h     | 6 +-----
3900 windows/INSTALL-MSVC.txt | 8 ++------
3901 3 files changed, 10 insertions(+), 13 deletions(-)
3902
3903commit 5d5c92b26246936461a635dda1f95740d7de2058
3904Author: Lasse Collin <lasse.collin@tukaani.org>
3905Date:   2024-06-15 18:07:04 +0300
3906
3907    CMake: Add XZ_TOOL_SCRIPTS
3908
3909 CMakeLists.txt | 44 +++++++++++++++++++++++++++++---------------
3910 1 file changed, 29 insertions(+), 15 deletions(-)
3911
3912commit d274a2bc00d235f07e96aaf82c149794cfe82b12
3913Author: Lasse Collin <lasse.collin@tukaani.org>
3914Date:   2024-06-15 18:07:04 +0300
3915
3916    CMake: Add XZ_DOC
3917
3918 CMakeLists.txt | 45 ++++++++++++++++++++++++---------------------
3919 1 file changed, 24 insertions(+), 21 deletions(-)
3920
3921commit 188143a50ade67253ed256608f50f78aa1380403
3922Author: Lasse Collin <lasse.collin@tukaani.org>
3923Date:   2024-06-20 21:53:03 +0300
3924
3925    CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac
3926
3927    Make the available options and their behavior match
3928    --enable-symbol-versions in configure.ac.
3929
3930    Don't enable symbol versions on Linux if not using glibc. Previously
3931    the generic variant was selected on Microblaze or if using NVHPC
3932    without checking that libc is glibc.
3933
3934    Leave the cache variable to "auto" or "yes" if that was specified
3935    instead of setting it to the autodetected value by default. A downside
3936    is that one cannot easily see which variant the autodetection code
3937    has selected. The same applies to XZ_SANDBOX and XZ_THREADS though.
3938
3939 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++-----------------------
3940 1 file changed, 75 insertions(+), 50 deletions(-)
3941
3942commit cc52ef8ed3b75a581262c587f6c06c213a550f86
3943Author: Lasse Collin <lasse.collin@tukaani.org>
3944Date:   2024-06-15 18:07:04 +0300
3945
3946    CMake: Use the same option list for XZ_THREADS as in configure.ac
3947
3948    Also clarify that "yes" will fail if no threading support is found.
3949    If no threading is wanted, it has to be disabled manually.
3950
3951    configure.ac doesn't behave this way at the moment. Instead it
3952    assumes pthreads to be present if not targeting Windows. If pthreads
3953    actually are missing, the build fails later.
3954
3955 CMakeLists.txt | 18 ++++++++++--------
3956 1 file changed, 10 insertions(+), 8 deletions(-)
3957
3958commit 37f7af3452bab0a34ce320c2ad532835f18752d9
3959Author: Lasse Collin <lasse.collin@tukaani.org>
3960Date:   2024-06-15 18:07:04 +0300
3961
3962    CMake: Use the same option list for XZ_SANDBOX as in configure.ac
3963
3964    It's simpler to document this way.
3965
3966 CMakeLists.txt | 20 ++++++++++----------
3967 1 file changed, 10 insertions(+), 10 deletions(-)
3968
3969commit c715dec8e800b65145918cfb0ee9bbc90faa8aad
3970Author: Lasse Collin <lasse.collin@tukaani.org>
3971Date:   2024-06-15 18:07:04 +0300
3972
3973    CMake: Fix indentation
3974
3975 CMakeLists.txt | 2 +-
3976 1 file changed, 1 insertion(+), 1 deletion(-)
3977
3978commit ea379f2f180befabd2039342db8eaeb757fdd2b7
3979Author: Lasse Collin <lasse.collin@tukaani.org>
3980Date:   2024-06-15 18:07:04 +0300
3981
3982    CMake: Add warning options for GCC and Clang
3983
3984    The list was copied from configure.ac and should be kept in sync.
3985    (Pretend that the deleted comment in CMakeLists.txt didn't exist.)
3986
3987    There is no need to add equivalent of --enable-werror as CMake >= 3.24
3988    supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON.
3989
3990 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
3991 1 file changed, 59 insertions(+), 5 deletions(-)
3992
3993commit 74223338197b7dfcd69f56df78b6502805a75f23
3994Author: Lasse Collin <lasse.collin@tukaani.org>
3995Date:   2024-06-15 18:07:04 +0300
3996
3997    CMake: Use \040 instead of \x20 for a space
3998
3999    This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
4000    where \040 has to be used because \0x20F gets interpret at three hex
4001    digits. Octals escapes are never longer than three digits.
4002
4003 CMakeLists.txt | 2 +-
4004 1 file changed, 1 insertion(+), 1 deletion(-)
4005
4006commit e8854b6bdc956c46dc4232bd07c17163034a00f2
4007Author: Lasse Collin <lasse.collin@tukaani.org>
4008Date:   2024-06-15 18:07:04 +0300
4009
4010    CMake: Add XZ_ASSUME_RAM
4011
4012 CMakeLists.txt | 4 +++-
4013 1 file changed, 3 insertions(+), 1 deletion(-)
4014
4015commit e1127e75cb82e0385f02c995771d6fe1420f43c5
4016Author: Lasse Collin <lasse.collin@tukaani.org>
4017Date:   2024-06-15 18:07:04 +0300
4018
4019    CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR
4020
4021 CMakeLists.txt | 6 +++---
4022 1 file changed, 3 insertions(+), 3 deletions(-)
4023
4024commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff
4025Author: Lasse Collin <lasse.collin@tukaani.org>
4026Date:   2024-06-15 18:07:04 +0300
4027
4028    CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS
4029
4030    Now "crc32" is in the list too for completeness but it doesn't
4031    actually have any effect. The description of the cache variable
4032    says that "crc32 is always built" so it should be clear enough.
4033
4034 CMakeLists.txt    | 14 +++++++-------
4035 tests/tests.cmake | 17 ++++++++---------
4036 2 files changed, 15 insertions(+), 16 deletions(-)
4037
4038commit 679500ffe00ecb4f02292129e7529ab7392f3943
4039Author: Lasse Collin <lasse.collin@tukaani.org>
4040Date:   2024-06-15 18:07:04 +0300
4041
4042    CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL
4043
4044    We still need the variable POSIX_SHELL for configure_file()
4045    but it doesn't need to be a cache variable.
4046
4047 CMakeLists.txt | 7 ++++---
4048 1 file changed, 4 insertions(+), 3 deletions(-)
4049
4050commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef
4051Author: Lasse Collin <lasse.collin@tukaani.org>
4052Date:   2024-06-15 18:07:04 +0300
4053
4054    CMake: Rename ENCODERS and DECODERS to use XZ_ prefix
4055
4056 CMakeLists.txt    | 34 +++++++++++++++++-----------------
4057 tests/tests.cmake |  4 ++--
4058 2 files changed, 19 insertions(+), 19 deletions(-)
4059
4060commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154
4061Author: Lasse Collin <lasse.collin@tukaani.org>
4062Date:   2024-06-15 18:07:04 +0300
4063
4064    CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS
4065
4066 CMakeLists.txt | 6 +++---
4067 1 file changed, 3 insertions(+), 3 deletions(-)
4068
4069commit 63294806b488a27a28a0960f6a257695dd2b569a
4070Author: Lasse Collin <lasse.collin@tukaani.org>
4071Date:   2024-06-15 18:07:04 +0300
4072
4073    CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING
4074
4075 CMakeLists.txt | 9 +++++----
4076 1 file changed, 5 insertions(+), 4 deletions(-)
4077
4078commit ad245b133675d285bca5d48123062e9d1e3f747e
4079Author: Lasse Collin <lasse.collin@tukaani.org>
4080Date:   2024-06-15 18:07:04 +0300
4081
4082    CMake: Rename ENABLE_THREADS to XZ_THREADS
4083
4084 CMakeLists.txt | 24 +++++++++++-------------
4085 1 file changed, 11 insertions(+), 13 deletions(-)
4086
4087commit 4250d4de32e66e558cc2ebe73b05255633c933ed
4088Author: Lasse Collin <lasse.collin@tukaani.org>
4089Date:   2024-06-15 18:07:04 +0300
4090
4091    CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX
4092
4093 CMakeLists.txt | 23 +++++++++++------------
4094 1 file changed, 11 insertions(+), 12 deletions(-)
4095
4096commit 0fdcd0c582f1a38542cd647dde449d9447d5888d
4097Author: Lasse Collin <lasse.collin@tukaani.org>
4098Date:   2024-06-15 18:07:04 +0300
4099
4100    CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386
4101
4102 CMakeLists.txt | 10 +++++-----
4103 1 file changed, 5 insertions(+), 5 deletions(-)
4104
4105commit e017d5526e316003fdb2a3f76acbb83443f14ddf
4106Author: Lasse Collin <lasse.collin@tukaani.org>
4107Date:   2024-06-15 18:07:04 +0300
4108
4109    CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS
4110
4111    This only affects the names unxz and xzcat. The xz-prefixed script
4112    symlinks (xzfgrep and such) are always created if scripts are enabled.
4113
4114 CMakeLists.txt | 4 ++--
4115 1 file changed, 2 insertions(+), 2 deletions(-)
4116
4117commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c
4118Author: Lasse Collin <lasse.collin@tukaani.org>
4119Date:   2024-06-15 18:07:04 +0300
4120
4121    CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS
4122
4123    Update the description too.
4124
4125    It affects creation of not only the legacy lzma, unlzma, lzcat symlinks
4126    but also lzgrep and other legacy names for the scripts. The last
4127    LZMA Utils release was made in 2008 but these names are still used
4128    in some places to handle .lzma files.
4129
4130 CMakeLists.txt | 7 ++++---
4131 1 file changed, 4 insertions(+), 3 deletions(-)
4132
4133commit 612ccebf884eb1a9b6848e230c24f97a03fe917a
4134Author: Lasse Collin <lasse.collin@tukaani.org>
4135Date:   2024-06-15 18:07:04 +0300
4136
4137    CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32
4138
4139    Update description too.
4140
4141 CMakeLists.txt | 6 +++---
4142 1 file changed, 3 insertions(+), 3 deletions(-)
4143
4144commit 3dcc12290d6dffbe7f10f501c141d325bad65901
4145Author: Lasse Collin <lasse.collin@tukaani.org>
4146Date:   2024-06-15 18:07:04 +0300
4147
4148    CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC
4149
4150    Update description too.
4151
4152 CMakeLists.txt | 6 +++---
4153 1 file changed, 3 insertions(+), 3 deletions(-)
4154
4155commit 4b8faa72442da9aa1a356f5848aae798d8588a7d
4156Author: Lasse Collin <lasse.collin@tukaani.org>
4157Date:   2024-06-15 18:07:04 +0300
4158
4159    CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN
4160
4161 CMakeLists.txt | 4 ++--
4162 1 file changed, 2 insertions(+), 2 deletions(-)
4163
4164commit b56273ae575bac350e50b0c689269dcab04b04b3
4165Author: Lasse Collin <lasse.collin@tukaani.org>
4166Date:   2024-06-15 18:07:04 +0300
4167
4168    CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER
4169
4170 CMakeLists.txt    | 4 ++--
4171 tests/tests.cmake | 2 +-
4172 2 files changed, 3 insertions(+), 3 deletions(-)
4173
4174commit 2343992fcbe8b436da6df888be37713cccaff0ab
4175Author: Lasse Collin <lasse.collin@tukaani.org>
4176Date:   2024-06-15 18:07:04 +0300
4177
4178    CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER
4179
4180 CMakeLists.txt    | 8 ++++----
4181 tests/tests.cmake | 2 +-
4182 2 files changed, 5 insertions(+), 5 deletions(-)
4183
4184commit 96f0a6632cc0598a26d93255b0c444df18dc7891
4185Author: Lasse Collin <lasse.collin@tukaani.org>
4186Date:   2024-06-15 18:07:04 +0300
4187
4188    CMake: Rename ENABLE_SMALL to XZ_SMALL
4189
4190 CMakeLists.txt | 14 +++++++-------
4191 1 file changed, 7 insertions(+), 7 deletions(-)
4192
4193commit 29f77c7b707f2458fb047e77497354b195e05b14
4194Author: Lasse Collin <lasse.collin@tukaani.org>
4195Date:   2024-06-15 18:07:04 +0300
4196
4197    CMake: Rename ENABLE_NLS to XZ_NLS
4198
4199    Also update the description to mention that this affects installation
4200    of translated man pages too.
4201
4202    Prefixing the cache variables with the project name helps if
4203    the package is used as a subproject in another package.
4204    It also makes the package-specific options group more nicely
4205    in ccmake and cmake-gui.
4206
4207 CMakeLists.txt | 28 +++++++++++++++-------------
4208 1 file changed, 15 insertions(+), 13 deletions(-)
4209
4210commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
4211Author: Lasse Collin <lasse.collin@tukaani.org>
4212Date:   2024-06-15 23:34:29 +0300
4213
4214    CMake: Link Threads::Threads as PRIVATE to liblzma
4215
4216    This way pthread options aren't passed to the linker when linking
4217    against shared liblzma but they are still passed when linking against
4218    static liblzma. (Also, one never needs the include path of the
4219    threading library to use liblzma since liblzma's API headers
4220    don't #include <pthread.h>. But <pthread.h> tends to be in the
4221    default include path so here this change makes no difference.)
4222
4223    One cannot mix target_link_libraries() calls that use the scope
4224    (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it.
4225    The calls without the keyword are like PUBLIC except perhaps when
4226    they aren't, or something like that... It seems best to always
4227    specify a scope keyword as the meanings of those three keywords
4228    at least are clear.
4229
4230 CMakeLists.txt | 2 +-
4231 1 file changed, 1 insertion(+), 1 deletion(-)
4232
4233commit 82986d8c691a294c78b48d8391303e5c428b5437
4234Author: Lasse Collin <lasse.collin@tukaani.org>
4235Date:   2024-06-16 19:39:32 +0300
4236
4237    CMake: Add empty lines
4238
4239 CMakeLists.txt | 2 ++
4240 1 file changed, 2 insertions(+)
4241
4242commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2
4243Author: Lasse Collin <lasse.collin@tukaani.org>
4244Date:   2024-06-16 19:37:36 +0300
4245
4246    CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads
4247
4248    This shouldn't make much difference in practice as on Windows
4249    no flags are needed anyway and unitialized variable (when threading
4250    is disabled) expands to empty. But it's clearer this way.
4251
4252 CMakeLists.txt | 8 +++++++-
4253 1 file changed, 7 insertions(+), 1 deletion(-)
4254
4255commit 664918bd3635ea8e773f06022286ecb0c485166c
4256Author: Lasse Collin <lasse.collin@tukaani.org>
4257Date:   2024-06-17 18:20:14 +0300
4258
4259    Update THANKS
4260
4261 THANKS | 3 +++
4262 1 file changed, 3 insertions(+)
4263
4264commit 5ca96a93488d0f5a530c78b274cac317453807ff
4265Author: Lasse Collin <lasse.collin@tukaani.org>
4266Date:   2024-06-16 19:25:07 +0300
4267
4268    CMake: Use native newlines in liblzma.pc
4269
4270    vcpkg doesn't specify the newline type so it should be fine to
4271    use native newlines in liblzma.pc on Windows.
4272
4273 CMakeLists.txt | 4 +---
4274 1 file changed, 1 insertion(+), 3 deletions(-)
4275
4276commit ebd155c3a1b87411edae06d3bdaa9659ec057522
4277Author: Lasse Collin <lasse.collin@tukaani.org>
4278Date:   2024-06-16 19:18:56 +0300
4279
4280    CMake: Use relative paths in liblzma.pc if possible
4281
4282    Now liblzma.pc can be relocatable only if using CMake >= 3.20
4283    but that should be OK as now we shouldn't get broken liblzma.pc
4284    if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an
4285    absolute path.
4286
4287    Thanks to Eli Schwartz.
4288
4289 CMakeLists.txt | 18 ++++++++++++++----
4290 1 file changed, 14 insertions(+), 4 deletions(-)
4291
4292commit 7a366d93cfd74ce10201db400be8836199944e36
4293Author: Lasse Collin <lasse.collin@tukaani.org>
4294Date:   2024-06-16 18:33:08 +0300
4295
4296    Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc"
4297
4298    This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69.
4299
4300    While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need
4301    to be. Thus the commit was broken. A fancier method is required.
4302
4303    Thanks to Eli Schwartz for the bug report and explanation.
4304
4305 CMakeLists.txt | 6 +++---
4306 1 file changed, 3 insertions(+), 3 deletions(-)
4307
4308commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f
4309Author: Lasse Collin <lasse.collin@tukaani.org>
4310Date:   2024-06-16 13:39:37 +0300
4311
4312    liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed
4313
4314    On E2K the function compiles only due to compiler emulation but the
4315    function is never used. It's cleaner to omit the function when it's
4316    not needed even though it's a "static inline" function.
4317
4318    Thanks to Ilya Kurdyukov.
4319
4320 src/liblzma/check/crc_x86_clmul.h | 4 ++++
4321 1 file changed, 4 insertions(+)
4322
4323commit 54eaea5ea49bb8bca4286d4412f19ac73187489e
4324Author: Lasse Collin <lasse.collin@tukaani.org>
4325Date:   2024-06-16 13:21:34 +0300
4326
4327    liblzma: x86 CLMUL CRC: Rewrite
4328
4329    It's faster with both tiny and large buffers and doesn't require
4330    disabling any sanitizers. With large buffers the extra speed is
4331    from folding four 16-byte chunks in parallel.
4332
4333    The 32-bit x86 with MSVC reportedly still needs a workaround.
4334    Now the simpler "__asm mov ebx, ebx" trick is enough but it
4335    needs to be in lzma_crc64() instead of crc64_arch_optimized().
4336    Thanks to Iouri Kharon for testing and the fix.
4337
4338    Thanks to Ilya Kurdyukov for testing the speed with aligned and
4339    unaligned buffers on a few x86 processors and on E2K v6.
4340
4341    Thanks to Sam James for general feedback.
4342
4343    Fixes: https://github.com/tukaani-project/xz/issues/112
4344    Fixes: https://github.com/tukaani-project/xz/issues/122
4345
4346 src/liblzma/check/crc64_fast.c    |   8 +
4347 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------
4348 2 files changed, 237 insertions(+), 208 deletions(-)
4349
4350commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
4351Author: Lasse Collin <lasse.collin@tukaani.org>
4352Date:   2024-06-01 14:44:04 +0300
4353
4354    sysdefs.h: Add alignas
4355
4356 src/common/sysdefs.h | 11 +++++++++++
4357 1 file changed, 11 insertions(+)
4358
4359commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf
4360Author: Lasse Collin <lasse.collin@tukaani.org>
4361Date:   2024-06-11 12:47:59 +0300
4362
4363    liblzma: Use a single macro to select CLMUL CRC to build
4364
4365    This way it's clearer that two things cannot be selected
4366    at the same time.
4367
4368 src/liblzma/check/crc32_fast.c    |  2 +-
4369 src/liblzma/check/crc64_fast.c    |  2 +-
4370 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++--------
4371 3 files changed, 12 insertions(+), 10 deletions(-)
4372
4373commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441
4374Author: Lasse Collin <lasse.collin@tukaani.org>
4375Date:   2024-06-10 15:31:01 +0300
4376
4377    liblzma: CRC32 CLMUL: Refactor the constants and simplify
4378
4379    By using modulus scaled constants, the final reduction can
4380    be simplified.
4381
4382 src/liblzma/check/crc_x86_clmul.h | 52 +++++++--------------------------------
4383 1 file changed, 9 insertions(+), 43 deletions(-)
4384
4385commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2
4386Author: Lasse Collin <lasse.collin@tukaani.org>
4387Date:   2024-06-10 15:12:48 +0300
4388
4389    liblzma: CRC64 CLMUL: Refactor the constants
4390
4391    Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p
4392    and the p no longer has the lowest bit set (it makes no difference
4393    as the output bits it affects are ignored).
4394
4395 src/liblzma/check/crc_x86_clmul.h | 43 +++++++--------------------------------
4396 1 file changed, 7 insertions(+), 36 deletions(-)
4397
4398commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac
4399Author: Lasse Collin <lasse.collin@tukaani.org>
4400Date:   2024-06-10 14:45:44 +0300
4401
4402    liblzma: Add crc_clmul_consts_gen.c
4403
4404    It's a standalone program that prints the required constants.
4405    It's won't be a part of the normal build of the package.
4406
4407 src/liblzma/check/Makefile.inc           |   1 +
4408 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++
4409 2 files changed, 161 insertions(+)
4410
4411commit 71b147aab7fe4a60ed57b697d5bb490f099894be
4412Author: Lasse Collin <lasse.collin@tukaani.org>
4413Date:   2024-05-09 21:44:03 +0300
4414
4415    liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS
4416
4417    It was already commented out.
4418
4419 src/liblzma/check/crc32_fast.c    | 21 ---------------------
4420 src/liblzma/check/crc64_fast.c    |  5 -----
4421 src/liblzma/check/crc_common.h    | 14 --------------
4422 src/liblzma/check/crc_x86_clmul.h |  9 +--------
4423 4 files changed, 1 insertion(+), 48 deletions(-)
4424
4425commit f99a7be40645f86959a5b180dfae948dd165e07c
4426Author: Lasse Collin <lasse.collin@tukaani.org>
4427Date:   2024-05-09 21:03:39 +0300
4428
4429    liblzma: Remove crc_attr_no_sanitize_address
4430
4431    It's not enough to silence the address sanitizer. Also memory and
4432    thread sanitizers would need to be silenced. They, at least currently,
4433    aren't smart enough to see that the extra bytes are discarded from
4434    the xmm registers by later instructions.
4435
4436    Valgrind is smarter, possibly because this kind of code isn't weird
4437    to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions
4438    this idea of doing an aligned read and then discarding the extra
4439    bytes. The sanitizers don't instrument assembly code but Valgrind
4440    checks all code.
4441
4442    It's better to change the implementation to avoid the sanitization
4443    attributes which also look scary in the code. (Somehow they can look
4444    more scary than __asm__ which is implictly unsanitized.)
4445
4446    See also:
4447    https://github.com/tukaani-project/xz/issues/112
4448    https://github.com/tukaani-project/xz/issues/122
4449
4450 src/liblzma/check/crc_common.h    | 9 ---------
4451 src/liblzma/check/crc_x86_clmul.h | 3 ---
4452 2 files changed, 12 deletions(-)
4453
4454commit ead4d151996f8a18bf9b07eb1e175c0a1590e562
4455Author: Lasse Collin <lasse.collin@tukaani.org>
4456Date:   2024-06-10 15:37:49 +0300
4457
4458    Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz"
4459
4460    This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199.
4461
4462 configure.ac | 4 +---
4463 1 file changed, 1 insertion(+), 3 deletions(-)
4464
4465commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92
4466Author: Lasse Collin <lasse.collin@tukaani.org>
4467Date:   2024-06-12 14:26:44 +0300
4468
4469    CMake: Prefer C11 with a fallback to C99
4470
4471    There is no need to make a similar change in configure.ac.
4472    With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99
4473    is an alias for AC_PROG_CC which prefers a C11 compiler.
4474
4475 CMakeLists.txt | 17 +++++++++++------
4476 1 file changed, 11 insertions(+), 6 deletions(-)
4477
4478commit c97e9c12fef4d1093ee2a75236742481361f50f5
4479Author: Lasse Collin <lasse.collin@tukaani.org>
4480Date:   2024-06-12 14:20:21 +0300
4481
4482    Update THANKS
4483
4484 THANKS | 4 ++++
4485 1 file changed, 4 insertions(+)
4486
4487commit 89e9f12e03324b8a186e807b268f34f92d1b2f41
4488Author: Lasse Collin <lasse.collin@tukaani.org>
4489Date:   2024-06-11 11:15:49 +0300
4490
4491    Tests: Improve the CRC32 test
4492
4493    A similar one was already there for CRC64 but nowadays also CRC32
4494    has a CLMUL implementation, so it's good to test it better too.
4495
4496 tests/test_check.c | 17 +++++++++++++----
4497 1 file changed, 13 insertions(+), 4 deletions(-)
4498
4499commit c7164b1927e3fe7cdba70ee4687e1a590a81043b
4500Author: Lasse Collin <lasse.collin@tukaani.org>
4501Date:   2024-06-11 22:42:26 +0300
4502
4503    xz: Fix white space
4504
4505 src/xz/list.c | 6 +++---
4506 1 file changed, 3 insertions(+), 3 deletions(-)
4507
4508commit 0a32d2072c598de281058b26dc08920fbf0cd2a1
4509Author: Lasse Collin <lasse.collin@tukaani.org>
4510Date:   2024-06-11 21:59:09 +0300
4511
4512    liblzma: Fix a typo in a comment
4513
4514    Thanks to Sam James for spotting it.
4515
4516    Fixes: f644473a211394447824ea00518d0a214ff3f7f2
4517
4518 src/liblzma/check/crc_x86_clmul.h | 2 +-
4519 1 file changed, 1 insertion(+), 1 deletion(-)
4520
4521commit afd9b4d282a10186808c3331dad4caf79c02d55f
4522Author: Lasse Collin <lasse.collin@tukaani.org>
4523Date:   2024-05-10 15:52:26 +0300
4524
4525    liblzma: Fix a comment indentation
4526
4527 src/liblzma/check/crc_common.h | 6 +++---
4528 1 file changed, 3 insertions(+), 3 deletions(-)
4529
4530commit 50e6bff274568c568930e15094da8217e7d47d28
4531Author: Lasse Collin <lasse.collin@tukaani.org>
4532Date:   2024-05-09 22:09:12 +0300
4533
4534    liblzma: Fix white space
4535
4536 src/liblzma/check/crc32_table.c   | 10 +++++-----
4537 src/liblzma/check/crc_x86_clmul.h |  6 +++---
4538 src/liblzma/check/sha256.c        |  2 +-
4539 3 files changed, 9 insertions(+), 9 deletions(-)
4540
4541commit caea7844d3824755d053b4743c4913d73ac2db3d
4542Author: Lasse Collin <lasse.collin@tukaani.org>
4543Date:   2024-06-01 14:25:29 +0300
4544
4545    tuklib: __STDC_VERSION__ in C23 is 202311
4546
4547 src/common/tuklib_common.h | 4 +---
4548 1 file changed, 1 insertion(+), 3 deletions(-)
4549
4550commit 9e73918a4f14be754a23f74dda45ca431939a4a0
4551Author: RainRat <rainrat78@yahoo.ca>
4552Date:   2024-06-05 15:21:49 -0700
4553
4554    Fix typos
4555
4556    Closes: https://github.com/tukaani-project/xz/pull/124
4557
4558 INSTALL                           | 2 +-
4559 doc/examples/03_compress_custom.c | 2 +-
4560 src/common/tuklib_integer.h       | 2 +-
4561 src/liblzma/api/lzma/container.h  | 2 +-
4562 src/xz/mytime.c                   | 2 +-
4563 tests/test_filter_str.c           | 2 +-
4564 6 files changed, 6 insertions(+), 6 deletions(-)
4565
4566commit 04b23addf3733873667675df2439725f076c2f36
4567Author: Lasse Collin <lasse.collin@tukaani.org>
4568Date:   2024-06-07 15:47:20 +0300
4569
4570    tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2
4571
4572    GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h
4573    tries to use OS-specific byte swap methods instead. On OpenBSD those
4574    macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs
4575    and Darwin.
4576
4577    An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it
4578    is a macro. But since OpenBSD seems to be a special case under this
4579    special case of "*BSDs and Darwin", checking for __OpenBSD__ seems
4580    the more conservative choice now.
4581
4582    Thanks to Christian Weisgerber and Brad Smith who both submitted
4583    the same patch a few hours apart.
4584
4585    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
4586    Co-authored-by: Brad Smith <brad@comstyle.com>
4587    Closes: https://github.com/tukaani-project/xz/pull/126
4588
4589 src/common/tuklib_integer.h | 12 +++++++++---
4590 1 file changed, 9 insertions(+), 3 deletions(-)
4591
4592commit dc03f6290f5b9bd3d50c7e12e58dee870889d599
4593Author: Lasse Collin <lasse.collin@tukaani.org>
4594Date:   2024-06-07 15:06:59 +0300
4595
4596    liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD
4597
4598    The C code is from Christian Weisgerber, I merely reordered the OSes.
4599    Then I added the build system checks without testing them.
4600
4601    Also thanks to Brad Smith who submitted a similar patch on GitHub
4602    a few hours after Christian had sent his via email.
4603
4604    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
4605    Closes: https://github.com/tukaani-project/xz/pull/125
4606
4607 CMakeLists.txt                  |  6 ++++++
4608 configure.ac                    |  9 +++++++++
4609 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++
4610 src/liblzma/check/crc_common.h  |  1 +
4611 4 files changed, 31 insertions(+)
4612
4613commit f5c2ae58ec68c665e62c790b842657afcb31474c
4614Author: Lasse Collin <lasse.collin@tukaani.org>
4615Date:   2024-06-05 13:55:43 +0300
4616
4617    Update THANKS
4618
4619 THANKS | 2 ++
4620 1 file changed, 2 insertions(+)
4621
4622commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418
4623Author: Lasse Collin <lasse.collin@tukaani.org>
4624Date:   2024-06-05 13:42:47 +0300
4625
4626    CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION
4627
4628    This way the version string gets into xzgrep and other scripts
4629    in full and also into liblzma.pc.
4630
4631    For the project() command, a suffixless string is required though.
4632
4633 CMakeLists.txt | 16 +++++++++++++---
4634 1 file changed, 13 insertions(+), 3 deletions(-)
4635
4636commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0
4637Author: Lasse Collin <lasse.collin@tukaani.org>
4638Date:   2024-06-05 13:30:28 +0300
4639
4640    CMake: Fix wrong version variable
4641
4642    liblzma_VERSION has never existed in the repository. xz_VERSION from
4643    the project() command was used for liblzma SOVERSION so use xz_VERSION
4644    here too.
4645
4646    The wrong variable did no harm in practice as PROJECT_VERSION
4647    was used as the fallback. It has the same value as xz_VERSION.
4648
4649    Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6
4650
4651 CMakeLists.txt | 2 +-
4652 1 file changed, 1 insertion(+), 1 deletion(-)
4653
4654commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69
4655Author: Lasse Collin <lasse.collin@tukaani.org>
4656Date:   2024-06-05 12:59:59 +0300
4657
4658    CMake: Set only "prefix" as an absolute path in liblzma.pc
4659
4660    CMake provides variables that are relative to CMAKE_INSTALL_PREFIX
4661    so use them instead of repeating the full path.
4662
4663 CMakeLists.txt | 6 +++---
4664 1 file changed, 3 insertions(+), 3 deletions(-)
4665
4666commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7
4667Author: Lasse Collin <lasse.collin@tukaani.org>
4668Date:   2024-06-04 23:59:29 +0300
4669
4670    CMake: Fix liblzma filename in Windows environments
4671
4672    This is a mess because liblzma DLL outside Cygwin and MSYS2
4673    is liblzma.dll instead of lzma.dll to avoid a conflict with
4674    lzma.dll from LZMA SDK.
4675
4676    On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll"
4677    would have been correct (and match what Libtool produces).
4678    MSYS2 likely was broken too as it uses the "msys-" prefix.
4679
4680    This change has no effect with MinGW-w64 because with that
4681    the "lib" prefix was correct already.
4682
4683    With MSVC builds this is a small breaking change that requires developers
4684    to adjust the library name when linking against liblzma. The liblzma.dll
4685    name is kept as is but the import library and static library are now
4686    lzma.lib instead of liblzma.lib. This is helpful when using pkgconf
4687    because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib"
4688    (it's converted from "-llzma" in liblzma.pc). It would be easy to
4689    keep the liblzma.lib naming but the pkgconf compatibility seems worth
4690    it in the long run. The lzma.lib name is compatible with MinGW-w64
4691    too as -llzma will find also lzma.lib.
4692
4693    vcpkg had been patching CMakeLists.txt this way since 2022 but I
4694    learned this only recently. The reasoning for the patch makes sense,
4695    and while this is a small breaking change with MSVC, it seems like
4696    a decent compromise as it keeps the DLL name the same.
4697
4698    2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch
4699    See the discussion: https://github.com/microsoft/vcpkg/pull/39024
4700
4701    Thanks to Vincent Torri for confirming the naming issue on Cygwin.
4702
4703 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++----
4704 1 file changed, 30 insertions(+), 4 deletions(-)
4705
4706commit e7a42cda7c827e016619e8cab15e2faf5d4181ae
4707Author: Lasse Collin <lasse.collin@tukaani.org>
4708Date:   2024-06-03 16:55:03 +0300
4709
4710    Fix version.sh compatiblity with Solaris
4711
4712    The ancient /bin/tr on Solaris doesn't support '\n'.
4713    With /usr/xpg4/bin/tr it works but it might not be in PATH.
4714
4715    Another problem was that sed was given input that didn't have a newline
4716    at the end. Text files must end with a newline to be portable.
4717
4718    Fix both problems:
4719
4720      - Handle multiline input within sed itself to avoid one tr invocation.
4721        The default sed even on Solaris does understand \n.
4722
4723      - Use octals in tr -d. \012 works for ASCII "line feed", it's even
4724        used as an example in the Solaris man page. But we must strip
4725        also ASCII "carriage return" \015 and EBCDIC "next line" \025.
4726        The EBCDIC case got handled with \n previously. Stripping \012
4727        and \015 on EBCDIC system won't matter as those control chars
4728        won't be present in the string in the first place.
4729
4730    An awk-based solution could be an alternative but it might need
4731    special casing on Solaris to used nawk instead of awk. The changes
4732    in this commit are smaller and should have a smaller risk for
4733    regressions. It's also possible that version.sh will be dropped
4734    entirely at some point.
4735
4736 build-aux/version.sh | 5 ++---
4737 1 file changed, 2 insertions(+), 3 deletions(-)
4738
4739commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9
4740Author: Lasse Collin <lasse.collin@tukaani.org>
4741Date:   2024-06-03 17:07:11 +0300
4742
4743    CI: Don't require po4a on Solaris
4744
4745 .github/workflows/solaris.yml | 2 +-
4746 1 file changed, 1 insertion(+), 1 deletion(-)
4747
4748commit 5229bdf5335ce18ed54beb7e646e39927663be86
4749Author: Lasse Collin <lasse.collin@tukaani.org>
4750Date:   2024-06-03 15:08:15 +0300
4751
4752    CI: Use set -e on Solaris too
4753
4754 .github/workflows/solaris.yml | 1 +
4755 1 file changed, 1 insertion(+)
4756
4757commit afa938e429c1ce07d26d02999352fb014b62ff3d
4758Author: Lasse Collin <lasse.collin@tukaani.org>
4759Date:   2024-06-03 17:44:50 +0300
4760
4761    CMake: Install liblzma.pc even with MSVC
4762
4763    I had misunderstood that it wouldn't be useful with MSVC.
4764    vcpkg had been installing liblzma.pc with custom rules since 2020,
4765    years before liblzma.pc support was added to CMakeLists.txt.
4766
4767    See:
4768    https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake
4769    https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670
4770
4771 CMakeLists.txt | 8 +++-----
4772 1 file changed, 3 insertions(+), 5 deletions(-)
4773
4774commit 35f8649f08341639a627fd06350e938124ca3622
4775Author: Sam James <sam@gentoo.org>
4776Date:   2024-06-03 06:16:23 +0100
4777
4778    ci: don't pin official GH actions via commit, just tag
4779
4780    There's no real value in doing it via commit for official GH actions. We
4781    can keep using pinned commits for unofficial actions. It's hassle for no
4782    gain.
4783
4784    Maybe going forward we can limit this further by only being paranoid
4785    for the jobs with any access to tokens.
4786
4787 .github/workflows/ci.yml         | 4 ++--
4788 .github/workflows/freebsd.yml    | 2 +-
4789 .github/workflows/netbsd.yml     | 2 +-
4790 .github/workflows/openbsd.yml    | 2 +-
4791 .github/workflows/solaris.yml    | 2 +-
4792 .github/workflows/windows-ci.yml | 4 ++--
4793 6 files changed, 8 insertions(+), 8 deletions(-)
4794
4795commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2
4796Author: Christoph Junghans <christoph.junghans@gmail.com>
4797Date:   2024-04-30 07:49:26 -0600
4798
4799    ci: set -e on openbsd
4800
4801    Closes: https://github.com/tukaani-project/xz/pull/116
4802
4803 .github/workflows/openbsd.yml | 1 +
4804 1 file changed, 1 insertion(+)
4805
4806commit 21b02dd128cf9e8c76325ec124f70381862dcf19
4807Author: Christoph Junghans <christoph.junghans@gmail.com>
4808Date:   2024-04-30 07:48:58 -0600
4809
4810    ci: set -e on netbsd
4811
4812 .github/workflows/netbsd.yml | 1 +
4813 1 file changed, 1 insertion(+)
4814
4815commit 8641f0c24c041136670c975b23408184b45431bc
4816Author: Christoph Junghans <christoph.junghans@gmail.com>
4817Date:   2024-04-25 14:56:06 -0700
4818
4819    ci: actually fail on FreeBSD
4820
4821    Without "set -e" the job will always be successful.
4822
4823    See vmactions/freebsd-vm#72
4824
4825 .github/workflows/freebsd.yml | 1 +
4826 1 file changed, 1 insertion(+)
4827
4828commit ef616683ef11f11ffdfbe0624da33905e28a70f9
4829Author: Andrew Murray <radarhere@users.noreply.github.com>
4830Date:   2024-04-25 09:24:46 +1000
4831
4832    Updated actions
4833
4834    Closes: https://github.com/tukaani-project/xz/pull/115
4835
4836 .github/workflows/ci.yml         | 4 ++--
4837 .github/workflows/windows-ci.yml | 6 +++---
4838 2 files changed, 5 insertions(+), 5 deletions(-)
4839
4840commit 57b440d316da9ac9cb312ee7e6890f5382556f10
4841Author: Sam James <sam@gentoo.org>
4842Date:   2024-06-03 02:49:40 +0100
4843
4844    ci: add po4a
4845
4846 .github/workflows/netbsd.yml  | 2 +-
4847 .github/workflows/openbsd.yml | 3 ++-
4848 2 files changed, 3 insertions(+), 2 deletions(-)
4849
4850commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95
4851Author: Sam James <sam@gentoo.org>
4852Date:   2024-04-13 21:02:04 +0100
4853
4854    ci: add Solaris
4855
4856    Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94.
4857
4858    It runs on Solaris 5.11 via a VirtualBox VM.
4859
4860 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++
4861 1 file changed, 31 insertions(+)
4862
4863commit b69768c8bd1a34fde311935c551d061ba52d9a3f
4864Author: Sam James <sam@gentoo.org>
4865Date:   2024-04-14 08:08:00 +0100
4866
4867    xz: list: suppress -Wformat-nonliteral for Solaris
4868
4869    Solaris' GCC can't understand that our use is fine, unlike modern compilers:
4870    ```
4871    list.c: In function 'print_totals_basic':
4872    list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
4873      uint64_to_str(totals.files, 0));
4874      ^~~~~~~~~~~~~
4875    cc1: all warnings being treated as errors
4876    ```
4877
4878    It's presumably because of older gettext missing format attributes.
4879
4880    This is with `gcc (GCC) 7.3.0`.
4881
4882 src/xz/list.c | 7 +++++++
4883 1 file changed, 7 insertions(+)
4884
4885commit bb90e1f66d9beb490c4c99763e79519045968710
4886Author: Lasse Collin <lasse.collin@tukaani.org>
4887Date:   2024-06-03 11:44:28 +0300
4888
4889    license-check.sh: Fix reporting of unclear license info
4890
4891    The main feature was broken because an old variable name hadn't
4892    been updated to match the rest of the script.
4893
4894 build-aux/license-check.sh | 4 ++--
4895 1 file changed, 2 insertions(+), 2 deletions(-)
4896
4897commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2
4898Author: Lasse Collin <lasse.collin@tukaani.org>
4899Date:   2024-05-31 21:36:26 +0300
4900
4901    Update THANKS
4902
4903 THANKS | 3 +++
4904 1 file changed, 3 insertions(+)
4905
4906commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de
4907Author: Lasse Collin <lasse.collin@tukaani.org>
4908Date:   2024-05-29 17:47:13 +0300
4909
4910    Translations: Run po4a/update-po
4911
4912    Now the files are in the new formatting without source file
4913    line numbers. Future updates should keep the diffs much smaller.
4914
4915 po4a/de.po    | 1592 ++++++++++---------
4916 po4a/fr.po    | 4450 +++++++++++++++++-----------------------------------
4917 po4a/ko.po    | 1592 ++++++++++---------
4918 po4a/pt_BR.po | 4817 ++++++++++++++++++---------------------------------------
4919 po4a/ro.po    | 1592 ++++++++++---------
4920 po4a/uk.po    | 1592 ++++++++++---------
4921 6 files changed, 6114 insertions(+), 9521 deletions(-)
4922
4923commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe
4924Author: Lasse Collin <lasse.collin@tukaani.org>
4925Date:   2024-05-29 17:44:53 +0300
4926
4927    Translations: Run "make -C po update-po"
4928
4929    In the past this wasn't done before releases; the Git repository
4930    just contained the files from the Translation Project. But this
4931    way it is clearer when comparing release tarballs against the
4932    Git repository. In future releases this might no longer be necessary
4933    within a stable branch as the .po files won't change so easily anymore
4934    when creating a tarball.
4935
4936 po/ca.po    | 567 +++++++++++++++++++++++++---------------
4937 po/cs.po    | 821 +++++++++++++++++++++++++++++++++++++--------------------
4938 po/da.po    | 809 +++++++++++++++++++++++++++++++++++---------------------
4939 po/de.po    | 403 ++++++++++++++--------------
4940 po/eo.po    | 403 ++++++++++++++--------------
4941 po/es.po    | 403 ++++++++++++++--------------
4942 po/fi.po    | 578 +++++++++++++++++++++++++---------------
4943 po/fr.po    | 538 +++++++++++++++++++++++---------------
4944 po/hr.po    | 403 ++++++++++++++--------------
4945 po/hu.po    | 403 ++++++++++++++--------------
4946 po/it.po    | 854 +++++++++++++++++++++++++++++++++++++++---------------------
4947 po/ko.po    | 403 ++++++++++++++--------------
4948 po/pl.po    | 403 ++++++++++++++--------------
4949 po/pt.po    | 842 +++++++++++++++++++++++++++++++++++++++--------------------
4950 po/pt_BR.po | 567 +++++++++++++++++++++++++---------------
4951 po/ro.po    | 403 ++++++++++++++--------------
4952 po/sr.po    | 838 ++++++++++++++++++++++++++++++++++++++--------------------
4953 po/sv.po    | 403 ++++++++++++++--------------
4954 po/tr.po    | 567 +++++++++++++++++++++++++---------------
4955 po/uk.po    | 403 ++++++++++++++--------------
4956 po/vi.po    | 403 ++++++++++++++--------------
4957 po/zh_CN.po | 417 +++++++++++++++--------------
4958 po/zh_TW.po | 558 ++++++++++++++++++++++++---------------
4959 23 files changed, 7257 insertions(+), 5132 deletions(-)
4960
4961commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6
4962Author: Lasse Collin <lasse.collin@tukaani.org>
4963Date:   2024-05-29 18:03:04 +0300
4964
4965    Add NEWS for 5.6.2
4966
4967 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4968 1 file changed, 130 insertions(+)
4969
4970commit a0eeb5f9369c43508610dcf00140edb8e2be92a6
4971Author: Lasse Collin <lasse.collin@tukaani.org>
4972Date:   2024-05-29 18:03:04 +0300
4973
4974    Add NEWS for 5.4.7
4975
4976 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4977 1 file changed, 89 insertions(+)
4978
4979commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162
4980Author: Lasse Collin <lasse.collin@tukaani.org>
4981Date:   2024-05-29 18:03:04 +0300
4982
4983    Add NEWS for 5.2.13
4984
4985 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4986 1 file changed, 115 insertions(+)
4987
4988commit 9284f1aea31f0eb23e2ea72f7218b271e2234762
4989Author: Lasse Collin <lasse.collin@tukaani.org>
4990Date:   2024-05-29 16:33:24 +0300
4991
4992    Build: Update po/*.po files only when needed
4993
4994    When po/xz.pot doesn't exist, running "make" or "make dist" will
4995    create it. Then the .po files will be updated but only if they
4996    actually would change more than the POT-Creation-Date line.
4997    Then the .gmo files would be generated from the .po files.
4998    This is the case before and after this commit.
4999
5000    However, "make dist" and thus "make mydist" did a forced update
5001    to the files, updating them even if the only change was the
5002    POT-Creation-Date line. This had pros and cons: It made it clear
5003    that the .po file really is in sync with the recent strings in
5004    the package. On the other hand, it added noise in form of changed
5005    files in the source tree and distribution tarballs. It can be
5006    ignored with something like "diff -I'^"POT-Creation-Date: '" but
5007    it's still a minor annoyance *if* there's not enough value in
5008    having the most recent timestamp.
5009
5010    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
5011    update won't happen in "make dist" anymore. However, the "mydist"
5012    target will use xz.pot-update target which is the same target that
5013    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
5014    ensure that the translations are up to date, without noise from
5015    changes that would affect only the POT-Creation-Date line.
5016
5017    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
5018    in the man page translations is never the only change in .po files.
5019    In that sense this commit makes the message translations behave more
5020    similarly to the man page translations.
5021
5022    Distribution tarballs will still have non-reproducible POT-Creation-Date
5023    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
5024    could be made reproducible from a Git timestamp if desired.
5025
5026 Makefile.am | 3 ++-
5027 po/Makevars | 6 +++++-
5028 2 files changed, 7 insertions(+), 2 deletions(-)
5029
5030commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599
5031Author: Lasse Collin <lasse.collin@tukaani.org>
5032Date:   2024-05-28 21:10:33 +0300
5033
5034    po4a/update-po: Disable wrapping in .pot and .po files
5035
5036    The .po files from the Translation Project come with unwrapped
5037    strings so this matches it.
5038
5039    This may reduce the noise in diffs too. When the beginning of
5040    a paragraph had changed, the rest of the lines got rewrapped
5041    in msgsid. Now it's just one very long line that changes when
5042    a paragraph has been edited.
5043
5044    The --add-location=file option was removed as redundant. The line
5045    numbers don't exist in the .pot file due to --porefs file and thus
5046    they cannot get copied to the .po files either.
5047
5048 po4a/update-po | 15 +++++++++++----
5049 1 file changed, 11 insertions(+), 4 deletions(-)
5050
5051commit b14c130a58a649f9a73392eeb122cb252327c569
5052Author: Lasse Collin <lasse.collin@tukaani.org>
5053Date:   2024-05-28 18:36:53 +0300
5054
5055    Update contact info in README
5056
5057 README | 12 +++++++++---
5058 1 file changed, 9 insertions(+), 3 deletions(-)
5059
5060commit 75f5f2e014b0ee646963f36bc6a9c840fb272353
5061Author: Lasse Collin <lasse.collin@tukaani.org>
5062Date:   2024-05-28 13:25:07 +0300
5063
5064    Translations: Use --package-name=xz-man with po4a
5065
5066    This is to match reality. See the added comment.
5067
5068 po4a/update-po | 9 ++++++++-
5069 1 file changed, 8 insertions(+), 1 deletion(-)
5070
5071commit eb217d016cfbbba1babc19a61095b3ea25898af6
5072Author: Lasse Collin <lasse.collin@tukaani.org>
5073Date:   2024-05-28 13:03:40 +0300
5074
5075    Translations: Omit --package-name from po/Makevars
5076
5077    This is closer to the reality in the po/*.po files.
5078
5079 po/Makevars | 3 +--
5080 1 file changed, 1 insertion(+), 2 deletions(-)
5081
5082commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06
5083Author: Lasse Collin <lasse.collin@tukaani.org>
5084Date:   2024-05-27 17:45:51 +0300
5085
5086    license-check.sh: Use '--' with slightly untrusted filenames
5087
5088    Names from git ls-files should be safe but if one runs it on
5089    a tree without the .git dir and there are extra files, it's
5090    safer to have the end of arguments marked with '--'.
5091
5092 build-aux/license-check.sh | 6 +++---
5093 1 file changed, 3 insertions(+), 3 deletions(-)
5094
5095commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5
5096Author: Lasse Collin <lasse.collin@tukaani.org>
5097Date:   2024-05-27 17:41:37 +0300
5098
5099    license-check.sh: Use xargs -0 instead of -d
5100
5101    Neither are in POSIX but -0 is much more portable in practice.
5102
5103    Despite the old comment, the grep usage should be portable already.
5104
5105 build-aux/license-check.sh | 11 ++++++-----
5106 1 file changed, 6 insertions(+), 5 deletions(-)
5107
5108commit 9114267038deaecf4832a5cacb5acbe6591ac839
5109Author: Lasse Collin <lasse.collin@tukaani.org>
5110Date:   2024-05-28 01:17:45 +0300
5111
5112    Translations: Omit man page line numbers from .pot and .po files
5113
5114 po4a/update-po | 5 +++++
5115 1 file changed, 5 insertions(+)
5116
5117commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6
5118Author: Lasse Collin <lasse.collin@tukaani.org>
5119Date:   2024-05-28 01:06:30 +0300
5120
5121    Translations: Use the xgettext option --add-location=file
5122
5123 po/Makevars | 3 ++-
5124 1 file changed, 2 insertions(+), 1 deletion(-)
5125
5126commit fccebe2b4fd513488fc920e4dac32562ed3c7637
5127Author: Lasse Collin <lasse.collin@tukaani.org>
5128Date:   2024-05-28 00:43:53 +0300
5129
5130    Translations: Use the msgmerge option --add-location=file
5131
5132    This way the PO file diffs are less noisy but the locations of the
5133    strings are still present at file level, just without line numbers.
5134
5135    The option is available since gettext 0.19 (2014).
5136    configure.ac requires 0.19.6.
5137
5138 po/Makevars | 2 +-
5139 1 file changed, 1 insertion(+), 1 deletion(-)
5140
5141commit f361d9ae85707a87eb28db400eb7229cec103d58
5142Author: Lasse Collin <lasse.collin@tukaani.org>
5143Date:   2024-05-27 12:22:08 +0300
5144
5145    Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
5146
5147 Makefile.am | 14 +++++++-------
5148 1 file changed, 7 insertions(+), 7 deletions(-)
5149
5150commit a26dece34793a09aac2476f954d162d03e9cf62b
5151Author: Lasse Collin <lasse.collin@tukaani.org>
5152Date:   2024-05-23 17:25:13 +0300
5153
5154    Translations: Change the home page URLs in man page translations
5155
5156    Since the source strings have changed, these would get marked as
5157    fuzzy and the original string would be used instead. The original
5158    and translated strings are identical in this case so it wouldn't
5159    matter. But patching the translations helps still because then
5160    po4a will show the correct translation percentage.
5161
5162 po4a/de.po    | 8 ++++----
5163 po4a/fr.po    | 4 ++--
5164 po4a/ko.po    | 4 ++--
5165 po4a/pt_BR.po | 4 ++--
5166 po4a/ro.po    | 8 ++++----
5167 po4a/uk.po    | 8 ++++----
5168 6 files changed, 18 insertions(+), 18 deletions(-)
5169
5170commit 24387c234b4eed1ef9a7eaa107391740b4095568
5171Author: Lasse Collin <lasse.collin@tukaani.org>
5172Date:   2024-05-23 15:15:18 +0300
5173
5174    CMake: Add manual support for 32-bit x86 assembly files
5175
5176    One has to pass -DENABLE_X86_ASM=ON to cmake to enable the
5177    CRC assembly code. Autodetection isn't done. Looking at
5178    CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname
5179    unless cross-compilation is done using a CMake toolchain file.
5180
5181    On top of this, if the code is run on modern processors that support
5182    the CLMUL instruction, then the C code should be faster (but then
5183    one should also be using a x86-64 build if possible).
5184
5185 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++---
5186 1 file changed, 31 insertions(+), 3 deletions(-)
5187
5188commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d
5189Author: Lasse Collin <lasse.collin@tukaani.org>
5190Date:   2024-05-23 14:26:45 +0300
5191
5192    CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN
5193
5194    It's more consistent with the other option() uses.
5195
5196 CMakeLists.txt | 4 ++--
5197 1 file changed, 2 insertions(+), 2 deletions(-)
5198
5199commit 6bbec3bda02bf87d24fa095074456e723589921f
5200Author: Lasse Collin <lasse.collin@tukaani.org>
5201Date:   2024-05-22 15:21:53 +0300
5202
5203    Mention license-check.sh in COPYING
5204
5205 COPYING | 6 ++++++
5206 1 file changed, 6 insertions(+)
5207
5208commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a
5209Author: Lasse Collin <lasse.collin@tukaani.org>
5210Date:   2024-05-22 15:21:53 +0300
5211
5212    Use more confident language in COPYING
5213
5214 COPYING | 8 ++++----
5215 1 file changed, 4 insertions(+), 4 deletions(-)
5216
5217commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff
5218Author: Lasse Collin <lasse.collin@tukaani.org>
5219Date:   2024-05-22 15:21:53 +0300
5220
5221    Build: Run license-check.sh in "mydist" and "dist-hook"
5222
5223    In mydist the point is to check using the file list from the Git
5224    repository. In dist-hook it is to check that the TARBALL_IGNORE
5225    patterns work when the .git dir or the "git" command aren't available.
5226
5227    Refuse to create a distribution tarball if license issues are found.
5228
5229 Makefile.am | 2 ++
5230 1 file changed, 2 insertions(+)
5231
5232commit f3434ecfcb45154508752986f4fc670b8f0555dc
5233Author: Lasse Collin <lasse.collin@tukaani.org>
5234Date:   2024-05-22 15:21:53 +0300
5235
5236    Add build-aux/license-check.sh
5237
5238    This helps in spotting files that lack SPDX license identifier
5239    and which haven't been explicitly white listed either. The script
5240    requires the .git directory to be present as only the files that
5241    are in the Git repository are checked.
5242
5243    XZ Utils isn't FSFE REUSE compliant for now.
5244
5245 Makefile.am                |   1 +
5246 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++
5247 2 files changed, 175 insertions(+)
5248
5249commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde
5250Author: Lasse Collin <lasse.collin@tukaani.org>
5251Date:   2024-04-29 17:16:38 +0300
5252
5253    Add SPDX license identifiers to files under tests/ossfuzz
5254
5255 tests/ossfuzz/Makefile                          | 2 ++
5256 tests/ossfuzz/config/fuzz_decode_alone.options  | 2 ++
5257 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++
5258 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++
5259 tests/ossfuzz/config/fuzz_lzma.dict             | 2 ++
5260 tests/ossfuzz/config/fuzz_xz.dict               | 2 ++
5261 6 files changed, 12 insertions(+)
5262
5263commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05
5264Author: Lasse Collin <lasse.collin@tukaani.org>
5265Date:   2024-04-29 17:16:06 +0300
5266
5267    Add SPDX license identifier to .codespellrc
5268
5269 .codespellrc | 2 ++
5270 1 file changed, 2 insertions(+)
5271
5272commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76
5273Author: Lasse Collin <lasse.collin@tukaani.org>
5274Date:   2024-05-22 15:12:09 +0300
5275
5276    Move entries po4a/.gitignore to the top level .gitignore
5277
5278    The po4a directory is in EXTRA_DIST and thus all files there
5279    are included in the package. .gitignore doesn't belong in the
5280    package so keep that file out of the po4a directory.
5281
5282 .gitignore      | 4 ++++
5283 po4a/.gitignore | 3 ---
5284 2 files changed, 4 insertions(+), 3 deletions(-)
5285
5286commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125
5287Author: Lasse Collin <lasse.collin@tukaani.org>
5288Date:   2024-05-20 16:55:00 +0300
5289
5290    Tests: Make the config.h grep patterns Meson compatible
5291
5292    Now the test scripts detect both
5293
5294        #define HAVE_DECODER_ARM
5295        #define HAVE_DECODER_ARM 1
5296
5297    as support for the ARM filter without confusing it with these:
5298
5299        #define HAVE_DECODER_ARM64
5300        #define HAVE_DECODER_ARM64 1
5301
5302    Previously only the ones ending with " 1" were accepted for
5303    the macros where this kind of confusion was possible.
5304
5305    This should help with Meson support because Meson's built-in
5306    features produce config.h entries that are either
5307
5308        #define FOO 1
5309        #define FOO 0
5310
5311    or:
5312
5313        #define FOO
5314        #undef FOO
5315
5316    The former method has a benefit that one can use "#if FOO" and -Wundef
5317    will catch if a #define is missing (for example, it helps catching
5318    typos). But XZ Utils has to use the latter since it has been
5319    convenient with Autoconf's default behavior.[*] While it's easy to
5320    emulate the Autoconf style (#define FOO 1 vs. no #define at all)
5321    in Meson, it results in clumsy code. Thus it's better to change
5322    the few places in the tests where this difference matters.
5323
5324    [*] While most checks in Autoconf default to the second style above,
5325        a few things use the first style (like AC_CHECK_DECLS). The mix
5326        of both styles is the most confusing as one has to remember which
5327        macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is
5328        only such config.h entry that is 1 or 0. It comes unmodified
5329        from Gnulib's visibility.m4.
5330
5331 tests/test_compress.sh | 4 ++--
5332 tests/test_files.sh    | 2 +-
5333 2 files changed, 3 insertions(+), 3 deletions(-)
5334
5335commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa
5336Author: Lasse Collin <lasse.collin@tukaani.org>
5337Date:   2024-05-20 16:55:00 +0300
5338
5339    CMake: Add comments
5340
5341 tests/tests.cmake | 2 ++
5342 1 file changed, 2 insertions(+)
5343
5344commit d35368b33e54bad2f566df99fac29ffea38e34de
5345Author: Lasse Collin <lasse.collin@tukaani.org>
5346Date:   2024-05-20 16:55:00 +0300
5347
5348    CMake: Remove the note that some tests aren't run
5349
5350    They are now in the common build configurations.
5351
5352 CMakeLists.txt | 2 --
5353 1 file changed, 2 deletions(-)
5354
5355commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba
5356Author: Lasse Collin <lasse.collin@tukaani.org>
5357Date:   2024-05-20 16:55:00 +0300
5358
5359    CMake: Add support for test_files.sh
5360
5361 tests/tests.cmake | 20 ++++++++++++++++++++
5362 1 file changed, 20 insertions(+)
5363
5364commit a7e9230af9d1f87f474fe38886eb977d4149dc9b
5365Author: Lasse Collin <lasse.collin@tukaani.org>
5366Date:   2024-05-20 16:55:00 +0300
5367
5368    Tests: Make test_files.sh more flexible
5369
5370    Add a new optional argument to specify the directory of the xz and
5371    xzdec executables.
5372
5373    If ../config.h doesn't exist, assume that all encoders and decoders
5374    are available.
5375
5376 tests/test_files.sh | 18 +++++++++++++-----
5377 1 file changed, 13 insertions(+), 5 deletions(-)
5378
5379commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8
5380Author: Lasse Collin <lasse.collin@tukaani.org>
5381Date:   2024-05-20 16:55:00 +0300
5382
5383    CMake: Add support for test_compress.sh tests
5384
5385 tests/tests.cmake | 26 ++++++++++++++++++++++++++
5386 1 file changed, 26 insertions(+)
5387
5388commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2
5389Author: Lasse Collin <lasse.collin@tukaani.org>
5390Date:   2024-05-20 16:55:00 +0300
5391
5392    Tests: Make test_compress.sh more flexible
5393
5394    Add a new optional second argument: directory of the xz and xzdec
5395    executables. This is need with the CMake build where the binaries
5396    end up in the top-level build directory.
5397
5398    If ../config.h doesn't exist, assume that all encoders and decoders
5399    are available. This will make this script usable from CMake in the
5400    most common build configuration.
5401
5402    NOTE: Since the existence of ../config.h is checked, the working
5403    directory of the test script must be a subdir in the build tree!
5404    Otherwise ../config.h would look outside the build tree.
5405
5406    Use the default check type instead of forcing CRC32 or CRC64.
5407    Now the script doesn't need to check if CRC64 is available.
5408
5409 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------
5410 1 file changed, 29 insertions(+), 12 deletions(-)
5411
5412commit 006040b29c83104403621e950ada0c8956c56b3d
5413Author: Lasse Collin <lasse.collin@tukaani.org>
5414Date:   2024-05-20 16:55:00 +0300
5415
5416    CMake: Prepare to support the test_*.sh tests
5417
5418    This is a bit hacky since the scripts grep config.h to know which
5419    features were built but the CMake build doesn't create config.h.
5420    So instead those test scripts will be run only when all relevant
5421    features have been enabled.
5422
5423 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
5424 1 file changed, 49 insertions(+)
5425
5426commit 6167607a6ea72fb74eefb943c4566e3cab528cd2
5427Author: Lasse Collin <lasse.collin@tukaani.org>
5428Date:   2024-05-20 16:55:00 +0300
5429
5430    Tests: test_suffix.sh: Add a comment
5431
5432 tests/test_suffix.sh | 3 +++
5433 1 file changed, 3 insertions(+)
5434
5435commit 4e9023857d287f624562156b60dc23d2b64c0f10
5436Author: Lasse Collin <lasse.collin@tukaani.org>
5437Date:   2024-05-18 00:34:07 +0300
5438
5439    Fix typos
5440
5441    Thanks to xx on #tukaani.
5442
5443 src/common/mythread.h                      | 2 +-
5444 src/common/tuklib_integer.h                | 2 +-
5445 src/liblzma/api/lzma/base.h                | 2 +-
5446 src/liblzma/common/filter_buffer_decoder.c | 2 +-
5447 src/liblzma/common/filter_common.c         | 2 +-
5448 src/scripts/xzgrep.in                      | 2 +-
5449 6 files changed, 6 insertions(+), 6 deletions(-)
5450
5451commit b14d08fbbc254485ace9ccfe7908674f608a62ae
5452Author: Lasse Collin <lasse.collin@tukaani.org>
5453Date:   2024-05-18 00:23:52 +0300
5454
5455    liblzma: Fix white space
5456
5457    Thanks to xx on #tukaani.
5458
5459 src/liblzma/simple/simple_coder.h | 8 ++++----
5460 1 file changed, 4 insertions(+), 4 deletions(-)
5461
5462commit 9f1a6d6f9a258886933a22239a5b81af34b28199
5463Author: Lasse Collin <lasse.collin@tukaani.org>
5464Date:   2024-05-15 23:14:17 +0300
5465
5466    Build: Temporarily disable CRC CLMUL to silence OSS Fuzz
5467
5468    The code makes aligned 16-byte reads which may read up to 15 bytes
5469    before the beginning or past the end of the buffer if the buffer
5470    is misaligned. The unneeded bytes are then ignored. It cannot cross
5471    page boundaries and thus cannot cause access violations.
5472
5473    This inherently trips address sanitizer which was already disabled
5474    with __attribute__((__no_sanitize_address__)). However, it also
5475    trips memory sanitizer if the extra bytes are uninitialized because
5476    memory sanitizer doesn't see that those bytes then get ignored by
5477    byte shuffling in the xmm registers.
5478
5479    The plan is to change the code so that all sanitizers pass but it's
5480    not finished yet (performance shouldn't get worse) so as a temporary
5481    measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even
5482    though I think think the code is fine to use (and easy enough to review
5483    the memory accesses in it too).
5484
5485 configure.ac | 4 +++-
5486 1 file changed, 3 insertions(+), 1 deletion(-)
5487
5488commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88
5489Author: Lasse Collin <lasse.collin@tukaani.org>
5490Date:   2024-05-13 17:15:04 +0300
5491
5492    xz: Document the static function get_chains_memusage()
5493
5494 src/xz/coder.c | 14 ++++++++++++--
5495 1 file changed, 12 insertions(+), 2 deletions(-)
5496
5497commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca
5498Author: Lasse Collin <lasse.collin@tukaani.org>
5499Date:   2024-05-13 17:07:22 +0300
5500
5501    xz: Rename filters_memusage_max() to get_chains_memusage()
5502
5503 src/xz/coder.c | 14 ++++++--------
5504 1 file changed, 6 insertions(+), 8 deletions(-)
5505
5506commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7
5507Author: Lasse Collin <lasse.collin@tukaani.org>
5508Date:   2024-05-13 17:04:05 +0300
5509
5510    xz: Rename filter_memusages to chains_memusages
5511
5512 src/xz/coder.c | 6 +++---
5513 1 file changed, 3 insertions(+), 3 deletions(-)
5514
5515commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417
5516Author: Lasse Collin <lasse.collin@tukaani.org>
5517Date:   2024-05-12 22:26:30 +0300
5518
5519    xz: Simplify the memory usage scaling code
5520
5521    This is closer to what it was before the --filtersX support was added,
5522    just extended to support for scaling all filter chains. The method
5523    before this commit was an extended version of the original too but
5524    it was done in a more complex way for no clear reason. In case of
5525    an error, the complex version printed fewer informative messages
5526    (a good thing) but it's not a sigificant benefit.
5527
5528    In the limit is too low even for single-threaded mode, the required
5529    amount of memory is now reported like in 5.4.x instead of like in
5530    5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It
5531    had been a FIXME in the old code but it's not clear what message
5532    makes the most sense.
5533
5534    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5535
5536 src/xz/coder.c | 163 ++++++++++++++++++++-------------------------------------
5537 1 file changed, 57 insertions(+), 106 deletions(-)
5538
5539commit 0ee56983d198b776878432703de664049b1be32e
5540Author: Lasse Collin <lasse.collin@tukaani.org>
5541Date:   2024-05-13 12:14:00 +0300
5542
5543    xz: Edit comments
5544
5545 src/xz/coder.h | 6 ++----
5546 1 file changed, 2 insertions(+), 4 deletions(-)
5547
5548commit ec82a49c3553f7206104582dbfb8b64fa433b491
5549Author: Lasse Collin <lasse.collin@tukaani.org>
5550Date:   2024-05-13 12:03:51 +0300
5551
5552    xz: Rename chain_idx to chain_num
5553
5554 src/xz/coder.c | 6 +++---
5555 1 file changed, 3 insertions(+), 3 deletions(-)
5556
5557commit a731a6993c34bbbd55abaf9c166718682b1da24f
5558Author: Lasse Collin <lasse.collin@tukaani.org>
5559Date:   2024-05-12 22:29:11 +0300
5560
5561    xz: Edit coding style
5562
5563 src/xz/coder.c | 2 +-
5564 1 file changed, 1 insertion(+), 1 deletion(-)
5565
5566commit 32eb176b89243fce3112347fe43a8ad14a9fd2be
5567Author: Lasse Collin <lasse.collin@tukaani.org>
5568Date:   2024-05-12 22:16:05 +0300
5569
5570    xz: Edit comments
5571
5572    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5573
5574 src/xz/coder.c | 8 ++------
5575 1 file changed, 2 insertions(+), 6 deletions(-)
5576
5577commit b90339f4daa510d2b1b8c550f855a99667f1d004
5578Author: Lasse Collin <lasse.collin@tukaani.org>
5579Date:   2024-05-12 21:57:49 +0300
5580
5581    xz: Fix grammar in a comment
5582
5583    Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02
5584
5585 src/xz/coder.c | 2 +-
5586 1 file changed, 1 insertion(+), 1 deletion(-)
5587
5588commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13
5589Author: Lasse Collin <lasse.collin@tukaani.org>
5590Date:   2024-05-12 21:46:56 +0300
5591
5592    xz: Rename filter_memusages to encoder_memusages
5593
5594 src/xz/coder.c | 12 ++++++------
5595 1 file changed, 6 insertions(+), 6 deletions(-)
5596
5597commit b54aa023e0ec291b06e976e5f094ab0549e7b09b
5598Author: Lasse Collin <lasse.collin@tukaani.org>
5599Date:   2024-05-12 21:42:05 +0300
5600
5601    xz: Edit coding style
5602
5603 src/xz/coder.c | 8 ++++----
5604 1 file changed, 4 insertions(+), 4 deletions(-)
5605
5606commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce
5607Author: Lasse Collin <lasse.collin@tukaani.org>
5608Date:   2024-05-12 21:31:02 +0300
5609
5610    xz: Rename filters_index to chain_num
5611
5612    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
5613
5614 src/xz/args.c  | 8 ++++----
5615 src/xz/coder.c | 8 ++++----
5616 src/xz/coder.h | 2 +-
5617 3 files changed, 9 insertions(+), 9 deletions(-)
5618
5619commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492
5620Author: Lasse Collin <lasse.collin@tukaani.org>
5621Date:   2024-05-12 21:22:43 +0300
5622
5623    xz: Replace a few uint32_t with "unsigned" to reduce the number of casts
5624
5625    These hold only tiny values.
5626
5627 src/xz/args.c  |  2 +-
5628 src/xz/coder.c | 17 ++++++++---------
5629 src/xz/coder.h |  2 +-
5630 3 files changed, 10 insertions(+), 11 deletions(-)
5631
5632commit b5e6c1113b1ba02c282bd9163eccdb521c937a78
5633Author: Lasse Collin <lasse.collin@tukaani.org>
5634Date:   2024-05-12 21:10:45 +0300
5635
5636    xz: Rename filters_used_mask to chains_used_mask
5637
5638    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
5639
5640 src/xz/coder.c | 30 +++++++++++++++---------------
5641 1 file changed, 15 insertions(+), 15 deletions(-)
5642
5643commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52
5644Author: Lasse Collin <lasse.collin@tukaani.org>
5645Date:   2024-05-12 17:14:43 +0300
5646
5647    xz: Move the setting of "check" in coder_set_compression_settings()
5648
5649    It's more logical to do it in the beginning instead of in the middle
5650    of the filter chain handling.
5651
5652    Fixes: d6af7f347077b22403133239592e478931307759
5653
5654 src/xz/coder.c | 18 +++++++++---------
5655 1 file changed, 9 insertions(+), 9 deletions(-)
5656
5657commit ad146b1f42bbb678175a503a45ce525e779f9b8b
5658Author: Lasse Collin <lasse.collin@tukaani.org>
5659Date:   2024-05-12 17:09:17 +0300
5660
5661    xz: Rename "filters" to "chains"
5662
5663    The convention is that
5664
5665        lzma_filter filters[LZMA_FILTERS_MAX + 1];
5666
5667    contains the filters of a single filter chain.
5668    It was so here as well before the commit
5669    d6af7f347077b22403133239592e478931307759.
5670    It changes "filters" to a ten-element array of filter chains.
5671    It's clearer to call this array-of-arrays "chains".
5672
5673    This also renames "filter_idx" to "chain_idx" which is used
5674    as an index as in chains[chain_idx].
5675
5676 src/xz/coder.c | 68 +++++++++++++++++++++++++++++-----------------------------
5677 1 file changed, 34 insertions(+), 34 deletions(-)
5678
5679commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0
5680Author: Lasse Collin <lasse.collin@tukaani.org>
5681Date:   2024-05-12 16:56:15 +0300
5682
5683    xz: Clean up a comment
5684
5685 src/xz/coder.c | 9 +++------
5686 1 file changed, 3 insertions(+), 6 deletions(-)
5687
5688commit 2de80494ed9a4dc7db395a32a5efb770ce769804
5689Author: Lasse Collin <lasse.collin@tukaani.org>
5690Date:   2024-05-12 16:52:09 +0300
5691
5692    xz: Add clarifying assertions
5693
5694 src/xz/coder.c | 4 ++++
5695 1 file changed, 4 insertions(+)
5696
5697commit 1eaad004bf7748976324672db028e34f42802e61
5698Author: Lasse Collin <lasse.collin@tukaani.org>
5699Date:   2024-05-10 20:23:33 +0300
5700
5701    xz: Add a clarifying assertion
5702
5703    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5704
5705 src/xz/coder.c | 1 +
5706 1 file changed, 1 insertion(+)
5707
5708commit 605094329b986244833c967c04963cacc41a868d
5709Author: Lasse Collin <lasse.collin@tukaani.org>
5710Date:   2024-05-12 16:47:17 +0300
5711
5712    xz: Clarify a comment
5713
5714 src/xz/coder.c | 4 +++-
5715 1 file changed, 3 insertions(+), 1 deletion(-)
5716
5717commit 8fac2577f2dbb9491afd8500f60d004c9071df3b
5718Author: Lasse Collin <lasse.collin@tukaani.org>
5719Date:   2024-05-12 16:28:25 +0300
5720
5721    xz: Use the info collected in parse_block_list()
5722
5723    This is slightly simpler and it avoids looping through
5724    the opt_block_list array.
5725
5726 src/xz/coder.c | 95 ++++++++++++++++++++++++----------------------------------
5727 1 file changed, 39 insertions(+), 56 deletions(-)
5728
5729commit 81d350dab864b985b740742772f3b132d4c52914
5730Author: Lasse Collin <lasse.collin@tukaani.org>
5731Date:   2024-05-12 15:48:45 +0300
5732
5733    xz: Remember the filter chains and the largest Block in parse_block_list()
5734
5735 src/xz/args.c  | 18 ++++++++++++++++++
5736 src/xz/coder.c |  2 ++
5737 src/xz/coder.h | 13 +++++++++++++
5738 3 files changed, 33 insertions(+)
5739
5740commit 46ab56968f7dfdac187710a1223659d832fa1565
5741Author: Lasse Collin <lasse.collin@tukaani.org>
5742Date:   2024-05-12 15:38:48 +0300
5743
5744    xz: Update a comment and initialization of filters_used_mask
5745
5746 src/xz/coder.c | 16 ++++++++--------
5747 1 file changed, 8 insertions(+), 8 deletions(-)
5748
5749commit e89293a0baeb8663707c6b4a74fbb310ec698a8f
5750Author: Lasse Collin <lasse.collin@tukaani.org>
5751Date:   2024-05-12 15:08:10 +0300
5752
5753    xz: parse_block_list: Edit integer type casting
5754
5755 src/xz/args.c | 5 ++---
5756 1 file changed, 2 insertions(+), 3 deletions(-)
5757
5758commit 87011e40c168255cd2edea129ee68c901770603b
5759Author: Lasse Collin <lasse.collin@tukaani.org>
5760Date:   2024-05-12 14:51:37 +0300
5761
5762    xz: Make filter_memusages a local variable
5763
5764 src/xz/coder.c | 35 +++++++++++++++++++++--------------
5765 1 file changed, 21 insertions(+), 14 deletions(-)
5766
5767commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5
5768Author: Lasse Collin <lasse.collin@tukaani.org>
5769Date:   2024-05-10 20:33:08 +0300
5770
5771    xz: Remove unused code and simplify
5772
5773    opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't
5774    defined. Thus, when *encoding*, the message about *decoder* memory
5775    usage is possible to show only when both encoder and decoder have
5776    been built.
5777
5778    Since the message is shown only at V_DEBUG, skip the memusage
5779    calculation if verbosity level isn't high enough.
5780
5781    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5782
5783 src/xz/coder.c | 16 ++++------------
5784 1 file changed, 4 insertions(+), 12 deletions(-)
5785
5786commit 31358c057c9de9d6aba96bae112b2d17942de7cb
5787Author: Lasse Collin <lasse.collin@tukaani.org>
5788Date:   2024-05-10 20:22:58 +0300
5789
5790    xz: Fix integer type from uint64_t to uint32_t
5791
5792    lzma_options_lzma.dict_size is uint32_t so use it here too.
5793
5794    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5795
5796 src/xz/coder.c | 2 +-
5797 1 file changed, 1 insertion(+), 1 deletion(-)
5798
5799commit 3f71e0f3a118e1012526f94fd640a626d30cb599
5800Author: Lasse Collin <lasse.collin@tukaani.org>
5801Date:   2024-05-08 21:40:07 +0300
5802
5803    debug/translation.bash: Remove an outdated test command
5804
5805    Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs
5806    at least nice=4. It is rounded up internally by liblzma when needed.
5807
5808    Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
5809
5810 debug/translation.bash | 1 -
5811 1 file changed, 1 deletion(-)
5812
5813commit b05a516830095a0e1937aeb31c937fb0400408b6
5814Author: Lasse Collin <lasse.collin@tukaani.org>
5815Date:   2024-05-07 20:41:28 +0300
5816
5817    Fix the date of NEWS for 5.4.5
5818
5819 NEWS | 2 +-
5820 1 file changed, 1 insertion(+), 1 deletion(-)
5821
5822commit 6d336aeb97b69c496ddc626af403f6f21c753658
5823Author: Lasse Collin <lasse.collin@tukaani.org>
5824Date:   2024-05-07 16:21:15 +0300
5825
5826    Build: Update visibility.m4 from Gnulib
5827
5828    This fixes the syntax of the "serial" line and renames
5829    a temporary variable.
5830
5831 m4/visibility.m4 | 13 +++++++------
5832 1 file changed, 7 insertions(+), 6 deletions(-)
5833
5834commit ab51e8ee610e2a893906859848f93d5cb0d5ba83
5835Author: Lasse Collin <lasse.collin@tukaani.org>
5836Date:   2024-05-07 15:05:21 +0300
5837
5838    po4a/update-po: Delete the *.po.authors files
5839
5840    These are temporary files that are needed only when running po4a.
5841    The top-level Makefile.am puts the whole po4a directory into
5842    distribution tarball (it's simpler) so deleting these temporary
5843    files is needed to prevent them from getting into tarballs.
5844
5845 po4a/update-po | 4 ++++
5846 1 file changed, 4 insertions(+)
5847
5848commit e4780244a17420cc95d5498cd6e02ad10eac6e5f
5849Author: Lasse Collin <lasse.collin@tukaani.org>
5850Date:   2024-05-07 13:12:17 +0300
5851
5852    xz: Edit comments and coding style
5853
5854 src/xz/coder.c | 25 ++++++++++++-------------
5855 1 file changed, 12 insertions(+), 13 deletions(-)
5856
5857commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c
5858Author: Lasse Collin <lasse.collin@tukaani.org>
5859Date:   2024-05-06 23:08:22 +0300
5860
5861    xz: Omit an incorrect comment
5862
5863    It likely was a leftover from a development version of the code.
5864
5865    Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f
5866
5867 src/xz/coder.c | 6 +-----
5868 1 file changed, 1 insertion(+), 5 deletions(-)
5869
5870commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937
5871Author: Lasse Collin <lasse.collin@tukaani.org>
5872Date:   2024-05-06 23:04:31 +0300
5873
5874    xz: Add braces to a for-statement and to an if-statement
5875
5876    No functional changes.
5877
5878    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
5879    Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a
5880
5881 src/xz/coder.c | 6 ++++--
5882 1 file changed, 4 insertions(+), 2 deletions(-)
5883
5884commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57
5885Author: Lasse Collin <lasse.collin@tukaani.org>
5886Date:   2024-05-06 23:00:09 +0300
5887
5888    liblzma: Omit an unneeded array from the x86 filter
5889
5890    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
5891
5892 src/liblzma/simple/x86.c | 5 +----
5893 1 file changed, 1 insertion(+), 4 deletions(-)
5894
5895commit 7da488cb933fdf51cfc14cb5810beb0766224380
5896Author: Lasse Collin <lasse.collin@tukaani.org>
5897Date:   2024-05-06 22:56:31 +0300
5898
5899    CMake: Add test_suffix.sh to the tests
5900
5901 tests/tests.cmake | 13 +++++++++++++
5902 1 file changed, 13 insertions(+)
5903
5904commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876
5905Author: Lasse Collin <lasse.collin@tukaani.org>
5906Date:   2024-05-06 22:55:54 +0300
5907
5908    Test: Add CMake support to test_suffix.sh
5909
5910    It needs to find the xz executable from a different directory
5911    and work without config.h.
5912
5913 tests/test_suffix.sh | 12 +++++++-----
5914 1 file changed, 7 insertions(+), 5 deletions(-)
5915
5916commit 50e19489387774bab3c4a988397d0d9c7a142a46
5917Author: Lasse Collin <lasse.collin@tukaani.org>
5918Date:   2024-05-06 20:45:34 +0300
5919
5920    Update INSTALL about MINIX 3
5921
5922    The latest stable is 3.3.0 and it's from 2014.
5923    Don't mention the older versions in INSTALL.
5924    3.3.0 ships with Clang already.
5925
5926    Testing with 3.4.0beta6 shows that tuklib_physmem
5927    works too so omit comments about that from INSTALL.
5928    Visibility warnigns weren't a problem either.
5929
5930    Thus it's enough to mention the need for --disable-threads
5931    as configure doesn't autodetect the lack of pthreads.
5932
5933 INSTALL | 20 +++++++-------------
5934 1 file changed, 7 insertions(+), 13 deletions(-)
5935
5936commit 68d18aea1422a2b86b98b71d0b019233d84e01b0
5937Author: Lasse Collin <lasse.collin@tukaani.org>
5938Date:   2024-05-02 23:00:16 +0300
5939
5940    Windows: Remove the "doc/api" line from README-Windows.txt
5941
5942    Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864
5943
5944 windows/README-Windows.txt | 2 --
5945 1 file changed, 2 deletions(-)
5946
5947commit 8ede961374613aa302a13571d662cfaea1cf91f7
5948Author: Lasse Collin <lasse.collin@tukaani.org>
5949Date:   2024-05-02 22:59:04 +0300
5950
5951    Build: Don't copy doc/api from source tree to distribution tarball
5952
5953    It was copied if it existed. This was intentional when autogen.sh
5954    still built liblzma API docs with Doxygen.
5955
5956    Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
5957
5958 Makefile.am | 5 -----
5959 1 file changed, 5 deletions(-)
5960
5961commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc
5962Author: Sam James <sam@gentoo.org>
5963Date:   2024-05-02 13:26:40 +0100
5964
5965    ci: add SPDX headers
5966
5967    I've checked over each of these and they're straightforward applications
5968    of the relevant Github Actions.
5969
5970 .github/workflows/freebsd.yml | 2 ++
5971 .github/workflows/netbsd.yml  | 2 ++
5972 .github/workflows/openbsd.yml | 2 ++
5973 3 files changed, 6 insertions(+)
5974
5975commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3
5976Author: Yaroslav Halchenko <debian@onerussian.com>
5977Date:   2024-03-29 14:37:24 -0400
5978
5979    codespell: Ignore the THANKS file and debbugs.gnu.org URL
5980
5981    This way "codespell -i 0" is silent.
5982
5983    This is the first commit from
5984    https://github.com/tukaani-project/xz/pull/93
5985    with trivial edits by Lasse Collin.
5986
5987 .codespellrc | 6 +++++-
5988 1 file changed, 5 insertions(+), 1 deletion(-)
5989
5990commit 905bfc74fe2670fd9c39014803017ab53d325401
5991Author: Lasse Collin <lasse.collin@tukaani.org>
5992Date:   2024-04-30 14:37:11 +0300
5993
5994    Add .gitattributes to clean up git-archive output
5995
5996 .gitattributes | 7 +++++++
5997 1 file changed, 7 insertions(+)
5998
5999commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501
6000Author: Lasse Collin <lasse.collin@tukaani.org>
6001Date:   2024-04-19 12:11:09 +0300
6002
6003    xzdec: Support Landlock ABI version 4
6004
6005    This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899
6006    but I forgot to do the same in xzdec.
6007
6008    The Landlock sandbox in xzdec could be stricter as now it's
6009    active only for the last file being decompressed. In xz,
6010    read-only sandbox is used for multi-file case. On the other hand,
6011    xz doesn't go to the strictest mode when processing the last file
6012    when more than one file was specified; xzdec does.
6013
6014 src/xzdec/xzdec.c | 18 ++++++++++++++----
6015 1 file changed, 14 insertions(+), 4 deletions(-)
6016
6017commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8
6018Author: Lasse Collin <lasse.collin@tukaani.org>
6019Date:   2024-04-30 22:22:45 +0300
6020
6021    liblzma: Fix incorrect function type error from sanitizer
6022
6023    Clang 17 with -fsanitize=address,undefined:
6024
6025        src/liblzma/common/filter_common.c:366:8: runtime error:
6026            call to function encoder_find through pointer to incorrect
6027            function type 'const lzma_filter_coder *(*)(unsigned long)'
6028        src/liblzma/common/filter_encoder.c:187: note:
6029            encoder_find defined here
6030
6031    Use a wrapper function to get the correct type neatly.
6032    This reduces the number of casts needed too.
6033
6034    This issue could be a problem with control flow integrity (CFI)
6035    methods that check the function type on indirect function calls.
6036
6037    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
6038
6039 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
6040 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
6041 2 files changed, 25 insertions(+), 7 deletions(-)
6042
6043commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff
6044Author: Lasse Collin <lasse.collin@tukaani.org>
6045Date:   2024-04-30 21:41:11 +0300
6046
6047    xz: Avoid arithmetic on a null pointer
6048
6049    It's undefined behavior. The result wasn't ever used as it occurred
6050    in the last iteration of a loop.
6051
6052    Clang 17 with -fsanitize=address,undefined:
6053
6054        $ src/xz/xz --block-list=123
6055        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
6056            to null pointer
6057
6058    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
6059    Co-authored-by: Sam James <sam@gentoo.org>
6060
6061 src/xz/args.c | 8 +++++++-
6062 1 file changed, 7 insertions(+), 1 deletion(-)
6063
6064commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5
6065Author: Lasse Collin <lasse.collin@tukaani.org>
6066Date:   2024-04-27 20:42:00 +0300
6067
6068    CMake: Support building liblzma API docs using Doxygen
6069
6070    This is disabled by default to match the default in Autotools.
6071    Use -DUSE_DOXYGEN=ON to enable Doxygen usage.
6072
6073    This uses the update-doxygen script, thus this is under if(UNIX)
6074    although Doxygen itself can run on Windows too.
6075
6076 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++---------
6077 1 file changed, 31 insertions(+), 9 deletions(-)
6078
6079commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37
6080Author: Lasse Collin <lasse.collin@tukaani.org>
6081Date:   2024-04-20 23:36:39 +0300
6082
6083    CMake: List API headers in LIBLZMA_API_HEADERS variable
6084
6085    This way the same list will be usable in more than one location.
6086
6087 CMakeLists.txt | 21 ++++++++++++---------
6088 1 file changed, 12 insertions(+), 9 deletions(-)
6089
6090commit 541406bee3f09e9813103c6406b10fc6ab2e0d30
6091Author: Lasse Collin <lasse.collin@tukaani.org>
6092Date:   2024-04-19 15:16:42 +0300
6093
6094    PACKAGERS: Document the optional Doxygen usage
6095
6096    Also add a note that packagers should check the licensing
6097    of the Doxygen output.
6098
6099 PACKAGERS | 19 ++++++++++---------
6100 1 file changed, 10 insertions(+), 9 deletions(-)
6101
6102commit e21efdf96f39378fe417479f89e97046680406f5
6103Author: Lasse Collin <lasse.collin@tukaani.org>
6104Date:   2024-04-27 17:47:09 +0300
6105
6106    Build: Add --enable-doxygen to generate and install API docs
6107
6108    It requires Doxygen. This option is disabled by default.
6109
6110 INSTALL                     |  6 ++++++
6111 configure.ac                | 10 +++++++++-
6112 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++
6113 3 files changed, 34 insertions(+), 1 deletion(-)
6114
6115commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b
6116Author: Lasse Collin <lasse.collin@tukaani.org>
6117Date:   2024-04-19 15:15:17 +0300
6118
6119    Doxygen: update-doxygen: Support out-of-tree builds
6120
6121    Also, now $0 is used to refer to the script itself.
6122
6123 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++-------------------
6124 1 file changed, 68 insertions(+), 42 deletions(-)
6125
6126commit 2c519f641f266fd897edf680827d9c905f411440
6127Author: Lasse Collin <lasse.collin@tukaani.org>
6128Date:   2024-04-28 21:08:00 +0300
6129
6130    Doxygen: Simplify Doxyfile and add SPDX license identifier
6131
6132    This omits all comments and a few non-default options that weren't
6133    needed. Now it contains no copyrighted content from Doxygen itself.
6134
6135 doxygen/Doxyfile | 2698 +-----------------------------------------------------
6136 1 file changed, 25 insertions(+), 2673 deletions(-)
6137
6138commit bdba39a57530d11b88440df8024002be3d09e4a1
6139Author: Lasse Collin <lasse.collin@tukaani.org>
6140Date:   2024-04-19 15:14:02 +0300
6141
6142    Doxygen: Don't strip JavaScript anymore
6143
6144    The stripping method worked well with Doxygen 1.8 and 1.9 but
6145    it doesn't work with Doxygen 1.10 anymore. Since we won't ship
6146    pre-generated liblzma API docs anymore, the extra bloat and
6147    extra license info of the JavaScript files won't affect the
6148    upstream source package anymore.
6149
6150 doxygen/update-doxygen | 21 ---------------------
6151 1 file changed, 21 deletions(-)
6152
6153commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
6154Author: Lasse Collin <lasse.collin@tukaani.org>
6155Date:   2024-04-19 17:26:41 +0300
6156
6157    Build: Remove old Doxygen rules from top-level Makefile.am
6158
6159 Makefile.am | 12 ------------
6160 1 file changed, 12 deletions(-)
6161
6162commit fd7faa4c338a42a6a40e854b837d285ae2e8c609
6163Author: Lasse Collin <lasse.collin@tukaani.org>
6164Date:   2024-04-19 15:10:06 +0300
6165
6166    Update COPYING to match the autogen.sh and mydist changes
6167
6168 COPYING | 11 -----------
6169 1 file changed, 11 deletions(-)
6170
6171commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3
6172Author: Lasse Collin <lasse.collin@tukaani.org>
6173Date:   2024-04-19 17:23:43 +0300
6174
6175    Build: Don't run update-doxygen as part of "make mydist"
6176
6177 Makefile.am | 1 -
6178 1 file changed, 1 deletion(-)
6179
6180commit e9be74f5b129fe8a5388d588e68b1b7f5168a310
6181Author: Lasse Collin <lasse.collin@tukaani.org>
6182Date:   2024-04-19 15:09:48 +0300
6183
6184    autogen.sh: Don't generated Doxygen docs anymore
6185
6186 autogen.sh | 18 +++---------------
6187 1 file changed, 3 insertions(+), 15 deletions(-)
6188
6189commit 252aa1d67bc015eeba462803ab72edeb7744d864
6190Author: Lasse Collin <lasse.collin@tukaani.org>
6191Date:   2024-04-19 17:41:36 +0300
6192
6193    windows/build.bash: Omit Doxygen docs from the package
6194
6195    They will be omitted from the source tarball and I don't want
6196    to make Doxygen a dependency of build.bash.
6197
6198 windows/build.bash | 4 ++--
6199 1 file changed, 2 insertions(+), 2 deletions(-)
6200
6201commit 634095364d87444d62d8ec54c134c0cd4705f5d7
6202Author: Lasse Collin <lasse.collin@tukaani.org>
6203Date:   2024-04-19 14:14:47 +0300
6204
6205    README: Don't mention PDF man pages anymore
6206
6207 README | 6 +++---
6208 1 file changed, 3 insertions(+), 3 deletions(-)
6209
6210commit dc684bf76ea23574ee9d88382057381e04e6089a
6211Author: Lasse Collin <lasse.collin@tukaani.org>
6212Date:   2024-04-19 14:10:39 +0300
6213
6214    Build: Omit PDF man pages from the package
6215
6216    pdf-local rule was added to create the PDFs still with "make pdf".
6217    The install rules are missing but that likely doesn't matter at all.
6218
6219 Makefile.am | 29 +++++++++++++++++++----------
6220 1 file changed, 19 insertions(+), 10 deletions(-)
6221
6222commit e3531ab4125cbd5c01ebd3200791350960547189
6223Author: Lasse Collin <lasse.collin@tukaani.org>
6224Date:   2024-04-19 13:54:39 +0300
6225
6226    windows/build.bash: Don't copy PDF man pages to the package
6227
6228 windows/README-Windows.txt | 2 +-
6229 windows/build.bash         | 2 +-
6230 2 files changed, 2 insertions(+), 2 deletions(-)
6231
6232commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7
6233Author: Lasse Collin <lasse.collin@tukaani.org>
6234Date:   2024-04-28 01:34:50 +0300
6235
6236    Tests: test_index: Fix failures when features are disabled
6237
6238    Fixes: cd88423e76d54eb72aea037364f3ebb21f122503
6239
6240 tests/test_index.c | 13 ++++++++-----
6241 1 file changed, 8 insertions(+), 5 deletions(-)
6242
6243commit aaff75c3486c4489ce88b0efb36b41cf138af7c3
6244Author: Lasse Collin <lasse.collin@tukaani.org>
6245Date:   2024-04-20 17:09:11 +0300
6246
6247    CMake: Keep the build working if the "tests" directory is missing
6248
6249    This moves the tests section as is from CMakeLists.txt into
6250    tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake
6251    if the latter file exists.
6252
6253    Now it's possible to delete the whole "tests" directory and
6254    building with CMake will still work normally, just without
6255    the tests. This way the tests are readily available for those
6256    who want them, and those who won't run the tests anyway have
6257    a straightforward way to ensure that nothing from the "tests"
6258    directory can affect the build process.
6259
6260 CMakeLists.txt    | 76 ++---------------------------------------------
6261 tests/Makefile.am |  1 +
6262 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
6263 3 files changed, 92 insertions(+), 73 deletions(-)
6264
6265commit a5f2aa5618fe9183706c9c514c3067985f6c338b
6266Author: Lasse Collin <lasse.collin@tukaani.org>
6267Date:   2024-04-20 13:12:50 +0300
6268
6269    Tests: Remove x86 and SPARC BCJ tests
6270
6271    These are very old but the exact test file isn't easy to reproduce
6272    as it was compiled from a short C program (bcj_test.c) long ago.
6273    These tests weren't very good anyway, just a little better than nothing.
6274
6275 tests/Makefile.am                      |   7 ----
6276 tests/bcj_test.c                       |  64 ---------------------------------
6277 tests/compress_prepared_bcj_sparc      | Bin 1240 -> 0 bytes
6278 tests/compress_prepared_bcj_x86        | Bin 1388 -> 0 bytes
6279 tests/files/README                     |   8 -----
6280 tests/files/good-1-sparc-lzma2.xz      | Bin 612 -> 0 bytes
6281 tests/files/good-1-x86-lzma2.xz        | Bin 716 -> 0 bytes
6282 tests/test_compress_prepared_bcj_sparc |   4 ---
6283 tests/test_compress_prepared_bcj_x86   |   4 ---
6284 9 files changed, 87 deletions(-)
6285
6286commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07
6287Author: Lasse Collin <lasse.collin@tukaani.org>
6288Date:   2024-04-27 18:30:40 +0300
6289
6290    Tests: test_index: Edit a misleading test
6291
6292 tests/test_index.c | 7 +++++--
6293 1 file changed, 5 insertions(+), 2 deletions(-)
6294
6295commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd
6296Author: Lasse Collin <lasse.collin@tukaani.org>
6297Date:   2024-04-27 16:46:01 +0300
6298
6299    Tests: test_index: Use minimal values to test integer overflow
6300
6301 tests/test_index.c | 4 ++--
6302 1 file changed, 2 insertions(+), 2 deletions(-)
6303
6304commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d
6305Author: Lasse Collin <lasse.collin@tukaani.org>
6306Date:   2024-04-27 15:13:39 +0300
6307
6308    Tests: test_index: Test lzma_index_buffer_decode() more
6309
6310 tests/test_index.c | 29 ++++++++++++++++++++++++++---
6311 1 file changed, 26 insertions(+), 3 deletions(-)
6312
6313commit 575b11b0d291e66c5fce31ce7a72f11436d57c83
6314Author: Lasse Collin <lasse.collin@tukaani.org>
6315Date:   2024-04-27 15:08:29 +0300
6316
6317    Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR
6318
6319    On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was
6320    already done but this adds a test for that case too.
6321
6322 tests/test_index.c | 31 +++++++++++++++++++++++++++----
6323 1 file changed, 27 insertions(+), 4 deletions(-)
6324
6325commit 2c970debdb285823f01f75e875561d893345ac2b
6326Author: Lasse Collin <lasse.collin@tukaani.org>
6327Date:   2024-04-27 15:01:25 +0300
6328
6329    Tests: test_index: Test lzma_index_buffer_encode() with empty output buf
6330
6331 tests/test_index.c | 3 +++
6332 1 file changed, 3 insertions(+)
6333
6334commit cd88423e76d54eb72aea037364f3ebb21f122503
6335Author: Lasse Collin <lasse.collin@tukaani.org>
6336Date:   2024-04-27 14:59:55 +0300
6337
6338    Tests: test_index: Replace if-statements with tuktest assertions
6339
6340 tests/test_index.c | 22 +++++++++-------------
6341 1 file changed, 9 insertions(+), 13 deletions(-)
6342
6343commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51
6344Author: Lasse Collin <lasse.collin@tukaani.org>
6345Date:   2024-04-27 14:56:16 +0300
6346
6347    Tests: test_index: Make it clear that my_alloc() has no integer overflows
6348
6349    liblzma guarantees that the product of the allocation size arguments
6350    will fit in size_t.
6351
6352    Putting the pre-increment in the if-statement was clearly wrong
6353    although in practice it didn't matter here as the function is
6354    called only a couple of times.
6355
6356 tests/test_index.c | 5 ++++-
6357 1 file changed, 4 insertions(+), 1 deletion(-)
6358
6359commit 12313a3b6596cdcf012e180597f84d231f8730d3
6360Author: Lasse Collin <lasse.collin@tukaani.org>
6361Date:   2024-04-27 14:51:52 +0300
6362
6363    Tests: test_index: Verify also iter.block.number_in_stream
6364
6365 tests/test_index.c | 2 ++
6366 1 file changed, 2 insertions(+)
6367
6368commit ad2654010d9d641ce1601beeff00630027e6bcd4
6369Author: Lasse Collin <lasse.collin@tukaani.org>
6370Date:   2024-04-27 14:51:06 +0300
6371
6372    Tests: test_index: Check cases that aren't a multiple of 4 bytes
6373
6374 tests/test_index.c | 33 +++++++++++++++++++++++++--------
6375 1 file changed, 25 insertions(+), 8 deletions(-)
6376
6377commit 2524fcf2b68b662035437cee8edbe80067c0c240
6378Author: Lasse Collin <lasse.collin@tukaani.org>
6379Date:   2024-04-27 14:40:25 +0300
6380
6381    Tests: test_index: Edit comments and white space
6382
6383 tests/test_index.c | 18 +++++++++++-------
6384 1 file changed, 11 insertions(+), 7 deletions(-)
6385
6386commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0
6387Author: Lasse Collin <lasse.collin@tukaani.org>
6388Date:   2024-04-27 14:33:38 +0300
6389
6390    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
6391
6392    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
6393    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
6394    argument wasn't touched even though the API docs say that *i = NULL
6395    is done if an error occurs. This obviously won't be done even now
6396    if i == NULL but otherwise it is best to do it due to the wording
6397    in the API docs.
6398
6399    In practice this matters very little: The problem can occur only
6400    if the functions are called with invalid arguments, that is,
6401    the calling application must already have a bug.
6402
6403 src/liblzma/common/index_decoder.c | 11 +++++++++++
6404 1 file changed, 11 insertions(+)
6405
6406commit 0478473953f50716a2bc37b619b1c7dc2682b1ad
6407Author: Lasse Collin <lasse.collin@tukaani.org>
6408Date:   2024-04-26 18:25:18 +0300
6409
6410    CMake: Bump maximum policy version to 3.29
6411
6412 CMakeLists.txt | 2 +-
6413 1 file changed, 1 insertion(+), 1 deletion(-)
6414
6415commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3
6416Author: Sam James <sam@gentoo.org>
6417Date:   2024-04-13 22:30:44 +0100
6418
6419    ci: add NetBSD
6420
6421 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++
6422 1 file changed, 29 insertions(+)
6423
6424commit 72c210336de26fb87a928160d025fa10a638d23b
6425Author: Sam James <sam@gentoo.org>
6426Date:   2024-04-13 23:49:26 +0100
6427
6428    ci: add FreeBSD
6429
6430 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++
6431 1 file changed, 29 insertions(+)
6432
6433commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2
6434Author: Sam James <sam@gentoo.org>
6435Date:   2024-04-13 23:16:08 +0100
6436
6437    ci: add OpenBSD
6438
6439 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++
6440 1 file changed, 31 insertions(+)
6441
6442commit c7ef767c49351743d8d011574abb9e200bf6b24f
6443Author: Sam James <sam@gentoo.org>
6444Date:   2024-04-15 05:53:01 +0100
6445
6446    liblzma: outqueue: add header guard
6447
6448    Reported by github's codeql.
6449
6450 src/liblzma/common/outqueue.h | 5 +++++
6451 1 file changed, 5 insertions(+)
6452
6453commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c
6454Author: Sam James <sam@gentoo.org>
6455Date:   2024-04-15 05:53:56 +0100
6456
6457    liblzma: easy_preset: add header guard
6458
6459    Reported by github's codeql.
6460
6461 src/liblzma/common/easy_preset.h | 5 +++++
6462 1 file changed, 5 insertions(+)
6463
6464commit 4ffc60f32397371769b7d6b5e3ed8626292d58df
6465Author: Lasse Collin <lasse.collin@tukaani.org>
6466Date:   2024-04-25 14:00:57 +0300
6467
6468    tuklib_integer: Rename bswapXX to byteswapXX
6469
6470    The __builtin_bswapXX from GCC and Clang are preferred when
6471    they are available. This can allow compilers to emit the x86 MOVBE
6472    instruction instead of doing a load + byteswap as two instructions
6473    (which would happen if the byteswapping is done in inline asm).
6474
6475    bswap16, bswap32, and bswap64 exist in system headers on *BSDs
6476    and Darwin. #defining bswap16 on NetBSD results in a warning about
6477    macro redefinition. It's safest to avoid this namespace conflict
6478    completely.
6479
6480    No OS supported by tuklib_integer.h uses byteswapXX names and
6481    a web search doesn't immediately find any obvious danger of
6482    namespace conflicts. So let's try these still-pretty-short names
6483    for the macros.
6484
6485    Thanks to Sam James for pointing out the compiler warning on
6486    NetBSD 10.0.
6487
6488 src/common/tuklib_integer.h        | 47 ++++++++++++++++++++------------------
6489 src/liblzma/check/crc32_fast.c     |  4 ++--
6490 src/liblzma/check/crc32_tablegen.c |  2 +-
6491 src/liblzma/check/crc64_fast.c     |  4 ++--
6492 src/liblzma/check/crc64_tablegen.c |  2 +-
6493 5 files changed, 31 insertions(+), 28 deletions(-)
6494
6495commit 08ab0966a75b501aa7c717622223f0c13a113c75
6496Author: Lasse Collin <lasse.collin@tukaani.org>
6497Date:   2024-04-24 01:20:26 +0300
6498
6499    liblzma: API doc cleanups
6500
6501 src/liblzma/api/lzma/container.h | 2 +-
6502 src/liblzma/api/lzma/index.h     | 6 +++---
6503 src/liblzma/api/lzma/vli.h       | 5 ++---
6504 3 files changed, 6 insertions(+), 7 deletions(-)
6505
6506commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989
6507Author: Lasse Collin <lasse.collin@tukaani.org>
6508Date:   2024-04-23 16:35:33 +0300
6509
6510    Tests: test_filter_str: Add a few assertions
6511
6512 tests/test_filter_str.c | 4 ++++
6513 1 file changed, 4 insertions(+)
6514
6515commit 26c69be80523b05c84dea86c47c4ddd9a10945d7
6516Author: Lasse Collin <lasse.collin@tukaani.org>
6517Date:   2024-04-23 16:35:08 +0300
6518
6519    Tests: test_filter_str: Move one assertion and add a comment
6520
6521 tests/test_filter_str.c | 6 ++++--
6522 1 file changed, 4 insertions(+), 2 deletions(-)
6523
6524commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b
6525Author: Lasse Collin <lasse.collin@tukaani.org>
6526Date:   2024-04-23 16:26:06 +0300
6527
6528    Tests: test_filter_str: Tweak comments and white space
6529
6530 tests/test_filter_str.c | 3 +++
6531 1 file changed, 3 insertions(+)
6532
6533commit c92663aa1bd576e0615498a4189acf0df12e84b9
6534Author: Lasse Collin <lasse.collin@tukaani.org>
6535Date:   2024-04-23 16:25:22 +0300
6536
6537    Tests: test_filter_str: Add missing RISC-V case
6538
6539    Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
6540
6541 tests/test_filter_str.c | 3 +++
6542 1 file changed, 3 insertions(+)
6543
6544commit b0366df1d7ed26268101f9303a001c91c0806dfc
6545Author: Lasse Collin <lasse.collin@tukaani.org>
6546Date:   2024-04-22 22:23:32 +0300
6547
6548    Tests: test_filter_str: Test *error_pos more thoroughly
6549
6550 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++-
6551 1 file changed, 76 insertions(+), 1 deletion(-)
6552
6553commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d
6554Author: Lasse Collin <lasse.collin@tukaani.org>
6555Date:   2024-04-22 21:54:39 +0300
6556
6557    liblzma: lzma_str_to_filters: Set *error_pos on all errors
6558
6559    The API docs clearly say that if error_pos isn't NULL then *error
6560    is always set on any error. However, it wasn't touched if str == NULL
6561    or filters == NULL or unsupported flags were specified.
6562
6563    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
6564
6565 src/liblzma/common/string_conversion.c | 6 ++++++
6566 1 file changed, 6 insertions(+)
6567
6568commit ed8e552395701fbf046027cebc8be4a6755b263f
6569Author: Lasse Collin <lasse.collin@tukaani.org>
6570Date:   2024-04-22 20:31:25 +0300
6571
6572    liblzma: Clean up white space
6573
6574 src/liblzma/lz/lz_encoder.h | 2 +-
6575 1 file changed, 1 insertion(+), 1 deletion(-)
6576
6577commit 2f06920f20b1ad63b7953dc09569e1d424998849
6578Author: Lasse Collin <lasse.collin@tukaani.org>
6579Date:   2024-04-22 18:35:19 +0300
6580
6581    Tests: test_filter_flags: Edit comments and style
6582
6583 tests/test_filter_flags.c | 13 +++++++++----
6584 1 file changed, 9 insertions(+), 4 deletions(-)
6585
6586commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82
6587Author: Lasse Collin <lasse.collin@tukaani.org>
6588Date:   2024-04-22 16:39:44 +0300
6589
6590    Tests: Fix C99/C11 compatibility when features are disabled
6591
6592    The array could become empty and then the initializer would be
6593    simply {} which is allowed only in GNU-C and C23.
6594
6595 tests/test_filter_flags.c | 18 ++++++++----------
6596 1 file changed, 8 insertions(+), 10 deletions(-)
6597
6598commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d
6599Author: Lasse Collin <lasse.collin@tukaani.org>
6600Date:   2024-04-21 20:32:16 +0300
6601
6602    DOS: Omit useless defines from config.h
6603
6604 dos/config.h | 12 ------------
6605 1 file changed, 12 deletions(-)
6606
6607commit fc1921b04b8840caaa777c2bd5340d41b259da20
6608Author: Lasse Collin <lasse.collin@tukaani.org>
6609Date:   2024-04-21 20:27:50 +0300
6610
6611    Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h
6612
6613 configure.ac | 6 ------
6614 1 file changed, 6 deletions(-)
6615
6616commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
6617Author: Lasse Collin <lasse.collin@tukaani.org>
6618Date:   2024-04-19 22:04:21 +0300
6619
6620    liblzma: Silence a warning from Coverity static analysis
6621
6622    It is logical why it cannot know for sure that the value has
6623    to be at most 4 if it is less than 16.
6624
6625    The x86 filter is based on a very old LZMA SDK version. Newer
6626    ones have quite a different implementation for the same filter.
6627
6628    Thanks to Sam James.
6629
6630 src/liblzma/simple/x86.c | 12 +++++-------
6631 1 file changed, 5 insertions(+), 7 deletions(-)
6632
6633commit e89d3e83b4496d0b5410870634970c0aa9721d59
6634Author: Lasse Collin <lasse.collin@tukaani.org>
6635Date:   2024-04-19 23:18:19 +0300
6636
6637    Update .gitignore
6638
6639 .gitignore | 21 ++++++++-------------
6640 1 file changed, 8 insertions(+), 13 deletions(-)
6641
6642commit 86fc4ee859709da0ff9617a1490f13ddac0a109b
6643Author: Lasse Collin <lasse.collin@tukaani.org>
6644Date:   2024-04-19 20:53:24 +0300
6645
6646    Tests: test_lzip_decoder: Tweak coding style and comments
6647
6648 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------
6649 1 file changed, 28 insertions(+), 30 deletions(-)
6650
6651commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5
6652Author: Lasse Collin <lasse.collin@tukaani.org>
6653Date:   2024-04-19 20:51:36 +0300
6654
6655    Tests: test_lzip_decoder: Remove redundant initializations
6656
6657 tests/test_lzip_decoder.c | 6 ++----
6658 1 file changed, 2 insertions(+), 4 deletions(-)
6659
6660commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9
6661Author: Lasse Collin <lasse.collin@tukaani.org>
6662Date:   2024-04-19 20:47:24 +0300
6663
6664    Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
6665
6666 tests/test_lzip_decoder.c | 12 ++----------
6667 1 file changed, 2 insertions(+), 10 deletions(-)
6668
6669commit eeca8f7c5baf1ad69606bb734d5001763466d58f
6670Author: Lasse Collin <lasse.collin@tukaani.org>
6671Date:   2024-04-15 20:35:07 +0300
6672
6673    xz: Fix white space error.
6674
6675    Thanks to xx on #tukaani.
6676
6677 src/xz/args.c | 2 +-
6678 1 file changed, 1 insertion(+), 1 deletion(-)
6679
6680commit 462ca9409940a19f743daee6b3bcc611277d0007
6681Author: Sam James <sam@gentoo.org>
6682Date:   2024-04-11 23:01:44 +0100
6683
6684    xz: add missing noreturn for message_filters_help
6685
6686    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
6687
6688 src/xz/message.h | 1 +
6689 1 file changed, 1 insertion(+)
6690
6691commit 863f13d2828b99b0539ce73f9cf85bde32358034
6692Author: Sam James <sam@gentoo.org>
6693Date:   2024-04-11 19:34:04 +0100
6694
6695    xz: signals: suppress -Wsign-conversion on macOS
6696
6697    On macOS, we get:
6698    ```
6699    signals.c: In function 'signals_init':
6700    signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
6701       76 |                 sigaddset(&hooked_signals, sigs[i]);
6702          |                 ^~~~~~~~~
6703    signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
6704       81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
6705          |                 ^~~~~~~~~
6706    signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
6707       86 |         sigaddset(&hooked_signals, SIGTSTP);
6708          |         ^~~~~~~~~
6709    ```
6710
6711    We use `int` for `hooked_signals` but we can't just cast to whatever
6712    `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
6713    on macOS. On macOS, `sigaddset` is implemented as a macro.
6714
6715    Just suppress -Wsign-conversion for `signals_init` for macOS given
6716    there's no real nice way of fixing this.
6717
6718 src/xz/signals.c | 7 +++++++
6719 1 file changed, 7 insertions(+)
6720
6721commit fcbd0d199933a69713cb293cbd7409a757d854cd
6722Author: Lasse Collin <lasse.collin@tukaani.org>
6723Date:   2024-04-13 22:19:40 +0300
6724
6725    Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
6726
6727 tests/test_microlzma.c | 8 ++++++++
6728 1 file changed, 8 insertions(+)
6729
6730commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e
6731Author: Lasse Collin <lasse.collin@tukaani.org>
6732Date:   2024-04-13 18:05:31 +0300
6733
6734    Tests: test_microlzma: Tweak comments, coding style, and minor details
6735
6736    A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
6737    and a few uint32_t were changed to size_t. No real functional changes
6738    were intended.
6739
6740 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++----------------------
6741 1 file changed, 83 insertions(+), 66 deletions(-)
6742
6743commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992
6744Author: Ryan Carsten Schmidt <git@ryandesign.com>
6745Date:   2024-04-12 19:31:13 -0500
6746
6747    CI: Use only the active CPUs on macOS
6748
6749    hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
6750    only the active CPUs.
6751
6752 build-aux/ci_build.bash | 2 +-
6753 1 file changed, 1 insertion(+), 1 deletion(-)
6754
6755commit 73f629e321b74f68c9954728fa4f19261afccf46
6756Author: Sam James <sam@gentoo.org>
6757Date:   2024-04-10 18:33:55 +0100
6758
6759    ci: rename ci_build.sh -> ci_build.bash
6760
6761    We discussed the name and it's less cognitive load to just call it '.bash'
6762    so you don't have an immediate question about if bashisms are OK.
6763
6764 .github/workflows/ci.yml                 | 52 ++++++++++++++++----------------
6765 .github/workflows/windows-ci.yml         | 20 ++++++------
6766 build-aux/{ci_build.sh => ci_build.bash} |  0
6767 3 files changed, 36 insertions(+), 36 deletions(-)
6768
6769commit 8709407a9ef8e7e8aec117879400e4dd3e227ada
6770Author: Sam James <sam@gentoo.org>
6771Date:   2024-04-10 17:42:23 +0100
6772
6773    ci: build in parallel by default
6774
6775 build-aux/ci_build.sh | 2 ++
6776 1 file changed, 2 insertions(+)
6777
6778commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f
6779Author: Sam James <sam@gentoo.org>
6780Date:   2024-04-10 15:41:08 +0100
6781
6782    ci: default to -O2
6783
6784    We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
6785    with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
6786    environment and append what was passed on the command line.
6787
6788 build-aux/ci_build.sh | 3 ++-
6789 1 file changed, 2 insertions(+), 1 deletion(-)
6790
6791commit bc899f9e0700ad153bd65f4804c4de7515c8a847
6792Author: Sam James <sam@gentoo.org>
6793Date:   2024-04-10 15:17:47 +0100
6794
6795    ci: make automake's test runner verbose on failures
6796
6797    This is a lot easier to work with than the save-logs thing the action
6798    tries to do...
6799
6800 build-aux/ci_build.sh | 2 +-
6801 1 file changed, 1 insertion(+), 1 deletion(-)
6802
6803commit b5e3470442531717b2457b40ab412740296af1bc
6804Author: Sam James <sam@gentoo.org>
6805Date:   2024-04-10 12:38:51 +0100
6806
6807    ci: make UBSAN abort on errors
6808
6809    Unfortunately, UBSAN doesn't do this by default. See also the change
6810    I made in Meson for this in October [0].
6811
6812    [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c
6813
6814 .github/workflows/ci.yml | 1 +
6815 1 file changed, 1 insertion(+)
6816
6817commit 6c095a98fbec70b790253a663173ecdb669108c4
6818Author: Sam James <sam@gentoo.org>
6819Date:   2024-04-10 11:43:10 +0100
6820
6821    ci: test Valgrind
6822
6823    Using `--trace-children=yes` has a trade-off here, as it makes
6824    `test_scripts.sh` pretty slow when calling various non-xz utilities.
6825
6826    But I also feel like it's not useless to have Valgrind used there and it's
6827    not easy to exclude Valgrind just for that one test...
6828
6829    I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
6830    immediately with some conditionally-built tests and I wondered if it was
6831    worth spending time on at least while we're debating xz's future build
6832    system situation.
6833
6834    [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
6835    [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/
6836
6837 .github/workflows/ci.yml | 11 ++++++++++-
6838 build-aux/ci_build.sh    |  8 +++++---
6839 2 files changed, 15 insertions(+), 4 deletions(-)
6840
6841commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59
6842Author: Lasse Collin <lasse.collin@tukaani.org>
6843Date:   2024-04-10 23:20:02 +0300
6844
6845    liblzma: CRC: Simplify table omission macros
6846
6847    A macro is useful to prevent a single #if directive from
6848    getting too ugly but only one macro is needed for all archs.
6849
6850 src/liblzma/check/crc32_table.c | 10 ++++------
6851 src/liblzma/check/crc64_table.c |  4 ++--
6852 src/liblzma/check/crc_common.h  |  5 +++--
6853 3 files changed, 9 insertions(+), 10 deletions(-)
6854
6855commit 45da936c879acf4f053a3055665bf1b10ded4462
6856Author: Lasse Collin <lasse.collin@tukaani.org>
6857Date:   2024-04-10 23:09:40 +0300
6858
6859    liblzma: ARM64 CRC: Fix omission of CRC32 table
6860
6861    The macro name had an odd typo so the table wasn't omitted
6862    when it should have.
6863
6864    Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
6865
6866 src/liblzma/check/crc32_table.c | 2 +-
6867 1 file changed, 1 insertion(+), 1 deletion(-)
6868
6869commit 308a9af85400b0e2019f0f012c8354e831d06d65
6870Author: Lasse Collin <lasse.collin@tukaani.org>
6871Date:   2024-04-10 22:21:51 +0300
6872
6873    Build: If ARM64 feature detection func is found, stop looking for others
6874
6875    This can speed up configure a tiny bit.
6876
6877    Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
6878
6879 configure.ac | 2 +-
6880 1 file changed, 1 insertion(+), 1 deletion(-)
6881
6882commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6
6883Author: Lasse Collin <lasse.collin@tukaani.org>
6884Date:   2024-04-10 22:04:27 +0300
6885
6886    liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
6887
6888    I didn't test this but it shouldn't change any functionality.
6889
6890    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
6891
6892 src/liblzma/check/crc32_arm64.h | 7 ++++---
6893 1 file changed, 4 insertions(+), 3 deletions(-)
6894
6895commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57
6896Author: Lasse Collin <lasse.collin@tukaani.org>
6897Date:   2024-04-10 21:59:27 +0300
6898
6899    liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
6900
6901    Also add parenthesis to the return statement.
6902
6903    I didn't test this.
6904
6905    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
6906
6907 src/liblzma/check/crc32_arm64.h | 6 ++++--
6908 1 file changed, 4 insertions(+), 2 deletions(-)
6909
6910commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0
6911Author: Lasse Collin <lasse.collin@tukaani.org>
6912Date:   2024-04-10 21:56:33 +0300
6913
6914    liblzma: ARM64 CRC32: Use negation instead of subtracting from 8
6915
6916    Subtracting from 0 is negation, this just keeps warnings away.
6917
6918    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
6919
6920 src/liblzma/check/crc32_arm64.h | 2 +-
6921 1 file changed, 1 insertion(+), 1 deletion(-)
6922
6923commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7
6924Author: Lasse Collin <lasse.collin@tukaani.org>
6925Date:   2024-04-10 21:55:10 +0300
6926
6927    liblzma: ARM64 CRC32: Tweak coding style and comments
6928
6929 src/liblzma/check/crc32_arm64.h | 10 +++++-----
6930 1 file changed, 5 insertions(+), 5 deletions(-)
6931
6932commit 780d2c236de0e4749655696c2e0c26fb7565afd3
6933Author: Lasse Collin <lasse.collin@tukaani.org>
6934Date:   2024-04-09 21:55:01 +0300
6935
6936    Update SECURITY.md.
6937
6938 .github/SECURITY.md | 25 ++++++++-----------------
6939 1 file changed, 8 insertions(+), 17 deletions(-)
6940
6941commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a
6942Author: Lasse Collin <lasse.collin@tukaani.org>
6943Date:   2024-04-09 17:47:01 +0300
6944
6945    CI: Remove ifunc support.
6946
6947 .github/workflows/ci.yml | 13 +++----------
6948 build-aux/ci_build.sh    |  5 +----
6949 2 files changed, 4 insertions(+), 14 deletions(-)
6950
6951commit 689ae2427342a2ea1206eb5ca08301baf410e7e0
6952Author: Lasse Collin <lasse.collin@tukaani.org>
6953Date:   2024-04-09 17:43:16 +0300
6954
6955    liblzma: Remove ifunc support.
6956
6957    This is *NOT* done for security reasons even though the backdoor
6958    relied on the ifunc code. Instead, the reason is that in this
6959    project ifunc provides little benefits but it's quite a bit of
6960    extra code to support it. The only case where ifunc *might* matter
6961    for performance is if the CRC functions are used directly by an
6962    application. In normal compression use it's completely irrelevant.
6963
6964 CMakeLists.txt                    | 79 ---------------------------------------
6965 INSTALL                           |  8 ----
6966 configure.ac                      | 79 ---------------------------------------
6967 src/liblzma/check/crc32_fast.c    | 48 +++---------------------
6968 src/liblzma/check/crc64_fast.c    | 21 -----------
6969 src/liblzma/check/crc_common.h    |  9 +----
6970 src/liblzma/check/crc_x86_clmul.h | 11 +-----
6971 7 files changed, 8 insertions(+), 247 deletions(-)
6972
6973commit 6b4c859059a7eb9b0547590c081668e14ecf8af6
6974Author: Lasse Collin <lasse.collin@tukaani.org>
6975Date:   2024-04-08 22:04:41 +0300
6976
6977    tests/files/README: Update the main heading.
6978
6979 tests/files/README | 4 ++--
6980 1 file changed, 2 insertions(+), 2 deletions(-)
6981
6982commit 2a851e06b891ce894f918faff32a6cca6fdecee6
6983Author: Lasse Collin <lasse.collin@tukaani.org>
6984Date:   2024-04-08 22:02:45 +0300
6985
6986    tests/files/README: Explain how to recreate the ARM64 test files.
6987
6988 tests/files/README | 15 ++++++++++++++-
6989 1 file changed, 14 insertions(+), 1 deletion(-)
6990
6991commit 3d09b721b94e18fe1f853a04799697f5de10b291
6992Author: Lasse Collin <lasse.collin@tukaani.org>
6993Date:   2024-04-08 21:51:55 +0300
6994
6995    debug: Add generator for the ARM64 test file data.
6996
6997 debug/Makefile.am         |   3 +-
6998 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++
6999 2 files changed, 118 insertions(+), 1 deletion(-)
7000
7001commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48
7002Author: Lasse Collin <lasse.collin@tukaani.org>
7003Date:   2024-04-08 21:19:38 +0300
7004
7005    xz man page: Use .ft CR instead of CW to silence warnings from groff.
7006
7007 src/xz/xz.1 | 32 ++++++++++++++++----------------
7008 1 file changed, 16 insertions(+), 16 deletions(-)
7009
7010commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685
7011Author: Lasse Collin <lasse.collin@tukaani.org>
7012Date:   2024-04-08 19:28:35 +0300
7013
7014    Fix NEWS for 5.6.0 and 5.6.1.
7015
7016 NEWS | 6 ++++++
7017 1 file changed, 6 insertions(+)
7018
7019commit bfd0c7c478e93a1911b845459549ff94587b6ea2
7020Author: Lasse Collin <lasse.collin@tukaani.org>
7021Date:   2024-04-08 19:22:26 +0300
7022
7023    Remove the XZ logo.
7024
7025 COPYING              |   5 -
7026 COPYING.CC-BY-SA-4.0 | 427 ---------------------------------------------------
7027 Makefile.am          |   2 -
7028 README               |   2 -
7029 doc/xz-logo.png      | Bin 6771 -> 0 bytes
7030 doxygen/Doxyfile     |   6 +-
7031 doxygen/footer.html  |  13 --
7032 7 files changed, 3 insertions(+), 452 deletions(-)
7033
7034commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4
7035Author: Lasse Collin <lasse.collin@tukaani.org>
7036Date:   2024-04-08 18:27:39 +0300
7037
7038    Update maintainer and author info.
7039
7040    The other maintainer suddenly disappeared.
7041
7042 AUTHORS                |  9 +++++++--
7043 README                 | 10 +++-------
7044 THANKS                 |  1 -
7045 src/liblzma/api/lzma.h |  2 +-
7046 4 files changed, 11 insertions(+), 11 deletions(-)
7047
7048commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072
7049Author: Lasse Collin <lasse.collin@tukaani.org>
7050Date:   2024-04-08 18:05:32 +0300
7051
7052    Docs: Update .xz file format specification to 1.2.1.
7053
7054    This only reverts the XZ URL changes.
7055
7056 doc/xz-file-format.txt | 12 ++++++++----
7057 1 file changed, 8 insertions(+), 4 deletions(-)
7058
7059commit 17aa2e1a796d3f758802df29afc89dcf335db567
7060Author: Lasse Collin <lasse.collin@tukaani.org>
7061Date:   2024-04-08 17:33:56 +0300
7062
7063    Update website URLs back to tukaani.org.
7064
7065    The XZ projects were moved back to their original URLs.
7066
7067 .github/SECURITY.md        |  2 +-
7068 CMakeLists.txt             |  2 +-
7069 COPYING                    |  3 +--
7070 README                     |  4 ++--
7071 configure.ac               |  2 +-
7072 doc/faq.txt                |  2 +-
7073 doc/lzma-file-format.txt   | 12 ++++++------
7074 dos/config.h               |  2 +-
7075 src/liblzma/api/lzma.h     |  2 +-
7076 src/xz/xz.1                |  6 +++---
7077 src/xzdec/xzdec.1          |  4 ++--
7078 windows/README-Windows.txt |  2 +-
7079 12 files changed, 21 insertions(+), 22 deletions(-)
7080
7081commit 2739db981023373a2ddabc7b456c7e658bb4f582
7082Author: Lasse Collin <lasse.collin@tukaani.org>
7083Date:   2024-04-08 17:07:08 +0300
7084
7085    xzdec: Tweak coding style and comments.
7086
7087 src/xzdec/xzdec.c | 32 +++++++++++++++++++++-----------
7088 1 file changed, 21 insertions(+), 11 deletions(-)
7089
7090commit 408b6adb2a07d07c6535f859571cca38837caaf3
7091Author: Lasse Collin <lasse.collin@tukaani.org>
7092Date:   2024-04-08 15:53:46 +0300
7093
7094    tests/ossfuzz: Tiny fix to a comment.
7095
7096 tests/ossfuzz/fuzz_decode_stream.c | 2 +-
7097 1 file changed, 1 insertion(+), 1 deletion(-)
7098
7099commit db4dd74a344580e0b81436598d9741a3454245b0
7100Author: Lasse Collin <lasse.collin@tukaani.org>
7101Date:   2024-04-09 18:22:16 +0300
7102
7103    Update THANKS.
7104
7105 THANKS | 1 +
7106 1 file changed, 1 insertion(+)
7107
7108commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754
7109Author: Lasse Collin <lasse.collin@tukaani.org>
7110Date:   2024-04-08 15:32:58 +0300
7111
7112    Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
7113
7114    While the backdoor was inactive (and thus harmless) without inserting
7115    a small trigger code into the build system when the source package was
7116    created, it's good to remove this anyway:
7117
7118      - The executable payloads were embedded as binary blobs in
7119        the test files. This was a blatant violation of the
7120        Debian Free Software Guidelines.
7121
7122      - On machines that see lots bots poking at the SSH port, the backdoor
7123        noticeably increased CPU load, resulting in degraded user experience
7124        and thus overwhelmingly negative user feedback.
7125
7126      - The maintainer who added the backdoor has disappeared.
7127
7128      - Backdoors are bad for security.
7129
7130    This reverts the following without making any other changes:
7131
7132    6e636819 Tests: Update two test files.
7133    a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
7134    0b4ccc91 Tests: Update RISC-V test files.
7135    8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
7136    82ecc538 liblzma: Fix false Valgrind error report with GCC.
7137    cf44e4b7 Tests: Add a few test files.
7138    3060e107 Tests: Use smaller dictionary size in RISC-V test files.
7139    e2870db5 Tests: Add two RISC-V Filter test files.
7140
7141    The RISC-V test files also have real content that tests the filter
7142    but the real content would fit into much smaller files. A generator
7143    program would need to be available as well.
7144
7145    Thanks to Andres Freund for finding and reporting it and making
7146    it public quickly so others could act without a delay.
7147    See: https://www.openwall.com/lists/oss-security/2024/03/29/4
7148
7149 src/liblzma/check/crc32_fast.c         |   7 +++++--
7150 src/liblzma/check/crc64_fast.c         |   4 +++-
7151 src/liblzma/check/crc_common.h         |  25 -------------------------
7152 tests/files/README                     |  27 ---------------------------
7153 tests/files/bad-3-corrupt_lzma2.xz     | Bin 512 -> 0 bytes
7154 tests/files/bad-dict_size.lzma         | Bin 41 -> 0 bytes
7155 tests/files/good-1-riscv-lzma2-1.xz    | Bin 7424 -> 0 bytes
7156 tests/files/good-1-riscv-lzma2-2.xz    | Bin 7432 -> 0 bytes
7157 tests/files/good-2cat.xz               | Bin 136 -> 0 bytes
7158 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes
7159 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes
7160 tests/test_files.sh                    |  11 -----------
7161 12 files changed, 8 insertions(+), 66 deletions(-)
7162
7163commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00
7164Author: Lasse Collin <lasse.collin@tukaani.org>
7165Date:   2024-03-30 14:36:28 +0200
7166
7167    CMake: Fix sabotaged Landlock sandbox check.
7168
7169    It never enabled it.
7170
7171 CMakeLists.txt | 2 +-
7172 1 file changed, 1 insertion(+), 1 deletion(-)
7173
7174commit af071ef7702debef4f1d324616a0137a5001c14c
7175Author: Jia Tan <jiat0218@gmail.com>
7176Date:   2024-03-26 01:50:02 +0800
7177
7178    Docs: Simplify SECURITY.md.
7179
7180 .github/SECURITY.md | 8 +-------
7181 1 file changed, 1 insertion(+), 7 deletions(-)
7182
7183commit 0b99783d63f27606936bb79a16c52d0d70c0b56f
7184Author: Lasse Collin <lasse.collin@tukaani.org>
7185Date:   2024-03-22 17:46:30 +0200
7186
7187    liblzma: memcmplen.h: Add a comment why subtraction is used.
7188
7189 src/liblzma/common/memcmplen.h | 13 +++++++++++++
7190 1 file changed, 13 insertions(+)
7191
7192commit 8a25ba024d55610c448c6e4f1400a00bae51b493
7193Author: Lasse Collin <lasse.collin@tukaani.org>
7194Date:   2024-03-15 17:43:39 +0200
7195
7196    INSTALL: Document arguments of --enable-symbol-versions.
7197
7198 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
7199 1 file changed, 39 insertions(+), 4 deletions(-)
7200
7201commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5
7202Author: Lasse Collin <lasse.collin@tukaani.org>
7203Date:   2024-03-15 17:15:50 +0200
7204
7205    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
7206
7207    This does the previous commit with CMake.
7208
7209    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
7210    be changed to AS_IF to ensure that things wont break some day.
7211    See 5a5bd7f871818029d5ccbe189f087f591258c294.
7212
7213 configure.ac | 18 +++++++++++++-----
7214 1 file changed, 13 insertions(+), 5 deletions(-)
7215
7216commit c273123ed0ebaebf49994057a7fe98aae7f42c40
7217Author: Lasse Collin <lasse.collin@tukaani.org>
7218Date:   2024-03-15 16:36:35 +0200
7219
7220    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
7221
7222    It doesn't support the __symver__ attribute or __asm__(".symver ...").
7223    The generic symbol versioning can still be used since it only needs
7224    linker support.
7225
7226 CMakeLists.txt | 7 ++++++-
7227 1 file changed, 6 insertions(+), 1 deletion(-)
7228
7229commit df7f487648d18a3992386a59b8a061edca862d17
7230Author: Lasse Collin <lasse.collin@tukaani.org>
7231Date:   2024-03-13 21:38:24 +0200
7232
7233    Update THANKS.
7234
7235 THANKS | 1 +
7236 1 file changed, 1 insertion(+)
7237
7238commit 3217b82b3ec023bf8338249134a076bea0ea30ec
7239Author: Lasse Collin <lasse.collin@tukaani.org>
7240Date:   2024-03-13 21:30:18 +0200
7241
7242    liblzma: Minor comment edits.
7243
7244 src/liblzma/common/string_conversion.c | 4 ++--
7245 src/liblzma/delta/delta_decoder.c      | 2 ++
7246 2 files changed, 4 insertions(+), 2 deletions(-)
7247
7248commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31
7249Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
7250Date:   2024-03-13 13:07:13 +0100
7251
7252    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
7253
7254    NVHPC compiler has several issues that make it impossible to
7255    build liblzma:
7256      - the compiler cannot handle unions that contain pointers that
7257        are not the first members;
7258      - the compiler cannot handle the assembler code in range_decoder.h
7259        (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
7260      - the compiler fails to produce valid code for delta_decode if the
7261        vectorization is enabled, which results in failed tests.
7262
7263    This introduces NVHPC-specific workarounds that address the issues.
7264
7265 src/liblzma/common/string_conversion.c | 6 ++++--
7266 src/liblzma/delta/delta_decoder.c      | 3 +++
7267 src/liblzma/rangecoder/range_decoder.h | 1 +
7268 3 files changed, 8 insertions(+), 2 deletions(-)
7269
7270commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62
7271Author: Lasse Collin <lasse.collin@tukaani.org>
7272Date:   2024-03-13 21:17:10 +0200
7273
7274    CMake: Disable symbol versioning on non-glibc Linux.
7275
7276    This better matches what configure.ac does. For example, musl has
7277    only basic symbol versioning support:
7278
7279    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
7280
7281    configure.ac tries to enable symbol versioning only with glibc
7282    so now CMake does the same.
7283
7284 CMakeLists.txt | 22 ++++++++++++++++++++--
7285 1 file changed, 20 insertions(+), 2 deletions(-)
7286
7287commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4
7288Author: Lasse Collin <lasse.collin@tukaani.org>
7289Date:   2024-03-13 20:32:46 +0200
7290
7291    CMake: Make symbol versioning configurable.
7292
7293 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
7294 1 file changed, 42 insertions(+), 20 deletions(-)
7295
7296commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076
7297Author: Lasse Collin <lasse.collin@tukaani.org>
7298Date:   2024-03-13 19:47:36 +0200
7299
7300    Build: Style tweaks to configure.ac.
7301
7302    The AC_MSG_ERROR line is overlong anyway as are a few other
7303    AC_MSG_ERROR lines already.
7304
7305 configure.ac | 16 +++++++++-------
7306 1 file changed, 9 insertions(+), 7 deletions(-)
7307
7308commit f56ed6fac6619b56b005878d3b5210e2f0d721c0
7309Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
7310Date:   2024-03-12 20:03:49 +0100
7311
7312    Build: Let the users override the symbol versioning variant.
7313
7314    There are cases when the users want to decide themselves whether
7315    they want to have the generic (even on GNU/Linux) or the linux
7316    (even if we do not recommend that) symbol versioning variant.
7317    The former might be needed to circumvent compiler issues (i.e.
7318    the compiler does not support all features that are required
7319    for the linux versioning), the latter might help in overriding
7320    the assumptions made in the configure script.
7321
7322 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
7323 1 file changed, 50 insertions(+), 41 deletions(-)
7324
7325commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378
7326Author: Jia Tan <jiat0218@gmail.com>
7327Date:   2024-03-09 11:27:27 +0800
7328
7329    Add NEWS for 5.6.1
7330
7331 NEWS | 26 ++++++++++++++++++++++++++
7332 1 file changed, 26 insertions(+)
7333
7334commit f01be8ad754a905d8c418601767480ec11621b02
7335Author: Jia Tan <jiat0218@gmail.com>
7336Date:   2024-03-09 10:43:20 +0800
7337
7338    Translations: Add missing --riscv option to man page translations.
7339
7340 po4a/de.po    | 702 +++++++++++++++++++++++++++++-----------------------------
7341 po4a/fr.po    | 549 ++++++++++++++++++++++-----------------------
7342 po4a/ko.po    | 702 +++++++++++++++++++++++++++++-----------------------------
7343 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++--------------------------
7344 po4a/ro.po    | 702 +++++++++++++++++++++++++++++-----------------------------
7345 po4a/uk.po    | 702 +++++++++++++++++++++++++++++-----------------------------
7346 6 files changed, 2024 insertions(+), 1974 deletions(-)
7347
7348commit 6e636819e8f070330d835fce46289a3ff72a7b89
7349Author: Jia Tan <jiat0218@gmail.com>
7350Date:   2024-03-09 10:18:29 +0800
7351
7352    Tests: Update two test files.
7353
7354    The original files were generated with random local to my machine.
7355    To better reproduce these files in the future, a constant seed was used
7356    to recreate these files.
7357
7358 tests/files/bad-3-corrupt_lzma2.xz     | Bin 484 -> 512 bytes
7359 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes
7360 2 files changed, 0 insertions(+), 0 deletions(-)
7361
7362commit a3a29bbd5d86183fc7eae8f0182dace374e778d8
7363Author: Jia Tan <jiat0218@gmail.com>
7364Date:   2024-03-09 10:08:32 +0800
7365
7366    Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
7367
7368    The first stream in this file is valid, so this tests that xz properly
7369    stops after decompressing it.
7370
7371 tests/test_files.sh | 11 +++++++++++
7372 1 file changed, 11 insertions(+)
7373
7374commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c
7375Author: Jia Tan <jiat0218@gmail.com>
7376Date:   2024-03-09 10:05:32 +0800
7377
7378    Tests: Update RISC-V test files.
7379
7380    This increases code coverage and tests for possible shifting bugs.
7381
7382 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes
7383 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes
7384 2 files changed, 0 insertions(+), 0 deletions(-)
7385
7386commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb
7387Author: Jia Tan <jiat0218@gmail.com>
7388Date:   2024-03-09 09:52:32 +0800
7389
7390    liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
7391
7392 src/liblzma/check/crc32_fast.c | 4 ++--
7393 src/liblzma/check/crc64_fast.c | 3 +--
7394 2 files changed, 3 insertions(+), 4 deletions(-)
7395
7396commit b93a8d7631d9517da63f03e0185455024a4609e8
7397Author: Jia Tan <jiat0218@gmail.com>
7398Date:   2024-03-09 09:49:55 +0800
7399
7400    Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
7401
7402    This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
7403
7404 CMakeLists.txt         | 15 ++++++++++-----
7405 configure.ac           |  9 ++-------
7406 tests/Makefile.am      |  9 ++++++---
7407 tests/test_microlzma.c | 12 ++++--------
7408 4 files changed, 22 insertions(+), 23 deletions(-)
7409
7410commit 82ecc538193b380a21622aea02b0ba078e7ade92
7411Author: Jia Tan <jiat0218@gmail.com>
7412Date:   2024-03-09 09:20:57 +0800
7413
7414    liblzma: Fix false Valgrind error report with GCC.
7415
7416    With GCC and a certain combination of flags, Valgrind will falsely
7417    trigger an invalid write. This appears to be due to the omission of
7418    instructions to properly save, set up, and restore the frame pointer.
7419
7420    The IFUNC resolver is a leaf function since it only calls a function
7421    that is inlined. So sometimes GCC omits the frame pointer instructions
7422    in the resolver unless this optimization is explictly disabled.
7423
7424    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
7425
7426 src/liblzma/check/crc32_fast.c |  9 +++------
7427 src/liblzma/check/crc64_fast.c |  7 +++----
7428 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++
7429 3 files changed, 31 insertions(+), 10 deletions(-)
7430
7431commit 3007e74ef250f0ce95d97ffbdf2282284f93764d
7432Author: Lasse Collin <lasse.collin@tukaani.org>
7433Date:   2024-03-05 23:21:26 +0200
7434
7435    liblzma: Fix a typo in a comment in the RISC-V filter.
7436
7437 src/liblzma/simple/riscv.c | 2 +-
7438 1 file changed, 1 insertion(+), 1 deletion(-)
7439
7440commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f
7441Author: Jia Tan <jiat0218@gmail.com>
7442Date:   2024-03-05 00:34:46 +0800
7443
7444    liblzma: Use attribute no_profile_instrument_function with ifunc.
7445
7446    Thanks to Sam James for determining this was the attribute needed to
7447    workaround the GCC bug and for his version of the patch in Gentoo.
7448
7449 src/liblzma/check/crc32_fast.c | 5 +++++
7450 src/liblzma/check/crc64_fast.c | 3 +++
7451 2 files changed, 8 insertions(+)
7452
7453commit e5faaebbcf02ea880cfc56edc702d4f7298788ad
7454Author: Jia Tan <jiat0218@gmail.com>
7455Date:   2024-03-05 00:27:31 +0800
7456
7457    Build: Require attribute no_profile_instrument_function for ifunc usage.
7458
7459    Using __attribute__((__no_profile_instrument_function__)) on the ifunc
7460    resolver works around a bug in GCC -fprofile-generate:
7461    it adds profiling code even to ifunc resolvers which can make
7462    the ifunc resolver crash at program startup. This attribute
7463    was not introduced until GCC 7 and Clang 13, so ifunc won't
7464    be used with prior versions of these compilers.
7465
7466    This bug was brought to our attention by:
7467
7468        https://bugs.gentoo.org/925415
7469
7470    And was reported to upstream GCC by:
7471
7472        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
7473
7474 CMakeLists.txt | 7 +++++++
7475 configure.ac   | 7 +++++++
7476 2 files changed, 14 insertions(+)
7477
7478commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7
7479Author: Lasse Collin <lasse.collin@tukaani.org>
7480Date:   2024-03-04 19:23:18 +0200
7481
7482    liblzma: Fix a comment in the RISC-V filter.
7483
7484 src/liblzma/simple/riscv.c | 4 ++--
7485 1 file changed, 2 insertions(+), 2 deletions(-)
7486
7487commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333
7488Author: Lasse Collin <lasse.collin@tukaani.org>
7489Date:   2024-02-29 16:35:52 +0200
7490
7491    CMake: Warn if translated man pages are missing.
7492
7493 CMakeLists.txt | 9 +++++++++
7494 1 file changed, 9 insertions(+)
7495
7496commit 4cd1042ee752d61370c685d0d8b20c1e935672f7
7497Author: Lasse Collin <lasse.collin@tukaani.org>
7498Date:   2024-02-29 16:35:52 +0200
7499
7500    CMake: Warn if gettext tools and pre-created .gmo files are missing.
7501
7502    It's only done with CMake >= 3.20 and if library support
7503    for translation was already found.
7504
7505    Sort of fixes: https://github.com/tukaani-project/xz/issues/82
7506
7507 CMakeLists.txt | 25 +++++++++++++++++++++++++
7508 1 file changed, 25 insertions(+)
7509
7510commit a94b42362c8e807f92236d6d63373f04991e3a50
7511Author: Lasse Collin <lasse.collin@tukaani.org>
7512Date:   2024-02-28 18:26:25 +0200
7513
7514    xz: Add comments.
7515
7516 src/xz/coder.c | 10 ++++++++++
7517 1 file changed, 10 insertions(+)
7518
7519commit bbf112e32307a75a54a9e170bc392811443d5c87
7520Author: Jia Tan <jiat0218@gmail.com>
7521Date:   2024-02-27 23:42:41 +0800
7522
7523    xz: Change logging level for thread reduction to highest verbosity only.
7524
7525    Now that multi threaded encoding is the default, users do not need to
7526    see a warning message everytime the number of threads is reduced. On
7527    some machines, this could happen very often. It is not unreasonable for
7528    users to need to set double verbose mode to see this kind of
7529    information.
7530
7531    To see these warning messages -vv or --verbose --verbose must be passed
7532    to set xz into the highest possible verbosity mode.
7533
7534    These warnings had caused automated testing frameworks to fail when they
7535    expected no output to stderr.
7536
7537    Thanks to Sebastian Andrzej Siewior for reporting this and for the
7538    initial version of the patch.
7539
7540 src/xz/coder.c | 4 ++--
7541 1 file changed, 2 insertions(+), 2 deletions(-)
7542
7543commit 649f6447441510d593a88475ad6df4bcdf74ce48
7544Author: Lasse Collin <lasse.collin@tukaani.org>
7545Date:   2024-02-26 23:06:13 +0200
7546
7547    Fix sorting in THANKS.
7548
7549 THANKS | 4 ++--
7550 1 file changed, 2 insertions(+), 2 deletions(-)
7551
7552commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa
7553Author: Jia Tan <jiat0218@gmail.com>
7554Date:   2024-02-26 23:39:29 +0800
7555
7556    Update THANKS.
7557
7558 THANKS | 1 +
7559 1 file changed, 1 insertion(+)
7560
7561commit eee579fff50099ba163c12305e81a4bd42b7dd53
7562Author: Chien Wong <m@xv97.com>
7563Date:   2024-02-25 21:38:13 +0800
7564
7565    xz: Add missing RISC-V on the filter list in the man page
7566
7567    Signed-off-by: Chien Wong <m@xv97.com>
7568
7569 src/xz/xz.1 | 4 +++-
7570 1 file changed, 3 insertions(+), 1 deletion(-)
7571
7572commit 328c52da8a2bbb81307644efdb58db2c422d9ba7
7573Author: Jia Tan <jiat0218@gmail.com>
7574Date:   2024-02-26 23:02:06 +0800
7575
7576    Build: Fix Linux Landlock feature test in Autotools and CMake builds.
7577
7578    The previous Linux Landlock feature test assumed that having the
7579    linux/landlock.h header file was enough. The new feature tests also
7580    requires that prctl() and the required Landlock system calls are
7581    supported.
7582
7583 CMakeLists.txt    | 25 ++++++++++++++++++++++---
7584 configure.ac      | 27 ++++++++++++++++++++++++++-
7585 src/xz/sandbox.c  |  2 +-
7586 src/xz/sandbox.h  |  2 +-
7587 src/xzdec/xzdec.c |  8 ++++----
7588 5 files changed, 54 insertions(+), 10 deletions(-)
7589
7590commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d
7591Author: Jia Tan <jiat0218@gmail.com>
7592Date:   2024-02-26 20:06:10 +0800
7593
7594    Tests: Add test_microlzma to .gitignore and CMakeLists.txt.
7595
7596 .gitignore     | 1 +
7597 CMakeLists.txt | 1 +
7598 2 files changed, 2 insertions(+)
7599
7600commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093
7601Author: Jia Tan <jiat0218@gmail.com>
7602Date:   2024-02-26 19:56:25 +0800
7603
7604    Tests: Correct license header in test_microlzma.c.
7605
7606 tests/test_microlzma.c | 5 ++---
7607 1 file changed, 2 insertions(+), 3 deletions(-)
7608
7609commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d
7610Author: Jia Tan <jiat0218@gmail.com>
7611Date:   2024-02-25 21:41:55 +0800
7612
7613    Fix typos in NEWS and CMakeLists.
7614
7615 CMakeLists.txt | 2 +-
7616 NEWS           | 2 +-
7617 2 files changed, 2 insertions(+), 2 deletions(-)
7618
7619commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7
7620Author: Jia Tan <jiat0218@gmail.com>
7621Date:   2024-02-24 16:30:06 +0800
7622
7623    Bump version and soname for 5.7.0alpha.
7624
7625    Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that
7626    the branch is not stable.
7627
7628    Once again there is no API/ABI stability for new features in devel
7629    versions. The major soname won't be bumped even if API/ABI of new
7630    features breaks between devel releases.
7631
7632 src/liblzma/Makefile.am         | 2 +-
7633 src/liblzma/api/lzma/version.h  | 6 +++---
7634 src/liblzma/liblzma_generic.map | 2 +-
7635 src/liblzma/liblzma_linux.map   | 2 +-
7636 4 files changed, 6 insertions(+), 6 deletions(-)
7637
7638commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
7639Author: Jia Tan <jiat0218@gmail.com>
7640Date:   2024-02-24 15:50:36 +0800
7641
7642    Add NEWS for 5.6.0.
7643
7644 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7645 1 file changed, 143 insertions(+)
7646
7647commit 24355c5280bc95e3d594432d60bb8432aa6af173
7648Author: Jia Tan <jiat0218@gmail.com>
7649Date:   2024-02-22 22:27:01 +0800
7650
7651    Translations: Remove obsolete and fuzzy matches from some translations.
7652
7653    The French and Brazilian Portuguese man page translations have not been
7654    updated since the switch from public domain to 0BSD. The old GPLv2
7655    strings have now been removed from these files.
7656
7657 po4a/fr.po    | 4702 +++++++++++++++++++++++++++++++++++++----------------
7658 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++-----------------
7659 2 files changed, 6832 insertions(+), 2857 deletions(-)
7660
7661commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1
7662Author: Jia Tan <jiat0218@gmail.com>
7663Date:   2024-02-21 00:31:54 +0800
7664
7665    Translations: Patch man pages to avoid fuzzy matches.
7666
7667    This will be fixed in the next round of translations, but this avoids
7668    having a fuzzy match or not fixing the English version.
7669
7670 po4a/de.po | 2 +-
7671 po4a/ko.po | 2 +-
7672 po4a/ro.po | 2 +-
7673 po4a/uk.po | 2 +-
7674 4 files changed, 4 insertions(+), 4 deletions(-)
7675
7676commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64
7677Author: Jia Tan <jiat0218@gmail.com>
7678Date:   2024-02-21 00:30:43 +0800
7679
7680    xzmore: Fix typo in xzmore.1.
7681
7682    Thanks to Yuri Chornoivan.
7683
7684 src/scripts/xzmore.1 | 2 +-
7685 1 file changed, 1 insertion(+), 1 deletion(-)
7686
7687commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba
7688Author: Jia Tan <jiat0218@gmail.com>
7689Date:   2024-02-24 12:12:16 +0800
7690
7691    Translations: Update the Vietnamese translation.
7692
7693 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++-------------------------
7694 1 file changed, 309 insertions(+), 196 deletions(-)
7695
7696commit a65fd7ce9d6228e87faf61dc56a35984d0088248
7697Author: Jia Tan <jiat0218@gmail.com>
7698Date:   2024-02-24 12:06:40 +0800
7699
7700    Translations: Update the Esperanto translation.
7701
7702 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++-------------------------
7703 1 file changed, 306 insertions(+), 196 deletions(-)
7704
7705commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0
7706Author: Jia Tan <jiat0218@gmail.com>
7707Date:   2024-02-23 23:09:59 +0800
7708
7709    Tests: Add a few test files.
7710
7711 tests/files/README                     |  19 +++++++++++++++++++
7712 tests/files/bad-3-corrupt_lzma2.xz     | Bin 0 -> 484 bytes
7713 tests/files/bad-dict_size.lzma         | Bin 0 -> 41 bytes
7714 tests/files/good-2cat.xz               | Bin 0 -> 136 bytes
7715 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes
7716 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes
7717 6 files changed, 19 insertions(+)
7718
7719commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73
7720Author: Jia Tan <jiat0218@gmail.com>
7721Date:   2024-02-23 20:58:36 +0800
7722
7723    Tests: Add MicroLZMA test.
7724
7725 tests/Makefile.am      |   4 +-
7726 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++
7727 2 files changed, 551 insertions(+), 1 deletion(-)
7728
7729commit adaacafde6661496ca2814b1e94a3ba5186428cb
7730Author: Jia Tan <jiat0218@gmail.com>
7731Date:   2024-02-23 20:57:59 +0800
7732
7733    Build: Define HAVE_MICROLZMA when it is configured.
7734
7735 CMakeLists.txt | 4 ++++
7736 configure.ac   | 9 +++++++--
7737 2 files changed, 11 insertions(+), 2 deletions(-)
7738
7739commit eea78216d27182ca917bf00e02feaab058a4d21e
7740Author: Jia Tan <jiat0218@gmail.com>
7741Date:   2024-02-23 20:27:15 +0800
7742
7743    xz: Fix Capsicum sandbox compile error.
7744
7745    user_abort_pipe[] was still being used instead of the parameters.
7746
7747 src/xz/sandbox.c | 4 ++--
7748 1 file changed, 2 insertions(+), 2 deletions(-)
7749
7750commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d
7751Author: Jia Tan <jiat0218@gmail.com>
7752Date:   2024-02-23 16:12:32 +0800
7753
7754    Build: Fix ARM64 CRC32 instruction feature test.
7755
7756    Old versions of Clang reported the unsupported function attribute and
7757    __crc32d() function as warnings instead of errors, so the feature test
7758    passed when it shouldn't have, causing a compile error at build time.
7759    -Werror was added to this feature test to fix this. The change is not
7760    needed for CMake because check_c_source_compiles() also performs
7761    linking and the error is caught then.
7762
7763    Thanks to Sebastian Andrzej Siewior for reporting this.
7764
7765 configure.ac | 10 ++++++++++
7766 1 file changed, 10 insertions(+)
7767
7768commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
7769Author: Lasse Collin <lasse.collin@tukaani.org>
7770Date:   2024-02-22 19:16:35 +0200
7771
7772    CMake: Add LOCALEDIR to the windres workaround.
7773
7774    LOCALEDIR may contain spaces like in "C:\Program Files".
7775
7776 CMakeLists.txt | 16 +++++++++++-----
7777 1 file changed, 11 insertions(+), 5 deletions(-)
7778
7779commit de4337fd89ca7db5feb97b5c40143404f6e22986
7780Author: Lasse Collin <lasse.collin@tukaani.org>
7781Date:   2024-02-22 15:18:25 +0200
7782
7783    xz: Landlock: Fix error message if input file is a directory.
7784
7785    If xz is given a directory, it should look like this:
7786
7787        $ xz /usr/bin
7788        xz: /usr/bin: Is a directory, skipping
7789
7790    The Landlock rules didn't allow opening directories for reading:
7791
7792        $ xz /usr/bin
7793        xz: /usr/bin: Permission denied
7794
7795    The simplest fix was to allow opening directories for reading.
7796    While it's a bit silly to allow it solely for the error message,
7797    it shouldn't make the sandbox significantly weaker.
7798
7799    The single-file use case (like when called from GNU tar) is
7800    still as strict as possible: all Landlock restrictions are
7801    enabled before (de)compression starts.
7802
7803 src/xz/sandbox.c | 15 ++++++++++++++-
7804 1 file changed, 14 insertions(+), 1 deletion(-)
7805
7806commit 120da10ae139ea52ca4275452adf8eda02d07cc8
7807Author: Lasse Collin <lasse.collin@tukaani.org>
7808Date:   2024-02-22 14:41:29 +0200
7809
7810    liblzma: Disable branchless C version in range decoder.
7811
7812    Thanks to Sebastian Andrzej Siewior and Sam James for
7813    benchmarking on various systems.
7814
7815 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++---
7816 1 file changed, 10 insertions(+), 3 deletions(-)
7817
7818commit 00440f52be9ac2c7438c7b0cb1082f12399632c6
7819Author: Lasse Collin <lasse.collin@tukaani.org>
7820Date:   2024-02-21 17:41:32 +0200
7821
7822    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
7823
7824 INSTALL | 18 +++++++++---------
7825 1 file changed, 9 insertions(+), 9 deletions(-)
7826
7827commit 11405be84ea294497e12d03d7219f607063f4a00
7828Author: Lasse Collin <lasse.collin@tukaani.org>
7829Date:   2024-02-19 18:41:37 +0200
7830
7831    Windows: build.bash: Include COPYING.0BSD in the package.
7832
7833 windows/build.bash | 2 +-
7834 1 file changed, 1 insertion(+), 1 deletion(-)
7835
7836commit c27cf64e3e27f4968431d65be7098a12a3a80d30
7837Author: Lasse Collin <lasse.collin@tukaani.org>
7838Date:   2024-02-18 17:59:46 +0200
7839
7840    Windows: build.bash: include liblzma-crt-mixing.txt in the package.
7841
7842 windows/build.bash | 6 ++++--
7843 1 file changed, 4 insertions(+), 2 deletions(-)
7844
7845commit 8d38941baed05de4ff7cc775de14833108f62184
7846Author: Lasse Collin <lasse.collin@tukaani.org>
7847Date:   2024-02-18 17:17:43 +0200
7848
7849    Windows: Major update to Windows build instructions.
7850
7851 INSTALL                                      |  68 ++++-----
7852 windows/INSTALL-MSVC.txt                     |  23 +--
7853 windows/INSTALL-MinGW-w64_with_Autotools.txt |  49 +++++++
7854 windows/INSTALL-MinGW-w64_with_CMake.txt     | 203 +++++++++++++++++++++++++++
7855 windows/INSTALL-MinGW.txt                    | 138 ------------------
7856 windows/README-Windows.txt                   |   2 +
7857 windows/build-with-cmake.bat                 |  35 +++++
7858 windows/liblzma-crt-mixing.txt               |  70 +++++++++
7859 8 files changed, 404 insertions(+), 184 deletions(-)
7860
7861commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1
7862Author: Lasse Collin <lasse.collin@tukaani.org>
7863Date:   2024-02-18 15:15:04 +0200
7864
7865    Windows: Update windows/README-Windows.txt.
7866
7867    It's for binary packages built with windows/build.bash.
7868
7869 windows/README-Windows.txt | 104 ++++++++++++++++++---------------------------
7870 1 file changed, 41 insertions(+), 63 deletions(-)
7871
7872commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
7873Author: Lasse Collin <lasse.collin@tukaani.org>
7874Date:   2024-02-18 15:15:04 +0200
7875
7876    Windows: Update windows/build.bash.
7877
7878    Support for the old MinGW was dropped. Only MinGW-w64 with GCC
7879    is supported now.
7880
7881    The script now supports also cross-compilation from GNU/Linux
7882    (tests are not run). MSYS2 and also the old MSYS 1.0.11 work
7883    for building on Windows. The i686 and x86_64 toolchains must
7884    be in PATH to build both 32-bit and 64-bit versions.
7885
7886    Parallel builds are done if "nproc" from GNU coreutils is available.
7887
7888    MinGW-w64 runtime copyright information file was renamed from
7889    COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which
7890    is the filename used by MinGW-w64 itself. Its existence
7891    is now mandatory, it's checked at the beginning of the script.
7892
7893    The file TODO is no longer copied to the package.
7894
7895 windows/build.bash | 191 +++++++++++++++++++++++++++++++----------------------
7896 1 file changed, 112 insertions(+), 79 deletions(-)
7897
7898commit 60462e42609a1d961868a1d1ebecc713c6d27e2e
7899Author: Jia Tan <jiat0218@gmail.com>
7900Date:   2024-02-20 23:32:22 +0800
7901
7902    Translations: Update the Romanian man page translations.
7903
7904 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++-----------------------------
7905 1 file changed, 875 insertions(+), 840 deletions(-)
7906
7907commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05
7908Author: Jia Tan <jiat0218@gmail.com>
7909Date:   2024-02-20 23:30:25 +0800
7910
7911    Translations: Update the Korean man page translations.
7912
7913 po4a/ko.po | 6 +++---
7914 1 file changed, 3 insertions(+), 3 deletions(-)
7915
7916commit 797a34b72ac6baff237d7a546fa941d8f78f2f62
7917Author: Jia Tan <jiat0218@gmail.com>
7918Date:   2024-02-20 21:03:53 +0800
7919
7920    Translations: Update the Spanish translation.
7921
7922 po/es.po | 6 +++---
7923 1 file changed, 3 insertions(+), 3 deletions(-)
7924
7925commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49
7926Author: Jia Tan <jiat0218@gmail.com>
7927Date:   2024-02-20 20:18:07 +0800
7928
7929    Translations: Update the Romanian translation.
7930
7931 po/ro.po | 470 ++++++++++++++++++++++++++++++---------------------------------
7932 1 file changed, 227 insertions(+), 243 deletions(-)
7933
7934commit e2d31154ecc750935436e8b62c6b073b2cfa84e3
7935Author: Jia Tan <jiat0218@gmail.com>
7936Date:   2024-02-20 20:15:50 +0800
7937
7938    Translations: Update the Croatian translation.
7939
7940 po/hr.po | 648 ++++++++++++++++++++++++++++++++++-----------------------------
7941 1 file changed, 355 insertions(+), 293 deletions(-)
7942
7943commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2
7944Author: Jia Tan <jiat0218@gmail.com>
7945Date:   2024-02-20 20:05:44 +0800
7946
7947    Translations: Update the German man page translations.
7948
7949 po4a/de.po | 1696 +++++++++++++++++++++++++++++++-----------------------------
7950 1 file changed, 873 insertions(+), 823 deletions(-)
7951
7952commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f
7953Author: Jia Tan <jiat0218@gmail.com>
7954Date:   2024-02-20 19:58:25 +0800
7955
7956    Translations: Update the German translation.
7957
7958 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------
7959 1 file changed, 225 insertions(+), 202 deletions(-)
7960
7961commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a
7962Author: Jia Tan <jiat0218@gmail.com>
7963Date:   2024-02-20 19:56:52 +0800
7964
7965    Translations: Update the Hungarian translation.
7966
7967 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++-------------------------
7968 1 file changed, 338 insertions(+), 218 deletions(-)
7969
7970commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04
7971Author: Lasse Collin <lasse.collin@tukaani.org>
7972Date:   2024-02-19 16:48:05 +0200
7973
7974    CMake: Fix building of lzmainfo when translations are enabled.
7975
7976 CMakeLists.txt | 2 ++
7977 1 file changed, 2 insertions(+)
7978
7979commit b0d1422b6037bfea6f6723683bd82a8e6d77026c
7980Author: Lasse Collin <lasse.collin@tukaani.org>
7981Date:   2024-02-19 13:38:42 +0200
7982
7983    CMake: Don't assume that -fvisibility=hidden is supported outside Windows.
7984
7985    The original code was good enough for supporting GNU/Linux
7986    and a few others but it wasn't very portable.
7987
7988    CMake doesn't support Solaris Studio's -xldscope=hidden.
7989    If it ever does, things should still work with this commit
7990    as Solaris Studio supports not only its own __global but also
7991    the GNU C __attribute__((visibility("default"))). Support for the
7992    attribute was added in 2007 to Sun Studio 12 compiler version 5.9.
7993
7994 CMakeLists.txt | 26 ++++++++++++++++++++++----
7995 1 file changed, 22 insertions(+), 4 deletions(-)
7996
7997commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c
7998Author: Lasse Collin <lasse.collin@tukaani.org>
7999Date:   2024-02-19 12:20:59 +0200
8000
8001    CMake: Revise the component splitting.
8002
8003 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++--------------------------
8004 1 file changed, 31 insertions(+), 26 deletions(-)
8005
8006commit 426bdc709c169d39b31dec410016779de117ef69
8007Author: Lasse Collin <lasse.collin@tukaani.org>
8008Date:   2024-02-17 21:45:07 +0200
8009
8010    CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release.
8011
8012 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------
8013 1 file changed, 63 insertions(+), 16 deletions(-)
8014
8015commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10
8016Author: Lasse Collin <lasse.collin@tukaani.org>
8017Date:   2024-02-17 21:27:48 +0200
8018
8019    CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release.
8020
8021    -O3 doesn't seem useful for speed but it makes the code bigger.
8022    CMake makes is difficult for users to simply override the
8023    optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because
8024    they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override
8025    CMAKE_C_FLAGS_RELEASE directly but then they have to remember to
8026    add also -DNDEBUG to disable assertions.
8027
8028    This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if
8029    CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if
8030    a custom value is passed on the command line (or reconfiguring an
8031    already-configured build), the cache variable won't be modified.
8032
8033 CMakeLists.txt | 19 +++++++++++++++++++
8034 1 file changed, 19 insertions(+)
8035
8036commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660
8037Author: Lasse Collin <lasse.collin@tukaani.org>
8038Date:   2024-02-18 14:59:52 +0200
8039
8040    CMake: Handle symbol versioning on MicroBlaze specially.
8041
8042    This is to match configure.ac.
8043
8044 CMakeLists.txt | 23 +++++++++++++++++++----
8045 1 file changed, 19 insertions(+), 4 deletions(-)
8046
8047commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce
8048Author: Lasse Collin <lasse.collin@tukaani.org>
8049Date:   2024-02-17 22:18:12 +0200
8050
8051    CMake: Keep build working even if lib/*.[ch] are removed.
8052
8053 CMakeLists.txt | 7 ++++++-
8054 1 file changed, 6 insertions(+), 1 deletion(-)
8055
8056commit d753e2ce4715552884afadc4ed6fbf8ccca6efac
8057Author: Lasse Collin <lasse.collin@tukaani.org>
8058Date:   2024-02-17 18:10:40 +0200
8059
8060    CMake: Install documentation.
8061
8062 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
8063 1 file changed, 32 insertions(+)
8064
8065commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
8066Author: Lasse Collin <lasse.collin@tukaani.org>
8067Date:   2024-02-17 15:35:35 +0200
8068
8069    CMake: Bump maximum policy version to 3.28.
8070
8071    CMP0154 doesn't affect us since we don't use FILE_SET.
8072
8073 CMakeLists.txt | 2 +-
8074 1 file changed, 1 insertion(+), 1 deletion(-)
8075
8076commit c2264ffbe3892d28930b89b0123efc369cabc143
8077Author: Lasse Collin <lasse.collin@tukaani.org>
8078Date:   2024-02-17 15:35:35 +0200
8079
8080    CMake: Build lzmainfo.
8081
8082 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
8083 1 file changed, 54 insertions(+)
8084
8085commit 998d0b29536094a89cf385a3b894e157db1ccefe
8086Author: Lasse Collin <lasse.collin@tukaani.org>
8087Date:   2024-02-17 15:35:35 +0200
8088
8089    CMake: Build lzmadec.
8090
8091 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++--------------------------
8092 1 file changed, 42 insertions(+), 34 deletions(-)
8093
8094commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9
8095Author: Lasse Collin <lasse.collin@tukaani.org>
8096Date:   2024-02-17 15:35:35 +0200
8097
8098    CMake: Add test_scripts.sh to the tests.
8099
8100    In contrast to Automake, skipping of this test when decoders
8101    are disabled is handled at CMake side instead of test_scripts.sh
8102    because CMake-build doesn't create config.h.
8103
8104 CMakeLists.txt        | 14 ++++++++++++++
8105 tests/test_scripts.sh | 13 ++++++++-----
8106 2 files changed, 22 insertions(+), 5 deletions(-)
8107
8108commit 4808f238a731befcd46c2117c62a1caaf4403989
8109Author: Lasse Collin <lasse.collin@tukaani.org>
8110Date:   2024-02-17 15:35:35 +0200
8111
8112    CMake: Install scripts.
8113
8114    Compared to the Autotools-based build, this has simpler handling
8115    for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts
8116    (configure has --enable-path-for-scripts=PREFIX). The simpler
8117    metho should be enough for non-ancient systems and Solaris.
8118
8119 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
8120 1 file changed, 82 insertions(+), 1 deletion(-)
8121
8122commit 3462362ebd94d835c664e94ad8f414cfe7590ca7
8123Author: Lasse Collin <lasse.collin@tukaani.org>
8124Date:   2024-02-17 15:35:35 +0200
8125
8126    Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@.
8127
8128    PACKAGE_VERSION was already used in liblzma.pc.in.
8129    This way only one version @foo@ is used.
8130
8131 src/scripts/xzdiff.in | 2 +-
8132 src/scripts/xzgrep.in | 2 +-
8133 src/scripts/xzless.in | 2 +-
8134 src/scripts/xzmore.in | 2 +-
8135 4 files changed, 4 insertions(+), 4 deletions(-)
8136
8137commit 67610c245ba6c68cf65991693bab9312b7dc987b
8138Author: Lasse Collin <lasse.collin@tukaani.org>
8139Date:   2024-02-17 15:35:35 +0200
8140
8141    CMake: Simplify symlink creation and install translated man pages.
8142
8143    It helps that cmake_install.cmake doesn't parallelize installation
8144    so symlinks can be created so that the target is always known to
8145    exist (a requirement on Windows in some cases).
8146
8147    This bumps the minimum CMake version from 3.13 to 3.14 to use
8148    file(CREATE_LINK ...). It could be made to work on 3.13 by
8149    calling "cmake -E create_symlink" but it's uglier code and
8150    slower in "make install". 3.14 should be a reasonable version
8151    to require nowadays, especially since the Autotools build
8152    is still the primary build system for most OSes.
8153
8154 CMakeLists.txt | 195 +++++++++++++++++++++++++++++----------------------------
8155 1 file changed, 98 insertions(+), 97 deletions(-)
8156
8157commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf
8158Author: Lasse Collin <lasse.collin@tukaani.org>
8159Date:   2024-02-17 15:35:35 +0200
8160
8161    CMake: Add support for building and installing xz with translations.
8162
8163    If gettext tools are available, the .po files listed in po/LINGUAS
8164    are converted using msgfmt. This allows building with translations
8165    directly from xz.git without Autotools.
8166
8167    If gettext tools aren't available, the Autotools-created .gmo files
8168    in the "po" directory will be used. This allows CMake-based build
8169    to use translations from Autotools-generated tarball.
8170
8171    If translation support is found (Intl_FOUND) but both the
8172    gettext tools and the pre-generated .gmo files are missing,
8173    then "make" will fail.
8174
8175 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
8176 1 file changed, 66 insertions(+), 2 deletions(-)
8177
8178commit 746c471643009947f94a3494a1148f74c7381b56
8179Author: Lasse Collin <lasse.collin@tukaani.org>
8180Date:   2024-02-19 11:58:33 +0200
8181
8182    liblzma: Remove commented-out code.
8183
8184 src/liblzma/rangecoder/range_decoder.h | 3 ---
8185 1 file changed, 3 deletions(-)
8186
8187commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7
8188Author: Lasse Collin <lasse.collin@tukaani.org>
8189Date:   2024-02-17 23:07:35 +0200
8190
8191    xz: Delete old commented-out code.
8192
8193 src/xz/message.c | 19 -------------------
8194 1 file changed, 19 deletions(-)
8195
8196commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa
8197Author: Lasse Collin <lasse.collin@tukaani.org>
8198Date:   2024-02-17 23:07:35 +0200
8199
8200    xz: Use stricter pledge(2) and Landlock sandbox.
8201
8202    This makes these sandboxing methods stricter when no files are
8203    created or deleted. That is, it's a middle ground between the
8204    initial sandbox and the strictest single-file-to-stdout sandbox:
8205    this allows opening files for reading but output has to go to stdout.
8206
8207 src/xz/main.c    | 46 +++++++++++++++++++++++++++++++++-------------
8208 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++
8209 src/xz/sandbox.h |  4 ++++
8210 3 files changed, 69 insertions(+), 13 deletions(-)
8211
8212commit 02e3505991233901575b7eabc06b2c6c62a96899
8213Author: Lasse Collin <lasse.collin@tukaani.org>
8214Date:   2024-02-17 23:07:35 +0200
8215
8216    xz: Support Landlock ABI version 4.
8217
8218    Linux 6.7 added support for ABI version 4 which restricts
8219    TCP connections which xz won't need and thus those can be
8220    forbidden now. Since the ABI version is handled at runtime,
8221    supporting version 4 won't cause any compatibility issues.
8222
8223    Note that new enough kernel headers are required to get
8224    version 4 support enabled at build time.
8225
8226 src/xz/sandbox.c | 25 ++++++++++++++++++++-----
8227 1 file changed, 20 insertions(+), 5 deletions(-)
8228
8229commit 374868d81d473ab56556a1cfd6b1b36a1fab348b
8230Author: Lasse Collin <lasse.collin@tukaani.org>
8231Date:   2024-02-17 23:07:35 +0200
8232
8233    xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.
8234
8235    Landlock is now always used just like pledge(2) is: first in more
8236    permissive mode and later (under certain common conditions) in
8237    a strict mode that doesn't allow opening more files.
8238
8239    I put pledge(2) first in sandbox.c because it's the simplest API
8240    to use and still somewhat fine-grained for basic applications.
8241    So it's the simplest thing to understand for anyone reading sandbox.c.
8242
8243 CMakeLists.txt     |   2 +
8244 src/xz/Makefile.am |   2 +
8245 src/xz/file_io.c   | 170 +-----------------------------
8246 src/xz/file_io.h   |   6 --
8247 src/xz/main.c      |  50 +++------
8248 src/xz/private.h   |   6 +-
8249 src/xz/sandbox.c   | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++
8250 src/xz/sandbox.h   |  39 +++++++
8251 8 files changed, 357 insertions(+), 213 deletions(-)
8252
8253commit 7312dfbb02197c7f990c7a3cefd027a9387d1473
8254Author: Lasse Collin <lasse.collin@tukaani.org>
8255Date:   2024-02-17 23:07:35 +0200
8256
8257    xz: Tweak comments.
8258
8259 src/xz/main.c | 4 +++-
8260 1 file changed, 3 insertions(+), 1 deletion(-)
8261
8262commit c701a5909ad9882469fbab4fab5d2d5556d3ba78
8263Author: Lasse Collin <lasse.collin@tukaani.org>
8264Date:   2024-02-17 23:07:35 +0200
8265
8266    xz: Fix message_init() description.
8267
8268    Also explicitly initialize progress_automatic to make it clear
8269    that it can be read before message_init() sets it. Static variable
8270    was initialized to false by default already so this is only for
8271    clarity.
8272
8273 src/xz/main.c    | 3 ++-
8274 src/xz/message.c | 2 +-
8275 src/xz/message.h | 5 ++++-
8276 3 files changed, 7 insertions(+), 3 deletions(-)
8277
8278commit 9466306719f3b76e92fac4e55fbfd89ec92295fa
8279Author: Lasse Collin <lasse.collin@tukaani.org>
8280Date:   2024-02-17 19:35:47 +0200
8281
8282    Build: Makefile.am: Sort EXTRA_DIST.
8283
8284    Dirs first, then files in case-sensitive ASCII order.
8285
8286 Makefile.am | 14 +++++++-------
8287 1 file changed, 7 insertions(+), 7 deletions(-)
8288
8289commit f3440e78c9517db75bfa52e1a378fad60b073bbe
8290Author: Lasse Collin <lasse.collin@tukaani.org>
8291Date:   2024-02-17 19:25:05 +0200
8292
8293    Build: Don't install TODO.
8294
8295 Makefile.am | 2 +-
8296 1 file changed, 1 insertion(+), 1 deletion(-)
8297
8298commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381
8299Author: Jia Tan <jiat0218@gmail.com>
8300Date:   2024-02-18 01:09:11 +0800
8301
8302    Translations: Update the Korean man page translations.
8303
8304 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++-----------------------------
8305 1 file changed, 871 insertions(+), 836 deletions(-)
8306
8307commit 9b315db2d5e74700f3dc0755eb86c27947c0b393
8308Author: Jia Tan <jiat0218@gmail.com>
8309Date:   2024-02-18 01:08:32 +0800
8310
8311    Translations: Update the Korean translation.
8312
8313 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------
8314 1 file changed, 223 insertions(+), 200 deletions(-)
8315
8316commit 56246607dff177b0410d140fcca4a42c865723dc
8317Author: Lasse Collin <lasse.collin@tukaani.org>
8318Date:   2024-02-17 16:23:14 +0200
8319
8320    Build: Install translated lzmainfo man pages.
8321
8322    All other translated man pages were being installed but
8323    lzmainfo had been forgotten.
8324
8325 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++
8326 1 file changed, 26 insertions(+)
8327
8328commit f1d6b88aefcced538403c5c2606ba57065b16e70
8329Author: Lasse Collin <lasse.collin@tukaani.org>
8330Date:   2024-02-17 16:01:32 +0200
8331
8332    liblzma: Avoid implementation-defined behavior in the RISC-V filter.
8333
8334    GCC docs promise that it works and a few other compilers do
8335    too. Clang/LLVM is documented source code only but unsurprisingly
8336    it behaves the same as others on x86-64 at least. But the
8337    certainly-portable way is good enough here so use that.
8338
8339 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++--------
8340 1 file changed, 22 insertions(+), 8 deletions(-)
8341
8342commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a
8343Author: Lasse Collin <lasse.collin@tukaani.org>
8344Date:   2024-02-17 15:48:28 +0200
8345
8346    liblzma: Wrap a line exceeding 80 chars.
8347
8348 src/liblzma/rangecoder/range_decoder.h | 3 ++-
8349 1 file changed, 2 insertions(+), 1 deletion(-)
8350
8351commit e9053c907250c70d98b319d95fa54cb94fc76869
8352Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
8353Date:   2024-02-16 21:50:15 +0100
8354
8355    liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
8356
8357    The x32 port has a x86-64 ABI in term of all registers but uses only
8358    32bit pointer like x86-32. The assembly optimisation fails to compile on
8359    x32. Given the state of x32 I suggest to exclude it from the
8360    optimisation rather than trying to fix it.
8361
8362    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
8363
8364 src/liblzma/rangecoder/range_decoder.h | 2 +-
8365 1 file changed, 1 insertion(+), 1 deletion(-)
8366
8367commit 3d198fb13b87f8803442e5799d465f7434a70555
8368Author: Jia Tan <jiat0218@gmail.com>
8369Date:   2024-02-17 21:05:07 +0800
8370
8371    Translations: Update the Spanish translation.
8372
8373 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------
8374 1 file changed, 226 insertions(+), 201 deletions(-)
8375
8376commit cf278bfe60a25b54b3786f06503bc61272970820
8377Author: Jia Tan <jiat0218@gmail.com>
8378Date:   2024-02-17 20:43:29 +0800
8379
8380    Translations: Update the Swedish translation.
8381
8382 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------
8383 1 file changed, 230 insertions(+), 204 deletions(-)
8384
8385commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2
8386Author: Jia Tan <jiat0218@gmail.com>
8387Date:   2024-02-17 20:41:38 +0800
8388
8389    Translations: Update the Polish translation.
8390
8391 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------
8392 1 file changed, 224 insertions(+), 200 deletions(-)
8393
8394commit d74ed48b30c631b6a4c7e7858b06828293bf8520
8395Author: Jia Tan <jiat0218@gmail.com>
8396Date:   2024-02-17 20:41:02 +0800
8397
8398    Translations: Update the Ukrainian translation.
8399
8400 po/uk.po | 2 +-
8401 1 file changed, 1 insertion(+), 1 deletion(-)
8402
8403commit 711e22d5c5f3bac39ac904efb3ede874a66e2045
8404Author: Lasse Collin <lasse.collin@tukaani.org>
8405Date:   2024-02-16 17:53:34 +0200
8406
8407    Translations: Use the same sentence in xz.pot-header that the TP uses.
8408
8409 po/xz.pot-header | 2 +-
8410 1 file changed, 1 insertion(+), 1 deletion(-)
8411
8412commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422
8413Author: Jia Tan <jiat0218@gmail.com>
8414Date:   2024-02-16 22:53:46 +0800
8415
8416    Fix typos discovered by codespell.
8417
8418 AUTHORS                                | 2 +-
8419 NEWS                                   | 2 +-
8420 src/liblzma/rangecoder/range_decoder.h | 4 ++--
8421 3 files changed, 4 insertions(+), 4 deletions(-)
8422
8423commit c64723bbb094e29b4edd98f6fcce866e1b569b42
8424Author: Jia Tan <jiat0218@gmail.com>
8425Date:   2024-02-16 22:52:41 +0800
8426
8427    Translations: Update the Ukrainian man page translations.
8428
8429 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++-----------------------------
8430 1 file changed, 873 insertions(+), 837 deletions(-)
8431
8432commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6
8433Author: Jia Tan <jiat0218@gmail.com>
8434Date:   2024-02-16 22:51:04 +0800
8435
8436    Translations: Update the Ukrainian translation.
8437
8438 po/uk.po | 466 ++++++++++++++++++++++++++++++---------------------------------
8439 1 file changed, 225 insertions(+), 241 deletions(-)
8440
8441commit 4c20781f4c8f04879b64d631a4f44b4909147bde
8442Author: Lasse Collin <lasse.collin@tukaani.org>
8443Date:   2024-02-15 22:32:52 +0200
8444
8445    Translations: Omit the generic copyright line from man page headers.
8446
8447 po4a/update-po | 1 +
8448 1 file changed, 1 insertion(+)
8449
8450commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e
8451Author: Jia Tan <jiat0218@gmail.com>
8452Date:   2024-02-15 22:26:43 +0800
8453
8454    Update m4/.gitignore.
8455
8456 m4/.gitignore | 1 +
8457 1 file changed, 1 insertion(+)
8458
8459commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
8460Author: Lasse Collin <lasse.collin@tukaani.org>
8461Date:   2024-02-14 21:11:49 +0200
8462
8463    Tests: tuktest.h: Treat Clang separately from GCC.
8464
8465    Don't assume that Clang defines __GNUC__ as the extensions
8466    are available in clang-cl as well (and possibly in some other
8467    Clang variants?).
8468
8469 tests/tuktest.h | 6 +++---
8470 1 file changed, 3 insertions(+), 3 deletions(-)
8471
8472commit cce7330b9f23485a0879422e0c3395a7065439ac
8473Author: Lasse Collin <lasse.collin@tukaani.org>
8474Date:   2024-02-14 21:11:03 +0200
8475
8476    Tests: tuktest.h: Add a missing word to a comment.
8477
8478 tests/tuktest.h | 4 ++--
8479 1 file changed, 2 insertions(+), 2 deletions(-)
8480
8481commit 5dd8fc9452a3373cedc27379067ce638f992c741
8482Author: Lasse Collin <lasse.collin@tukaani.org>
8483Date:   2024-02-14 21:10:10 +0200
8484
8485    Tests: tuktest.h: Fix the comment about STest.
8486
8487 tests/tuktest.h | 3 ++-
8488 1 file changed, 2 insertions(+), 1 deletion(-)
8489
8490commit 6f1790254a03c5edf0f2976f773220f070450acd
8491Author: Jia Tan <jiat0218@gmail.com>
8492Date:   2024-02-15 01:53:40 +0800
8493
8494    Bump version for 5.5.2beta.
8495
8496 src/liblzma/api/lzma/version.h  | 4 ++--
8497 src/liblzma/liblzma_generic.map | 2 +-
8498 src/liblzma/liblzma_linux.map   | 2 +-
8499 3 files changed, 4 insertions(+), 4 deletions(-)
8500
8501commit 924fdeedf48113fb1e0646d86bd89a356d21a055
8502Author: Lasse Collin <lasse.collin@tukaani.org>
8503Date:   2024-02-14 19:46:11 +0200
8504
8505    liblzma: Fix validate_map.sh.
8506
8507    Adding the SPDX license identifier changed the line numbers.
8508
8509 src/liblzma/validate_map.sh | 2 +-
8510 1 file changed, 1 insertion(+), 1 deletion(-)
8511
8512commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01
8513Author: Lasse Collin <lasse.collin@tukaani.org>
8514Date:   2024-02-14 19:38:34 +0200
8515
8516    Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0.
8517
8518 Makefile.am | 2 +-
8519 1 file changed, 1 insertion(+), 1 deletion(-)
8520
8521commit 0b8cefa136c21d403a01b78517f4decb50172bdb
8522Author: Lasse Collin <lasse.collin@tukaani.org>
8523Date:   2024-02-14 19:27:46 +0200
8524
8525    Fixed NEWS for 5.5.2beta.
8526
8527 NEWS | 8 ++++++--
8528 1 file changed, 6 insertions(+), 2 deletions(-)
8529
8530commit a4557bad96361d93ea171ed859ac5a696fca824f
8531Author: Lasse Collin <lasse.collin@tukaani.org>
8532Date:   2024-02-14 19:21:45 +0200
8533
8534    liblzma: Silence warnings in --enable-small build.
8535
8536 src/liblzma/lzma/lzma_decoder.c        | 2 ++
8537 src/liblzma/rangecoder/range_decoder.h | 1 +
8538 2 files changed, 3 insertions(+)
8539
8540commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2
8541Author: Lasse Collin <lasse.collin@tukaani.org>
8542Date:   2024-02-14 19:15:58 +0200
8543
8544    Build: Install COPYING.0BSD as part of docs.
8545
8546 Makefile.am | 1 +
8547 1 file changed, 1 insertion(+)
8548
8549commit b74e10bd839bcdc239afb5300ffaee195f34c217
8550Author: Lasse Collin <lasse.collin@tukaani.org>
8551Date:   2024-02-14 19:14:05 +0200
8552
8553    Docs: List COPYING.0BSD in README.
8554
8555 README | 1 +
8556 1 file changed, 1 insertion(+)
8557
8558commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e
8559Author: Lasse Collin <lasse.collin@tukaani.org>
8560Date:   2024-02-14 19:11:48 +0200
8561
8562    Docs: Include doc/examples/11_file_info.c in tarballs.
8563
8564    It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
8565    but it never got into any release tarballs because it was
8566    forgotten to be added to Makefile.am.
8567
8568 Makefile.am | 1 +
8569 1 file changed, 1 insertion(+)
8570
8571commit 160b6862646d95dfdbd73ab7f1031ede0f54992d
8572Author: Lasse Collin <lasse.collin@tukaani.org>
8573Date:   2024-02-14 19:05:58 +0200
8574
8575    liblzma: Silence a warning.
8576
8577 src/liblzma/rangecoder/range_decoder.h | 2 +-
8578 1 file changed, 1 insertion(+), 1 deletion(-)
8579
8580commit eeedd4d0925ea417add04ceb42a6c0829244b50c
8581Author: Lasse Collin <lasse.collin@tukaani.org>
8582Date:   2024-02-14 18:32:27 +0200
8583
8584    Add NEWS for 5.5.2beta.
8585
8586 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8587 1 file changed, 60 insertions(+)
8588
8589commit 8af7db854f903068d72a9a0d21103cb0c5027fa8
8590Author: Lasse Collin <lasse.collin@tukaani.org>
8591Date:   2024-02-13 14:32:47 +0200
8592
8593    xz: Mention lzmainfo if trying to use 'lzma --list'.
8594
8595    This kind of fixes the problem reported here:
8596    https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020
8597
8598 src/xz/list.c | 16 ++++++++++++++--
8599 1 file changed, 14 insertions(+), 2 deletions(-)
8600
8601commit 0668907ff736e4cd16738c10d39a2bc9e851aefb
8602Author: Lasse Collin <lasse.collin@tukaani.org>
8603Date:   2024-02-14 14:58:36 +0200
8604
8605    liblzma: Add comments.
8606
8607 src/liblzma/lzma/lzma_decoder.c        |  9 +++++++++
8608 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++--
8609 2 files changed, 18 insertions(+), 2 deletions(-)
8610
8611commit 109f1913d4824c8214d5bbd38ebebf62c37572da
8612Author: Lasse Collin <lasse.collin@tukaani.org>
8613Date:   2024-02-13 17:00:17 +0200
8614
8615    Scripts: Add lz4 support to xzgrep and xzdiff.
8616
8617 src/scripts/xzdiff.1  |  8 +++++---
8618 src/scripts/xzdiff.in | 14 +++++++++-----
8619 src/scripts/xzgrep.1  |  6 ++++--
8620 src/scripts/xzgrep.in |  1 +
8621 4 files changed, 19 insertions(+), 10 deletions(-)
8622
8623commit de55485cb23af56c5adbe3239b935c957ff8ac4f
8624Author: Lasse Collin <lasse.collin@tukaani.org>
8625Date:   2024-02-13 14:05:13 +0200
8626
8627    liblzma: Choose the range decoder variants using a bitmask macro.
8628
8629 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------
8630 1 file changed, 53 insertions(+), 11 deletions(-)
8631
8632commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5
8633Author: Lasse Collin <lasse.collin@tukaani.org>
8634Date:   2024-02-13 11:38:10 +0200
8635
8636    xz: Fix outdated threading related info on the man page.
8637
8638 src/xz/xz.1 | 22 ++++++++++++++--------
8639 1 file changed, 14 insertions(+), 8 deletions(-)
8640
8641commit 3182a330c1512cc1f5c87b5c5a272578e60a5158
8642Author: Lasse Collin <lasse.collin@tukaani.org>
8643Date:   2024-02-12 17:09:10 +0200
8644
8645    liblzma: Range decoder: Add x86-64 inline assembly.
8646
8647    It's compatible with GCC and Clang.
8648
8649 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++
8650 1 file changed, 491 insertions(+)
8651
8652commit cba2edc991dffba7cd4891dbc1bd26cb950cf053
8653Author: Lasse Collin <lasse.collin@tukaani.org>
8654Date:   2024-02-12 17:09:10 +0200
8655
8656    liblzma: Range decoder: Add branchless C code.
8657
8658    It's used only for basic bittrees and fixed-size reverse bittree
8659    because those showed a clear benefit on x86-64 with GCC and Clang.
8660    The other methods were more mixed and thus are commented out but
8661    they should be tested on other archs.
8662
8663 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++
8664 1 file changed, 76 insertions(+)
8665
8666commit e290a72d6dee71faf3a90c9678b2f730083666a7
8667Author: Lasse Collin <lasse.collin@tukaani.org>
8668Date:   2024-02-12 17:09:10 +0200
8669
8670    liblzma: Clarify a comment.
8671
8672 src/liblzma/lzma/lzma_decoder.c | 9 ++++++---
8673 1 file changed, 6 insertions(+), 3 deletions(-)
8674
8675commit 5e04706b91ca90d6befd4da24a588a55e631d4a9
8676Author: Lasse Collin <lasse.collin@tukaani.org>
8677Date:   2024-02-12 17:09:10 +0200
8678
8679    liblzma: LZMA decoder: Optimize loop comparison.
8680
8681    But now it needs one more local variable.
8682
8683 src/liblzma/lzma/lzma_decoder.c        |  5 ++---
8684 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++-
8685 2 files changed, 11 insertions(+), 4 deletions(-)
8686
8687commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66
8688Author: Lasse Collin <lasse.collin@tukaani.org>
8689Date:   2024-02-12 17:09:10 +0200
8690
8691    liblzma: Optimize literal_subcoder() macro slightly.
8692
8693 src/liblzma/lzma/lzma_common.h                 | 22 ++++++++++++----------
8694 src/liblzma/lzma/lzma_decoder.c                | 12 ++++++------
8695 src/liblzma/lzma/lzma_encoder.c                |  6 +++---
8696 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  2 +-
8697 src/liblzma/lzma/lzma_encoder_private.h        |  4 ++--
8698 5 files changed, 24 insertions(+), 22 deletions(-)
8699
8700commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5
8701Author: Lasse Collin <lasse.collin@tukaani.org>
8702Date:   2024-02-12 17:09:10 +0200
8703
8704    liblzma: LZ decoder: Add unlikely().
8705
8706 src/liblzma/lz/lz_decoder.h | 2 +-
8707 1 file changed, 1 insertion(+), 1 deletion(-)
8708
8709commit 9c252e3ed086c6b72590b2531586c42596d4a9d9
8710Author: Lasse Collin <lasse.collin@tukaani.org>
8711Date:   2024-02-12 17:09:10 +0200
8712
8713    liblzma: LZ decoder: Remove a useless unlikely().
8714
8715 src/liblzma/lz/lz_decoder.h | 2 +-
8716 1 file changed, 1 insertion(+), 1 deletion(-)
8717
8718commit f3872a59475456c5d365cad9f1c5be514cfa54b5
8719Author: Lasse Collin <lasse.collin@tukaani.org>
8720Date:   2024-02-12 17:09:10 +0200
8721
8722    liblzma: Optimize LZ decoder slightly.
8723
8724    Now extra buffer space is reserved so that repeating bytes for
8725    any single match will never need to copy from two places (both
8726    the beginning and the end of the buffer). This simplifies
8727    dict_repeat() and helps a little with speed.
8728
8729    This seems to reduce .lzma decompression time about 2 %, so
8730    with .xz and CRC it could be slightly less. The small things
8731    add up still.
8732
8733 src/liblzma/lz/lz_decoder.c     |  43 ++++++++++++-----
8734 src/liblzma/lz/lz_decoder.h     | 101 +++++++++++++++++++++-------------------
8735 src/liblzma/lzma/lzma_decoder.c |   4 +-
8736 3 files changed, 88 insertions(+), 60 deletions(-)
8737
8738commit eb518446e578acf079abae5f1ce28db7b6e59bc1
8739Author: Lasse Collin <lasse.collin@tukaani.org>
8740Date:   2024-02-12 17:09:10 +0200
8741
8742    liblzma: LZMA decoder: Get rid of next_state[].
8743
8744    It's not completely obvious if this is better in the decoder.
8745    It should be good if compiler can avoid creating a branch
8746    (like using CMOV on x86).
8747
8748    This also makes lzma_encoder.c use the new macros.
8749
8750 src/liblzma/lzma/lzma_common.h  | 14 ++++++++++++++
8751 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++----------------------
8752 src/liblzma/lzma/lzma_encoder.c |  4 ++--
8753 3 files changed, 24 insertions(+), 24 deletions(-)
8754
8755commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604
8756Author: Lasse Collin <lasse.collin@tukaani.org>
8757Date:   2024-02-12 17:09:10 +0200
8758
8759    liblzma: LZMA decoder improvements.
8760
8761    This adds macros for bittree decoding which prepares the code
8762    for alternative C versions and inline assembly.
8763
8764 src/liblzma/lzma/lzma_decoder.c        | 264 ++++++++++-----------------------
8765 src/liblzma/rangecoder/range_common.h  |   4 +
8766 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++--
8767 3 files changed, 210 insertions(+), 200 deletions(-)
8768
8769commit de5c5e417645ad8906ef914bc059d08c1462fc29
8770Author: Jia Tan <jiat0218@gmail.com>
8771Date:   2024-02-12 17:09:10 +0200
8772
8773    liblzma: Creates Non-resumable and Resumable modes for lzma_decoder.
8774
8775    The new decoder resumes the first decoder loop in the Resumable mode.
8776    Then, the code executes in Non-resumable mode until it detects that it
8777    cannot guarantee to have enough input/output to decode another symbol.
8778
8779    The Resumable mode is how the decoder has always worked. Before decoding
8780    every input bit, it checks if there is enough space and will save its
8781    location to be resumed later. When the decoder has more input/output,
8782    it jumps back to the correct sequence in the Resumable mode code.
8783
8784    When the input/output buffers are large, the Resumable mode is much
8785    slower than the Non-resumable because it has more branches and is harder
8786    for the compiler to optimize since it is in a large switch block.
8787
8788    Early benchmarking shows significant time improvement (8-10% on gcc and
8789    clang x86) by using the Non-resumable code as much as possible.
8790
8791 src/liblzma/lz/lz_decoder.h     |  14 +-
8792 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------
8793 2 files changed, 521 insertions(+), 213 deletions(-)
8794
8795commit e446ab7a18abfde18f8d1cf02a914df72b1370e3
8796Author: Jia Tan <jiat0218@gmail.com>
8797Date:   2024-02-12 17:09:10 +0200
8798
8799    liblzma: Creates separate "safe" range decoder mode.
8800
8801    The new "safe" range decoder mode is the same as old range decoder, but
8802    now the default behavior of the range decoder will not check if there is
8803    enough input or output to complete the operation. When the buffers are
8804    close to fully consumed, the "safe" operations must be used instead. This
8805    will improve speed because it will reduce the number of branches needed
8806    for most of the range decoder operations.
8807
8808 src/liblzma/lzma/lzma_decoder.c        | 108 ++++++++-------------------------
8809 src/liblzma/rangecoder/range_decoder.h |  77 +++++++++++++++++------
8810 2 files changed, 82 insertions(+), 103 deletions(-)
8811
8812commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9
8813Author: Lasse Collin <lasse.collin@tukaani.org>
8814Date:   2024-02-12 17:09:10 +0200
8815
8816    doxygen/footer.html: Add missing closing tags and don't open a new tab.
8817
8818    The footer template from Doxygen has the closing </body> </html>
8819    as Doxygen doesn't add them otherwise.
8820
8821    target="_blank" was omitted as it's not useful here but
8822    it can be slightly annoying as one cannot just go back
8823    in the browser history.
8824
8825    Since the footer links to the license file in the same
8826    directory and not to CC website, the rel attributes
8827    can be omitted.
8828
8829 doxygen/footer.html | 6 ++++--
8830 1 file changed, 4 insertions(+), 2 deletions(-)
8831
8832commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92
8833Author: Lasse Collin <lasse.collin@tukaani.org>
8834Date:   2024-02-13 13:19:10 +0200
8835
8836    Tweak the expressions in AUTHORS.
8837
8838 AUTHORS | 31 +++++++++++++++++++++++--------
8839 1 file changed, 23 insertions(+), 8 deletions(-)
8840
8841commit d231d56580175fa040fdd3c6207a58243ce6217b
8842Author: Lasse Collin <lasse.collin@tukaani.org>
8843Date:   2024-02-13 13:07:33 +0200
8844
8845    Translations: Add the man page translators into man page header comment.
8846
8847    It looked odd to only have the original English authors listed
8848    in the header comments of the translated files.
8849
8850 po4a/.gitignore |  1 +
8851 po4a/po4a.conf  | 14 +++++++-------
8852 po4a/update-po  | 18 ++++++++++++++++++
8853 3 files changed, 26 insertions(+), 7 deletions(-)
8854
8855commit 6d35fcb936474fca1acaebfd9502c097b6fde88e
8856Author: Lasse Collin <lasse.collin@tukaani.org>
8857Date:   2024-02-12 17:09:10 +0200
8858
8859    Translations: Translate also messages of lzmainfo.
8860
8861    lzmainfo has had translation support since 2009 at least but
8862    it was never added to po/POTFILES.in so the messages weren't
8863    translated. It's a very rarely needed tool so it's not too bad.
8864
8865    This also adds src/xz/mytime.c to po/POTFILES.in although there
8866    are no translatable strings. It's simpler this way so that it
8867    won't be forgotten if strings were ever added to that file.
8868
8869 po/POTFILES.in | 2 ++
8870 1 file changed, 2 insertions(+)
8871
8872commit a9f369dd54b05f9ac4e00ead9d765d04fc259868
8873Author: Lasse Collin <lasse.collin@tukaani.org>
8874Date:   2024-02-12 17:09:10 +0200
8875
8876    Translations: Add custom .pot header with SPDX license identifier.
8877
8878    The same is used for both po/xz.pot and po4a/xz-man.pot.
8879
8880 Makefile.am      | 1 +
8881 po/xz.pot-header | 7 +++++++
8882 po4a/update-po   | 8 ++++++++
8883 3 files changed, 16 insertions(+)
8884
8885commit 469cd6653bb96e83c5cf1031c204d34566b15f44
8886Author: Lasse Collin <lasse.collin@tukaani.org>
8887Date:   2024-02-12 17:09:10 +0200
8888
8889    Translations: po4a/update-po: Add copyright notice to xz-man.pot.
8890
8891    All man pages are under 0BSD now so this is simple now.
8892
8893 po4a/update-po | 2 +-
8894 1 file changed, 1 insertion(+), 1 deletion(-)
8895
8896commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699
8897Author: Lasse Collin <lasse.collin@tukaani.org>
8898Date:   2024-02-12 17:09:10 +0200
8899
8900    Update COPYING about the man pages of the scripts.
8901
8902 COPYING | 6 +++---
8903 1 file changed, 3 insertions(+), 3 deletions(-)
8904
8905commit e48287bf51afd5184ea74de1dcade9e153f873f7
8906Author: Lasse Collin <lasse.collin@tukaani.org>
8907Date:   2024-02-12 17:09:10 +0200
8908
8909    xzdiff, xzgrep, and xzmore: Rewrite the man pages.
8910
8911    The main reason is a kind of silly one:
8912
8913    xz-man.pot contains strings from all man pages in XZ Utils.
8914    The man pages of xzdiff, xzgrep, and xzmore were under GPLv2
8915    and the rest under 0BSD. Thus xz-man.pot contained strings
8916    under two licences. po4a creates the translated man pages
8917    from the combined 0BSD+GPLv2 xz-man.pot.
8918
8919    I haven't liked this mixing in xz-man.pot but the
8920    Translation Project requires that all man pages must be
8921    in the same .pot file. So a separate xz-man-gpl.pot
8922    wasn't an option.
8923
8924    Since these man pages are short, rewriting them was quick enough.
8925    Now xz-man.pot is entirely under 0BSD and marking the per-file
8926    licenses is simpler.
8927
8928    As a bonus, some wording hopefully is now slightly better
8929    although it's perhaps a matter of taste.
8930
8931    NOTE: In xzgrep.1, the EXIT STATUS section was written by me
8932    in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's
8933    why that section could be taken as is from the old xzgrep.1.
8934
8935 src/scripts/xzdiff.1 |  94 ++++++++++++++++++++++++-----------------
8936 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++-------------------
8937 src/scripts/xzmore.1 |  79 ++++++++++++++++++++---------------
8938 3 files changed, 173 insertions(+), 116 deletions(-)
8939
8940commit 3e551b111b8ae8150f1a1040364dbafc034f22be
8941Author: Lasse Collin <lasse.collin@tukaani.org>
8942Date:   2024-02-12 17:09:10 +0200
8943
8944    xzless: Update man page slightly.
8945
8946    The xz tool can decompress three file formats and xzless
8947    has always supported uncompressed files too.
8948
8949 src/scripts/xzless.1 | 8 ++++----
8950 1 file changed, 4 insertions(+), 4 deletions(-)
8951
8952commit 40f36da2262d13d6e1ba8449caa855512ae626d7
8953Author: Lasse Collin <lasse.collin@tukaani.org>
8954Date:   2024-02-12 17:09:10 +0200
8955
8956    Translations: Change po/Makevars to add a copyright notice to po/xz.pot.
8957
8958 po/Makevars | 4 ++--
8959 1 file changed, 2 insertions(+), 2 deletions(-)
8960
8961commit 24192854e2ea5c06997431a98bda3c36c5da1497
8962Author: Lasse Collin <lasse.collin@tukaani.org>
8963Date:   2024-02-12 17:09:10 +0200
8964
8965    Translations: Update po/Makevars to use the template from gettext 0.22.4.
8966
8967    Also add SPDX license identifier now that there is a known license.
8968
8969 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
8970 1 file changed, 46 insertions(+), 5 deletions(-)
8971
8972commit b94154957370116480b43bcabca25fc52deb9853
8973Author: Lasse Collin <lasse.collin@tukaani.org>
8974Date:   2024-02-12 17:09:10 +0200
8975
8976    liblzma: Include the SPDX license identifier 0BSD to generated files.
8977
8978    Perhaps the generated files aren't even copyrightable but
8979    using the same license for them as for the rest of the liblzma
8980    keeps things more consistent for tools that look for license info.
8981
8982 src/liblzma/check/crc32_table_be.h      |  4 +++-
8983 src/liblzma/check/crc32_table_le.h      |  4 +++-
8984 src/liblzma/check/crc32_tablegen.c      | 16 ++++++++++------
8985 src/liblzma/check/crc64_table_be.h      |  4 +++-
8986 src/liblzma/check/crc64_table_le.h      |  4 +++-
8987 src/liblzma/check/crc64_tablegen.c      |  8 +++++---
8988 src/liblzma/lz/lz_encoder_hash_table.h  |  4 +++-
8989 src/liblzma/lzma/fastpos_table.c        |  4 +++-
8990 src/liblzma/lzma/fastpos_tablegen.c     | 12 +++++++-----
8991 src/liblzma/rangecoder/price_table.c    |  4 +++-
8992 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++-----
8993 11 files changed, 50 insertions(+), 26 deletions(-)
8994
8995commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4
8996Author: Lasse Collin <lasse.collin@tukaani.org>
8997Date:   2024-02-12 17:09:10 +0200
8998
8999    liblzma: Fix compilation of price_tablegen.c.
9000
9001    It is built and run only manually so this didn't matter
9002    unless one wanted to regenerate the price_table.c.
9003
9004 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
9005 src/liblzma/rangecoder/range_common.h   | 5 ++++-
9006 2 files changed, 9 insertions(+), 1 deletion(-)
9007
9008commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf
9009Author: Lasse Collin <lasse.collin@tukaani.org>
9010Date:   2024-02-12 17:09:10 +0200
9011
9012    Add SPDX license identifiers to GPL, LGPL, and FSFULLR files.
9013
9014 extra/scanlzma/scanlzma.c | 2 ++
9015 lib/Makefile.am           | 2 ++
9016 lib/getopt-cdefs.h        | 2 ++
9017 lib/getopt-core.h         | 2 ++
9018 lib/getopt-ext.h          | 2 ++
9019 lib/getopt-pfx-core.h     | 2 ++
9020 lib/getopt-pfx-ext.h      | 2 ++
9021 lib/getopt.c              | 2 ++
9022 lib/getopt.in.h           | 2 ++
9023 lib/getopt1.c             | 2 ++
9024 lib/getopt_int.h          | 2 ++
9025 m4/ax_pthread.m4          | 2 ++
9026 m4/getopt.m4              | 2 ++
9027 m4/posix-shell.m4         | 2 ++
9028 m4/visibility.m4          | 2 ++
9029 src/scripts/xzdiff.1      | 3 +--
9030 src/scripts/xzdiff.in     | 1 +
9031 src/scripts/xzgrep.1      | 3 +--
9032 src/scripts/xzgrep.in     | 1 +
9033 src/scripts/xzless.in     | 1 +
9034 src/scripts/xzmore.1      | 3 +--
9035 src/scripts/xzmore.in     | 1 +
9036 22 files changed, 37 insertions(+), 6 deletions(-)
9037
9038commit 22af94128b89a131f5e58ae69bee5e50227c15da
9039Author: Lasse Collin <lasse.collin@tukaani.org>
9040Date:   2024-02-12 17:09:10 +0200
9041
9042    Add SPDX license identifier into 0BSD source code files.
9043
9044 .github/workflows/ci.yml                       | 2 ++
9045 .github/workflows/windows-ci.yml               | 2 ++
9046 CMakeLists.txt                                 | 2 ++
9047 Makefile.am                                    | 3 +--
9048 autogen.sh                                     | 1 +
9049 build-aux/ci_build.sh                          | 3 ++-
9050 build-aux/manconv.sh                           | 3 ++-
9051 build-aux/version.sh                           | 3 ++-
9052 cmake/remove-ordinals.cmake                    | 2 ++
9053 cmake/tuklib_common.cmake                      | 4 ++++
9054 cmake/tuklib_cpucores.cmake                    | 4 ++++
9055 cmake/tuklib_integer.cmake                     | 4 ++++
9056 cmake/tuklib_large_file_support.cmake          | 4 ++++
9057 cmake/tuklib_mbstr.cmake                       | 4 ++++
9058 cmake/tuklib_physmem.cmake                     | 4 ++++
9059 cmake/tuklib_progname.cmake                    | 4 ++++
9060 configure.ac                                   | 4 +++-
9061 debug/Makefile.am                              | 3 +--
9062 debug/crc32.c                                  | 2 ++
9063 debug/full_flush.c                             | 2 ++
9064 debug/hex2bin.c                                | 2 ++
9065 debug/known_sizes.c                            | 2 ++
9066 debug/memusage.c                               | 2 ++
9067 debug/repeat.c                                 | 2 ++
9068 debug/sync_flush.c                             | 2 ++
9069 debug/translation.bash                         | 1 +
9070 doc/examples/01_compress_easy.c                | 2 ++
9071 doc/examples/02_decompress.c                   | 2 ++
9072 doc/examples/03_compress_custom.c              | 2 ++
9073 doc/examples/04_compress_easy_mt.c             | 2 ++
9074 doc/examples/11_file_info.c                    | 2 ++
9075 doc/examples/Makefile                          | 3 +--
9076 dos/Makefile                                   | 2 ++
9077 dos/config.h                                   | 2 ++
9078 doxygen/update-doxygen                         | 3 ++-
9079 extra/7z2lzma/7z2lzma.bash                     | 3 ++-
9080 m4/tuklib_common.m4                            | 8 ++++++--
9081 m4/tuklib_cpucores.m4                          | 8 ++++++--
9082 m4/tuklib_integer.m4                           | 8 ++++++--
9083 m4/tuklib_mbstr.m4                             | 8 ++++++--
9084 m4/tuklib_physmem.m4                           | 8 ++++++--
9085 m4/tuklib_progname.m4                          | 8 ++++++--
9086 po/POTFILES.in                                 | 2 ++
9087 po4a/po4a.conf                                 | 2 ++
9088 po4a/update-po                                 | 3 ++-
9089 src/Makefile.am                                | 3 +--
9090 src/common/common_w32res.rc                    | 2 ++
9091 src/common/mythread.h                          | 2 ++
9092 src/common/sysdefs.h                           | 2 ++
9093 src/common/tuklib_common.h                     | 2 ++
9094 src/common/tuklib_config.h                     | 2 ++
9095 src/common/tuklib_cpucores.c                   | 2 ++
9096 src/common/tuklib_cpucores.h                   | 2 ++
9097 src/common/tuklib_exit.c                       | 2 ++
9098 src/common/tuklib_exit.h                       | 2 ++
9099 src/common/tuklib_gettext.h                    | 2 ++
9100 src/common/tuklib_integer.h                    | 2 ++
9101 src/common/tuklib_mbstr.h                      | 2 ++
9102 src/common/tuklib_mbstr_fw.c                   | 2 ++
9103 src/common/tuklib_mbstr_width.c                | 2 ++
9104 src/common/tuklib_open_stdxxx.c                | 2 ++
9105 src/common/tuklib_open_stdxxx.h                | 2 ++
9106 src/common/tuklib_physmem.c                    | 2 ++
9107 src/common/tuklib_physmem.h                    | 2 ++
9108 src/common/tuklib_progname.c                   | 2 ++
9109 src/common/tuklib_progname.h                   | 2 ++
9110 src/liblzma/Makefile.am                        | 3 +--
9111 src/liblzma/api/Makefile.am                    | 3 +--
9112 src/liblzma/api/lzma.h                         | 2 ++
9113 src/liblzma/api/lzma/base.h                    | 2 ++
9114 src/liblzma/api/lzma/bcj.h                     | 2 ++
9115 src/liblzma/api/lzma/block.h                   | 2 ++
9116 src/liblzma/api/lzma/check.h                   | 2 ++
9117 src/liblzma/api/lzma/container.h               | 2 ++
9118 src/liblzma/api/lzma/delta.h                   | 2 ++
9119 src/liblzma/api/lzma/filter.h                  | 2 ++
9120 src/liblzma/api/lzma/hardware.h                | 2 ++
9121 src/liblzma/api/lzma/index.h                   | 2 ++
9122 src/liblzma/api/lzma/index_hash.h              | 2 ++
9123 src/liblzma/api/lzma/lzma12.h                  | 2 ++
9124 src/liblzma/api/lzma/stream_flags.h            | 2 ++
9125 src/liblzma/api/lzma/version.h                 | 2 ++
9126 src/liblzma/api/lzma/vli.h                     | 2 ++
9127 src/liblzma/check/Makefile.inc                 | 4 ++--
9128 src/liblzma/check/check.c                      | 2 ++
9129 src/liblzma/check/check.h                      | 2 ++
9130 src/liblzma/check/crc32_arm64.h                | 2 ++
9131 src/liblzma/check/crc32_fast.c                 | 2 ++
9132 src/liblzma/check/crc32_small.c                | 2 ++
9133 src/liblzma/check/crc32_table.c                | 2 ++
9134 src/liblzma/check/crc32_tablegen.c             | 2 ++
9135 src/liblzma/check/crc32_x86.S                  | 2 ++
9136 src/liblzma/check/crc64_fast.c                 | 2 ++
9137 src/liblzma/check/crc64_small.c                | 2 ++
9138 src/liblzma/check/crc64_table.c                | 2 ++
9139 src/liblzma/check/crc64_tablegen.c             | 2 ++
9140 src/liblzma/check/crc64_x86.S                  | 2 ++
9141 src/liblzma/check/crc_common.h                 | 2 ++
9142 src/liblzma/check/crc_x86_clmul.h              | 2 ++
9143 src/liblzma/check/sha256.c                     | 2 ++
9144 src/liblzma/common/Makefile.inc                | 3 +--
9145 src/liblzma/common/alone_decoder.c             | 2 ++
9146 src/liblzma/common/alone_decoder.h             | 2 ++
9147 src/liblzma/common/alone_encoder.c             | 2 ++
9148 src/liblzma/common/auto_decoder.c              | 2 ++
9149 src/liblzma/common/block_buffer_decoder.c      | 2 ++
9150 src/liblzma/common/block_buffer_encoder.c      | 2 ++
9151 src/liblzma/common/block_buffer_encoder.h      | 2 ++
9152 src/liblzma/common/block_decoder.c             | 2 ++
9153 src/liblzma/common/block_decoder.h             | 2 ++
9154 src/liblzma/common/block_encoder.c             | 2 ++
9155 src/liblzma/common/block_encoder.h             | 2 ++
9156 src/liblzma/common/block_header_decoder.c      | 2 ++
9157 src/liblzma/common/block_header_encoder.c      | 2 ++
9158 src/liblzma/common/block_util.c                | 2 ++
9159 src/liblzma/common/common.c                    | 2 ++
9160 src/liblzma/common/common.h                    | 2 ++
9161 src/liblzma/common/easy_buffer_encoder.c       | 2 ++
9162 src/liblzma/common/easy_decoder_memusage.c     | 2 ++
9163 src/liblzma/common/easy_encoder.c              | 2 ++
9164 src/liblzma/common/easy_encoder_memusage.c     | 2 ++
9165 src/liblzma/common/easy_preset.c               | 2 ++
9166 src/liblzma/common/easy_preset.h               | 2 ++
9167 src/liblzma/common/file_info.c                 | 2 ++
9168 src/liblzma/common/filter_buffer_decoder.c     | 2 ++
9169 src/liblzma/common/filter_buffer_encoder.c     | 2 ++
9170 src/liblzma/common/filter_common.c             | 2 ++
9171 src/liblzma/common/filter_common.h             | 2 ++
9172 src/liblzma/common/filter_decoder.c            | 2 ++
9173 src/liblzma/common/filter_decoder.h            | 2 ++
9174 src/liblzma/common/filter_encoder.c            | 2 ++
9175 src/liblzma/common/filter_encoder.h            | 2 ++
9176 src/liblzma/common/filter_flags_decoder.c      | 2 ++
9177 src/liblzma/common/filter_flags_encoder.c      | 2 ++
9178 src/liblzma/common/hardware_cputhreads.c       | 2 ++
9179 src/liblzma/common/hardware_physmem.c          | 2 ++
9180 src/liblzma/common/index.c                     | 2 ++
9181 src/liblzma/common/index.h                     | 2 ++
9182 src/liblzma/common/index_decoder.c             | 2 ++
9183 src/liblzma/common/index_decoder.h             | 2 ++
9184 src/liblzma/common/index_encoder.c             | 2 ++
9185 src/liblzma/common/index_encoder.h             | 2 ++
9186 src/liblzma/common/index_hash.c                | 2 ++
9187 src/liblzma/common/lzip_decoder.c              | 2 ++
9188 src/liblzma/common/lzip_decoder.h              | 2 ++
9189 src/liblzma/common/memcmplen.h                 | 2 ++
9190 src/liblzma/common/microlzma_decoder.c         | 2 ++
9191 src/liblzma/common/microlzma_encoder.c         | 2 ++
9192 src/liblzma/common/outqueue.c                  | 2 ++
9193 src/liblzma/common/outqueue.h                  | 2 ++
9194 src/liblzma/common/stream_buffer_decoder.c     | 2 ++
9195 src/liblzma/common/stream_buffer_encoder.c     | 2 ++
9196 src/liblzma/common/stream_decoder.c            | 2 ++
9197 src/liblzma/common/stream_decoder.h            | 2 ++
9198 src/liblzma/common/stream_decoder_mt.c         | 2 ++
9199 src/liblzma/common/stream_encoder.c            | 2 ++
9200 src/liblzma/common/stream_encoder_mt.c         | 2 ++
9201 src/liblzma/common/stream_flags_common.c       | 2 ++
9202 src/liblzma/common/stream_flags_common.h       | 2 ++
9203 src/liblzma/common/stream_flags_decoder.c      | 2 ++
9204 src/liblzma/common/stream_flags_encoder.c      | 2 ++
9205 src/liblzma/common/string_conversion.c         | 2 ++
9206 src/liblzma/common/vli_decoder.c               | 2 ++
9207 src/liblzma/common/vli_encoder.c               | 2 ++
9208 src/liblzma/common/vli_size.c                  | 2 ++
9209 src/liblzma/delta/Makefile.inc                 | 3 +--
9210 src/liblzma/delta/delta_common.c               | 2 ++
9211 src/liblzma/delta/delta_common.h               | 2 ++
9212 src/liblzma/delta/delta_decoder.c              | 2 ++
9213 src/liblzma/delta/delta_decoder.h              | 2 ++
9214 src/liblzma/delta/delta_encoder.c              | 2 ++
9215 src/liblzma/delta/delta_encoder.h              | 2 ++
9216 src/liblzma/delta/delta_private.h              | 2 ++
9217 src/liblzma/liblzma.pc.in                      | 3 +--
9218 src/liblzma/liblzma_generic.map                | 2 ++
9219 src/liblzma/liblzma_linux.map                  | 2 ++
9220 src/liblzma/liblzma_w32res.rc                  | 2 ++
9221 src/liblzma/lz/Makefile.inc                    | 3 +--
9222 src/liblzma/lz/lz_decoder.c                    | 2 ++
9223 src/liblzma/lz/lz_decoder.h                    | 2 ++
9224 src/liblzma/lz/lz_encoder.c                    | 2 ++
9225 src/liblzma/lz/lz_encoder.h                    | 2 ++
9226 src/liblzma/lz/lz_encoder_hash.h               | 2 ++
9227 src/liblzma/lz/lz_encoder_mf.c                 | 2 ++
9228 src/liblzma/lzma/Makefile.inc                  | 3 +--
9229 src/liblzma/lzma/fastpos.h                     | 2 ++
9230 src/liblzma/lzma/fastpos_tablegen.c            | 2 ++
9231 src/liblzma/lzma/lzma2_decoder.c               | 2 ++
9232 src/liblzma/lzma/lzma2_decoder.h               | 2 ++
9233 src/liblzma/lzma/lzma2_encoder.c               | 2 ++
9234 src/liblzma/lzma/lzma2_encoder.h               | 2 ++
9235 src/liblzma/lzma/lzma_common.h                 | 2 ++
9236 src/liblzma/lzma/lzma_decoder.c                | 2 ++
9237 src/liblzma/lzma/lzma_decoder.h                | 2 ++
9238 src/liblzma/lzma/lzma_encoder.c                | 2 ++
9239 src/liblzma/lzma/lzma_encoder.h                | 2 ++
9240 src/liblzma/lzma/lzma_encoder_optimum_fast.c   | 2 ++
9241 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++
9242 src/liblzma/lzma/lzma_encoder_presets.c        | 2 ++
9243 src/liblzma/lzma/lzma_encoder_private.h        | 2 ++
9244 src/liblzma/rangecoder/Makefile.inc            | 3 +--
9245 src/liblzma/rangecoder/price.h                 | 2 ++
9246 src/liblzma/rangecoder/price_tablegen.c        | 2 ++
9247 src/liblzma/rangecoder/range_common.h          | 2 ++
9248 src/liblzma/rangecoder/range_decoder.h         | 2 ++
9249 src/liblzma/rangecoder/range_encoder.h         | 2 ++
9250 src/liblzma/simple/Makefile.inc                | 3 +--
9251 src/liblzma/simple/arm.c                       | 2 ++
9252 src/liblzma/simple/arm64.c                     | 2 ++
9253 src/liblzma/simple/armthumb.c                  | 2 ++
9254 src/liblzma/simple/ia64.c                      | 2 ++
9255 src/liblzma/simple/powerpc.c                   | 2 ++
9256 src/liblzma/simple/riscv.c                     | 2 ++
9257 src/liblzma/simple/simple_coder.c              | 2 ++
9258 src/liblzma/simple/simple_coder.h              | 2 ++
9259 src/liblzma/simple/simple_decoder.c            | 2 ++
9260 src/liblzma/simple/simple_decoder.h            | 2 ++
9261 src/liblzma/simple/simple_encoder.c            | 2 ++
9262 src/liblzma/simple/simple_encoder.h            | 2 ++
9263 src/liblzma/simple/simple_private.h            | 2 ++
9264 src/liblzma/simple/sparc.c                     | 2 ++
9265 src/liblzma/simple/x86.c                       | 2 ++
9266 src/liblzma/validate_map.sh                    | 1 +
9267 src/lzmainfo/Makefile.am                       | 3 +--
9268 src/lzmainfo/lzmainfo.c                        | 2 ++
9269 src/lzmainfo/lzmainfo_w32res.rc                | 2 ++
9270 src/scripts/Makefile.am                        | 3 +--
9271 src/xz/Makefile.am                             | 3 +--
9272 src/xz/args.c                                  | 2 ++
9273 src/xz/args.h                                  | 2 ++
9274 src/xz/coder.c                                 | 2 ++
9275 src/xz/coder.h                                 | 2 ++
9276 src/xz/file_io.c                               | 2 ++
9277 src/xz/file_io.h                               | 2 ++
9278 src/xz/hardware.c                              | 2 ++
9279 src/xz/hardware.h                              | 2 ++
9280 src/xz/list.c                                  | 2 ++
9281 src/xz/list.h                                  | 2 ++
9282 src/xz/main.c                                  | 2 ++
9283 src/xz/main.h                                  | 2 ++
9284 src/xz/message.c                               | 2 ++
9285 src/xz/message.h                               | 2 ++
9286 src/xz/mytime.c                                | 2 ++
9287 src/xz/mytime.h                                | 2 ++
9288 src/xz/options.c                               | 2 ++
9289 src/xz/options.h                               | 2 ++
9290 src/xz/private.h                               | 2 ++
9291 src/xz/signals.c                               | 2 ++
9292 src/xz/signals.h                               | 2 ++
9293 src/xz/suffix.c                                | 2 ++
9294 src/xz/suffix.h                                | 2 ++
9295 src/xz/util.c                                  | 2 ++
9296 src/xz/util.h                                  | 2 ++
9297 src/xz/xz_w32res.rc                            | 2 ++
9298 src/xzdec/Makefile.am                          | 3 +--
9299 src/xzdec/lzmadec_w32res.rc                    | 2 ++
9300 src/xzdec/xzdec.c                              | 2 ++
9301 src/xzdec/xzdec_w32res.rc                      | 2 ++
9302 tests/Makefile.am                              | 3 +--
9303 tests/bcj_test.c                               | 2 ++
9304 tests/code_coverage.sh                         | 1 +
9305 tests/create_compress_files.c                  | 2 ++
9306 tests/ossfuzz/fuzz_common.h                    | 2 ++
9307 tests/ossfuzz/fuzz_decode_alone.c              | 2 ++
9308 tests/ossfuzz/fuzz_decode_stream.c             | 2 ++
9309 tests/ossfuzz/fuzz_encode_stream.c             | 2 ++
9310 tests/test_bcj_exact_size.c                    | 2 ++
9311 tests/test_block_header.c                      | 2 ++
9312 tests/test_check.c                             | 2 ++
9313 tests/test_compress.sh                         | 1 +
9314 tests/test_compress_generated_abc              | 1 +
9315 tests/test_compress_generated_random           | 1 +
9316 tests/test_compress_generated_text             | 1 +
9317 tests/test_compress_prepared_bcj_sparc         | 1 +
9318 tests/test_compress_prepared_bcj_x86           | 1 +
9319 tests/test_files.sh                            | 1 +
9320 tests/test_filter_flags.c                      | 2 ++
9321 tests/test_filter_str.c                        | 2 ++
9322 tests/test_hardware.c                          | 2 ++
9323 tests/test_index.c                             | 2 ++
9324 tests/test_index_hash.c                        | 2 ++
9325 tests/test_lzip_decoder.c                      | 2 ++
9326 tests/test_memlimit.c                          | 2 ++
9327 tests/test_scripts.sh                          | 1 +
9328 tests/test_stream_flags.c                      | 2 ++
9329 tests/test_suffix.sh                           | 1 +
9330 tests/test_vli.c                               | 2 ++
9331 tests/tests.h                                  | 2 ++
9332 tests/tuktest.h                                | 2 ++
9333 windows/build.bash                             | 3 ++-
9334 290 files changed, 588 insertions(+), 58 deletions(-)
9335
9336commit 23de53421ea258cde6a3c33a038b1e9d08f771d1
9337Author: Lasse Collin <lasse.collin@tukaani.org>
9338Date:   2024-02-12 23:25:54 +0200
9339
9340    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
9341
9342 src/liblzma/api/lzma.h | 10 ++++------
9343 1 file changed, 4 insertions(+), 6 deletions(-)
9344
9345commit 689e0228baeb95232430e90d628379db89583d71
9346Author: Lasse Collin <lasse.collin@tukaani.org>
9347Date:   2024-02-12 17:09:10 +0200
9348
9349    Change most public domain parts to 0BSD.
9350
9351    Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
9352    were not touched.
9353
9354    COPYING.0BSD was added.
9355
9356 .github/workflows/ci.yml                       |   3 -
9357 .github/workflows/windows-ci.yml               |   3 -
9358 CMakeLists.txt                                 |   3 -
9359 COPYING                                        | 112 ++++++++++++++-----------
9360 COPYING.0BSD                                   |  11 +++
9361 Makefile.am                                    |   3 -
9362 PACKAGERS                                      |  11 +--
9363 autogen.sh                                     |   3 -
9364 build-aux/ci_build.sh                          |   3 -
9365 build-aux/manconv.sh                           |   3 -
9366 build-aux/version.sh                           |   3 -
9367 cmake/remove-ordinals.cmake                    |   3 -
9368 cmake/tuklib_common.cmake                      |   3 -
9369 cmake/tuklib_cpucores.cmake                    |   3 -
9370 cmake/tuklib_integer.cmake                     |   3 -
9371 cmake/tuklib_large_file_support.cmake          |   3 -
9372 cmake/tuklib_mbstr.cmake                       |   3 -
9373 cmake/tuklib_physmem.cmake                     |   3 -
9374 cmake/tuklib_progname.cmake                    |   3 -
9375 configure.ac                                   |   3 -
9376 debug/Makefile.am                              |   3 -
9377 debug/crc32.c                                  |   3 -
9378 debug/full_flush.c                             |   3 -
9379 debug/hex2bin.c                                |   3 -
9380 debug/known_sizes.c                            |   3 -
9381 debug/memusage.c                               |   3 -
9382 debug/repeat.c                                 |   3 -
9383 debug/sync_flush.c                             |   3 -
9384 debug/translation.bash                         |   3 -
9385 doc/examples/01_compress_easy.c                |   3 -
9386 doc/examples/02_decompress.c                   |   3 -
9387 doc/examples/03_compress_custom.c              |   3 -
9388 doc/examples/04_compress_easy_mt.c             |   3 -
9389 doc/examples/11_file_info.c                    |   3 -
9390 doc/examples/Makefile                          |   3 -
9391 dos/Makefile                                   |   3 -
9392 doxygen/update-doxygen                         |   3 -
9393 extra/7z2lzma/7z2lzma.bash                     |   3 -
9394 m4/tuklib_common.m4                            |   3 -
9395 m4/tuklib_cpucores.m4                          |   3 -
9396 m4/tuklib_integer.m4                           |   3 -
9397 m4/tuklib_mbstr.m4                             |   3 -
9398 m4/tuklib_physmem.m4                           |   3 -
9399 m4/tuklib_progname.m4                          |   3 -
9400 po4a/update-po                                 |   3 -
9401 src/Makefile.am                                |   3 -
9402 src/common/common_w32res.rc                    |   3 -
9403 src/common/mythread.h                          |   3 -
9404 src/common/sysdefs.h                           |   3 -
9405 src/common/tuklib_common.h                     |   3 -
9406 src/common/tuklib_cpucores.c                   |   3 -
9407 src/common/tuklib_cpucores.h                   |   3 -
9408 src/common/tuklib_exit.c                       |   3 -
9409 src/common/tuklib_exit.h                       |   3 -
9410 src/common/tuklib_gettext.h                    |   3 -
9411 src/common/tuklib_integer.h                    |   3 -
9412 src/common/tuklib_mbstr.h                      |   3 -
9413 src/common/tuklib_mbstr_fw.c                   |   3 -
9414 src/common/tuklib_mbstr_width.c                |   3 -
9415 src/common/tuklib_open_stdxxx.c                |   3 -
9416 src/common/tuklib_open_stdxxx.h                |   3 -
9417 src/common/tuklib_physmem.c                    |   3 -
9418 src/common/tuklib_physmem.h                    |   3 -
9419 src/common/tuklib_progname.c                   |   3 -
9420 src/common/tuklib_progname.h                   |   3 -
9421 src/liblzma/Makefile.am                        |   3 -
9422 src/liblzma/api/Makefile.am                    |   3 -
9423 src/liblzma/api/lzma.h                         |  13 ++-
9424 src/liblzma/api/lzma/base.h                    |   3 -
9425 src/liblzma/api/lzma/bcj.h                     |   3 -
9426 src/liblzma/api/lzma/block.h                   |   3 -
9427 src/liblzma/api/lzma/check.h                   |   3 -
9428 src/liblzma/api/lzma/container.h               |   3 -
9429 src/liblzma/api/lzma/delta.h                   |   3 -
9430 src/liblzma/api/lzma/filter.h                  |   3 -
9431 src/liblzma/api/lzma/hardware.h                |   3 -
9432 src/liblzma/api/lzma/index.h                   |   3 -
9433 src/liblzma/api/lzma/index_hash.h              |   3 -
9434 src/liblzma/api/lzma/lzma12.h                  |   3 -
9435 src/liblzma/api/lzma/stream_flags.h            |   3 -
9436 src/liblzma/api/lzma/version.h                 |   3 -
9437 src/liblzma/api/lzma/vli.h                     |   3 -
9438 src/liblzma/check/Makefile.inc                 |   3 -
9439 src/liblzma/check/check.c                      |   3 -
9440 src/liblzma/check/check.h                      |   3 -
9441 src/liblzma/check/crc32_arm64.h                |   3 -
9442 src/liblzma/check/crc32_fast.c                 |   3 -
9443 src/liblzma/check/crc32_small.c                |   3 -
9444 src/liblzma/check/crc32_table.c                |   3 -
9445 src/liblzma/check/crc32_tablegen.c             |   3 -
9446 src/liblzma/check/crc32_x86.S                  |   3 -
9447 src/liblzma/check/crc64_fast.c                 |   3 -
9448 src/liblzma/check/crc64_small.c                |   3 -
9449 src/liblzma/check/crc64_table.c                |   3 -
9450 src/liblzma/check/crc64_tablegen.c             |   3 -
9451 src/liblzma/check/crc64_x86.S                  |   3 -
9452 src/liblzma/check/crc_common.h                 |   3 -
9453 src/liblzma/check/crc_x86_clmul.h              |   3 -
9454 src/liblzma/check/sha256.c                     |   3 -
9455 src/liblzma/common/Makefile.inc                |   3 -
9456 src/liblzma/common/alone_decoder.c             |   3 -
9457 src/liblzma/common/alone_decoder.h             |   3 -
9458 src/liblzma/common/alone_encoder.c             |   3 -
9459 src/liblzma/common/auto_decoder.c              |   3 -
9460 src/liblzma/common/block_buffer_decoder.c      |   3 -
9461 src/liblzma/common/block_buffer_encoder.c      |   3 -
9462 src/liblzma/common/block_buffer_encoder.h      |   3 -
9463 src/liblzma/common/block_decoder.c             |   3 -
9464 src/liblzma/common/block_decoder.h             |   3 -
9465 src/liblzma/common/block_encoder.c             |   3 -
9466 src/liblzma/common/block_encoder.h             |   3 -
9467 src/liblzma/common/block_header_decoder.c      |   3 -
9468 src/liblzma/common/block_header_encoder.c      |   3 -
9469 src/liblzma/common/block_util.c                |   3 -
9470 src/liblzma/common/common.c                    |   3 -
9471 src/liblzma/common/common.h                    |   3 -
9472 src/liblzma/common/easy_buffer_encoder.c       |   3 -
9473 src/liblzma/common/easy_decoder_memusage.c     |   3 -
9474 src/liblzma/common/easy_encoder.c              |   3 -
9475 src/liblzma/common/easy_encoder_memusage.c     |   3 -
9476 src/liblzma/common/easy_preset.c               |   3 -
9477 src/liblzma/common/easy_preset.h               |   3 -
9478 src/liblzma/common/file_info.c                 |   3 -
9479 src/liblzma/common/filter_buffer_decoder.c     |   3 -
9480 src/liblzma/common/filter_buffer_encoder.c     |   3 -
9481 src/liblzma/common/filter_common.c             |   3 -
9482 src/liblzma/common/filter_common.h             |   3 -
9483 src/liblzma/common/filter_decoder.c            |   3 -
9484 src/liblzma/common/filter_decoder.h            |   3 -
9485 src/liblzma/common/filter_encoder.c            |   3 -
9486 src/liblzma/common/filter_encoder.h            |   3 -
9487 src/liblzma/common/filter_flags_decoder.c      |   3 -
9488 src/liblzma/common/filter_flags_encoder.c      |   3 -
9489 src/liblzma/common/hardware_cputhreads.c       |   3 -
9490 src/liblzma/common/hardware_physmem.c          |   3 -
9491 src/liblzma/common/index.c                     |   3 -
9492 src/liblzma/common/index.h                     |   3 -
9493 src/liblzma/common/index_decoder.c             |   3 -
9494 src/liblzma/common/index_decoder.h             |   3 -
9495 src/liblzma/common/index_encoder.c             |   3 -
9496 src/liblzma/common/index_encoder.h             |   3 -
9497 src/liblzma/common/index_hash.c                |   3 -
9498 src/liblzma/common/lzip_decoder.c              |   3 -
9499 src/liblzma/common/lzip_decoder.h              |   3 -
9500 src/liblzma/common/memcmplen.h                 |   3 -
9501 src/liblzma/common/microlzma_decoder.c         |   3 -
9502 src/liblzma/common/microlzma_encoder.c         |   3 -
9503 src/liblzma/common/outqueue.c                  |   3 -
9504 src/liblzma/common/outqueue.h                  |   3 -
9505 src/liblzma/common/stream_buffer_decoder.c     |   3 -
9506 src/liblzma/common/stream_buffer_encoder.c     |   3 -
9507 src/liblzma/common/stream_decoder.c            |   3 -
9508 src/liblzma/common/stream_decoder.h            |   3 -
9509 src/liblzma/common/stream_decoder_mt.c         |   3 -
9510 src/liblzma/common/stream_encoder.c            |   3 -
9511 src/liblzma/common/stream_encoder_mt.c         |   3 -
9512 src/liblzma/common/stream_flags_common.c       |   3 -
9513 src/liblzma/common/stream_flags_common.h       |   3 -
9514 src/liblzma/common/stream_flags_decoder.c      |   3 -
9515 src/liblzma/common/stream_flags_encoder.c      |   3 -
9516 src/liblzma/common/string_conversion.c         |   3 -
9517 src/liblzma/common/vli_decoder.c               |   3 -
9518 src/liblzma/common/vli_encoder.c               |   3 -
9519 src/liblzma/common/vli_size.c                  |   3 -
9520 src/liblzma/delta/Makefile.inc                 |   3 -
9521 src/liblzma/delta/delta_common.c               |   3 -
9522 src/liblzma/delta/delta_common.h               |   3 -
9523 src/liblzma/delta/delta_decoder.c              |   3 -
9524 src/liblzma/delta/delta_decoder.h              |   3 -
9525 src/liblzma/delta/delta_encoder.c              |   3 -
9526 src/liblzma/delta/delta_encoder.h              |   3 -
9527 src/liblzma/delta/delta_private.h              |   3 -
9528 src/liblzma/liblzma.pc.in                      |   3 -
9529 src/liblzma/liblzma_w32res.rc                  |   3 -
9530 src/liblzma/lz/Makefile.inc                    |   3 -
9531 src/liblzma/lz/lz_decoder.c                    |   3 -
9532 src/liblzma/lz/lz_decoder.h                    |   3 -
9533 src/liblzma/lz/lz_encoder.c                    |   3 -
9534 src/liblzma/lz/lz_encoder.h                    |   3 -
9535 src/liblzma/lz/lz_encoder_hash.h               |   3 -
9536 src/liblzma/lz/lz_encoder_mf.c                 |   3 -
9537 src/liblzma/lzma/Makefile.inc                  |   3 -
9538 src/liblzma/lzma/fastpos.h                     |   3 -
9539 src/liblzma/lzma/fastpos_tablegen.c            |   3 -
9540 src/liblzma/lzma/lzma2_decoder.c               |   3 -
9541 src/liblzma/lzma/lzma2_decoder.h               |   3 -
9542 src/liblzma/lzma/lzma2_encoder.c               |   3 -
9543 src/liblzma/lzma/lzma2_encoder.h               |   3 -
9544 src/liblzma/lzma/lzma_common.h                 |   3 -
9545 src/liblzma/lzma/lzma_decoder.c                |   3 -
9546 src/liblzma/lzma/lzma_decoder.h                |   3 -
9547 src/liblzma/lzma/lzma_encoder.c                |   3 -
9548 src/liblzma/lzma/lzma_encoder.h                |   3 -
9549 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 -
9550 src/liblzma/lzma/lzma_encoder_optimum_normal.c |   3 -
9551 src/liblzma/lzma/lzma_encoder_presets.c        |   3 -
9552 src/liblzma/lzma/lzma_encoder_private.h        |   3 -
9553 src/liblzma/rangecoder/Makefile.inc            |   3 -
9554 src/liblzma/rangecoder/price.h                 |   3 -
9555 src/liblzma/rangecoder/price_tablegen.c        |   3 -
9556 src/liblzma/rangecoder/range_common.h          |   3 -
9557 src/liblzma/rangecoder/range_decoder.h         |   3 -
9558 src/liblzma/rangecoder/range_encoder.h         |   3 -
9559 src/liblzma/simple/Makefile.inc                |   3 -
9560 src/liblzma/simple/arm.c                       |   3 -
9561 src/liblzma/simple/arm64.c                     |   3 -
9562 src/liblzma/simple/armthumb.c                  |   3 -
9563 src/liblzma/simple/ia64.c                      |   3 -
9564 src/liblzma/simple/powerpc.c                   |   3 -
9565 src/liblzma/simple/riscv.c                     |   3 -
9566 src/liblzma/simple/simple_coder.c              |   3 -
9567 src/liblzma/simple/simple_coder.h              |   3 -
9568 src/liblzma/simple/simple_decoder.c            |   3 -
9569 src/liblzma/simple/simple_decoder.h            |   3 -
9570 src/liblzma/simple/simple_encoder.c            |   3 -
9571 src/liblzma/simple/simple_encoder.h            |   3 -
9572 src/liblzma/simple/simple_private.h            |   3 -
9573 src/liblzma/simple/sparc.c                     |   3 -
9574 src/liblzma/simple/x86.c                       |   3 -
9575 src/liblzma/validate_map.sh                    |   3 -
9576 src/lzmainfo/Makefile.am                       |   3 -
9577 src/lzmainfo/lzmainfo.1                        |   4 +-
9578 src/lzmainfo/lzmainfo.c                        |   3 -
9579 src/lzmainfo/lzmainfo_w32res.rc                |   3 -
9580 src/scripts/Makefile.am                        |   3 -
9581 src/scripts/xzless.1                           |   4 +-
9582 src/xz/Makefile.am                             |   3 -
9583 src/xz/args.c                                  |   3 -
9584 src/xz/args.h                                  |   3 -
9585 src/xz/coder.c                                 |   3 -
9586 src/xz/coder.h                                 |   3 -
9587 src/xz/file_io.c                               |   3 -
9588 src/xz/file_io.h                               |   3 -
9589 src/xz/hardware.c                              |   3 -
9590 src/xz/hardware.h                              |   3 -
9591 src/xz/list.c                                  |   3 -
9592 src/xz/list.h                                  |   3 -
9593 src/xz/main.c                                  |   3 -
9594 src/xz/main.h                                  |   3 -
9595 src/xz/message.c                               |   3 -
9596 src/xz/message.h                               |   3 -
9597 src/xz/mytime.c                                |   3 -
9598 src/xz/mytime.h                                |   3 -
9599 src/xz/options.c                               |   3 -
9600 src/xz/options.h                               |   3 -
9601 src/xz/private.h                               |   3 -
9602 src/xz/signals.c                               |   3 -
9603 src/xz/signals.h                               |   3 -
9604 src/xz/suffix.c                                |   3 -
9605 src/xz/suffix.h                                |   3 -
9606 src/xz/util.c                                  |   3 -
9607 src/xz/util.h                                  |   3 -
9608 src/xz/xz.1                                    |   4 +-
9609 src/xz/xz_w32res.rc                            |   3 -
9610 src/xzdec/Makefile.am                          |   3 -
9611 src/xzdec/lzmadec_w32res.rc                    |   3 -
9612 src/xzdec/xzdec.1                              |   4 +-
9613 src/xzdec/xzdec.c                              |   3 -
9614 src/xzdec/xzdec_w32res.rc                      |   3 -
9615 tests/Makefile.am                              |   3 -
9616 tests/bcj_test.c                               |   3 -
9617 tests/code_coverage.sh                         |   3 -
9618 tests/create_compress_files.c                  |   3 -
9619 tests/files/README                             |   3 +-
9620 tests/ossfuzz/fuzz_common.h                    |   3 -
9621 tests/ossfuzz/fuzz_decode_alone.c              |   3 -
9622 tests/ossfuzz/fuzz_decode_stream.c             |   3 -
9623 tests/ossfuzz/fuzz_encode_stream.c             |   3 -
9624 tests/test_bcj_exact_size.c                    |   3 -
9625 tests/test_block_header.c                      |   3 -
9626 tests/test_check.c                             |   3 -
9627 tests/test_compress.sh                         |   3 -
9628 tests/test_files.sh                            |   3 -
9629 tests/test_filter_flags.c                      |   3 -
9630 tests/test_filter_str.c                        |   3 -
9631 tests/test_hardware.c                          |   3 -
9632 tests/test_index.c                             |   3 -
9633 tests/test_index_hash.c                        |   3 -
9634 tests/test_lzip_decoder.c                      |   3 -
9635 tests/test_memlimit.c                          |   3 -
9636 tests/test_scripts.sh                          |   3 -
9637 tests/test_stream_flags.c                      |   3 -
9638 tests/test_suffix.sh                           |   3 -
9639 tests/test_vli.c                               |   3 -
9640 tests/tests.h                                  |   3 -
9641 tests/tuktest.h                                |   3 -
9642 windows/README-Windows.txt                     |  11 +--
9643 windows/build.bash                             |   3 -
9644 288 files changed, 100 insertions(+), 911 deletions(-)
9645
9646commit 76946dc4336c831fe2cc26696a035d807dd3cf13
9647Author: Lasse Collin <lasse.collin@tukaani.org>
9648Date:   2024-02-09 17:20:31 +0200
9649
9650    Fix SHA-256 authors.
9651
9652    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
9653    in 2007 had a comment in sha256.c that the code is based on
9654    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
9655    and the AUTHORS file was updated with information that the
9656    code had come from Crypto++ but via 7-Zip. I know I had viewed
9657    7-Zip's SHA-256 code but back then the C code has been identical
9658    enough with Crypto++, so I don't why I thought the author info
9659    would need that extra step via 7-Zip for this single file.
9660
9661    Another error is that I had mixed sha.* and shacal2.* files
9662    when checking for author info in Crypto++. The shacal2.* files
9663    aren't related to liblzma's sha256.c and thus Kevin Springle's
9664    code in Crypto++ isn't either.
9665
9666 AUTHORS                    |  6 ++----
9667 src/liblzma/check/sha256.c | 14 ++++----------
9668 2 files changed, 6 insertions(+), 14 deletions(-)
9669
9670commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851
9671Author: Lasse Collin <lasse.collin@tukaani.org>
9672Date:   2024-02-09 17:20:31 +0200
9673
9674    Remove macosx/build.sh.
9675
9676    It was last updated in 2013.
9677
9678 Makefile.am     |   1 -
9679 macosx/build.sh | 113 --------------------------------------------------------
9680 2 files changed, 114 deletions(-)
9681
9682commit eac2c3c67f9113a225fb6667df862edd30366931
9683Author: Lasse Collin <lasse.collin@tukaani.org>
9684Date:   2024-02-09 17:20:31 +0200
9685
9686    Doc: Remove doc/examples_old.
9687
9688    It was good to keep these around in parallel with the newer examples
9689    but I think it's OK to remove the old ones at this point.
9690
9691 Makefile.am                       |   5 --
9692 doc/examples_old/xz_pipe_comp.c   | 127 --------------------------------------
9693 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------
9694 3 files changed, 255 deletions(-)
9695
9696commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
9697Author: Jia Tan <jiat0218@gmail.com>
9698Date:   2024-02-13 22:38:58 +0800
9699
9700    Tests: Add RISC-V filter support in a few places.
9701
9702 tests/test_filter_flags.c | 6 ++++++
9703 tests/test_filter_str.c   | 6 ++++++
9704 2 files changed, 12 insertions(+)
9705
9706commit 45663443eb2b377e6171529380fee312f1adcdf4
9707Author: Jia Tan <jiat0218@gmail.com>
9708Date:   2024-02-13 22:37:07 +0800
9709
9710    liblzma: Fix build error if only RISC-V BCJ filter is enabled.
9711
9712    If any other BCJ filter was enabled for encoding or decoding, then this
9713    was not a problem.
9714
9715 src/liblzma/common/string_conversion.c | 4 +++-
9716 1 file changed, 3 insertions(+), 1 deletion(-)
9717
9718commit 2f15597d677bc35743c777d4cf3bfa698b478681
9719Author: Jia Tan <jiat0218@gmail.com>
9720Date:   2024-02-13 22:56:24 +0800
9721
9722    Translations: Update the Korean translation.
9723
9724 po/ko.po | 526 ++++++++++++++++++++++++++++++++++-----------------------------
9725 1 file changed, 284 insertions(+), 242 deletions(-)
9726
9727commit df873143ad1615c6d6aaa1bf8808b1676091dfe3
9728Author: Jia Tan <jiat0218@gmail.com>
9729Date:   2024-02-13 01:55:53 +0800
9730
9731    Translations: Update the Korean man page translations.
9732
9733 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++--------------------------
9734 1 file changed, 770 insertions(+), 605 deletions(-)
9735
9736commit b3f415eddb150341865a1af47959c3baba076b33
9737Author: Jia Tan <jiat0218@gmail.com>
9738Date:   2024-02-13 01:53:33 +0800
9739
9740    Translations: Update the Chinese (simplified) translation.
9741
9742 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++----------------------
9743 1 file changed, 268 insertions(+), 156 deletions(-)
9744
9745commit 9860d418d296eb3c721e5384fb367c0499b579c8
9746Author: Lasse Collin <lasse.collin@tukaani.org>
9747Date:   2024-02-09 23:21:01 +0200
9748
9749    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
9750
9751 src/scripts/xzless.in | 9 ++++++++-
9752 1 file changed, 8 insertions(+), 1 deletion(-)
9753
9754commit fd0692b0525e6c26b496492be9e2c865cab734f8
9755Author: Lasse Collin <lasse.collin@tukaani.org>
9756Date:   2024-02-09 23:00:05 +0200
9757
9758    xzless: Use --show-preproc-errors with "less" 632 and newer.
9759
9760    This makes "less" show a warning if a decompression error occurred.
9761
9762 src/scripts/xzless.in | 11 +++++++++--
9763 1 file changed, 9 insertions(+), 2 deletions(-)
9764
9765commit adb073da76a920b5a81e6b32254f4ddb054dc57a
9766Author: Jia Tan <jiat0218@gmail.com>
9767Date:   2024-02-09 23:59:54 +0800
9768
9769    liblzma: Fix typo discovered by codespell.
9770
9771 src/liblzma/check/crc32_arm64.h | 2 +-
9772 1 file changed, 1 insertion(+), 1 deletion(-)
9773
9774commit 55d9fc883d221cbace951a370f1fb144698f8c2e
9775Author: Jia Tan <jiat0218@gmail.com>
9776Date:   2024-02-09 20:01:06 +0800
9777
9778    Translations: Update the Swedish translation.
9779
9780 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++-------------------------
9781 1 file changed, 254 insertions(+), 166 deletions(-)
9782
9783commit 55ba4a1ea321499c805eedfa811ffde690bae311
9784Author: Jia Tan <jiat0218@gmail.com>
9785Date:   2024-02-08 20:09:04 +0800
9786
9787    Translations: Update the Spanish translation.
9788
9789 po/es.po | 22 +++++++++++-----------
9790 1 file changed, 11 insertions(+), 11 deletions(-)
9791
9792commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae
9793Author: Jia Tan <jiat0218@gmail.com>
9794Date:   2024-02-07 21:34:35 +0800
9795
9796    Translations: Update the Spanish translation.
9797
9798 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++-------------------------
9799 1 file changed, 253 insertions(+), 166 deletions(-)
9800
9801commit f4af2036bc625739d6d33d9e1fede583a25c3828
9802Author: Jia Tan <jiat0218@gmail.com>
9803Date:   2024-02-07 21:28:32 +0800
9804
9805    Translations: Update the Polish translation.
9806
9807 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++-------------------------
9808 1 file changed, 249 insertions(+), 162 deletions(-)
9809
9810commit e5e93bb816043c559cddf03a3b7ba13bec353ee4
9811Author: Jia Tan <jiat0218@gmail.com>
9812Date:   2024-02-07 19:40:12 +0800
9813
9814    Translations: Update the German translation.
9815
9816 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++-------------------------
9817 1 file changed, 242 insertions(+), 154 deletions(-)
9818
9819commit 28f18ff8e26902762fb007c13be235b4ac1ac071
9820Author: Jia Tan <jiat0218@gmail.com>
9821Date:   2024-02-07 19:27:25 +0800
9822
9823    Translations: Update the German man page translations.
9824
9825 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++---------------------------
9826 1 file changed, 752 insertions(+), 601 deletions(-)
9827
9828commit cabfbc7947da05aa5dfe39bec9759e076f940e3c
9829Author: Jia Tan <jiat0218@gmail.com>
9830Date:   2024-02-06 23:44:06 +0800
9831
9832    Translations: Update the Romanian translation.
9833
9834 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++-------------------------
9835 1 file changed, 252 insertions(+), 164 deletions(-)
9836
9837commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e
9838Author: Jia Tan <jiat0218@gmail.com>
9839Date:   2024-02-06 23:45:02 +0800
9840
9841    Translations: Update the Romanian man page translations.
9842
9843 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++---------------------------
9844 1 file changed, 966 insertions(+), 793 deletions(-)
9845
9846commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96
9847Author: Jia Tan <jiat0218@gmail.com>
9848Date:   2024-02-07 20:56:57 +0800
9849
9850    Translations: Update the Ukrainian translation.
9851
9852 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++-------------------------
9853 1 file changed, 242 insertions(+), 155 deletions(-)
9854
9855commit b3523250e9eef10b017473754c1e1c9e31f10374
9856Author: Jia Tan <jiat0218@gmail.com>
9857Date:   2024-02-06 23:30:03 +0800
9858
9859    Translations: Update the Ukrainian man page translations.
9860
9861 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++--------------------------
9862 1 file changed, 764 insertions(+), 599 deletions(-)
9863
9864commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d
9865Author: Jia Tan <jiat0218@gmail.com>
9866Date:   2024-02-02 01:39:28 +0800
9867
9868    Update AUTHORS.
9869
9870 AUTHORS | 3 ++-
9871 1 file changed, 2 insertions(+), 1 deletion(-)
9872
9873commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
9874Author: Jia Tan <jiat0218@gmail.com>
9875Date:   2024-02-02 01:38:51 +0800
9876
9877    liblzma: Update Authors list in crc32_arm64.h.
9878
9879 src/liblzma/check/crc32_arm64.h | 1 +
9880 1 file changed, 1 insertion(+)
9881
9882commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0
9883Author: Jia Tan <jiat0218@gmail.com>
9884Date:   2024-02-01 16:07:03 +0800
9885
9886    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table.
9887
9888    This was split from the prior commit so it could be easily applied to
9889    the 5.4 branch.
9890
9891    Closes: https://github.com/tukaani-project/xz/pull/77
9892
9893 src/liblzma/check/crc32_table.c | 4 ++--
9894 1 file changed, 2 insertions(+), 2 deletions(-)
9895
9896commit ca9015f4dead2c97b48f5a6933631b0a448b65b9
9897Author: Jia Tan <jiat0218@gmail.com>
9898Date:   2024-02-01 16:06:29 +0800
9899
9900    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table.
9901
9902    If liblzma is configured with --disable-clmul-crc
9903    CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the
9904    generic version must be used but the CRC tables were not included.
9905
9906 src/liblzma/check/crc64_table.c | 4 ++--
9907 1 file changed, 2 insertions(+), 2 deletions(-)
9908
9909commit 2f1552a91c825e87013925e1a67a0930e7aef592
9910Author: Jia Tan <jiat0218@gmail.com>
9911Date:   2024-01-23 18:02:13 +0800
9912
9913    liblzma: Only use ifunc in crcXX_fast.c if its needed.
9914
9915    The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC.
9916    With ARM64, ifunc is incompatible because it requires non-inline
9917    function calls for runtime detection.
9918
9919 src/liblzma/check/crc32_fast.c | 6 +++---
9920 src/liblzma/check/crc64_fast.c | 6 +++---
9921 2 files changed, 6 insertions(+), 6 deletions(-)
9922
9923commit 30a25f3742287697bc57a1bef86c19ecf5129322
9924Author: Jia Tan <jiat0218@gmail.com>
9925Date:   2024-01-22 22:08:45 +0800
9926
9927    Docs: Add --disable-arm64-crc32 description to INSTALL.
9928
9929 INSTALL | 12 +++++++++++-
9930 1 file changed, 11 insertions(+), 1 deletion(-)
9931
9932commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
9933Author: Jia Tan <jiat0218@gmail.com>
9934Date:   2024-01-22 21:36:09 +0800
9935
9936    liblzma: Omit CRC tables when not needed with ARM64 optimizations.
9937
9938    This is similar to the existing x86-64 CLMUL conditions to omit the
9939    tables. They were slightly refactored to improve readability.
9940
9941 src/liblzma/check/crc32_table.c | 18 +++++++++++++++---
9942 src/liblzma/check/crc64_table.c |  7 ++++++-
9943 src/liblzma/check/crc_common.h  |  5 ++++-
9944 3 files changed, 25 insertions(+), 5 deletions(-)
9945
9946commit 761f5b69a4c778c8bcb09279b845b07c28790575
9947Author: Jia Tan <jiat0218@gmail.com>
9948Date:   2024-01-22 20:54:56 +0800
9949
9950    liblzma: Rename crc32_aarch64.h to crc32_arm64.h.
9951
9952    Even though the proper name for the architecture is aarch64, this
9953    project uses ARM64 throughout. So the rename is for consistency.
9954
9955    Additionally, crc32_arm64.h was slightly refactored for the following
9956    changes:
9957
9958       * Added MSVC, FreeBSD, and macOS support in
9959         is_arch_extension_supported().
9960
9961       * crc32_arch_optimized() now checks the size when aligning the
9962         buffer.
9963
9964       * crc32_arch_optimized() loop conditions were slightly modified to
9965         avoid both decrementing the size and incrementing the buffer
9966         pointer.
9967
9968       * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and
9969         Clang name them differently.
9970
9971       * Minor spacing and comment changes.
9972
9973 CMakeLists.txt                    |   2 +-
9974 src/liblzma/check/Makefile.inc    |   2 +-
9975 src/liblzma/check/crc32_aarch64.h | 109 ----------------------------------
9976 src/liblzma/check/crc32_arm64.h   | 119 ++++++++++++++++++++++++++++++++++++++
9977 src/liblzma/check/crc32_fast.c    |   3 +-
9978 src/liblzma/check/crc64_fast.c    |   3 -
9979 6 files changed, 122 insertions(+), 116 deletions(-)
9980
9981commit 455a08609caa3223066a717fb01bfa42c5dba47d
9982Author: Jia Tan <jiat0218@gmail.com>
9983Date:   2024-01-22 20:49:30 +0800
9984
9985    liblzma: Refactor crc_common.h.
9986
9987    The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since
9988    the ARM64 optimizations will be different between CRC32 and CRC64.
9989
9990    For the same reason, CRC_ARCH_OPTIMIZED is split into
9991    CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED.
9992
9993    ifunc will only be used with x86-64 CLMUL because the runtime detection
9994    methods needed with ARM64 are not compatible with ifunc.
9995
9996 src/liblzma/check/crc32_fast.c |   8 +--
9997 src/liblzma/check/crc64_fast.c |   8 +--
9998 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++-------------
9999 3 files changed, 82 insertions(+), 42 deletions(-)
10000
10001commit 61908e816049af7a9f43ea804a57ee8570e2e644
10002Author: Jia Tan <jiat0218@gmail.com>
10003Date:   2024-01-22 00:42:28 +0800
10004
10005    CMake: Add support for ARM64 CRC32 instruction detection.
10006
10007 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
10008 1 file changed, 50 insertions(+)
10009
10010commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732
10011Author: Jia Tan <jiat0218@gmail.com>
10012Date:   2024-01-22 00:36:47 +0800
10013
10014    Build: Add support for ARM64 CRC32 instruction detection.
10015
10016    This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by
10017    default) for using the ARM64 CRC32 instruction. This can be disabled if
10018    one knows the binary will never need to run on an ARM64 machine
10019    with this instruction extension.
10020
10021 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
10022 1 file changed, 52 insertions(+)
10023
10024commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
10025Author: Chenxi Mao <chenxi.mao2013@gmail.com>
10026Date:   2024-01-09 17:23:11 +0800
10027
10028    Speed up CRC32 calculation on ARM64
10029
10030    The CRC32 instructions in ARM64 can calculate the CRC32 result
10031    for 8 bytes in a single operation, making the use of ARM64
10032    instructions much faster compared to the general CRC32 algorithm.
10033
10034    Optimized CRC32 will be enabled if ARM64 has CRC extension
10035    running on Linux.
10036
10037    Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
10038
10039 CMakeLists.txt                    |   1 +
10040 src/liblzma/check/Makefile.inc    |   3 +-
10041 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++
10042 src/liblzma/check/crc32_fast.c    |   5 +-
10043 src/liblzma/check/crc64_fast.c    |   5 +-
10044 src/liblzma/check/crc_common.h    |  16 +++---
10045 6 files changed, 130 insertions(+), 9 deletions(-)
10046
10047commit b43c3e48bf6097095eef36d44cdbec811074940a
10048Author: Jia Tan <jiat0218@gmail.com>
10049Date:   2024-01-26 19:05:51 +0800
10050
10051    Bump version number for 5.5.1alpha.
10052
10053 src/liblzma/api/lzma/version.h  | 2 +-
10054 src/liblzma/liblzma_generic.map | 2 +-
10055 src/liblzma/liblzma_linux.map   | 2 +-
10056 3 files changed, 3 insertions(+), 3 deletions(-)
10057
10058commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f
10059Author: Jia Tan <jiat0218@gmail.com>
10060Date:   2024-01-26 19:00:52 +0800
10061
10062    Add NEWS for 5.5.1alpha
10063
10064 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10065 1 file changed, 80 insertions(+)
10066
10067commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df
10068Author: Jia Tan <jiat0218@gmail.com>
10069Date:   2024-01-26 18:54:24 +0800
10070
10071    Add NEWS for 5.4.6.
10072
10073 NEWS | 22 ++++++++++++++++++++++
10074 1 file changed, 22 insertions(+)
10075
10076commit 93de7e751d17731315a899264f2a7239d7d2d316
10077Author: Lasse Collin <lasse.collin@tukaani.org>
10078Date:   2024-01-24 20:00:57 +0200
10079
10080    Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
10081
10082    The footer isn't a complete HTML file so having it in the doxygen
10083    directory is a tiny bit clearer.
10084
10085 Makefile.am                                    |   2 +-
10086 doc/{logo => }/xz-logo.png                     | Bin
10087 doxygen/Doxyfile                               |   4 ++--
10088 doc/logo/copyright.html => doxygen/footer.html |   0
10089 4 files changed, 3 insertions(+), 3 deletions(-)
10090
10091commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9
10092Author: Jia Tan <jiat0218@gmail.com>
10093Date:   2024-01-09 17:05:01 +0800
10094
10095    README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1.
10096
10097    The Overall documentation section (1.1) table spacing had to be adjusted
10098    since the filename was very long.
10099
10100 README | 38 ++++++++++++++++++++------------------
10101 1 file changed, 20 insertions(+), 18 deletions(-)
10102
10103commit e280470040b27c5e58d78b25b9e2bb71fc6c3882
10104Author: Jia Tan <jiat0218@gmail.com>
10105Date:   2024-01-09 16:56:16 +0800
10106
10107    Build: Add the logo and license to the release.
10108
10109 Makefile.am | 2 ++
10110 1 file changed, 2 insertions(+)
10111
10112commit b1ee6cf259bb49ce91abe9f622294524e37edf4c
10113Author: Jia Tan <jiat0218@gmail.com>
10114Date:   2024-01-09 16:44:42 +0800
10115
10116    COPYING: Add the license for the XZ logo.
10117
10118 COPYING              |   5 +
10119 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++
10120 2 files changed, 432 insertions(+)
10121
10122commit 31293ae7074802cc7286089a89c7b552d930c97f
10123Author: Jia Tan <jiat0218@gmail.com>
10124Date:   2024-01-09 16:40:56 +0800
10125
10126    Doxygen: Added the XZ logo and copyright information.
10127
10128    The PROJECT_LOGO field is now used to include the XZ logo. The footer
10129    of each page now lists the copyright information instead of the default
10130    footer. The license is also copied to statisfy the copyright and so the
10131    link in the documentation can be local.
10132
10133 doc/logo/copyright.html |  11 +++++++++++
10134 doc/logo/xz-logo.png    | Bin 0 -> 6771 bytes
10135 doxygen/Doxyfile        |   6 +++---
10136 3 files changed, 14 insertions(+), 3 deletions(-)
10137
10138commit 6daa4d0ea46a8441f21f609149f3633158bf4704
10139Author: Lasse Collin <lasse.collin@tukaani.org>
10140Date:   2024-01-23 18:29:28 +0200
10141
10142    xz: Use threaded mode by defaut (as if --threads=0 was used).
10143
10144    This hopefully does more good than bad:
10145
10146      + It's faster by default.
10147
10148      + Only the threaded compressor creates files that
10149        can be decompressed in threaded mode.
10150
10151      - Compression ratio is worse, usually not too much though.
10152        When it matters, -T1 must be used.
10153
10154      - Memory usage increases.
10155
10156      - Scripts that assume single-threaded mode but don't use -T1 will
10157        possibly use too much resources, for example, if they run
10158        multiple xz processes in parallel to compress multiple files.
10159
10160      - Output from single-threaded and multi-threaded compressors
10161        differ but such changes could happen for other reasons too
10162        (they just haven't happened since 5.0.0).
10163
10164 src/xz/hardware.c | 6 +++++-
10165 src/xz/message.c  | 4 ++--
10166 src/xz/xz.1       | 9 +++++++++
10167 3 files changed, 16 insertions(+), 3 deletions(-)
10168
10169commit a2dd2dc8e5307a7280bb99868bc478560facba2c
10170Author: Jia Tan <jiat0218@gmail.com>
10171Date:   2024-01-23 23:52:49 +0800
10172
10173    CI: Use RISC-V filter when building with BCJ support.
10174
10175 build-aux/ci_build.sh | 4 ++--
10176 1 file changed, 2 insertions(+), 2 deletions(-)
10177
10178commit 3060e1070b2421b26c0e17794c1307ec5622f11d
10179Author: Jia Tan <jiat0218@gmail.com>
10180Date:   2024-01-23 23:52:14 +0800
10181
10182    Tests: Use smaller dictionary size in RISC-V test files.
10183
10184 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes
10185 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes
10186 2 files changed, 0 insertions(+), 0 deletions(-)
10187
10188commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3
10189Author: Jia Tan <jiat0218@gmail.com>
10190Date:   2024-01-23 23:50:57 +0800
10191
10192    Tests: Skip RISC-V test files if decoder was not built.
10193
10194 tests/test_files.sh | 5 +++++
10195 1 file changed, 5 insertions(+)
10196
10197commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e
10198Author: Lasse Collin <lasse.collin@tukaani.org>
10199Date:   2024-01-23 16:11:54 +0200
10200
10201    xz: Man page: Add more examples of LZMA2 options with BCJ filters.
10202
10203 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++-------
10204 1 file changed, 31 insertions(+), 7 deletions(-)
10205
10206commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d
10207Author: Lasse Collin <lasse.collin@tukaani.org>
10208Date:   2024-01-23 00:09:48 +0200
10209
10210    liblzma: RISC-V filter: Use byte-by-byte access.
10211
10212    Not all RISC-V processors support fast unaligned access so
10213    it's better to read only one byte in the main loop. This can
10214    be faster even on x86-64 when compared to reading 32 bits at
10215    a time as half the time the address is only 16-bit aligned.
10216
10217    The downside is larger code size on archs that do support
10218    fast unaligned access.
10219
10220 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------
10221 1 file changed, 84 insertions(+), 30 deletions(-)
10222
10223commit db5eb5f563e8baa8d912ecf576f53391ff861596
10224Author: Jia Tan <jiat0218@gmail.com>
10225Date:   2024-01-22 23:33:39 +0800
10226
10227    xz: Update xz -lvv for RISC-V filter.
10228
10229    Version 5.6.0 will be shown, even though upcoming alphas and betas
10230    will be able to support this filter. 5.6.0 looks nicer in the output and
10231    people shouldn't be encouraged to use an unstable version in production
10232    in any way.
10233
10234 src/xz/list.c | 10 ++++++++++
10235 1 file changed, 10 insertions(+)
10236
10237commit e2870db5be1503e6a489fc3d47daf950d6f62723
10238Author: Jia Tan <jiat0218@gmail.com>
10239Date:   2024-01-22 23:33:39 +0800
10240
10241    Tests: Add two RISC-V Filter test files.
10242
10243    These test files achieve 100% code coverage in
10244    src/liblzma/simple/riscv.c. They contain all of the instructions that
10245    should be filtered and a few cases that should not.
10246
10247 tests/files/README                  |   8 ++++++++
10248 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes
10249 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes
10250 3 files changed, 8 insertions(+)
10251
10252commit b26a89869315ece2f6d9d10d32d45f672550f245
10253Author: Jia Tan <jiat0218@gmail.com>
10254Date:   2024-01-22 23:33:39 +0800
10255
10256    xz: Update message in --long-help for RISC-V Filter.
10257
10258 src/xz/message.c | 1 +
10259 1 file changed, 1 insertion(+)
10260
10261commit 283f778908873eca61388029fc418fa800c9d7d7
10262Author: Jia Tan <jiat0218@gmail.com>
10263Date:   2024-01-22 23:33:39 +0800
10264
10265    xz: Update the man page for the RISC-V Filter.
10266
10267    A special note was added to suggest using four-byte alignment when the
10268    compressed instruction extension is not present in a RISC-V binary.
10269
10270 src/xz/xz.1 | 3 ++-
10271 1 file changed, 2 insertions(+), 1 deletion(-)
10272
10273commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28
10274Author: Jia Tan <jiat0218@gmail.com>
10275Date:   2024-01-22 23:33:39 +0800
10276
10277    Tests: Add RISC-V Filter test in test_compress.sh.
10278
10279 tests/test_compress.sh | 1 +
10280 1 file changed, 1 insertion(+)
10281
10282commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4
10283Author: Jia Tan <jiat0218@gmail.com>
10284Date:   2024-01-22 23:33:39 +0800
10285
10286    liblzma: Update string_conversion.c to support RISC-V Filter.
10287
10288 src/liblzma/common/string_conversion.c | 5 +++++
10289 1 file changed, 5 insertions(+)
10290
10291commit 34372a5adbe5a7f6bf29498410ba3a463a720966
10292Author: Jia Tan <jiat0218@gmail.com>
10293Date:   2024-01-22 23:33:39 +0800
10294
10295    CMake: Support RISC-V BCJ Filter for encoding and decoding.
10296
10297 CMakeLists.txt | 1 +
10298 1 file changed, 1 insertion(+)
10299
10300commit 440a2eccb082dc13400c09e22308a58fef85146c
10301Author: Jia Tan <jiat0218@gmail.com>
10302Date:   2024-01-22 23:33:39 +0800
10303
10304    liblzma: Add RISC-V BCJ filter.
10305
10306    The new Filter ID is 0x0B.
10307
10308    Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
10309    the xz CLI updates, and the Autotools build system modifications.
10310
10311    Thanks to Igor Pavlov for his many contributions to the design of
10312    the filter.
10313
10314 configure.ac                        |   4 +-
10315 src/liblzma/api/lzma/bcj.h          |   5 +
10316 src/liblzma/common/filter_common.c  |   9 +
10317 src/liblzma/common/filter_decoder.c |   8 +
10318 src/liblzma/common/filter_encoder.c |  10 +
10319 src/liblzma/simple/Makefile.inc     |   4 +
10320 src/liblzma/simple/riscv.c          | 688 ++++++++++++++++++++++++++++++++++++
10321 src/liblzma/simple/simple_coder.h   |   9 +
10322 src/xz/args.c                       |   7 +
10323 9 files changed, 742 insertions(+), 2 deletions(-)
10324
10325commit 5540f4329bbdb4deb4850d4af48b18ad074bba19
10326Author: Jia Tan <jiat0218@gmail.com>
10327Date:   2024-01-19 23:08:14 +0800
10328
10329    Docs: Update .xz file format specification to 1.2.0.
10330
10331    The new RISC-V filter was added to the specification, in addition to
10332    updating the specification URL.
10333
10334 doc/xz-file-format.txt | 29 +++++++++++++++++------------
10335 1 file changed, 17 insertions(+), 12 deletions(-)
10336
10337commit 22d86192f8cf00902a1f90ee2a83ca600794459b
10338Author: Jia Tan <jiat0218@gmail.com>
10339Date:   2024-01-19 23:08:14 +0800
10340
10341    xz: Update website URLs in the man pages.
10342
10343 src/xz/xz.1       | 6 +++---
10344 src/xzdec/xzdec.1 | 4 ++--
10345 2 files changed, 5 insertions(+), 5 deletions(-)
10346
10347commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d
10348Author: Jia Tan <jiat0218@gmail.com>
10349Date:   2024-01-19 23:08:14 +0800
10350
10351    liblzma: Update website URL.
10352
10353 dos/config.h           | 2 +-
10354 src/liblzma/api/lzma.h | 6 +++---
10355 2 files changed, 4 insertions(+), 4 deletions(-)
10356
10357commit fce4758018f3a3589236f3fe7999fd9dd08c77e9
10358Author: Jia Tan <jiat0218@gmail.com>
10359Date:   2024-01-19 23:08:14 +0800
10360
10361    Docs: Update website URLs.
10362
10363 .github/SECURITY.md        |  2 +-
10364 COPYING                    |  3 ++-
10365 README                     |  4 ++--
10366 doc/faq.txt                |  2 +-
10367 doc/lzma-file-format.txt   | 18 +++++++++---------
10368 windows/README-Windows.txt |  3 ++-
10369 6 files changed, 17 insertions(+), 15 deletions(-)
10370
10371commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5
10372Author: Jia Tan <jiat0218@gmail.com>
10373Date:   2024-01-19 23:08:14 +0800
10374
10375    Build: Update website URL.
10376
10377 CMakeLists.txt | 2 +-
10378 configure.ac   | 2 +-
10379 2 files changed, 2 insertions(+), 2 deletions(-)
10380
10381commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b
10382Author: Lasse Collin <lasse.collin@tukaani.org>
10383Date:   2024-01-11 15:01:50 +0200
10384
10385    liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
10386
10387 src/liblzma/check/crc_x86_clmul.h | 6 ++++++
10388 1 file changed, 6 insertions(+)
10389
10390commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882
10391Author: Lasse Collin <lasse.collin@tukaani.org>
10392Date:   2024-01-11 15:22:36 +0200
10393
10394    liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
10395
10396    Now crc_simd_body() in crc_x86_clmul.h is only called once
10397    in a translation unit, we no longer need to be so cautious
10398    about ensuring the always-inline behavior.
10399
10400 src/liblzma/check/crc_common.h    | 20 --------------------
10401 src/liblzma/check/crc_x86_clmul.h |  2 +-
10402 2 files changed, 1 insertion(+), 21 deletions(-)
10403
10404commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20
10405Author: Lasse Collin <lasse.collin@tukaani.org>
10406Date:   2024-01-11 14:39:46 +0200
10407
10408    liblzma: CRC: Update CLMUL comments to more generic wording.
10409
10410 src/liblzma/check/crc32_fast.c | 16 ++++++++--------
10411 src/liblzma/check/crc64_fast.c | 10 +++++-----
10412 2 files changed, 13 insertions(+), 13 deletions(-)
10413
10414commit 66f080e8016129576536482ac377e2ecac7a2b90
10415Author: Lasse Collin <lasse.collin@tukaani.org>
10416Date:   2024-01-10 18:23:31 +0200
10417
10418    liblzma: Rename arch-specific CRC functions and macros.
10419
10420    CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL.
10421    CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used.
10422    Currently the x86 CLMUL implementations are the only arch-optimized
10423    versions, and these also use the CRC_x86_CLMUL macro to tell when
10424    crc_x86_clmul.h needs to be included.
10425
10426    is_clmul_supported() was renamed to is_arch_extension_supported().
10427    crc32_clmul() and crc64_clmul() were renamed to
10428    crc32_arch_optimized() and crc64_arch_optimized().
10429    This way the names make sense with arch-specific non-CLMUL
10430    implementations as well.
10431
10432 src/liblzma/check/crc32_fast.c    | 13 +++++++------
10433 src/liblzma/check/crc64_fast.c    | 13 +++++++------
10434 src/liblzma/check/crc_common.h    |  9 ++++++---
10435 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++----------
10436 4 files changed, 31 insertions(+), 25 deletions(-)
10437
10438commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99
10439Author: Lasse Collin <lasse.collin@tukaani.org>
10440Date:   2024-01-10 18:19:21 +0200
10441
10442    liblzma: Fix a comment in crc_common.h.
10443
10444 src/liblzma/check/crc_common.h | 3 ++-
10445 1 file changed, 2 insertions(+), 1 deletion(-)
10446
10447commit 419f55f9dfc2df8792902b8953d50690121afeea
10448Author: Lasse Collin <lasse.collin@tukaani.org>
10449Date:   2023-10-20 23:35:10 +0300
10450
10451    liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul().
10452
10453    A CLMUL-only build will have the crcxx_clmul() inlined into
10454    lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul()
10455    was needed. Notes about shared liblzma on ELF platforms:
10456
10457      - On platforms that support ifunc and -fvisibility=hidden, this
10458        was silly because CLMUL-only build would have that single extra
10459        jump instruction of extra overhead.
10460
10461      - On platforms that support neither -fvisibility=hidden nor linker
10462        version script (liblzma*.map), jumping to lzma_crcxx_clmul()
10463        would go via PLT so a few more instructions of overhead (still
10464        not a big issue but silly nevertheless).
10465
10466    There was a downside with static liblzma too: if an application only
10467    needs lzma_crc64(), static linking would make the linker include the
10468    CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though
10469    the CRC32 code wouldn't be needed, thus increasing code size of the
10470    executable (assuming that -ffunction-sections isn't used).
10471
10472    Also, now compilers are likely to inline crc_simd_body()
10473    even if they don't support the always_inline attribute
10474    (or MSVC's __forceinline). Quite possibly all compilers
10475    that build the code do support such an attribute. But now
10476    it likely isn't a problem even if the attribute wasn't supported.
10477
10478    Now all x86-specific stuff is in crc_x86_clmul.h. If other archs
10479    The other archs can then have their own headers with their own
10480    is_clmul_supported() and crcxx_clmul().
10481
10482    Another bonus is that the build system doesn't need to care if
10483    crc_clmul.c is needed.
10484
10485    is_clmul_supported() stays as inline function as it's not needed
10486    when doing a CLMUL-only build (avoids a warning about unused function).
10487
10488 CMakeLists.txt                                     |  7 +-
10489 configure.ac                                       |  1 -
10490 src/liblzma/check/Makefile.inc                     |  6 +-
10491 src/liblzma/check/crc32_fast.c                     |  9 ++-
10492 src/liblzma/check/crc64_fast.c                     |  9 ++-
10493 src/liblzma/check/crc_common.h                     | 64 ----------------
10494 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++----
10495 7 files changed, 91 insertions(+), 91 deletions(-)
10496
10497commit e3833e297dfb5021a197bda34ba2a795e30aaf8a
10498Author: Lasse Collin <lasse.collin@tukaani.org>
10499Date:   2023-10-21 00:06:52 +0300
10500
10501    liblzma: crc_clmul.c: Add crc_attr_target macro.
10502
10503    This reduces the number of the complex #if directives.
10504
10505 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++--------------
10506 1 file changed, 16 insertions(+), 14 deletions(-)
10507
10508commit d164ac0e62904126f7920c25f9a2875c8cd28b97
10509Author: Lasse Collin <lasse.collin@tukaani.org>
10510Date:   2023-10-20 22:49:48 +0300
10511
10512    liblzma: Simplify existing cases with lzma_attr_no_sanitize_address.
10513
10514 src/liblzma/check/crc_clmul.c | 12 +++---------
10515 1 file changed, 3 insertions(+), 9 deletions(-)
10516
10517commit 9523c1300d22fa715765c181cf991d14d6112fb1
10518Author: Lasse Collin <lasse.collin@tukaani.org>
10519Date:   2023-10-20 21:53:35 +0300
10520
10521    liblzma: #define crc_attr_no_sanitize_address in crc_common.h.
10522
10523 src/liblzma/check/crc_common.h | 10 ++++++++++
10524 1 file changed, 10 insertions(+)
10525
10526commit 93d144f0930821590524247bd174afd38003d7f0
10527Author: Lasse Collin <lasse.collin@tukaani.org>
10528Date:   2023-10-20 23:25:14 +0300
10529
10530    liblzma: CRC: Add empty lines.
10531
10532    And remove one too.
10533
10534 src/liblzma/check/crc32_fast.c | 2 ++
10535 src/liblzma/check/crc64_fast.c | 3 +++
10536 src/liblzma/check/crc_clmul.c  | 1 -
10537 3 files changed, 5 insertions(+), 1 deletion(-)
10538
10539commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae
10540Author: Lasse Collin <lasse.collin@tukaani.org>
10541Date:   2023-10-20 23:19:33 +0300
10542
10543    liblzma: crc_clmul.c: Tidy up the location of MSVC pragma.
10544
10545    It makes no difference in practice.
10546
10547 src/liblzma/check/crc_clmul.c | 4 ++--
10548 1 file changed, 2 insertions(+), 2 deletions(-)
10549
10550commit 15cf3f04f270d707a5c91cc0208b23b6db42b774
10551Author: Lasse Collin <lasse.collin@tukaani.org>
10552Date:   2023-12-20 21:16:24 +0200
10553
10554    Update THANKS.
10555
10556 THANKS | 1 +
10557 1 file changed, 1 insertion(+)
10558
10559commit cd64dd70d5665b6048829c45772d08606f44672e
10560Author: Lasse Collin <lasse.collin@tukaani.org>
10561Date:   2023-12-20 21:15:16 +0200
10562
10563    liblzma: Use 8-byte method in memcmplen.h on ARM64.
10564
10565    It requires fast unaligned access to 64-bit integers
10566    and a fast instruction to count leading zeros in
10567    a 64-bit integer (__builtin_ctzll()). This perhaps
10568    should be enabled on some other archs too.
10569
10570    Thanks to Chenxi Mao for the original patch:
10571    https://github.com/tukaani-project/xz/pull/75 (the first commit)
10572    According to the numbers there, this may improve encoding
10573    speed by about 3-5 %.
10574
10575    This enables the 8-byte method on MSVC ARM64 too which
10576    should work but wasn't tested.
10577
10578 src/liblzma/common/memcmplen.h | 18 ++++++++++--------
10579 1 file changed, 10 insertions(+), 8 deletions(-)
10580
10581commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606
10582Author: Lasse Collin <lasse.collin@tukaani.org>
10583Date:   2023-12-20 21:01:06 +0200
10584
10585    liblzma: Check also for __clang__ in memcmplen.h.
10586
10587    This change hopefully makes no practical difference as Clang
10588    likely was detected via __GNUC__ or _MSC_VER already.
10589
10590 src/liblzma/common/memcmplen.h | 3 ++-
10591 1 file changed, 2 insertions(+), 1 deletion(-)
10592
10593commit 133c5851eb917c6d99d0b623c1689c8518e65f38
10594Author: Jia Tan <jiat0218@gmail.com>
10595Date:   2023-12-21 21:39:08 +0800
10596
10597    Translations: Update the French translation.
10598
10599 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++--------------------------
10600 1 file changed, 370 insertions(+), 262 deletions(-)
10601
10602commit 710cbc186cad0ac601c38bd6bf31167648a5581e
10603Author: Jia Tan <jiat0218@gmail.com>
10604Date:   2023-12-21 16:39:53 +0800
10605
10606    xz: Add a comment to Capsicum sandbox setup.
10607
10608    This comment is repeated in xzdec.c to help remind us why all the
10609    capabilities are removed from stdin in certain situations.
10610
10611 src/xz/file_io.c | 1 +
10612 1 file changed, 1 insertion(+)
10613
10614commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12
10615Author: Jia Tan <jiat0218@gmail.com>
10616Date:   2023-12-20 22:19:19 +0800
10617
10618    Docs: Update --enable-sandbox option in INSTALL.
10619
10620    xzdec now also uses the sandbox when its configured.
10621
10622 INSTALL | 17 ++++++++++-------
10623 1 file changed, 10 insertions(+), 7 deletions(-)
10624
10625commit ebddf20214143a8e002ab897e95e880bb4c5ac44
10626Author: Jia Tan <jiat0218@gmail.com>
10627Date:   2023-12-20 22:39:13 +0800
10628
10629    CMake: Move sandbox detection outside of xz section.
10630
10631    The sandbox is now enabled for xzdec as well, so it no longer belongs
10632    in just the xz section. xz and xzdec are always built, except for older
10633    MSVC versions, so there isn't a need to conditionally show the sandbox
10634    configuration. CMake will do a little unecessary work on older MSVC
10635    versions that can't build xz or xzdec, but this is a very small
10636    downside.
10637
10638 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++--------------------------
10639 1 file changed, 98 insertions(+), 80 deletions(-)
10640
10641commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316
10642Author: Jia Tan <jiat0218@gmail.com>
10643Date:   2023-12-20 22:43:44 +0800
10644
10645    Build: Allow sandbox to be configured for just xzdec.
10646
10647    If xz is disabled, then xzdec can still use the sandbox.
10648
10649 configure.ac | 10 +++++-----
10650 1 file changed, 5 insertions(+), 5 deletions(-)
10651
10652commit d74fb5f060b76db709b50f5fd37490394e52f975
10653Author: Jia Tan <jiat0218@gmail.com>
10654Date:   2023-12-19 21:18:28 +0800
10655
10656    xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.
10657
10658    A very strict sandbox is used when the last file is decompressed. The
10659    likely most common use case of xzdec is to decompress a single file.
10660    The Pledge sandbox is applied to the entire process with slightly more
10661    relaxed promises, until the last file is processed.
10662
10663    Thanks to Christian Weisgerber for the initial patch adding Pledge
10664    sandboxing.
10665
10666 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++---
10667 1 file changed, 139 insertions(+), 7 deletions(-)
10668
10669commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5
10670Author: Jia Tan <jiat0218@gmail.com>
10671Date:   2023-12-20 21:31:34 +0800
10672
10673    liblzma: Initialize lzma_lz_encoder pointers with NULL.
10674
10675    This fixes the recent change to lzma_lz_encoder that used memzero
10676    instead of the NULL constant. On some compilers the NULL constant
10677    (always 0) may not equal the NULL pointer (this only needs to guarentee
10678    to not point to valid memory address).
10679
10680    Later code compares the pointers to the NULL pointer so we must
10681    initialize them with the NULL pointer instead of 0 to guarentee
10682    code correctness.
10683
10684 src/liblzma/lz/lz_encoder.c | 6 +++++-
10685 1 file changed, 5 insertions(+), 1 deletion(-)
10686
10687commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df
10688Author: Jia Tan <jiat0218@gmail.com>
10689Date:   2023-12-16 20:51:38 +0800
10690
10691    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
10692
10693    The first member of lzma_lz_encoder doesn't necessarily need to be set
10694    to NULL since it will always be set before anything tries to use it.
10695    However the function pointer members must be set to NULL since other
10696    functions rely on this NULL value to determine if this behavior is
10697    supported or not.
10698
10699    This fixes a somewhat serious bug, where the options_update() and
10700    set_out_limit() function pointers are not set to NULL. This seems to
10701    have been forgotten since these function pointers were added many years
10702    after the original two (code() and end()).
10703
10704    The problem is that by not setting this to NULL we are relying on the
10705    memory allocation to zero things out if lzma_filters_update() is called
10706    on a LZMA1 encoder. The function pointer for set_out_limit() is less
10707    serious because there is not an API function that could call this in an
10708    incorrect way. set_out_limit() is only called by the MicroLZMA encoder,
10709    which must use LZMA1 where set_out_limit() is always set. Its currently
10710    not possible to call set_out_limit() on an LZMA2 encoder at this time.
10711
10712    So calling lzma_filters_update() on an LZMA1 encoder had undefined
10713    behavior since its possible that memory could be manipulated so the
10714    options_update member pointed to a different instruction sequence.
10715
10716    This is unlikely to be a bug in an existing application since it relies
10717    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
10718    For instance, it does not affect xz because lzma_filters_update() can
10719    only be used when encoding to the .xz format.
10720
10721    This is fixed by using memzero() to set all members of lzma_lz_encoder
10722    to NULL after it is allocated. This ensures this mistake will not occur
10723    here in the future if any additional function pointers are added.
10724
10725 src/liblzma/lz/lz_encoder.c | 4 +---
10726 1 file changed, 1 insertion(+), 3 deletions(-)
10727
10728commit 1a1bb381db7a20cf86cb45a350e5cca35224d017
10729Author: Jia Tan <jiat0218@gmail.com>
10730Date:   2023-12-16 20:30:55 +0800
10731
10732    liblzma: Tweak a comment.
10733
10734 src/liblzma/lz/lz_encoder.c | 2 +-
10735 1 file changed, 1 insertion(+), 1 deletion(-)
10736
10737commit 55810780e04f759747b02683fb8020b8cd022a85
10738Author: Jia Tan <jiat0218@gmail.com>
10739Date:   2023-12-16 20:28:21 +0800
10740
10741    liblzma: Make parameter names in function definition match declaration.
10742
10743    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
10744    parameter name instead of "filters" (used by the declaration). "filters"
10745    is more clear since the parameter represents the list of filters passed
10746    to the raw encoder, each of which contains filter options.
10747
10748 src/liblzma/common/filter_encoder.c | 8 ++++----
10749 1 file changed, 4 insertions(+), 4 deletions(-)
10750
10751commit 5dad6f628af742bab826819760deb677597445f7
10752Author: Jia Tan <jiat0218@gmail.com>
10753Date:   2023-12-16 20:18:47 +0800
10754
10755    liblzma: Improve lzma encoder init function consistency.
10756
10757    lzma_encoder_init() did not check for NULL options, but
10758    lzma2_encoder_init() did. This is more of a code style improvement than
10759    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
10760    more similar.
10761
10762 src/liblzma/lzma/lzma_encoder.c | 3 +++
10763 1 file changed, 3 insertions(+)
10764
10765commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf
10766Author: Jia Tan <jiat0218@gmail.com>
10767Date:   2023-12-16 11:20:20 +0800
10768
10769    Docs: Update repository URL in Changelog.
10770
10771 ChangeLog | 2 +-
10772 1 file changed, 1 insertion(+), 1 deletion(-)
10773
10774commit f9b82bc64a9405e486575c65c1729229eb0a8198
10775Author: Jia Tan <jiat0218@gmail.com>
10776Date:   2023-12-15 16:56:31 +0800
10777
10778    CI: Update Upload Artifact Action.
10779
10780 .github/workflows/ci.yml         | 2 +-
10781 .github/workflows/windows-ci.yml | 2 +-
10782 2 files changed, 2 insertions(+), 2 deletions(-)
10783
10784commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e
10785Author: Jia Tan <jiat0218@gmail.com>
10786Date:   2023-12-07 21:48:07 +0800
10787
10788    Tests: Silence -Wsign-conversion warning on GCC version < 10.
10789
10790    Since GCC version 10, GCC no longer complains about simple implicit
10791    integer conversions with Arithmetic operators.
10792
10793    For instance:
10794
10795        uint8_t a = 5;
10796        uint32_t b = a + 5;
10797
10798    Give a warning on GCC 9 and earlier but this:
10799
10800        uint8_t a = 5;
10801        uint32_t b = (a + 5) * 2;
10802
10803    Gives a warning with GCC 10+.
10804
10805 tests/test_block_header.c | 2 +-
10806 1 file changed, 1 insertion(+), 1 deletion(-)
10807
10808commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8
10809Author: Jia Tan <jiat0218@gmail.com>
10810Date:   2023-12-06 18:39:03 +0800
10811
10812    Update THANKS.
10813
10814 THANKS | 1 +
10815 1 file changed, 1 insertion(+)
10816
10817commit ee2f48350099201694a7586e41d7aa2f09fc74da
10818Author: Jia Tan <jiat0218@gmail.com>
10819Date:   2023-12-06 18:30:25 +0800
10820
10821    Tests: Minor cleanups to OSS-Fuzz files.
10822
10823    Most of these fixes are small typos and tweaks. A few were caused by bad
10824    advice from me. Here is the summary of what is changed:
10825
10826    - Author line edits
10827
10828    - Small comment changes/additions
10829
10830    - Using the return value in the error messages in the fuzz targets'
10831      coder initialization code
10832
10833    - Removed fuzz_encode_stream.options. This set a max length, which may
10834      prevent some worthwhile code paths from being properly exercised.
10835
10836    - Removed the max_len option from fuzz_decode_stream.options for the
10837      same reason as fuzz_encode_stream. The alone decoder fuzz target still
10838      has this restriction.
10839
10840    - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping
10841      the properties static and varying the dictionary size, the properties
10842      are varied and the dictionary size is kept small. The dictionary size
10843      doesn't have much impact on the code paths but the properties do.
10844
10845    Closes: https://github.com/tukaani-project/xz/pull/73
10846
10847 tests/ossfuzz/Makefile                          |  3 ++
10848 tests/ossfuzz/config/fuzz_decode_stream.options |  1 -
10849 tests/ossfuzz/config/fuzz_lzma.dict             | 34 +++++++++++-----------
10850 tests/ossfuzz/fuzz_common.h                     | 16 +++++------
10851 tests/ossfuzz/fuzz_decode_alone.c               | 15 +++++-----
10852 tests/ossfuzz/fuzz_decode_stream.c              | 15 +++++-----
10853 tests/ossfuzz/fuzz_encode_stream.c              | 38 +++++++++++++++----------
10854 7 files changed, 66 insertions(+), 56 deletions(-)
10855
10856commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d
10857Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
10858Date:   2023-12-05 16:31:09 +0100
10859
10860    Tests: Add fuzz_encode_stream ossfuzz target.
10861
10862    This fuzz target handles .xz stream encoding. The first byte of input
10863    is used to dynamically set the preset level in order to increase the
10864    fuzz coverage of complex critical code paths.
10865
10866 tests/ossfuzz/config/fuzz_encode_stream.options |  2 +
10867 tests/ossfuzz/fuzz_encode_stream.c              | 79 +++++++++++++++++++++++++
10868 2 files changed, 81 insertions(+)
10869
10870commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48
10871Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
10872Date:   2023-12-04 17:23:24 +0100
10873
10874    Tests: Add fuzz_decode_alone OSS-Fuzz target
10875
10876    This fuzz target that handles LZMA alone decoding. A new fuzz
10877    dictionary .dict was also created with common LZMA header values to
10878    help speed up the discovery of valid headers.
10879
10880 tests/ossfuzz/config/fuzz_decode_alone.options |  3 ++
10881 tests/ossfuzz/config/fuzz_lzma.dict            | 22 ++++++++++++++
10882 tests/ossfuzz/fuzz_decode_alone.c              | 41 ++++++++++++++++++++++++++
10883 3 files changed, 66 insertions(+)
10884
10885commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a
10886Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
10887Date:   2023-12-04 17:21:29 +0100
10888
10889    Tests: Update OSS-Fuzz Makefile.
10890
10891    All .c files can be built as separate fuzz targets. This simplifies
10892    the Makefile by allowing us to use wildcards instead of having a
10893    Makefile target for each fuzz target.
10894
10895 tests/ossfuzz/Makefile | 13 +++++++++----
10896 1 file changed, 9 insertions(+), 4 deletions(-)
10897
10898commit 28ce6a1c2a74866c51f7996a6869679c236d3c94
10899Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
10900Date:   2023-12-04 17:20:08 +0100
10901
10902    Tests: Move common OSS-Fuzz target code to .h file.
10903
10904 tests/ossfuzz/fuzz_common.h        | 56 ++++++++++++++++++++++++++++++++++++
10905 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++----------------------------
10906 2 files changed, 71 insertions(+), 44 deletions(-)
10907
10908commit bf0521ea1591c25b9d510c1b8be86073e9d847c6
10909Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
10910Date:   2023-12-04 17:18:20 +0100
10911
10912    Tests: Rename OSS-Fuzz files.
10913
10914 tests/ossfuzz/config/fuzz.options                | 2 --
10915 tests/ossfuzz/config/fuzz_decode_stream.options  | 3 +++
10916 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0
10917 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c}   | 0
10918 4 files changed, 3 insertions(+), 2 deletions(-)
10919
10920commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7
10921Author: Jia Tan <jiat0218@gmail.com>
10922Date:   2023-11-30 23:10:43 +0800
10923
10924    Update THANKS.
10925
10926 THANKS | 1 +
10927 1 file changed, 1 insertion(+)
10928
10929commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
10930Author: Kian-Meng Ang <kianmeng@cpan.org>
10931Date:   2023-11-30 23:01:19 +0800
10932
10933    Tests: Fix typos
10934
10935 tests/test_index.c        | 2 +-
10936 tests/test_lzip_decoder.c | 4 ++--
10937 2 files changed, 3 insertions(+), 3 deletions(-)
10938
10939commit 424d46ead8cbc0da57f406b76926ec4ed47437f5
10940Author: Kian-Meng Ang <kianmeng@cpan.org>
10941Date:   2023-11-30 22:59:47 +0800
10942
10943    xz: Fix typo
10944
10945 src/xz/file_io.c | 2 +-
10946 1 file changed, 1 insertion(+), 1 deletion(-)
10947
10948commit 35558adf9c45e5597f2c8dbd969885dd484038d2
10949Author: Jia Tan <jiat0218@gmail.com>
10950Date:   2023-11-30 20:41:00 +0800
10951
10952    Update THANKS.
10953
10954 THANKS | 1 +
10955 1 file changed, 1 insertion(+)
10956
10957commit fd170e8557727bed6bec0518c16415064d972e4e
10958Author: Jia Tan <jiat0218@gmail.com>
10959Date:   2023-11-22 21:20:12 +0800
10960
10961    CI: Test musl libc builds on Ubuntu runner.
10962
10963 .github/workflows/ci.yml | 19 +++++++++++++++++--
10964 1 file changed, 17 insertions(+), 2 deletions(-)
10965
10966commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e
10967Author: Jia Tan <jiat0218@gmail.com>
10968Date:   2023-11-22 21:12:15 +0800
10969
10970    CI: Allow ci_build.sh to set a different C compiler.
10971
10972 build-aux/ci_build.sh | 11 ++++++++++-
10973 1 file changed, 10 insertions(+), 1 deletion(-)
10974
10975commit ff7badef53c2cd698d4b72b945f34dfd0835e13c
10976Author: Jia Tan <jiat0218@gmail.com>
10977Date:   2023-11-24 21:19:12 +0800
10978
10979    CMake: Use consistent indentation with check_c_source_compiles().
10980
10981 CMakeLists.txt | 4 ++--
10982 1 file changed, 2 insertions(+), 2 deletions(-)
10983
10984commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1
10985Author: Jia Tan <jiat0218@gmail.com>
10986Date:   2023-11-22 20:33:36 +0800
10987
10988    CMake: Change __attribute__((__ifunc__())) detection.
10989
10990    This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc
10991    detection changes that were made to the Autotools build.
10992
10993    Fixes: https://github.com/tukaani-project/xz/issues/70
10994
10995 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
10996 1 file changed, 45 insertions(+), 8 deletions(-)
10997
10998commit 20ecee40a0053fd16371ef0628046bf45e548d72
10999Author: Jia Tan <jiat0218@gmail.com>
11000Date:   2023-11-24 20:19:11 +0800
11001
11002    Docs: Update INSTALL for --enable_ifunc change.
11003
11004 INSTALL | 16 ++++++++--------
11005 1 file changed, 8 insertions(+), 8 deletions(-)
11006
11007commit ffb456593d695d70052a2f71c7a2e6269217d194
11008Author: Jia Tan <jiat0218@gmail.com>
11009Date:   2023-11-21 20:56:55 +0800
11010
11011    Build: Change --enable-ifunc handling.
11012
11013    Some compilers support __attribute__((__ifunc__())) even though the
11014    dynamic linker does not. The compiler is able to create the binary
11015    but it will fail on startup. So it is not enough to just test if
11016    the attribute is supported.
11017
11018    The default value for enable_ifunc is now auto, which will attempt
11019    to compile a program using __attribute__((__ifunc__())). There are
11020    additional checks in this program if glibc is being used or if it
11021    is running on FreeBSD.
11022
11023    Setting --enable-ifunc will skip this test and always enable
11024    __attribute__((__ifunc__())), even if is not supported.
11025
11026 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++-----------------
11027 1 file changed, 44 insertions(+), 17 deletions(-)
11028
11029commit 12b89bcc9915090eb42ae638e565af44b6832a23
11030Author: Lasse Collin <lasse.collin@tukaani.org>
11031Date:   2023-11-23 17:39:10 +0200
11032
11033    xz: Tweak a comment.
11034
11035 src/xz/util.c | 4 ++--
11036 1 file changed, 2 insertions(+), 2 deletions(-)
11037
11038commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e
11039Author: Jia Tan <jiat0218@gmail.com>
11040Date:   2023-11-23 22:13:39 +0800
11041
11042    xz: Use is_tty() in message.c.
11043
11044 src/xz/message.c | 7 +------
11045 1 file changed, 1 insertion(+), 6 deletions(-)
11046
11047commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e
11048Author: Jia Tan <jiat0218@gmail.com>
11049Date:   2023-11-23 22:04:35 +0800
11050
11051    xz: Create separate is_tty() function.
11052
11053    The new is_tty() will report if a file descriptor is a terminal or not.
11054    On POSIX systems, it is a wrapper around isatty(). However, the native
11055    Windows implementation of isatty() will return true for all character
11056    devices, not just terminals. So is_tty() has a special case for Windows
11057    so it can use alternative Windows API functions to determine if a file
11058    descriptor is a terminal.
11059
11060    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
11061    or write to non-terminal character devices because xz thought it was a
11062    terminal. For instance:
11063
11064        xz foo -c > /dev/null
11065
11066    would fail because /dev/null was assumed to be a terminal.
11067
11068 src/xz/util.c | 30 +++++++++++++++++++++++-------
11069 src/xz/util.h | 14 ++++++++++++++
11070 2 files changed, 37 insertions(+), 7 deletions(-)
11071
11072commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d
11073Author: Jia Tan <jiat0218@gmail.com>
11074Date:   2023-11-22 20:39:41 +0800
11075
11076    tuklib_integer: Fix typo discovered by codespell.
11077
11078    Based on internet dictionary searches, 'choise' is an outdated spelling
11079    of 'choice'.
11080
11081 src/common/tuklib_integer.h | 2 +-
11082 1 file changed, 1 insertion(+), 1 deletion(-)
11083
11084commit 659aca0d695807c0762d4101765189e4e33d1e2c
11085Author: Lasse Collin <lasse.collin@tukaani.org>
11086Date:   2023-11-17 19:35:19 +0200
11087
11088    xz: Move the check for --suffix with --format=raw a few lines earlier.
11089
11090    Now it reads from argv[] instead of args->arg_names.
11091
11092 src/xz/args.c | 44 ++++++++++++++++++++++----------------------
11093 1 file changed, 22 insertions(+), 22 deletions(-)
11094
11095commit ca278eb2b7f5a4940f5ab18955297b398d423824
11096Author: Jia Tan <jiat0218@gmail.com>
11097Date:   2023-11-17 20:35:11 +0800
11098
11099    Tests: Create test_suffix.sh.
11100
11101    This tests some complicated interactions with the --suffix= option.
11102    The suffix option must be used with --format=raw, but can optionally
11103    be used to override the default .xz suffix.
11104
11105    This test also verifies some recent bugs have been correctly solved
11106    and to hopefully avoid further regressions in the future.
11107
11108 tests/Makefile.am    |   2 +
11109 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++
11110 2 files changed, 191 insertions(+)
11111
11112commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce
11113Author: Jia Tan <jiat0218@gmail.com>
11114Date:   2023-11-17 20:19:26 +0800
11115
11116    xz: Fix a bug with --files and --files0 in raw mode without a suffix.
11117
11118    The following command caused a segmentation fault:
11119
11120        xz -Fraw --lzma1 --files=foo
11121
11122    when foo was a valid file. The usage of --files or --files0 was not
11123    being checked when compressing or decompressing in raw mode without a
11124    suffix. The suffix checking code was meant to validate that all files
11125    to be processed are "-" (if not writing to standard out), meaning the
11126    data is only coming from standard in. In this case, there were no file
11127    names to check since --files and --files0 store their file name in a
11128    different place.
11129
11130    Later code assumed the suffix was set and caused a segmentation fault.
11131    Now, the above command results in an error.
11132
11133 src/xz/args.c | 5 +++++
11134 1 file changed, 5 insertions(+)
11135
11136commit 299920bab9ae258a247366339264e8aefca9e3ce
11137Author: Jia Tan <jiat0218@gmail.com>
11138Date:   2023-11-17 20:04:58 +0800
11139
11140    Tests: Fix typo in a comment.
11141
11142 tests/test_files.sh | 2 +-
11143 1 file changed, 1 insertion(+), 1 deletion(-)
11144
11145commit f481523baac946fa3bc13d79186ffaf0c0b818a7
11146Author: Jia Tan <jiat0218@gmail.com>
11147Date:   2023-11-15 23:40:13 +0800
11148
11149    xz: Refactor suffix test with raw format.
11150
11151    The previous version set opt_stdout, but this caused an issue with
11152    copying an input file to standard out when decompressing an unknown file
11153    type. The following needs to result in an error:
11154
11155        echo foo | xz -df
11156
11157    since -c, --stdout is not used. This fixes the previous error by not
11158    setting opt_stdout.
11159
11160 src/xz/args.c | 38 +++++++++++++-------------------------
11161 1 file changed, 13 insertions(+), 25 deletions(-)
11162
11163commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6
11164Author: Jia Tan <jiat0218@gmail.com>
11165Date:   2023-11-14 20:27:46 +0800
11166
11167    xz: Move suffix check after stdout mode is detected.
11168
11169    This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0
11170    when the suffix check was initially moved. This caused a situation that
11171    previously worked:
11172
11173        echo foo | xz -Fraw --lzma1 | wc -c
11174
11175    to fail because the old code knew that this would write to standard out
11176    so a suffix was not needed.
11177
11178 src/xz/args.c | 16 ++++++++--------
11179 1 file changed, 8 insertions(+), 8 deletions(-)
11180
11181commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf
11182Author: Jia Tan <jiat0218@gmail.com>
11183Date:   2023-11-14 20:27:04 +0800
11184
11185    xz: Detect when all data will be written to standard out earlier.
11186
11187    If the -c, --stdout argument is not used, then we can still detect when
11188    the data will be written to standard out if all of the provided
11189    filenames are "-" (denoting standard in) or if no filenames are
11190    provided.
11191
11192 src/xz/args.c | 21 +++++++++++++++++++++
11193 1 file changed, 21 insertions(+)
11194
11195commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b
11196Author: Jia Tan <jiat0218@gmail.com>
11197Date:   2023-11-09 01:21:53 +0800
11198
11199    liblzma: Add missing comments to lz_encoder.h.
11200
11201 src/liblzma/lz/lz_encoder.h | 6 +++++-
11202 1 file changed, 5 insertions(+), 1 deletion(-)
11203
11204commit 5fe1450603dc625340b8b7866fb4a83ff748ad06
11205Author: Jia Tan <jiat0218@gmail.com>
11206Date:   2023-11-01 20:18:30 +0800
11207
11208    Add NEWS for 5.4.5.
11209
11210 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11211 1 file changed, 74 insertions(+)
11212
11213commit 46007049cd42e606543dbe650feb17bdf4469c29
11214Author: Lasse Collin <lasse.collin@tukaani.org>
11215Date:   2023-10-31 21:41:09 +0200
11216
11217    liblzma: Fix compilation of fastpos_tablegen.c.
11218
11219    The macro lzma_attr_visibility_hidden has to be defined to make
11220    fastpos.h usable. The visibility attribute is irrelevant to
11221    fastpos_tablegen.c so simply #define the macro to an empty value.
11222
11223    fastpos_tablegen.c is never built by the included build systems
11224    and so the problem wasn't noticed earlier. It's just a standalone
11225    program for generating fastpos_table.c.
11226
11227    Fixes: https://github.com/tukaani-project/xz/pull/69
11228    Thanks to GitHub user Jamaika1.
11229
11230 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
11231 1 file changed, 2 insertions(+)
11232
11233commit 148e20607e95781558bdfc823ecba07b7af4b590
11234Author: Jia Tan <jiat0218@gmail.com>
11235Date:   2023-10-31 21:51:40 +0800
11236
11237    Build: Fix text wrapping in an output message.
11238
11239 configure.ac | 9 +++++----
11240 1 file changed, 5 insertions(+), 4 deletions(-)
11241
11242commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c
11243Author: Lasse Collin <lasse.collin@tukaani.org>
11244Date:   2023-10-30 18:09:53 +0200
11245
11246    liblzma: Add a note why crc_always_inline exists for now.
11247
11248    Solaris Studio is a possible example (not tested) which
11249    supports the always_inline attribute but might not get
11250    detected by the common.h #ifdefs.
11251
11252 src/liblzma/check/crc_common.h | 5 +++++
11253 1 file changed, 5 insertions(+)
11254
11255commit e7a86b94cd247435ac96bc79ba528b690b9ca388
11256Author: Lasse Collin <lasse.collin@tukaani.org>
11257Date:   2023-10-22 17:59:11 +0300
11258
11259    liblzma: Use lzma_always_inline in memcmplen.h.
11260
11261 src/liblzma/common/memcmplen.h | 3 +--
11262 1 file changed, 1 insertion(+), 2 deletions(-)
11263
11264commit dcfe5632992fb7f06f921da13fcdd84f83d0d285
11265Author: Lasse Collin <lasse.collin@tukaani.org>
11266Date:   2023-10-30 17:43:03 +0200
11267
11268    liblzma: #define lzma_always_inline in common.h.
11269
11270 src/liblzma/common/common.h | 17 +++++++++++++++++
11271 1 file changed, 17 insertions(+)
11272
11273commit 41113fe30a47f6fd3e30cb4494dd538e86212edf
11274Author: Lasse Collin <lasse.collin@tukaani.org>
11275Date:   2023-10-22 17:15:32 +0300
11276
11277    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
11278
11279    These variables are internal to liblzma and not exposed in the API.
11280
11281 src/liblzma/check/check.h                | 7 +++++++
11282 src/liblzma/common/stream_flags_common.h | 3 +++
11283 src/liblzma/lz/lz_encoder_hash.h         | 1 +
11284 src/liblzma/lzma/fastpos.h               | 1 +
11285 src/liblzma/rangecoder/price.h           | 1 +
11286 5 files changed, 13 insertions(+)
11287
11288commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478
11289Author: Lasse Collin <lasse.collin@tukaani.org>
11290Date:   2023-10-22 17:08:39 +0300
11291
11292    liblzma: #define lzma_attr_visibility_hidden in common.h.
11293
11294    In ELF shared libs:
11295
11296    -fvisibility=hidden affects definitions of symbols but not
11297    declarations.[*] This doesn't affect direct calls to functions
11298    inside liblzma as a linker can replace a call to lzma_foo@plt
11299    with a call directly to lzma_foo when -fvisibility=hidden is used.
11300
11301    [*] It has to be like this because otherwise every installed
11302        header file would need to explictly set the symbol visibility
11303        to default.
11304
11305    When accessing extern variables that aren't defined in the
11306    same translation unit, compiler assumes that the variable has
11307    the default visibility and thus indirection is needed. Unlike
11308    function calls, linker cannot optimize this.
11309
11310    Using __attribute__((__visibility__("hidden"))) with the extern
11311    variable declarations tells the compiler that indirection isn't
11312    needed because the definition is in the same shared library.
11313
11314    About 15+ years ago, someone told me that it would be good if
11315    the CRC tables would be defined in the same translation unit
11316    as the C code of the CRC functions. While I understood that it
11317    could help a tiny amount, I didn't want to change the code because
11318    a separate translation unit for the CRC tables was needed for the
11319    x86 assembly code anyway. But when visibility attributes are
11320    supported, simply marking the extern declaration with the
11321    hidden attribute will get identical result. When there are only
11322    a few affected variables, this is trivial to do. I wish I had
11323    understood this back then already.
11324
11325 src/liblzma/common/common.h | 11 +++++++++++
11326 1 file changed, 11 insertions(+)
11327
11328commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8
11329Author: Lasse Collin <lasse.collin@tukaani.org>
11330Date:   2023-09-30 22:54:28 +0300
11331
11332    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
11333
11334    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
11335    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
11336    most recent GCC package (released 2021-02-02). The project might
11337    still be alive but majority of people have switched to MinGW-w64.
11338    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
11339    Building with MinGW is likely to still work but I haven't tested it
11340    in the recent years.
11341
11342 src/liblzma/api/lzma.h         | 4 ++--
11343 src/liblzma/api/lzma/version.h | 2 +-
11344 2 files changed, 3 insertions(+), 3 deletions(-)
11345
11346commit 597f49b61475438a43a417236989b2acc968a686
11347Author: Lasse Collin <lasse.collin@tukaani.org>
11348Date:   2023-09-27 00:58:17 +0300
11349
11350    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
11351
11352    A CMake option LARGE_FILE_SUPPORT is created if and only if
11353    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
11354
11355    This is needed on many 32-bit platforms and even with 64-bit builds
11356    with MinGW-w64 to get support for files larger than 2 GiB.
11357
11358 CMakeLists.txt                        |  7 ++++-
11359 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
11360 2 files changed, 58 insertions(+), 1 deletion(-)
11361
11362commit 1bc548b8210366e44ba35b0b11577a8e328c1228
11363Author: Lasse Collin <lasse.collin@tukaani.org>
11364Date:   2023-09-30 02:14:25 +0300
11365
11366    CMake: Generate and install liblzma.pc if not using MSVC.
11367
11368    Autotools based build uses -pthread and thus adds it to Libs.private
11369    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
11370    are available in libc so Libs.private doesn't get -pthread either.
11371
11372 CMakeLists.txt | 21 +++++++++++++++++++++
11373 1 file changed, 21 insertions(+)
11374
11375commit 2add71966f891d315105d6245f724ed4f43a4eff
11376Author: Lasse Collin <lasse.collin@tukaani.org>
11377Date:   2023-09-30 01:13:13 +0300
11378
11379    CMake: Rearrange the PACKAGE_ variables.
11380
11381    The windres workaround now replaces spaces with \x20 so
11382    the package name isn't repeated.
11383
11384    These changes will help with creation of liblzma.pc.
11385
11386 CMakeLists.txt | 26 +++++++++++++++-----------
11387 1 file changed, 15 insertions(+), 11 deletions(-)
11388
11389commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91
11390Author: Lasse Collin <lasse.collin@tukaani.org>
11391Date:   2023-09-29 20:46:11 +0300
11392
11393    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
11394
11395    It properly adds -DLZMA_API_STATIC when compiling code that
11396    will be linked against static liblzma. Having it there on
11397    systems other than Windows does no harm.
11398
11399    See: https://www.msys2.org/docs/pkgconfig/
11400
11401 src/liblzma/liblzma.pc.in | 1 +
11402 1 file changed, 1 insertion(+)
11403
11404commit 80e0750e3996c1c659e972ce9cf789ca2e99f702
11405Author: Lasse Collin <lasse.collin@tukaani.org>
11406Date:   2023-09-27 22:46:20 +0300
11407
11408    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
11409
11410 CMakeLists.txt              | 20 ++++++++++++++++++++
11411 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
11412 2 files changed, 46 insertions(+)
11413
11414commit 08d12595f486890cf601b87f36ee0ddbce57728e
11415Author: Lasse Collin <lasse.collin@tukaani.org>
11416Date:   2023-10-26 21:44:42 +0300
11417
11418    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
11419
11420    In this case they have identical values.
11421
11422 CMakeLists.txt | 2 +-
11423 1 file changed, 1 insertion(+), 1 deletion(-)
11424
11425commit e67aaf698de75c73443a5ec786781cbf2034461d
11426Author: Lasse Collin <lasse.collin@tukaani.org>
11427Date:   2023-10-01 19:10:57 +0300
11428
11429    CMake/Windows: Fix the import library filename.
11430
11431    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
11432    liblzma.dll and liblzma.dll.a.
11433
11434 CMakeLists.txt | 1 +
11435 1 file changed, 1 insertion(+)
11436
11437commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179
11438Author: Lasse Collin <lasse.collin@tukaani.org>
11439Date:   2023-10-25 19:13:25 +0300
11440
11441    Build: Detect -fsanitize= in CFLAGS and incompatible build options.
11442
11443    Now configure will fail if -fsanitize= is found in CFLAGS
11444    and sanitizer-incompatible ifunc or Landlock sandboxing
11445    would be used. These are incompatible with one or more sanitizers.
11446    It's simpler to reject all -fsanitize= uses instead of trying to
11447    pass those that might not cause problems.
11448
11449    CMake-based build was updated similarly. It lets the configuration
11450    finish (SEND_ERROR instead of FATAL_ERROR) so that both error
11451    messages can be seen at once.
11452
11453 CMakeLists.txt | 29 +++++++++++++++++++++++++++++
11454 configure.ac   | 37 +++++++++++++++++++++++++++++++++----
11455 2 files changed, 62 insertions(+), 4 deletions(-)
11456
11457commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468
11458Author: Jia Tan <jiat0218@gmail.com>
11459Date:   2023-10-24 00:50:08 +0800
11460
11461    CI: Disable sandboxing in fsanitize=address,undefined job.
11462
11463    The sandboxing on Linux now supports Landlock, which restricts all
11464    supported filesystem actions after xz opens the files it needs. The
11465    sandbox is only enabled when one file is input and we are writing to
11466    standard out. With fsanitize=address,undefined, the instrumentation
11467    needs to read additional files after the sandbox is in place. This
11468    forces all xz based test to fail, so the sandbox must instead be
11469    disabled.
11470
11471 .github/workflows/ci.yml | 8 ++++++--
11472 1 file changed, 6 insertions(+), 2 deletions(-)
11473
11474commit b1408987ea832e2760e478ae960a636df17a1363
11475Author: Jia Tan <jiat0218@gmail.com>
11476Date:   2023-10-24 00:15:39 +0800
11477
11478    CI: Allow disabling the sandbox in ci_build.sh.
11479
11480 build-aux/ci_build.sh | 5 ++++-
11481 1 file changed, 4 insertions(+), 1 deletion(-)
11482
11483commit 91c435cf1c7a1e893706d4d716dfd361621ed824
11484Author: Lasse Collin <lasse.collin@tukaani.org>
11485Date:   2023-10-11 19:47:44 +0300
11486
11487    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
11488
11489    Using set(ENABLE_THREADS "posix") is confusing because it sets
11490    a new normal variable and leaves the cache entry with the same
11491    name unchanged. The intent wasn't to change the cache entry so
11492    this switches to a different variable name.
11493
11494 CMakeLists.txt | 10 +++++++---
11495 1 file changed, 7 insertions(+), 3 deletions(-)
11496
11497commit fa1609eb9393ecd30decfed4891c907829f06710
11498Author: Lasse Collin <lasse.collin@tukaani.org>
11499Date:   2023-10-09 22:28:49 +0300
11500
11501    Docs: Update INSTALL about sandboxing support.
11502
11503 INSTALL | 7 ++++++-
11504 1 file changed, 6 insertions(+), 1 deletion(-)
11505
11506commit 8276c7f41c671eee4aa3239490658b23dcfd3021
11507Author: Lasse Collin <lasse.collin@tukaani.org>
11508Date:   2023-10-09 22:07:52 +0300
11509
11510    xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3).
11511
11512    It is enabled only when decompressing one file to stdout,
11513    similar to how Capsicum is used.
11514
11515    Landlock was added in Linux 5.13.
11516
11517 CMakeLists.txt   | 12 +++++++++++-
11518 configure.ac     | 11 ++++++++---
11519 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11520 src/xz/main.c    | 19 +++++++++++++++++++
11521 src/xz/private.h |  3 ++-
11522 5 files changed, 98 insertions(+), 5 deletions(-)
11523
11524commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c
11525Author: Lasse Collin <lasse.collin@tukaani.org>
11526Date:   2023-10-09 21:12:31 +0300
11527
11528    CMake: Edit threading related messages.
11529
11530    It's mostly to change from "thread method" to "threading method".
11531
11532 CMakeLists.txt | 19 ++++++++++---------
11533 1 file changed, 10 insertions(+), 9 deletions(-)
11534
11535commit bf011352528ae3539ea7b780b45b96736ee57a99
11536Author: Lasse Collin <lasse.collin@tukaani.org>
11537Date:   2023-10-09 20:59:24 +0300
11538
11539    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
11540
11541    This way typos are caught quickly and compounding error messages
11542    are avoided (a single typo could cause more than one error).
11543
11544    This keeps using SEND_ERROR when the system is lacking a feature
11545    (like threading library or sandboxing method). This way the whole
11546    configuration log will be generated in case someone wishes to
11547    report a problem upstream.
11548
11549 CMakeLists.txt | 28 ++++++++++++++--------------
11550 1 file changed, 14 insertions(+), 14 deletions(-)
11551
11552commit 3f53870c249945d657ca3d75e0993e6267d71f75
11553Author: Lasse Collin <lasse.collin@tukaani.org>
11554Date:   2023-10-09 18:37:32 +0300
11555
11556    CMake: Add sandboxing support.
11557
11558 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
11559 1 file changed, 49 insertions(+), 1 deletion(-)
11560
11561commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0
11562Author: Lasse Collin <lasse.collin@tukaani.org>
11563Date:   2023-10-09 18:13:08 +0300
11564
11565    Simplify detection of Capsicum support.
11566
11567    This removes support for FreeBSD 10.0 and 10.1 which used
11568    <sys/capability.h> instead of <sys/capsicum.h>. Support for
11569    FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is
11570    required to enable Capsicum support.
11571
11572    This also removes support for Capsicum on Linux (libcaprights)
11573    which seems to have been unmaintained since 2017 and Linux 4.11:
11574    https://github.com/google/capsicum-linux
11575
11576 configure.ac            |  4 +--
11577 m4/ax_check_capsicum.m4 | 85 -------------------------------------------------
11578 src/xz/Makefile.am      |  2 +-
11579 src/xz/file_io.c        | 14 +++-----
11580 src/xz/private.h        |  2 +-
11581 5 files changed, 9 insertions(+), 98 deletions(-)
11582
11583commit c57858b60e186d020b2dbaf7aabd9b32c71da824
11584Author: Lasse Collin <lasse.collin@tukaani.org>
11585Date:   2023-09-25 01:46:36 +0300
11586
11587    xz/Windows: Allow clock_gettime with POSIX threads.
11588
11589    If winpthreads are used for threading, it's OK to use clock_gettime()
11590    from winpthreads too.
11591
11592 src/xz/mytime.c | 9 ++++++---
11593 1 file changed, 6 insertions(+), 3 deletions(-)
11594
11595commit dd32f628bb5541ef4e8ce66966ef456a1934084c
11596Author: Lasse Collin <lasse.collin@tukaani.org>
11597Date:   2023-09-25 01:39:26 +0300
11598
11599    mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads.
11600
11601    This might be almost useless but it doesn't need much extra code either.
11602
11603 src/common/mythread.h | 23 ++++++++++++++++++++++-
11604 1 file changed, 22 insertions(+), 1 deletion(-)
11605
11606commit 680e52cdd086e92691d8a0bca2c98815565f60ca
11607Author: Lasse Collin <lasse.collin@tukaani.org>
11608Date:   2023-09-23 03:06:36 +0300
11609
11610    CMake: Check for clock_gettime() even on Windows.
11611
11612    This mirrors configure.ac although currently MinGW-w64 builds
11613    don't use clock_gettime() even if it is found.
11614
11615 CMakeLists.txt | 44 +++++++++++++++++++++-----------------------
11616 1 file changed, 21 insertions(+), 23 deletions(-)
11617
11618commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419
11619Author: Lasse Collin <lasse.collin@tukaani.org>
11620Date:   2023-09-23 03:23:32 +0300
11621
11622    Build: Check for clock_gettime() even if not using POSIX threads.
11623
11624    See the new comment in the code.
11625
11626    This also makes the check for clock_gettime() run with MinGW-w64
11627    with which we don't want to use clock_gettime(). The previous
11628    commit already took care of this situation.
11629
11630 configure.ac | 31 ++++++++++++++++++-------------
11631 1 file changed, 18 insertions(+), 13 deletions(-)
11632
11633commit 46fd991cd2808ef62554853864c946232e7547f0
11634Author: Lasse Collin <lasse.collin@tukaani.org>
11635Date:   2023-09-24 22:58:53 +0300
11636
11637    xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64.
11638
11639    This commit alone doesn't change anything in the real-world:
11640
11641      - configure.ac currently checks for clock_gettime() only
11642        when using pthreads.
11643
11644      - CMakeLists.txt doesn't check for clock_gettime() on Windows.
11645
11646    So clock_gettime() wasn't used with MinGW-w64 before either.
11647
11648    clock_gettime() provides monotonic time and it's better than
11649    gettimeofday() in this sense. But clock_gettime() is defined
11650    in winpthreads, and liblzma or xz needs nothing else from
11651    winpthreads. By avoiding clock_gettime(), we avoid the dependency on
11652    libwinpthread-1.dll or the need to link against the static version.
11653
11654    As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be
11655    faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution
11656    is more than good enough for the progress indicator in xz.
11657
11658 src/xz/mytime.c | 9 +++++++--
11659 1 file changed, 7 insertions(+), 2 deletions(-)
11660
11661commit cdb4d91f2464b50c985ef7b9517314ea237ddda7
11662Author: Lasse Collin <lasse.collin@tukaani.org>
11663Date:   2023-09-24 00:21:22 +0300
11664
11665    xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
11666
11667 src/xz/mytime.c | 14 +++++++++++---
11668 1 file changed, 11 insertions(+), 3 deletions(-)
11669
11670commit 988e09f27b9b04a43d45d10f92782e0092ee27a9
11671Author: Jia Tan <jiat0218@gmail.com>
11672Date:   2023-10-20 19:17:46 +0800
11673
11674    liblzma: Move is_clmul_supported() back to crc_common.h.
11675
11676    This partially reverts creating crc_clmul.c
11677    (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
11678    was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
11679    caused a problem when the function call to lzma_is_clmul_supported()
11680    results in a call through the PLT. ifunc resolvers run very early in
11681    the dynamic loading sequence, so the PLT may not be setup properly at
11682    this point. Whether the PLT is used or not for
11683    lzma_is_clmul_supported() depened upon the compiler-toolchain used and
11684    flags.
11685
11686    In liblzma compiled with GCC, for instance, GCC will go through the PLT
11687    for function calls internal to liblzma if the version scripts and
11688    symbol visibility hiding are not used. If lazy-binding is disabled,
11689    then it would have made any program linked with liblzma fail during
11690    dynamic loading in the ifunc resolver.
11691
11692 src/liblzma/check/crc32_fast.c |  2 +-
11693 src/liblzma/check/crc64_fast.c |  2 +-
11694 src/liblzma/check/crc_clmul.c  | 45 ------------------------------------
11695 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++---
11696 4 files changed, 51 insertions(+), 50 deletions(-)
11697
11698commit 105c7ca90d4152942e0798580a37f736d02faa22
11699Author: Jia Tan <jiat0218@gmail.com>
11700Date:   2023-10-19 16:23:32 +0800
11701
11702    Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc.
11703
11704    Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be
11705    set. Because of this, it makes the recent change to conditionally
11706    compile check/crc_clmul.c appear wrong since that file has CLMUL
11707    implementations for both CRC32 and CRC64.
11708
11709 src/liblzma/check/Makefile.inc | 4 ++--
11710 1 file changed, 2 insertions(+), 2 deletions(-)
11711
11712commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c
11713Author: Jia Tan <jiat0218@gmail.com>
11714Date:   2023-10-19 16:09:01 +0800
11715
11716    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
11717
11718    The option is enabled by default, but will only be visible to a user
11719    listing cache variables or using a CMake GUI application if the
11720    immintrin.h header file is found.
11721
11722    This mirrors our Autotools build --disable-clmul-crc functionality.
11723
11724 CMakeLists.txt | 44 +++++++++++++++++++++++++-------------------
11725 1 file changed, 25 insertions(+), 19 deletions(-)
11726
11727commit c60b25569d414bb73b705977a4dd342f8f9f1965
11728Author: Jia Tan <jiat0218@gmail.com>
11729Date:   2023-10-19 00:22:50 +0800
11730
11731    liblzma: Fix -fsanitize=address failure with crc_clmul functions.
11732
11733    After forcing crc_simd_body() to always be inlined it caused
11734    -fsanitize=address to fail for lzma_crc32_clmul() and
11735    lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added
11736    to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from
11737    crc_simd_body(). ASAN and inline functions behavior has changed over
11738    the years for GCC specifically, so while strictly required we will
11739    keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in
11740    case this becomes a requirement in the future.
11741
11742    Older GCC versions refuse to inline a function with ASAN if the
11743    caller and callee do not agree on sanitization flags
11744    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the
11745    function was forced to be inlined, it will not compile if the callee
11746    function has __no_sanitize_address__ but the caller doesn't.
11747
11748 src/liblzma/check/crc_clmul.c | 6 ++++++
11749 1 file changed, 6 insertions(+)
11750
11751commit 9a78971261bc67622cbd7dae02f6966968ac1393
11752Author: Lasse Collin <lasse.collin@tukaani.org>
11753Date:   2023-10-14 20:16:13 +0300
11754
11755    tuklib_integer: Update the CMake test for fast unaligned access.
11756
11757 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++----------
11758 1 file changed, 54 insertions(+), 15 deletions(-)
11759
11760commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4
11761Author: Lasse Collin <lasse.collin@tukaani.org>
11762Date:   2023-09-23 23:28:48 +0300
11763
11764    Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V.
11765
11766    PowerPC64LE wasn't tested but it seems like a safe change.
11767    POWER8 supports unaligned access in little endian mode. Testing
11768    on godbolt.org shows that GCC uses unaligned access by default.
11769
11770    The RISC-V macro __riscv_misaligned_fast is very new and not
11771    in any stable compiler release yet.
11772
11773    Documentation in INSTALL was updated to match.
11774
11775    Documentation about an autodetection bug when using ARM64 GCC
11776    with -mstrict-align was added to INSTALL.
11777
11778    CMake files weren't updated yet.
11779
11780 INSTALL              | 39 +++++++++++++++++++++++++++++++++++++--
11781 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++-------
11782 2 files changed, 64 insertions(+), 9 deletions(-)
11783
11784commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2
11785Author: Lasse Collin <lasse.collin@tukaani.org>
11786Date:   2023-10-14 17:56:59 +0300
11787
11788    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
11789
11790    In XZ Utils context this doesn't matter much because
11791    unaligned reads and writes aren't used in hot code
11792    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
11793
11794 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
11795 1 file changed, 189 insertions(+), 67 deletions(-)
11796
11797commit 6828242735cbf61b93d140383336e1e51a006f2d
11798Author: Lasse Collin <lasse.collin@tukaani.org>
11799Date:   2023-09-23 02:21:49 +0300
11800
11801    tuklib_integer: Add missing write64be and write64le fallback functions.
11802
11803 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
11804 1 file changed, 34 insertions(+)
11805
11806commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416
11807Author: Jia Tan <jiat0218@gmail.com>
11808Date:   2023-10-18 19:57:10 +0800
11809
11810    liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul().
11811
11812    After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul()
11813    has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the
11814    optimizations disabled.
11815
11816 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++---------------
11817 1 file changed, 15 insertions(+), 15 deletions(-)
11818
11819commit 5ce0f7a48bdf5c3b45430850a4487307afac6143
11820Author: Lasse Collin <lasse.collin@tukaani.org>
11821Date:   2023-10-18 14:30:00 +0300
11822
11823    liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc.
11824
11825 src/liblzma/check/crc_common.h | 4 +++-
11826 1 file changed, 3 insertions(+), 1 deletion(-)
11827
11828commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b
11829Author: Lasse Collin <lasse.collin@tukaani.org>
11830Date:   2023-10-17 21:53:11 +0300
11831
11832    liblzma: Include common.h in crc_common.h.
11833
11834    crc_common.h depends on common.h. The headers include common.h except
11835    when there is a reason to not do so.
11836
11837 src/liblzma/check/crc_clmul.c  | 1 -
11838 src/liblzma/check/crc_common.h | 3 +++
11839 2 files changed, 3 insertions(+), 1 deletion(-)
11840
11841commit e13b7947b92355c334edd594295d3a2c99c4bca1
11842Author: Jia Tan <jiat0218@gmail.com>
11843Date:   2023-10-18 01:23:26 +0800
11844
11845    liblzma: Add include guards to crc_common.h.
11846
11847 src/liblzma/check/crc_common.h | 5 +++++
11848 1 file changed, 5 insertions(+)
11849
11850commit 40abd88afcc61a8157fcd12d78d491caeb8e12be
11851Author: Jia Tan <jiat0218@gmail.com>
11852Date:   2023-10-18 22:50:25 +0800
11853
11854    liblzma: Add the crc_always_inline macro to crc_simd_body().
11855
11856    Forcing this to be inline has a significant speed improvement at the
11857    cost of a few repeated instructions. The compilers tested on did not
11858    inline this function since it is large and is used twice in the same
11859    translation unit.
11860
11861 src/liblzma/check/crc_clmul.c | 2 +-
11862 1 file changed, 1 insertion(+), 1 deletion(-)
11863
11864commit a5966c276bd6fa975f0389f8a8dc61393de750b0
11865Author: Jia Tan <jiat0218@gmail.com>
11866Date:   2023-10-18 22:48:19 +0800
11867
11868    liblzma: Create crc_always_inline macro.
11869
11870    This macro must be used instead of the inline keyword. On MSVC, it is
11871    a replacement for __forceinline which is an MSVC specific keyword that
11872    should not be used with inline (it will issue a warning if it is).
11873
11874    It does not use a build system check to determine if
11875    __attribute__((__always_inline__)) since all compilers that can use
11876    CLMUL extensions (except the special case for MSVC) should support this
11877    attribute. If this assumption is incorrect then it will result in a bug
11878    report instead of silently producing slow code.
11879
11880 src/liblzma/check/crc_common.h | 15 +++++++++++++++
11881 1 file changed, 15 insertions(+)
11882
11883commit 96b663f67c0e738a99ba8f35d9f4ced9add74544
11884Author: Jia Tan <jiat0218@gmail.com>
11885Date:   2023-10-14 13:23:23 +0800
11886
11887    liblzma: Refactor CRC comments.
11888
11889    A detailed description of the three dispatch methods was added. Also,
11890    duplicated comments now only appear in crc32_fast.c or were removed from
11891    both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c.
11892
11893 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++-------------
11894 src/liblzma/check/crc64_fast.c | 61 ++++++----------------------------------
11895 2 files changed, 53 insertions(+), 72 deletions(-)
11896
11897commit 8c0f9376f58c0696d5d6719705164d35542dd891
11898Author: Jia Tan <jiat0218@gmail.com>
11899Date:   2023-10-14 12:17:57 +0800
11900
11901    liblzma: Create crc_clmul.c.
11902
11903    Both crc32_clmul() and crc64_clmul() are now exported from
11904    crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This
11905    ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is
11906    not duplicated between crc32_fast.c and crc64_fast.c.
11907
11908    Also, it encapsulates the complexity of the CLMUL implementations into a
11909    single file and reduces the complexity of crc32_fast.c and crc64_fast.c.
11910    Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and
11911    crc_common.h.
11912
11913    During the conversion, various cleanups were applied to code (thanks to
11914    Lasse Collin) including:
11915
11916    - Require using semicolons with MASK_/L/H/LH macros.
11917    - Variable typing and const handling improvements.
11918    - Improvements to comments.
11919    - Fixes to the pragmas used.
11920    - Removed unneeded variables.
11921    - Whitespace improvements.
11922    - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling.
11923    - Silenced warnings and removed the need for some #pragmas
11924
11925 CMakeLists.txt                 |   6 +-
11926 configure.ac                   |   6 +-
11927 src/liblzma/check/Makefile.inc |   3 +
11928 src/liblzma/check/crc32_fast.c | 120 +-----------
11929 src/liblzma/check/crc64_fast.c | 128 +------------
11930 src/liblzma/check/crc_clmul.c  | 414 +++++++++++++++++++++++++++++++++++++++++
11931 src/liblzma/check/crc_common.h | 190 +------------------
11932 7 files changed, 444 insertions(+), 423 deletions(-)
11933
11934commit a3ebc2c516b09616638060806c841bd4bcf7bce3
11935Author: Jia Tan <jiat0218@gmail.com>
11936Date:   2023-10-14 10:23:03 +0800
11937
11938    liblzma: Define CRC_USE_IFUNC in crc_common.h.
11939
11940    When ifunc is supported, we can define a simpler macro instead of
11941    repeating the more complex check in both crc32_fast.c and crc64_fast.c.
11942
11943 src/liblzma/check/crc32_fast.c | 3 +--
11944 src/liblzma/check/crc64_fast.c | 3 +--
11945 src/liblzma/check/crc_common.h | 5 +++++
11946 3 files changed, 7 insertions(+), 4 deletions(-)
11947
11948commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17
11949Author: Hans Jansen <hansjansen162@outlook.com>
11950Date:   2023-10-12 19:37:01 +0200
11951
11952    liblzma: Added crc32_clmul to crc32_fast.c.
11953
11954 src/liblzma/check/crc32_fast.c  | 247 ++++++++++++++++++++++++++++++++++++++--
11955 src/liblzma/check/crc32_table.c |  19 +++-
11956 2 files changed, 255 insertions(+), 11 deletions(-)
11957
11958commit 93e6fb08b22c7c13be2dd1e7274fe78413436254
11959Author: Hans Jansen <hansjansen162@outlook.com>
11960Date:   2023-10-12 19:23:40 +0200
11961
11962    liblzma: Moved CLMUL CRC logic to crc_common.h.
11963
11964    crc64_fast.c was updated to use the code from crc_common.h instead.
11965
11966 src/liblzma/check/crc64_fast.c | 257 ++---------------------------------------
11967 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++-
11968 2 files changed, 240 insertions(+), 247 deletions(-)
11969
11970commit 233885a437f8b55a5c8442984ebc0aaa579e92de
11971Author: Hans Jansen <hansjansen162@outlook.com>
11972Date:   2023-10-12 19:07:50 +0200
11973
11974    liblzma: Rename crc_macros.h to crc_common.h.
11975
11976 CMakeLists.txt                                   | 2 +-
11977 src/liblzma/check/Makefile.inc                   | 2 +-
11978 src/liblzma/check/crc32_fast.c                   | 2 +-
11979 src/liblzma/check/crc64_fast.c                   | 2 +-
11980 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +-
11981 5 files changed, 5 insertions(+), 5 deletions(-)
11982
11983commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd
11984Author: Gabriela Gutierrez <gabigutierrez@google.com>
11985Date:   2023-09-26 15:55:13 +0000
11986
11987    CI: Bump and ref actions by commit SHA in windows-ci.yml
11988
11989    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.
11990
11991    It's important to make sure the SHA's are from the original repositories and not forks.
11992
11993    For reference:
11994
11995    https://github.com/msys2/setup-msys2/releases/tag/v2.20.1
11996    https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d
11997
11998    https://github.com/actions/checkout/releases/tag/v4.1.0
11999    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
12000
12001    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
12002    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
12003
12004    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
12005
12006 .github/workflows/windows-ci.yml | 6 +++---
12007 1 file changed, 3 insertions(+), 3 deletions(-)
12008
12009commit f28cc9bd481ce493da11f98c18526d324211599a
12010Author: Gabriela Gutierrez <gabigutierrez@google.com>
12011Date:   2023-09-26 14:35:08 +0000
12012
12013    CI: Bump and ref actions by commit SHA in ci.yml
12014
12015    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.
12016
12017    It's important to make sure the SHA's are from the original repositories and not forks.
12018
12019    For reference:
12020
12021    https://github.com/actions/checkout/releases/tag/v4.1.0
12022    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
12023
12024    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
12025    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
12026
12027    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
12028
12029 .github/workflows/ci.yml | 4 ++--
12030 1 file changed, 2 insertions(+), 2 deletions(-)
12031
12032commit f74f1740067b75042497edbfa6ea457ff75484b9
12033Author: Jia Tan <jiat0218@gmail.com>
12034Date:   2023-10-12 20:12:18 +0800
12035
12036    Build: Update visibility.m4 from Gnulib.
12037
12038    Updating from version 6 -> 8 from upstream. Declarations for variables
12039    and function bodies were added to avoid unnecessary failures with
12040    -Werror.
12041
12042 m4/visibility.m4 | 9 +++++++--
12043 1 file changed, 7 insertions(+), 2 deletions(-)
12044
12045commit 5c4bca521e6fb435898a0012b3276eee70a6dadf
12046Author: Lasse Collin <lasse.collin@tukaani.org>
12047Date:   2023-10-06 19:36:35 +0300
12048
12049    Update THANKS.
12050
12051 THANKS | 1 +
12052 1 file changed, 1 insertion(+)
12053
12054commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
12055Author: Lasse Collin <lasse.collin@tukaani.org>
12056Date:   2023-10-06 18:55:57 +0300
12057
12058    CMake/Windows: Fix when the windres workaround is applied.
12059
12060    CMake doesn't set WIN32 on CYGWIN but the workaround is
12061    probably needed on Cygwin too. Same for MSYS and MSYS2.
12062
12063    The workaround must not be used with Clang that is acting in
12064    MSVC mode. This fixes it by checking for the known environments
12065    that need the workaround instead of using "NOT MSVC".
12066
12067    Thanks to Martin Storsjö.
12068    https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431
12069
12070 CMakeLists.txt | 6 +++---
12071 1 file changed, 3 insertions(+), 3 deletions(-)
12072
12073commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d
12074Author: Jia Tan <jiat0218@gmail.com>
12075Date:   2023-09-29 22:11:54 +0800
12076
12077    CI: Disable CLANG64 MSYS2 environment until bug is resolved.
12078
12079    lld 17.0.1 searches for libraries to link first in the toolchain
12080    directories before the local directory when building. The is a problem
12081    for us because liblzma.a is installed in MSYS2 CLANG64 by default and
12082    xz.exe will thus use the installed library instead of the one being
12083    built.
12084
12085    This causes tests to fail when they are expecting features to be
12086    disabled. More importantly, it will compile xz.exe with an incorrect
12087    liblzma and could cause unexpected behavior by being unable to update
12088    liblzma code in static builds. The CLANG64 environment can be tested
12089    again once this is fixed.
12090
12091    Link to bug: https://github.com/llvm/llvm-project/issues/67779.
12092
12093 .github/workflows/windows-ci.yml | 8 +++++---
12094 1 file changed, 5 insertions(+), 3 deletions(-)
12095
12096commit 30d0c35327f3639cb11224872aa58fdbf0b1526e
12097Author: Jia Tan <jiat0218@gmail.com>
12098Date:   2023-09-29 20:14:39 +0800
12099
12100    CMake: Rename xz and man page symlink custom targets.
12101
12102    The Ninja Generator for CMake cannot have a custom target and its
12103    BYPRODUCTS have the same name. This has prevented Ninja builds on
12104    Unix-like systems since the xz symlinks were introduced in
12105    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
12106
12107 CMakeLists.txt | 6 +++---
12108 1 file changed, 3 insertions(+), 3 deletions(-)
12109
12110commit 506d03127a8565442b028ec991e1578124fd3025
12111Author: Jia Tan <jiat0218@gmail.com>
12112Date:   2023-09-29 19:58:44 +0800
12113
12114    CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator.
12115
12116    CMake is unable to guess the linker language for just a header file so
12117    it must be explicitly set.
12118
12119 CMakeLists.txt | 6 ++++++
12120 1 file changed, 6 insertions(+)
12121
12122commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f
12123Author: Lasse Collin <lasse.collin@tukaani.org>
12124Date:   2023-09-27 19:54:35 +0300
12125
12126    CMake: Fix Windows build with Clang/LLVM 17.
12127
12128    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
12129    the hack for GNU windres must now be used with llvm-windres too.
12130
12131    LLVM 16.0.6 has the old behavior and there likely won't be more
12132    16.x releases. So we can simply check for >= 17.0.0.
12133
12134    See also:
12135    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
12136
12137 CMakeLists.txt | 26 ++++++++++++++------------
12138 1 file changed, 14 insertions(+), 12 deletions(-)
12139
12140commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1
12141Author: Lasse Collin <lasse.collin@tukaani.org>
12142Date:   2023-09-26 21:47:13 +0300
12143
12144    liblzma: Update a comment.
12145
12146    The C standards don't allow an empty translation unit which can be
12147    avoided by declaring something, without exporting any symbols.
12148
12149    When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had
12150    a feeling that some specific toolchain somewhere didn't like
12151    empty object files (assembler or maybe "ar" complained) but
12152    I cannot find anything to confirm this now. Quite likely I
12153    remembered nonsense. I leave this here as a note to my future self. :-)
12154
12155 src/liblzma/check/crc64_table.c | 3 +--
12156 1 file changed, 1 insertion(+), 2 deletions(-)
12157
12158commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499
12159Author: Jia Tan <jiat0218@gmail.com>
12160Date:   2023-09-27 00:02:11 +0800
12161
12162    liblzma: Avoid compiler warning without creating extra symbol.
12163
12164    When the generic fast crc64 method is used, then we omit
12165    lzma_crc64_table[][]. Similar to
12166    d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings
12167    with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a
12168    never used typedef instead of an extra symbol.
12169
12170 src/liblzma/check/crc64_table.c | 3 +--
12171 1 file changed, 1 insertion(+), 2 deletions(-)
12172
12173commit 092d21db2e5eea19fe079264ce48c178989c7606
12174Author: Lasse Collin <lasse.collin@tukaani.org>
12175Date:   2023-09-26 17:24:15 +0300
12176
12177    Build: Update the comment about -Werror usage in checks.
12178
12179 configure.ac | 10 ++++++++--
12180 1 file changed, 8 insertions(+), 2 deletions(-)
12181
12182commit a37a2763383e6c204fe878e1416dd35e7711d3a9
12183Author: Lasse Collin <lasse.collin@tukaani.org>
12184Date:   2023-09-26 15:00:43 +0300
12185
12186    Build: Fix __attribute__((ifunc(...))) detection with clang -Wall.
12187
12188    Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic
12189    the two checks that need -Werror will still work.
12190
12191    At CMake side there is add_compile_options(-Wall -Wextra)
12192    but it didn't affect the -Werror tests. So with both Autotools
12193    and CMake only user-supplied CFLAGS could make the checks fail
12194    when they shouldn't.
12195
12196    This is not a full fix as things like -Wunused-macros in
12197    user-supplied CFLAGS will still cause problems with both
12198    GCC and Clang.
12199
12200 CMakeLists.txt | 8 ++++++++
12201 configure.ac   | 8 ++++++++
12202 2 files changed, 16 insertions(+)
12203
12204commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2
12205Author: Lasse Collin <lasse.collin@tukaani.org>
12206Date:   2023-09-26 13:51:31 +0300
12207
12208    Build: Fix underquoted AC_LANG_SOURCE.
12209
12210    It made no practical difference in this case.
12211
12212 configure.ac | 2 +-
12213 1 file changed, 1 insertion(+), 1 deletion(-)
12214
12215commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982
12216Author: Lasse Collin <lasse.collin@tukaani.org>
12217Date:   2023-09-26 13:14:37 +0300
12218
12219    Build: Silence two Autoconf warnings.
12220
12221    There were two uses of AC_COMPILE_IFELSE that didn't use
12222    AC_LANG_SOURCE and Autoconf warned about these. The omission
12223    had been intentional but it turned out that this didn't do
12224    what I thought it would.
12225
12226    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
12227    inserts all #defines that have been made with AC_DEFINE so
12228    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
12229    would mean that only the exact code included in the
12230    AC_COMPILE_IFELSE call would be compiled.
12231
12232    With C programs this is not true: the #defines get added without
12233    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
12234    Thus, with the C language at least, adding AC_LANG_SOURCE makes
12235    no other difference than silencing a warning from Autoconf. The
12236    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
12237    say that the #defines have been inserted since Autoconf 2.63b and
12238    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
12239    documented if one also reads the docs of macros that one isn't
12240    calling directly.)
12241
12242    Any extra code, including #defines, can cause problems for
12243    these two tests because these tests must use -Werror.
12244    CC=clang CFLAGS=-Weverything is the most extreme example.
12245    It enables -Wreserved-macro-identifier which warns about
12246    #define __EXTENSIONS__ 1 because it begins with two underscores.
12247    It's possible to write a test file that passes -Weverything but
12248    it becomes impossible when Autoconf inserts confdefs.h.
12249
12250    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
12251    A different solution is needed for -Werror tests.
12252
12253 configure.ac | 9 ++++-----
12254 1 file changed, 4 insertions(+), 5 deletions(-)
12255
12256commit 519e47c2818acde571fadc79551294527fe6cc22
12257Author: Jia Tan <jiat0218@gmail.com>
12258Date:   2023-09-26 01:17:11 +0800
12259
12260    CMake: Remove accidental extra newline.
12261
12262 CMakeLists.txt | 1 -
12263 1 file changed, 1 deletion(-)
12264
12265commit bbb42412da6a02705ba3e668e90840c2683e4e67
12266Author: Jia Tan <jiat0218@gmail.com>
12267Date:   2023-09-26 00:47:26 +0800
12268
12269    Build: Remove Gnulib dependency from tests.
12270
12271    The tests do not use any Gnulib replacements so they do not need to link
12272    libgnu.a or have /lib in the include path.
12273
12274 tests/Makefile.am | 7 +------
12275 1 file changed, 1 insertion(+), 6 deletions(-)
12276
12277commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa
12278Author: Jia Tan <jiat0218@gmail.com>
12279Date:   2023-09-26 00:43:43 +0800
12280
12281    CMake: Remove /lib from tests include path.
12282
12283    The tests never included anything from /lib, so this was not needed.
12284
12285 CMakeLists.txt | 1 -
12286 1 file changed, 1 deletion(-)
12287
12288commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f
12289Author: Jia Tan <jiat0218@gmail.com>
12290Date:   2023-09-24 22:10:41 +0800
12291
12292    Scripts: Change quoting style from `...' to '...'.
12293
12294 src/scripts/xzdiff.in | 2 +-
12295 src/scripts/xzgrep.in | 2 +-
12296 2 files changed, 2 insertions(+), 2 deletions(-)
12297
12298commit eaebdef4d4de3c088b0905f42626b74e0d23abf3
12299Author: Jia Tan <jiat0218@gmail.com>
12300Date:   2023-09-24 22:10:18 +0800
12301
12302    xz: Change quoting style from `...' to '...'.
12303
12304 src/xz/args.c    |  6 +++---
12305 src/xz/file_io.c |  2 +-
12306 src/xz/main.c    |  4 ++--
12307 src/xz/message.c | 14 +++++++-------
12308 src/xz/options.c |  2 +-
12309 src/xz/suffix.c  |  2 +-
12310 src/xz/util.c    |  6 +++---
12311 7 files changed, 18 insertions(+), 18 deletions(-)
12312
12313commit f6667702bf075a05fbe336dbf3576ad1a82ec645
12314Author: Jia Tan <jiat0218@gmail.com>
12315Date:   2023-09-24 22:09:47 +0800
12316
12317    liblzma: Change quoting style from `...' to '...'.
12318
12319    This was done for both internal and API headers.
12320
12321 src/liblzma/api/lzma/base.h            | 18 +++++++++---------
12322 src/liblzma/api/lzma/container.h       | 10 +++++-----
12323 src/liblzma/api/lzma/filter.h          |  6 +++---
12324 src/liblzma/api/lzma/index.h           |  8 ++++----
12325 src/liblzma/api/lzma/lzma12.h          |  2 +-
12326 src/liblzma/lz/lz_encoder.h            |  2 +-
12327 src/liblzma/rangecoder/range_decoder.h |  2 +-
12328 7 files changed, 24 insertions(+), 24 deletions(-)
12329
12330commit be012b8097a4eaee335b51357d6befa745f753ce
12331Author: Jia Tan <jiat0218@gmail.com>
12332Date:   2023-09-24 22:09:16 +0800
12333
12334    Build: Change quoting style from `...' to '...'.
12335
12336 configure.ac          | 18 +++++++++---------
12337 dos/config.h          |  6 +++---
12338 m4/getopt.m4          |  2 +-
12339 m4/tuklib_progname.m4 |  2 +-
12340 windows/build.bash    |  2 +-
12341 5 files changed, 15 insertions(+), 15 deletions(-)
12342
12343commit ce162db07f03495bd333696e66883c8f36abdc1e
12344Author: Jia Tan <jiat0218@gmail.com>
12345Date:   2023-09-24 22:05:02 +0800
12346
12347    Docs: Change quoting style from `...' to '...'.
12348
12349    These days the ` and ' do not look symmetric. This quoting style has
12350    been changed in various apps over the years including the GNU tools.
12351
12352 INSTALL                         |  6 +++---
12353 doc/examples/01_compress_easy.c |  2 +-
12354 doc/examples/11_file_info.c     | 16 ++++++++--------
12355 3 files changed, 12 insertions(+), 12 deletions(-)
12356
12357commit db17656721e43939bfa4ec13506e7c76f4b86da6
12358Author: Jia Tan <jiat0218@gmail.com>
12359Date:   2023-09-24 21:25:01 +0800
12360
12361    lib: Silence -Wsign-conversion in getopt.c.
12362
12363 lib/getopt.c | 6 +++---
12364 1 file changed, 3 insertions(+), 3 deletions(-)
12365
12366commit a6234f677d66888f435010bc0b67de6a32fefcf6
12367Author: Jia Tan <jiat0218@gmail.com>
12368Date:   2023-09-24 20:48:52 +0800
12369
12370    Build: Update getopt.m4 from Gnulib.
12371
12372    This file was modified from upstream since we do not need to replace
12373    getopt() and can avoid complexity and feature tests.
12374
12375 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------
12376 1 file changed, 39 insertions(+), 40 deletions(-)
12377
12378commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10
12379Author: Jia Tan <jiat0218@gmail.com>
12380Date:   2023-09-26 00:09:53 +0800
12381
12382    CMake: Add /lib to include path.
12383
12384 CMakeLists.txt | 5 +++++
12385 1 file changed, 5 insertions(+)
12386
12387commit 01804a0b4b64e0f33568e947e0579263808c59d3
12388Author: Jia Tan <jiat0218@gmail.com>
12389Date:   2023-09-24 20:36:34 +0800
12390
12391    CMake: Update libgnu target with new header files.
12392
12393 CMakeLists.txt | 5 +++++
12394 1 file changed, 5 insertions(+)
12395
12396commit d34558388fe1d8929f6478d61dc322eb4f2900af
12397Author: Jia Tan <jiat0218@gmail.com>
12398Date:   2023-09-23 00:47:52 +0800
12399
12400    lib: Update Makefile.am for new header files.
12401
12402 lib/Makefile.am | 12 +++++++++++-
12403 1 file changed, 11 insertions(+), 1 deletion(-)
12404
12405commit 52bf644bdf536e20fcc743b712cede135e05eec5
12406Author: Jia Tan <jiat0218@gmail.com>
12407Date:   2023-09-24 20:34:03 +0800
12408
12409    lib: Update getopt1.c from Gnulib.
12410
12411    The only difference was maintaining the conditional inclusion for
12412    config.h.
12413
12414 lib/getopt1.c | 56 ++++++++++++++++++++++----------------------------------
12415 1 file changed, 22 insertions(+), 34 deletions(-)
12416
12417commit 7e884c00d0093c38339f17fb1d280eec493f42ca
12418Author: Jia Tan <jiat0218@gmail.com>
12419Date:   2023-09-23 03:27:00 +0800
12420
12421    lib: Update getopt.in.h from Gnulib with modifications.
12422
12423    We can still avoid modifying the contents of this file during
12424    configuration to simplify the build systems. Gnulib added replacements
12425    for inclusions guards for Cygwin. Cygwin should not need getopt_long
12426    replacement so this feature can be omitted.
12427
12428    <unistd.h> is conditionally included to avoid MSVC since it is not
12429    available.
12430
12431    The definition for _GL_ARG_NONNULL was also copied into this file from
12432    Gnulib since this stage is usually done during gnulib-tool.
12433
12434 lib/getopt.in.h | 228 +++++++-------------------------------------------------
12435 1 file changed, 29 insertions(+), 199 deletions(-)
12436
12437commit cff05f82066ca3ce9425dafdb086325a8eef8de3
12438Author: Jia Tan <jiat0218@gmail.com>
12439Date:   2023-09-23 00:31:55 +0800
12440
12441    lib: Update getopt_int.h from Gnulib.
12442
12443 lib/getopt_int.h | 109 ++++++++++++++++++++++++-------------------------------
12444 1 file changed, 48 insertions(+), 61 deletions(-)
12445
12446commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024
12447Author: Jia Tan <jiat0218@gmail.com>
12448Date:   2023-09-23 00:27:23 +0800
12449
12450    lib: Update getopt.c from Gnulib with modifications.
12451
12452    The code maintains the prior modifications of conditionally including
12453    config.h and disabling NLS support.
12454
12455    _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED
12456    is only used for these two parameters so its simpler than having to
12457    define it.
12458
12459 lib/getopt.c | 1134 +++++++++++++++++++---------------------------------------
12460 1 file changed, 377 insertions(+), 757 deletions(-)
12461
12462commit 56b42be7287844db20b3a3bc1372c6ae8c040d63
12463Author: Jia Tan <jiat0218@gmail.com>
12464Date:   2023-09-23 00:18:56 +0800
12465
12466    lib: Add getopt-cdefs.h for getopt_long update.
12467
12468    This was modified slightly from Gnulib. In Gnulib, it expects the
12469    @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H
12470    on systems that have it and avoid copying another file into the build
12471    directory. Since we are not using gnulib-tool, copying extra files
12472    requires extra build system updates (and special handling with CMake) so
12473    we should avoid when possible.
12474
12475 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
12476 1 file changed, 70 insertions(+)
12477
12478commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196
12479Author: Jia Tan <jiat0218@gmail.com>
12480Date:   2023-09-23 00:15:25 +0800
12481
12482    lib: Copy new header files from Gnulib without modification.
12483
12484    The getopt related files have changed from Gnulib by splitting up
12485    getopt.in.h into more modular header files. We could have kept
12486    everything in just getopt.in.h, but this will help us continue to update
12487    in the future.
12488
12489 lib/getopt-core.h     | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++
12490 lib/getopt-ext.h      | 77 +++++++++++++++++++++++++++++++++++++++++
12491 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++
12492 lib/getopt-pfx-ext.h  | 70 +++++++++++++++++++++++++++++++++++++
12493 4 files changed, 309 insertions(+)
12494
12495commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93
12496Author: Lasse Collin <lasse.collin@tukaani.org>
12497Date:   2023-09-22 21:16:52 +0300
12498
12499    Windows: Update the version requirement comments from Win95 to W2k.
12500
12501 windows/README-Windows.txt | 10 ++++------
12502 windows/build.bash         |  6 +++---
12503 2 files changed, 7 insertions(+), 9 deletions(-)
12504
12505commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1
12506Author: Lasse Collin <lasse.collin@tukaani.org>
12507Date:   2023-09-22 21:12:54 +0300
12508
12509    tuklib_physmem: Comment out support for Windows versions older than 2000.
12510
12511 src/common/tuklib_physmem.c | 20 +++++++++-----------
12512 1 file changed, 9 insertions(+), 11 deletions(-)
12513
12514commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a
12515Author: Lasse Collin <lasse.collin@tukaani.org>
12516Date:   2023-09-24 16:32:32 +0300
12517
12518    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
12519
12520 src/common/sysdefs.h | 10 +++++++++-
12521 1 file changed, 9 insertions(+), 1 deletion(-)
12522
12523commit 2a9929af0ab7e6c0ab725565034afe3293e51d71
12524Author: Lasse Collin <lasse.collin@tukaani.org>
12525Date:   2023-09-22 02:33:29 +0300
12526
12527    xz: Windows: Don't (de)compress to special files like "con" or "nul".
12528
12529    Before this commit, the following writes "foo" to the
12530    console and deletes the input file:
12531
12532        echo foo | xz > con_xz
12533        xz --suffix=_xz --decompress con_xz
12534
12535    It cannot happen without --suffix because names like con.xz
12536    are also special and so attempting to decompress con.xz
12537    (or compress con to con.xz) will already fail when opening
12538    the input file.
12539
12540    Similar thing is possible when compressing. The following
12541    writes to "nul" and the input file "n" is deleted.
12542
12543        echo foo | xz > n
12544        xz --suffix=ul n
12545
12546    Now xz checks if the destination is a special file before
12547    continuing. DOS/DJGPP version had a check for this but
12548    Windows (and OS/2) didn't.
12549
12550 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
12551 1 file changed, 28 insertions(+), 7 deletions(-)
12552
12553commit 01311b81f03cce1c0ce847a3d556f84dbd439343
12554Author: Lasse Collin <lasse.collin@tukaani.org>
12555Date:   2023-09-21 20:42:52 +0300
12556
12557    CMake: Wrap two overlong lines that are possible to wrap.
12558
12559 CMakeLists.txt | 6 ++++--
12560 1 file changed, 4 insertions(+), 2 deletions(-)
12561
12562commit 152d0771ddd0cffcac9042ad1a66f110d228eee2
12563Author: Lasse Collin <lasse.collin@tukaani.org>
12564Date:   2023-09-21 20:36:31 +0300
12565
12566    CMake: Add a comment about threads on Cygwin.
12567
12568 CMakeLists.txt | 1 +
12569 1 file changed, 1 insertion(+)
12570
12571commit 6df988cceffaa3100b428ed816fad334935b27bf
12572Author: Lasse Collin <lasse.collin@tukaani.org>
12573Date:   2023-09-12 23:53:25 +0300
12574
12575    MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt.
12576
12577    CMake is now the preferred build file generator when building
12578    with MSVC.
12579
12580 windows/INSTALL-MSVC.txt           |  37 ++--
12581 windows/vs2013/config.h            | 157 ---------------
12582 windows/vs2013/liblzma.vcxproj     | 363 ---------------------------------
12583 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------
12584 windows/vs2013/xz_win.sln          |  48 -----
12585 windows/vs2017/config.h            | 157 ---------------
12586 windows/vs2017/liblzma.vcxproj     | 363 ---------------------------------
12587 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------
12588 windows/vs2017/xz_win.sln          |  48 -----
12589 windows/vs2019/config.h            | 157 ---------------
12590 windows/vs2019/liblzma.vcxproj     | 364 ---------------------------------
12591 windows/vs2019/liblzma_dll.vcxproj | 399 -------------------------------------
12592 windows/vs2019/xz_win.sln          |  51 -----
12593 13 files changed, 12 insertions(+), 2928 deletions(-)
12594
12595commit edd563daf0da1d00018684614803c77ab62efcd6
12596Author: Lasse Collin <lasse.collin@tukaani.org>
12597Date:   2023-09-21 19:17:40 +0300
12598
12599    CMake: Require VS2015 or later for building xzdec.
12600
12601    xzdec might build with VS2013 but it hasn't been tested.
12602    It was never supported before and VS2013 is old anyway
12603    so for simplicity only liblzma is supported with VS2013.
12604
12605 CMakeLists.txt | 2 +-
12606 1 file changed, 1 insertion(+), 1 deletion(-)
12607
12608commit daea64d158a7151ca6c255a0e4554c6d521cd589
12609Author: Lasse Collin <lasse.collin@tukaani.org>
12610Date:   2023-09-12 23:43:49 +0300
12611
12612    CMake: Allow building xz with Visual Studio 2015 and later.
12613
12614    Building the command line tools xz and xzdec with the combination
12615    of CMake + Visual Studio 2015/2017/2019/2022 works now.
12616
12617    VS2013 update 2 should still be able to build liblzma.
12618    VS2013 cannot build the xz command line tool because xz
12619    needs snprintf() that roughly conforms to C99.
12620    VS2013 is old and no extra code will be added to support it.
12621
12622    Thanks to Kelvin Lee and Jia Tan for testing.
12623
12624 CMakeLists.txt | 2 +-
12625 1 file changed, 1 insertion(+), 1 deletion(-)
12626
12627commit 8c2d197c940d246849b2ec48109bb22e54036927
12628Author: Lasse Collin <lasse.collin@tukaani.org>
12629Date:   2023-09-12 23:34:31 +0300
12630
12631    MSVC: #define inline and restrict only when needed.
12632
12633    This also drops the check for _WIN32 as that shouldn't be needed.
12634
12635 src/common/sysdefs.h | 13 ++++++++-----
12636 1 file changed, 8 insertions(+), 5 deletions(-)
12637
12638commit af66cd585902045e5689a0418103ec81f19f1d0a
12639Author: Lasse Collin <lasse.collin@tukaani.org>
12640Date:   2023-09-12 22:16:56 +0300
12641
12642    CMake: Add support for replacement getopt_long (lib/getopt*).
12643
12644    Thanks to Jia Tan for the initial work. I added the libgnu target
12645    and made a few related minor edits.
12646
12647 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
12648 1 file changed, 47 insertions(+), 7 deletions(-)
12649
12650commit e3288fdb45c580cb849f6799cf419c4922004ae5
12651Author: Lasse Collin <lasse.collin@tukaani.org>
12652Date:   2023-09-12 21:12:34 +0300
12653
12654    CMake: Bump maximum policy version to 3.27.
12655
12656    There are several new policies. CMP0149 may affect the Windows SDK
12657    version that CMake will choose by default. The new behavior is more
12658    predictable, always choosing the latest SDK version by default.
12659
12660    The other new policies shouldn't affect this package.
12661
12662 CMakeLists.txt | 2 +-
12663 1 file changed, 1 insertion(+), 1 deletion(-)
12664
12665commit aff1b479c7b168652bd20305ceed4317d5db6661
12666Author: Lasse Collin <lasse.collin@tukaani.org>
12667Date:   2023-09-12 20:55:10 +0300
12668
12669    lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined.
12670
12671    The CMake-based build doesn't use config.h.
12672
12673    Up-to-date getopt_long in Gnulib is LGPLv2 so at some
12674    point it could be included in XZ Utils too but for now
12675    this commit is enough to make CMake-based build possible.
12676
12677 lib/getopt.c  | 4 +++-
12678 lib/getopt1.c | 4 +++-
12679 2 files changed, 6 insertions(+), 2 deletions(-)
12680
12681commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5
12682Author: Lasse Collin <lasse.collin@tukaani.org>
12683Date:   2023-09-08 19:08:57 +0300
12684
12685    Doxygen: Add more C macro names to PREDEFINED.
12686
12687 doxygen/Doxyfile | 7 +++++--
12688 1 file changed, 5 insertions(+), 2 deletions(-)
12689
12690commit ee7709bae53637e1765ce142ef102914f1423cb5
12691Author: Lasse Collin <lasse.collin@tukaani.org>
12692Date:   2023-09-11 18:47:26 +0300
12693
12694    liblzma: Move a few __attribute__ uses in function declarations.
12695
12696    The API headers have many attributes but these were left
12697    as is for now.
12698
12699 src/liblzma/common/common.c    | 6 ++++--
12700 src/liblzma/common/common.h    | 8 ++++----
12701 src/liblzma/common/memcmplen.h | 3 ++-
12702 3 files changed, 10 insertions(+), 7 deletions(-)
12703
12704commit 217958d88713b5dc73d366d24dd64b2b311b86fe
12705Author: Lasse Collin <lasse.collin@tukaani.org>
12706Date:   2023-09-11 19:03:35 +0300
12707
12708    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
12709
12710    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
12711    must be at the beginning of declaration (before "extern" or
12712    "static", and even before any GNU C's __attribute__).
12713
12714    This commit also moves all other function attributes to
12715    the beginning of function declarations. "extern" is kept
12716    at the beginning of a line so the attributes are listed on
12717    separate lines before "extern" or "static".
12718
12719 src/lzmainfo/lzmainfo.c |  6 ++++--
12720 src/xz/coder.c          |  3 ++-
12721 src/xz/hardware.h       |  3 ++-
12722 src/xz/message.h        | 30 +++++++++++++++++-------------
12723 src/xz/options.c        |  3 ++-
12724 src/xz/util.h           |  8 ++++----
12725 src/xzdec/xzdec.c       |  9 ++++++---
12726 7 files changed, 37 insertions(+), 25 deletions(-)
12727
12728commit 18a66fbac031c98f9c2077fc88846e4d07849197
12729Author: Lasse Collin <lasse.collin@tukaani.org>
12730Date:   2023-09-11 18:53:31 +0300
12731
12732    Remove incorrect uses of __attribute__((__malloc__)).
12733
12734    xrealloc() is obviously incorrect, modern GCC docs even
12735    mention realloc() as an example where this attribute
12736    cannot be used.
12737
12738    liblzma's lzma_alloc() and lzma_alloc_zero() would be
12739    correct uses most of the time but custom allocators
12740    may use a memory pool or otherwise hold the pointer
12741    so aliasing issues could happen in theory.
12742
12743    The xstrdup() case likely was correct but I removed it anyway.
12744    Now there are no __malloc__ attributes left in the code.
12745    The allocations aren't in hot paths so this should make
12746    no practical difference.
12747
12748 src/liblzma/common/common.c | 4 ++--
12749 src/liblzma/common/common.h | 4 ++--
12750 src/xz/util.h               | 4 ++--
12751 3 files changed, 6 insertions(+), 6 deletions(-)
12752
12753commit 74b0e900c92d5b222b36f474f1efa431f8e262f7
12754Author: Lasse Collin <lasse.collin@tukaani.org>
12755Date:   2023-09-08 18:41:25 +0300
12756
12757    Build: Omit -Wc99-c11-compat since it warns about _Noreturn.
12758
12759 configure.ac | 1 -
12760 1 file changed, 1 deletion(-)
12761
12762commit 90c94dddfd57b7d744bfad64c54e10d15778144b
12763Author: Lasse Collin <lasse.collin@tukaani.org>
12764Date:   2023-09-08 18:19:26 +0300
12765
12766    tuklib: Update tuklib_attr_noreturn for C11/C17 and C23.
12767
12768    This makes no difference for GCC or Clang as they support
12769    GNU C's __attribute__((__noreturn__)) but this helps with MSVC:
12770
12771      - VS 2019 version 16.7 and later support _Noreturn if the
12772        options /std:c11 or /std:c17 are used. This gets handled
12773        with the check for __STDC_VERSION__ >= 201112.
12774
12775      - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used.
12776
12777    C23 will deprecate _Noreturn (and <stdnoreturn.h>)
12778    for [[noreturn]]. This commit anticipates that but
12779    the final __STDC_VERSION__ value isn't known yet.
12780
12781 src/common/tuklib_common.h | 22 +++++++++++++++++++++-
12782 src/common/tuklib_exit.h   |  4 ++--
12783 2 files changed, 23 insertions(+), 3 deletions(-)
12784
12785commit 189f72581329ab281ad6af37f60135910cb1b146
12786Author: Lasse Collin <lasse.collin@tukaani.org>
12787Date:   2023-09-11 17:22:44 +0300
12788
12789    Update THANKS.
12790
12791 THANKS | 1 +
12792 1 file changed, 1 insertion(+)
12793
12794commit 79334e7f20f2bf9e0de095835b48868f1238f584
12795Author: Lasse Collin <lasse.collin@tukaani.org>
12796Date:   2023-09-05 22:42:10 +0300
12797
12798    MSVC: xz: Make file_io.c and file_io.h compatible with MSVC.
12799
12800    Thanks to Kelvin Lee for the original patches
12801    and testing the modifications I made.
12802
12803 src/xz/file_io.c | 26 ++++++++++++++++++++++++++
12804 src/xz/file_io.h | 10 ++++++++++
12805 2 files changed, 36 insertions(+)
12806
12807commit c660b8d78b7bda43b12b285550d8c70e8ccec698
12808Author: Lasse Collin <lasse.collin@tukaani.org>
12809Date:   2023-09-05 21:33:35 +0300
12810
12811    MSVC: xz: Use GetTickCount64() to implement mytime_now().
12812
12813    It's available since Windows Vista.
12814
12815 src/xz/mytime.c | 11 +++++++++--
12816 1 file changed, 9 insertions(+), 2 deletions(-)
12817
12818commit 5c6f892d411670e3060f4bc309402617a209e57c
12819Author: Kelvin Lee <kiyolee@gmail.com>
12820Date:   2023-09-05 15:05:09 +0300
12821
12822    MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c.
12823
12824 src/xz/suffix.c | 10 ++++++++--
12825 1 file changed, 8 insertions(+), 2 deletions(-)
12826
12827commit e241051f50044259d174e8b4633dd9a1c4478408
12828Author: Kelvin Lee <kiyolee@gmail.com>
12829Date:   2023-09-05 15:01:10 +0300
12830
12831    MSVC: xz: Use _isatty() from <io.h> to implement isatty().
12832
12833 src/xz/message.c | 5 +++++
12834 src/xz/util.c    | 5 +++++
12835 2 files changed, 10 insertions(+)
12836
12837commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
12838Author: Kelvin Lee <kiyolee@gmail.com>
12839Date:   2023-09-05 15:10:31 +0300
12840
12841    MSVC: xz: Use _fileno() instead of fileno().
12842
12843 src/xz/private.h | 4 ++++
12844 1 file changed, 4 insertions(+)
12845
12846commit c4edd367678e6a38c42b149856159bf417da7fe1
12847Author: Kelvin Lee <kiyolee@gmail.com>
12848Date:   2023-09-05 15:00:07 +0300
12849
12850    MSVC: xzdec: Use _fileno and _setmode.
12851
12852 src/xzdec/xzdec.c | 4 ++++
12853 1 file changed, 4 insertions(+)
12854
12855commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0
12856Author: Kelvin Lee <kiyolee@gmail.com>
12857Date:   2023-09-05 14:37:50 +0300
12858
12859    MSVC: Don't #include <unistd.h>.
12860
12861 lib/getopt.c      | 4 +++-
12862 lib/getopt.in.h   | 4 +++-
12863 src/xz/private.h  | 5 ++++-
12864 src/xzdec/xzdec.c | 5 ++++-
12865 4 files changed, 14 insertions(+), 4 deletions(-)
12866
12867commit adef92f23563a2cc088b31ddee9040ecc96bc996
12868Author: Lasse Collin <lasse.collin@tukaani.org>
12869Date:   2023-09-19 14:03:45 +0300
12870
12871    Update THANKS.
12872
12873 THANKS | 1 +
12874 1 file changed, 1 insertion(+)
12875
12876commit 953e775941a25bfcfa353f802b13e66acb1edf2c
12877Author: Jia Tan <jiat0218@gmail.com>
12878Date:   2023-09-14 21:13:23 +0800
12879
12880    CI: Enable CLMUL in address sanitization test.
12881
12882    The crc64_clmul() function should be ignored by the address sanitizer
12883    now so these builds should still pass.
12884
12885 .github/workflows/ci.yml | 12 ++++--------
12886 1 file changed, 4 insertions(+), 8 deletions(-)
12887
12888commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77
12889Author: Lasse Collin <lasse.collin@tukaani.org>
12890Date:   2023-09-14 16:35:46 +0300
12891
12892    Update THANKS.
12893
12894 THANKS | 1 +
12895 1 file changed, 1 insertion(+)
12896
12897commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
12898Author: Lasse Collin <lasse.collin@tukaani.org>
12899Date:   2023-09-14 16:34:07 +0300
12900
12901    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
12902
12903    Thanks to Agostino Sarubbo.
12904    Fixes: https://github.com/tukaani-project/xz/issues/62
12905
12906 src/liblzma/check/crc64_fast.c | 8 ++++++++
12907 1 file changed, 8 insertions(+)
12908
12909commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08
12910Author: Jia Tan <jiat0218@gmail.com>
12911Date:   2023-09-12 22:36:12 +0800
12912
12913    CMake: Fix time.h checks not running on second CMake run.
12914
12915    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
12916    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
12917    for librt being needed to provide HAVE_CLOCK_GETTIME was also
12918    simplified.
12919
12920 CMakeLists.txt | 18 ++++++++++--------
12921 1 file changed, 10 insertions(+), 8 deletions(-)
12922
12923commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6
12924Author: Jia Tan <jiat0218@gmail.com>
12925Date:   2023-09-12 22:34:06 +0800
12926
12927    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
12928
12929    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
12930    added as a compile definition even if the check for it failed.
12931
12932 CMakeLists.txt | 8 +++-----
12933 1 file changed, 3 insertions(+), 5 deletions(-)
12934
12935commit eccf12866527b8d24c7d7f92f755142be8ef9b11
12936Author: Lasse Collin <lasse.collin@tukaani.org>
12937Date:   2023-08-31 19:50:05 +0300
12938
12939    xz: Refactor thousand separator detection and disable it on MSVC.
12940
12941    Now the two variations of the format strings are created with
12942    a macro, and the whole detection code can be easily disabled
12943    on platforms where thousand separator formatting is known to
12944    not work (MSVC has no support, and on DJGPP 2.05 it can have
12945    problems in some cases).
12946
12947 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
12948 1 file changed, 45 insertions(+), 44 deletions(-)
12949
12950commit f7093cd9d130477c234b40aeda613964171f8f21
12951Author: Lasse Collin <lasse.collin@tukaani.org>
12952Date:   2023-08-31 18:14:43 +0300
12953
12954    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
12955
12956    SSIZE_MAX isn't readily available on MSVC. Removing it means
12957    that there is one thing less to worry when porting to MSVC.
12958
12959 src/xz/file_io.c | 5 ++---
12960 src/xz/file_io.h | 4 ++--
12961 2 files changed, 4 insertions(+), 5 deletions(-)
12962
12963commit 74c3449d8b816a724b12ebce7417e00fb597309a
12964Author: Jia Tan <jiat0218@gmail.com>
12965Date:   2023-08-28 23:14:45 +0800
12966
12967    Tests: Improve invalid unpadded size check in test_lzma_index_append().
12968
12969    This check was extended to test the code added to fix a failing assert
12970    in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
12971
12972 tests/test_index.c | 26 +++++++++++++++++++++++---
12973 1 file changed, 23 insertions(+), 3 deletions(-)
12974
12975commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336
12976Author: Jia Tan <jiat0218@gmail.com>
12977Date:   2023-08-28 21:54:41 +0800
12978
12979    Tests: Improve comments in test_index.c.
12980
12981 tests/test_index.c | 6 +++---
12982 1 file changed, 3 insertions(+), 3 deletions(-)
12983
12984commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b
12985Author: Jia Tan <jiat0218@gmail.com>
12986Date:   2023-08-28 21:52:54 +0800
12987
12988    Update THANKS.
12989
12990 THANKS | 1 +
12991 1 file changed, 1 insertion(+)
12992
12993commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
12994Author: Jia Tan <jiat0218@gmail.com>
12995Date:   2023-08-28 21:50:16 +0800
12996
12997    liblzma: Update assert in vli_ceil4().
12998
12999    The argument to vli_ceil4() should always guarantee the return value
13000    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
13001    are invalid arguments. All uses of the function ensure this so the
13002    assert is updated to match this.
13003
13004 src/liblzma/common/index.h | 2 +-
13005 1 file changed, 1 insertion(+), 1 deletion(-)
13006
13007commit ae5c07b22a6b3766b84f409f1b6b5c100469068a
13008Author: Jia Tan <jiat0218@gmail.com>
13009Date:   2023-08-28 21:31:25 +0800
13010
13011    liblzma: Add overflow check for Unpadded size in lzma_index_append().
13012
13013    This was not a security bug since there was no path to overflow
13014    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
13015    The bug was discovered by a failing assert() in vli_ceil4() when called
13016    from index_file_size() when unpadded_sum (the sum of the compressed size
13017    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
13018
13019    Previously, the unpadded_size parameter was checked to be not greater
13020    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
13021    added.
13022
13023    This could not have caused an integer overflow in index_file_size() when
13024    called by lzma_index_append(). The calculation for file_size breaks down
13025    into the sum of:
13026
13027    - Compressed base from all previous Streams
13028    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
13029      footer)
13030    - stream_padding (can be set by lzma_index_stream_padding())
13031    - Compressed base from the current Stream
13032    - Unpadded size (parameter to lzma_index_append())
13033
13034    The sum of everything except for Unpadded size must be less than
13035    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
13036    that can set these values including lzma_index_stream_padding(),
13037    lzma_index_append(), and lzma_index_cat(). The maximum value for
13038    Unpadded size is enforced by lzma_index_append() to be less than or
13039    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
13040    LZMA_VLI_MAX is half of UINT64_MAX.
13041
13042    Thanks to Joona Kannisto for reporting this.
13043
13044 src/liblzma/common/index.c | 6 ++++++
13045 1 file changed, 6 insertions(+)
13046
13047commit 1057765aaabfe0f1397b8094531846655376ae38
13048Author: Jia Tan <jiat0218@gmail.com>
13049Date:   2023-08-28 22:18:29 +0800
13050
13051    Translations: Update the Esperanto translation.
13052
13053 po/eo.po | 4 ++--
13054 1 file changed, 2 insertions(+), 2 deletions(-)
13055
13056commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856
13057Author: Jia Tan <jiat0218@gmail.com>
13058Date:   2023-08-26 20:10:23 +0800
13059
13060    Translations: Update the Esperanto translation.
13061
13062 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
13063 1 file changed, 29 insertions(+), 18 deletions(-)
13064
13065commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3
13066Author: Jia Tan <jiat0218@gmail.com>
13067Date:   2023-08-09 20:55:36 +0800
13068
13069    Docs: Update INSTALL for --enable-threads method win95.
13070
13071    The Autotools build allows win95 threads and --enable-small together now
13072    if the compiler supports __attribute__((__constructor__)).
13073
13074 INSTALL | 6 ++++--
13075 1 file changed, 4 insertions(+), 2 deletions(-)
13076
13077commit 356ad5b26b4196f085ce3afa1869154ca81faad8
13078Author: Jia Tan <jiat0218@gmail.com>
13079Date:   2023-08-09 20:54:15 +0800
13080
13081    CMake: Conditionally allow win95 threads and --enable-small.
13082
13083 CMakeLists.txt | 28 ++++++++++++++++++++--------
13084 1 file changed, 20 insertions(+), 8 deletions(-)
13085
13086commit de574404c4c2f87aca049f232c38526e3ce092aa
13087Author: Jia Tan <jiat0218@gmail.com>
13088Date:   2023-08-09 20:35:16 +0800
13089
13090    Build: Conditionally allow win95 threads and --enable-small.
13091
13092    When the compiler supports __attribute__((__constructor__))
13093    mythread_once() is never used, even with --enable-small. A configuration
13094    with win95 threads and --enable-small will compile and be thread safe so
13095    it can be allowed.
13096
13097    This isn't a very common configuration since MSVC does not support
13098    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
13099    for MSYS2 can use win95 threads and have
13100    __attribute__((__constructor__)) support.
13101
13102 configure.ac | 21 +++++++++++++--------
13103 1 file changed, 13 insertions(+), 8 deletions(-)
13104
13105commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a
13106Author: Jamaika1 <lukaszcz18@wp.pl>
13107Date:   2023-08-08 14:07:59 +0200
13108
13109    mythread.h: Fix typo error in Vista threads mythread_once().
13110
13111    The "once_" variable was accidentally referred to as just "once". This
13112    prevented building with Vista threads when
13113    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
13114
13115 src/common/mythread.h | 2 +-
13116 1 file changed, 1 insertion(+), 1 deletion(-)
13117
13118commit 80cb961e5380a3878246d41341ff91378ca59e05
13119Author: Jia Tan <jiat0218@gmail.com>
13120Date:   2023-08-04 22:17:11 +0800
13121
13122    codespell: Add .codespellrc to set default options.
13123
13124    The .codespellrc allows setting default options to avoid false positive
13125    matches, set additional dictionaries, etc. For now, codespell can be
13126    used locally before committing doc and comment changes.
13127
13128    It should help prevent silly errors and fix up commits in the future.
13129
13130 .codespellrc | 24 ++++++++++++++++++++++++
13131 1 file changed, 24 insertions(+)
13132
13133commit cd678a6077358935249b64a4a16fe8d17434f9c9
13134Author: Jia Tan <jiat0218@gmail.com>
13135Date:   2023-08-03 20:10:21 +0800
13136
13137    Tests: Style fixes to test_lzip_decoder.c.
13138
13139 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
13140 1 file changed, 24 insertions(+), 12 deletions(-)
13141
13142commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81
13143Author: Jia Tan <jiat0218@gmail.com>
13144Date:   2023-08-03 15:56:20 +0800
13145
13146    Translations: Update the Chinese (simplified) translation.
13147
13148 po/zh_CN.po | 2 +-
13149 1 file changed, 1 insertion(+), 1 deletion(-)
13150
13151commit 16068f6c30b888cdb873f6285af941d00f95741d
13152Author: Lasse Collin <lasse.collin@tukaani.org>
13153Date:   2023-08-02 17:15:12 +0300
13154
13155    xz: Omit an empty paragraph on the man page.
13156
13157 src/xz/xz.1 | 1 -
13158 1 file changed, 1 deletion(-)
13159
13160commit 9ae4371b5106189486e850ce777e40f7b6021c0b
13161Author: Jia Tan <jiat0218@gmail.com>
13162Date:   2023-08-02 20:30:07 +0800
13163
13164    Add NEWS for 5.4.4.
13165
13166 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
13167 1 file changed, 43 insertions(+)
13168
13169commit e8c2203b2c76466d8d3387c5212b46151de8e605
13170Author: Lasse Collin <lasse.collin@tukaani.org>
13171Date:   2023-08-02 15:19:43 +0300
13172
13173    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
13174
13175    groff defaults to SGR escapes. Using -P-c passes -c to grotty
13176    which restores the old behavior. Perhaps there is a better way to
13177    get pure plain text output but this works for now.
13178
13179 build-aux/manconv.sh | 4 ++--
13180 1 file changed, 2 insertions(+), 2 deletions(-)
13181
13182commit 9a706167b0d903d92fd134895acb4bc6a5e3e688
13183Author: Lasse Collin <lasse.collin@tukaani.org>
13184Date:   2023-08-01 19:10:43 +0300
13185
13186    Update THANKS.
13187
13188 THANKS | 1 +
13189 1 file changed, 1 insertion(+)
13190
13191commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
13192Author: Lasse Collin <lasse.collin@tukaani.org>
13193Date:   2023-08-01 18:22:24 +0300
13194
13195    Update THANKS.
13196
13197 THANKS | 1 +
13198 1 file changed, 1 insertion(+)
13199
13200commit 81db3b889830132334d1f2129bdc93177ac2ca7d
13201Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
13202Date:   2023-08-01 18:17:17 +0300
13203
13204    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
13205
13206    signal.h in WASI SDK doesn't currently provide sigprocmask()
13207    or sigset_t. liblzma doesn't need them so this change makes
13208    liblzma and xzdec build against WASI SDK. xz doesn't build yet
13209    and the tests don't either as tuktest needs setjmp() which
13210    isn't (yet?) implemented in WASI SDK.
13211
13212    Closes: https://github.com/tukaani-project/xz/pull/57
13213    See also: https://github.com/tukaani-project/xz/pull/56
13214
13215    (The original commit was edited a little by Lasse Collin.)
13216
13217 src/common/mythread.h | 2 +-
13218 1 file changed, 1 insertion(+), 1 deletion(-)
13219
13220commit 71c638c611324e606d324c8189fef8fe79db6991
13221Author: Jia Tan <jiat0218@gmail.com>
13222Date:   2023-08-01 21:58:51 +0800
13223
13224    Add newline to end of .gitignore.
13225
13226    Newline was accidentally removed in commit
13227    01cbb7f023ee7fda8ddde04bd17cf7d3c2418706.
13228
13229 .gitignore | 2 +-
13230 1 file changed, 1 insertion(+), 1 deletion(-)
13231
13232commit 42df7c7aa1cca385e509eb33c65136e61890f0bf
13233Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
13234Date:   2023-07-31 14:02:21 +0200
13235
13236    Docs: Fix typos found by codespell
13237
13238 CMakeLists.txt                            | 4 ++--
13239 NEWS                                      | 2 +-
13240 configure.ac                              | 2 +-
13241 src/liblzma/api/lzma/container.h          | 4 ++--
13242 src/liblzma/api/lzma/filter.h             | 2 +-
13243 src/liblzma/api/lzma/lzma12.h             | 4 ++--
13244 src/liblzma/common/block_buffer_encoder.c | 2 +-
13245 src/liblzma/common/common.h               | 2 +-
13246 src/liblzma/common/file_info.c            | 2 +-
13247 src/liblzma/common/lzip_decoder.c         | 2 +-
13248 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
13249 src/liblzma/common/string_conversion.c    | 6 +++---
13250 src/liblzma/lz/lz_encoder.h               | 2 +-
13251 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
13252 src/xz/hardware.c                         | 4 ++--
13253 tests/test_filter_flags.c                 | 4 ++--
13254 tests/test_index.c                        | 2 +-
13255 tests/test_vli.c                          | 2 +-
13256 18 files changed, 29 insertions(+), 29 deletions(-)
13257
13258commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706
13259Author: Jia Tan <jiat0218@gmail.com>
13260Date:   2023-07-26 20:26:23 +0800
13261
13262    Update .gitignore.
13263
13264 .gitignore | 4 ++++
13265 1 file changed, 4 insertions(+)
13266
13267commit f97a1afd564c48ad9cb94682e10972a72e11fa08
13268Author: Jia Tan <jiat0218@gmail.com>
13269Date:   2023-07-28 22:03:08 +0800
13270
13271    CMake: Conditionally allow the creation of broken symlinks.
13272
13273    The CMake build will try to create broken symlinks on Unix and Unix-like
13274    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
13275    broken symlinks. The value of the CYGWIN or MSYS environment variables
13276    determine if broken symlinks are valid.
13277
13278    The default for MSYS2 does not allow for broken symlinks, so the CMake
13279    build has been broken for MSYS2 since commit
13280    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
13281
13282 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
13283 1 file changed, 75 insertions(+), 7 deletions(-)
13284
13285commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f
13286Author: Jia Tan <jiat0218@gmail.com>
13287Date:   2023-07-28 21:56:48 +0800
13288
13289    CI: Fix windows-ci dependency installation.
13290
13291    All of the MSYS2 environments need make, and it does not come with the
13292    toolchain package. The toolchain package will install the needed
13293    compiler toolchains since without this package CMake cannot properly
13294    generate the Makefiles.
13295
13296 .github/workflows/windows-ci.yml | 6 +++---
13297 1 file changed, 3 insertions(+), 3 deletions(-)
13298
13299commit a048f472cd9a2245265cb292853cbbcdd4f02001
13300Author: Jia Tan <jiat0218@gmail.com>
13301Date:   2023-07-28 21:54:22 +0800
13302
13303    CI: Update ci_build.sh CMake to always make Unix Makefiles.
13304
13305    The default for many of the MSYS2 environments is for CMake to create
13306    Ninja build files. This would complicate the build script since we would
13307    need a different command to run the tests. Its simpler to always use
13308    Unix Makefiles so that "make test" is always a usable target for
13309    testing.
13310
13311 build-aux/ci_build.sh | 4 ++--
13312 1 file changed, 2 insertions(+), 2 deletions(-)
13313
13314commit 7870396a0ca945473aa0d1d790f4cbef456610bd
13315Author: Jia Tan <jiat0218@gmail.com>
13316Date:   2023-07-25 20:17:23 +0800
13317
13318    CI: Test CMake builds and test framework with MSYS2.
13319
13320 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------
13321 1 file changed, 20 insertions(+), 12 deletions(-)
13322
13323commit 6497d1f8875cb7e3007f714336cc09c06fed235b
13324Author: Jia Tan <jiat0218@gmail.com>
13325Date:   2023-07-25 20:14:53 +0800
13326
13327    CI: Windows CI rename system matrix variable -> msys2_env.
13328
13329    Calling the MSYS2 environment "system" was a bit vague and should be
13330    more specific.
13331
13332 .github/workflows/windows-ci.yml | 15 +++++----------
13333 1 file changed, 5 insertions(+), 10 deletions(-)
13334
13335commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd
13336Author: Jia Tan <jiat0218@gmail.com>
13337Date:   2023-07-24 23:11:45 +0800
13338
13339    CI: Add Clang64 MSYS2 environment to Windows CI.
13340
13341 .github/workflows/windows-ci.yml | 1 +
13342 1 file changed, 1 insertion(+)
13343
13344commit d9166b52cf3458a4da3eb92224837ca8fc208d79
13345Author: Jia Tan <jiat0218@gmail.com>
13346Date:   2023-07-24 21:43:44 +0800
13347
13348    liblzma: Prevent an empty translation unit in Windows builds.
13349
13350    To workaround Automake lacking Windows resource compiler support, an
13351    empty source file is compiled to overwrite the resource files for static
13352    library builds. Translation units without an external declaration are
13353    not allowed by the C standard and result in a warning when used with
13354    -Wempty-translation-unit (Clang) or -pedantic (GCC).
13355
13356 src/liblzma/Makefile.am | 6 +++++-
13357 1 file changed, 5 insertions(+), 1 deletion(-)
13358
13359commit db5019d691f980d622fb56fdcf383af2c3519c98
13360Author: Jia Tan <jiat0218@gmail.com>
13361Date:   2023-07-22 18:37:56 +0800
13362
13363    Translations: Update the Vietnamese translation.
13364
13365 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
13366 1 file changed, 28 insertions(+), 17 deletions(-)
13367
13368commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5
13369Author: Jia Tan <jiat0218@gmail.com>
13370Date:   2023-07-22 14:55:42 +0800
13371
13372    CI: Add Windows runner for Autotools builds with MSYS2.
13373
13374    Only a subset of the tests run by the Linux and MacOS Autotools builds
13375    are run. The most interesting tests are the ones that disable threads,
13376    encoders, and decoders.
13377
13378    The Windows runner will only be run manually since these tests will
13379    likely take much longer than the Linux and MacOS runners. This runner
13380    should be used before merging any large features and before releases.
13381
13382    Currently the clang64 environment fails to due to a warning and
13383    -Werror is enabled for the CI tests. This is still an early version
13384    since the CMake build can be done for MSVC and optionally each of the
13385    MSYS2 environments. GitHub does not allow manually running the CI tests
13386    unless the workflow is checked on the default branch so checking in a
13387    minimum version is a good idea.
13388
13389    Thanks to Arthur S for the original proposing the original patch.
13390
13391    Closes: https://github.com/tukaani-project/xz/pull/34
13392
13393 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++
13394 1 file changed, 119 insertions(+)
13395
13396commit 556536a3525df9e5ed78b8c7057991cfa9edfac8
13397Author: Jia Tan <jiat0218@gmail.com>
13398Date:   2023-07-21 22:11:01 +0800
13399
13400    CI: Add argument to ci_build.sh to pass flags to autogen.sh.
13401
13402 build-aux/ci_build.sh | 9 +++++++--
13403 1 file changed, 7 insertions(+), 2 deletions(-)
13404
13405commit 39a32d36fc465c4e70f13192eea380e518ba6e8a
13406Author: Jia Tan <jiat0218@gmail.com>
13407Date:   2023-07-21 18:05:44 +0800
13408
13409    Tests: Skip .lz files in test_files.sh if not configured.
13410
13411    Previously if the lzip decoder was not configured then test_files.sh
13412    would pass the lzip tests instead of skipping them.
13413
13414 tests/test_files.sh | 2 +-
13415 1 file changed, 1 insertion(+), 1 deletion(-)
13416
13417commit 194d12724b30fe42789d12a0184f9d412c449347
13418Author: Jia Tan <jiat0218@gmail.com>
13419Date:   2023-07-20 22:11:13 +0800
13420
13421    Tests: Add ARM64 filter test to test_compress.sh.
13422
13423 tests/test_compress.sh | 1 +
13424 1 file changed, 1 insertion(+)
13425
13426commit d850365c444368102c69beaddf849ed463c33467
13427Author: Jia Tan <jiat0218@gmail.com>
13428Date:   2023-07-20 20:30:05 +0800
13429
13430    Translations: Update the Croatian translation.
13431
13432 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
13433 1 file changed, 30 insertions(+), 19 deletions(-)
13434
13435commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe
13436Author: Jia Tan <jiat0218@gmail.com>
13437Date:   2023-07-20 20:28:32 +0800
13438
13439    Translations: Update the Korean man page translations.
13440
13441 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
13442 1 file changed, 629 insertions(+), 626 deletions(-)
13443
13444commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49
13445Author: Jia Tan <jiat0218@gmail.com>
13446Date:   2023-07-20 20:25:24 +0800
13447
13448    Translations: Update the Korean translation.
13449
13450 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
13451 1 file changed, 28 insertions(+), 17 deletions(-)
13452
13453commit 237f06d9c55cf438a7538a598354bcf103f23711
13454Author: Jia Tan <jiat0218@gmail.com>
13455Date:   2023-07-20 20:24:05 +0800
13456
13457    Translations: Update the Polish translation.
13458
13459 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
13460 1 file changed, 29 insertions(+), 18 deletions(-)
13461
13462commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a
13463Author: Jia Tan <jiat0218@gmail.com>
13464Date:   2023-07-20 20:22:23 +0800
13465
13466    Translations: Update the German man page translations.
13467
13468 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
13469 1 file changed, 629 insertions(+), 626 deletions(-)
13470
13471commit fdbde14503ca03069d3649aa51926f5f796b89d8
13472Author: Jia Tan <jiat0218@gmail.com>
13473Date:   2023-07-20 20:18:44 +0800
13474
13475    Translations: Update the German translation.
13476
13477 po/de.po | 47 +++++++++++++++++++++++++++++------------------
13478 1 file changed, 29 insertions(+), 18 deletions(-)
13479
13480commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101
13481Author: Jia Tan <jiat0218@gmail.com>
13482Date:   2023-07-20 20:17:10 +0800
13483
13484    Translations: Update the Chinese (simplified) translation.
13485
13486 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
13487 1 file changed, 29 insertions(+), 18 deletions(-)
13488
13489commit 376938c588011567c74f1d5a160c0ccce6336d46
13490Author: Jia Tan <jiat0218@gmail.com>
13491Date:   2023-07-20 20:15:47 +0800
13492
13493    Translations: Update the Swedish translation.
13494
13495 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
13496 1 file changed, 29 insertions(+), 18 deletions(-)
13497
13498commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8
13499Author: Jia Tan <jiat0218@gmail.com>
13500Date:   2023-07-20 20:14:00 +0800
13501
13502    Translations: Update the Ukrainian man page translations.
13503
13504 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
13505 1 file changed, 628 insertions(+), 625 deletions(-)
13506
13507commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b
13508Author: Jia Tan <jiat0218@gmail.com>
13509Date:   2023-07-20 20:09:15 +0800
13510
13511    Translations: Update the Ukrainian translation.
13512
13513 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
13514 1 file changed, 28 insertions(+), 17 deletions(-)
13515
13516commit f881018b503fd334331c24a09075429558abbce1
13517Author: Jia Tan <jiat0218@gmail.com>
13518Date:   2023-07-20 20:06:57 +0800
13519
13520    Translations: Update the Spanish translation.
13521
13522 po/es.po | 47 +++++++++++++++++++++++++++++------------------
13523 1 file changed, 29 insertions(+), 18 deletions(-)
13524
13525commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31
13526Author: Jia Tan <jiat0218@gmail.com>
13527Date:   2023-07-20 20:05:19 +0800
13528
13529    Translations: Update the Romanian translation.
13530
13531 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
13532 1 file changed, 30 insertions(+), 18 deletions(-)
13533
13534commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77
13535Author: Jia Tan <jiat0218@gmail.com>
13536Date:   2023-07-20 20:02:56 +0800
13537
13538    Translations: Update the Romanian man page translations.
13539
13540 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
13541 1 file changed, 629 insertions(+), 625 deletions(-)
13542
13543commit 0184d344fa4f215cd345bb131db9068e077c69b8
13544Author: Jia Tan <jiat0218@gmail.com>
13545Date:   2023-07-19 23:36:00 +0800
13546
13547    liblzma: Suppress -Wunused-function warning.
13548
13549    Clang 16.0.0 and earlier have a bug that the ifunc resolver function
13550    triggers the -Wunused-function warning. The resolver function is static
13551    and only "used" by the __attribute__((__ifunc()__)).
13552
13553    At this time, the bug is still unresolved, but has been reported:
13554    https://github.com/llvm/llvm-project/issues/63957
13555
13556    This is not a problem in GCC.
13557
13558 src/liblzma/check/crc64_fast.c | 10 ++++++++++
13559 1 file changed, 10 insertions(+)
13560
13561commit 43845fa70fc751736c44c18f4cee42d49bfd1392
13562Author: Jia Tan <jiat0218@gmail.com>
13563Date:   2023-07-18 22:52:25 +0800
13564
13565    liblzma: Reword lzma_str_list_filters() documentation.
13566
13567    This further improves the documentation from commit
13568    f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of
13569    "supported options" was slightly misleading since the options that are
13570    printed are the ones that are relevant for encoding/decoding. It is not
13571    about which options can or must be specified.
13572
13573 src/liblzma/api/lzma/filter.h | 2 +-
13574 1 file changed, 1 insertion(+), 1 deletion(-)
13575
13576commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67
13577Author: Jia Tan <jiat0218@gmail.com>
13578Date:   2023-07-18 22:49:57 +0800
13579
13580    liblzma: Improve comment in string_conversion.c.
13581
13582    The comment used "flag" when referring to decoder options. Just
13583    referring to them as options is more clear and consistent.
13584
13585 src/liblzma/common/string_conversion.c | 4 ++--
13586 1 file changed, 2 insertions(+), 2 deletions(-)
13587
13588commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090
13589Author: Lasse Collin <lasse.collin@tukaani.org>
13590Date:   2023-07-18 17:37:33 +0300
13591
13592    xz: Translate the second "%s: " in message.c since French needs "%s : ".
13593
13594    This string is used to print a filename when using "xz -v" and
13595    stderr isn't a terminal.
13596
13597 src/xz/message.c | 2 +-
13598 1 file changed, 1 insertion(+), 1 deletion(-)
13599
13600commit be644042c3066d8e7a2834f989671ba74d27f749
13601Author: Lasse Collin <lasse.collin@tukaani.org>
13602Date:   2023-07-18 14:35:33 +0300
13603
13604    xz: Make "%s: %s" translatable because French needs "%s : %s".
13605
13606 src/xz/args.c    |  5 ++++-
13607 src/xz/coder.c   |  8 ++++----
13608 src/xz/file_io.c |  8 ++++----
13609 src/xz/list.c    | 11 ++++++-----
13610 4 files changed, 18 insertions(+), 14 deletions(-)
13611
13612commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2
13613Author: Lasse Collin <lasse.collin@tukaani.org>
13614Date:   2023-07-18 13:57:54 +0300
13615
13616    liblzma: Tweak #if condition in memcmplen.h.
13617
13618    Maybe ICC always #defines _MSC_VER on Windows but now
13619    it's very clear which code will get used.
13620
13621 src/liblzma/common/memcmplen.h | 4 ++--
13622 1 file changed, 2 insertions(+), 2 deletions(-)
13623
13624commit 40392c19f71985852d75997f109dea97177d6f3f
13625Author: Lasse Collin <lasse.collin@tukaani.org>
13626Date:   2023-07-18 13:49:43 +0300
13627
13628    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
13629
13630 src/liblzma/common/memcmplen.h | 4 ++--
13631 1 file changed, 2 insertions(+), 2 deletions(-)
13632
13633commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98
13634Author: Jia Tan <jiat0218@gmail.com>
13635Date:   2023-07-18 00:51:48 +0800
13636
13637    xz: Update Authors list in a few files.
13638
13639 src/xz/args.c    | 3 ++-
13640 src/xz/args.h    | 3 ++-
13641 src/xz/coder.c   | 3 ++-
13642 src/xz/coder.h   | 3 ++-
13643 src/xz/message.c | 3 ++-
13644 5 files changed, 10 insertions(+), 5 deletions(-)
13645
13646commit 289034a168878baa9df6ff6e159110aade69cba5
13647Author: Jia Tan <jiat0218@gmail.com>
13648Date:   2023-07-14 23:20:33 +0800
13649
13650    Docs: Add a new section to INSTALL for Tests.
13651
13652    The new Tests section describes basic information about the tests, how
13653    to run them, and important details when cross compiling. We have had a
13654    few questions about how to compile the tests without running them, so
13655    hopefully this information will help others with the same question in the
13656    future.
13657
13658    Fixes: https://github.com/tukaani-project/xz/issues/54
13659
13660 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
13661 1 file changed, 64 insertions(+), 17 deletions(-)
13662
13663commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513
13664Author: Jia Tan <jiat0218@gmail.com>
13665Date:   2023-07-14 21:10:27 +0800
13666
13667    Docs: Update README.
13668
13669    This adds an entry to "Other implementations of the .xz format" for
13670    XZ for Java.
13671
13672 README | 4 ++++
13673 1 file changed, 4 insertions(+)
13674
13675commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9
13676Author: Jia Tan <jiat0218@gmail.com>
13677Date:   2023-07-13 23:32:10 +0800
13678
13679    xz: Fix typo in man page.
13680
13681    The Memory limit information section described three output
13682    columns when it actually has six. This was reworded to
13683    "multiple" to make it more future proof.
13684
13685 src/xz/xz.1 | 2 +-
13686 1 file changed, 1 insertion(+), 1 deletion(-)
13687
13688commit f907705eb1f6c5edaafc9668a34c51a989932f1d
13689Author: Jia Tan <jiat0218@gmail.com>
13690Date:   2023-07-13 21:46:12 +0800
13691
13692    xz: Minor clean up for coder.c
13693
13694    * Moved max_block_list_size from a global to local variable.
13695    * Reworded error message in validate_block_list_filter().
13696    * Removed helper function filter_chain_error().
13697    * Changed 1 << X to 1U << X in many places
13698
13699 src/xz/coder.c | 53 +++++++++++++++++++++--------------------------------
13700 1 file changed, 21 insertions(+), 32 deletions(-)
13701
13702commit 9adc9e56157ecbf2948e5036df8567809b9ae177
13703Author: Jia Tan <jiat0218@gmail.com>
13704Date:   2023-07-13 21:26:47 +0800
13705
13706    xz: Update man page Authors and date.
13707
13708 src/xz/xz.1 | 5 +++--
13709 1 file changed, 3 insertions(+), 2 deletions(-)
13710
13711commit c12e429f2635da8d8f5749e5f733f451baca6945
13712Author: Jia Tan <jiat0218@gmail.com>
13713Date:   2023-06-20 20:32:59 +0800
13714
13715    xz: Add a section to man page for robot mode --filters-help.
13716
13717 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++--
13718 1 file changed, 30 insertions(+), 2 deletions(-)
13719
13720commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d
13721Author: Jia Tan <jiat0218@gmail.com>
13722Date:   2023-06-19 23:11:41 +0800
13723
13724    xz: Slight reword in xz man page for consistency.
13725
13726    Changed will print => prints in xz --robot --version description to
13727    match --robot --info-memory description.
13728
13729 src/xz/xz.1 | 2 +-
13730 1 file changed, 1 insertion(+), 1 deletion(-)
13731
13732commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81
13733Author: Jia Tan <jiat0218@gmail.com>
13734Date:   2023-06-19 23:07:10 +0800
13735
13736    xz: Reorder robot mode subsections in the man page.
13737
13738    The order is now consistent with the order the command line arguments
13739    are documented earlier in the man page. The new order is:
13740    1. --list
13741    2. --info-memory
13742    3. --version
13743
13744    Instead of the previous order:
13745    1. --version
13746    2. --info-memory
13747    3. --list
13748
13749 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------
13750 1 file changed, 96 insertions(+), 96 deletions(-)
13751
13752commit 9628be23aef2784249fd9f3199799d785d2ec5cc
13753Author: Jia Tan <jiat0218@gmail.com>
13754Date:   2023-05-13 00:46:50 +0800
13755
13756    xz: Update man page for new --filters-help option.
13757
13758 src/xz/xz.1 | 10 ++++++++++
13759 1 file changed, 10 insertions(+)
13760
13761commit a165d7df1964121eb9df715e6f836a31c865beef
13762Author: Jia Tan <jiat0218@gmail.com>
13763Date:   2023-05-13 00:44:41 +0800
13764
13765    xz: Add a new --filters-help option.
13766
13767    The --filters-help can be used to help create filter chains with the
13768    --filters and --filtersX options. The message in --long-help is too
13769    short to fully explain the syntax to construct complex filter chains.
13770
13771    In --robot mode, xz will only print the output from liblzma function
13772    lzma_str_list_filters.
13773
13774 src/xz/args.c    |  8 ++++++++
13775 src/xz/message.c | 30 ++++++++++++++++++++++++++++++
13776 src/xz/message.h |  5 +++++
13777 3 files changed, 43 insertions(+)
13778
13779commit 95f1a414b156ee35d3e71862a14915fdd138f913
13780Author: Jia Tan <jiat0218@gmail.com>
13781Date:   2023-04-21 20:28:11 +0800
13782
13783    xz: Update the man page for --block-list and --filtersX
13784
13785    The --block-list option description needed updating since the new
13786    --filtersX option changes how it can be used. The new entry for
13787    --filters1=FILTERS ... --filter9=FILTERS was created right after
13788    the --filters option.
13789
13790 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++---------------
13791 1 file changed, 80 insertions(+), 26 deletions(-)
13792
13793commit 47a63cad2aa778280e0c1926b7159427ea028cb1
13794Author: Jia Tan <jiat0218@gmail.com>
13795Date:   2023-04-21 19:50:14 +0800
13796
13797    xz: Update --long-help for the new --filtersX option.
13798
13799 src/xz/message.c | 12 ++++++++++--
13800 1 file changed, 10 insertions(+), 2 deletions(-)
13801
13802commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13
13803Author: Jia Tan <jiat0218@gmail.com>
13804Date:   2023-06-17 20:46:21 +0800
13805
13806    xz: Ignore filter chains that are set but never used in --block-list.
13807
13808    If a filter chain is set but not used in --block-list, it introduced
13809    unexpected behavior such as requiring an unneeded amount of memory to
13810    compress, reducing the number of threads in multi-threaded encoding, and
13811    printing an incorrect amount of memory needed to decompress.
13812
13813    This also renames filters_init_mask => filters_used_mask. A filter is
13814    assumed to be used if it is specified in --filtersX until
13815    coder_set_compression_settings() determines which filters are referenced
13816    in --block-list.
13817
13818 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++----------------
13819 1 file changed, 48 insertions(+), 18 deletions(-)
13820
13821commit 183819bfd9efac8c184d9bf123325719b7eee30f
13822Author: Jia Tan <jiat0218@gmail.com>
13823Date:   2023-05-13 20:11:13 +0800
13824
13825    xz: Set the Block size for mt encoding correctly.
13826
13827    When opt_block_size is not used, the Block size for mt encoder is
13828    derived from the minimum of the largest Block specified by
13829    --block-list and the recommended Block size on all filter chains
13830    calculated by lzma_mt_block_size(). This avoids using unnecessary
13831    memory and ensures that all Blocks are large enough for the most memory
13832    needy filter chain.
13833
13834 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
13835 1 file changed, 67 insertions(+), 1 deletion(-)
13836
13837commit afb2dbec3d857b026486b75e42a4728e12d234cb
13838Author: Jia Tan <jiat0218@gmail.com>
13839Date:   2023-05-11 00:09:41 +0800
13840
13841    xz: Validate --flush-timeout for all specified filter chains.
13842
13843 src/xz/coder.c | 24 ++++++++++++++++--------
13844 1 file changed, 16 insertions(+), 8 deletions(-)
13845
13846commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
13847Author: Jia Tan <jiat0218@gmail.com>
13848Date:   2023-05-13 19:54:33 +0800
13849
13850    xz: Allows --block-list filters to scale down memory usage.
13851
13852    Previously, only the default filter chain could have its memory usage
13853    adjusted. The filter chains specified with --filtersX were not checked
13854    for memory usage. Now, all used filter chains will be adjusted if
13855    necessary.
13856
13857 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------
13858 1 file changed, 214 insertions(+), 55 deletions(-)
13859
13860commit 479fd58d60622331fcbe48fddf756927b9f80d9a
13861Author: Jia Tan <jiat0218@gmail.com>
13862Date:   2023-05-10 21:50:33 +0800
13863
13864    xz: Do not include block splitting if encoders are disabled.
13865
13866    The block splitting logic and split_block() function are not needed if
13867    encoders are disabled. This will help slightly reduce the binary size
13868    when built without encoders and allow split_block() to use functions
13869    that require encoders being enabled.
13870
13871 src/xz/coder.c | 29 ++++++++++++++++++++---------
13872 1 file changed, 20 insertions(+), 9 deletions(-)
13873
13874commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3
13875Author: Jia Tan <jiat0218@gmail.com>
13876Date:   2023-05-10 22:38:59 +0800
13877
13878    xz: Free filters[] in debug mode.
13879
13880    This will only free filter chains created with --filters1-9 since the
13881    default filter chain may be set from a static function variable. The
13882    complexity to free the default filter chain is not worth the burden on
13883    code maintenance.
13884
13885 src/xz/coder.c | 10 ++++++++++
13886 1 file changed, 10 insertions(+)
13887
13888commit f281cd0d692ac0c70fc7669b80dddb863ea947e1
13889Author: Jia Tan <jiat0218@gmail.com>
13890Date:   2023-05-13 19:28:23 +0800
13891
13892    xz: Add a message if --block-list is used outside of xz compresssion.
13893
13894    --block-list is only supported with compression in xz format. This avoids
13895    silently ignoring when --block-list is unused.
13896
13897 src/xz/args.c | 11 +++++++++++
13898 1 file changed, 11 insertions(+)
13899
13900commit d6af7f347077b22403133239592e478931307759
13901Author: Jia Tan <jiat0218@gmail.com>
13902Date:   2023-04-18 20:29:09 +0800
13903
13904    xz: Create command line options for filters[1-9].
13905
13906    The new command line options are meant to be combined with --block-list.
13907    They work as an optional extension to --block-list to specify a custom
13908    filter chain for each block listed. The new options allow the creation
13909    of up to 9 reusable filter chains. For instance:
13910
13911    xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \
13912    --filters2=x86--lzma2 --filters3=arm64--lzma2
13913
13914    Will create the following blocks:
13915    1. A block of size 10 MiB with filter chain delta, lzma2.
13916    2. A block of size 5 MiB with filter chain arm64, lzma2.
13917    3. A block of size 5 MiB with filter chain arm64, lzma2.
13918    4. A block of size 5 MiB with filter chain x86, lzma2.
13919    5. A block containing the rest of the file contents with filter chain
13920       delta, lzma2.
13921
13922 src/xz/args.c  |  82 ++++++++++++++++++++++---
13923 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++---------------
13924 src/xz/coder.h |  20 +++++-
13925 3 files changed, 230 insertions(+), 60 deletions(-)
13926
13927commit 072d29250113268536719ad0e040ab8a66fb6435
13928Author: Jia Tan <jiat0218@gmail.com>
13929Date:   2023-05-13 19:36:09 +0800
13930
13931    xz: Use lzma_filters_free() in forget_filter_chain().
13932
13933    This is a little cleaner than the previous implementation of
13934    forget_filter_chain(). It is also more consistent since
13935    lzma_str_to_filters() will always terminate the filter chain so there
13936    is no need to terminate it later in coder_set_compression_settings().
13937
13938 src/xz/coder.c | 18 ++++++++++--------
13939 1 file changed, 10 insertions(+), 8 deletions(-)
13940
13941commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059
13942Author: Jia Tan <jiat0218@gmail.com>
13943Date:   2023-04-17 22:22:45 +0800
13944
13945    xz: Separate string to filter conversion into a helper function.
13946
13947    Converting from string to filter will also need to be done for block
13948    specific filter chains.
13949
13950 src/xz/coder.c | 33 ++++++++++++++++++++-------------
13951 1 file changed, 20 insertions(+), 13 deletions(-)
13952
13953commit a6583726e5f950278f96abcf79c04f1056810be6
13954Author: Jia Tan <jiat0218@gmail.com>
13955Date:   2023-01-06 00:03:35 +0800
13956
13957    Tests: Use new --filters option in test_compress.sh
13958
13959 tests/test_compress.sh | 20 ++++++++++----------
13960 1 file changed, 10 insertions(+), 10 deletions(-)
13961
13962commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0
13963Author: Jia Tan <jiat0218@gmail.com>
13964Date:   2023-01-06 00:03:06 +0800
13965
13966    xz: Update --long-help and man page for new --filters option.
13967
13968 src/xz/message.c |  6 ++++++
13969 src/xz/xz.1      | 41 ++++++++++++++++++++++++++++++++++++-----
13970 2 files changed, 42 insertions(+), 5 deletions(-)
13971
13972commit 9ded880a0221f4d1256845fc4ab957ffd377c760
13973Author: Jia Tan <jiat0218@gmail.com>
13974Date:   2023-01-06 00:02:29 +0800
13975
13976    xz: Add --filters option to CLI.
13977
13978    The --filters option uses the new lzma_str_to_filters() function
13979    to convert a string into a full filter chain. Using this option
13980    will reset all previous filters set by --preset, --[filter], or
13981    --filters.
13982
13983 src/xz/args.c  |  9 +++++++--
13984 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
13985 src/xz/coder.h |  3 +++
13986 3 files changed, 58 insertions(+), 4 deletions(-)
13987
13988commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88
13989Author: Jia Tan <jiat0218@gmail.com>
13990Date:   2023-07-14 21:30:25 +0800
13991
13992    Tests: Improve feature testing for skipping.
13993
13994    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
13995    filters were enabled for compression but arm was disabled. Since the
13996    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
13997    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
13998
13999    Now the config.h feature test requires " 1" at the end to prevent the
14000    prefix problem. have_feature() was also updated for this even though
14001    there were known current bugs affecting it. This is just in case future
14002    features have a similar prefix problem.
14003
14004 tests/test_compress.sh | 4 ++--
14005 tests/test_files.sh    | 2 +-
14006 2 files changed, 3 insertions(+), 3 deletions(-)
14007
14008commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357
14009Author: Jia Tan <jiat0218@gmail.com>
14010Date:   2023-07-10 20:56:28 +0800
14011
14012    Translations: Update the Chinese (traditional) translation.
14013
14014 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
14015 1 file changed, 377 insertions(+), 282 deletions(-)
14016
14017commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd
14018Author: Jia Tan <jiat0218@gmail.com>
14019Date:   2023-07-08 21:24:19 +0800
14020
14021    liblzma: Remove non-portable empty initializer.
14022
14023    Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty
14024    initializer {} to prevent a warning. The empty initializer is a GNU
14025    extension and results in a build failure on MSVC. The -wpedantic flag
14026    warns about empty initializers.
14027
14028 src/liblzma/common/stream_encoder_mt.c | 2 +-
14029 1 file changed, 1 insertion(+), 1 deletion(-)
14030
14031commit 3aca4f629cd577f0c54f594d5d88722edf0b0413
14032Author: Jia Tan <jiat0218@gmail.com>
14033Date:   2023-07-08 20:03:59 +0800
14034
14035    Translations: Update the Vietnamese translation.
14036
14037 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
14038 1 file changed, 349 insertions(+), 271 deletions(-)
14039
14040commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4
14041Author: Jia Tan <jiat0218@gmail.com>
14042Date:   2023-06-28 20:46:31 +0800
14043
14044    Tests: Fix memory leaks in test_index.
14045
14046    Several tests were missing calls to lzma_index_end() to clean up the
14047    lzma_index structs. The memory leaks were discovered by using
14048    -fsanitize=address with GCC.
14049
14050 tests/test_index.c | 11 +++++++++++
14051 1 file changed, 11 insertions(+)
14052
14053commit fe3bd438fb119f9bad3f08dc29d331e4956196e1
14054Author: Jia Tan <jiat0218@gmail.com>
14055Date:   2023-06-28 20:43:29 +0800
14056
14057    Tests: Fix memory leaks in test_block_header.
14058
14059    test_block_header was not properly freeing the filter options between
14060    calls to lzma_block_header_decode(). The memory leaks were discovered by
14061    using -fsanitize=address with GCC.
14062
14063 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
14064 1 file changed, 22 insertions(+), 16 deletions(-)
14065
14066commit 78704f36e74205857c898a351c757719a6c8b666
14067Author: Jia Tan <jiat0218@gmail.com>
14068Date:   2023-06-28 20:31:11 +0800
14069
14070    liblzma: Prevent uninitialzed warning in mt stream encoder.
14071
14072    This change only impacts the compiler warning since it was impossible
14073    for the wait_abs struct in stream_encode_mt() to be used before it was
14074    initialized since mythread_condtime_set() will always be called before
14075    mythread_cond_timedwait().
14076
14077    Since the mythread.h code is different between the POSIX and
14078    Windows versions, this warning was only present on Windows builds.
14079
14080    Thanks to Arthur S for reporting the warning and providing an initial
14081    patch.
14082
14083 src/liblzma/common/stream_encoder_mt.c | 2 +-
14084 1 file changed, 1 insertion(+), 1 deletion(-)
14085
14086commit e3356a204c5ae02db3ec4552b6c1be354e9b6142
14087Author: Jia Tan <jiat0218@gmail.com>
14088Date:   2023-06-28 20:22:38 +0800
14089
14090    liblzma: Prevent warning for MSYS2 Windows build.
14091
14092    In lzma_memcmplen(), the <intrin.h> header file is only included if
14093    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
14094    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
14095    not _MSC_VER so _BitScanForward64() was used without including
14096    <intrin.h>.
14097
14098    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
14099    expected.
14100
14101 src/liblzma/common/memcmplen.h | 6 ++++--
14102 1 file changed, 4 insertions(+), 2 deletions(-)
14103
14104commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e
14105Author: Jia Tan <jiat0218@gmail.com>
14106Date:   2023-06-28 21:01:22 +0800
14107
14108    CI: Add test with -fsanitize=address,undefined.
14109
14110    ci_build.sh was updated to accept disabling of __attribute__ ifunc
14111    and CLMUL. This will allow -fsanitize=address to pass because ifunc
14112    is incompatible with -fsanitize=address. The CLMUL implementation has
14113    optimizations that potentially read past the buffer and mask out the
14114    unwanted bytes.
14115
14116    This test will only run on Autotools Linux.
14117
14118 .github/workflows/ci.yml | 23 +++++++++++++++++++----
14119 build-aux/ci_build.sh    |  8 +++++++-
14120 2 files changed, 26 insertions(+), 5 deletions(-)
14121
14122commit 596ee722cd7ddf0afae584fc06365adc0e735977
14123Author: Jia Tan <jiat0218@gmail.com>
14124Date:   2023-06-28 20:16:04 +0800
14125
14126    CI: Upgrade checkout action from v2 to v3.
14127
14128 .github/workflows/ci.yml | 2 +-
14129 1 file changed, 1 insertion(+), 1 deletion(-)
14130
14131commit 86118ea320f867e09e98a8682cc08cbbdfd640e2
14132Author: Jia Tan <jiat0218@gmail.com>
14133Date:   2023-06-27 23:38:32 +0800
14134
14135    Update THANKS.
14136
14137 THANKS | 1 +
14138 1 file changed, 1 insertion(+)
14139
14140commit 3d1fdddf92321b516d55651888b9c669e254634e
14141Author: Jia Tan <jiat0218@gmail.com>
14142Date:   2023-06-27 17:27:09 +0300
14143
14144    Docs: Document the configure option --disable-ifunc in INSTALL.
14145
14146 INSTALL | 8 ++++++++
14147 1 file changed, 8 insertions(+)
14148
14149commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3
14150Author: Lasse Collin <lasse.collin@tukaani.org>
14151Date:   2023-06-27 17:24:49 +0300
14152
14153    Minor tweaks to style and comments.
14154
14155 CMakeLists.txt | 8 ++++----
14156 configure.ac   | 9 +++++----
14157 2 files changed, 9 insertions(+), 8 deletions(-)
14158
14159commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1
14160Author: Lasse Collin <lasse.collin@tukaani.org>
14161Date:   2023-06-27 17:19:49 +0300
14162
14163    CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC.
14164
14165    It's so that there's a clear difference in wording compared
14166    to liblzma's integrity check types.
14167
14168 CMakeLists.txt | 6 +++---
14169 1 file changed, 3 insertions(+), 3 deletions(-)
14170
14171commit ee44863ae88e377a5df10db007ba9bfadde3d314
14172Author: Lasse Collin <lasse.collin@tukaani.org>
14173Date:   2023-06-27 17:05:23 +0300
14174
14175    liblzma: Add ifunc implementation to crc64_fast.c.
14176
14177    The ifunc method avoids indirection via the function pointer
14178    crc64_func. This works on GNU/Linux and probably on FreeBSD too.
14179    The previous __attribute((__constructor__)) method is kept for
14180    compatibility with ELF platforms which do support ifunc.
14181
14182    The ifunc method has some limitations, for example, building
14183    liblzma with -fsanitize=address will result in segfaults.
14184    The configure option --disable-ifunc must be used for such builds.
14185
14186    Thanks to Hans Jansen for the original patch.
14187    Closes: https://github.com/tukaani-project/xz/pull/53
14188
14189 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++---------
14190 1 file changed, 26 insertions(+), 9 deletions(-)
14191
14192commit b72d21202402a603db6d512fb9271cfa83249639
14193Author: Hans Jansen <hansjansen162@outlook.com>
14194Date:   2023-06-22 19:49:30 +0200
14195
14196    Add ifunc check to CMakeLists.txt
14197
14198    CMake build system will now verify if __attribute__((__ifunc__())) can be
14199    used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be
14200    defined to 1.
14201
14202 CMakeLists.txt | 19 +++++++++++++++++++
14203 1 file changed, 19 insertions(+)
14204
14205commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b
14206Author: Hans Jansen <hansjansen162@outlook.com>
14207Date:   2023-06-22 19:46:55 +0200
14208
14209    Add ifunc check to configure.ac
14210
14211    configure.ac will now verify if __attribute__((__ifunc__())) can be used in
14212    the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1.
14213
14214 configure.ac | 28 ++++++++++++++++++++++++++++
14215 1 file changed, 28 insertions(+)
14216
14217commit dbb3a536ed9873ffa0870321f6873e564c6a9da8
14218Author: Jia Tan <jiat0218@gmail.com>
14219Date:   2023-06-07 00:18:30 +0800
14220
14221    CI: Add apt update command before installing dependencies.
14222
14223    Without the extra command, all of the CI tests were automatically
14224    failing because the Ubuntu servers could not be reached properly.
14225
14226 .github/workflows/ci.yml | 8 ++++++--
14227 1 file changed, 6 insertions(+), 2 deletions(-)
14228
14229commit 6bcd516812331de42b347922913230895bebad34
14230Author: Jia Tan <jiat0218@gmail.com>
14231Date:   2023-06-07 00:10:38 +0800
14232
14233    Update THANKS.
14234
14235 THANKS | 1 +
14236 1 file changed, 1 insertion(+)
14237
14238commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
14239Author: Benjamin Buch <bebuch@users.noreply.github.com>
14240Date:   2023-06-06 15:32:45 +0200
14241
14242    CMake: Protects against double find_package
14243
14244    Boost iostream uses `find_package` in quiet mode and then again uses
14245    `find_package` with required. This second call triggers a
14246    `add_library cannot create imported target "ZLIB::ZLIB" because another
14247    target with the same name already exists.`
14248
14249    This can simply be fixed by skipping the alias part on secondary
14250    `find_package` runs.
14251
14252 CMakeLists.txt | 16 +++++++++-------
14253 1 file changed, 9 insertions(+), 7 deletions(-)
14254
14255commit 045d7aae286ecd2ce163be9e0d9041343a03f89a
14256Author: Jia Tan <jiat0218@gmail.com>
14257Date:   2023-05-31 20:26:42 +0800
14258
14259    Translations: Update the Esperanto translation.
14260
14261 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
14262 1 file changed, 92 insertions(+), 93 deletions(-)
14263
14264commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78
14265Author: Jia Tan <jiat0218@gmail.com>
14266Date:   2023-05-31 20:25:00 +0800
14267
14268    Translations: Update the Croatian translation.
14269
14270 po/hr.po | 2 +-
14271 1 file changed, 1 insertion(+), 1 deletion(-)
14272
14273commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce
14274Author: Jia Tan <jiat0218@gmail.com>
14275Date:   2023-05-31 20:15:53 +0800
14276
14277    Translations: Update the Chinese (simplified) translation.
14278
14279 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
14280 1 file changed, 157 insertions(+), 160 deletions(-)
14281
14282commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383
14283Author: Jia Tan <jiat0218@gmail.com>
14284Date:   2023-05-17 23:12:13 +0800
14285
14286    Translations: Update German translation of man pages.
14287
14288 po4a/de.po | 52 ++++++++++++----------------------------------------
14289 1 file changed, 12 insertions(+), 40 deletions(-)
14290
14291commit 592961ccdbba39c7d60fe37e36764232feb57c60
14292Author: Jia Tan <jiat0218@gmail.com>
14293Date:   2023-05-17 23:09:18 +0800
14294
14295    Translations: Update the German translation.
14296
14297 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
14298 1 file changed, 94 insertions(+), 95 deletions(-)
14299
14300commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524
14301Author: Jia Tan <jiat0218@gmail.com>
14302Date:   2023-05-17 20:30:01 +0800
14303
14304    Translations: Update the Croatian translation.
14305
14306 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
14307 1 file changed, 93 insertions(+), 94 deletions(-)
14308
14309commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d
14310Author: Jia Tan <jiat0218@gmail.com>
14311Date:   2023-05-17 20:26:54 +0800
14312
14313    Translations: Update Korean translation of man pages.
14314
14315 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
14316 1 file changed, 568 insertions(+), 2447 deletions(-)
14317
14318commit d5ef1f6faf7c270f60093629257150085ecf19ca
14319Author: Jia Tan <jiat0218@gmail.com>
14320Date:   2023-05-17 20:13:01 +0800
14321
14322    Translations: Update the Korean translation.
14323
14324 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
14325 1 file changed, 158 insertions(+), 161 deletions(-)
14326
14327commit e22d0b0f2e301e7906d0106689d967ed84362028
14328Author: Jia Tan <jiat0218@gmail.com>
14329Date:   2023-05-16 23:49:09 +0800
14330
14331    Translations: Update the Spanish translation.
14332
14333 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
14334 1 file changed, 158 insertions(+), 161 deletions(-)
14335
14336commit f50da74d52d01f6cfd826a921249e289cf671678
14337Author: Jia Tan <jiat0218@gmail.com>
14338Date:   2023-05-16 23:47:23 +0800
14339
14340    Translations: Update the Romanian translation.
14341
14342 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
14343 1 file changed, 98 insertions(+), 97 deletions(-)
14344
14345commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696
14346Author: Jia Tan <jiat0218@gmail.com>
14347Date:   2023-05-16 23:45:43 +0800
14348
14349    Translations: Update Romanian translation of man pages.
14350
14351 po4a/ro.po | 19 ++++++++++---------
14352 1 file changed, 10 insertions(+), 9 deletions(-)
14353
14354commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea
14355Author: Jia Tan <jiat0218@gmail.com>
14356Date:   2023-05-16 23:43:51 +0800
14357
14358    Translations: Update Ukrainian translation of man pages.
14359
14360 po4a/uk.po | 12 ++++++------
14361 1 file changed, 6 insertions(+), 6 deletions(-)
14362
14363commit c3e8fcbc2db4861f92ad15606c995bd255803c52
14364Author: Jia Tan <jiat0218@gmail.com>
14365Date:   2023-05-16 23:37:54 +0800
14366
14367    Translations: Update the Ukrainian translation.
14368
14369 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
14370 1 file changed, 159 insertions(+), 162 deletions(-)
14371
14372commit 27b81b84fcedbc55aa6e6b21004c44070b15b038
14373Author: Jia Tan <jiat0218@gmail.com>
14374Date:   2023-05-16 23:07:35 +0800
14375
14376    Translations: Update the Polish translation.
14377
14378 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
14379 1 file changed, 155 insertions(+), 161 deletions(-)
14380
14381commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed
14382Author: Jia Tan <jiat0218@gmail.com>
14383Date:   2023-05-16 22:52:14 +0800
14384
14385    Translations: Update the Swedish translation.
14386
14387 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
14388 1 file changed, 158 insertions(+), 161 deletions(-)
14389
14390commit 6699a29673f227c4664826db485ed9f7596320d2
14391Author: Jia Tan <jiat0218@gmail.com>
14392Date:   2023-05-16 21:21:38 +0800
14393
14394    Translations: Update the Esperanto translation.
14395
14396 po/eo.po | 34 +++++++++++++++++-----------------
14397 1 file changed, 17 insertions(+), 17 deletions(-)
14398
14399commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf
14400Author: Jia Tan <jiat0218@gmail.com>
14401Date:   2023-05-13 21:21:54 +0800
14402
14403    liblzma: Slightly rewords lzma_str_list_filters() documentation.
14404
14405    Reword "options required" to "supported options". The previous may have
14406    suggested that the options listed were all required anytime a filter is
14407    used for encoding or decoding. The reword makes this more clear that
14408    adjusting the options is optional.
14409
14410 src/liblzma/api/lzma/filter.h | 2 +-
14411 1 file changed, 1 insertion(+), 1 deletion(-)
14412
14413commit 3374a5359e52f1671d8f831d65827d5020fe2595
14414Author: Jia Tan <jiat0218@gmail.com>
14415Date:   2023-05-11 23:49:23 +0800
14416
14417    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
14418
14419    None of the liblzma functions may throw an exception, so this
14420    attribute should be applied to all liblzma API functions.
14421
14422 src/liblzma/api/lzma/container.h | 5 +++--
14423 1 file changed, 3 insertions(+), 2 deletions(-)
14424
14425commit 8f236574986e7c414c0ea059f441982d1387e6a4
14426Author: Jia Tan <jiat0218@gmail.com>
14427Date:   2023-05-09 20:20:06 +0800
14428
14429    liblzma: Exports lzma_mt_block_size() as an API function.
14430
14431    The lzma_mt_block_size() was previously just an internal function for
14432    the multithreaded .xz encoder. It is used to provide a recommended Block
14433    size for a given filter chain.
14434
14435    This function is helpful to determine the maximum Block size for the
14436    multithreaded .xz encoder when one wants to change the filters between
14437    blocks. Then, this determined Block size can be provided to
14438    lzma_stream_encoder_mt() in the lzma_mt options parameter when
14439    intializing the coder. This requires one to know all the filter chains
14440    they are using before starting to encode (or at least the filter chain
14441    that will need the largest Block size), but that isn't a bad limitation.
14442
14443 src/liblzma/api/lzma/container.h       | 28 ++++++++++++++++++++++++++++
14444 src/liblzma/common/filter_encoder.c    | 16 ++++++++++------
14445 src/liblzma/common/filter_encoder.h    |  6 +-----
14446 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++-----------
14447 src/liblzma/liblzma_generic.map        |  5 +++++
14448 src/liblzma/liblzma_linux.map          |  5 +++++
14449 src/liblzma/lzma/lzma2_encoder.c       |  3 +++
14450 7 files changed, 61 insertions(+), 22 deletions(-)
14451
14452commit d0f33d672a4da7985ebb5ba8d829f885de49c171
14453Author: Jia Tan <jiat0218@gmail.com>
14454Date:   2023-05-08 22:58:09 +0800
14455
14456    liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
14457
14458    This creates an internal liblzma macro to test if the dictionary size
14459    is valid for encoding.
14460
14461 src/liblzma/lz/lz_encoder.c | 4 +---
14462 src/liblzma/lz/lz_encoder.h | 8 ++++++++
14463 2 files changed, 9 insertions(+), 3 deletions(-)
14464
14465commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f
14466Author: Jia Tan <jiat0218@gmail.com>
14467Date:   2023-05-02 20:39:56 +0800
14468
14469    Add NEWS for 5.4.3.
14470
14471 NEWS | 10 ++++++++++
14472 1 file changed, 10 insertions(+)
14473
14474commit 77050b78364ffb6b0f129e742b7c31602d725c08
14475Author: Jia Tan <jiat0218@gmail.com>
14476Date:   2023-05-02 20:39:37 +0800
14477
14478    Add NEWS for 5.2.12.
14479
14480 NEWS | 14 ++++++++++++++
14481 1 file changed, 14 insertions(+)
14482
14483commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0
14484Author: Jia Tan <jiat0218@gmail.com>
14485Date:   2023-05-04 20:38:52 +0800
14486
14487    Translations: Update the Croatian translation.
14488
14489 po/hr.po | 6 +++---
14490 1 file changed, 3 insertions(+), 3 deletions(-)
14491
14492commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9
14493Author: Jia Tan <jiat0218@gmail.com>
14494Date:   2023-05-04 20:30:25 +0800
14495
14496    tuklib_integer.h: Reverts previous commit.
14497
14498    Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an
14499    error if the integer size was 32 bit.
14500
14501 src/common/tuklib_integer.h | 4 ++--
14502 1 file changed, 2 insertions(+), 2 deletions(-)
14503
14504commit 6be460dde07113fe3f08f814b61ddc3264125a96
14505Author: Jia Tan <jiat0218@gmail.com>
14506Date:   2023-05-04 19:25:20 +0800
14507
14508    tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=.
14509
14510 src/common/tuklib_integer.h | 4 ++--
14511 1 file changed, 2 insertions(+), 2 deletions(-)
14512
14513commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878
14514Author: Lasse Collin <lasse.collin@tukaani.org>
14515Date:   2023-05-03 22:46:42 +0300
14516
14517    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
14518
14519    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
14520    Also, this has >= instead of == since ints larger than 32 bits would
14521    work too even if not relevant in practice.
14522
14523 src/common/tuklib_integer.h | 4 ++--
14524 1 file changed, 2 insertions(+), 2 deletions(-)
14525
14526commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68
14527Author: Jia Tan <jiat0218@gmail.com>
14528Date:   2023-04-25 20:06:15 +0800
14529
14530    CI: Adds a build and test for small configuration.
14531
14532 .github/workflows/ci.yml | 5 +++++
14533 1 file changed, 5 insertions(+)
14534
14535commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43
14536Author: Jia Tan <jiat0218@gmail.com>
14537Date:   2023-04-25 20:05:26 +0800
14538
14539    CI: ci_build.sh allows configuring small build.
14540
14541 build-aux/ci_build.sh | 7 ++++++-
14542 1 file changed, 6 insertions(+), 1 deletion(-)
14543
14544commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d
14545Author: Jia Tan <jiat0218@gmail.com>
14546Date:   2023-04-20 20:15:00 +0800
14547
14548    Update THANKS.
14549
14550 THANKS | 1 +
14551 1 file changed, 1 insertion(+)
14552
14553commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
14554Author: Jia Tan <jiat0218@gmail.com>
14555Date:   2023-04-19 22:22:16 +0800
14556
14557    Windows: Include <intrin.h> when needed.
14558
14559    Legacy Windows did not need to #include <intrin.h> to use the MSVC
14560    intrinsics. Newer versions likely just issue a warning, but the MSVC
14561    documentation says to include the header file for the intrinsics we use.
14562
14563    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
14564    needed in tuklib_integer.h to only include <intrin.h> when it will is
14565    actually needed.
14566
14567 src/common/tuklib_integer.h    |  6 ++++++
14568 src/liblzma/common/memcmplen.h | 10 ++++++++++
14569 2 files changed, 16 insertions(+)
14570
14571commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7
14572Author: Jia Tan <jiat0218@gmail.com>
14573Date:   2023-04-19 21:59:03 +0800
14574
14575    tuklib_integer: Use __builtin_clz() with Clang.
14576
14577    Clang has support for __builtin_clz(), but previously Clang would
14578    fallback to either the MSVC intrinsic or the regular C code. This was
14579    discovered due to a bug where a new version of Clang required the
14580    <intrin.h> header file in order to use the MSVC intrinsics.
14581
14582    Thanks to Anton Kochkov for notifying us about the bug.
14583
14584 src/common/tuklib_integer.h | 6 +++---
14585 1 file changed, 3 insertions(+), 3 deletions(-)
14586
14587commit 3938718ce3773c90755785c0df8777f133b7ae29
14588Author: Lasse Collin <lasse.collin@tukaani.org>
14589Date:   2023-04-14 18:42:33 +0300
14590
14591    liblzma: Update project maintainers in lzma.h.
14592
14593    AUTHORS was updated earlier, lzma.h was simply forgotten.
14594
14595 src/liblzma/api/lzma.h | 2 +-
14596 1 file changed, 1 insertion(+), 1 deletion(-)
14597
14598commit 2a89670ab295e377f8b44f5bda6d198deb8ea285
14599Author: Jia Tan <jiat0218@gmail.com>
14600Date:   2023-04-13 20:45:19 +0800
14601
14602    liblzma: Cleans up old commented out code.
14603
14604 src/liblzma/common/alone_encoder.c | 11 -----------
14605 1 file changed, 11 deletions(-)
14606
14607commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81
14608Author: Jia Tan <jiat0218@gmail.com>
14609Date:   2023-04-07 20:46:41 +0800
14610
14611    Docs: Add missing word to SECURITY.md.
14612
14613 .github/SECURITY.md | 2 +-
14614 1 file changed, 1 insertion(+), 1 deletion(-)
14615
14616commit fb9c50f38a17bf37581de4034b36c8df8ec90a87
14617Author: Jia Tan <jiat0218@gmail.com>
14618Date:   2023-04-07 20:43:22 +0800
14619
14620    Update THANKS.
14621
14622 THANKS | 1 +
14623 1 file changed, 1 insertion(+)
14624
14625commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
14626Author: Jia Tan <jiat0218@gmail.com>
14627Date:   2023-04-07 20:42:12 +0800
14628
14629    Docs: Minor edits to SECURITY.md.
14630
14631 .github/SECURITY.md | 25 ++++++++++++++++++++-----
14632 1 file changed, 20 insertions(+), 5 deletions(-)
14633
14634commit 6549df8dd53f358345957e232648fdb699930074
14635Author: Gabriela Gutierrez <gabigutierrez@google.com>
14636Date:   2023-04-07 12:08:30 +0000
14637
14638    Docs: Create SECURITY.md
14639
14640    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
14641
14642 .github/SECURITY.md | 14 ++++++++++++++
14643 1 file changed, 14 insertions(+)
14644
14645commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
14646Author: Jia Tan <jiat0218@gmail.com>
14647Date:   2023-03-28 22:48:24 +0800
14648
14649    CI: Tests for disabling threading on CMake builds.
14650
14651 .github/workflows/ci.yml | 3 ---
14652 build-aux/ci_build.sh    | 4 ++--
14653 2 files changed, 2 insertions(+), 5 deletions(-)
14654
14655commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d
14656Author: Jia Tan <jiat0218@gmail.com>
14657Date:   2023-03-28 22:45:42 +0800
14658
14659    CI: Removes CMakeCache.txt between builds.
14660
14661    If the cache file is not removed, CMake will not reset configurations
14662    back to their default values. In order to make the tests independent, it
14663    is simplest to purge the cache. Unfortunatly, this will slow down the
14664    tests a little and repeat some checks.
14665
14666 build-aux/ci_build.sh | 2 ++
14667 1 file changed, 2 insertions(+)
14668
14669commit 2cb6028fc31de082b7f927632363bb1426b61aaa
14670Author: Jia Tan <jiat0218@gmail.com>
14671Date:   2023-03-28 22:32:40 +0800
14672
14673    CMake: Update liblzma-config.cmake generation.
14674
14675    Now that the threading is configurable, the liblzma CMake package only
14676    needs the threading library when using POSIX threads.
14677
14678 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
14679 1 file changed, 22 insertions(+), 11 deletions(-)
14680
14681commit 4d7fac0b07cc722825ba8d7838c558827e635611
14682Author: Jia Tan <jiat0218@gmail.com>
14683Date:   2023-03-28 22:25:33 +0800
14684
14685    CMake: Allows setting thread method.
14686
14687    The thread method is now configurable for the CMake build. It matches
14688    the Autotools build by allowing ON (pick the best threading method),
14689    OFF (no threading), posix, win95, and vista. If both Windows and
14690    posix threading are both available, then ON will choose Windows
14691    threading. Windows threading will also not use:
14692
14693    target_link_libraries(liblzma Threads::Threads)
14694
14695    since on systems like MinGW-w64 it would link the posix threads
14696    without purpose.
14697
14698 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
14699 1 file changed, 104 insertions(+), 40 deletions(-)
14700
14701commit 20cd905d898c1494dee42b78530769bb9c9f8076
14702Author: Jia Tan <jiat0218@gmail.com>
14703Date:   2023-03-24 23:05:48 +0800
14704
14705    CI: Runs CMake feature tests.
14706
14707    Now, CMake will run similar feature disable tests that the Autotools
14708    version did before. In order to do this without repeating lines in
14709    ci.yml, it now makes sense to use the GitHub Workflow matrix to create
14710    a loop.
14711
14712 .github/workflows/ci.yml | 169 +++++++++++++++--------------------------------
14713 1 file changed, 55 insertions(+), 114 deletions(-)
14714
14715commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229
14716Author: Jia Tan <jiat0218@gmail.com>
14717Date:   2023-03-24 20:35:11 +0800
14718
14719    CI: ci_build.sh allows CMake features to be configured.
14720
14721    Also included various clean ups for style and helper functions for
14722    repeated work.
14723
14724 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++-------------------
14725 1 file changed, 143 insertions(+), 90 deletions(-)
14726
14727commit cf3d1f130e50cf63da4bb1031771605f6f443b6a
14728Author: Jia Tan <jiat0218@gmail.com>
14729Date:   2023-03-24 20:06:33 +0800
14730
14731    CI: Change ci_build.sh to use bash instead of sh.
14732
14733    This script is only meant to be run as part of the CI build/test process
14734    on machines that are known to have bash (Ubuntu and MacOS). If this
14735    assumption changes in the future, then the bash specific commands will
14736    need to be replaced with a more portable option. For now, it is
14737    convenient to use bash commands.
14738
14739 build-aux/ci_build.sh | 2 +-
14740 1 file changed, 1 insertion(+), 1 deletion(-)
14741
14742commit ddfe164368e779c40d061aa4ccc376129e92f8e1
14743Author: Jia Tan <jiat0218@gmail.com>
14744Date:   2023-03-24 20:05:59 +0800
14745
14746    CMake: Only build xzdec if decoders are enabled.
14747
14748 CMakeLists.txt | 2 +-
14749 1 file changed, 1 insertion(+), 1 deletion(-)
14750
14751commit 116e81f002c503d3c3cd12726db8f9116e58ef25
14752Author: Jia Tan <jiat0218@gmail.com>
14753Date:   2023-03-22 15:42:04 +0800
14754
14755    Build: Removes redundant check for LZMA1 filter support.
14756
14757 src/liblzma/lzma/Makefile.inc | 5 +----
14758 1 file changed, 1 insertion(+), 4 deletions(-)
14759
14760commit 0ba234f692772595329d225462d391fe2c199d0a
14761Author: Lasse Collin <lasse.collin@tukaani.org>
14762Date:   2023-03-23 15:14:29 +0200
14763
14764    CMake: Bump maximum policy version to 3.26.
14765
14766    It adds only one new policy related to FOLDERS which we don't use.
14767    This makes it clear that the code is compatible with the policies
14768    up to 3.26.
14769
14770 CMakeLists.txt | 2 +-
14771 1 file changed, 1 insertion(+), 1 deletion(-)
14772
14773commit b0891684b4436aed31510fddcbb218d513bd5489
14774Author: Jia Tan <jiat0218@gmail.com>
14775Date:   2023-03-21 23:36:00 +0800
14776
14777    CMake: Conditionally build xz list.* files if decoders are enabled.
14778
14779 CMakeLists.txt | 9 +++++++--
14780 1 file changed, 7 insertions(+), 2 deletions(-)
14781
14782commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227
14783Author: Jia Tan <jiat0218@gmail.com>
14784Date:   2023-02-25 11:46:50 +0800
14785
14786    CMake: Allow configuring features as cache variables.
14787
14788    This allows users to change the features they build either in
14789    CMakeCache.txt or by using a CMake GUI. The sources built for
14790    liblzma are affected by this too, so only the necessary files
14791    will be compiled.
14792
14793 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
14794 1 file changed, 391 insertions(+), 137 deletions(-)
14795
14796commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff
14797Author: Lasse Collin <lasse.collin@tukaani.org>
14798Date:   2023-03-21 14:07:51 +0200
14799
14800    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
14801
14802    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
14803    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
14804
14805 configure.ac | 3 +++
14806 1 file changed, 3 insertions(+)
14807
14808commit 53cc475f2652d9e390ca002018dfd0af0626ef80
14809Author: Lasse Collin <lasse.collin@tukaani.org>
14810Date:   2023-03-21 14:04:37 +0200
14811
14812    Build: configure.ac: Use AS_IF and AS_CASE where required.
14813
14814    This makes no functional difference in the generated configure
14815    (at least with the Autotools versions I have installed) but this
14816    change might prevent future bugs like the one that was just
14817    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
14818
14819 configure.ac | 30 +++++++++++++++---------------
14820 1 file changed, 15 insertions(+), 15 deletions(-)
14821
14822commit 3b8890a40233b6c783bb101ec14405e786871775
14823Author: Lasse Collin <lasse.collin@tukaani.org>
14824Date:   2023-03-21 13:12:03 +0200
14825
14826    Update THANKS.
14827
14828 THANKS | 1 +
14829 1 file changed, 1 insertion(+)
14830
14831commit 5a5bd7f871818029d5ccbe189f087f591258c294
14832Author: Lasse Collin <lasse.collin@tukaani.org>
14833Date:   2023-03-21 13:11:49 +0200
14834
14835    Build: Fix --disable-threads breaking the building of shared libs.
14836
14837    This is broken in the releases 5.2.6 to 5.4.2. A workaround
14838    for these releases is to pass EGREP='grep -E' as an argument
14839    to configure in addition to --disable-threads.
14840
14841    The problem appeared when m4/ax_pthread.m4 was updated in
14842    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
14843    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
14844    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
14845    but this was only executed if POSIX threads were enabled.
14846    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
14847    omits it as AC_PROG_EGREP has already been required earlier.
14848    Thus, if not using POSIX threads, the shell variable EGREP
14849    would be undefined in the Libtool code in configure.
14850
14851    ax_pthread.m4 is fine. The bug was in configure.ac which called
14852    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
14853    ensures that all AC_REQUIREs get always run.
14854
14855    Thanks to Frank Busse for reporting the bug.
14856    Fixes: https://github.com/tukaani-project/xz/issues/45
14857
14858 configure.ac | 16 ++++++++--------
14859 1 file changed, 8 insertions(+), 8 deletions(-)
14860
14861commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06
14862Author: Lasse Collin <lasse.collin@tukaani.org>
14863Date:   2023-03-19 22:45:59 +0200
14864
14865    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
14866
14867    Thanks to Christian Hesse for reporting the issue.
14868    Fixes: https://github.com/tukaani-project/xz/issues/44
14869
14870 src/liblzma/common/memcmplen.h | 3 ++-
14871 1 file changed, 2 insertions(+), 1 deletion(-)
14872
14873commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce
14874Author: Jia Tan <jiat0218@gmail.com>
14875Date:   2023-03-18 22:10:57 +0800
14876
14877    Add NEWS for 5.4.2.
14878
14879 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
14880 1 file changed, 48 insertions(+)
14881
14882commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6
14883Author: Jia Tan <jiat0218@gmail.com>
14884Date:   2023-03-18 22:10:12 +0800
14885
14886    Add NEWS for 5.2.11.
14887
14888 NEWS | 27 +++++++++++++++++++++++++++
14889 1 file changed, 27 insertions(+)
14890
14891commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40
14892Author: Lasse Collin <lasse.collin@tukaani.org>
14893Date:   2023-03-18 16:00:54 +0200
14894
14895    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
14896
14897 COPYING.GPLv3 | 8 ++++----
14898 1 file changed, 4 insertions(+), 4 deletions(-)
14899
14900commit b473a92891f7e991398a3b5eff305f6f2b6d7293
14901Author: Lasse Collin <lasse.collin@tukaani.org>
14902Date:   2023-03-18 15:51:57 +0200
14903
14904    Change a few HTTP URLs to HTTPS.
14905
14906    The xz man page timestamp was intentionally left unchanged.
14907
14908 INSTALL                    |  2 +-
14909 README                     |  8 ++++----
14910 configure.ac               |  2 +-
14911 dos/INSTALL.txt            |  4 ++--
14912 src/liblzma/api/lzma.h     |  8 ++++----
14913 src/liblzma/check/sha256.c |  2 +-
14914 src/xz/xz.1                |  2 +-
14915 windows/INSTALL-MinGW.txt  | 10 +++++-----
14916 8 files changed, 19 insertions(+), 19 deletions(-)
14917
14918commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8
14919Author: Jia Tan <jiat0218@gmail.com>
14920Date:   2023-03-18 00:40:28 +0800
14921
14922    CMake: Fix typo in a comment.
14923
14924 CMakeLists.txt | 2 +-
14925 1 file changed, 1 insertion(+), 1 deletion(-)
14926
14927commit 76e2315e14c399c15cc90e7930fd4d3d086b0227
14928Author: Lasse Collin <lasse.collin@tukaani.org>
14929Date:   2023-03-17 18:36:22 +0200
14930
14931    Windows: build.bash: Copy liblzma API docs to the output package.
14932
14933 windows/build.bash | 3 ++-
14934 1 file changed, 2 insertions(+), 1 deletion(-)
14935
14936commit 133cf55edc5ce92952d2709abd992e48ef1f45ee
14937Author: Lasse Collin <lasse.collin@tukaani.org>
14938Date:   2023-03-17 08:53:38 +0200
14939
14940    Windows: Add microlzma_*.c to the VS project files.
14941
14942    These should have been included in 5.3.2alpha already.
14943
14944 windows/vs2013/liblzma.vcxproj     | 2 ++
14945 windows/vs2013/liblzma_dll.vcxproj | 2 ++
14946 windows/vs2017/liblzma.vcxproj     | 2 ++
14947 windows/vs2017/liblzma_dll.vcxproj | 2 ++
14948 windows/vs2019/liblzma.vcxproj     | 2 ++
14949 windows/vs2019/liblzma_dll.vcxproj | 2 ++
14950 6 files changed, 12 insertions(+)
14951
14952commit 75c9ca450fab6982fda9286b168081c9d54126cd
14953Author: Lasse Collin <lasse.collin@tukaani.org>
14954Date:   2023-03-17 08:43:51 +0200
14955
14956    CMake: Add microlzma_*.c to the build.
14957
14958    These should have been included in 5.3.2alpha already.
14959
14960 CMakeLists.txt | 2 ++
14961 1 file changed, 2 insertions(+)
14962
14963commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b
14964Author: Lasse Collin <lasse.collin@tukaani.org>
14965Date:   2023-03-17 08:41:36 +0200
14966
14967    Build: Update comments about unaligned access to mention 64-bit.
14968
14969 cmake/tuklib_integer.cmake | 7 +++----
14970 m4/tuklib_integer.m4       | 4 ++--
14971 2 files changed, 5 insertions(+), 6 deletions(-)
14972
14973commit 5e57e3301319f20c35f8111dea73fa58403b96b1
14974Author: Lasse Collin <lasse.collin@tukaani.org>
14975Date:   2023-03-17 00:02:30 +0200
14976
14977    Tests: Update .gitignore.
14978
14979 .gitignore | 3 ++-
14980 1 file changed, 2 insertions(+), 1 deletion(-)
14981
14982commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac
14983Author: Lasse Collin <lasse.collin@tukaani.org>
14984Date:   2023-03-14 20:04:03 +0200
14985
14986    po4a/update-po: Display the script name consistently in error messages.
14987
14988 po4a/update-po | 2 +-
14989 1 file changed, 1 insertion(+), 1 deletion(-)
14990
14991commit 509157c80c500426ec853bd992d684ebafc8500c
14992Author: Jia Tan <jiat0218@gmail.com>
14993Date:   2023-03-17 01:30:36 +0800
14994
14995    Doc: Rename Doxygen HTML doc directory name liblzma => api.
14996
14997    When the docs are installed, calling the directory "liblzma" is
14998    confusing since multiple other files in the doc directory are for
14999    liblzma. This should also make it more natural for distros when they
15000    package the documentation.
15001
15002 .gitignore             |  2 +-
15003 Makefile.am            | 18 +++++++++---------
15004 PACKAGERS              |  4 ++--
15005 doxygen/Doxyfile       |  2 +-
15006 doxygen/update-doxygen | 18 +++++++++---------
15007 5 files changed, 22 insertions(+), 22 deletions(-)
15008
15009commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3
15010Author: Jia Tan <jiat0218@gmail.com>
15011Date:   2023-03-16 22:07:15 +0800
15012
15013    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
15014
15015    This was left in by mistake since an early version of the ARM64 filter
15016    used a different struct for its options.
15017
15018 src/liblzma/api/lzma/bcj.h | 2 +-
15019 1 file changed, 1 insertion(+), 1 deletion(-)
15020
15021commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d
15022Author: Jia Tan <jiat0218@gmail.com>
15023Date:   2023-03-16 21:44:02 +0800
15024
15025    CI: Add doxygen as a dependency.
15026
15027    Autogen now requires --no-doxygen or having doxygen installed to run
15028    without errors.
15029
15030 .github/workflows/ci.yml | 5 ++---
15031 1 file changed, 2 insertions(+), 3 deletions(-)
15032
15033commit f68f4b27f62f53fdac570885a1f4f23367ce6599
15034Author: Lasse Collin <lasse.collin@tukaani.org>
15035Date:   2023-03-15 19:19:13 +0200
15036
15037    COPYING: Add a note about the included Doxygen-generated HTML.
15038
15039 COPYING | 11 +++++++++++
15040 1 file changed, 11 insertions(+)
15041
15042commit 8979308528c1f45cb9ee52d511f05232b4ad90a1
15043Author: Jia Tan <jiat0218@gmail.com>
15044Date:   2023-03-16 21:41:09 +0800
15045
15046    Doc: Update PACKAGERS with details about liblzma API docs install.
15047
15048 PACKAGERS | 22 ++++++++++++++++------
15049 1 file changed, 16 insertions(+), 6 deletions(-)
15050
15051commit 55ba6e93004842ae0a0792214a23504267ad8f43
15052Author: Jia Tan <jiat0218@gmail.com>
15053Date:   2023-03-16 21:38:32 +0800
15054
15055    liblzma: Add set lzma.h as the main page for Doxygen documentation.
15056
15057    The \mainpage command is used in the first block of comments in lzma.h.
15058    This changes the previously nearly empty index.html to use the first
15059    comment block in lzma.h for its contents.
15060
15061    lzma.h is no longer documented separately, but this is for the better
15062    since lzma.h only defined a few macros that users do not need to use.
15063    The individual API header files all have a disclaimer that they should
15064    not be #included directly, so there should be no confusion on the fact
15065    that lzma.h should be the only header used by applications.
15066
15067    Additionally, the note "See ../lzma.h for information about liblzma as
15068    a whole." was removed since lzma.h is now the main page of the
15069    generated HTML and does not have its own page anymore. So it would be
15070    confusing in the HTML version and was only a "nice to have" when
15071    browsing the source files.
15072
15073 src/liblzma/api/lzma.h              | 1 +
15074 src/liblzma/api/lzma/base.h         | 2 --
15075 src/liblzma/api/lzma/bcj.h          | 2 --
15076 src/liblzma/api/lzma/block.h        | 2 --
15077 src/liblzma/api/lzma/check.h        | 2 --
15078 src/liblzma/api/lzma/container.h    | 2 --
15079 src/liblzma/api/lzma/delta.h        | 2 --
15080 src/liblzma/api/lzma/filter.h       | 2 --
15081 src/liblzma/api/lzma/hardware.h     | 2 --
15082 src/liblzma/api/lzma/index.h        | 2 --
15083 src/liblzma/api/lzma/index_hash.h   | 4 +---
15084 src/liblzma/api/lzma/lzma12.h       | 2 --
15085 src/liblzma/api/lzma/stream_flags.h | 2 --
15086 src/liblzma/api/lzma/version.h      | 2 --
15087 src/liblzma/api/lzma/vli.h          | 2 --
15088 15 files changed, 2 insertions(+), 29 deletions(-)
15089
15090commit 16f21255597f6a57e5692780f962cdc090f62b8c
15091Author: Jia Tan <jiat0218@gmail.com>
15092Date:   2023-03-16 21:37:32 +0800
15093
15094    Build: Generate doxygen documentation in autogen.sh.
15095
15096    Another command line option (--no-doxygen) was added to disable
15097    creating the doxygen documenation in cases where it not wanted or
15098    if the doxygen tool is not installed.
15099
15100 autogen.sh | 35 +++++++++++++++++++++++++++++------
15101 1 file changed, 29 insertions(+), 6 deletions(-)
15102
15103commit 1321852a3be7196bd7fcfd146221a5669e46407c
15104Author: Jia Tan <jiat0218@gmail.com>
15105Date:   2023-03-16 21:35:55 +0800
15106
15107    Build: Create doxygen/update-doxygen script.
15108
15109    This is a helper script to generate the Doxygen documentation. It can be
15110    run in 'liblzma' or 'internal' mode by setting the first argument. It
15111    will default to 'liblzma' mode and only generate documentation for the
15112    liblzma API header files.
15113
15114    The helper script will be run during the custom mydist hook when we
15115    create releases. This hook already alters the source directory, so its
15116    fine to do it here too. This way, we can include the Doxygen generated
15117    files in the distrubtion and when installing.
15118
15119    In 'liblzma' mode, the JavaScript is stripped from the .html files and
15120    the .js files are removed. This avoids license hassle from jQuery and
15121    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
15122
15123 Makefile.am            |   1 +
15124 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
15125 2 files changed, 112 insertions(+)
15126
15127commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b
15128Author: Jia Tan <jiat0218@gmail.com>
15129Date:   2023-03-16 21:34:36 +0800
15130
15131    Build: Install Doxygen docs and include in distribution if generated.
15132
15133    Added a install-data-local target to install the Doxygen documentation
15134    only when it has been generated. In order to correctly remove the docs,
15135    a corresponding uninstall-local target was added.
15136
15137    If the doxygen docs exist in the source tree, they will also be included
15138    in the distribution now too.
15139
15140 Makefile.am | 18 ++++++++++++++++++
15141 1 file changed, 18 insertions(+)
15142
15143commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73
15144Author: Lasse Collin <lasse.collin@tukaani.org>
15145Date:   2023-03-16 21:23:48 +0800
15146
15147    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
15148
15149    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
15150    can have the tags that need to be configured piped into the doxygen
15151    command through stdin with the overrides after Doxyfile's contents.
15152
15153    Going forward, the documentation should be generated in two different
15154    modes: liblzma or internal.
15155
15156    liblzma is useful for most users. It is the documentation for just
15157    the liblzma API header files. This is the default.
15158
15159    internal is for people who want to understand how xz and liblzma work.
15160    It might be useful for people who want to contribute to the project.
15161
15162 .gitignore                      |   3 +-
15163 Makefile.am                     |   1 -
15164 configure.ac                    |  40 ---
15165 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++---------------
15166 4 files changed, 456 insertions(+), 309 deletions(-)
15167
15168commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f
15169Author: Jia Tan <jiat0218@gmail.com>
15170Date:   2023-02-28 23:22:36 +0800
15171
15172    Tests: Remove unused macros and functions.
15173
15174 tests/tests.h | 75 -----------------------------------------------------------
15175 1 file changed, 75 deletions(-)
15176
15177commit af55191102f01e76de658c881299f0909ca0feda
15178Author: Jia Tan <jiat0218@gmail.com>
15179Date:   2022-12-29 21:52:15 +0800
15180
15181    liblzma: Defines masks for return values from lzma_index_checks().
15182
15183 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++
15184 tests/test_index.c           | 22 +++++++++++-----------
15185 2 files changed, 34 insertions(+), 11 deletions(-)
15186
15187commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73
15188Author: Jia Tan <jiat0218@gmail.com>
15189Date:   2023-01-12 22:29:07 +0800
15190
15191    Tests: Refactors existing lzma_index tests.
15192
15193    Converts the existing lzma_index tests into tuktests and covers every
15194    API function from index.h except for lzma_file_info_decoder, which can
15195    be tested in the future.
15196
15197 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
15198 1 file changed, 1492 insertions(+), 544 deletions(-)
15199
15200commit 717aa3651ce582807f379d8654c2516e1594df77
15201Author: Lasse Collin <lasse.collin@tukaani.org>
15202Date:   2023-03-11 18:42:08 +0200
15203
15204    xz: Simplify the error-label in Capsicum sandbox code.
15205
15206    Also remove unneeded "sandbox_allowed = false;" as this code
15207    will never be run more than once (making it work with multiple
15208    input files isn't trivial).
15209
15210 src/xz/file_io.c | 27 ++++++++++++---------------
15211 1 file changed, 12 insertions(+), 15 deletions(-)
15212
15213commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75
15214Author: Lasse Collin <lasse.collin@tukaani.org>
15215Date:   2023-03-07 19:59:23 +0200
15216
15217    xz: Make Capsicum sandbox more strict with stdin and stdout.
15218
15219 src/xz/file_io.c | 8 ++++++++
15220 1 file changed, 8 insertions(+)
15221
15222commit 916448d624aaf55cef0fc3e53754affb8c4f309d
15223Author: Jia Tan <jiat0218@gmail.com>
15224Date:   2023-03-08 23:08:46 +0800
15225
15226    Revert: "Add warning if Capsicum sandbox system calls are unsupported."
15227
15228    The warning causes the exit status to be 2, so this will cause problems
15229    for many scripted use cases for xz. The sandbox usage is already very
15230    limited already, so silently disabling this allows it to be more usable.
15231
15232 src/xz/file_io.c | 10 ++++------
15233 1 file changed, 4 insertions(+), 6 deletions(-)
15234
15235commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f
15236Author: Jia Tan <jiat0218@gmail.com>
15237Date:   2023-03-07 20:02:22 +0800
15238
15239    xz: Fix -Wunused-label in io_sandbox_enter().
15240
15241    Thanks to Xin Li for recommending the fix.
15242
15243 src/xz/file_io.c | 4 ++--
15244 1 file changed, 2 insertions(+), 2 deletions(-)
15245
15246commit 5fb936786601a1cd013a5d436adde65982b1e13c
15247Author: Jia Tan <jiat0218@gmail.com>
15248Date:   2023-03-06 21:37:45 +0800
15249
15250    xz: Add warning if Capsicum sandbox system calls are unsupported.
15251
15252    The warning is only used when errno == ENOSYS. Otherwise, xz still
15253    issues a fatal error.
15254
15255 src/xz/file_io.c | 2 ++
15256 1 file changed, 2 insertions(+)
15257
15258commit 61ee82cb1232a402c82282bbae42821f2b952b0d
15259Author: Jia Tan <jiat0218@gmail.com>
15260Date:   2023-03-06 21:27:53 +0800
15261
15262    xz: Skip Capsicum sandbox system calls when they are unsupported.
15263
15264    If a system has the Capsicum header files but does not actually
15265    implement the system calls, then this would render xz unusable. Instead,
15266    we can check if errno == ENOSYS and not issue a fatal error.
15267
15268 src/xz/file_io.c | 22 +++++++++++++++++-----
15269 1 file changed, 17 insertions(+), 5 deletions(-)
15270
15271commit f070722b57ba975a0dff36492d766f03026b1d21
15272Author: Jia Tan <jiat0218@gmail.com>
15273Date:   2023-03-06 21:08:26 +0800
15274
15275    xz: Reorder cap_enter() to beginning of capsicum sandbox code.
15276
15277    cap_enter() puts the process into the sandbox. If later calls to
15278    cap_rights_limit() fail, then the process can still have some extra
15279    protections.
15280
15281 src/xz/file_io.c | 6 +++---
15282 1 file changed, 3 insertions(+), 3 deletions(-)
15283
15284commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f
15285Author: Jia Tan <jiat0218@gmail.com>
15286Date:   2023-02-24 23:46:23 +0800
15287
15288    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
15289
15290    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
15291    usable in an encoder even if it returns false (success). If liblzma
15292    is built with default configurations, then the options will always be
15293    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
15294    the options may not be usable depending on the preset level requested.
15295
15296    The documentation was updated to reflect this complexity, since this
15297    behavior was unclear before.
15298
15299 src/liblzma/api/lzma/lzma12.h | 5 +++++
15300 1 file changed, 5 insertions(+)
15301
15302commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99
15303Author: Lasse Collin <lasse.collin@tukaani.org>
15304Date:   2023-02-27 18:38:35 +0200
15305
15306    CMake: Require that the C compiler supports C99 or a newer standard.
15307
15308    Thanks to autoantwort for reporting the issue and suggesting
15309    a different patch:
15310    https://github.com/tukaani-project/xz/pull/42
15311
15312 CMakeLists.txt | 8 ++++++++
15313 1 file changed, 8 insertions(+)
15314
15315commit 9aa7fdeb04c486d2700967090956af88fdccab7e
15316Author: Jia Tan <jiat0218@gmail.com>
15317Date:   2023-02-24 18:10:37 +0800
15318
15319    Tests: Small tweak to test-vli.c.
15320
15321    The static global variables can be disabled if encoders and decoders
15322    are not built. If they are not disabled and -Werror is used, it will
15323    cause an usused warning as an error.
15324
15325 tests/test_vli.c | 2 ++
15326 1 file changed, 2 insertions(+)
15327
15328commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9
15329Author: Jia Tan <jiat0218@gmail.com>
15330Date:   2023-02-06 21:46:43 +0800
15331
15332    liblzma: Replace '\n' -> newline in filter.h documentation.
15333
15334    The '\n' renders as a newline when the comments are converted to html
15335    by Doxygen.
15336
15337 src/liblzma/api/lzma/filter.h | 2 +-
15338 1 file changed, 1 insertion(+), 1 deletion(-)
15339
15340commit 002006be62d77c706565fa6ec828bea64be302da
15341Author: Jia Tan <jiat0218@gmail.com>
15342Date:   2023-02-06 21:45:37 +0800
15343
15344    liblzma: Shorten return description for two functions in filter.h.
15345
15346    Shorten the description for lzma_raw_encoder_memusage() and
15347    lzma_raw_decoder_memusage().
15348
15349 src/liblzma/api/lzma/filter.h | 8 ++------
15350 1 file changed, 2 insertions(+), 6 deletions(-)
15351
15352commit 463d9359b8595f01d44ada1739d75aeb87f36524
15353Author: Jia Tan <jiat0218@gmail.com>
15354Date:   2023-02-06 21:44:45 +0800
15355
15356    liblzma: Reword a few lines in filter.h
15357
15358 src/liblzma/api/lzma/filter.h | 10 +++++-----
15359 1 file changed, 5 insertions(+), 5 deletions(-)
15360
15361commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0
15362Author: Jia Tan <jiat0218@gmail.com>
15363Date:   2023-02-06 21:35:06 +0800
15364
15365    liblzma: Improve documentation in filter.h.
15366
15367    All functions now explicitly specify parameter and return values.
15368    The notes and code annotations were moved before the parameter and
15369    return value descriptions for consistency.
15370
15371    Also, the description above lzma_filter_encoder_is_supported() about
15372    not being able to list available filters was removed since
15373    lzma_str_list_filters() will do this.
15374
15375 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
15376 1 file changed, 143 insertions(+), 83 deletions(-)
15377
15378commit 805b45cd60bfd5da3d3d89077de3789df179b324
15379Author: Lasse Collin <lasse.collin@tukaani.org>
15380Date:   2023-02-23 20:46:16 +0200
15381
15382    Update THANKS.
15383
15384 THANKS | 1 +
15385 1 file changed, 1 insertion(+)
15386
15387commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
15388Author: Lasse Collin <lasse.collin@tukaani.org>
15389Date:   2023-02-21 22:57:10 +0200
15390
15391    liblzma: Avoid null pointer + 0 (undefined behavior in C).
15392
15393    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
15394    adding 0 to a null pointer is undefined behavior. As of writing,
15395    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
15396    I'm not aware of any compiler that would take advantage of this
15397    when optimizing (Clang 15 included). It's good to avoid this anyway
15398    since compilers might some day infer that pointer arithmetic implies
15399    that the pointer is not NULL. That is, the following foo() would then
15400    unconditionally return 0, even for foo(NULL, 0):
15401
15402        void bar(char *a, char *b);
15403
15404        int foo(char *a, size_t n)
15405        {
15406            bar(a, a + n);
15407            return a == NULL;
15408        }
15409
15410    In contrast to C, C++ explicitly allows null pointer + 0. So if
15411    the above is compiled as C++ then there is no undefined behavior
15412    in the foo(NULL, 0) call.
15413
15414    To me it seems that changing the C standard would be the sane
15415    thing to do (just add one sentence) as it would ensure that a huge
15416    amount of old code won't break in the future. Based on web searches
15417    it seems that a large number of codebases (where null pointer + 0
15418    occurs) are being fixed instead to be future-proof in case compilers
15419    will some day optimize based on it (like making the above foo(NULL, 0)
15420    return 0) which in the worst case will cause security bugs.
15421
15422    Some projects don't plan to change it. For example, gnulib and thus
15423    many GNU tools currently require that null pointer + 0 is defined:
15424
15425        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
15426
15427        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
15428
15429    In XZ Utils null pointer + 0 issue should be fixed after this
15430    commit. This adds a few if-statements and thus branches to avoid
15431    null pointer + 0. These check for size > 0 instead of ptr != NULL
15432    because this way bugs where size > 0 && ptr == NULL will likely
15433    get caught quickly. None of them are in hot spots so it shouldn't
15434    matter for performance.
15435
15436    A little less readable version would be replacing
15437
15438        ptr + offset
15439
15440    with
15441
15442        offset != 0 ? ptr + offset : ptr
15443
15444    or creating a macro for it:
15445
15446        #define my_ptr_add(ptr, offset) \
15447                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
15448
15449    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
15450    Clang >= 7, and Clang-based ICX to optimize it to the very same code
15451    as ptr + offset. That is, it won't create a branch. So for hot code
15452    this could be a good solution to avoid null pointer + 0. Unfortunately
15453    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
15454    branch from my_ptr_add().
15455
15456    Thanks to Marcin Kowalczyk for reporting the problem:
15457    https://github.com/tukaani-project/xz/issues/36
15458
15459 src/liblzma/common/block_decoder.c |  5 ++++-
15460 src/liblzma/common/block_encoder.c |  7 +++++--
15461 src/liblzma/common/common.c        | 20 ++++++++++++++------
15462 src/liblzma/common/index_decoder.c | 13 ++++++++++---
15463 src/liblzma/common/index_encoder.c | 11 +++++++++--
15464 src/liblzma/common/index_hash.c    | 13 ++++++++++---
15465 src/liblzma/common/lzip_decoder.c  |  6 +++++-
15466 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
15467 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
15468 src/liblzma/simple/simple_coder.c  |  6 ++++--
15469 10 files changed, 77 insertions(+), 23 deletions(-)
15470
15471commit fa9065fac54194fe0407fc7f0cc9633fdce13c21
15472Author: Jia Tan <jiat0218@gmail.com>
15473Date:   2023-02-07 00:00:44 +0800
15474
15475    liblzma: Adjust container.h for consistency with filter.h.
15476
15477 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
15478 1 file changed, 9 insertions(+), 11 deletions(-)
15479
15480commit 00a721b63d82dfb658dca8d8cb599d8a245c663f
15481Author: Jia Tan <jiat0218@gmail.com>
15482Date:   2023-02-07 00:00:09 +0800
15483
15484    liblzma: Fix small typos and reword a few things in filter.h.
15485
15486 src/liblzma/api/lzma/container.h | 13 ++++++-------
15487 1 file changed, 6 insertions(+), 7 deletions(-)
15488
15489commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39
15490Author: Jia Tan <jiat0218@gmail.com>
15491Date:   2023-02-06 23:42:08 +0800
15492
15493    liblzma: Convert list of flags in lzma_mt to bulleted list.
15494
15495 src/liblzma/api/lzma/container.h | 9 ++++++---
15496 1 file changed, 6 insertions(+), 3 deletions(-)
15497
15498commit dbd47622eb99fefb3538a22baec3def002aa56f5
15499Author: Jia Tan <jiat0218@gmail.com>
15500Date:   2023-01-26 23:17:41 +0800
15501
15502    liblzma: Fix typo in documentation in container.h
15503
15504    lzma_microlzma_decoder -> lzma_microlzma_encoder
15505
15506 src/liblzma/api/lzma/container.h | 2 +-
15507 1 file changed, 1 insertion(+), 1 deletion(-)
15508
15509commit 14cd30806d69e55906073745bcce3ee50e0ec942
15510Author: Jia Tan <jiat0218@gmail.com>
15511Date:   2023-01-26 23:16:34 +0800
15512
15513    liblzma: Improve documentation for container.h
15514
15515    Standardizing each function to always specify parameters and return
15516    values. Also moved the parameters and return values to the end of each
15517    function description.
15518
15519 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
15520 1 file changed, 93 insertions(+), 53 deletions(-)
15521
15522commit c9c8bfae3502842dcead85eeb2b951b437c2cd88
15523Author: Jia Tan <jiat0218@gmail.com>
15524Date:   2023-02-22 20:59:41 +0800
15525
15526    CMake: Add LZIP decoder test to list of tests.
15527
15528 CMakeLists.txt | 1 +
15529 1 file changed, 1 insertion(+)
15530
15531commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a
15532Author: Lasse Collin <lasse.collin@tukaani.org>
15533Date:   2023-02-17 20:56:49 +0200
15534
15535    Update THANKS.
15536
15537 THANKS | 1 +
15538 1 file changed, 1 insertion(+)
15539
15540commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
15541Author: Lasse Collin <lasse.collin@tukaani.org>
15542Date:   2023-02-17 20:48:28 +0200
15543
15544    Build: Use only the generic symbol versioning on MicroBlaze.
15545
15546    On MicroBlaze, GCC 12 is broken in sense that
15547    __has_attribute(__symver__) returns true but it still doesn't
15548    support the __symver__ attribute even though the platform is ELF
15549    and symbol versioning is supported if using the traditional
15550    __asm__(".symver ...") method. Avoiding the traditional method is
15551    good because it breaks LTO (-flto) builds with GCC.
15552
15553    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
15554
15555    For now the only extra symbols in liblzma_linux.map are the
15556    compatibility symbols with the patch that spread from RHEL/CentOS 7.
15557    These require the use of __symver__ attribute or __asm__(".symver ...")
15558    in the C code. Compatibility with the patch from CentOS 7 doesn't
15559    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
15560    instead. It doesn't require anything special in the C code and thus
15561    no LTO issues either.
15562
15563    An alternative would be to detect support for __symver__
15564    attribute in configure.ac and CMakeLists.txt and fall back
15565    to __asm__(".symver ...") but then LTO would be silently broken
15566    on MicroBlaze. It sounds likely that MicroBlaze is a special
15567    case so let's treat it as a such because that is simpler. If
15568    a similar issue exists on some other platform too then hopefully
15569    someone will report it and this can be reconsidered.
15570
15571    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
15572    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
15573    The problem breaks the build so it's easy to notice and can be fixed
15574    later.)
15575
15576    Thanks to Vincent Fazio for reporting the problem and proposing
15577    a patch (in the end that solution wasn't used):
15578    https://github.com/tukaani-project/xz/pull/32
15579
15580 configure.ac | 12 ++++++++++--
15581 1 file changed, 10 insertions(+), 2 deletions(-)
15582
15583commit d831072cceca458d94d2d5da201862f6d43a417b
15584Author: Lasse Collin <lasse.collin@tukaani.org>
15585Date:   2023-02-16 21:09:00 +0200
15586
15587    liblzma: Very minor API doc tweaks.
15588
15589    Use "member" to refer to struct members as that's the term used
15590    by the C standard.
15591
15592    Use lzma_options_delta.dist and such in docs so that in Doxygen's
15593    HTML output they will link to the doc of the struct member.
15594
15595    Clean up a few trailing white spaces too.
15596
15597 src/liblzma/api/lzma/block.h        |  6 +++---
15598 src/liblzma/api/lzma/delta.h        |  6 +++---
15599 src/liblzma/api/lzma/index.h        | 10 +++++-----
15600 src/liblzma/api/lzma/stream_flags.h |  6 +++---
15601 4 files changed, 14 insertions(+), 14 deletions(-)
15602
15603commit f029daea39c215fd7d5cb6b6798818b055cf5b22
15604Author: Jia Tan <jiat0218@gmail.com>
15605Date:   2023-02-17 00:54:33 +0800
15606
15607    liblzma: Adjust spacing in doc headers in bcj.h.
15608
15609 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
15610 1 file changed, 7 insertions(+), 7 deletions(-)
15611
15612commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c
15613Author: Jia Tan <jiat0218@gmail.com>
15614Date:   2023-02-17 00:44:44 +0800
15615
15616    liblzma: Adjust documentation in bcj.h for consistent style.
15617
15618 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
15619 1 file changed, 22 insertions(+), 21 deletions(-)
15620
15621commit efa498c13b883810497e0ea8a169efd6f48f5026
15622Author: Jia Tan <jiat0218@gmail.com>
15623Date:   2023-02-17 00:36:05 +0800
15624
15625    liblzma: Rename field => member in documentation.
15626
15627    Also adjusted preset value => preset level.
15628
15629 src/liblzma/api/lzma/base.h         | 18 +++++++--------
15630 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
15631 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
15632 src/liblzma/api/lzma/delta.h        | 12 +++++-----
15633 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
15634 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
15635 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
15636 7 files changed, 95 insertions(+), 95 deletions(-)
15637
15638commit 718b22a6c5e3ee5de123323ea798872381f9320e
15639Author: Lasse Collin <lasse.collin@tukaani.org>
15640Date:   2023-02-16 17:59:50 +0200
15641
15642    liblzma: Silence a warning from MSVC.
15643
15644    It gives C4146 here since unary minus with unsigned integer
15645    is still unsigned (which is the intention here). Doing it
15646    with substraction makes it clearer and avoids the warning.
15647
15648    Thanks to Nathan Moinvaziri for reporting this.
15649
15650 src/liblzma/check/crc64_fast.c | 2 +-
15651 1 file changed, 1 insertion(+), 1 deletion(-)
15652
15653commit 87c53553fa7d50f777b4edfa99f2083628f590fe
15654Author: Jia Tan <jiat0218@gmail.com>
15655Date:   2023-02-16 21:04:54 +0800
15656
15657     liblzma: Improve documentation for stream_flags.h
15658
15659    Standardizing each function to always specify parameters and return
15660    values. Also moved the parameters and return values to the end of each
15661    function description.
15662
15663    A few small things were reworded and long sentences broken up.
15664
15665 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
15666 1 file changed, 46 insertions(+), 30 deletions(-)
15667
15668commit 13d99e75a543e9e5f8633cc241eae55b91a3b242
15669Author: Jia Tan <jiat0218@gmail.com>
15670Date:   2023-02-14 21:50:16 +0800
15671
15672    liblzma: Improve documentation in lzma12.h.
15673
15674    All functions now explicitly specify parameter and return values.
15675
15676 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
15677 1 file changed, 23 insertions(+), 9 deletions(-)
15678
15679commit 43ec344c868f930e96879eb9e49212cce92a9884
15680Author: Jia Tan <jiat0218@gmail.com>
15681Date:   2023-01-27 22:44:06 +0800
15682
15683    liblzma: Improve documentation in check.h.
15684
15685    All functions now explicitly specify parameter and return values.
15686    Also moved the note about SHA-256 functions not being exported to the
15687    top of the file.
15688
15689 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
15690 1 file changed, 28 insertions(+), 13 deletions(-)
15691
15692commit 9c71db4e884fd49aea3d1e711036bff45ca66487
15693Author: Jia Tan <jiat0218@gmail.com>
15694Date:   2023-02-08 21:33:52 +0800
15695
15696    liblzma: Improve documentation in index.h
15697
15698    All functions now explicitly specify parameter and return values.
15699
15700 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
15701 1 file changed, 126 insertions(+), 51 deletions(-)
15702
15703commit 421f2f2e160720f6009e3b6a125cafe2feaa9419
15704Author: Jia Tan <jiat0218@gmail.com>
15705Date:   2023-02-08 20:35:32 +0800
15706
15707    liblzma: Reword a comment in index.h.
15708
15709 src/liblzma/api/lzma/index.h | 4 ++--
15710 1 file changed, 2 insertions(+), 2 deletions(-)
15711
15712commit b67539484981351d501b68de5e925425e50c59b1
15713Author: Jia Tan <jiat0218@gmail.com>
15714Date:   2023-02-08 20:30:23 +0800
15715
15716    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
15717
15718    Add \private above this field and its sub-fields since it is not meant
15719    to be modified by users.
15720
15721 src/liblzma/api/lzma/index.h | 9 ++++++++-
15722 1 file changed, 8 insertions(+), 1 deletion(-)
15723
15724commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96
15725Author: Jia Tan <jiat0218@gmail.com>
15726Date:   2023-01-21 21:32:03 +0800
15727
15728    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
15729
15730    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
15731    documentation after a member.
15732
15733 src/liblzma/api/lzma/base.h | 2 +-
15734 1 file changed, 1 insertion(+), 1 deletion(-)
15735
15736commit 816fec125aa74bcef46512c73acc6d9e5a700d15
15737Author: Jia Tan <jiat0218@gmail.com>
15738Date:   2023-01-21 00:29:38 +0800
15739
15740    liblzma: Improve documentation for base.h.
15741
15742    Standardizing each function to always specify params and return values.
15743    Also fixed a small grammar mistake.
15744
15745 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
15746 1 file changed, 25 insertions(+), 5 deletions(-)
15747
15748commit 862dacef1a4e7e1b28d465956fa4244ed01df154
15749Author: Jia Tan <jiat0218@gmail.com>
15750Date:   2023-02-14 00:12:34 +0800
15751
15752    liblzma: Add one more missing [out] annotation in vli.h
15753
15754 src/liblzma/api/lzma/vli.h | 2 +-
15755 1 file changed, 1 insertion(+), 1 deletion(-)
15756
15757commit 867b08ae4254bf55dd1f7fd502cc618231b92f75
15758Author: Jia Tan <jiat0218@gmail.com>
15759Date:   2023-02-14 00:08:33 +0800
15760
15761    liblzma: Minor improvements to vli.h.
15762
15763    Added [out] annotations to parameters that are pointers and can have
15764    their value changed. Also added a clarification to lzma_vli_is_valid.
15765
15766 src/liblzma/api/lzma/vli.h | 13 +++++++------
15767 1 file changed, 7 insertions(+), 6 deletions(-)
15768
15769commit 90d0e628ff11e5030bcc4fc000bca056adda6603
15770Author: Jia Tan <jiat0218@gmail.com>
15771Date:   2023-02-10 21:38:02 +0800
15772
15773    liblzma: Add comments for macros in delta.h.
15774
15775    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
15776    and to avoid Doxygen warnings.
15777
15778 src/liblzma/api/lzma/delta.h | 8 ++++++++
15779 1 file changed, 8 insertions(+)
15780
15781commit 9255fffdb13e59874bf7f95c370c410ad3a7e114
15782Author: Jia Tan <jiat0218@gmail.com>
15783Date:   2023-02-10 21:35:23 +0800
15784
15785    liblzma: Improve documentation in index_hash.h.
15786
15787    All functions now explicitly specify parameter and return values.
15788    Also reworded the description of lzma_index_hash_init() for readability.
15789
15790 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
15791 1 file changed, 27 insertions(+), 9 deletions(-)
15792
15793commit 1dbe12b90cff79bb51923733ac0840747b4b4131
15794Author: Lasse Collin <lasse.collin@tukaani.org>
15795Date:   2023-02-07 19:07:45 +0200
15796
15797    xz: Improve the comment about start_time in mytime.c.
15798
15799    start_time is relative to an arbitary point in time, it's not
15800    time of day, so using it for anything else than time differences
15801    wouldn't make sense.
15802
15803 src/xz/mytime.c | 15 ++++++++++-----
15804 1 file changed, 10 insertions(+), 5 deletions(-)
15805
15806commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56
15807Author: Jia Tan <jiat0218@gmail.com>
15808Date:   2023-02-04 21:06:35 +0800
15809
15810    Build: Adjust CMake version search regex.
15811
15812    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
15813    macros do not need to be on consecutive lines in version.h. They can be
15814    separated by more whitespace, comments, or even other content, as long
15815    as they appear in the proper order (major, minor, patch).
15816
15817 CMakeLists.txt | 2 ++
15818 1 file changed, 2 insertions(+)
15819
15820commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac
15821Author: Jia Tan <jiat0218@gmail.com>
15822Date:   2023-02-04 12:01:23 +0800
15823
15824    xz: Add a comment clarifying the use of start_time in mytime.c.
15825
15826 src/xz/mytime.c | 5 +++++
15827 1 file changed, 5 insertions(+)
15828
15829commit 912af91b10a18fb9bb3167247ecaaefca8248ee9
15830Author: Jia Tan <jiat0218@gmail.com>
15831Date:   2023-01-26 09:50:21 +0800
15832
15833    liblzma: Improve documentation for version.h.
15834
15835    Specified parameter and return values for API functions and documented
15836    a few more of the macros.
15837
15838 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
15839 1 file changed, 22 insertions(+), 7 deletions(-)
15840
15841commit 850adec171203cd22b57d016084d713f72ae5307
15842Author: Jia Tan <jiat0218@gmail.com>
15843Date:   2023-02-03 22:52:55 +0800
15844
15845    Docs: Omit SIGTSTP not handled from TODO.
15846
15847 TODO | 4 ----
15848 1 file changed, 4 deletions(-)
15849
15850commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3
15851Author: Jia Tan <jiat0218@gmail.com>
15852Date:   2023-02-03 00:33:32 +0800
15853
15854    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
15855
15856    The bug is only a problem in applications that do not properly terminate
15857    the filters[] array with LZMA_VLI_UNKNOWN or have more than
15858    LZMA_FILTERS_MAX filters. This bug does not affect xz.
15859
15860 src/liblzma/common/string_conversion.c | 7 +++++++
15861 1 file changed, 7 insertions(+)
15862
15863commit e01f01b9af1c074463b92694a16ecc16a31907c0
15864Author: Jia Tan <jiat0218@gmail.com>
15865Date:   2023-02-03 00:32:47 +0800
15866
15867    Tests: Create test_filter_str.c.
15868
15869    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
15870    lzma_str_list_filters() API functions.
15871
15872 CMakeLists.txt          |   1 +
15873 tests/Makefile.am       |   2 +
15874 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
15875 3 files changed, 596 insertions(+)
15876
15877commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26
15878Author: Jia Tan <jiat0218@gmail.com>
15879Date:   2023-01-22 08:49:00 +0800
15880
15881    liblzma: Fix typos in comments in string_conversion.c.
15882
15883 src/liblzma/common/string_conversion.c | 4 ++--
15884 1 file changed, 2 insertions(+), 2 deletions(-)
15885
15886commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6
15887Author: Jia Tan <jiat0218@gmail.com>
15888Date:   2023-02-03 00:20:20 +0800
15889
15890    liblzma: Clarify block encoder and decoder documentation.
15891
15892    Added a few sentences to the description for lzma_block_encoder() and
15893    lzma_block_decoder() to highlight that the Block Header must be coded
15894    before calling these functions.
15895
15896 src/liblzma/api/lzma/block.h | 15 +++++++++++----
15897 1 file changed, 11 insertions(+), 4 deletions(-)
15898
15899commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f
15900Author: Jia Tan <jiat0218@gmail.com>
15901Date:   2023-02-03 00:12:24 +0800
15902
15903    Update lzma_block documentation for lzma_block_uncomp_encode().
15904
15905 src/liblzma/api/lzma/block.h | 3 +++
15906 1 file changed, 3 insertions(+)
15907
15908commit 504cf4af895fd45aad0c56eb3b49d90acd54465b
15909Author: Jia Tan <jiat0218@gmail.com>
15910Date:   2023-02-03 00:11:37 +0800
15911
15912    liblzma: Minor edits to lzma_block header_size documentation.
15913
15914 src/liblzma/api/lzma/block.h | 3 ++-
15915 1 file changed, 2 insertions(+), 1 deletion(-)
15916
15917commit 115b720fb521f99aa832d06b2c12b7f8c6c50680
15918Author: Jia Tan <jiat0218@gmail.com>
15919Date:   2023-02-03 00:11:07 +0800
15920
15921    liblzma: Enumerate functions that read version in lzma_block.
15922
15923 src/liblzma/api/lzma/block.h | 13 +++++++++++--
15924 1 file changed, 11 insertions(+), 2 deletions(-)
15925
15926commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1
15927Author: Jia Tan <jiat0218@gmail.com>
15928Date:   2023-02-03 00:10:34 +0800
15929
15930    liblzma: Clarify comment in block.h.
15931
15932 src/liblzma/api/lzma/block.h | 3 ++-
15933 1 file changed, 2 insertions(+), 1 deletion(-)
15934
15935commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8
15936Author: Jia Tan <jiat0218@gmail.com>
15937Date:   2023-02-03 00:07:23 +0800
15938
15939    liblzma: Improve documentation for block.h.
15940
15941    Standardizing each function to always specify params and return values.
15942    Output pointer parameters are also marked with doxygen style [out] to
15943    make it clear. Any note sections were also moved above the parameter and
15944    return sections for consistency.
15945
15946 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
15947 1 file changed, 75 insertions(+), 21 deletions(-)
15948
15949commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3
15950Author: Jia Tan <jiat0218@gmail.com>
15951Date:   2023-02-01 23:38:30 +0800
15952
15953    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
15954
15955    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
15956    about the treatment for filters than cannot be used with .xz format
15957    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
15958    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
15959
15960 src/liblzma/api/lzma/filter.h | 5 +++--
15961 1 file changed, 3 insertions(+), 2 deletions(-)
15962
15963commit 315c64c7e18acc59a745b68148188a73e998252b
15964Author: Jia Tan <jiat0218@gmail.com>
15965Date:   2023-02-01 21:43:33 +0800
15966
15967    CI: Update .gitignore for artifacts directory in build-aux.
15968
15969    The workflow action for our CI pipeline can only reference artifacts in
15970    the source directory, so we should ignore these files if the ci_build.sh
15971    is run locally.
15972
15973 .gitignore | 1 +
15974 1 file changed, 1 insertion(+)
15975
15976commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f
15977Author: Jia Tan <jiat0218@gmail.com>
15978Date:   2023-02-01 21:36:46 +0800
15979
15980    CI: Add quotes around variables in a few places.
15981
15982 build-aux/ci_build.sh | 6 +++---
15983 1 file changed, 3 insertions(+), 3 deletions(-)
15984
15985commit 3a401b0e0c7a2658af7801dd0690256ef24149e0
15986Author: Jia Tan <jiat0218@gmail.com>
15987Date:   2023-02-01 21:36:22 +0800
15988
15989    CI: Upload test logs as artifacts if a test fails.
15990
15991 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++--------------
15992 build-aux/ci_build.sh    | 31 ++++++++++++++++++++-----
15993 2 files changed, 68 insertions(+), 23 deletions(-)
15994
15995commit 610dde15a88f12cc540424eb3eb3ed61f3876f74
15996Author: Lasse Collin <lasse.collin@tukaani.org>
15997Date:   2023-01-27 20:02:49 +0200
15998
15999    xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
16000
16001    mythread.h and thus liblzma already does it.
16002
16003 src/xz/mytime.c  | 11 ++++++++---
16004 src/xz/private.h |  3 +--
16005 2 files changed, 9 insertions(+), 5 deletions(-)
16006
16007commit 2e02877288f6576cd4595e9ac7684f867cd47d68
16008Author: Lasse Collin <lasse.collin@tukaani.org>
16009Date:   2023-01-27 19:41:19 +0200
16010
16011    po4a/po4a.conf: Sort the language identifiers in alphabetical order.
16012
16013 po4a/po4a.conf | 2 +-
16014 1 file changed, 1 insertion(+), 1 deletion(-)
16015
16016commit ff592c616eda274215b485cf1b8d34f060c9f3be
16017Author: Lasse Collin <lasse.collin@tukaani.org>
16018Date:   2023-01-26 18:29:17 +0200
16019
16020    xz: Add SIGTSTP handler for progress indicator time keeping.
16021
16022    This way, if xz is stopped the elapsed time and estimated time
16023    remaining won't get confused by the amount of time spent in
16024    the stopped state.
16025
16026    This raises SIGSTOP. It's not clear to me if this is the correct way.
16027    POSIX and glibc docs say that SIGTSTP shouldn't stop the process if
16028    it is orphaned but this commit doesn't attempt to handle that.
16029
16030    Search for SIGTSTP in section 2.4.3:
16031
16032    https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
16033
16034 src/xz/mytime.c  | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
16035 src/xz/mytime.h  |  6 ++++++
16036 src/xz/private.h | 12 ++++++++++++
16037 src/xz/signals.c | 17 ++++++++++++++++-
16038 4 files changed, 89 insertions(+), 2 deletions(-)
16039
16040commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76
16041Author: Jia Tan <jiat0218@gmail.com>
16042Date:   2023-01-27 20:14:51 +0800
16043
16044    Translations: Add Brazilian Portuguese translation of man pages.
16045
16046    Thanks to Rafael Fontenelle.
16047
16048 po4a/po4a.conf |    2 +-
16049 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
16050 2 files changed, 3678 insertions(+), 1 deletion(-)
16051
16052commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc
16053Author: Lasse Collin <lasse.collin@tukaani.org>
16054Date:   2023-01-26 17:51:06 +0200
16055
16056    Build: Avoid different quoting style in --enable-doxygen doc.
16057
16058 configure.ac | 10 +++++-----
16059 1 file changed, 5 insertions(+), 5 deletions(-)
16060
16061commit af5a4bd5afc089d9697756dded38feafaa987ae4
16062Author: Lasse Collin <lasse.collin@tukaani.org>
16063Date:   2023-01-26 17:39:46 +0200
16064
16065    tuklib_physmem: Check for __has_warning before GCC version.
16066
16067    Clang can be configured to fake a too high GCC version so
16068    this way it's more robust.
16069
16070 src/common/tuklib_physmem.c | 6 +++---
16071 1 file changed, 3 insertions(+), 3 deletions(-)
16072
16073commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4
16074Author: Jia Tan <jiat0218@gmail.com>
16075Date:   2023-01-24 20:48:50 +0800
16076
16077    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
16078
16079    The previous documentation for lzma_str_to_filters() was technically
16080    correct, but misleading. lzma_str_to_filters() returns NULL on success,
16081    which is in practice always defined to 0. This is the same value as
16082    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
16083    be more clear.
16084
16085 src/liblzma/api/lzma/filter.h | 2 +-
16086 1 file changed, 1 insertion(+), 1 deletion(-)
16087
16088commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2
16089Author: Lasse Collin <lasse.collin@tukaani.org>
16090Date:   2023-01-23 23:44:58 +0200
16091
16092    Revert "tuklib_common: Define __has_warning if it is not defined."
16093
16094    This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766.
16095
16096    Macros in the reserved namespace (_foo or __foo) shouldn't be #defined
16097    without a very good reason. Here the alternative would have been
16098    to #define tuklib_has_warning(str) to an approriate value.
16099
16100    Also the tuklib_* files should stay namespace clean if possible.
16101
16102 src/common/tuklib_common.h | 7 -------
16103 1 file changed, 7 deletions(-)
16104
16105commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575
16106Author: Lasse Collin <lasse.collin@tukaani.org>
16107Date:   2023-01-23 23:38:34 +0200
16108
16109    tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows.
16110
16111    __has_warning and other __has_foo macros are meant to become
16112    compiler-agnostic so it's not good to check for __clang__ with it.
16113
16114    This also relied on tuklib_common.h for #defining __has_warning
16115    which was confusing as #defining reserved macros is generally
16116    not a good idea.
16117
16118 src/common/tuklib_physmem.c | 17 +++++++++++++----
16119 1 file changed, 13 insertions(+), 4 deletions(-)
16120
16121commit 683a3c7e2fcd922200c31078e5c9dd1348e90941
16122Author: Lasse Collin <lasse.collin@tukaani.org>
16123Date:   2023-01-24 00:05:38 +0200
16124
16125    xz: Flip the return value of suffix_is_set to match the documentation.
16126
16127    Also edit style to match the existing coding style in the project.
16128
16129 src/xz/args.c   | 6 +++---
16130 src/xz/suffix.c | 2 +-
16131 src/xz/suffix.h | 1 +
16132 3 files changed, 5 insertions(+), 4 deletions(-)
16133
16134commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0
16135Author: Jia Tan <jiat0218@gmail.com>
16136Date:   2023-01-07 21:55:06 +0800
16137
16138    xz: Refactor duplicated check for custom suffix when using --format=raw
16139
16140 src/xz/args.c   |  8 ++++++++
16141 src/xz/suffix.c | 26 ++++++++------------------
16142 src/xz/suffix.h |  7 +++++++
16143 3 files changed, 23 insertions(+), 18 deletions(-)
16144
16145commit 9663141274e01592a281a7f2df5d7a31a1dac8bf
16146Author: Jia Tan <jiat0218@gmail.com>
16147Date:   2023-01-20 21:53:14 +0800
16148
16149    liblzma: Set documentation on all reserved fields to private.
16150
16151    This prevents the reserved fields from being part of the generated
16152    Doxygen documentation.
16153
16154 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
16155 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
16156 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
16157 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
16158 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
16159 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
16160 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
16161 7 files changed, 173 insertions(+)
16162
16163commit 6327a045f34d48fc5afc58ba0d32a82c94403049
16164Author: Jia Tan <jiat0218@gmail.com>
16165Date:   2022-12-20 21:39:59 +0800
16166
16167    Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17.
16168
16169    A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released
16170    in 2019, so this should be compatible with resonable modern distros.
16171    The purpose of Doxygen these days is for docs on the website, so it
16172    doesn't necessarily have to work for everyone. Just when the maintainers
16173    want to update the docs.
16174
16175 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++---------------
16176 1 file changed, 1893 insertions(+), 630 deletions(-)
16177
16178commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad
16179Author: Jia Tan <jiat0218@gmail.com>
16180Date:   2023-01-03 20:37:30 +0800
16181
16182    Doxygen: Make Doxygen only produce liblzma API documentation by default.
16183
16184    Doxygen is now configurable in autotools only with
16185    --enable-doxygen=[api|all]. The default is "api", which will only
16186    generate HTML output for liblzma API functions. The LaTex documentation
16187    output was also disabled.
16188
16189 Doxyfile.in  | 18 +++++++++---------
16190 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
16191 2 files changed, 48 insertions(+), 9 deletions(-)
16192
16193commit 6fcf4671b6047113c583a0919fc850987a4ec5f4
16194Author: Jia Tan <jiat0218@gmail.com>
16195Date:   2022-12-21 23:59:43 +0800
16196
16197    liblzma: Highlight liblzma API headers should not be included directly.
16198
16199    This improves the generated Doxygen HTML files to better highlight
16200    how to properly use the liblzma API header files.
16201
16202 src/liblzma/api/lzma/base.h         | 5 +++--
16203 src/liblzma/api/lzma/bcj.h          | 5 +++--
16204 src/liblzma/api/lzma/block.h        | 5 +++--
16205 src/liblzma/api/lzma/check.h        | 5 +++--
16206 src/liblzma/api/lzma/container.h    | 5 +++--
16207 src/liblzma/api/lzma/delta.h        | 5 +++--
16208 src/liblzma/api/lzma/filter.h       | 5 +++--
16209 src/liblzma/api/lzma/hardware.h     | 5 +++--
16210 src/liblzma/api/lzma/index.h        | 5 +++--
16211 src/liblzma/api/lzma/index_hash.h   | 5 +++--
16212 src/liblzma/api/lzma/lzma12.h       | 5 +++--
16213 src/liblzma/api/lzma/stream_flags.h | 5 +++--
16214 src/liblzma/api/lzma/version.h      | 5 +++--
16215 src/liblzma/api/lzma/vli.h          | 5 +++--
16216 14 files changed, 42 insertions(+), 28 deletions(-)
16217
16218commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4
16219Author: Jia Tan <jiat0218@gmail.com>
16220Date:   2023-01-19 20:35:09 +0800
16221
16222    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
16223
16224    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
16225    to retrieve a function address. The proper way to do this is to cast the
16226    return value to the type of function pointer retrieved. Unfortunately,
16227    this causes a cast-function-type warning, so the best solution is to
16228    simply ignore the warning.
16229
16230 src/common/tuklib_physmem.c | 9 +++++++++
16231 1 file changed, 9 insertions(+)
16232
16233commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766
16234Author: Jia Tan <jiat0218@gmail.com>
16235Date:   2023-01-19 20:32:40 +0800
16236
16237    tuklib_common: Define __has_warning if it is not defined.
16238
16239    clang supports the __has_warning macro to determine if the version of
16240    clang compiling the code supports a given warning. If we do not define
16241    it for other compilers, it may cause a preprocessor error.
16242
16243 src/common/tuklib_common.h | 7 +++++++
16244 1 file changed, 7 insertions(+)
16245
16246commit b2ba1a489df451cdcd93b2334e319dd06778de19
16247Author: Jia Tan <jiat0218@gmail.com>
16248Date:   2023-01-18 22:11:05 +0800
16249
16250    CI: Reorder 32-bit build first for Linux autotool builds.
16251
16252    The 32-bit build needs to be first so the configure cache only needs to
16253    be reset one time. The 32-bit build sets the CFLAGS env variable, so any
16254    build using that flag after will fail unless the cache is reset.
16255
16256 .github/workflows/ci.yml | 17 ++++++++++++-----
16257 1 file changed, 12 insertions(+), 5 deletions(-)
16258
16259commit dd1c1135741057c91e8d018be9ec4d43968b0e64
16260Author: Jia Tan <jiat0218@gmail.com>
16261Date:   2023-01-18 21:51:43 +0800
16262
16263    CI: Enable --config-cache in autotool builds.
16264
16265    If CFLAGS are set in a build, the cache must be cleared with
16266    "make distclean", or by deleting the cache file.
16267
16268 build-aux/ci_build.sh | 2 +-
16269 1 file changed, 1 insertion(+), 1 deletion(-)
16270
16271commit d3e11477053764c003eec2daa5198c747d70ff69
16272Author: Jia Tan <jiat0218@gmail.com>
16273Date:   2023-01-16 21:35:45 +0800
16274
16275    xz: Add missing comment for coder_set_compression_settings()
16276
16277 src/xz/coder.h | 3 ++-
16278 1 file changed, 2 insertions(+), 1 deletion(-)
16279
16280commit 123255b6ed15f4428b2aa92e4962015a5362f6bf
16281Author: Jia Tan <jiat0218@gmail.com>
16282Date:   2023-01-16 20:55:10 +0800
16283
16284    xz: Do not set compression settings with raw format in list mode.
16285
16286    Calling coder_set_compression_settings() in list mode with verbose mode
16287    on caused the filter chain and memory requirements to print. This was
16288    unnecessary since the command results in an error and not consistent
16289    with other formats like lzma and alone.
16290
16291 src/xz/args.c | 3 ++-
16292 1 file changed, 2 insertions(+), 1 deletion(-)
16293
16294commit 571919c47b9ff5171ede84378620ed0a9aeb98c0
16295Author: Jia Tan <jiat0218@gmail.com>
16296Date:   2023-01-13 20:37:06 +0800
16297
16298    Translations: Update the Brazilian Portuguese translation.
16299
16300 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
16301 1 file changed, 344 insertions(+), 259 deletions(-)
16302
16303commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf
16304Author: Jia Tan <jiat0218@gmail.com>
16305Date:   2023-01-12 23:43:06 +0800
16306
16307    CI: Disable shared and nls from various jobs in autotool runners.
16308
16309    Disabling shared library generation and linking should help speed up the
16310    runners. The shared library is still being tested in the 32 bit build
16311    and the full feature.
16312
16313    Disabling nls is to check for any unexpected warnings or errors.
16314
16315 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------
16316 1 file changed, 28 insertions(+), 28 deletions(-)
16317
16318commit 58a052198a7bcaf6e958f87fad72e69e19a2579b
16319Author: Jia Tan <jiat0218@gmail.com>
16320Date:   2023-01-12 23:39:19 +0800
16321
16322    CI: Reorder the 32-bit job in the Ubuntu runner.
16323
16324    Run the 32 bit job sooner since this is a more interesting test than
16325    some of the later jobs.
16326
16327 .github/workflows/ci.yml | 10 +++++-----
16328 1 file changed, 5 insertions(+), 5 deletions(-)
16329
16330commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797
16331Author: Jia Tan <jiat0218@gmail.com>
16332Date:   2023-01-12 23:09:03 +0800
16333
16334    CI: Allow disabling Native Language Support.
16335
16336 build-aux/ci_build.sh | 9 ++++++++-
16337 1 file changed, 8 insertions(+), 1 deletion(-)
16338
16339commit 0dec634e705b5bf89a37c5d62d71e8511d480058
16340Author: Jia Tan <jiat0218@gmail.com>
16341Date:   2023-01-12 23:02:20 +0800
16342
16343    CI: Only run autogen.sh if it has not already run.
16344
16345 build-aux/ci_build.sh | 11 ++++++++---
16346 1 file changed, 8 insertions(+), 3 deletions(-)
16347
16348commit 32287dc8def94df4546e903495d14c132bd54cc4
16349Author: Jia Tan <jiat0218@gmail.com>
16350Date:   2023-01-12 22:58:36 +0800
16351
16352    CI: Allow disabling shared library in autotools builds.
16353
16354 build-aux/ci_build.sh | 9 ++++++++-
16355 1 file changed, 8 insertions(+), 1 deletion(-)
16356
16357commit 77d1ebcc99ddd82a300d1838f608150221931dcd
16358Author: Jia Tan <jiat0218@gmail.com>
16359Date:   2023-01-12 22:44:18 +0800
16360
16361    CI: Improve Usage readability and add -h option.
16362
16363 build-aux/ci_build.sh | 15 +++++++++++++--
16364 1 file changed, 13 insertions(+), 2 deletions(-)
16365
16366commit a8bb8358d10b059274f3cf993d9b8f490bafb268
16367Author: Lasse Collin <lasse.collin@tukaani.org>
16368Date:   2023-01-12 13:04:05 +0200
16369
16370    Build: Omit -Wmissing-noreturn from the default warnings.
16371
16372    It's not that important. It can be annoying in builds that
16373    disable many features since in those cases the tests programs
16374    will correctly trigger this warning with Clang.
16375
16376 configure.ac | 1 -
16377 1 file changed, 1 deletion(-)
16378
16379commit 52dc033d0bde0d19e3912303c6c74bae559d6498
16380Author: Lasse Collin <lasse.collin@tukaani.org>
16381Date:   2023-01-12 06:05:58 +0200
16382
16383    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
16384
16385    It makes no difference here as the return value fits into an int
16386    too and it then gets ignored but this looks better.
16387
16388 src/xz/file_io.c | 2 +-
16389 1 file changed, 1 insertion(+), 1 deletion(-)
16390
16391commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3
16392Author: Lasse Collin <lasse.collin@tukaani.org>
16393Date:   2023-01-12 06:01:12 +0200
16394
16395    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
16396
16397 src/common/tuklib_mbstr_fw.c | 2 +-
16398 src/xz/list.c                | 4 ++--
16399 2 files changed, 3 insertions(+), 3 deletions(-)
16400
16401commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339
16402Author: Lasse Collin <lasse.collin@tukaani.org>
16403Date:   2023-01-12 05:38:48 +0200
16404
16405    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
16406
16407    It doesn't warn on a 64-bit system because truncating
16408    a ptrdiff_t (signed long) to uint32_t is diagnosed under
16409    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
16410
16411 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
16412 1 file changed, 4 insertions(+), 3 deletions(-)
16413
16414commit 37fbdfb7263522c11c7ad2685413d6295532581d
16415Author: Lasse Collin <lasse.collin@tukaani.org>
16416Date:   2023-01-12 04:46:45 +0200
16417
16418    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
16419
16420 src/common/mythread.h | 4 ++--
16421 1 file changed, 2 insertions(+), 2 deletions(-)
16422
16423commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008
16424Author: Lasse Collin <lasse.collin@tukaani.org>
16425Date:   2023-01-12 04:17:24 +0200
16426
16427    Build: Make configure add more warning flags for GCC and Clang.
16428
16429    -Wstrict-aliasing was removed from the list since it is enabled
16430    by -Wall already.
16431
16432    A normal build is clean with these on GNU/Linux x86-64 with
16433    GCC 12.2.0 and Clang 14.0.6.
16434
16435 configure.ac | 36 +++++++++++++++++++++++++++++++-----
16436 1 file changed, 31 insertions(+), 5 deletions(-)
16437
16438commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c
16439Author: Lasse Collin <lasse.collin@tukaani.org>
16440Date:   2023-01-12 04:14:18 +0200
16441
16442    Tests: Fix warnings from clang --Wassign-enum.
16443
16444    Explicitly casting the integer to lzma_check silences the warning.
16445    Since such an invalid value is needed in multiple tests, a constant
16446    INVALID_LZMA_CHECK_ID was added to tests.h.
16447
16448    The use of 0x1000 for lzma_block.check wasn't optimal as if
16449    the underlying type is a char then 0x1000 will be truncated to 0.
16450    However, in these test cases the value is ignored, thus even with
16451    such truncation the test would have passed.
16452
16453 tests/test_block_header.c | 6 +++---
16454 tests/test_check.c        | 2 +-
16455 tests/test_stream_flags.c | 8 ++++----
16456 tests/tests.h             | 9 +++++++++
16457 4 files changed, 17 insertions(+), 8 deletions(-)
16458
16459commit 49245bb31e215ad455a1ab85e4ed6783152dc522
16460Author: Lasse Collin <lasse.collin@tukaani.org>
16461Date:   2023-01-12 03:51:07 +0200
16462
16463    Tests: Silence warnings from -Wsign-conversion.
16464
16465    Note that assigning an unsigned int to lzma_check doesn't warn
16466    on GNU/Linux x86-64 since the enum type is unsigned on that
16467    platform. The enum can be signed on some other platform though
16468    so it's best to use enumeration type lzma_check in these situations.
16469
16470 tests/test_check.c        |  6 +++---
16471 tests/test_stream_flags.c | 10 +++++-----
16472 2 files changed, 8 insertions(+), 8 deletions(-)
16473
16474commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571
16475Author: Lasse Collin <lasse.collin@tukaani.org>
16476Date:   2023-01-12 03:19:59 +0200
16477
16478    liblzma: Silence warnings from clang -Wconditional-uninitialized.
16479
16480    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
16481    The actual initialization of the variables is done inside
16482    mythread_sync() macro. Clang doesn't seem to see that
16483    the initialization code inside the macro is always executed.
16484
16485 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
16486 src/liblzma/common/stream_encoder_mt.c | 2 +-
16487 2 files changed, 6 insertions(+), 4 deletions(-)
16488
16489commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6
16490Author: Lasse Collin <lasse.collin@tukaani.org>
16491Date:   2023-01-12 03:11:40 +0200
16492
16493    Fix warnings from clang -Wdocumentation.
16494
16495 src/liblzma/check/check.h      | 4 ----
16496 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
16497 src/xz/options.c               | 4 ++--
16498 3 files changed, 4 insertions(+), 8 deletions(-)
16499
16500commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba
16501Author: Lasse Collin <lasse.collin@tukaani.org>
16502Date:   2023-01-12 03:04:28 +0200
16503
16504    Tests: test_lzip_decoder: Remove trailing white-space.
16505
16506 tests/test_lzip_decoder.c | 4 ++--
16507 1 file changed, 2 insertions(+), 2 deletions(-)
16508
16509commit c0f8d6782f29e219fd496dd23f6a033270509d5c
16510Author: Lasse Collin <lasse.collin@tukaani.org>
16511Date:   2023-01-12 03:03:55 +0200
16512
16513    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
16514
16515 tests/test_lzip_decoder.c | 13 +++++++------
16516 1 file changed, 7 insertions(+), 6 deletions(-)
16517
16518commit 62efd48a825e8f439e84c85e165d8774ddc68fd2
16519Author: Jia Tan <jiat0218@gmail.com>
16520Date:   2023-01-11 23:58:16 +0800
16521
16522    Add NEWS for 5.4.1.
16523
16524 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
16525 1 file changed, 70 insertions(+)
16526
16527commit d1561c47ec8cd3844a785d3741dc932f9b9c5790
16528Author: Jia Tan <jiat0218@gmail.com>
16529Date:   2023-01-11 22:46:48 +0800
16530
16531    xz: Fix warning -Wformat-nonliteral on clang in message.c.
16532
16533    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
16534    allow a non-literal format string as long as the function takes its
16535    format arguments as a va_list.
16536
16537 src/xz/message.c | 9 +++++++++
16538 1 file changed, 9 insertions(+)
16539
16540commit 8c0f115cc489331c48df77beca92fe378039d919
16541Author: Jia Tan <jiat0218@gmail.com>
16542Date:   2023-01-11 20:58:31 +0800
16543
16544    Tests: Fix test_filter_flags copy/paste error.
16545
16546 tests/test_filter_flags.c | 4 ++--
16547 1 file changed, 2 insertions(+), 2 deletions(-)
16548
16549commit 25035813d1d596fde692addc33e7f715f1fe55eb
16550Author: Jia Tan <jiat0218@gmail.com>
16551Date:   2023-01-11 20:42:29 +0800
16552
16553    Tests: Fix type-limits warning in test_filter_flags.
16554
16555    This only occurs in test_filter_flags when the BCJ filters are not
16556    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
16557    type-limits warning with the loop variable since an unsigned number will
16558    always be >= 0.
16559
16560 tests/test_filter_flags.c | 13 ++++++++++---
16561 1 file changed, 10 insertions(+), 3 deletions(-)
16562
16563commit 0b8fa310cf56fec55663f62340e49e8e1441594f
16564Author: Lasse Collin <lasse.collin@tukaani.org>
16565Date:   2023-01-10 22:14:03 +0200
16566
16567    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
16568
16569    This affects only 32-bit x86 builds. x86-64 is OK as is.
16570
16571    I still cannot easily test this myself. The reporter has tested
16572    this and it passes the tests included in the CMake build and
16573    performance is good: raw CRC64 is 2-3 times faster than the
16574    C version of the slice-by-four method. (Note that liblzma doesn't
16575    include a MSVC-compatible version of the 32-bit x86 assembly code
16576    for the slice-by-four method.)
16577
16578    Thanks to Iouri Kharon for figuring out a fix, testing, and
16579    benchmarking.
16580
16581 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
16582 1 file changed, 18 insertions(+)
16583
16584commit 765354b50c2886fc0d294d6be3b207f7ae2ada70
16585Author: Jia Tan <jiat0218@gmail.com>
16586Date:   2023-01-11 01:18:50 +0800
16587
16588    Tests: Fix unused function warning in test_block_header.
16589
16590    One of the global arrays of filters was only used in a test that
16591    required both encoders and decoders to be configured in the build.
16592
16593 tests/test_block_header.c | 4 ++++
16594 1 file changed, 4 insertions(+)
16595
16596commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa
16597Author: Jia Tan <jiat0218@gmail.com>
16598Date:   2023-01-11 01:08:03 +0800
16599
16600    Tests: Fix unused function warning in test_index_hash.
16601
16602    test_index_hash does not use fill_index_hash() unless both encoders
16603    and decoders are configured in the build.
16604
16605 tests/test_index_hash.c | 4 +---
16606 1 file changed, 1 insertion(+), 3 deletions(-)
16607
16608commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6
16609Author: Jia Tan <jiat0218@gmail.com>
16610Date:   2023-01-11 00:54:45 +0800
16611
16612    CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner.
16613
16614    If all goes well, Mac autotools and Linux and Mac CMake will be added
16615    later for 32-bit builds.
16616
16617 .github/workflows/ci.yml | 7 ++++++-
16618 1 file changed, 6 insertions(+), 1 deletion(-)
16619
16620commit 923eb689a4b863b6cca8df6360d4962aae994edf
16621Author: Jia Tan <jiat0218@gmail.com>
16622Date:   2023-01-11 00:51:01 +0800
16623
16624    CI/CD: Enables warnings as errors in autotool build.
16625
16626    This will help us catch warnings and potential bugs in builds that are
16627    not often tested by us.
16628
16629 build-aux/ci_build.sh | 2 +-
16630 1 file changed, 1 insertion(+), 1 deletion(-)
16631
16632commit feae5528a30c006b6e2f96a95116e20b983703fc
16633Author: Jia Tan <jiat0218@gmail.com>
16634Date:   2023-01-11 00:48:35 +0800
16635
16636    CI/CD: Add -f argument to set CFLAGS in ci_build.sh.
16637
16638    For now, the suggested option is for -m32 only, but this can be updated
16639    later if other flags are deemed useful.
16640
16641 build-aux/ci_build.sh | 8 ++++++--
16642 1 file changed, 6 insertions(+), 2 deletions(-)
16643
16644commit cfabb62a4874c146e7d6f30445637602545bc054
16645Author: Lasse Collin <lasse.collin@tukaani.org>
16646Date:   2023-01-10 12:47:16 +0200
16647
16648    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
16649
16650    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
16651
16652    It was reported that it wasn't a good enough fix and MSVC
16653    still produced (different kind of) bad code when building
16654    for 32-bit x86 if optimizations are enabled.
16655
16656    Thanks to Iouri Kharon.
16657
16658 src/liblzma/check/crc64_fast.c | 6 ------
16659 1 file changed, 6 deletions(-)
16660
16661commit 0b64215170dd3562f207ef26f794755bcd600526
16662Author: Lasse Collin <lasse.collin@tukaani.org>
16663Date:   2023-01-10 11:56:11 +0200
16664
16665    sysdefs.h: Don't include strings.h anymore.
16666
16667    On some platforms src/xz/suffix.c may need <strings.h> for
16668    strcasecmp() but suffix.c includes the header when it needs it.
16669
16670    Unless there is an old system that otherwise supports enough C99
16671    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
16672    there should be no need to include <strings.h> in sysdefs.h.
16673
16674 src/common/sysdefs.h | 6 ------
16675 1 file changed, 6 deletions(-)
16676
16677commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
16678Author: Lasse Collin <lasse.collin@tukaani.org>
16679Date:   2023-01-10 11:23:41 +0200
16680
16681    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
16682
16683    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
16684    Of these, strcasecmp() is used on some platforms in suffix.c.
16685    Nothing else in the project needs <strings.h> (at least if
16686    building on a modern system).
16687
16688    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
16689    defined and suffix.c relied on this.
16690
16691    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
16692    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
16693    is also in <string.h> in DJGPP.
16694
16695 src/xz/suffix.c | 3 +++
16696 1 file changed, 3 insertions(+)
16697
16698commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
16699Author: Lasse Collin <lasse.collin@tukaani.org>
16700Date:   2023-01-10 10:05:13 +0200
16701
16702    sysdefs.h: Fix a comment.
16703
16704 src/common/sysdefs.h | 2 +-
16705 1 file changed, 1 insertion(+), 1 deletion(-)
16706
16707commit 194a5fab69277d9e804a6113b5f676b8666b3a61
16708Author: Lasse Collin <lasse.collin@tukaani.org>
16709Date:   2023-01-10 10:04:06 +0200
16710
16711    sysdefs.h: Don't include memory.h anymore even if it were available.
16712
16713    It quite probably was never needed, that is, any system where memory.h
16714    was required likely couldn't compile XZ Utils for other reasons anyway.
16715
16716    XZ Utils 5.2.6 and later source packages were generated using
16717    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
16718    being removed is no longer used anyway.
16719
16720 src/common/sysdefs.h | 8 ++------
16721 1 file changed, 2 insertions(+), 6 deletions(-)
16722
16723commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0
16724Author: Lasse Collin <lasse.collin@tukaani.org>
16725Date:   2023-01-10 08:29:32 +0200
16726
16727    CMake: Fix appending to CMAKE_RC_FLAGS.
16728
16729    It's a string, not a list. It only worked when the variable was empty.
16730
16731    Thanks to Iouri Kharon.
16732
16733 CMakeLists.txt | 2 +-
16734 1 file changed, 1 insertion(+), 1 deletion(-)
16735
16736commit 6e652ceb18c615c578c869db300fa0756788b4e0
16737Author: Lasse Collin <lasse.collin@tukaani.org>
16738Date:   2023-01-10 00:33:14 +0200
16739
16740    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
16741
16742 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
16743 1 file changed, 12 insertions(+), 7 deletions(-)
16744
16745commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47
16746Author: Lasse Collin <lasse.collin@tukaani.org>
16747Date:   2023-01-09 23:41:25 +0200
16748
16749    CMake: Fix windres issues again.
16750
16751    At least on some systems, GNU windres needs --use-temp-file
16752    in addition to the \x20 hack to avoid spaces in the command line
16753    argument. Hovever, that \x20 syntax is broken with llvm-windres
16754    version 15.0.0 (results in "XZx20Utils") but luckily it works
16755    with a regular space. Thus it is best to limit the workarounds
16756    to GNU toolchain on Windows.
16757
16758 CMakeLists.txt | 35 +++++++++++++++++++++++------------
16759 1 file changed, 23 insertions(+), 12 deletions(-)
16760
16761commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935
16762Author: Lasse Collin <lasse.collin@tukaani.org>
16763Date:   2023-01-06 22:53:38 +0200
16764
16765    Tests: test_filter_flags: Clean up minor issues.
16766
16767    Here are the list of the most significant issues addressed:
16768    - Avoid using internal common.h header. It's not good to copy the
16769    constants like this but common.h cannot be included for use outside
16770    of liblzma. This is the quickest thing to do that could be fixed later.
16771
16772    - Omit the INIT_FILTER macro. Initialization should be done with just
16773    regular designated initializers.
16774
16775    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
16776    Flags encoder and decoder don't validate the options thoroughly.
16777    257 is valid only for the x86 filter. This is a bit silly but
16778    not a significant problem in practice because the encoder and
16779    decoder initialization functions will catch bad alignment still.
16780    Perhaps this should be fixed but it's not urgent and doesn't need
16781    to be in 5.4.x.
16782
16783    - Various tweaks to comments such as filter id -> Filter ID
16784
16785 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
16786 1 file changed, 78 insertions(+), 75 deletions(-)
16787
16788commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865
16789Author: Jia Tan <jiat0218@gmail.com>
16790Date:   2022-12-29 23:33:33 +0800
16791
16792    Tests: Refactors existing filter flags tests.
16793
16794    Converts the existing filter flags tests into tuktests.
16795
16796 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
16797 1 file changed, 457 insertions(+), 198 deletions(-)
16798
16799commit 36edc65ab4cf10a131f239acbd423b4510ba52d5
16800Author: Lasse Collin <lasse.collin@tukaani.org>
16801Date:   2023-01-09 12:22:05 +0200
16802
16803    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
16804
16805    I haven't tested with MSVC myself and there doesn't seem to be
16806    information about the problem online, so I'm relying on the bug report.
16807
16808    Thanks to Iouri Kharon for the bug report and the patch.
16809
16810 src/liblzma/check/crc64_fast.c | 6 ++++++
16811 1 file changed, 6 insertions(+)
16812
16813commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d
16814Author: Lasse Collin <lasse.collin@tukaani.org>
16815Date:   2023-01-09 11:27:24 +0200
16816
16817    CMake: Fix a copypaste error in xzdec Windows resource file handling.
16818
16819    It was my mistake. Thanks to Iouri Kharon for the bug report.
16820
16821 CMakeLists.txt | 4 ++--
16822 1 file changed, 2 insertions(+), 2 deletions(-)
16823
16824commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848
16825Author: Lasse Collin <lasse.collin@tukaani.org>
16826Date:   2023-01-08 00:32:29 +0200
16827
16828    Tests: tuktest.h: Support tuktest_malloc(0).
16829
16830    It's not needed in XZ Utils at least for now. It's good to support
16831    it still because if such use is needed later, it wouldn't be
16832    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
16833
16834 tests/tuktest.h | 4 ++--
16835 1 file changed, 2 insertions(+), 2 deletions(-)
16836
16837commit 69d5d78c6904668eb09a131da86276beec3281f8
16838Author: Lasse Collin <lasse.collin@tukaani.org>
16839Date:   2023-01-08 00:24:23 +0200
16840
16841    Update THANKS.
16842
16843 THANKS | 1 +
16844 1 file changed, 1 insertion(+)
16845
16846commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
16847Author: Lasse Collin <lasse.collin@tukaani.org>
16848Date:   2023-01-07 21:57:11 +0200
16849
16850    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
16851
16852    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
16853    shouldn't affect this project.
16854
16855 CMakeLists.txt | 2 +-
16856 1 file changed, 1 insertion(+), 1 deletion(-)
16857
16858commit a890a637bee9193d5b690aefa9a59eba5b8532ae
16859Author: Lasse Collin <lasse.collin@tukaani.org>
16860Date:   2023-01-07 19:50:35 +0200
16861
16862    Update THANKS.
16863
16864 THANKS | 1 +
16865 1 file changed, 1 insertion(+)
16866
16867commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
16868Author: Lasse Collin <lasse.collin@tukaani.org>
16869Date:   2023-01-07 19:50:03 +0200
16870
16871    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
16872
16873    The command line tools cannot be built with MSVC for now but
16874    they can be built with MinGW-w64.
16875
16876    Thanks to Iouri Kharon for the bug report and the original patch.
16877
16878 CMakeLists.txt | 16 ++++++++++++++++
16879 1 file changed, 16 insertions(+)
16880
16881commit 443dfebced041adc88f10d824188eeef5b5821a9
16882Author: Lasse Collin <lasse.collin@tukaani.org>
16883Date:   2023-01-07 19:48:52 +0200
16884
16885    CMake/Windows: Add a workaround for windres from GNU binutils.
16886
16887    Thanks to Iouri Kharon for the bug report and the original patch.
16888
16889 CMakeLists.txt | 21 ++++++++++++++++++++-
16890 1 file changed, 20 insertions(+), 1 deletion(-)
16891
16892commit ceb805011747d04a915f3f39e4bed9eed151c634
16893Author: Lasse Collin <lasse.collin@tukaani.org>
16894Date:   2023-01-07 19:31:15 +0200
16895
16896    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
16897
16898    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
16899    disabled with VS2013.
16900
16901    Thanks to Iouri Kharon for the bug report.
16902
16903 CMakeLists.txt | 3 ++-
16904 configure.ac   | 8 ++++++--
16905 2 files changed, 8 insertions(+), 3 deletions(-)
16906
16907commit 8d372bd94066b1a5b0570b2550f83c2868486adf
16908Author: Jia Tan <jiat0218@gmail.com>
16909Date:   2023-01-07 21:05:15 +0800
16910
16911    CI/CD: Split CMake Linux and MacOS build phase to build and test.
16912
16913    The phase split was only done for Autotools before, so should also
16914    apply to CMake.
16915
16916 .github/workflows/ci.yml | 8 ++++++--
16917 1 file changed, 6 insertions(+), 2 deletions(-)
16918
16919commit 747c7f2b34bd498f6702c6875500a26b06201772
16920Author: Jia Tan <jiat0218@gmail.com>
16921Date:   2023-01-07 11:16:55 +0800
16922
16923    CI/CD: Reduce job runners to 4 instead of using matrix strategy.
16924
16925    The old version used too many runners that resulted in unnecessary
16926    dependency downloads. Now, the runners are reused for the different
16927    configurations for each OS and build system.
16928
16929 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------
16930 1 file changed, 83 insertions(+), 12 deletions(-)
16931
16932commit 4de35fd6b58d46fc887c78faf163f6a37b790c45
16933Author: Jia Tan <jiat0218@gmail.com>
16934Date:   2023-01-07 10:07:20 +0800
16935
16936    CI/CD: Add new -p (PHASE) argument to ci_build.sh
16937
16938    The new PHASE argument can be build, test, or all. all is the default.
16939    This way, the CI/CD script can differentiate between the build and test
16940    phases to make it easier to track down errors when they happen.
16941
16942 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++-----------------------
16943 1 file changed, 76 insertions(+), 64 deletions(-)
16944
16945commit 6fd39664de47801e670a16617863196bfbde4755
16946Merge: 78e0561d fc0c7884
16947Author: Jia Tan <jiat0218@gmail.com>
16948Date:   2023-01-07 00:10:50 +0800
16949
16950    Merge pull request #7 from tukaani-project/tuktest_index_hash
16951
16952    Tuktest index hash
16953
16954commit fc0c788469159f634f09ff23c8cef6925c91da57
16955Author: Lasse Collin <lasse.collin@tukaani.org>
16956Date:   2023-01-06 17:58:48 +0200
16957
16958    Tests: test_index_hash: Add an assert_uint_eq().
16959
16960 tests/test_index_hash.c | 3 +++
16961 1 file changed, 3 insertions(+)
16962
16963commit d550304f5343b3a082da265107cd820e0d81dc71
16964Author: Lasse Collin <lasse.collin@tukaani.org>
16965Date:   2023-01-06 17:55:06 +0200
16966
16967    Tests: test_index_hash: Fix a memory leak.
16968
16969 tests/test_index_hash.c | 2 ++
16970 1 file changed, 2 insertions(+)
16971
16972commit 02608f74ea1f2d2d56585711ff241c34b4ad0937
16973Author: Lasse Collin <lasse.collin@tukaani.org>
16974Date:   2023-01-06 17:53:03 +0200
16975
16976    Tests: test_index_hash: Don't treat pointers as booleans.
16977
16978 tests/test_index_hash.c | 6 +++---
16979 1 file changed, 3 insertions(+), 3 deletions(-)
16980
16981commit 056766c8601a3808bea1761f6cc833197a35a3e0
16982Author: Lasse Collin <lasse.collin@tukaani.org>
16983Date:   2023-01-06 17:51:41 +0200
16984
16985    Tests: test_index_hash: Fix a typo in a comment.
16986
16987 tests/test_index_hash.c | 2 +-
16988 1 file changed, 1 insertion(+), 1 deletion(-)
16989
16990commit 873e684028ba9738f071c5236db7d452ed797b4c
16991Author: Lasse Collin <lasse.collin@tukaani.org>
16992Date:   2023-01-06 17:44:29 +0200
16993
16994    Tests: test_index_hash: Avoid the variable name "index".
16995
16996    It can trigger warnings from -Wshadow on some systems.
16997
16998 tests/test_index_hash.c | 16 ++++++++--------
16999 1 file changed, 8 insertions(+), 8 deletions(-)
17000
17001commit d1f24c35874eeba8432d75aa77b06c50375ed937
17002Author: Lasse Collin <lasse.collin@tukaani.org>
17003Date:   2023-01-06 17:35:50 +0200
17004
17005    Tests: test_index_hash: Use the word "Record" instead of "entry".
17006
17007 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------
17008 1 file changed, 51 insertions(+), 51 deletions(-)
17009
17010commit b93f7c5cbb02b42024ac866fc0af541de3d816e2
17011Author: Lasse Collin <lasse.collin@tukaani.org>
17012Date:   2023-01-06 17:35:05 +0200
17013
17014    Tests: test_index_hash: Tweak comments and style.
17015
17016    The words defined in the .xz file format specification
17017    begin with capital letter to emphasize that they have
17018    a specific meaning.
17019
17020 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++-----------------------
17021 1 file changed, 33 insertions(+), 29 deletions(-)
17022
17023commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036
17024Author: Lasse Collin <lasse.collin@tukaani.org>
17025Date:   2023-01-06 17:17:37 +0200
17026
17027    Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.
17028
17029 tests/test_index_hash.c | 2 +-
17030 1 file changed, 1 insertion(+), 1 deletion(-)
17031
17032commit 78e0561dfebaa9d5e34558de537efcda890e0629
17033Author: Jia Tan <jiat0218@gmail.com>
17034Date:   2023-01-06 20:43:31 +0800
17035
17036    Style: Change #if !defined() to #ifndef in mythread.h.
17037
17038 src/common/mythread.h | 2 +-
17039 1 file changed, 1 insertion(+), 1 deletion(-)
17040
17041commit e834e1e934ed0af673598d8c0c34afb2af56bee0
17042Author: Jia Tan <jiat0218@gmail.com>
17043Date:   2023-01-06 20:35:55 +0800
17044
17045    Build: Add missing stream_decoder_mt.c to .vcxproj files.
17046
17047    The line in the .vcxproj files for building with was missing in 5.4.0.
17048    Thank to Hajin Jang for reporting the issue.
17049
17050 windows/vs2013/liblzma.vcxproj     | 1 +
17051 windows/vs2013/liblzma_dll.vcxproj | 1 +
17052 windows/vs2017/liblzma.vcxproj     | 1 +
17053 windows/vs2017/liblzma_dll.vcxproj | 1 +
17054 windows/vs2019/liblzma.vcxproj     | 1 +
17055 windows/vs2019/liblzma_dll.vcxproj | 1 +
17056 6 files changed, 6 insertions(+)
17057
17058commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111
17059Author: Jia Tan <jiat0218@gmail.com>
17060Date:   2023-01-05 20:57:25 +0800
17061
17062    liblzma: Remove common.h include from common/index.h.
17063
17064    common/index.h is needed by liblzma internally and tests. common.h will
17065    include and define many things that are not needed by the tests. Also,
17066    this prevents include order problems because common.h will redefine
17067    LZMA_API resulting in a warning.
17068
17069 src/liblzma/common/index.c                 | 1 +
17070 src/liblzma/common/index.h                 | 9 +++++++--
17071 src/liblzma/common/index_decoder.h         | 1 +
17072 src/liblzma/common/stream_buffer_encoder.c | 1 +
17073 4 files changed, 10 insertions(+), 2 deletions(-)
17074
17075commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f
17076Author: Lasse Collin <lasse.collin@tukaani.org>
17077Date:   2023-01-04 22:40:54 +0200
17078
17079    Update THANKS.
17080
17081 THANKS | 1 +
17082 1 file changed, 1 insertion(+)
17083
17084commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
17085Author: Lasse Collin <lasse.collin@tukaani.org>
17086Date:   2023-01-04 18:40:28 +0200
17087
17088    Tests: Adjust style in test_compress.sh.
17089
17090 tests/test_compress.sh | 12 +++++++-----
17091 1 file changed, 7 insertions(+), 5 deletions(-)
17092
17093commit 52380678f42364daa4510f92f6d3b18ec98c3638
17094Author: Jia Tan <jiat0218@gmail.com>
17095Date:   2023-01-04 23:58:58 +0800
17096
17097    Tests: Replace non portable shell parameter expansion
17098
17099    The shell parameter expansion using # and ## is not supported in
17100    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
17101    portable, so we should avoid it.
17102
17103 tests/create_compress_files.c          |  2 +-
17104 tests/test_compress.sh                 | 20 +++++++++++++-------
17105 tests/test_compress_prepared_bcj_sparc |  2 +-
17106 tests/test_compress_prepared_bcj_x86   |  2 +-
17107 4 files changed, 16 insertions(+), 10 deletions(-)
17108
17109commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b
17110Author: Jia Tan <jiat0218@gmail.com>
17111Date:   2023-01-03 21:02:38 +0800
17112
17113    Translations: Add Korean translation of man pages.
17114
17115    Thanks to Seong-ho Cho
17116
17117 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17118 po4a/po4a.conf |    2 +-
17119 2 files changed, 5553 insertions(+), 1 deletion(-)
17120
17121commit c4145978d95ebf1690c778d354e15f7c2823d7a8
17122Author: Jia Tan <jiat0218@gmail.com>
17123Date:   2023-01-03 20:47:27 +0800
17124
17125    Translations: Update the Esperanto translation.
17126
17127 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
17128 1 file changed, 332 insertions(+), 288 deletions(-)
17129
17130commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c
17131Author: Lasse Collin <lasse.collin@tukaani.org>
17132Date:   2023-01-02 17:20:47 +0200
17133
17134    Bump version and soname for 5.5.0alpha.
17135
17136    5.5.0alpha won't be released, it's just to mark that
17137    the branch is not for stable 5.4.x.
17138
17139    Once again there is no API/ABI stability for new features
17140    in devel versions. The major soname won't be bumped even
17141    if API/ABI of new features breaks between devel releases.
17142
17143 src/liblzma/Makefile.am        | 2 +-
17144 src/liblzma/api/lzma/version.h | 4 ++--
17145 2 files changed, 3 insertions(+), 3 deletions(-)
17146
17147commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a
17148Author: Lasse Collin <lasse.collin@tukaani.org>
17149Date:   2023-01-02 17:05:07 +0200
17150
17151    Build: Fix config.h comments.
17152
17153 configure.ac          | 2 +-
17154 m4/tuklib_progname.m4 | 2 +-
17155 2 files changed, 2 insertions(+), 2 deletions(-)
17156
17157commit bb740e3b117f1a3c65152d01e5755523a908ecb1
17158Author: Jia Tan <jiat0218@gmail.com>
17159Date:   2023-01-02 22:33:48 +0800
17160
17161    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
17162
17163    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
17164    HAVE_PROGRAM_INVOCATION_NAME. Previously,
17165    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
17166    building with autotools. CMake would only set this when it was 1, and the
17167    dos/config.h did not define it. The new macro definition is consistent
17168    across build systems.
17169
17170 cmake/tuklib_progname.cmake  | 5 ++---
17171 m4/tuklib_progname.m4        | 5 ++++-
17172 src/common/tuklib_progname.c | 2 +-
17173 src/common/tuklib_progname.h | 2 +-
17174 4 files changed, 8 insertions(+), 6 deletions(-)
17175
17176commit 064cd385a716abc78d93a3612411a82d69ceb221
17177Author: Jia Tan <jiat0218@gmail.com>
17178Date:   2022-12-29 00:30:52 +0800
17179
17180    Adds test_index_hash to .gitignore.
17181
17182 .gitignore | 1 +
17183 1 file changed, 1 insertion(+)
17184
17185commit 3959162baec074511d83ba0fec1284c3ed724799
17186Author: Jia Tan <jiat0218@gmail.com>
17187Date:   2022-12-29 00:25:18 +0800
17188
17189    Tests: Creates test_index_hash.c
17190
17191    Tests all API functions exported from index_hash.h. Does not have a
17192    dedicated test for lzma_index_hash_end.
17193
17194 CMakeLists.txt          |   2 +
17195 tests/Makefile.am       |   3 +
17196 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++
17197 3 files changed, 384 insertions(+)
17198
17199commit f16e12d5e755d371247202fcccbcccd1ec16b2cf
17200Author: Jia Tan <jiat0218@gmail.com>
17201Date:   2022-08-17 20:20:16 +0800
17202
17203    liblzma: Add NULL check to lzma_index_hash_append.
17204
17205    This is for consistency with lzma_index_append.
17206
17207 src/liblzma/common/index_hash.c | 2 +-
17208 1 file changed, 1 insertion(+), 1 deletion(-)
17209
17210commit 203b008eb220208981902e0db541c02d1c1c9f5e
17211Author: Jia Tan <jiat0218@gmail.com>
17212Date:   2022-08-17 17:59:51 +0800
17213
17214    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
17215
17216 src/liblzma/common/index.h             | 3 +++
17217 src/liblzma/common/index_decoder.c     | 2 +-
17218 src/liblzma/common/index_encoder.c     | 2 +-
17219 src/liblzma/common/index_hash.c        | 2 +-
17220 src/liblzma/common/stream_decoder.c    | 3 ++-
17221 src/liblzma/common/stream_decoder_mt.c | 2 +-
17222 6 files changed, 9 insertions(+), 5 deletions(-)
17223
17224commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0
17225Author: Lasse Collin <lasse.collin@tukaani.org>
17226Date:   2022-12-30 20:10:08 +0200
17227
17228    Tests: test_check: Test corner cases of CLMUL CRC64.
17229
17230 tests/test_check.c | 27 +++++++++++++++++++++++++++
17231 1 file changed, 27 insertions(+)
17232
17233commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7
17234Author: Lasse Collin <lasse.collin@tukaani.org>
17235Date:   2022-12-30 19:36:49 +0200
17236
17237    Tests: Clarify a comment in test_lzip_decoder.c.
17238
17239 tests/test_lzip_decoder.c | 8 ++++++--
17240 1 file changed, 6 insertions(+), 2 deletions(-)
17241
17242commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8
17243Author: Jia Tan <jiat0218@gmail.com>
17244Date:   2022-12-29 01:55:19 +0800
17245
17246    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
17247
17248    Previously, mytime.c depended on mythread.h for <time.h> to be included.
17249
17250 src/xz/mytime.c | 4 +++-
17251 1 file changed, 3 insertions(+), 1 deletion(-)
17252
17253commit f82294c8318a7a0990583d51ac5c7de682ad36ef
17254Author: Jia Tan <jiat0218@gmail.com>
17255Date:   2022-12-29 01:15:27 +0800
17256
17257    liblzma: Includes sys/time.h conditionally in mythread
17258
17259    Previously, <sys/time.h> was always included, even if mythread only used
17260    clock_gettime. <time.h> is still needed even if clock_gettime is not used
17261    though because struct timespec is needed for mythread_condtime.
17262
17263 src/common/mythread.h | 8 +++++++-
17264 1 file changed, 7 insertions(+), 1 deletion(-)
17265
17266commit 74dae7d30091e906d6a92a57952dea4354473f9b
17267Author: Jia Tan <jiat0218@gmail.com>
17268Date:   2022-12-29 01:10:53 +0800
17269
17270    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
17271
17272    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
17273    be set to 0 or 1. However, this macro was needed in xz so if xz was not
17274    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
17275    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
17276    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
17277    will only be set if it is 1.
17278
17279 CMakeLists.txt        | 8 +++-----
17280 configure.ac          | 5 ++++-
17281 src/common/mythread.h | 4 ++--
17282 src/xz/mytime.c       | 5 ++---
17283 4 files changed, 11 insertions(+), 11 deletions(-)
17284
17285commit 7339e39dc060df6eda74a2c5b69961befc3d5d24
17286Author: Jia Tan <jiat0218@gmail.com>
17287Date:   2022-12-28 01:14:07 +0800
17288
17289    Translations: Add Ukrainian translations of man pages.
17290
17291    Thanks to Yuri Chornoivan
17292
17293 po4a/po4a.conf |    2 +-
17294 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17295 2 files changed, 3677 insertions(+), 1 deletion(-)
17296
17297commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e
17298Author: Jia Tan <jiat0218@gmail.com>
17299Date:   2022-12-23 00:34:48 +0800
17300
17301    CI/CD: Create initial version of CI/CD workflow.
17302
17303    The CI/CD workflow will only execute on Ubuntu and MacOS latest version.
17304    The workflow will attempt to build with autotools and CMake and execute
17305    the tests. The workflow will run for all pull requests and pushes done
17306    to the master branch.
17307
17308 .github/workflows/ci.yml |  72 ++++++++++++++++++++++++
17309 build-aux/ci_build.sh    | 141 +++++++++++++++++++++++++++++++++++++++++++++++
17310 2 files changed, 213 insertions(+)
17311
17312commit 1275ebfba74230dbd028049141423c79c8b83b8f
17313Author: Jia Tan <jiat0218@gmail.com>
17314Date:   2022-12-22 23:14:53 +0800
17315
17316    liblzma: Update documentation for lzma_filter_encoder.
17317
17318 src/liblzma/common/filter_encoder.c | 7 +++++--
17319 1 file changed, 5 insertions(+), 2 deletions(-)
17320
17321commit 7c9ff5f1667a16733163b75dfd4b509662c387f4
17322Author: Jia Tan <jiat0218@gmail.com>
17323Date:   2022-12-21 21:12:03 +0800
17324
17325    Tests: Adds lzip decoder tests
17326
17327 .gitignore                |   1 +
17328 tests/Makefile.am         |   2 +
17329 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
17330 3 files changed, 474 insertions(+)
17331
17332commit 799ead162de63b8400733603d3abcd2e1977bdca
17333Author: Jia Cheong Tan <jiat0218@gmail.com>
17334Date:   2022-12-20 22:05:21 +0800
17335
17336    Doxygen: Update .gitignore for generating docs for in source build.
17337
17338    In source builds are not recommended, but we should still ignore
17339    the generated artifacts.
17340
17341 .gitignore | 2 ++
17342 1 file changed, 2 insertions(+)
17343
17344commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e
17345Author: Jia Tan <jiat0218@gmail.com>
17346Date:   2022-12-20 20:46:44 +0800
17347
17348    liblzma: Fix lzma_microlzma_encoder() return value.
17349
17350    Using return_if_error on lzma_lzma_lclppb_encode was improper because
17351    return_if_error is expecting an lzma_ret value, but
17352    lzma_lzma_lclppb_encode returns a boolean. This could result in
17353    lzma_microlzma_encoder, which would be misleading for applications.
17354
17355 src/liblzma/common/microlzma_encoder.c | 3 ++-
17356 1 file changed, 2 insertions(+), 1 deletion(-)
17357
17358commit 8ace358d65059152d9a1f43f4770170d29d35754
17359Author: Jia Tan <jiat0218@gmail.com>
17360Date:   2022-12-16 20:58:55 +0800
17361
17362    CMake: Update .gitignore for CMake artifacts from in source build.
17363
17364    In source builds are not recommended, but we can make it easier
17365    by ignoring the generated artifacts from CMake.
17366
17367 .gitignore | 23 +++++++++++++++++++++++
17368 1 file changed, 23 insertions(+)
17369
17370commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad
17371Author: Lasse Collin <lasse.collin@tukaani.org>
17372Date:   2022-12-16 18:30:02 +0200
17373
17374    liblzma: Update authors list in arm64.c.
17375
17376 src/liblzma/simple/arm64.c | 1 +
17377 1 file changed, 1 insertion(+)
17378
17379commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
17380Author: Lasse Collin <lasse.collin@tukaani.org>
17381Date:   2022-12-13 20:37:17 +0200
17382
17383    Bump version to 5.4.0 and soname to 5.4.0.
17384
17385 src/liblzma/Makefile.am         | 2 +-
17386 src/liblzma/api/lzma/version.h  | 6 +++---
17387 src/liblzma/liblzma_generic.map | 2 +-
17388 src/liblzma/liblzma_linux.map   | 2 +-
17389 4 files changed, 6 insertions(+), 6 deletions(-)
17390