xref: /freebsd/contrib/xz/ChangeLog (revision 59c8e88e72633afbc47a4ace0d2170d00d51f7dc)
1commit 2d7d862e3ffa8cec4fd3fdffcd84e984a17aa429
2Author: Jia Tan <jiat0218@gmail.com>
3Date:   2024-02-24 15:55:08 +0800
4
5    Bump version and soname for 5.6.0.
6
7 src/liblzma/Makefile.am         | 2 +-
8 src/liblzma/api/lzma/version.h  | 6 +++---
9 src/liblzma/liblzma_generic.map | 2 +-
10 src/liblzma/liblzma_linux.map   | 2 +-
11 4 files changed, 6 insertions(+), 6 deletions(-)
12
13commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
14Author: Jia Tan <jiat0218@gmail.com>
15Date:   2024-02-24 15:50:36 +0800
16
17    Add NEWS for 5.6.0.
18
19 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20 1 file changed, 143 insertions(+)
21
22commit 24355c5280bc95e3d594432d60bb8432aa6af173
23Author: Jia Tan <jiat0218@gmail.com>
24Date:   2024-02-22 22:27:01 +0800
25
26    Translations: Remove obsolete and fuzzy matches from some translations.
27
28    The French and Brazilian Portuguese man page translations have not been
29    updated since the switch from public domain to 0BSD. The old GPLv2
30    strings have now been removed from these files.
31
32 po4a/fr.po    | 4702 +++++++++++++++++++++++++++++++++++++----------------
33 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++-----------------
34 2 files changed, 6832 insertions(+), 2857 deletions(-)
35
36commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1
37Author: Jia Tan <jiat0218@gmail.com>
38Date:   2024-02-21 00:31:54 +0800
39
40    Translations: Patch man pages to avoid fuzzy matches.
41
42    This will be fixed in the next round of translations, but this avoids
43    having a fuzzy match or not fixing the English version.
44
45 po4a/de.po | 2 +-
46 po4a/ko.po | 2 +-
47 po4a/ro.po | 2 +-
48 po4a/uk.po | 2 +-
49 4 files changed, 4 insertions(+), 4 deletions(-)
50
51commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64
52Author: Jia Tan <jiat0218@gmail.com>
53Date:   2024-02-21 00:30:43 +0800
54
55    xzmore: Fix typo in xzmore.1.
56
57    Thanks to Yuri Chornoivan.
58
59 src/scripts/xzmore.1 | 2 +-
60 1 file changed, 1 insertion(+), 1 deletion(-)
61
62commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba
63Author: Jia Tan <jiat0218@gmail.com>
64Date:   2024-02-24 12:12:16 +0800
65
66    Translations: Update the Vietnamese translation.
67
68 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++-------------------------
69 1 file changed, 309 insertions(+), 196 deletions(-)
70
71commit a65fd7ce9d6228e87faf61dc56a35984d0088248
72Author: Jia Tan <jiat0218@gmail.com>
73Date:   2024-02-24 12:06:40 +0800
74
75    Translations: Update the Esperanto translation.
76
77 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++-------------------------
78 1 file changed, 306 insertions(+), 196 deletions(-)
79
80commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0
81Author: Jia Tan <jiat0218@gmail.com>
82Date:   2024-02-23 23:09:59 +0800
83
84    Tests: Add a few test files.
85
86 tests/files/README                     |  19 +++++++++++++++++++
87 tests/files/bad-3-corrupt_lzma2.xz     | Bin 0 -> 484 bytes
88 tests/files/bad-dict_size.lzma         | Bin 0 -> 41 bytes
89 tests/files/good-2cat.xz               | Bin 0 -> 136 bytes
90 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes
91 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes
92 6 files changed, 19 insertions(+)
93
94commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73
95Author: Jia Tan <jiat0218@gmail.com>
96Date:   2024-02-23 20:58:36 +0800
97
98    Tests: Add MicroLZMA test.
99
100 tests/Makefile.am      |   4 +-
101 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++
102 2 files changed, 551 insertions(+), 1 deletion(-)
103
104commit adaacafde6661496ca2814b1e94a3ba5186428cb
105Author: Jia Tan <jiat0218@gmail.com>
106Date:   2024-02-23 20:57:59 +0800
107
108    Build: Define HAVE_MICROLZMA when it is configured.
109
110 CMakeLists.txt | 4 ++++
111 configure.ac   | 9 +++++++--
112 2 files changed, 11 insertions(+), 2 deletions(-)
113
114commit eea78216d27182ca917bf00e02feaab058a4d21e
115Author: Jia Tan <jiat0218@gmail.com>
116Date:   2024-02-23 20:27:15 +0800
117
118    xz: Fix Capsicum sandbox compile error.
119
120    user_abort_pipe[] was still being used instead of the parameters.
121
122 src/xz/sandbox.c | 4 ++--
123 1 file changed, 2 insertions(+), 2 deletions(-)
124
125commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d
126Author: Jia Tan <jiat0218@gmail.com>
127Date:   2024-02-23 16:12:32 +0800
128
129    Build: Fix ARM64 CRC32 instruction feature test.
130
131    Old versions of Clang reported the unsupported function attribute and
132    __crc32d() function as warnings instead of errors, so the feature test
133    passed when it shouldn't have, causing a compile error at build time.
134    -Werror was added to this feature test to fix this. The change is not
135    needed for CMake because check_c_source_compiles() also performs
136    linking and the error is caught then.
137
138    Thanks to Sebastian Andrzej Siewior for reporting this.
139
140 configure.ac | 10 ++++++++++
141 1 file changed, 10 insertions(+)
142
143commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
144Author: Lasse Collin <lasse.collin@tukaani.org>
145Date:   2024-02-22 19:16:35 +0200
146
147    CMake: Add LOCALEDIR to the windres workaround.
148
149    LOCALEDIR may contain spaces like in "C:\Program Files".
150
151 CMakeLists.txt | 16 +++++++++++-----
152 1 file changed, 11 insertions(+), 5 deletions(-)
153
154commit de4337fd89ca7db5feb97b5c40143404f6e22986
155Author: Lasse Collin <lasse.collin@tukaani.org>
156Date:   2024-02-22 15:18:25 +0200
157
158    xz: Landlock: Fix error message if input file is a directory.
159
160    If xz is given a directory, it should look like this:
161
162        $ xz /usr/bin
163        xz: /usr/bin: Is a directory, skipping
164
165    The Landlock rules didn't allow opening directories for reading:
166
167        $ xz /usr/bin
168        xz: /usr/bin: Permission denied
169
170    The simplest fix was to allow opening directories for reading.
171    While it's a bit silly to allow it solely for the error message,
172    it shouldn't make the sandbox significantly weaker.
173
174    The single-file use case (like when called from GNU tar) is
175    still as strict as possible: all Landlock restrictions are
176    enabled before (de)compression starts.
177
178 src/xz/sandbox.c | 15 ++++++++++++++-
179 1 file changed, 14 insertions(+), 1 deletion(-)
180
181commit 120da10ae139ea52ca4275452adf8eda02d07cc8
182Author: Lasse Collin <lasse.collin@tukaani.org>
183Date:   2024-02-22 14:41:29 +0200
184
185    liblzma: Disable branchless C version in range decoder.
186
187    Thanks to Sebastian Andrzej Siewior and Sam James for
188    benchmarking on various systems.
189
190 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++---
191 1 file changed, 10 insertions(+), 3 deletions(-)
192
193commit 00440f52be9ac2c7438c7b0cb1082f12399632c6
194Author: Lasse Collin <lasse.collin@tukaani.org>
195Date:   2024-02-21 17:41:32 +0200
196
197    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
198
199 INSTALL | 18 +++++++++---------
200 1 file changed, 9 insertions(+), 9 deletions(-)
201
202commit 11405be84ea294497e12d03d7219f607063f4a00
203Author: Lasse Collin <lasse.collin@tukaani.org>
204Date:   2024-02-19 18:41:37 +0200
205
206    Windows: build.bash: Include COPYING.0BSD in the package.
207
208 windows/build.bash | 2 +-
209 1 file changed, 1 insertion(+), 1 deletion(-)
210
211commit c27cf64e3e27f4968431d65be7098a12a3a80d30
212Author: Lasse Collin <lasse.collin@tukaani.org>
213Date:   2024-02-18 17:59:46 +0200
214
215    Windows: build.bash: include liblzma-crt-mixing.txt in the package.
216
217 windows/build.bash | 6 ++++--
218 1 file changed, 4 insertions(+), 2 deletions(-)
219
220commit 8d38941baed05de4ff7cc775de14833108f62184
221Author: Lasse Collin <lasse.collin@tukaani.org>
222Date:   2024-02-18 17:17:43 +0200
223
224    Windows: Major update to Windows build instructions.
225
226 INSTALL                                      |  68 ++++-----
227 windows/INSTALL-MSVC.txt                     |  23 +--
228 windows/INSTALL-MinGW-w64_with_Autotools.txt |  49 +++++++
229 windows/INSTALL-MinGW-w64_with_CMake.txt     | 203 +++++++++++++++++++++++++++
230 windows/INSTALL-MinGW.txt                    | 138 ------------------
231 windows/README-Windows.txt                   |   2 +
232 windows/build-with-cmake.bat                 |  35 +++++
233 windows/liblzma-crt-mixing.txt               |  70 +++++++++
234 8 files changed, 404 insertions(+), 184 deletions(-)
235
236commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1
237Author: Lasse Collin <lasse.collin@tukaani.org>
238Date:   2024-02-18 15:15:04 +0200
239
240    Windows: Update windows/README-Windows.txt.
241
242    It's for binary packages built with windows/build.bash.
243
244 windows/README-Windows.txt | 104 ++++++++++++++++++---------------------------
245 1 file changed, 41 insertions(+), 63 deletions(-)
246
247commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
248Author: Lasse Collin <lasse.collin@tukaani.org>
249Date:   2024-02-18 15:15:04 +0200
250
251    Windows: Update windows/build.bash.
252
253    Support for the old MinGW was dropped. Only MinGW-w64 with GCC
254    is supported now.
255
256    The script now supports also cross-compilation from GNU/Linux
257    (tests are not run). MSYS2 and also the old MSYS 1.0.11 work
258    for building on Windows. The i686 and x86_64 toolchains must
259    be in PATH to build both 32-bit and 64-bit versions.
260
261    Parallel builds are done if "nproc" from GNU coreutils is available.
262
263    MinGW-w64 runtime copyright information file was renamed from
264    COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which
265    is the filename used by MinGW-w64 itself. Its existence
266    is now mandatory, it's checked at the beginning of the script.
267
268    The file TODO is no longer copied to the package.
269
270 windows/build.bash | 191 +++++++++++++++++++++++++++++++----------------------
271 1 file changed, 112 insertions(+), 79 deletions(-)
272
273commit 60462e42609a1d961868a1d1ebecc713c6d27e2e
274Author: Jia Tan <jiat0218@gmail.com>
275Date:   2024-02-20 23:32:22 +0800
276
277    Translations: Update the Romanian man page translations.
278
279 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++-----------------------------
280 1 file changed, 875 insertions(+), 840 deletions(-)
281
282commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05
283Author: Jia Tan <jiat0218@gmail.com>
284Date:   2024-02-20 23:30:25 +0800
285
286    Translations: Update the Korean man page translations.
287
288 po4a/ko.po | 6 +++---
289 1 file changed, 3 insertions(+), 3 deletions(-)
290
291commit 797a34b72ac6baff237d7a546fa941d8f78f2f62
292Author: Jia Tan <jiat0218@gmail.com>
293Date:   2024-02-20 21:03:53 +0800
294
295    Translations: Update the Spanish translation.
296
297 po/es.po | 6 +++---
298 1 file changed, 3 insertions(+), 3 deletions(-)
299
300commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49
301Author: Jia Tan <jiat0218@gmail.com>
302Date:   2024-02-20 20:18:07 +0800
303
304    Translations: Update the Romanian translation.
305
306 po/ro.po | 470 ++++++++++++++++++++++++++++++---------------------------------
307 1 file changed, 227 insertions(+), 243 deletions(-)
308
309commit e2d31154ecc750935436e8b62c6b073b2cfa84e3
310Author: Jia Tan <jiat0218@gmail.com>
311Date:   2024-02-20 20:15:50 +0800
312
313    Translations: Update the Croatian translation.
314
315 po/hr.po | 648 ++++++++++++++++++++++++++++++++++-----------------------------
316 1 file changed, 355 insertions(+), 293 deletions(-)
317
318commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2
319Author: Jia Tan <jiat0218@gmail.com>
320Date:   2024-02-20 20:05:44 +0800
321
322    Translations: Update the German man page translations.
323
324 po4a/de.po | 1696 +++++++++++++++++++++++++++++++-----------------------------
325 1 file changed, 873 insertions(+), 823 deletions(-)
326
327commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f
328Author: Jia Tan <jiat0218@gmail.com>
329Date:   2024-02-20 19:58:25 +0800
330
331    Translations: Update the German translation.
332
333 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------
334 1 file changed, 225 insertions(+), 202 deletions(-)
335
336commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a
337Author: Jia Tan <jiat0218@gmail.com>
338Date:   2024-02-20 19:56:52 +0800
339
340    Translations: Update the Hungarian translation.
341
342 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++-------------------------
343 1 file changed, 338 insertions(+), 218 deletions(-)
344
345commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04
346Author: Lasse Collin <lasse.collin@tukaani.org>
347Date:   2024-02-19 16:48:05 +0200
348
349    CMake: Fix building of lzmainfo when translations are enabled.
350
351 CMakeLists.txt | 2 ++
352 1 file changed, 2 insertions(+)
353
354commit b0d1422b6037bfea6f6723683bd82a8e6d77026c
355Author: Lasse Collin <lasse.collin@tukaani.org>
356Date:   2024-02-19 13:38:42 +0200
357
358    CMake: Don't assume that -fvisibility=hidden is supported outside Windows.
359
360    The original code was good enough for supporting GNU/Linux
361    and a few others but it wasn't very portable.
362
363    CMake doesn't support Solaris Studio's -xldscope=hidden.
364    If it ever does, things should still work with this commit
365    as Solaris Studio supports not only its own __global but also
366    the GNU C __attribute__((visibility("default"))). Support for the
367    attribute was added in 2007 to Sun Studio 12 compiler version 5.9.
368
369 CMakeLists.txt | 26 ++++++++++++++++++++++----
370 1 file changed, 22 insertions(+), 4 deletions(-)
371
372commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c
373Author: Lasse Collin <lasse.collin@tukaani.org>
374Date:   2024-02-19 12:20:59 +0200
375
376    CMake: Revise the component splitting.
377
378 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++--------------------------
379 1 file changed, 31 insertions(+), 26 deletions(-)
380
381commit 426bdc709c169d39b31dec410016779de117ef69
382Author: Lasse Collin <lasse.collin@tukaani.org>
383Date:   2024-02-17 21:45:07 +0200
384
385    CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release.
386
387 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------
388 1 file changed, 63 insertions(+), 16 deletions(-)
389
390commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10
391Author: Lasse Collin <lasse.collin@tukaani.org>
392Date:   2024-02-17 21:27:48 +0200
393
394    CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release.
395
396    -O3 doesn't seem useful for speed but it makes the code bigger.
397    CMake makes is difficult for users to simply override the
398    optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because
399    they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override
400    CMAKE_C_FLAGS_RELEASE directly but then they have to remember to
401    add also -DNDEBUG to disable assertions.
402
403    This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if
404    CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if
405    a custom value is passed on the command line (or reconfiguring an
406    already-configured build), the cache variable won't be modified.
407
408 CMakeLists.txt | 19 +++++++++++++++++++
409 1 file changed, 19 insertions(+)
410
411commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660
412Author: Lasse Collin <lasse.collin@tukaani.org>
413Date:   2024-02-18 14:59:52 +0200
414
415    CMake: Handle symbol versioning on MicroBlaze specially.
416
417    This is to match configure.ac.
418
419 CMakeLists.txt | 23 +++++++++++++++++++----
420 1 file changed, 19 insertions(+), 4 deletions(-)
421
422commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce
423Author: Lasse Collin <lasse.collin@tukaani.org>
424Date:   2024-02-17 22:18:12 +0200
425
426    CMake: Keep build working even if lib/*.[ch] are removed.
427
428 CMakeLists.txt | 7 ++++++-
429 1 file changed, 6 insertions(+), 1 deletion(-)
430
431commit d753e2ce4715552884afadc4ed6fbf8ccca6efac
432Author: Lasse Collin <lasse.collin@tukaani.org>
433Date:   2024-02-17 18:10:40 +0200
434
435    CMake: Install documentation.
436
437 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
438 1 file changed, 32 insertions(+)
439
440commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
441Author: Lasse Collin <lasse.collin@tukaani.org>
442Date:   2024-02-17 15:35:35 +0200
443
444    CMake: Bump maximum policy version to 3.28.
445
446    CMP0154 doesn't affect us since we don't use FILE_SET.
447
448 CMakeLists.txt | 2 +-
449 1 file changed, 1 insertion(+), 1 deletion(-)
450
451commit c2264ffbe3892d28930b89b0123efc369cabc143
452Author: Lasse Collin <lasse.collin@tukaani.org>
453Date:   2024-02-17 15:35:35 +0200
454
455    CMake: Build lzmainfo.
456
457 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
458 1 file changed, 54 insertions(+)
459
460commit 998d0b29536094a89cf385a3b894e157db1ccefe
461Author: Lasse Collin <lasse.collin@tukaani.org>
462Date:   2024-02-17 15:35:35 +0200
463
464    CMake: Build lzmadec.
465
466 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++--------------------------
467 1 file changed, 42 insertions(+), 34 deletions(-)
468
469commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9
470Author: Lasse Collin <lasse.collin@tukaani.org>
471Date:   2024-02-17 15:35:35 +0200
472
473    CMake: Add test_scripts.sh to the tests.
474
475    In contrast to Automake, skipping of this test when decoders
476    are disabled is handled at CMake side instead of test_scripts.sh
477    because CMake-build doesn't create config.h.
478
479 CMakeLists.txt        | 14 ++++++++++++++
480 tests/test_scripts.sh | 13 ++++++++-----
481 2 files changed, 22 insertions(+), 5 deletions(-)
482
483commit 4808f238a731befcd46c2117c62a1caaf4403989
484Author: Lasse Collin <lasse.collin@tukaani.org>
485Date:   2024-02-17 15:35:35 +0200
486
487    CMake: Install scripts.
488
489    Compared to the Autotools-based build, this has simpler handling
490    for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts
491    (configure has --enable-path-for-scripts=PREFIX). The simpler
492    metho should be enough for non-ancient systems and Solaris.
493
494 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
495 1 file changed, 82 insertions(+), 1 deletion(-)
496
497commit 3462362ebd94d835c664e94ad8f414cfe7590ca7
498Author: Lasse Collin <lasse.collin@tukaani.org>
499Date:   2024-02-17 15:35:35 +0200
500
501    Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@.
502
503    PACKAGE_VERSION was already used in liblzma.pc.in.
504    This way only one version @foo@ is used.
505
506 src/scripts/xzdiff.in | 2 +-
507 src/scripts/xzgrep.in | 2 +-
508 src/scripts/xzless.in | 2 +-
509 src/scripts/xzmore.in | 2 +-
510 4 files changed, 4 insertions(+), 4 deletions(-)
511
512commit 67610c245ba6c68cf65991693bab9312b7dc987b
513Author: Lasse Collin <lasse.collin@tukaani.org>
514Date:   2024-02-17 15:35:35 +0200
515
516    CMake: Simplify symlink creation and install translated man pages.
517
518    It helps that cmake_install.cmake doesn't parallelize installation
519    so symlinks can be created so that the target is always known to
520    exist (a requirement on Windows in some cases).
521
522    This bumps the minimum CMake version from 3.13 to 3.14 to use
523    file(CREATE_LINK ...). It could be made to work on 3.13 by
524    calling "cmake -E create_symlink" but it's uglier code and
525    slower in "make install". 3.14 should be a reasonable version
526    to require nowadays, especially since the Autotools build
527    is still the primary build system for most OSes.
528
529 CMakeLists.txt | 195 +++++++++++++++++++++++++++++----------------------------
530 1 file changed, 98 insertions(+), 97 deletions(-)
531
532commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf
533Author: Lasse Collin <lasse.collin@tukaani.org>
534Date:   2024-02-17 15:35:35 +0200
535
536    CMake: Add support for building and installing xz with translations.
537
538    If gettext tools are available, the .po files listed in po/LINGUAS
539    are converted using msgfmt. This allows building with translations
540    directly from xz.git without Autotools.
541
542    If gettext tools aren't available, the Autotools-created .gmo files
543    in the "po" directory will be used. This allows CMake-based build
544    to use translations from Autotools-generated tarball.
545
546    If translation support is found (Intl_FOUND) but both the
547    gettext tools and the pre-generated .gmo files are missing,
548    then "make" will fail.
549
550 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
551 1 file changed, 66 insertions(+), 2 deletions(-)
552
553commit 746c471643009947f94a3494a1148f74c7381b56
554Author: Lasse Collin <lasse.collin@tukaani.org>
555Date:   2024-02-19 11:58:33 +0200
556
557    liblzma: Remove commented-out code.
558
559 src/liblzma/rangecoder/range_decoder.h | 3 ---
560 1 file changed, 3 deletions(-)
561
562commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7
563Author: Lasse Collin <lasse.collin@tukaani.org>
564Date:   2024-02-17 23:07:35 +0200
565
566    xz: Delete old commented-out code.
567
568 src/xz/message.c | 19 -------------------
569 1 file changed, 19 deletions(-)
570
571commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa
572Author: Lasse Collin <lasse.collin@tukaani.org>
573Date:   2024-02-17 23:07:35 +0200
574
575    xz: Use stricter pledge(2) and Landlock sandbox.
576
577    This makes these sandboxing methods stricter when no files are
578    created or deleted. That is, it's a middle ground between the
579    initial sandbox and the strictest single-file-to-stdout sandbox:
580    this allows opening files for reading but output has to go to stdout.
581
582 src/xz/main.c    | 46 +++++++++++++++++++++++++++++++++-------------
583 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++
584 src/xz/sandbox.h |  4 ++++
585 3 files changed, 69 insertions(+), 13 deletions(-)
586
587commit 02e3505991233901575b7eabc06b2c6c62a96899
588Author: Lasse Collin <lasse.collin@tukaani.org>
589Date:   2024-02-17 23:07:35 +0200
590
591    xz: Support Landlock ABI version 4.
592
593    Linux 6.7 added support for ABI version 4 which restricts
594    TCP connections which xz won't need and thus those can be
595    forbidden now. Since the ABI version is handled at runtime,
596    supporting version 4 won't cause any compatibility issues.
597
598    Note that new enough kernel headers are required to get
599    version 4 support enabled at build time.
600
601 src/xz/sandbox.c | 25 ++++++++++++++++++++-----
602 1 file changed, 20 insertions(+), 5 deletions(-)
603
604commit 374868d81d473ab56556a1cfd6b1b36a1fab348b
605Author: Lasse Collin <lasse.collin@tukaani.org>
606Date:   2024-02-17 23:07:35 +0200
607
608    xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.
609
610    Landlock is now always used just like pledge(2) is: first in more
611    permissive mode and later (under certain common conditions) in
612    a strict mode that doesn't allow opening more files.
613
614    I put pledge(2) first in sandbox.c because it's the simplest API
615    to use and still somewhat fine-grained for basic applications.
616    So it's the simplest thing to understand for anyone reading sandbox.c.
617
618 CMakeLists.txt     |   2 +
619 src/xz/Makefile.am |   2 +
620 src/xz/file_io.c   | 170 +-----------------------------
621 src/xz/file_io.h   |   6 --
622 src/xz/main.c      |  50 +++------
623 src/xz/private.h   |   6 +-
624 src/xz/sandbox.c   | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++
625 src/xz/sandbox.h   |  39 +++++++
626 8 files changed, 357 insertions(+), 213 deletions(-)
627
628commit 7312dfbb02197c7f990c7a3cefd027a9387d1473
629Author: Lasse Collin <lasse.collin@tukaani.org>
630Date:   2024-02-17 23:07:35 +0200
631
632    xz: Tweak comments.
633
634 src/xz/main.c | 4 +++-
635 1 file changed, 3 insertions(+), 1 deletion(-)
636
637commit c701a5909ad9882469fbab4fab5d2d5556d3ba78
638Author: Lasse Collin <lasse.collin@tukaani.org>
639Date:   2024-02-17 23:07:35 +0200
640
641    xz: Fix message_init() description.
642
643    Also explicitly initialize progress_automatic to make it clear
644    that it can be read before message_init() sets it. Static variable
645    was initialized to false by default already so this is only for
646    clarity.
647
648 src/xz/main.c    | 3 ++-
649 src/xz/message.c | 2 +-
650 src/xz/message.h | 5 ++++-
651 3 files changed, 7 insertions(+), 3 deletions(-)
652
653commit 9466306719f3b76e92fac4e55fbfd89ec92295fa
654Author: Lasse Collin <lasse.collin@tukaani.org>
655Date:   2024-02-17 19:35:47 +0200
656
657    Build: Makefile.am: Sort EXTRA_DIST.
658
659    Dirs first, then files in case-sensitive ASCII order.
660
661 Makefile.am | 14 +++++++-------
662 1 file changed, 7 insertions(+), 7 deletions(-)
663
664commit f3440e78c9517db75bfa52e1a378fad60b073bbe
665Author: Lasse Collin <lasse.collin@tukaani.org>
666Date:   2024-02-17 19:25:05 +0200
667
668    Build: Don't install TODO.
669
670 Makefile.am | 2 +-
671 1 file changed, 1 insertion(+), 1 deletion(-)
672
673commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381
674Author: Jia Tan <jiat0218@gmail.com>
675Date:   2024-02-18 01:09:11 +0800
676
677    Translations: Update the Korean man page translations.
678
679 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++-----------------------------
680 1 file changed, 871 insertions(+), 836 deletions(-)
681
682commit 9b315db2d5e74700f3dc0755eb86c27947c0b393
683Author: Jia Tan <jiat0218@gmail.com>
684Date:   2024-02-18 01:08:32 +0800
685
686    Translations: Update the Korean translation.
687
688 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------
689 1 file changed, 223 insertions(+), 200 deletions(-)
690
691commit 56246607dff177b0410d140fcca4a42c865723dc
692Author: Lasse Collin <lasse.collin@tukaani.org>
693Date:   2024-02-17 16:23:14 +0200
694
695    Build: Install translated lzmainfo man pages.
696
697    All other translated man pages were being installed but
698    lzmainfo had been forgotten.
699
700 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++
701 1 file changed, 26 insertions(+)
702
703commit f1d6b88aefcced538403c5c2606ba57065b16e70
704Author: Lasse Collin <lasse.collin@tukaani.org>
705Date:   2024-02-17 16:01:32 +0200
706
707    liblzma: Avoid implementation-defined behavior in the RISC-V filter.
708
709    GCC docs promise that it works and a few other compilers do
710    too. Clang/LLVM is documented source code only but unsurprisingly
711    it behaves the same as others on x86-64 at least. But the
712    certainly-portable way is good enough here so use that.
713
714 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++--------
715 1 file changed, 22 insertions(+), 8 deletions(-)
716
717commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a
718Author: Lasse Collin <lasse.collin@tukaani.org>
719Date:   2024-02-17 15:48:28 +0200
720
721    liblzma: Wrap a line exceeding 80 chars.
722
723 src/liblzma/rangecoder/range_decoder.h | 3 ++-
724 1 file changed, 2 insertions(+), 1 deletion(-)
725
726commit e9053c907250c70d98b319d95fa54cb94fc76869
727Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
728Date:   2024-02-16 21:50:15 +0100
729
730    liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
731
732    The x32 port has a x86-64 ABI in term of all registers but uses only
733    32bit pointer like x86-32. The assembly optimisation fails to compile on
734    x32. Given the state of x32 I suggest to exclude it from the
735    optimisation rather than trying to fix it.
736
737    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
738
739 src/liblzma/rangecoder/range_decoder.h | 2 +-
740 1 file changed, 1 insertion(+), 1 deletion(-)
741
742commit 3d198fb13b87f8803442e5799d465f7434a70555
743Author: Jia Tan <jiat0218@gmail.com>
744Date:   2024-02-17 21:05:07 +0800
745
746    Translations: Update the Spanish translation.
747
748 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------
749 1 file changed, 226 insertions(+), 201 deletions(-)
750
751commit cf278bfe60a25b54b3786f06503bc61272970820
752Author: Jia Tan <jiat0218@gmail.com>
753Date:   2024-02-17 20:43:29 +0800
754
755    Translations: Update the Swedish translation.
756
757 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------
758 1 file changed, 230 insertions(+), 204 deletions(-)
759
760commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2
761Author: Jia Tan <jiat0218@gmail.com>
762Date:   2024-02-17 20:41:38 +0800
763
764    Translations: Update the Polish translation.
765
766 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------
767 1 file changed, 224 insertions(+), 200 deletions(-)
768
769commit d74ed48b30c631b6a4c7e7858b06828293bf8520
770Author: Jia Tan <jiat0218@gmail.com>
771Date:   2024-02-17 20:41:02 +0800
772
773    Translations: Update the Ukrainian translation.
774
775 po/uk.po | 2 +-
776 1 file changed, 1 insertion(+), 1 deletion(-)
777
778commit 711e22d5c5f3bac39ac904efb3ede874a66e2045
779Author: Lasse Collin <lasse.collin@tukaani.org>
780Date:   2024-02-16 17:53:34 +0200
781
782    Translations: Use the same sentence in xz.pot-header that the TP uses.
783
784 po/xz.pot-header | 2 +-
785 1 file changed, 1 insertion(+), 1 deletion(-)
786
787commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422
788Author: Jia Tan <jiat0218@gmail.com>
789Date:   2024-02-16 22:53:46 +0800
790
791    Fix typos discovered by codespell.
792
793 AUTHORS                                | 2 +-
794 NEWS                                   | 2 +-
795 src/liblzma/rangecoder/range_decoder.h | 4 ++--
796 3 files changed, 4 insertions(+), 4 deletions(-)
797
798commit c64723bbb094e29b4edd98f6fcce866e1b569b42
799Author: Jia Tan <jiat0218@gmail.com>
800Date:   2024-02-16 22:52:41 +0800
801
802    Translations: Update the Ukrainian man page translations.
803
804 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++-----------------------------
805 1 file changed, 873 insertions(+), 837 deletions(-)
806
807commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6
808Author: Jia Tan <jiat0218@gmail.com>
809Date:   2024-02-16 22:51:04 +0800
810
811    Translations: Update the Ukrainian translation.
812
813 po/uk.po | 466 ++++++++++++++++++++++++++++++---------------------------------
814 1 file changed, 225 insertions(+), 241 deletions(-)
815
816commit 4c20781f4c8f04879b64d631a4f44b4909147bde
817Author: Lasse Collin <lasse.collin@tukaani.org>
818Date:   2024-02-15 22:32:52 +0200
819
820    Translations: Omit the generic copyright line from man page headers.
821
822 po4a/update-po | 1 +
823 1 file changed, 1 insertion(+)
824
825commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e
826Author: Jia Tan <jiat0218@gmail.com>
827Date:   2024-02-15 22:26:43 +0800
828
829    Update m4/.gitignore.
830
831 m4/.gitignore | 1 +
832 1 file changed, 1 insertion(+)
833
834commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
835Author: Lasse Collin <lasse.collin@tukaani.org>
836Date:   2024-02-14 21:11:49 +0200
837
838    Tests: tuktest.h: Treat Clang separately from GCC.
839
840    Don't assume that Clang defines __GNUC__ as the extensions
841    are available in clang-cl as well (and possibly in some other
842    Clang variants?).
843
844 tests/tuktest.h | 6 +++---
845 1 file changed, 3 insertions(+), 3 deletions(-)
846
847commit cce7330b9f23485a0879422e0c3395a7065439ac
848Author: Lasse Collin <lasse.collin@tukaani.org>
849Date:   2024-02-14 21:11:03 +0200
850
851    Tests: tuktest.h: Add a missing word to a comment.
852
853 tests/tuktest.h | 4 ++--
854 1 file changed, 2 insertions(+), 2 deletions(-)
855
856commit 5dd8fc9452a3373cedc27379067ce638f992c741
857Author: Lasse Collin <lasse.collin@tukaani.org>
858Date:   2024-02-14 21:10:10 +0200
859
860    Tests: tuktest.h: Fix the comment about STest.
861
862 tests/tuktest.h | 3 ++-
863 1 file changed, 2 insertions(+), 1 deletion(-)
864
865commit 6f1790254a03c5edf0f2976f773220f070450acd
866Author: Jia Tan <jiat0218@gmail.com>
867Date:   2024-02-15 01:53:40 +0800
868
869    Bump version for 5.5.2beta.
870
871 src/liblzma/api/lzma/version.h  | 4 ++--
872 src/liblzma/liblzma_generic.map | 2 +-
873 src/liblzma/liblzma_linux.map   | 2 +-
874 3 files changed, 4 insertions(+), 4 deletions(-)
875
876commit 924fdeedf48113fb1e0646d86bd89a356d21a055
877Author: Lasse Collin <lasse.collin@tukaani.org>
878Date:   2024-02-14 19:46:11 +0200
879
880    liblzma: Fix validate_map.sh.
881
882    Adding the SPDX license identifier changed the line numbers.
883
884 src/liblzma/validate_map.sh | 2 +-
885 1 file changed, 1 insertion(+), 1 deletion(-)
886
887commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01
888Author: Lasse Collin <lasse.collin@tukaani.org>
889Date:   2024-02-14 19:38:34 +0200
890
891    Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0.
892
893 Makefile.am | 2 +-
894 1 file changed, 1 insertion(+), 1 deletion(-)
895
896commit 0b8cefa136c21d403a01b78517f4decb50172bdb
897Author: Lasse Collin <lasse.collin@tukaani.org>
898Date:   2024-02-14 19:27:46 +0200
899
900    Fixed NEWS for 5.5.2beta.
901
902 NEWS | 8 ++++++--
903 1 file changed, 6 insertions(+), 2 deletions(-)
904
905commit a4557bad96361d93ea171ed859ac5a696fca824f
906Author: Lasse Collin <lasse.collin@tukaani.org>
907Date:   2024-02-14 19:21:45 +0200
908
909    liblzma: Silence warnings in --enable-small build.
910
911 src/liblzma/lzma/lzma_decoder.c        | 2 ++
912 src/liblzma/rangecoder/range_decoder.h | 1 +
913 2 files changed, 3 insertions(+)
914
915commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2
916Author: Lasse Collin <lasse.collin@tukaani.org>
917Date:   2024-02-14 19:15:58 +0200
918
919    Build: Install COPYING.0BSD as part of docs.
920
921 Makefile.am | 1 +
922 1 file changed, 1 insertion(+)
923
924commit b74e10bd839bcdc239afb5300ffaee195f34c217
925Author: Lasse Collin <lasse.collin@tukaani.org>
926Date:   2024-02-14 19:14:05 +0200
927
928    Docs: List COPYING.0BSD in README.
929
930 README | 1 +
931 1 file changed, 1 insertion(+)
932
933commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e
934Author: Lasse Collin <lasse.collin@tukaani.org>
935Date:   2024-02-14 19:11:48 +0200
936
937    Docs: Include doc/examples/11_file_info.c in tarballs.
938
939    It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
940    but it never got into any release tarballs because it was
941    forgotten to be added to Makefile.am.
942
943 Makefile.am | 1 +
944 1 file changed, 1 insertion(+)
945
946commit 160b6862646d95dfdbd73ab7f1031ede0f54992d
947Author: Lasse Collin <lasse.collin@tukaani.org>
948Date:   2024-02-14 19:05:58 +0200
949
950    liblzma: Silence a warning.
951
952 src/liblzma/rangecoder/range_decoder.h | 2 +-
953 1 file changed, 1 insertion(+), 1 deletion(-)
954
955commit eeedd4d0925ea417add04ceb42a6c0829244b50c
956Author: Lasse Collin <lasse.collin@tukaani.org>
957Date:   2024-02-14 18:32:27 +0200
958
959    Add NEWS for 5.5.2beta.
960
961 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
962 1 file changed, 60 insertions(+)
963
964commit 8af7db854f903068d72a9a0d21103cb0c5027fa8
965Author: Lasse Collin <lasse.collin@tukaani.org>
966Date:   2024-02-13 14:32:47 +0200
967
968    xz: Mention lzmainfo if trying to use 'lzma --list'.
969
970    This kind of fixes the problem reported here:
971    https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020
972
973 src/xz/list.c | 16 ++++++++++++++--
974 1 file changed, 14 insertions(+), 2 deletions(-)
975
976commit 0668907ff736e4cd16738c10d39a2bc9e851aefb
977Author: Lasse Collin <lasse.collin@tukaani.org>
978Date:   2024-02-14 14:58:36 +0200
979
980    liblzma: Add comments.
981
982 src/liblzma/lzma/lzma_decoder.c        |  9 +++++++++
983 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++--
984 2 files changed, 18 insertions(+), 2 deletions(-)
985
986commit 109f1913d4824c8214d5bbd38ebebf62c37572da
987Author: Lasse Collin <lasse.collin@tukaani.org>
988Date:   2024-02-13 17:00:17 +0200
989
990    Scripts: Add lz4 support to xzgrep and xzdiff.
991
992 src/scripts/xzdiff.1  |  8 +++++---
993 src/scripts/xzdiff.in | 14 +++++++++-----
994 src/scripts/xzgrep.1  |  6 ++++--
995 src/scripts/xzgrep.in |  1 +
996 4 files changed, 19 insertions(+), 10 deletions(-)
997
998commit de55485cb23af56c5adbe3239b935c957ff8ac4f
999Author: Lasse Collin <lasse.collin@tukaani.org>
1000Date:   2024-02-13 14:05:13 +0200
1001
1002    liblzma: Choose the range decoder variants using a bitmask macro.
1003
1004 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------
1005 1 file changed, 53 insertions(+), 11 deletions(-)
1006
1007commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5
1008Author: Lasse Collin <lasse.collin@tukaani.org>
1009Date:   2024-02-13 11:38:10 +0200
1010
1011    xz: Fix outdated threading related info on the man page.
1012
1013 src/xz/xz.1 | 22 ++++++++++++++--------
1014 1 file changed, 14 insertions(+), 8 deletions(-)
1015
1016commit 3182a330c1512cc1f5c87b5c5a272578e60a5158
1017Author: Lasse Collin <lasse.collin@tukaani.org>
1018Date:   2024-02-12 17:09:10 +0200
1019
1020    liblzma: Range decoder: Add x86-64 inline assembly.
1021
1022    It's compatible with GCC and Clang.
1023
1024 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++
1025 1 file changed, 491 insertions(+)
1026
1027commit cba2edc991dffba7cd4891dbc1bd26cb950cf053
1028Author: Lasse Collin <lasse.collin@tukaani.org>
1029Date:   2024-02-12 17:09:10 +0200
1030
1031    liblzma: Range decoder: Add branchless C code.
1032
1033    It's used only for basic bittrees and fixed-size reverse bittree
1034    because those showed a clear benefit on x86-64 with GCC and Clang.
1035    The other methods were more mixed and thus are commented out but
1036    they should be tested on other archs.
1037
1038 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++
1039 1 file changed, 76 insertions(+)
1040
1041commit e290a72d6dee71faf3a90c9678b2f730083666a7
1042Author: Lasse Collin <lasse.collin@tukaani.org>
1043Date:   2024-02-12 17:09:10 +0200
1044
1045    liblzma: Clarify a comment.
1046
1047 src/liblzma/lzma/lzma_decoder.c | 9 ++++++---
1048 1 file changed, 6 insertions(+), 3 deletions(-)
1049
1050commit 5e04706b91ca90d6befd4da24a588a55e631d4a9
1051Author: Lasse Collin <lasse.collin@tukaani.org>
1052Date:   2024-02-12 17:09:10 +0200
1053
1054    liblzma: LZMA decoder: Optimize loop comparison.
1055
1056    But now it needs one more local variable.
1057
1058 src/liblzma/lzma/lzma_decoder.c        |  5 ++---
1059 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++-
1060 2 files changed, 11 insertions(+), 4 deletions(-)
1061
1062commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66
1063Author: Lasse Collin <lasse.collin@tukaani.org>
1064Date:   2024-02-12 17:09:10 +0200
1065
1066    liblzma: Optimize literal_subcoder() macro slightly.
1067
1068 src/liblzma/lzma/lzma_common.h                 | 22 ++++++++++++----------
1069 src/liblzma/lzma/lzma_decoder.c                | 12 ++++++------
1070 src/liblzma/lzma/lzma_encoder.c                |  6 +++---
1071 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  2 +-
1072 src/liblzma/lzma/lzma_encoder_private.h        |  4 ++--
1073 5 files changed, 24 insertions(+), 22 deletions(-)
1074
1075commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5
1076Author: Lasse Collin <lasse.collin@tukaani.org>
1077Date:   2024-02-12 17:09:10 +0200
1078
1079    liblzma: LZ decoder: Add unlikely().
1080
1081 src/liblzma/lz/lz_decoder.h | 2 +-
1082 1 file changed, 1 insertion(+), 1 deletion(-)
1083
1084commit 9c252e3ed086c6b72590b2531586c42596d4a9d9
1085Author: Lasse Collin <lasse.collin@tukaani.org>
1086Date:   2024-02-12 17:09:10 +0200
1087
1088    liblzma: LZ decoder: Remove a useless unlikely().
1089
1090 src/liblzma/lz/lz_decoder.h | 2 +-
1091 1 file changed, 1 insertion(+), 1 deletion(-)
1092
1093commit f3872a59475456c5d365cad9f1c5be514cfa54b5
1094Author: Lasse Collin <lasse.collin@tukaani.org>
1095Date:   2024-02-12 17:09:10 +0200
1096
1097    liblzma: Optimize LZ decoder slightly.
1098
1099    Now extra buffer space is reserved so that repeating bytes for
1100    any single match will never need to copy from two places (both
1101    the beginning and the end of the buffer). This simplifies
1102    dict_repeat() and helps a little with speed.
1103
1104    This seems to reduce .lzma decompression time about 2 %, so
1105    with .xz and CRC it could be slightly less. The small things
1106    add up still.
1107
1108 src/liblzma/lz/lz_decoder.c     |  43 ++++++++++++-----
1109 src/liblzma/lz/lz_decoder.h     | 101 +++++++++++++++++++++-------------------
1110 src/liblzma/lzma/lzma_decoder.c |   4 +-
1111 3 files changed, 88 insertions(+), 60 deletions(-)
1112
1113commit eb518446e578acf079abae5f1ce28db7b6e59bc1
1114Author: Lasse Collin <lasse.collin@tukaani.org>
1115Date:   2024-02-12 17:09:10 +0200
1116
1117    liblzma: LZMA decoder: Get rid of next_state[].
1118
1119    It's not completely obvious if this is better in the decoder.
1120    It should be good if compiler can avoid creating a branch
1121    (like using CMOV on x86).
1122
1123    This also makes lzma_encoder.c use the new macros.
1124
1125 src/liblzma/lzma/lzma_common.h  | 14 ++++++++++++++
1126 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++----------------------
1127 src/liblzma/lzma/lzma_encoder.c |  4 ++--
1128 3 files changed, 24 insertions(+), 24 deletions(-)
1129
1130commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604
1131Author: Lasse Collin <lasse.collin@tukaani.org>
1132Date:   2024-02-12 17:09:10 +0200
1133
1134    liblzma: LZMA decoder improvements.
1135
1136    This adds macros for bittree decoding which prepares the code
1137    for alternative C versions and inline assembly.
1138
1139 src/liblzma/lzma/lzma_decoder.c        | 264 ++++++++++-----------------------
1140 src/liblzma/rangecoder/range_common.h  |   4 +
1141 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++--
1142 3 files changed, 210 insertions(+), 200 deletions(-)
1143
1144commit de5c5e417645ad8906ef914bc059d08c1462fc29
1145Author: Jia Tan <jiat0218@gmail.com>
1146Date:   2024-02-12 17:09:10 +0200
1147
1148    liblzma: Creates Non-resumable and Resumable modes for lzma_decoder.
1149
1150    The new decoder resumes the first decoder loop in the Resumable mode.
1151    Then, the code executes in Non-resumable mode until it detects that it
1152    cannot guarantee to have enough input/output to decode another symbol.
1153
1154    The Resumable mode is how the decoder has always worked. Before decoding
1155    every input bit, it checks if there is enough space and will save its
1156    location to be resumed later. When the decoder has more input/output,
1157    it jumps back to the correct sequence in the Resumable mode code.
1158
1159    When the input/output buffers are large, the Resumable mode is much
1160    slower than the Non-resumable because it has more branches and is harder
1161    for the compiler to optimize since it is in a large switch block.
1162
1163    Early benchmarking shows significant time improvement (8-10% on gcc and
1164    clang x86) by using the Non-resumable code as much as possible.
1165
1166 src/liblzma/lz/lz_decoder.h     |  14 +-
1167 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------
1168 2 files changed, 521 insertions(+), 213 deletions(-)
1169
1170commit e446ab7a18abfde18f8d1cf02a914df72b1370e3
1171Author: Jia Tan <jiat0218@gmail.com>
1172Date:   2024-02-12 17:09:10 +0200
1173
1174    liblzma: Creates separate "safe" range decoder mode.
1175
1176    The new "safe" range decoder mode is the same as old range decoder, but
1177    now the default behavior of the range decoder will not check if there is
1178    enough input or output to complete the operation. When the buffers are
1179    close to fully consumed, the "safe" operations must be used instead. This
1180    will improve speed because it will reduce the number of branches needed
1181    for most of the range decoder operations.
1182
1183 src/liblzma/lzma/lzma_decoder.c        | 108 ++++++++-------------------------
1184 src/liblzma/rangecoder/range_decoder.h |  77 +++++++++++++++++------
1185 2 files changed, 82 insertions(+), 103 deletions(-)
1186
1187commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9
1188Author: Lasse Collin <lasse.collin@tukaani.org>
1189Date:   2024-02-12 17:09:10 +0200
1190
1191    doxygen/footer.html: Add missing closing tags and don't open a new tab.
1192
1193    The footer template from Doxygen has the closing </body> </html>
1194    as Doxygen doesn't add them otherwise.
1195
1196    target="_blank" was omitted as it's not useful here but
1197    it can be slightly annoying as one cannot just go back
1198    in the browser history.
1199
1200    Since the footer links to the license file in the same
1201    directory and not to CC website, the rel attributes
1202    can be omitted.
1203
1204 doxygen/footer.html | 6 ++++--
1205 1 file changed, 4 insertions(+), 2 deletions(-)
1206
1207commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92
1208Author: Lasse Collin <lasse.collin@tukaani.org>
1209Date:   2024-02-13 13:19:10 +0200
1210
1211    Tweak the expressions in AUTHORS.
1212
1213 AUTHORS | 31 +++++++++++++++++++++++--------
1214 1 file changed, 23 insertions(+), 8 deletions(-)
1215
1216commit d231d56580175fa040fdd3c6207a58243ce6217b
1217Author: Lasse Collin <lasse.collin@tukaani.org>
1218Date:   2024-02-13 13:07:33 +0200
1219
1220    Translations: Add the man page translators into man page header comment.
1221
1222    It looked odd to only have the original English authors listed
1223    in the header comments of the translated files.
1224
1225 po4a/.gitignore |  1 +
1226 po4a/po4a.conf  | 14 +++++++-------
1227 po4a/update-po  | 18 ++++++++++++++++++
1228 3 files changed, 26 insertions(+), 7 deletions(-)
1229
1230commit 6d35fcb936474fca1acaebfd9502c097b6fde88e
1231Author: Lasse Collin <lasse.collin@tukaani.org>
1232Date:   2024-02-12 17:09:10 +0200
1233
1234    Translations: Translate also messages of lzmainfo.
1235
1236    lzmainfo has had translation support since 2009 at least but
1237    it was never added to po/POTFILES.in so the messages weren't
1238    translated. It's a very rarely needed tool so it's not too bad.
1239
1240    This also adds src/xz/mytime.c to po/POTFILES.in although there
1241    are no translatable strings. It's simpler this way so that it
1242    won't be forgotten if strings were ever added to that file.
1243
1244 po/POTFILES.in | 2 ++
1245 1 file changed, 2 insertions(+)
1246
1247commit a9f369dd54b05f9ac4e00ead9d765d04fc259868
1248Author: Lasse Collin <lasse.collin@tukaani.org>
1249Date:   2024-02-12 17:09:10 +0200
1250
1251    Translations: Add custom .pot header with SPDX license identifier.
1252
1253    The same is used for both po/xz.pot and po4a/xz-man.pot.
1254
1255 Makefile.am      | 1 +
1256 po/xz.pot-header | 7 +++++++
1257 po4a/update-po   | 8 ++++++++
1258 3 files changed, 16 insertions(+)
1259
1260commit 469cd6653bb96e83c5cf1031c204d34566b15f44
1261Author: Lasse Collin <lasse.collin@tukaani.org>
1262Date:   2024-02-12 17:09:10 +0200
1263
1264    Translations: po4a/update-po: Add copyright notice to xz-man.pot.
1265
1266    All man pages are under 0BSD now so this is simple now.
1267
1268 po4a/update-po | 2 +-
1269 1 file changed, 1 insertion(+), 1 deletion(-)
1270
1271commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699
1272Author: Lasse Collin <lasse.collin@tukaani.org>
1273Date:   2024-02-12 17:09:10 +0200
1274
1275    Update COPYING about the man pages of the scripts.
1276
1277 COPYING | 6 +++---
1278 1 file changed, 3 insertions(+), 3 deletions(-)
1279
1280commit e48287bf51afd5184ea74de1dcade9e153f873f7
1281Author: Lasse Collin <lasse.collin@tukaani.org>
1282Date:   2024-02-12 17:09:10 +0200
1283
1284    xzdiff, xzgrep, and xzmore: Rewrite the man pages.
1285
1286    The main reason is a kind of silly one:
1287
1288    xz-man.pot contains strings from all man pages in XZ Utils.
1289    The man pages of xzdiff, xzgrep, and xzmore were under GPLv2
1290    and the rest under 0BSD. Thus xz-man.pot contained strings
1291    under two licences. po4a creates the translated man pages
1292    from the combined 0BSD+GPLv2 xz-man.pot.
1293
1294    I haven't liked this mixing in xz-man.pot but the
1295    Translation Project requires that all man pages must be
1296    in the same .pot file. So a separate xz-man-gpl.pot
1297    wasn't an option.
1298
1299    Since these man pages are short, rewriting them was quick enough.
1300    Now xz-man.pot is entirely under 0BSD and marking the per-file
1301    licenses is simpler.
1302
1303    As a bonus, some wording hopefully is now slightly better
1304    although it's perhaps a matter of taste.
1305
1306    NOTE: In xzgrep.1, the EXIT STATUS section was written by me
1307    in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's
1308    why that section could be taken as is from the old xzgrep.1.
1309
1310 src/scripts/xzdiff.1 |  94 ++++++++++++++++++++++++-----------------
1311 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++-------------------
1312 src/scripts/xzmore.1 |  79 ++++++++++++++++++++---------------
1313 3 files changed, 173 insertions(+), 116 deletions(-)
1314
1315commit 3e551b111b8ae8150f1a1040364dbafc034f22be
1316Author: Lasse Collin <lasse.collin@tukaani.org>
1317Date:   2024-02-12 17:09:10 +0200
1318
1319    xzless: Update man page slightly.
1320
1321    The xz tool can decompress three file formats and xzless
1322    has always supported uncompressed files too.
1323
1324 src/scripts/xzless.1 | 8 ++++----
1325 1 file changed, 4 insertions(+), 4 deletions(-)
1326
1327commit 40f36da2262d13d6e1ba8449caa855512ae626d7
1328Author: Lasse Collin <lasse.collin@tukaani.org>
1329Date:   2024-02-12 17:09:10 +0200
1330
1331    Translations: Change po/Makevars to add a copyright notice to po/xz.pot.
1332
1333 po/Makevars | 4 ++--
1334 1 file changed, 2 insertions(+), 2 deletions(-)
1335
1336commit 24192854e2ea5c06997431a98bda3c36c5da1497
1337Author: Lasse Collin <lasse.collin@tukaani.org>
1338Date:   2024-02-12 17:09:10 +0200
1339
1340    Translations: Update po/Makevars to use the template from gettext 0.22.4.
1341
1342    Also add SPDX license identifier now that there is a known license.
1343
1344 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
1345 1 file changed, 46 insertions(+), 5 deletions(-)
1346
1347commit b94154957370116480b43bcabca25fc52deb9853
1348Author: Lasse Collin <lasse.collin@tukaani.org>
1349Date:   2024-02-12 17:09:10 +0200
1350
1351    liblzma: Include the SPDX license identifier 0BSD to generated files.
1352
1353    Perhaps the generated files aren't even copyrightable but
1354    using the same license for them as for the rest of the liblzma
1355    keeps things more consistent for tools that look for license info.
1356
1357 src/liblzma/check/crc32_table_be.h      |  4 +++-
1358 src/liblzma/check/crc32_table_le.h      |  4 +++-
1359 src/liblzma/check/crc32_tablegen.c      | 16 ++++++++++------
1360 src/liblzma/check/crc64_table_be.h      |  4 +++-
1361 src/liblzma/check/crc64_table_le.h      |  4 +++-
1362 src/liblzma/check/crc64_tablegen.c      |  8 +++++---
1363 src/liblzma/lz/lz_encoder_hash_table.h  |  4 +++-
1364 src/liblzma/lzma/fastpos_table.c        |  4 +++-
1365 src/liblzma/lzma/fastpos_tablegen.c     | 12 +++++++-----
1366 src/liblzma/rangecoder/price_table.c    |  4 +++-
1367 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++-----
1368 11 files changed, 50 insertions(+), 26 deletions(-)
1369
1370commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4
1371Author: Lasse Collin <lasse.collin@tukaani.org>
1372Date:   2024-02-12 17:09:10 +0200
1373
1374    liblzma: Fix compilation of price_tablegen.c.
1375
1376    It is built and run only manually so this didn't matter
1377    unless one wanted to regenerate the price_table.c.
1378
1379 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
1380 src/liblzma/rangecoder/range_common.h   | 5 ++++-
1381 2 files changed, 9 insertions(+), 1 deletion(-)
1382
1383commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf
1384Author: Lasse Collin <lasse.collin@tukaani.org>
1385Date:   2024-02-12 17:09:10 +0200
1386
1387    Add SPDX license identifiers to GPL, LGPL, and FSFULLR files.
1388
1389 extra/scanlzma/scanlzma.c | 2 ++
1390 lib/Makefile.am           | 2 ++
1391 lib/getopt-cdefs.h        | 2 ++
1392 lib/getopt-core.h         | 2 ++
1393 lib/getopt-ext.h          | 2 ++
1394 lib/getopt-pfx-core.h     | 2 ++
1395 lib/getopt-pfx-ext.h      | 2 ++
1396 lib/getopt.c              | 2 ++
1397 lib/getopt.in.h           | 2 ++
1398 lib/getopt1.c             | 2 ++
1399 lib/getopt_int.h          | 2 ++
1400 m4/ax_pthread.m4          | 2 ++
1401 m4/getopt.m4              | 2 ++
1402 m4/posix-shell.m4         | 2 ++
1403 m4/visibility.m4          | 2 ++
1404 src/scripts/xzdiff.1      | 3 +--
1405 src/scripts/xzdiff.in     | 1 +
1406 src/scripts/xzgrep.1      | 3 +--
1407 src/scripts/xzgrep.in     | 1 +
1408 src/scripts/xzless.in     | 1 +
1409 src/scripts/xzmore.1      | 3 +--
1410 src/scripts/xzmore.in     | 1 +
1411 22 files changed, 37 insertions(+), 6 deletions(-)
1412
1413commit 22af94128b89a131f5e58ae69bee5e50227c15da
1414Author: Lasse Collin <lasse.collin@tukaani.org>
1415Date:   2024-02-12 17:09:10 +0200
1416
1417    Add SPDX license identifier into 0BSD source code files.
1418
1419 .github/workflows/ci.yml                       | 2 ++
1420 .github/workflows/windows-ci.yml               | 2 ++
1421 CMakeLists.txt                                 | 2 ++
1422 Makefile.am                                    | 3 +--
1423 autogen.sh                                     | 1 +
1424 build-aux/ci_build.sh                          | 3 ++-
1425 build-aux/manconv.sh                           | 3 ++-
1426 build-aux/version.sh                           | 3 ++-
1427 cmake/remove-ordinals.cmake                    | 2 ++
1428 cmake/tuklib_common.cmake                      | 4 ++++
1429 cmake/tuklib_cpucores.cmake                    | 4 ++++
1430 cmake/tuklib_integer.cmake                     | 4 ++++
1431 cmake/tuklib_large_file_support.cmake          | 4 ++++
1432 cmake/tuklib_mbstr.cmake                       | 4 ++++
1433 cmake/tuklib_physmem.cmake                     | 4 ++++
1434 cmake/tuklib_progname.cmake                    | 4 ++++
1435 configure.ac                                   | 4 +++-
1436 debug/Makefile.am                              | 3 +--
1437 debug/crc32.c                                  | 2 ++
1438 debug/full_flush.c                             | 2 ++
1439 debug/hex2bin.c                                | 2 ++
1440 debug/known_sizes.c                            | 2 ++
1441 debug/memusage.c                               | 2 ++
1442 debug/repeat.c                                 | 2 ++
1443 debug/sync_flush.c                             | 2 ++
1444 debug/translation.bash                         | 1 +
1445 doc/examples/01_compress_easy.c                | 2 ++
1446 doc/examples/02_decompress.c                   | 2 ++
1447 doc/examples/03_compress_custom.c              | 2 ++
1448 doc/examples/04_compress_easy_mt.c             | 2 ++
1449 doc/examples/11_file_info.c                    | 2 ++
1450 doc/examples/Makefile                          | 3 +--
1451 dos/Makefile                                   | 2 ++
1452 dos/config.h                                   | 2 ++
1453 doxygen/update-doxygen                         | 3 ++-
1454 extra/7z2lzma/7z2lzma.bash                     | 3 ++-
1455 m4/tuklib_common.m4                            | 8 ++++++--
1456 m4/tuklib_cpucores.m4                          | 8 ++++++--
1457 m4/tuklib_integer.m4                           | 8 ++++++--
1458 m4/tuklib_mbstr.m4                             | 8 ++++++--
1459 m4/tuklib_physmem.m4                           | 8 ++++++--
1460 m4/tuklib_progname.m4                          | 8 ++++++--
1461 po/POTFILES.in                                 | 2 ++
1462 po4a/po4a.conf                                 | 2 ++
1463 po4a/update-po                                 | 3 ++-
1464 src/Makefile.am                                | 3 +--
1465 src/common/common_w32res.rc                    | 2 ++
1466 src/common/mythread.h                          | 2 ++
1467 src/common/sysdefs.h                           | 2 ++
1468 src/common/tuklib_common.h                     | 2 ++
1469 src/common/tuklib_config.h                     | 2 ++
1470 src/common/tuklib_cpucores.c                   | 2 ++
1471 src/common/tuklib_cpucores.h                   | 2 ++
1472 src/common/tuklib_exit.c                       | 2 ++
1473 src/common/tuklib_exit.h                       | 2 ++
1474 src/common/tuklib_gettext.h                    | 2 ++
1475 src/common/tuklib_integer.h                    | 2 ++
1476 src/common/tuklib_mbstr.h                      | 2 ++
1477 src/common/tuklib_mbstr_fw.c                   | 2 ++
1478 src/common/tuklib_mbstr_width.c                | 2 ++
1479 src/common/tuklib_open_stdxxx.c                | 2 ++
1480 src/common/tuklib_open_stdxxx.h                | 2 ++
1481 src/common/tuklib_physmem.c                    | 2 ++
1482 src/common/tuklib_physmem.h                    | 2 ++
1483 src/common/tuklib_progname.c                   | 2 ++
1484 src/common/tuklib_progname.h                   | 2 ++
1485 src/liblzma/Makefile.am                        | 3 +--
1486 src/liblzma/api/Makefile.am                    | 3 +--
1487 src/liblzma/api/lzma.h                         | 2 ++
1488 src/liblzma/api/lzma/base.h                    | 2 ++
1489 src/liblzma/api/lzma/bcj.h                     | 2 ++
1490 src/liblzma/api/lzma/block.h                   | 2 ++
1491 src/liblzma/api/lzma/check.h                   | 2 ++
1492 src/liblzma/api/lzma/container.h               | 2 ++
1493 src/liblzma/api/lzma/delta.h                   | 2 ++
1494 src/liblzma/api/lzma/filter.h                  | 2 ++
1495 src/liblzma/api/lzma/hardware.h                | 2 ++
1496 src/liblzma/api/lzma/index.h                   | 2 ++
1497 src/liblzma/api/lzma/index_hash.h              | 2 ++
1498 src/liblzma/api/lzma/lzma12.h                  | 2 ++
1499 src/liblzma/api/lzma/stream_flags.h            | 2 ++
1500 src/liblzma/api/lzma/version.h                 | 2 ++
1501 src/liblzma/api/lzma/vli.h                     | 2 ++
1502 src/liblzma/check/Makefile.inc                 | 4 ++--
1503 src/liblzma/check/check.c                      | 2 ++
1504 src/liblzma/check/check.h                      | 2 ++
1505 src/liblzma/check/crc32_arm64.h                | 2 ++
1506 src/liblzma/check/crc32_fast.c                 | 2 ++
1507 src/liblzma/check/crc32_small.c                | 2 ++
1508 src/liblzma/check/crc32_table.c                | 2 ++
1509 src/liblzma/check/crc32_tablegen.c             | 2 ++
1510 src/liblzma/check/crc32_x86.S                  | 2 ++
1511 src/liblzma/check/crc64_fast.c                 | 2 ++
1512 src/liblzma/check/crc64_small.c                | 2 ++
1513 src/liblzma/check/crc64_table.c                | 2 ++
1514 src/liblzma/check/crc64_tablegen.c             | 2 ++
1515 src/liblzma/check/crc64_x86.S                  | 2 ++
1516 src/liblzma/check/crc_common.h                 | 2 ++
1517 src/liblzma/check/crc_x86_clmul.h              | 2 ++
1518 src/liblzma/check/sha256.c                     | 2 ++
1519 src/liblzma/common/Makefile.inc                | 3 +--
1520 src/liblzma/common/alone_decoder.c             | 2 ++
1521 src/liblzma/common/alone_decoder.h             | 2 ++
1522 src/liblzma/common/alone_encoder.c             | 2 ++
1523 src/liblzma/common/auto_decoder.c              | 2 ++
1524 src/liblzma/common/block_buffer_decoder.c      | 2 ++
1525 src/liblzma/common/block_buffer_encoder.c      | 2 ++
1526 src/liblzma/common/block_buffer_encoder.h      | 2 ++
1527 src/liblzma/common/block_decoder.c             | 2 ++
1528 src/liblzma/common/block_decoder.h             | 2 ++
1529 src/liblzma/common/block_encoder.c             | 2 ++
1530 src/liblzma/common/block_encoder.h             | 2 ++
1531 src/liblzma/common/block_header_decoder.c      | 2 ++
1532 src/liblzma/common/block_header_encoder.c      | 2 ++
1533 src/liblzma/common/block_util.c                | 2 ++
1534 src/liblzma/common/common.c                    | 2 ++
1535 src/liblzma/common/common.h                    | 2 ++
1536 src/liblzma/common/easy_buffer_encoder.c       | 2 ++
1537 src/liblzma/common/easy_decoder_memusage.c     | 2 ++
1538 src/liblzma/common/easy_encoder.c              | 2 ++
1539 src/liblzma/common/easy_encoder_memusage.c     | 2 ++
1540 src/liblzma/common/easy_preset.c               | 2 ++
1541 src/liblzma/common/easy_preset.h               | 2 ++
1542 src/liblzma/common/file_info.c                 | 2 ++
1543 src/liblzma/common/filter_buffer_decoder.c     | 2 ++
1544 src/liblzma/common/filter_buffer_encoder.c     | 2 ++
1545 src/liblzma/common/filter_common.c             | 2 ++
1546 src/liblzma/common/filter_common.h             | 2 ++
1547 src/liblzma/common/filter_decoder.c            | 2 ++
1548 src/liblzma/common/filter_decoder.h            | 2 ++
1549 src/liblzma/common/filter_encoder.c            | 2 ++
1550 src/liblzma/common/filter_encoder.h            | 2 ++
1551 src/liblzma/common/filter_flags_decoder.c      | 2 ++
1552 src/liblzma/common/filter_flags_encoder.c      | 2 ++
1553 src/liblzma/common/hardware_cputhreads.c       | 2 ++
1554 src/liblzma/common/hardware_physmem.c          | 2 ++
1555 src/liblzma/common/index.c                     | 2 ++
1556 src/liblzma/common/index.h                     | 2 ++
1557 src/liblzma/common/index_decoder.c             | 2 ++
1558 src/liblzma/common/index_decoder.h             | 2 ++
1559 src/liblzma/common/index_encoder.c             | 2 ++
1560 src/liblzma/common/index_encoder.h             | 2 ++
1561 src/liblzma/common/index_hash.c                | 2 ++
1562 src/liblzma/common/lzip_decoder.c              | 2 ++
1563 src/liblzma/common/lzip_decoder.h              | 2 ++
1564 src/liblzma/common/memcmplen.h                 | 2 ++
1565 src/liblzma/common/microlzma_decoder.c         | 2 ++
1566 src/liblzma/common/microlzma_encoder.c         | 2 ++
1567 src/liblzma/common/outqueue.c                  | 2 ++
1568 src/liblzma/common/outqueue.h                  | 2 ++
1569 src/liblzma/common/stream_buffer_decoder.c     | 2 ++
1570 src/liblzma/common/stream_buffer_encoder.c     | 2 ++
1571 src/liblzma/common/stream_decoder.c            | 2 ++
1572 src/liblzma/common/stream_decoder.h            | 2 ++
1573 src/liblzma/common/stream_decoder_mt.c         | 2 ++
1574 src/liblzma/common/stream_encoder.c            | 2 ++
1575 src/liblzma/common/stream_encoder_mt.c         | 2 ++
1576 src/liblzma/common/stream_flags_common.c       | 2 ++
1577 src/liblzma/common/stream_flags_common.h       | 2 ++
1578 src/liblzma/common/stream_flags_decoder.c      | 2 ++
1579 src/liblzma/common/stream_flags_encoder.c      | 2 ++
1580 src/liblzma/common/string_conversion.c         | 2 ++
1581 src/liblzma/common/vli_decoder.c               | 2 ++
1582 src/liblzma/common/vli_encoder.c               | 2 ++
1583 src/liblzma/common/vli_size.c                  | 2 ++
1584 src/liblzma/delta/Makefile.inc                 | 3 +--
1585 src/liblzma/delta/delta_common.c               | 2 ++
1586 src/liblzma/delta/delta_common.h               | 2 ++
1587 src/liblzma/delta/delta_decoder.c              | 2 ++
1588 src/liblzma/delta/delta_decoder.h              | 2 ++
1589 src/liblzma/delta/delta_encoder.c              | 2 ++
1590 src/liblzma/delta/delta_encoder.h              | 2 ++
1591 src/liblzma/delta/delta_private.h              | 2 ++
1592 src/liblzma/liblzma.pc.in                      | 3 +--
1593 src/liblzma/liblzma_generic.map                | 2 ++
1594 src/liblzma/liblzma_linux.map                  | 2 ++
1595 src/liblzma/liblzma_w32res.rc                  | 2 ++
1596 src/liblzma/lz/Makefile.inc                    | 3 +--
1597 src/liblzma/lz/lz_decoder.c                    | 2 ++
1598 src/liblzma/lz/lz_decoder.h                    | 2 ++
1599 src/liblzma/lz/lz_encoder.c                    | 2 ++
1600 src/liblzma/lz/lz_encoder.h                    | 2 ++
1601 src/liblzma/lz/lz_encoder_hash.h               | 2 ++
1602 src/liblzma/lz/lz_encoder_mf.c                 | 2 ++
1603 src/liblzma/lzma/Makefile.inc                  | 3 +--
1604 src/liblzma/lzma/fastpos.h                     | 2 ++
1605 src/liblzma/lzma/fastpos_tablegen.c            | 2 ++
1606 src/liblzma/lzma/lzma2_decoder.c               | 2 ++
1607 src/liblzma/lzma/lzma2_decoder.h               | 2 ++
1608 src/liblzma/lzma/lzma2_encoder.c               | 2 ++
1609 src/liblzma/lzma/lzma2_encoder.h               | 2 ++
1610 src/liblzma/lzma/lzma_common.h                 | 2 ++
1611 src/liblzma/lzma/lzma_decoder.c                | 2 ++
1612 src/liblzma/lzma/lzma_decoder.h                | 2 ++
1613 src/liblzma/lzma/lzma_encoder.c                | 2 ++
1614 src/liblzma/lzma/lzma_encoder.h                | 2 ++
1615 src/liblzma/lzma/lzma_encoder_optimum_fast.c   | 2 ++
1616 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++
1617 src/liblzma/lzma/lzma_encoder_presets.c        | 2 ++
1618 src/liblzma/lzma/lzma_encoder_private.h        | 2 ++
1619 src/liblzma/rangecoder/Makefile.inc            | 3 +--
1620 src/liblzma/rangecoder/price.h                 | 2 ++
1621 src/liblzma/rangecoder/price_tablegen.c        | 2 ++
1622 src/liblzma/rangecoder/range_common.h          | 2 ++
1623 src/liblzma/rangecoder/range_decoder.h         | 2 ++
1624 src/liblzma/rangecoder/range_encoder.h         | 2 ++
1625 src/liblzma/simple/Makefile.inc                | 3 +--
1626 src/liblzma/simple/arm.c                       | 2 ++
1627 src/liblzma/simple/arm64.c                     | 2 ++
1628 src/liblzma/simple/armthumb.c                  | 2 ++
1629 src/liblzma/simple/ia64.c                      | 2 ++
1630 src/liblzma/simple/powerpc.c                   | 2 ++
1631 src/liblzma/simple/riscv.c                     | 2 ++
1632 src/liblzma/simple/simple_coder.c              | 2 ++
1633 src/liblzma/simple/simple_coder.h              | 2 ++
1634 src/liblzma/simple/simple_decoder.c            | 2 ++
1635 src/liblzma/simple/simple_decoder.h            | 2 ++
1636 src/liblzma/simple/simple_encoder.c            | 2 ++
1637 src/liblzma/simple/simple_encoder.h            | 2 ++
1638 src/liblzma/simple/simple_private.h            | 2 ++
1639 src/liblzma/simple/sparc.c                     | 2 ++
1640 src/liblzma/simple/x86.c                       | 2 ++
1641 src/liblzma/validate_map.sh                    | 1 +
1642 src/lzmainfo/Makefile.am                       | 3 +--
1643 src/lzmainfo/lzmainfo.c                        | 2 ++
1644 src/lzmainfo/lzmainfo_w32res.rc                | 2 ++
1645 src/scripts/Makefile.am                        | 3 +--
1646 src/xz/Makefile.am                             | 3 +--
1647 src/xz/args.c                                  | 2 ++
1648 src/xz/args.h                                  | 2 ++
1649 src/xz/coder.c                                 | 2 ++
1650 src/xz/coder.h                                 | 2 ++
1651 src/xz/file_io.c                               | 2 ++
1652 src/xz/file_io.h                               | 2 ++
1653 src/xz/hardware.c                              | 2 ++
1654 src/xz/hardware.h                              | 2 ++
1655 src/xz/list.c                                  | 2 ++
1656 src/xz/list.h                                  | 2 ++
1657 src/xz/main.c                                  | 2 ++
1658 src/xz/main.h                                  | 2 ++
1659 src/xz/message.c                               | 2 ++
1660 src/xz/message.h                               | 2 ++
1661 src/xz/mytime.c                                | 2 ++
1662 src/xz/mytime.h                                | 2 ++
1663 src/xz/options.c                               | 2 ++
1664 src/xz/options.h                               | 2 ++
1665 src/xz/private.h                               | 2 ++
1666 src/xz/signals.c                               | 2 ++
1667 src/xz/signals.h                               | 2 ++
1668 src/xz/suffix.c                                | 2 ++
1669 src/xz/suffix.h                                | 2 ++
1670 src/xz/util.c                                  | 2 ++
1671 src/xz/util.h                                  | 2 ++
1672 src/xz/xz_w32res.rc                            | 2 ++
1673 src/xzdec/Makefile.am                          | 3 +--
1674 src/xzdec/lzmadec_w32res.rc                    | 2 ++
1675 src/xzdec/xzdec.c                              | 2 ++
1676 src/xzdec/xzdec_w32res.rc                      | 2 ++
1677 tests/Makefile.am                              | 3 +--
1678 tests/bcj_test.c                               | 2 ++
1679 tests/code_coverage.sh                         | 1 +
1680 tests/create_compress_files.c                  | 2 ++
1681 tests/ossfuzz/fuzz_common.h                    | 2 ++
1682 tests/ossfuzz/fuzz_decode_alone.c              | 2 ++
1683 tests/ossfuzz/fuzz_decode_stream.c             | 2 ++
1684 tests/ossfuzz/fuzz_encode_stream.c             | 2 ++
1685 tests/test_bcj_exact_size.c                    | 2 ++
1686 tests/test_block_header.c                      | 2 ++
1687 tests/test_check.c                             | 2 ++
1688 tests/test_compress.sh                         | 1 +
1689 tests/test_compress_generated_abc              | 1 +
1690 tests/test_compress_generated_random           | 1 +
1691 tests/test_compress_generated_text             | 1 +
1692 tests/test_compress_prepared_bcj_sparc         | 1 +
1693 tests/test_compress_prepared_bcj_x86           | 1 +
1694 tests/test_files.sh                            | 1 +
1695 tests/test_filter_flags.c                      | 2 ++
1696 tests/test_filter_str.c                        | 2 ++
1697 tests/test_hardware.c                          | 2 ++
1698 tests/test_index.c                             | 2 ++
1699 tests/test_index_hash.c                        | 2 ++
1700 tests/test_lzip_decoder.c                      | 2 ++
1701 tests/test_memlimit.c                          | 2 ++
1702 tests/test_scripts.sh                          | 1 +
1703 tests/test_stream_flags.c                      | 2 ++
1704 tests/test_suffix.sh                           | 1 +
1705 tests/test_vli.c                               | 2 ++
1706 tests/tests.h                                  | 2 ++
1707 tests/tuktest.h                                | 2 ++
1708 windows/build.bash                             | 3 ++-
1709 290 files changed, 588 insertions(+), 58 deletions(-)
1710
1711commit 23de53421ea258cde6a3c33a038b1e9d08f771d1
1712Author: Lasse Collin <lasse.collin@tukaani.org>
1713Date:   2024-02-12 23:25:54 +0200
1714
1715    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
1716
1717 src/liblzma/api/lzma.h | 10 ++++------
1718 1 file changed, 4 insertions(+), 6 deletions(-)
1719
1720commit 689e0228baeb95232430e90d628379db89583d71
1721Author: Lasse Collin <lasse.collin@tukaani.org>
1722Date:   2024-02-12 17:09:10 +0200
1723
1724    Change most public domain parts to 0BSD.
1725
1726    Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
1727    were not touched.
1728
1729    COPYING.0BSD was added.
1730
1731 .github/workflows/ci.yml                       |   3 -
1732 .github/workflows/windows-ci.yml               |   3 -
1733 CMakeLists.txt                                 |   3 -
1734 COPYING                                        | 112 ++++++++++++++-----------
1735 COPYING.0BSD                                   |  11 +++
1736 Makefile.am                                    |   3 -
1737 PACKAGERS                                      |  11 +--
1738 autogen.sh                                     |   3 -
1739 build-aux/ci_build.sh                          |   3 -
1740 build-aux/manconv.sh                           |   3 -
1741 build-aux/version.sh                           |   3 -
1742 cmake/remove-ordinals.cmake                    |   3 -
1743 cmake/tuklib_common.cmake                      |   3 -
1744 cmake/tuklib_cpucores.cmake                    |   3 -
1745 cmake/tuklib_integer.cmake                     |   3 -
1746 cmake/tuklib_large_file_support.cmake          |   3 -
1747 cmake/tuklib_mbstr.cmake                       |   3 -
1748 cmake/tuklib_physmem.cmake                     |   3 -
1749 cmake/tuklib_progname.cmake                    |   3 -
1750 configure.ac                                   |   3 -
1751 debug/Makefile.am                              |   3 -
1752 debug/crc32.c                                  |   3 -
1753 debug/full_flush.c                             |   3 -
1754 debug/hex2bin.c                                |   3 -
1755 debug/known_sizes.c                            |   3 -
1756 debug/memusage.c                               |   3 -
1757 debug/repeat.c                                 |   3 -
1758 debug/sync_flush.c                             |   3 -
1759 debug/translation.bash                         |   3 -
1760 doc/examples/01_compress_easy.c                |   3 -
1761 doc/examples/02_decompress.c                   |   3 -
1762 doc/examples/03_compress_custom.c              |   3 -
1763 doc/examples/04_compress_easy_mt.c             |   3 -
1764 doc/examples/11_file_info.c                    |   3 -
1765 doc/examples/Makefile                          |   3 -
1766 dos/Makefile                                   |   3 -
1767 doxygen/update-doxygen                         |   3 -
1768 extra/7z2lzma/7z2lzma.bash                     |   3 -
1769 m4/tuklib_common.m4                            |   3 -
1770 m4/tuklib_cpucores.m4                          |   3 -
1771 m4/tuklib_integer.m4                           |   3 -
1772 m4/tuklib_mbstr.m4                             |   3 -
1773 m4/tuklib_physmem.m4                           |   3 -
1774 m4/tuklib_progname.m4                          |   3 -
1775 po4a/update-po                                 |   3 -
1776 src/Makefile.am                                |   3 -
1777 src/common/common_w32res.rc                    |   3 -
1778 src/common/mythread.h                          |   3 -
1779 src/common/sysdefs.h                           |   3 -
1780 src/common/tuklib_common.h                     |   3 -
1781 src/common/tuklib_cpucores.c                   |   3 -
1782 src/common/tuklib_cpucores.h                   |   3 -
1783 src/common/tuklib_exit.c                       |   3 -
1784 src/common/tuklib_exit.h                       |   3 -
1785 src/common/tuklib_gettext.h                    |   3 -
1786 src/common/tuklib_integer.h                    |   3 -
1787 src/common/tuklib_mbstr.h                      |   3 -
1788 src/common/tuklib_mbstr_fw.c                   |   3 -
1789 src/common/tuklib_mbstr_width.c                |   3 -
1790 src/common/tuklib_open_stdxxx.c                |   3 -
1791 src/common/tuklib_open_stdxxx.h                |   3 -
1792 src/common/tuklib_physmem.c                    |   3 -
1793 src/common/tuklib_physmem.h                    |   3 -
1794 src/common/tuklib_progname.c                   |   3 -
1795 src/common/tuklib_progname.h                   |   3 -
1796 src/liblzma/Makefile.am                        |   3 -
1797 src/liblzma/api/Makefile.am                    |   3 -
1798 src/liblzma/api/lzma.h                         |  13 ++-
1799 src/liblzma/api/lzma/base.h                    |   3 -
1800 src/liblzma/api/lzma/bcj.h                     |   3 -
1801 src/liblzma/api/lzma/block.h                   |   3 -
1802 src/liblzma/api/lzma/check.h                   |   3 -
1803 src/liblzma/api/lzma/container.h               |   3 -
1804 src/liblzma/api/lzma/delta.h                   |   3 -
1805 src/liblzma/api/lzma/filter.h                  |   3 -
1806 src/liblzma/api/lzma/hardware.h                |   3 -
1807 src/liblzma/api/lzma/index.h                   |   3 -
1808 src/liblzma/api/lzma/index_hash.h              |   3 -
1809 src/liblzma/api/lzma/lzma12.h                  |   3 -
1810 src/liblzma/api/lzma/stream_flags.h            |   3 -
1811 src/liblzma/api/lzma/version.h                 |   3 -
1812 src/liblzma/api/lzma/vli.h                     |   3 -
1813 src/liblzma/check/Makefile.inc                 |   3 -
1814 src/liblzma/check/check.c                      |   3 -
1815 src/liblzma/check/check.h                      |   3 -
1816 src/liblzma/check/crc32_arm64.h                |   3 -
1817 src/liblzma/check/crc32_fast.c                 |   3 -
1818 src/liblzma/check/crc32_small.c                |   3 -
1819 src/liblzma/check/crc32_table.c                |   3 -
1820 src/liblzma/check/crc32_tablegen.c             |   3 -
1821 src/liblzma/check/crc32_x86.S                  |   3 -
1822 src/liblzma/check/crc64_fast.c                 |   3 -
1823 src/liblzma/check/crc64_small.c                |   3 -
1824 src/liblzma/check/crc64_table.c                |   3 -
1825 src/liblzma/check/crc64_tablegen.c             |   3 -
1826 src/liblzma/check/crc64_x86.S                  |   3 -
1827 src/liblzma/check/crc_common.h                 |   3 -
1828 src/liblzma/check/crc_x86_clmul.h              |   3 -
1829 src/liblzma/check/sha256.c                     |   3 -
1830 src/liblzma/common/Makefile.inc                |   3 -
1831 src/liblzma/common/alone_decoder.c             |   3 -
1832 src/liblzma/common/alone_decoder.h             |   3 -
1833 src/liblzma/common/alone_encoder.c             |   3 -
1834 src/liblzma/common/auto_decoder.c              |   3 -
1835 src/liblzma/common/block_buffer_decoder.c      |   3 -
1836 src/liblzma/common/block_buffer_encoder.c      |   3 -
1837 src/liblzma/common/block_buffer_encoder.h      |   3 -
1838 src/liblzma/common/block_decoder.c             |   3 -
1839 src/liblzma/common/block_decoder.h             |   3 -
1840 src/liblzma/common/block_encoder.c             |   3 -
1841 src/liblzma/common/block_encoder.h             |   3 -
1842 src/liblzma/common/block_header_decoder.c      |   3 -
1843 src/liblzma/common/block_header_encoder.c      |   3 -
1844 src/liblzma/common/block_util.c                |   3 -
1845 src/liblzma/common/common.c                    |   3 -
1846 src/liblzma/common/common.h                    |   3 -
1847 src/liblzma/common/easy_buffer_encoder.c       |   3 -
1848 src/liblzma/common/easy_decoder_memusage.c     |   3 -
1849 src/liblzma/common/easy_encoder.c              |   3 -
1850 src/liblzma/common/easy_encoder_memusage.c     |   3 -
1851 src/liblzma/common/easy_preset.c               |   3 -
1852 src/liblzma/common/easy_preset.h               |   3 -
1853 src/liblzma/common/file_info.c                 |   3 -
1854 src/liblzma/common/filter_buffer_decoder.c     |   3 -
1855 src/liblzma/common/filter_buffer_encoder.c     |   3 -
1856 src/liblzma/common/filter_common.c             |   3 -
1857 src/liblzma/common/filter_common.h             |   3 -
1858 src/liblzma/common/filter_decoder.c            |   3 -
1859 src/liblzma/common/filter_decoder.h            |   3 -
1860 src/liblzma/common/filter_encoder.c            |   3 -
1861 src/liblzma/common/filter_encoder.h            |   3 -
1862 src/liblzma/common/filter_flags_decoder.c      |   3 -
1863 src/liblzma/common/filter_flags_encoder.c      |   3 -
1864 src/liblzma/common/hardware_cputhreads.c       |   3 -
1865 src/liblzma/common/hardware_physmem.c          |   3 -
1866 src/liblzma/common/index.c                     |   3 -
1867 src/liblzma/common/index.h                     |   3 -
1868 src/liblzma/common/index_decoder.c             |   3 -
1869 src/liblzma/common/index_decoder.h             |   3 -
1870 src/liblzma/common/index_encoder.c             |   3 -
1871 src/liblzma/common/index_encoder.h             |   3 -
1872 src/liblzma/common/index_hash.c                |   3 -
1873 src/liblzma/common/lzip_decoder.c              |   3 -
1874 src/liblzma/common/lzip_decoder.h              |   3 -
1875 src/liblzma/common/memcmplen.h                 |   3 -
1876 src/liblzma/common/microlzma_decoder.c         |   3 -
1877 src/liblzma/common/microlzma_encoder.c         |   3 -
1878 src/liblzma/common/outqueue.c                  |   3 -
1879 src/liblzma/common/outqueue.h                  |   3 -
1880 src/liblzma/common/stream_buffer_decoder.c     |   3 -
1881 src/liblzma/common/stream_buffer_encoder.c     |   3 -
1882 src/liblzma/common/stream_decoder.c            |   3 -
1883 src/liblzma/common/stream_decoder.h            |   3 -
1884 src/liblzma/common/stream_decoder_mt.c         |   3 -
1885 src/liblzma/common/stream_encoder.c            |   3 -
1886 src/liblzma/common/stream_encoder_mt.c         |   3 -
1887 src/liblzma/common/stream_flags_common.c       |   3 -
1888 src/liblzma/common/stream_flags_common.h       |   3 -
1889 src/liblzma/common/stream_flags_decoder.c      |   3 -
1890 src/liblzma/common/stream_flags_encoder.c      |   3 -
1891 src/liblzma/common/string_conversion.c         |   3 -
1892 src/liblzma/common/vli_decoder.c               |   3 -
1893 src/liblzma/common/vli_encoder.c               |   3 -
1894 src/liblzma/common/vli_size.c                  |   3 -
1895 src/liblzma/delta/Makefile.inc                 |   3 -
1896 src/liblzma/delta/delta_common.c               |   3 -
1897 src/liblzma/delta/delta_common.h               |   3 -
1898 src/liblzma/delta/delta_decoder.c              |   3 -
1899 src/liblzma/delta/delta_decoder.h              |   3 -
1900 src/liblzma/delta/delta_encoder.c              |   3 -
1901 src/liblzma/delta/delta_encoder.h              |   3 -
1902 src/liblzma/delta/delta_private.h              |   3 -
1903 src/liblzma/liblzma.pc.in                      |   3 -
1904 src/liblzma/liblzma_w32res.rc                  |   3 -
1905 src/liblzma/lz/Makefile.inc                    |   3 -
1906 src/liblzma/lz/lz_decoder.c                    |   3 -
1907 src/liblzma/lz/lz_decoder.h                    |   3 -
1908 src/liblzma/lz/lz_encoder.c                    |   3 -
1909 src/liblzma/lz/lz_encoder.h                    |   3 -
1910 src/liblzma/lz/lz_encoder_hash.h               |   3 -
1911 src/liblzma/lz/lz_encoder_mf.c                 |   3 -
1912 src/liblzma/lzma/Makefile.inc                  |   3 -
1913 src/liblzma/lzma/fastpos.h                     |   3 -
1914 src/liblzma/lzma/fastpos_tablegen.c            |   3 -
1915 src/liblzma/lzma/lzma2_decoder.c               |   3 -
1916 src/liblzma/lzma/lzma2_decoder.h               |   3 -
1917 src/liblzma/lzma/lzma2_encoder.c               |   3 -
1918 src/liblzma/lzma/lzma2_encoder.h               |   3 -
1919 src/liblzma/lzma/lzma_common.h                 |   3 -
1920 src/liblzma/lzma/lzma_decoder.c                |   3 -
1921 src/liblzma/lzma/lzma_decoder.h                |   3 -
1922 src/liblzma/lzma/lzma_encoder.c                |   3 -
1923 src/liblzma/lzma/lzma_encoder.h                |   3 -
1924 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 -
1925 src/liblzma/lzma/lzma_encoder_optimum_normal.c |   3 -
1926 src/liblzma/lzma/lzma_encoder_presets.c        |   3 -
1927 src/liblzma/lzma/lzma_encoder_private.h        |   3 -
1928 src/liblzma/rangecoder/Makefile.inc            |   3 -
1929 src/liblzma/rangecoder/price.h                 |   3 -
1930 src/liblzma/rangecoder/price_tablegen.c        |   3 -
1931 src/liblzma/rangecoder/range_common.h          |   3 -
1932 src/liblzma/rangecoder/range_decoder.h         |   3 -
1933 src/liblzma/rangecoder/range_encoder.h         |   3 -
1934 src/liblzma/simple/Makefile.inc                |   3 -
1935 src/liblzma/simple/arm.c                       |   3 -
1936 src/liblzma/simple/arm64.c                     |   3 -
1937 src/liblzma/simple/armthumb.c                  |   3 -
1938 src/liblzma/simple/ia64.c                      |   3 -
1939 src/liblzma/simple/powerpc.c                   |   3 -
1940 src/liblzma/simple/riscv.c                     |   3 -
1941 src/liblzma/simple/simple_coder.c              |   3 -
1942 src/liblzma/simple/simple_coder.h              |   3 -
1943 src/liblzma/simple/simple_decoder.c            |   3 -
1944 src/liblzma/simple/simple_decoder.h            |   3 -
1945 src/liblzma/simple/simple_encoder.c            |   3 -
1946 src/liblzma/simple/simple_encoder.h            |   3 -
1947 src/liblzma/simple/simple_private.h            |   3 -
1948 src/liblzma/simple/sparc.c                     |   3 -
1949 src/liblzma/simple/x86.c                       |   3 -
1950 src/liblzma/validate_map.sh                    |   3 -
1951 src/lzmainfo/Makefile.am                       |   3 -
1952 src/lzmainfo/lzmainfo.1                        |   4 +-
1953 src/lzmainfo/lzmainfo.c                        |   3 -
1954 src/lzmainfo/lzmainfo_w32res.rc                |   3 -
1955 src/scripts/Makefile.am                        |   3 -
1956 src/scripts/xzless.1                           |   4 +-
1957 src/xz/Makefile.am                             |   3 -
1958 src/xz/args.c                                  |   3 -
1959 src/xz/args.h                                  |   3 -
1960 src/xz/coder.c                                 |   3 -
1961 src/xz/coder.h                                 |   3 -
1962 src/xz/file_io.c                               |   3 -
1963 src/xz/file_io.h                               |   3 -
1964 src/xz/hardware.c                              |   3 -
1965 src/xz/hardware.h                              |   3 -
1966 src/xz/list.c                                  |   3 -
1967 src/xz/list.h                                  |   3 -
1968 src/xz/main.c                                  |   3 -
1969 src/xz/main.h                                  |   3 -
1970 src/xz/message.c                               |   3 -
1971 src/xz/message.h                               |   3 -
1972 src/xz/mytime.c                                |   3 -
1973 src/xz/mytime.h                                |   3 -
1974 src/xz/options.c                               |   3 -
1975 src/xz/options.h                               |   3 -
1976 src/xz/private.h                               |   3 -
1977 src/xz/signals.c                               |   3 -
1978 src/xz/signals.h                               |   3 -
1979 src/xz/suffix.c                                |   3 -
1980 src/xz/suffix.h                                |   3 -
1981 src/xz/util.c                                  |   3 -
1982 src/xz/util.h                                  |   3 -
1983 src/xz/xz.1                                    |   4 +-
1984 src/xz/xz_w32res.rc                            |   3 -
1985 src/xzdec/Makefile.am                          |   3 -
1986 src/xzdec/lzmadec_w32res.rc                    |   3 -
1987 src/xzdec/xzdec.1                              |   4 +-
1988 src/xzdec/xzdec.c                              |   3 -
1989 src/xzdec/xzdec_w32res.rc                      |   3 -
1990 tests/Makefile.am                              |   3 -
1991 tests/bcj_test.c                               |   3 -
1992 tests/code_coverage.sh                         |   3 -
1993 tests/create_compress_files.c                  |   3 -
1994 tests/files/README                             |   3 +-
1995 tests/ossfuzz/fuzz_common.h                    |   3 -
1996 tests/ossfuzz/fuzz_decode_alone.c              |   3 -
1997 tests/ossfuzz/fuzz_decode_stream.c             |   3 -
1998 tests/ossfuzz/fuzz_encode_stream.c             |   3 -
1999 tests/test_bcj_exact_size.c                    |   3 -
2000 tests/test_block_header.c                      |   3 -
2001 tests/test_check.c                             |   3 -
2002 tests/test_compress.sh                         |   3 -
2003 tests/test_files.sh                            |   3 -
2004 tests/test_filter_flags.c                      |   3 -
2005 tests/test_filter_str.c                        |   3 -
2006 tests/test_hardware.c                          |   3 -
2007 tests/test_index.c                             |   3 -
2008 tests/test_index_hash.c                        |   3 -
2009 tests/test_lzip_decoder.c                      |   3 -
2010 tests/test_memlimit.c                          |   3 -
2011 tests/test_scripts.sh                          |   3 -
2012 tests/test_stream_flags.c                      |   3 -
2013 tests/test_suffix.sh                           |   3 -
2014 tests/test_vli.c                               |   3 -
2015 tests/tests.h                                  |   3 -
2016 tests/tuktest.h                                |   3 -
2017 windows/README-Windows.txt                     |  11 +--
2018 windows/build.bash                             |   3 -
2019 288 files changed, 100 insertions(+), 911 deletions(-)
2020
2021commit 76946dc4336c831fe2cc26696a035d807dd3cf13
2022Author: Lasse Collin <lasse.collin@tukaani.org>
2023Date:   2024-02-09 17:20:31 +0200
2024
2025    Fix SHA-256 authors.
2026
2027    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
2028    in 2007 had a comment in sha256.c that the code is based on
2029    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
2030    and the AUTHORS file was updated with information that the
2031    code had come from Crypto++ but via 7-Zip. I know I had viewed
2032    7-Zip's SHA-256 code but back then the C code has been identical
2033    enough with Crypto++, so I don't why I thought the author info
2034    would need that extra step via 7-Zip for this single file.
2035
2036    Another error is that I had mixed sha.* and shacal2.* files
2037    when checking for author info in Crypto++. The shacal2.* files
2038    aren't related to liblzma's sha256.c and thus Kevin Springle's
2039    code in Crypto++ isn't either.
2040
2041 AUTHORS                    |  6 ++----
2042 src/liblzma/check/sha256.c | 14 ++++----------
2043 2 files changed, 6 insertions(+), 14 deletions(-)
2044
2045commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851
2046Author: Lasse Collin <lasse.collin@tukaani.org>
2047Date:   2024-02-09 17:20:31 +0200
2048
2049    Remove macosx/build.sh.
2050
2051    It was last updated in 2013.
2052
2053 Makefile.am     |   1 -
2054 macosx/build.sh | 113 --------------------------------------------------------
2055 2 files changed, 114 deletions(-)
2056
2057commit eac2c3c67f9113a225fb6667df862edd30366931
2058Author: Lasse Collin <lasse.collin@tukaani.org>
2059Date:   2024-02-09 17:20:31 +0200
2060
2061    Doc: Remove doc/examples_old.
2062
2063    It was good to keep these around in parallel with the newer examples
2064    but I think it's OK to remove the old ones at this point.
2065
2066 Makefile.am                       |   5 --
2067 doc/examples_old/xz_pipe_comp.c   | 127 --------------------------------------
2068 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------
2069 3 files changed, 255 deletions(-)
2070
2071commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
2072Author: Jia Tan <jiat0218@gmail.com>
2073Date:   2024-02-13 22:38:58 +0800
2074
2075    Tests: Add RISC-V filter support in a few places.
2076
2077 tests/test_filter_flags.c | 6 ++++++
2078 tests/test_filter_str.c   | 6 ++++++
2079 2 files changed, 12 insertions(+)
2080
2081commit 45663443eb2b377e6171529380fee312f1adcdf4
2082Author: Jia Tan <jiat0218@gmail.com>
2083Date:   2024-02-13 22:37:07 +0800
2084
2085    liblzma: Fix build error if only RISC-V BCJ filter is enabled.
2086
2087    If any other BCJ filter was enabled for encoding or decoding, then this
2088    was not a problem.
2089
2090 src/liblzma/common/string_conversion.c | 4 +++-
2091 1 file changed, 3 insertions(+), 1 deletion(-)
2092
2093commit 2f15597d677bc35743c777d4cf3bfa698b478681
2094Author: Jia Tan <jiat0218@gmail.com>
2095Date:   2024-02-13 22:56:24 +0800
2096
2097    Translations: Update the Korean translation.
2098
2099 po/ko.po | 526 ++++++++++++++++++++++++++++++++++-----------------------------
2100 1 file changed, 284 insertions(+), 242 deletions(-)
2101
2102commit df873143ad1615c6d6aaa1bf8808b1676091dfe3
2103Author: Jia Tan <jiat0218@gmail.com>
2104Date:   2024-02-13 01:55:53 +0800
2105
2106    Translations: Update the Korean man page translations.
2107
2108 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++--------------------------
2109 1 file changed, 770 insertions(+), 605 deletions(-)
2110
2111commit b3f415eddb150341865a1af47959c3baba076b33
2112Author: Jia Tan <jiat0218@gmail.com>
2113Date:   2024-02-13 01:53:33 +0800
2114
2115    Translations: Update the Chinese (simplified) translation.
2116
2117 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++----------------------
2118 1 file changed, 268 insertions(+), 156 deletions(-)
2119
2120commit 9860d418d296eb3c721e5384fb367c0499b579c8
2121Author: Lasse Collin <lasse.collin@tukaani.org>
2122Date:   2024-02-09 23:21:01 +0200
2123
2124    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
2125
2126 src/scripts/xzless.in | 9 ++++++++-
2127 1 file changed, 8 insertions(+), 1 deletion(-)
2128
2129commit fd0692b0525e6c26b496492be9e2c865cab734f8
2130Author: Lasse Collin <lasse.collin@tukaani.org>
2131Date:   2024-02-09 23:00:05 +0200
2132
2133    xzless: Use --show-preproc-errors with "less" 632 and newer.
2134
2135    This makes "less" show a warning if a decompression error occurred.
2136
2137 src/scripts/xzless.in | 11 +++++++++--
2138 1 file changed, 9 insertions(+), 2 deletions(-)
2139
2140commit adb073da76a920b5a81e6b32254f4ddb054dc57a
2141Author: Jia Tan <jiat0218@gmail.com>
2142Date:   2024-02-09 23:59:54 +0800
2143
2144    liblzma: Fix typo discovered by codespell.
2145
2146 src/liblzma/check/crc32_arm64.h | 2 +-
2147 1 file changed, 1 insertion(+), 1 deletion(-)
2148
2149commit 55d9fc883d221cbace951a370f1fb144698f8c2e
2150Author: Jia Tan <jiat0218@gmail.com>
2151Date:   2024-02-09 20:01:06 +0800
2152
2153    Translations: Update the Swedish translation.
2154
2155 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++-------------------------
2156 1 file changed, 254 insertions(+), 166 deletions(-)
2157
2158commit 55ba4a1ea321499c805eedfa811ffde690bae311
2159Author: Jia Tan <jiat0218@gmail.com>
2160Date:   2024-02-08 20:09:04 +0800
2161
2162    Translations: Update the Spanish translation.
2163
2164 po/es.po | 22 +++++++++++-----------
2165 1 file changed, 11 insertions(+), 11 deletions(-)
2166
2167commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae
2168Author: Jia Tan <jiat0218@gmail.com>
2169Date:   2024-02-07 21:34:35 +0800
2170
2171    Translations: Update the Spanish translation.
2172
2173 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++-------------------------
2174 1 file changed, 253 insertions(+), 166 deletions(-)
2175
2176commit f4af2036bc625739d6d33d9e1fede583a25c3828
2177Author: Jia Tan <jiat0218@gmail.com>
2178Date:   2024-02-07 21:28:32 +0800
2179
2180    Translations: Update the Polish translation.
2181
2182 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++-------------------------
2183 1 file changed, 249 insertions(+), 162 deletions(-)
2184
2185commit e5e93bb816043c559cddf03a3b7ba13bec353ee4
2186Author: Jia Tan <jiat0218@gmail.com>
2187Date:   2024-02-07 19:40:12 +0800
2188
2189    Translations: Update the German translation.
2190
2191 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++-------------------------
2192 1 file changed, 242 insertions(+), 154 deletions(-)
2193
2194commit 28f18ff8e26902762fb007c13be235b4ac1ac071
2195Author: Jia Tan <jiat0218@gmail.com>
2196Date:   2024-02-07 19:27:25 +0800
2197
2198    Translations: Update the German man page translations.
2199
2200 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++---------------------------
2201 1 file changed, 752 insertions(+), 601 deletions(-)
2202
2203commit cabfbc7947da05aa5dfe39bec9759e076f940e3c
2204Author: Jia Tan <jiat0218@gmail.com>
2205Date:   2024-02-06 23:44:06 +0800
2206
2207    Translations: Update the Romanian translation.
2208
2209 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++-------------------------
2210 1 file changed, 252 insertions(+), 164 deletions(-)
2211
2212commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e
2213Author: Jia Tan <jiat0218@gmail.com>
2214Date:   2024-02-06 23:45:02 +0800
2215
2216    Translations: Update the Romanian man page translations.
2217
2218 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++---------------------------
2219 1 file changed, 966 insertions(+), 793 deletions(-)
2220
2221commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96
2222Author: Jia Tan <jiat0218@gmail.com>
2223Date:   2024-02-07 20:56:57 +0800
2224
2225    Translations: Update the Ukrainian translation.
2226
2227 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++-------------------------
2228 1 file changed, 242 insertions(+), 155 deletions(-)
2229
2230commit b3523250e9eef10b017473754c1e1c9e31f10374
2231Author: Jia Tan <jiat0218@gmail.com>
2232Date:   2024-02-06 23:30:03 +0800
2233
2234    Translations: Update the Ukrainian man page translations.
2235
2236 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++--------------------------
2237 1 file changed, 764 insertions(+), 599 deletions(-)
2238
2239commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d
2240Author: Jia Tan <jiat0218@gmail.com>
2241Date:   2024-02-02 01:39:28 +0800
2242
2243    Update AUTHORS.
2244
2245 AUTHORS | 3 ++-
2246 1 file changed, 2 insertions(+), 1 deletion(-)
2247
2248commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
2249Author: Jia Tan <jiat0218@gmail.com>
2250Date:   2024-02-02 01:38:51 +0800
2251
2252    liblzma: Update Authors list in crc32_arm64.h.
2253
2254 src/liblzma/check/crc32_arm64.h | 1 +
2255 1 file changed, 1 insertion(+)
2256
2257commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0
2258Author: Jia Tan <jiat0218@gmail.com>
2259Date:   2024-02-01 16:07:03 +0800
2260
2261    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table.
2262
2263    This was split from the prior commit so it could be easily applied to
2264    the 5.4 branch.
2265
2266    Closes: https://github.com/tukaani-project/xz/pull/77
2267
2268 src/liblzma/check/crc32_table.c | 4 ++--
2269 1 file changed, 2 insertions(+), 2 deletions(-)
2270
2271commit ca9015f4dead2c97b48f5a6933631b0a448b65b9
2272Author: Jia Tan <jiat0218@gmail.com>
2273Date:   2024-02-01 16:06:29 +0800
2274
2275    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table.
2276
2277    If liblzma is configured with --disable-clmul-crc
2278    CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the
2279    generic version must be used but the CRC tables were not included.
2280
2281 src/liblzma/check/crc64_table.c | 4 ++--
2282 1 file changed, 2 insertions(+), 2 deletions(-)
2283
2284commit 2f1552a91c825e87013925e1a67a0930e7aef592
2285Author: Jia Tan <jiat0218@gmail.com>
2286Date:   2024-01-23 18:02:13 +0800
2287
2288    liblzma: Only use ifunc in crcXX_fast.c if its needed.
2289
2290    The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC.
2291    With ARM64, ifunc is incompatible because it requires non-inline
2292    function calls for runtime detection.
2293
2294 src/liblzma/check/crc32_fast.c | 6 +++---
2295 src/liblzma/check/crc64_fast.c | 6 +++---
2296 2 files changed, 6 insertions(+), 6 deletions(-)
2297
2298commit 30a25f3742287697bc57a1bef86c19ecf5129322
2299Author: Jia Tan <jiat0218@gmail.com>
2300Date:   2024-01-22 22:08:45 +0800
2301
2302    Docs: Add --disable-arm64-crc32 description to INSTALL.
2303
2304 INSTALL | 12 +++++++++++-
2305 1 file changed, 11 insertions(+), 1 deletion(-)
2306
2307commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
2308Author: Jia Tan <jiat0218@gmail.com>
2309Date:   2024-01-22 21:36:09 +0800
2310
2311    liblzma: Omit CRC tables when not needed with ARM64 optimizations.
2312
2313    This is similar to the existing x86-64 CLMUL conditions to omit the
2314    tables. They were slightly refactored to improve readability.
2315
2316 src/liblzma/check/crc32_table.c | 18 +++++++++++++++---
2317 src/liblzma/check/crc64_table.c |  7 ++++++-
2318 src/liblzma/check/crc_common.h  |  5 ++++-
2319 3 files changed, 25 insertions(+), 5 deletions(-)
2320
2321commit 761f5b69a4c778c8bcb09279b845b07c28790575
2322Author: Jia Tan <jiat0218@gmail.com>
2323Date:   2024-01-22 20:54:56 +0800
2324
2325    liblzma: Rename crc32_aarch64.h to crc32_arm64.h.
2326
2327    Even though the proper name for the architecture is aarch64, this
2328    project uses ARM64 throughout. So the rename is for consistency.
2329
2330    Additionally, crc32_arm64.h was slightly refactored for the following
2331    changes:
2332
2333       * Added MSVC, FreeBSD, and macOS support in
2334         is_arch_extension_supported().
2335
2336       * crc32_arch_optimized() now checks the size when aligning the
2337         buffer.
2338
2339       * crc32_arch_optimized() loop conditions were slightly modified to
2340         avoid both decrementing the size and incrementing the buffer
2341         pointer.
2342
2343       * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and
2344         Clang name them differently.
2345
2346       * Minor spacing and comment changes.
2347
2348 CMakeLists.txt                    |   2 +-
2349 src/liblzma/check/Makefile.inc    |   2 +-
2350 src/liblzma/check/crc32_aarch64.h | 109 ----------------------------------
2351 src/liblzma/check/crc32_arm64.h   | 119 ++++++++++++++++++++++++++++++++++++++
2352 src/liblzma/check/crc32_fast.c    |   3 +-
2353 src/liblzma/check/crc64_fast.c    |   3 -
2354 6 files changed, 122 insertions(+), 116 deletions(-)
2355
2356commit 455a08609caa3223066a717fb01bfa42c5dba47d
2357Author: Jia Tan <jiat0218@gmail.com>
2358Date:   2024-01-22 20:49:30 +0800
2359
2360    liblzma: Refactor crc_common.h.
2361
2362    The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since
2363    the ARM64 optimizations will be different between CRC32 and CRC64.
2364
2365    For the same reason, CRC_ARCH_OPTIMIZED is split into
2366    CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED.
2367
2368    ifunc will only be used with x86-64 CLMUL because the runtime detection
2369    methods needed with ARM64 are not compatible with ifunc.
2370
2371 src/liblzma/check/crc32_fast.c |   8 +--
2372 src/liblzma/check/crc64_fast.c |   8 +--
2373 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++-------------
2374 3 files changed, 82 insertions(+), 42 deletions(-)
2375
2376commit 61908e816049af7a9f43ea804a57ee8570e2e644
2377Author: Jia Tan <jiat0218@gmail.com>
2378Date:   2024-01-22 00:42:28 +0800
2379
2380    CMake: Add support for ARM64 CRC32 instruction detection.
2381
2382 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
2383 1 file changed, 50 insertions(+)
2384
2385commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732
2386Author: Jia Tan <jiat0218@gmail.com>
2387Date:   2024-01-22 00:36:47 +0800
2388
2389    Build: Add support for ARM64 CRC32 instruction detection.
2390
2391    This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by
2392    default) for using the ARM64 CRC32 instruction. This can be disabled if
2393    one knows the binary will never need to run on an ARM64 machine
2394    with this instruction extension.
2395
2396 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2397 1 file changed, 52 insertions(+)
2398
2399commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
2400Author: Chenxi Mao <chenxi.mao2013@gmail.com>
2401Date:   2024-01-09 17:23:11 +0800
2402
2403    Speed up CRC32 calculation on ARM64
2404
2405    The CRC32 instructions in ARM64 can calculate the CRC32 result
2406    for 8 bytes in a single operation, making the use of ARM64
2407    instructions much faster compared to the general CRC32 algorithm.
2408
2409    Optimized CRC32 will be enabled if ARM64 has CRC extension
2410    running on Linux.
2411
2412    Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
2413
2414 CMakeLists.txt                    |   1 +
2415 src/liblzma/check/Makefile.inc    |   3 +-
2416 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++
2417 src/liblzma/check/crc32_fast.c    |   5 +-
2418 src/liblzma/check/crc64_fast.c    |   5 +-
2419 src/liblzma/check/crc_common.h    |  16 +++---
2420 6 files changed, 130 insertions(+), 9 deletions(-)
2421
2422commit b43c3e48bf6097095eef36d44cdbec811074940a
2423Author: Jia Tan <jiat0218@gmail.com>
2424Date:   2024-01-26 19:05:51 +0800
2425
2426    Bump version number for 5.5.1alpha.
2427
2428 src/liblzma/api/lzma/version.h  | 2 +-
2429 src/liblzma/liblzma_generic.map | 2 +-
2430 src/liblzma/liblzma_linux.map   | 2 +-
2431 3 files changed, 3 insertions(+), 3 deletions(-)
2432
2433commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f
2434Author: Jia Tan <jiat0218@gmail.com>
2435Date:   2024-01-26 19:00:52 +0800
2436
2437    Add NEWS for 5.5.1alpha
2438
2439 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2440 1 file changed, 80 insertions(+)
2441
2442commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df
2443Author: Jia Tan <jiat0218@gmail.com>
2444Date:   2024-01-26 18:54:24 +0800
2445
2446    Add NEWS for 5.4.6.
2447
2448 NEWS | 22 ++++++++++++++++++++++
2449 1 file changed, 22 insertions(+)
2450
2451commit 93de7e751d17731315a899264f2a7239d7d2d316
2452Author: Lasse Collin <lasse.collin@tukaani.org>
2453Date:   2024-01-24 20:00:57 +0200
2454
2455    Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
2456
2457    The footer isn't a complete HTML file so having it in the doxygen
2458    directory is a tiny bit clearer.
2459
2460 Makefile.am                                    |   2 +-
2461 doc/{logo => }/xz-logo.png                     | Bin
2462 doxygen/Doxyfile                               |   4 ++--
2463 doc/logo/copyright.html => doxygen/footer.html |   0
2464 4 files changed, 3 insertions(+), 3 deletions(-)
2465
2466commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9
2467Author: Jia Tan <jiat0218@gmail.com>
2468Date:   2024-01-09 17:05:01 +0800
2469
2470    README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1.
2471
2472    The Overall documentation section (1.1) table spacing had to be adjusted
2473    since the filename was very long.
2474
2475 README | 38 ++++++++++++++++++++------------------
2476 1 file changed, 20 insertions(+), 18 deletions(-)
2477
2478commit e280470040b27c5e58d78b25b9e2bb71fc6c3882
2479Author: Jia Tan <jiat0218@gmail.com>
2480Date:   2024-01-09 16:56:16 +0800
2481
2482    Build: Add the logo and license to the release.
2483
2484 Makefile.am | 2 ++
2485 1 file changed, 2 insertions(+)
2486
2487commit b1ee6cf259bb49ce91abe9f622294524e37edf4c
2488Author: Jia Tan <jiat0218@gmail.com>
2489Date:   2024-01-09 16:44:42 +0800
2490
2491    COPYING: Add the license for the XZ logo.
2492
2493 COPYING              |   5 +
2494 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++
2495 2 files changed, 432 insertions(+)
2496
2497commit 31293ae7074802cc7286089a89c7b552d930c97f
2498Author: Jia Tan <jiat0218@gmail.com>
2499Date:   2024-01-09 16:40:56 +0800
2500
2501    Doxygen: Added the XZ logo and copyright information.
2502
2503    The PROJECT_LOGO field is now used to include the XZ logo. The footer
2504    of each page now lists the copyright information instead of the default
2505    footer. The license is also copied to statisfy the copyright and so the
2506    link in the documentation can be local.
2507
2508 doc/logo/copyright.html |  11 +++++++++++
2509 doc/logo/xz-logo.png    | Bin 0 -> 6771 bytes
2510 doxygen/Doxyfile        |   6 +++---
2511 3 files changed, 14 insertions(+), 3 deletions(-)
2512
2513commit 6daa4d0ea46a8441f21f609149f3633158bf4704
2514Author: Lasse Collin <lasse.collin@tukaani.org>
2515Date:   2024-01-23 18:29:28 +0200
2516
2517    xz: Use threaded mode by defaut (as if --threads=0 was used).
2518
2519    This hopefully does more good than bad:
2520
2521      + It's faster by default.
2522
2523      + Only the threaded compressor creates files that
2524        can be decompressed in threaded mode.
2525
2526      - Compression ratio is worse, usually not too much though.
2527        When it matters, -T1 must be used.
2528
2529      - Memory usage increases.
2530
2531      - Scripts that assume single-threaded mode but don't use -T1 will
2532        possibly use too much resources, for example, if they run
2533        multiple xz processes in parallel to compress multiple files.
2534
2535      - Output from single-threaded and multi-threaded compressors
2536        differ but such changes could happen for other reasons too
2537        (they just haven't happened since 5.0.0).
2538
2539 src/xz/hardware.c | 6 +++++-
2540 src/xz/message.c  | 4 ++--
2541 src/xz/xz.1       | 9 +++++++++
2542 3 files changed, 16 insertions(+), 3 deletions(-)
2543
2544commit a2dd2dc8e5307a7280bb99868bc478560facba2c
2545Author: Jia Tan <jiat0218@gmail.com>
2546Date:   2024-01-23 23:52:49 +0800
2547
2548    CI: Use RISC-V filter when building with BCJ support.
2549
2550 build-aux/ci_build.sh | 4 ++--
2551 1 file changed, 2 insertions(+), 2 deletions(-)
2552
2553commit 3060e1070b2421b26c0e17794c1307ec5622f11d
2554Author: Jia Tan <jiat0218@gmail.com>
2555Date:   2024-01-23 23:52:14 +0800
2556
2557    Tests: Use smaller dictionary size in RISC-V test files.
2558
2559 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes
2560 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes
2561 2 files changed, 0 insertions(+), 0 deletions(-)
2562
2563commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3
2564Author: Jia Tan <jiat0218@gmail.com>
2565Date:   2024-01-23 23:50:57 +0800
2566
2567    Tests: Skip RISC-V test files if decoder was not built.
2568
2569 tests/test_files.sh | 5 +++++
2570 1 file changed, 5 insertions(+)
2571
2572commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e
2573Author: Lasse Collin <lasse.collin@tukaani.org>
2574Date:   2024-01-23 16:11:54 +0200
2575
2576    xz: Man page: Add more examples of LZMA2 options with BCJ filters.
2577
2578 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++-------
2579 1 file changed, 31 insertions(+), 7 deletions(-)
2580
2581commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d
2582Author: Lasse Collin <lasse.collin@tukaani.org>
2583Date:   2024-01-23 00:09:48 +0200
2584
2585    liblzma: RISC-V filter: Use byte-by-byte access.
2586
2587    Not all RISC-V processors support fast unaligned access so
2588    it's better to read only one byte in the main loop. This can
2589    be faster even on x86-64 when compared to reading 32 bits at
2590    a time as half the time the address is only 16-bit aligned.
2591
2592    The downside is larger code size on archs that do support
2593    fast unaligned access.
2594
2595 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------
2596 1 file changed, 84 insertions(+), 30 deletions(-)
2597
2598commit db5eb5f563e8baa8d912ecf576f53391ff861596
2599Author: Jia Tan <jiat0218@gmail.com>
2600Date:   2024-01-22 23:33:39 +0800
2601
2602    xz: Update xz -lvv for RISC-V filter.
2603
2604    Version 5.6.0 will be shown, even though upcoming alphas and betas
2605    will be able to support this filter. 5.6.0 looks nicer in the output and
2606    people shouldn't be encouraged to use an unstable version in production
2607    in any way.
2608
2609 src/xz/list.c | 10 ++++++++++
2610 1 file changed, 10 insertions(+)
2611
2612commit e2870db5be1503e6a489fc3d47daf950d6f62723
2613Author: Jia Tan <jiat0218@gmail.com>
2614Date:   2024-01-22 23:33:39 +0800
2615
2616    Tests: Add two RISC-V Filter test files.
2617
2618    These test files achieve 100% code coverage in
2619    src/liblzma/simple/riscv.c. They contain all of the instructions that
2620    should be filtered and a few cases that should not.
2621
2622 tests/files/README                  |   8 ++++++++
2623 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes
2624 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes
2625 3 files changed, 8 insertions(+)
2626
2627commit b26a89869315ece2f6d9d10d32d45f672550f245
2628Author: Jia Tan <jiat0218@gmail.com>
2629Date:   2024-01-22 23:33:39 +0800
2630
2631    xz: Update message in --long-help for RISC-V Filter.
2632
2633 src/xz/message.c | 1 +
2634 1 file changed, 1 insertion(+)
2635
2636commit 283f778908873eca61388029fc418fa800c9d7d7
2637Author: Jia Tan <jiat0218@gmail.com>
2638Date:   2024-01-22 23:33:39 +0800
2639
2640    xz: Update the man page for the RISC-V Filter.
2641
2642    A special note was added to suggest using four-byte alignment when the
2643    compressed instruction extension is not present in a RISC-V binary.
2644
2645 src/xz/xz.1 | 3 ++-
2646 1 file changed, 2 insertions(+), 1 deletion(-)
2647
2648commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28
2649Author: Jia Tan <jiat0218@gmail.com>
2650Date:   2024-01-22 23:33:39 +0800
2651
2652    Tests: Add RISC-V Filter test in test_compress.sh.
2653
2654 tests/test_compress.sh | 1 +
2655 1 file changed, 1 insertion(+)
2656
2657commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4
2658Author: Jia Tan <jiat0218@gmail.com>
2659Date:   2024-01-22 23:33:39 +0800
2660
2661    liblzma: Update string_conversion.c to support RISC-V Filter.
2662
2663 src/liblzma/common/string_conversion.c | 5 +++++
2664 1 file changed, 5 insertions(+)
2665
2666commit 34372a5adbe5a7f6bf29498410ba3a463a720966
2667Author: Jia Tan <jiat0218@gmail.com>
2668Date:   2024-01-22 23:33:39 +0800
2669
2670    CMake: Support RISC-V BCJ Filter for encoding and decoding.
2671
2672 CMakeLists.txt | 1 +
2673 1 file changed, 1 insertion(+)
2674
2675commit 440a2eccb082dc13400c09e22308a58fef85146c
2676Author: Jia Tan <jiat0218@gmail.com>
2677Date:   2024-01-22 23:33:39 +0800
2678
2679    liblzma: Add RISC-V BCJ filter.
2680
2681    The new Filter ID is 0x0B.
2682
2683    Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
2684    the xz CLI updates, and the Autotools build system modifications.
2685
2686    Thanks to Igor Pavlov for his many contributions to the design of
2687    the filter.
2688
2689 configure.ac                        |   4 +-
2690 src/liblzma/api/lzma/bcj.h          |   5 +
2691 src/liblzma/common/filter_common.c  |   9 +
2692 src/liblzma/common/filter_decoder.c |   8 +
2693 src/liblzma/common/filter_encoder.c |  10 +
2694 src/liblzma/simple/Makefile.inc     |   4 +
2695 src/liblzma/simple/riscv.c          | 688 ++++++++++++++++++++++++++++++++++++
2696 src/liblzma/simple/simple_coder.h   |   9 +
2697 src/xz/args.c                       |   7 +
2698 9 files changed, 742 insertions(+), 2 deletions(-)
2699
2700commit 5540f4329bbdb4deb4850d4af48b18ad074bba19
2701Author: Jia Tan <jiat0218@gmail.com>
2702Date:   2024-01-19 23:08:14 +0800
2703
2704    Docs: Update .xz file format specification to 1.2.0.
2705
2706    The new RISC-V filter was added to the specification, in addition to
2707    updating the specification URL.
2708
2709 doc/xz-file-format.txt | 29 +++++++++++++++++------------
2710 1 file changed, 17 insertions(+), 12 deletions(-)
2711
2712commit 22d86192f8cf00902a1f90ee2a83ca600794459b
2713Author: Jia Tan <jiat0218@gmail.com>
2714Date:   2024-01-19 23:08:14 +0800
2715
2716    xz: Update website URLs in the man pages.
2717
2718 src/xz/xz.1       | 6 +++---
2719 src/xzdec/xzdec.1 | 4 ++--
2720 2 files changed, 5 insertions(+), 5 deletions(-)
2721
2722commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d
2723Author: Jia Tan <jiat0218@gmail.com>
2724Date:   2024-01-19 23:08:14 +0800
2725
2726    liblzma: Update website URL.
2727
2728 dos/config.h           | 2 +-
2729 src/liblzma/api/lzma.h | 6 +++---
2730 2 files changed, 4 insertions(+), 4 deletions(-)
2731
2732commit fce4758018f3a3589236f3fe7999fd9dd08c77e9
2733Author: Jia Tan <jiat0218@gmail.com>
2734Date:   2024-01-19 23:08:14 +0800
2735
2736    Docs: Update website URLs.
2737
2738 .github/SECURITY.md        |  2 +-
2739 COPYING                    |  3 ++-
2740 README                     |  4 ++--
2741 doc/faq.txt                |  2 +-
2742 doc/lzma-file-format.txt   | 18 +++++++++---------
2743 windows/README-Windows.txt |  3 ++-
2744 6 files changed, 17 insertions(+), 15 deletions(-)
2745
2746commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5
2747Author: Jia Tan <jiat0218@gmail.com>
2748Date:   2024-01-19 23:08:14 +0800
2749
2750    Build: Update website URL.
2751
2752 CMakeLists.txt | 2 +-
2753 configure.ac   | 2 +-
2754 2 files changed, 2 insertions(+), 2 deletions(-)
2755
2756commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b
2757Author: Lasse Collin <lasse.collin@tukaani.org>
2758Date:   2024-01-11 15:01:50 +0200
2759
2760    liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
2761
2762 src/liblzma/check/crc_x86_clmul.h | 6 ++++++
2763 1 file changed, 6 insertions(+)
2764
2765commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882
2766Author: Lasse Collin <lasse.collin@tukaani.org>
2767Date:   2024-01-11 15:22:36 +0200
2768
2769    liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
2770
2771    Now crc_simd_body() in crc_x86_clmul.h is only called once
2772    in a translation unit, we no longer need to be so cautious
2773    about ensuring the always-inline behavior.
2774
2775 src/liblzma/check/crc_common.h    | 20 --------------------
2776 src/liblzma/check/crc_x86_clmul.h |  2 +-
2777 2 files changed, 1 insertion(+), 21 deletions(-)
2778
2779commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20
2780Author: Lasse Collin <lasse.collin@tukaani.org>
2781Date:   2024-01-11 14:39:46 +0200
2782
2783    liblzma: CRC: Update CLMUL comments to more generic wording.
2784
2785 src/liblzma/check/crc32_fast.c | 16 ++++++++--------
2786 src/liblzma/check/crc64_fast.c | 10 +++++-----
2787 2 files changed, 13 insertions(+), 13 deletions(-)
2788
2789commit 66f080e8016129576536482ac377e2ecac7a2b90
2790Author: Lasse Collin <lasse.collin@tukaani.org>
2791Date:   2024-01-10 18:23:31 +0200
2792
2793    liblzma: Rename arch-specific CRC functions and macros.
2794
2795    CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL.
2796    CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used.
2797    Currently the x86 CLMUL implementations are the only arch-optimized
2798    versions, and these also use the CRC_x86_CLMUL macro to tell when
2799    crc_x86_clmul.h needs to be included.
2800
2801    is_clmul_supported() was renamed to is_arch_extension_supported().
2802    crc32_clmul() and crc64_clmul() were renamed to
2803    crc32_arch_optimized() and crc64_arch_optimized().
2804    This way the names make sense with arch-specific non-CLMUL
2805    implementations as well.
2806
2807 src/liblzma/check/crc32_fast.c    | 13 +++++++------
2808 src/liblzma/check/crc64_fast.c    | 13 +++++++------
2809 src/liblzma/check/crc_common.h    |  9 ++++++---
2810 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++----------
2811 4 files changed, 31 insertions(+), 25 deletions(-)
2812
2813commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99
2814Author: Lasse Collin <lasse.collin@tukaani.org>
2815Date:   2024-01-10 18:19:21 +0200
2816
2817    liblzma: Fix a comment in crc_common.h.
2818
2819 src/liblzma/check/crc_common.h | 3 ++-
2820 1 file changed, 2 insertions(+), 1 deletion(-)
2821
2822commit 419f55f9dfc2df8792902b8953d50690121afeea
2823Author: Lasse Collin <lasse.collin@tukaani.org>
2824Date:   2023-10-20 23:35:10 +0300
2825
2826    liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul().
2827
2828    A CLMUL-only build will have the crcxx_clmul() inlined into
2829    lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul()
2830    was needed. Notes about shared liblzma on ELF platforms:
2831
2832      - On platforms that support ifunc and -fvisibility=hidden, this
2833        was silly because CLMUL-only build would have that single extra
2834        jump instruction of extra overhead.
2835
2836      - On platforms that support neither -fvisibility=hidden nor linker
2837        version script (liblzma*.map), jumping to lzma_crcxx_clmul()
2838        would go via PLT so a few more instructions of overhead (still
2839        not a big issue but silly nevertheless).
2840
2841    There was a downside with static liblzma too: if an application only
2842    needs lzma_crc64(), static linking would make the linker include the
2843    CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though
2844    the CRC32 code wouldn't be needed, thus increasing code size of the
2845    executable (assuming that -ffunction-sections isn't used).
2846
2847    Also, now compilers are likely to inline crc_simd_body()
2848    even if they don't support the always_inline attribute
2849    (or MSVC's __forceinline). Quite possibly all compilers
2850    that build the code do support such an attribute. But now
2851    it likely isn't a problem even if the attribute wasn't supported.
2852
2853    Now all x86-specific stuff is in crc_x86_clmul.h. If other archs
2854    The other archs can then have their own headers with their own
2855    is_clmul_supported() and crcxx_clmul().
2856
2857    Another bonus is that the build system doesn't need to care if
2858    crc_clmul.c is needed.
2859
2860    is_clmul_supported() stays as inline function as it's not needed
2861    when doing a CLMUL-only build (avoids a warning about unused function).
2862
2863 CMakeLists.txt                                     |  7 +-
2864 configure.ac                                       |  1 -
2865 src/liblzma/check/Makefile.inc                     |  6 +-
2866 src/liblzma/check/crc32_fast.c                     |  9 ++-
2867 src/liblzma/check/crc64_fast.c                     |  9 ++-
2868 src/liblzma/check/crc_common.h                     | 64 ----------------
2869 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++----
2870 7 files changed, 91 insertions(+), 91 deletions(-)
2871
2872commit e3833e297dfb5021a197bda34ba2a795e30aaf8a
2873Author: Lasse Collin <lasse.collin@tukaani.org>
2874Date:   2023-10-21 00:06:52 +0300
2875
2876    liblzma: crc_clmul.c: Add crc_attr_target macro.
2877
2878    This reduces the number of the complex #if directives.
2879
2880 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++--------------
2881 1 file changed, 16 insertions(+), 14 deletions(-)
2882
2883commit d164ac0e62904126f7920c25f9a2875c8cd28b97
2884Author: Lasse Collin <lasse.collin@tukaani.org>
2885Date:   2023-10-20 22:49:48 +0300
2886
2887    liblzma: Simplify existing cases with lzma_attr_no_sanitize_address.
2888
2889 src/liblzma/check/crc_clmul.c | 12 +++---------
2890 1 file changed, 3 insertions(+), 9 deletions(-)
2891
2892commit 9523c1300d22fa715765c181cf991d14d6112fb1
2893Author: Lasse Collin <lasse.collin@tukaani.org>
2894Date:   2023-10-20 21:53:35 +0300
2895
2896    liblzma: #define crc_attr_no_sanitize_address in crc_common.h.
2897
2898 src/liblzma/check/crc_common.h | 10 ++++++++++
2899 1 file changed, 10 insertions(+)
2900
2901commit 93d144f0930821590524247bd174afd38003d7f0
2902Author: Lasse Collin <lasse.collin@tukaani.org>
2903Date:   2023-10-20 23:25:14 +0300
2904
2905    liblzma: CRC: Add empty lines.
2906
2907    And remove one too.
2908
2909 src/liblzma/check/crc32_fast.c | 2 ++
2910 src/liblzma/check/crc64_fast.c | 3 +++
2911 src/liblzma/check/crc_clmul.c  | 1 -
2912 3 files changed, 5 insertions(+), 1 deletion(-)
2913
2914commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae
2915Author: Lasse Collin <lasse.collin@tukaani.org>
2916Date:   2023-10-20 23:19:33 +0300
2917
2918    liblzma: crc_clmul.c: Tidy up the location of MSVC pragma.
2919
2920    It makes no difference in practice.
2921
2922 src/liblzma/check/crc_clmul.c | 4 ++--
2923 1 file changed, 2 insertions(+), 2 deletions(-)
2924
2925commit 15cf3f04f270d707a5c91cc0208b23b6db42b774
2926Author: Lasse Collin <lasse.collin@tukaani.org>
2927Date:   2023-12-20 21:16:24 +0200
2928
2929    Update THANKS.
2930
2931 THANKS | 1 +
2932 1 file changed, 1 insertion(+)
2933
2934commit cd64dd70d5665b6048829c45772d08606f44672e
2935Author: Lasse Collin <lasse.collin@tukaani.org>
2936Date:   2023-12-20 21:15:16 +0200
2937
2938    liblzma: Use 8-byte method in memcmplen.h on ARM64.
2939
2940    It requires fast unaligned access to 64-bit integers
2941    and a fast instruction to count leading zeros in
2942    a 64-bit integer (__builtin_ctzll()). This perhaps
2943    should be enabled on some other archs too.
2944
2945    Thanks to Chenxi Mao for the original patch:
2946    https://github.com/tukaani-project/xz/pull/75 (the first commit)
2947    According to the numbers there, this may improve encoding
2948    speed by about 3-5 %.
2949
2950    This enables the 8-byte method on MSVC ARM64 too which
2951    should work but wasn't tested.
2952
2953 src/liblzma/common/memcmplen.h | 18 ++++++++++--------
2954 1 file changed, 10 insertions(+), 8 deletions(-)
2955
2956commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606
2957Author: Lasse Collin <lasse.collin@tukaani.org>
2958Date:   2023-12-20 21:01:06 +0200
2959
2960    liblzma: Check also for __clang__ in memcmplen.h.
2961
2962    This change hopefully makes no practical difference as Clang
2963    likely was detected via __GNUC__ or _MSC_VER already.
2964
2965 src/liblzma/common/memcmplen.h | 3 ++-
2966 1 file changed, 2 insertions(+), 1 deletion(-)
2967
2968commit 133c5851eb917c6d99d0b623c1689c8518e65f38
2969Author: Jia Tan <jiat0218@gmail.com>
2970Date:   2023-12-21 21:39:08 +0800
2971
2972    Translations: Update the French translation.
2973
2974 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++--------------------------
2975 1 file changed, 370 insertions(+), 262 deletions(-)
2976
2977commit 710cbc186cad0ac601c38bd6bf31167648a5581e
2978Author: Jia Tan <jiat0218@gmail.com>
2979Date:   2023-12-21 16:39:53 +0800
2980
2981    xz: Add a comment to Capsicum sandbox setup.
2982
2983    This comment is repeated in xzdec.c to help remind us why all the
2984    capabilities are removed from stdin in certain situations.
2985
2986 src/xz/file_io.c | 1 +
2987 1 file changed, 1 insertion(+)
2988
2989commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12
2990Author: Jia Tan <jiat0218@gmail.com>
2991Date:   2023-12-20 22:19:19 +0800
2992
2993    Docs: Update --enable-sandbox option in INSTALL.
2994
2995    xzdec now also uses the sandbox when its configured.
2996
2997 INSTALL | 17 ++++++++++-------
2998 1 file changed, 10 insertions(+), 7 deletions(-)
2999
3000commit ebddf20214143a8e002ab897e95e880bb4c5ac44
3001Author: Jia Tan <jiat0218@gmail.com>
3002Date:   2023-12-20 22:39:13 +0800
3003
3004    CMake: Move sandbox detection outside of xz section.
3005
3006    The sandbox is now enabled for xzdec as well, so it no longer belongs
3007    in just the xz section. xz and xzdec are always built, except for older
3008    MSVC versions, so there isn't a need to conditionally show the sandbox
3009    configuration. CMake will do a little unecessary work on older MSVC
3010    versions that can't build xz or xzdec, but this is a very small
3011    downside.
3012
3013 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++--------------------------
3014 1 file changed, 98 insertions(+), 80 deletions(-)
3015
3016commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316
3017Author: Jia Tan <jiat0218@gmail.com>
3018Date:   2023-12-20 22:43:44 +0800
3019
3020    Build: Allow sandbox to be configured for just xzdec.
3021
3022    If xz is disabled, then xzdec can still use the sandbox.
3023
3024 configure.ac | 10 +++++-----
3025 1 file changed, 5 insertions(+), 5 deletions(-)
3026
3027commit d74fb5f060b76db709b50f5fd37490394e52f975
3028Author: Jia Tan <jiat0218@gmail.com>
3029Date:   2023-12-19 21:18:28 +0800
3030
3031    xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.
3032
3033    A very strict sandbox is used when the last file is decompressed. The
3034    likely most common use case of xzdec is to decompress a single file.
3035    The Pledge sandbox is applied to the entire process with slightly more
3036    relaxed promises, until the last file is processed.
3037
3038    Thanks to Christian Weisgerber for the initial patch adding Pledge
3039    sandboxing.
3040
3041 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++---
3042 1 file changed, 139 insertions(+), 7 deletions(-)
3043
3044commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5
3045Author: Jia Tan <jiat0218@gmail.com>
3046Date:   2023-12-20 21:31:34 +0800
3047
3048    liblzma: Initialize lzma_lz_encoder pointers with NULL.
3049
3050    This fixes the recent change to lzma_lz_encoder that used memzero
3051    instead of the NULL constant. On some compilers the NULL constant
3052    (always 0) may not equal the NULL pointer (this only needs to guarentee
3053    to not point to valid memory address).
3054
3055    Later code compares the pointers to the NULL pointer so we must
3056    initialize them with the NULL pointer instead of 0 to guarentee
3057    code correctness.
3058
3059 src/liblzma/lz/lz_encoder.c | 6 +++++-
3060 1 file changed, 5 insertions(+), 1 deletion(-)
3061
3062commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df
3063Author: Jia Tan <jiat0218@gmail.com>
3064Date:   2023-12-16 20:51:38 +0800
3065
3066    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
3067
3068    The first member of lzma_lz_encoder doesn't necessarily need to be set
3069    to NULL since it will always be set before anything tries to use it.
3070    However the function pointer members must be set to NULL since other
3071    functions rely on this NULL value to determine if this behavior is
3072    supported or not.
3073
3074    This fixes a somewhat serious bug, where the options_update() and
3075    set_out_limit() function pointers are not set to NULL. This seems to
3076    have been forgotten since these function pointers were added many years
3077    after the original two (code() and end()).
3078
3079    The problem is that by not setting this to NULL we are relying on the
3080    memory allocation to zero things out if lzma_filters_update() is called
3081    on a LZMA1 encoder. The function pointer for set_out_limit() is less
3082    serious because there is not an API function that could call this in an
3083    incorrect way. set_out_limit() is only called by the MicroLZMA encoder,
3084    which must use LZMA1 where set_out_limit() is always set. Its currently
3085    not possible to call set_out_limit() on an LZMA2 encoder at this time.
3086
3087    So calling lzma_filters_update() on an LZMA1 encoder had undefined
3088    behavior since its possible that memory could be manipulated so the
3089    options_update member pointed to a different instruction sequence.
3090
3091    This is unlikely to be a bug in an existing application since it relies
3092    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
3093    For instance, it does not affect xz because lzma_filters_update() can
3094    only be used when encoding to the .xz format.
3095
3096    This is fixed by using memzero() to set all members of lzma_lz_encoder
3097    to NULL after it is allocated. This ensures this mistake will not occur
3098    here in the future if any additional function pointers are added.
3099
3100 src/liblzma/lz/lz_encoder.c | 4 +---
3101 1 file changed, 1 insertion(+), 3 deletions(-)
3102
3103commit 1a1bb381db7a20cf86cb45a350e5cca35224d017
3104Author: Jia Tan <jiat0218@gmail.com>
3105Date:   2023-12-16 20:30:55 +0800
3106
3107    liblzma: Tweak a comment.
3108
3109 src/liblzma/lz/lz_encoder.c | 2 +-
3110 1 file changed, 1 insertion(+), 1 deletion(-)
3111
3112commit 55810780e04f759747b02683fb8020b8cd022a85
3113Author: Jia Tan <jiat0218@gmail.com>
3114Date:   2023-12-16 20:28:21 +0800
3115
3116    liblzma: Make parameter names in function definition match declaration.
3117
3118    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
3119    parameter name instead of "filters" (used by the declaration). "filters"
3120    is more clear since the parameter represents the list of filters passed
3121    to the raw encoder, each of which contains filter options.
3122
3123 src/liblzma/common/filter_encoder.c | 8 ++++----
3124 1 file changed, 4 insertions(+), 4 deletions(-)
3125
3126commit 5dad6f628af742bab826819760deb677597445f7
3127Author: Jia Tan <jiat0218@gmail.com>
3128Date:   2023-12-16 20:18:47 +0800
3129
3130    liblzma: Improve lzma encoder init function consistency.
3131
3132    lzma_encoder_init() did not check for NULL options, but
3133    lzma2_encoder_init() did. This is more of a code style improvement than
3134    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
3135    more similar.
3136
3137 src/liblzma/lzma/lzma_encoder.c | 3 +++
3138 1 file changed, 3 insertions(+)
3139
3140commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf
3141Author: Jia Tan <jiat0218@gmail.com>
3142Date:   2023-12-16 11:20:20 +0800
3143
3144    Docs: Update repository URL in Changelog.
3145
3146 ChangeLog | 2 +-
3147 1 file changed, 1 insertion(+), 1 deletion(-)
3148
3149commit f9b82bc64a9405e486575c65c1729229eb0a8198
3150Author: Jia Tan <jiat0218@gmail.com>
3151Date:   2023-12-15 16:56:31 +0800
3152
3153    CI: Update Upload Artifact Action.
3154
3155 .github/workflows/ci.yml         | 2 +-
3156 .github/workflows/windows-ci.yml | 2 +-
3157 2 files changed, 2 insertions(+), 2 deletions(-)
3158
3159commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e
3160Author: Jia Tan <jiat0218@gmail.com>
3161Date:   2023-12-07 21:48:07 +0800
3162
3163    Tests: Silence -Wsign-conversion warning on GCC version < 10.
3164
3165    Since GCC version 10, GCC no longer complains about simple implicit
3166    integer conversions with Arithmetic operators.
3167
3168    For instance:
3169
3170        uint8_t a = 5;
3171        uint32_t b = a + 5;
3172
3173    Give a warning on GCC 9 and earlier but this:
3174
3175        uint8_t a = 5;
3176        uint32_t b = (a + 5) * 2;
3177
3178    Gives a warning with GCC 10+.
3179
3180 tests/test_block_header.c | 2 +-
3181 1 file changed, 1 insertion(+), 1 deletion(-)
3182
3183commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8
3184Author: Jia Tan <jiat0218@gmail.com>
3185Date:   2023-12-06 18:39:03 +0800
3186
3187    Update THANKS.
3188
3189 THANKS | 1 +
3190 1 file changed, 1 insertion(+)
3191
3192commit ee2f48350099201694a7586e41d7aa2f09fc74da
3193Author: Jia Tan <jiat0218@gmail.com>
3194Date:   2023-12-06 18:30:25 +0800
3195
3196    Tests: Minor cleanups to OSS-Fuzz files.
3197
3198    Most of these fixes are small typos and tweaks. A few were caused by bad
3199    advice from me. Here is the summary of what is changed:
3200
3201    - Author line edits
3202
3203    - Small comment changes/additions
3204
3205    - Using the return value in the error messages in the fuzz targets'
3206      coder initialization code
3207
3208    - Removed fuzz_encode_stream.options. This set a max length, which may
3209      prevent some worthwhile code paths from being properly exercised.
3210
3211    - Removed the max_len option from fuzz_decode_stream.options for the
3212      same reason as fuzz_encode_stream. The alone decoder fuzz target still
3213      has this restriction.
3214
3215    - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping
3216      the properties static and varying the dictionary size, the properties
3217      are varied and the dictionary size is kept small. The dictionary size
3218      doesn't have much impact on the code paths but the properties do.
3219
3220    Closes: https://github.com/tukaani-project/xz/pull/73
3221
3222 tests/ossfuzz/Makefile                          |  3 ++
3223 tests/ossfuzz/config/fuzz_decode_stream.options |  1 -
3224 tests/ossfuzz/config/fuzz_lzma.dict             | 34 +++++++++++-----------
3225 tests/ossfuzz/fuzz_common.h                     | 16 +++++------
3226 tests/ossfuzz/fuzz_decode_alone.c               | 15 +++++-----
3227 tests/ossfuzz/fuzz_decode_stream.c              | 15 +++++-----
3228 tests/ossfuzz/fuzz_encode_stream.c              | 38 +++++++++++++++----------
3229 7 files changed, 66 insertions(+), 56 deletions(-)
3230
3231commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d
3232Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
3233Date:   2023-12-05 16:31:09 +0100
3234
3235    Tests: Add fuzz_encode_stream ossfuzz target.
3236
3237    This fuzz target handles .xz stream encoding. The first byte of input
3238    is used to dynamically set the preset level in order to increase the
3239    fuzz coverage of complex critical code paths.
3240
3241 tests/ossfuzz/config/fuzz_encode_stream.options |  2 +
3242 tests/ossfuzz/fuzz_encode_stream.c              | 79 +++++++++++++++++++++++++
3243 2 files changed, 81 insertions(+)
3244
3245commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48
3246Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
3247Date:   2023-12-04 17:23:24 +0100
3248
3249    Tests: Add fuzz_decode_alone OSS-Fuzz target
3250
3251    This fuzz target that handles LZMA alone decoding. A new fuzz
3252    dictionary .dict was also created with common LZMA header values to
3253    help speed up the discovery of valid headers.
3254
3255 tests/ossfuzz/config/fuzz_decode_alone.options |  3 ++
3256 tests/ossfuzz/config/fuzz_lzma.dict            | 22 ++++++++++++++
3257 tests/ossfuzz/fuzz_decode_alone.c              | 41 ++++++++++++++++++++++++++
3258 3 files changed, 66 insertions(+)
3259
3260commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a
3261Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
3262Date:   2023-12-04 17:21:29 +0100
3263
3264    Tests: Update OSS-Fuzz Makefile.
3265
3266    All .c files can be built as separate fuzz targets. This simplifies
3267    the Makefile by allowing us to use wildcards instead of having a
3268    Makefile target for each fuzz target.
3269
3270 tests/ossfuzz/Makefile | 13 +++++++++----
3271 1 file changed, 9 insertions(+), 4 deletions(-)
3272
3273commit 28ce6a1c2a74866c51f7996a6869679c236d3c94
3274Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
3275Date:   2023-12-04 17:20:08 +0100
3276
3277    Tests: Move common OSS-Fuzz target code to .h file.
3278
3279 tests/ossfuzz/fuzz_common.h        | 56 ++++++++++++++++++++++++++++++++++++
3280 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++----------------------------
3281 2 files changed, 71 insertions(+), 44 deletions(-)
3282
3283commit bf0521ea1591c25b9d510c1b8be86073e9d847c6
3284Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
3285Date:   2023-12-04 17:18:20 +0100
3286
3287    Tests: Rename OSS-Fuzz files.
3288
3289 tests/ossfuzz/config/fuzz.options                | 2 --
3290 tests/ossfuzz/config/fuzz_decode_stream.options  | 3 +++
3291 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0
3292 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c}   | 0
3293 4 files changed, 3 insertions(+), 2 deletions(-)
3294
3295commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7
3296Author: Jia Tan <jiat0218@gmail.com>
3297Date:   2023-11-30 23:10:43 +0800
3298
3299    Update THANKS.
3300
3301 THANKS | 1 +
3302 1 file changed, 1 insertion(+)
3303
3304commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
3305Author: Kian-Meng Ang <kianmeng@cpan.org>
3306Date:   2023-11-30 23:01:19 +0800
3307
3308    Tests: Fix typos
3309
3310 tests/test_index.c        | 2 +-
3311 tests/test_lzip_decoder.c | 4 ++--
3312 2 files changed, 3 insertions(+), 3 deletions(-)
3313
3314commit 424d46ead8cbc0da57f406b76926ec4ed47437f5
3315Author: Kian-Meng Ang <kianmeng@cpan.org>
3316Date:   2023-11-30 22:59:47 +0800
3317
3318    xz: Fix typo
3319
3320 src/xz/file_io.c | 2 +-
3321 1 file changed, 1 insertion(+), 1 deletion(-)
3322
3323commit 35558adf9c45e5597f2c8dbd969885dd484038d2
3324Author: Jia Tan <jiat0218@gmail.com>
3325Date:   2023-11-30 20:41:00 +0800
3326
3327    Update THANKS.
3328
3329 THANKS | 1 +
3330 1 file changed, 1 insertion(+)
3331
3332commit fd170e8557727bed6bec0518c16415064d972e4e
3333Author: Jia Tan <jiat0218@gmail.com>
3334Date:   2023-11-22 21:20:12 +0800
3335
3336    CI: Test musl libc builds on Ubuntu runner.
3337
3338 .github/workflows/ci.yml | 19 +++++++++++++++++--
3339 1 file changed, 17 insertions(+), 2 deletions(-)
3340
3341commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e
3342Author: Jia Tan <jiat0218@gmail.com>
3343Date:   2023-11-22 21:12:15 +0800
3344
3345    CI: Allow ci_build.sh to set a different C compiler.
3346
3347 build-aux/ci_build.sh | 11 ++++++++++-
3348 1 file changed, 10 insertions(+), 1 deletion(-)
3349
3350commit ff7badef53c2cd698d4b72b945f34dfd0835e13c
3351Author: Jia Tan <jiat0218@gmail.com>
3352Date:   2023-11-24 21:19:12 +0800
3353
3354    CMake: Use consistent indentation with check_c_source_compiles().
3355
3356 CMakeLists.txt | 4 ++--
3357 1 file changed, 2 insertions(+), 2 deletions(-)
3358
3359commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1
3360Author: Jia Tan <jiat0218@gmail.com>
3361Date:   2023-11-22 20:33:36 +0800
3362
3363    CMake: Change __attribute__((__ifunc__())) detection.
3364
3365    This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc
3366    detection changes that were made to the Autotools build.
3367
3368    Fixes: https://github.com/tukaani-project/xz/issues/70
3369
3370 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
3371 1 file changed, 45 insertions(+), 8 deletions(-)
3372
3373commit 20ecee40a0053fd16371ef0628046bf45e548d72
3374Author: Jia Tan <jiat0218@gmail.com>
3375Date:   2023-11-24 20:19:11 +0800
3376
3377    Docs: Update INSTALL for --enable_ifunc change.
3378
3379 INSTALL | 16 ++++++++--------
3380 1 file changed, 8 insertions(+), 8 deletions(-)
3381
3382commit ffb456593d695d70052a2f71c7a2e6269217d194
3383Author: Jia Tan <jiat0218@gmail.com>
3384Date:   2023-11-21 20:56:55 +0800
3385
3386    Build: Change --enable-ifunc handling.
3387
3388    Some compilers support __attribute__((__ifunc__())) even though the
3389    dynamic linker does not. The compiler is able to create the binary
3390    but it will fail on startup. So it is not enough to just test if
3391    the attribute is supported.
3392
3393    The default value for enable_ifunc is now auto, which will attempt
3394    to compile a program using __attribute__((__ifunc__())). There are
3395    additional checks in this program if glibc is being used or if it
3396    is running on FreeBSD.
3397
3398    Setting --enable-ifunc will skip this test and always enable
3399    __attribute__((__ifunc__())), even if is not supported.
3400
3401 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++-----------------
3402 1 file changed, 44 insertions(+), 17 deletions(-)
3403
3404commit 12b89bcc9915090eb42ae638e565af44b6832a23
3405Author: Lasse Collin <lasse.collin@tukaani.org>
3406Date:   2023-11-23 17:39:10 +0200
3407
3408    xz: Tweak a comment.
3409
3410 src/xz/util.c | 4 ++--
3411 1 file changed, 2 insertions(+), 2 deletions(-)
3412
3413commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e
3414Author: Jia Tan <jiat0218@gmail.com>
3415Date:   2023-11-23 22:13:39 +0800
3416
3417    xz: Use is_tty() in message.c.
3418
3419 src/xz/message.c | 7 +------
3420 1 file changed, 1 insertion(+), 6 deletions(-)
3421
3422commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e
3423Author: Jia Tan <jiat0218@gmail.com>
3424Date:   2023-11-23 22:04:35 +0800
3425
3426    xz: Create separate is_tty() function.
3427
3428    The new is_tty() will report if a file descriptor is a terminal or not.
3429    On POSIX systems, it is a wrapper around isatty(). However, the native
3430    Windows implementation of isatty() will return true for all character
3431    devices, not just terminals. So is_tty() has a special case for Windows
3432    so it can use alternative Windows API functions to determine if a file
3433    descriptor is a terminal.
3434
3435    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
3436    or write to non-terminal character devices because xz thought it was a
3437    terminal. For instance:
3438
3439        xz foo -c > /dev/null
3440
3441    would fail because /dev/null was assumed to be a terminal.
3442
3443 src/xz/util.c | 30 +++++++++++++++++++++++-------
3444 src/xz/util.h | 14 ++++++++++++++
3445 2 files changed, 37 insertions(+), 7 deletions(-)
3446
3447commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d
3448Author: Jia Tan <jiat0218@gmail.com>
3449Date:   2023-11-22 20:39:41 +0800
3450
3451    tuklib_integer: Fix typo discovered by codespell.
3452
3453    Based on internet dictionary searches, 'choise' is an outdated spelling
3454    of 'choice'.
3455
3456 src/common/tuklib_integer.h | 2 +-
3457 1 file changed, 1 insertion(+), 1 deletion(-)
3458
3459commit 659aca0d695807c0762d4101765189e4e33d1e2c
3460Author: Lasse Collin <lasse.collin@tukaani.org>
3461Date:   2023-11-17 19:35:19 +0200
3462
3463    xz: Move the check for --suffix with --format=raw a few lines earlier.
3464
3465    Now it reads from argv[] instead of args->arg_names.
3466
3467 src/xz/args.c | 44 ++++++++++++++++++++++----------------------
3468 1 file changed, 22 insertions(+), 22 deletions(-)
3469
3470commit ca278eb2b7f5a4940f5ab18955297b398d423824
3471Author: Jia Tan <jiat0218@gmail.com>
3472Date:   2023-11-17 20:35:11 +0800
3473
3474    Tests: Create test_suffix.sh.
3475
3476    This tests some complicated interactions with the --suffix= option.
3477    The suffix option must be used with --format=raw, but can optionally
3478    be used to override the default .xz suffix.
3479
3480    This test also verifies some recent bugs have been correctly solved
3481    and to hopefully avoid further regressions in the future.
3482
3483 tests/Makefile.am    |   2 +
3484 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++
3485 2 files changed, 191 insertions(+)
3486
3487commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce
3488Author: Jia Tan <jiat0218@gmail.com>
3489Date:   2023-11-17 20:19:26 +0800
3490
3491    xz: Fix a bug with --files and --files0 in raw mode without a suffix.
3492
3493    The following command caused a segmentation fault:
3494
3495        xz -Fraw --lzma1 --files=foo
3496
3497    when foo was a valid file. The usage of --files or --files0 was not
3498    being checked when compressing or decompressing in raw mode without a
3499    suffix. The suffix checking code was meant to validate that all files
3500    to be processed are "-" (if not writing to standard out), meaning the
3501    data is only coming from standard in. In this case, there were no file
3502    names to check since --files and --files0 store their file name in a
3503    different place.
3504
3505    Later code assumed the suffix was set and caused a segmentation fault.
3506    Now, the above command results in an error.
3507
3508 src/xz/args.c | 5 +++++
3509 1 file changed, 5 insertions(+)
3510
3511commit 299920bab9ae258a247366339264e8aefca9e3ce
3512Author: Jia Tan <jiat0218@gmail.com>
3513Date:   2023-11-17 20:04:58 +0800
3514
3515    Tests: Fix typo in a comment.
3516
3517 tests/test_files.sh | 2 +-
3518 1 file changed, 1 insertion(+), 1 deletion(-)
3519
3520commit f481523baac946fa3bc13d79186ffaf0c0b818a7
3521Author: Jia Tan <jiat0218@gmail.com>
3522Date:   2023-11-15 23:40:13 +0800
3523
3524    xz: Refactor suffix test with raw format.
3525
3526    The previous version set opt_stdout, but this caused an issue with
3527    copying an input file to standard out when decompressing an unknown file
3528    type. The following needs to result in an error:
3529
3530        echo foo | xz -df
3531
3532    since -c, --stdout is not used. This fixes the previous error by not
3533    setting opt_stdout.
3534
3535 src/xz/args.c | 38 +++++++++++++-------------------------
3536 1 file changed, 13 insertions(+), 25 deletions(-)
3537
3538commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6
3539Author: Jia Tan <jiat0218@gmail.com>
3540Date:   2023-11-14 20:27:46 +0800
3541
3542    xz: Move suffix check after stdout mode is detected.
3543
3544    This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0
3545    when the suffix check was initially moved. This caused a situation that
3546    previously worked:
3547
3548        echo foo | xz -Fraw --lzma1 | wc -c
3549
3550    to fail because the old code knew that this would write to standard out
3551    so a suffix was not needed.
3552
3553 src/xz/args.c | 16 ++++++++--------
3554 1 file changed, 8 insertions(+), 8 deletions(-)
3555
3556commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf
3557Author: Jia Tan <jiat0218@gmail.com>
3558Date:   2023-11-14 20:27:04 +0800
3559
3560    xz: Detect when all data will be written to standard out earlier.
3561
3562    If the -c, --stdout argument is not used, then we can still detect when
3563    the data will be written to standard out if all of the provided
3564    filenames are "-" (denoting standard in) or if no filenames are
3565    provided.
3566
3567 src/xz/args.c | 21 +++++++++++++++++++++
3568 1 file changed, 21 insertions(+)
3569
3570commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b
3571Author: Jia Tan <jiat0218@gmail.com>
3572Date:   2023-11-09 01:21:53 +0800
3573
3574    liblzma: Add missing comments to lz_encoder.h.
3575
3576 src/liblzma/lz/lz_encoder.h | 6 +++++-
3577 1 file changed, 5 insertions(+), 1 deletion(-)
3578
3579commit 5fe1450603dc625340b8b7866fb4a83ff748ad06
3580Author: Jia Tan <jiat0218@gmail.com>
3581Date:   2023-11-01 20:18:30 +0800
3582
3583    Add NEWS for 5.4.5.
3584
3585 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3586 1 file changed, 74 insertions(+)
3587
3588commit 46007049cd42e606543dbe650feb17bdf4469c29
3589Author: Lasse Collin <lasse.collin@tukaani.org>
3590Date:   2023-10-31 21:41:09 +0200
3591
3592    liblzma: Fix compilation of fastpos_tablegen.c.
3593
3594    The macro lzma_attr_visibility_hidden has to be defined to make
3595    fastpos.h usable. The visibility attribute is irrelevant to
3596    fastpos_tablegen.c so simply #define the macro to an empty value.
3597
3598    fastpos_tablegen.c is never built by the included build systems
3599    and so the problem wasn't noticed earlier. It's just a standalone
3600    program for generating fastpos_table.c.
3601
3602    Fixes: https://github.com/tukaani-project/xz/pull/69
3603    Thanks to GitHub user Jamaika1.
3604
3605 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
3606 1 file changed, 2 insertions(+)
3607
3608commit 148e20607e95781558bdfc823ecba07b7af4b590
3609Author: Jia Tan <jiat0218@gmail.com>
3610Date:   2023-10-31 21:51:40 +0800
3611
3612    Build: Fix text wrapping in an output message.
3613
3614 configure.ac | 9 +++++----
3615 1 file changed, 5 insertions(+), 4 deletions(-)
3616
3617commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c
3618Author: Lasse Collin <lasse.collin@tukaani.org>
3619Date:   2023-10-30 18:09:53 +0200
3620
3621    liblzma: Add a note why crc_always_inline exists for now.
3622
3623    Solaris Studio is a possible example (not tested) which
3624    supports the always_inline attribute but might not get
3625    detected by the common.h #ifdefs.
3626
3627 src/liblzma/check/crc_common.h | 5 +++++
3628 1 file changed, 5 insertions(+)
3629
3630commit e7a86b94cd247435ac96bc79ba528b690b9ca388
3631Author: Lasse Collin <lasse.collin@tukaani.org>
3632Date:   2023-10-22 17:59:11 +0300
3633
3634    liblzma: Use lzma_always_inline in memcmplen.h.
3635
3636 src/liblzma/common/memcmplen.h | 3 +--
3637 1 file changed, 1 insertion(+), 2 deletions(-)
3638
3639commit dcfe5632992fb7f06f921da13fcdd84f83d0d285
3640Author: Lasse Collin <lasse.collin@tukaani.org>
3641Date:   2023-10-30 17:43:03 +0200
3642
3643    liblzma: #define lzma_always_inline in common.h.
3644
3645 src/liblzma/common/common.h | 17 +++++++++++++++++
3646 1 file changed, 17 insertions(+)
3647
3648commit 41113fe30a47f6fd3e30cb4494dd538e86212edf
3649Author: Lasse Collin <lasse.collin@tukaani.org>
3650Date:   2023-10-22 17:15:32 +0300
3651
3652    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
3653
3654    These variables are internal to liblzma and not exposed in the API.
3655
3656 src/liblzma/check/check.h                | 7 +++++++
3657 src/liblzma/common/stream_flags_common.h | 3 +++
3658 src/liblzma/lz/lz_encoder_hash.h         | 1 +
3659 src/liblzma/lzma/fastpos.h               | 1 +
3660 src/liblzma/rangecoder/price.h           | 1 +
3661 5 files changed, 13 insertions(+)
3662
3663commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478
3664Author: Lasse Collin <lasse.collin@tukaani.org>
3665Date:   2023-10-22 17:08:39 +0300
3666
3667    liblzma: #define lzma_attr_visibility_hidden in common.h.
3668
3669    In ELF shared libs:
3670
3671    -fvisibility=hidden affects definitions of symbols but not
3672    declarations.[*] This doesn't affect direct calls to functions
3673    inside liblzma as a linker can replace a call to lzma_foo@plt
3674    with a call directly to lzma_foo when -fvisibility=hidden is used.
3675
3676    [*] It has to be like this because otherwise every installed
3677        header file would need to explictly set the symbol visibility
3678        to default.
3679
3680    When accessing extern variables that aren't defined in the
3681    same translation unit, compiler assumes that the variable has
3682    the default visibility and thus indirection is needed. Unlike
3683    function calls, linker cannot optimize this.
3684
3685    Using __attribute__((__visibility__("hidden"))) with the extern
3686    variable declarations tells the compiler that indirection isn't
3687    needed because the definition is in the same shared library.
3688
3689    About 15+ years ago, someone told me that it would be good if
3690    the CRC tables would be defined in the same translation unit
3691    as the C code of the CRC functions. While I understood that it
3692    could help a tiny amount, I didn't want to change the code because
3693    a separate translation unit for the CRC tables was needed for the
3694    x86 assembly code anyway. But when visibility attributes are
3695    supported, simply marking the extern declaration with the
3696    hidden attribute will get identical result. When there are only
3697    a few affected variables, this is trivial to do. I wish I had
3698    understood this back then already.
3699
3700 src/liblzma/common/common.h | 11 +++++++++++
3701 1 file changed, 11 insertions(+)
3702
3703commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8
3704Author: Lasse Collin <lasse.collin@tukaani.org>
3705Date:   2023-09-30 22:54:28 +0300
3706
3707    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
3708
3709    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
3710    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
3711    most recent GCC package (released 2021-02-02). The project might
3712    still be alive but majority of people have switched to MinGW-w64.
3713    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
3714    Building with MinGW is likely to still work but I haven't tested it
3715    in the recent years.
3716
3717 src/liblzma/api/lzma.h         | 4 ++--
3718 src/liblzma/api/lzma/version.h | 2 +-
3719 2 files changed, 3 insertions(+), 3 deletions(-)
3720
3721commit 597f49b61475438a43a417236989b2acc968a686
3722Author: Lasse Collin <lasse.collin@tukaani.org>
3723Date:   2023-09-27 00:58:17 +0300
3724
3725    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
3726
3727    A CMake option LARGE_FILE_SUPPORT is created if and only if
3728    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
3729
3730    This is needed on many 32-bit platforms and even with 64-bit builds
3731    with MinGW-w64 to get support for files larger than 2 GiB.
3732
3733 CMakeLists.txt                        |  7 ++++-
3734 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
3735 2 files changed, 58 insertions(+), 1 deletion(-)
3736
3737commit 1bc548b8210366e44ba35b0b11577a8e328c1228
3738Author: Lasse Collin <lasse.collin@tukaani.org>
3739Date:   2023-09-30 02:14:25 +0300
3740
3741    CMake: Generate and install liblzma.pc if not using MSVC.
3742
3743    Autotools based build uses -pthread and thus adds it to Libs.private
3744    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
3745    are available in libc so Libs.private doesn't get -pthread either.
3746
3747 CMakeLists.txt | 21 +++++++++++++++++++++
3748 1 file changed, 21 insertions(+)
3749
3750commit 2add71966f891d315105d6245f724ed4f43a4eff
3751Author: Lasse Collin <lasse.collin@tukaani.org>
3752Date:   2023-09-30 01:13:13 +0300
3753
3754    CMake: Rearrange the PACKAGE_ variables.
3755
3756    The windres workaround now replaces spaces with \x20 so
3757    the package name isn't repeated.
3758
3759    These changes will help with creation of liblzma.pc.
3760
3761 CMakeLists.txt | 26 +++++++++++++++-----------
3762 1 file changed, 15 insertions(+), 11 deletions(-)
3763
3764commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91
3765Author: Lasse Collin <lasse.collin@tukaani.org>
3766Date:   2023-09-29 20:46:11 +0300
3767
3768    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
3769
3770    It properly adds -DLZMA_API_STATIC when compiling code that
3771    will be linked against static liblzma. Having it there on
3772    systems other than Windows does no harm.
3773
3774    See: https://www.msys2.org/docs/pkgconfig/
3775
3776 src/liblzma/liblzma.pc.in | 1 +
3777 1 file changed, 1 insertion(+)
3778
3779commit 80e0750e3996c1c659e972ce9cf789ca2e99f702
3780Author: Lasse Collin <lasse.collin@tukaani.org>
3781Date:   2023-09-27 22:46:20 +0300
3782
3783    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
3784
3785 CMakeLists.txt              | 20 ++++++++++++++++++++
3786 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
3787 2 files changed, 46 insertions(+)
3788
3789commit 08d12595f486890cf601b87f36ee0ddbce57728e
3790Author: Lasse Collin <lasse.collin@tukaani.org>
3791Date:   2023-10-26 21:44:42 +0300
3792
3793    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
3794
3795    In this case they have identical values.
3796
3797 CMakeLists.txt | 2 +-
3798 1 file changed, 1 insertion(+), 1 deletion(-)
3799
3800commit e67aaf698de75c73443a5ec786781cbf2034461d
3801Author: Lasse Collin <lasse.collin@tukaani.org>
3802Date:   2023-10-01 19:10:57 +0300
3803
3804    CMake/Windows: Fix the import library filename.
3805
3806    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
3807    liblzma.dll and liblzma.dll.a.
3808
3809 CMakeLists.txt | 1 +
3810 1 file changed, 1 insertion(+)
3811
3812commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179
3813Author: Lasse Collin <lasse.collin@tukaani.org>
3814Date:   2023-10-25 19:13:25 +0300
3815
3816    Build: Detect -fsanitize= in CFLAGS and incompatible build options.
3817
3818    Now configure will fail if -fsanitize= is found in CFLAGS
3819    and sanitizer-incompatible ifunc or Landlock sandboxing
3820    would be used. These are incompatible with one or more sanitizers.
3821    It's simpler to reject all -fsanitize= uses instead of trying to
3822    pass those that might not cause problems.
3823
3824    CMake-based build was updated similarly. It lets the configuration
3825    finish (SEND_ERROR instead of FATAL_ERROR) so that both error
3826    messages can be seen at once.
3827
3828 CMakeLists.txt | 29 +++++++++++++++++++++++++++++
3829 configure.ac   | 37 +++++++++++++++++++++++++++++++++----
3830 2 files changed, 62 insertions(+), 4 deletions(-)
3831
3832commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468
3833Author: Jia Tan <jiat0218@gmail.com>
3834Date:   2023-10-24 00:50:08 +0800
3835
3836    CI: Disable sandboxing in fsanitize=address,undefined job.
3837
3838    The sandboxing on Linux now supports Landlock, which restricts all
3839    supported filesystem actions after xz opens the files it needs. The
3840    sandbox is only enabled when one file is input and we are writing to
3841    standard out. With fsanitize=address,undefined, the instrumentation
3842    needs to read additional files after the sandbox is in place. This
3843    forces all xz based test to fail, so the sandbox must instead be
3844    disabled.
3845
3846 .github/workflows/ci.yml | 8 ++++++--
3847 1 file changed, 6 insertions(+), 2 deletions(-)
3848
3849commit b1408987ea832e2760e478ae960a636df17a1363
3850Author: Jia Tan <jiat0218@gmail.com>
3851Date:   2023-10-24 00:15:39 +0800
3852
3853    CI: Allow disabling the sandbox in ci_build.sh.
3854
3855 build-aux/ci_build.sh | 5 ++++-
3856 1 file changed, 4 insertions(+), 1 deletion(-)
3857
3858commit 91c435cf1c7a1e893706d4d716dfd361621ed824
3859Author: Lasse Collin <lasse.collin@tukaani.org>
3860Date:   2023-10-11 19:47:44 +0300
3861
3862    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
3863
3864    Using set(ENABLE_THREADS "posix") is confusing because it sets
3865    a new normal variable and leaves the cache entry with the same
3866    name unchanged. The intent wasn't to change the cache entry so
3867    this switches to a different variable name.
3868
3869 CMakeLists.txt | 10 +++++++---
3870 1 file changed, 7 insertions(+), 3 deletions(-)
3871
3872commit fa1609eb9393ecd30decfed4891c907829f06710
3873Author: Lasse Collin <lasse.collin@tukaani.org>
3874Date:   2023-10-09 22:28:49 +0300
3875
3876    Docs: Update INSTALL about sandboxing support.
3877
3878 INSTALL | 7 ++++++-
3879 1 file changed, 6 insertions(+), 1 deletion(-)
3880
3881commit 8276c7f41c671eee4aa3239490658b23dcfd3021
3882Author: Lasse Collin <lasse.collin@tukaani.org>
3883Date:   2023-10-09 22:07:52 +0300
3884
3885    xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3).
3886
3887    It is enabled only when decompressing one file to stdout,
3888    similar to how Capsicum is used.
3889
3890    Landlock was added in Linux 5.13.
3891
3892 CMakeLists.txt   | 12 +++++++++++-
3893 configure.ac     | 11 ++++++++---
3894 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3895 src/xz/main.c    | 19 +++++++++++++++++++
3896 src/xz/private.h |  3 ++-
3897 5 files changed, 98 insertions(+), 5 deletions(-)
3898
3899commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c
3900Author: Lasse Collin <lasse.collin@tukaani.org>
3901Date:   2023-10-09 21:12:31 +0300
3902
3903    CMake: Edit threading related messages.
3904
3905    It's mostly to change from "thread method" to "threading method".
3906
3907 CMakeLists.txt | 19 ++++++++++---------
3908 1 file changed, 10 insertions(+), 9 deletions(-)
3909
3910commit bf011352528ae3539ea7b780b45b96736ee57a99
3911Author: Lasse Collin <lasse.collin@tukaani.org>
3912Date:   2023-10-09 20:59:24 +0300
3913
3914    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
3915
3916    This way typos are caught quickly and compounding error messages
3917    are avoided (a single typo could cause more than one error).
3918
3919    This keeps using SEND_ERROR when the system is lacking a feature
3920    (like threading library or sandboxing method). This way the whole
3921    configuration log will be generated in case someone wishes to
3922    report a problem upstream.
3923
3924 CMakeLists.txt | 28 ++++++++++++++--------------
3925 1 file changed, 14 insertions(+), 14 deletions(-)
3926
3927commit 3f53870c249945d657ca3d75e0993e6267d71f75
3928Author: Lasse Collin <lasse.collin@tukaani.org>
3929Date:   2023-10-09 18:37:32 +0300
3930
3931    CMake: Add sandboxing support.
3932
3933 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
3934 1 file changed, 49 insertions(+), 1 deletion(-)
3935
3936commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0
3937Author: Lasse Collin <lasse.collin@tukaani.org>
3938Date:   2023-10-09 18:13:08 +0300
3939
3940    Simplify detection of Capsicum support.
3941
3942    This removes support for FreeBSD 10.0 and 10.1 which used
3943    <sys/capability.h> instead of <sys/capsicum.h>. Support for
3944    FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is
3945    required to enable Capsicum support.
3946
3947    This also removes support for Capsicum on Linux (libcaprights)
3948    which seems to have been unmaintained since 2017 and Linux 4.11:
3949    https://github.com/google/capsicum-linux
3950
3951 configure.ac            |  4 +--
3952 m4/ax_check_capsicum.m4 | 85 -------------------------------------------------
3953 src/xz/Makefile.am      |  2 +-
3954 src/xz/file_io.c        | 14 +++-----
3955 src/xz/private.h        |  2 +-
3956 5 files changed, 9 insertions(+), 98 deletions(-)
3957
3958commit c57858b60e186d020b2dbaf7aabd9b32c71da824
3959Author: Lasse Collin <lasse.collin@tukaani.org>
3960Date:   2023-09-25 01:46:36 +0300
3961
3962    xz/Windows: Allow clock_gettime with POSIX threads.
3963
3964    If winpthreads are used for threading, it's OK to use clock_gettime()
3965    from winpthreads too.
3966
3967 src/xz/mytime.c | 9 ++++++---
3968 1 file changed, 6 insertions(+), 3 deletions(-)
3969
3970commit dd32f628bb5541ef4e8ce66966ef456a1934084c
3971Author: Lasse Collin <lasse.collin@tukaani.org>
3972Date:   2023-09-25 01:39:26 +0300
3973
3974    mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads.
3975
3976    This might be almost useless but it doesn't need much extra code either.
3977
3978 src/common/mythread.h | 23 ++++++++++++++++++++++-
3979 1 file changed, 22 insertions(+), 1 deletion(-)
3980
3981commit 680e52cdd086e92691d8a0bca2c98815565f60ca
3982Author: Lasse Collin <lasse.collin@tukaani.org>
3983Date:   2023-09-23 03:06:36 +0300
3984
3985    CMake: Check for clock_gettime() even on Windows.
3986
3987    This mirrors configure.ac although currently MinGW-w64 builds
3988    don't use clock_gettime() even if it is found.
3989
3990 CMakeLists.txt | 44 +++++++++++++++++++++-----------------------
3991 1 file changed, 21 insertions(+), 23 deletions(-)
3992
3993commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419
3994Author: Lasse Collin <lasse.collin@tukaani.org>
3995Date:   2023-09-23 03:23:32 +0300
3996
3997    Build: Check for clock_gettime() even if not using POSIX threads.
3998
3999    See the new comment in the code.
4000
4001    This also makes the check for clock_gettime() run with MinGW-w64
4002    with which we don't want to use clock_gettime(). The previous
4003    commit already took care of this situation.
4004
4005 configure.ac | 31 ++++++++++++++++++-------------
4006 1 file changed, 18 insertions(+), 13 deletions(-)
4007
4008commit 46fd991cd2808ef62554853864c946232e7547f0
4009Author: Lasse Collin <lasse.collin@tukaani.org>
4010Date:   2023-09-24 22:58:53 +0300
4011
4012    xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64.
4013
4014    This commit alone doesn't change anything in the real-world:
4015
4016      - configure.ac currently checks for clock_gettime() only
4017        when using pthreads.
4018
4019      - CMakeLists.txt doesn't check for clock_gettime() on Windows.
4020
4021    So clock_gettime() wasn't used with MinGW-w64 before either.
4022
4023    clock_gettime() provides monotonic time and it's better than
4024    gettimeofday() in this sense. But clock_gettime() is defined
4025    in winpthreads, and liblzma or xz needs nothing else from
4026    winpthreads. By avoiding clock_gettime(), we avoid the dependency on
4027    libwinpthread-1.dll or the need to link against the static version.
4028
4029    As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be
4030    faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution
4031    is more than good enough for the progress indicator in xz.
4032
4033 src/xz/mytime.c | 9 +++++++--
4034 1 file changed, 7 insertions(+), 2 deletions(-)
4035
4036commit cdb4d91f2464b50c985ef7b9517314ea237ddda7
4037Author: Lasse Collin <lasse.collin@tukaani.org>
4038Date:   2023-09-24 00:21:22 +0300
4039
4040    xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
4041
4042 src/xz/mytime.c | 14 +++++++++++---
4043 1 file changed, 11 insertions(+), 3 deletions(-)
4044
4045commit 988e09f27b9b04a43d45d10f92782e0092ee27a9
4046Author: Jia Tan <jiat0218@gmail.com>
4047Date:   2023-10-20 19:17:46 +0800
4048
4049    liblzma: Move is_clmul_supported() back to crc_common.h.
4050
4051    This partially reverts creating crc_clmul.c
4052    (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
4053    was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
4054    caused a problem when the function call to lzma_is_clmul_supported()
4055    results in a call through the PLT. ifunc resolvers run very early in
4056    the dynamic loading sequence, so the PLT may not be setup properly at
4057    this point. Whether the PLT is used or not for
4058    lzma_is_clmul_supported() depened upon the compiler-toolchain used and
4059    flags.
4060
4061    In liblzma compiled with GCC, for instance, GCC will go through the PLT
4062    for function calls internal to liblzma if the version scripts and
4063    symbol visibility hiding are not used. If lazy-binding is disabled,
4064    then it would have made any program linked with liblzma fail during
4065    dynamic loading in the ifunc resolver.
4066
4067 src/liblzma/check/crc32_fast.c |  2 +-
4068 src/liblzma/check/crc64_fast.c |  2 +-
4069 src/liblzma/check/crc_clmul.c  | 45 ------------------------------------
4070 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++---
4071 4 files changed, 51 insertions(+), 50 deletions(-)
4072
4073commit 105c7ca90d4152942e0798580a37f736d02faa22
4074Author: Jia Tan <jiat0218@gmail.com>
4075Date:   2023-10-19 16:23:32 +0800
4076
4077    Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc.
4078
4079    Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be
4080    set. Because of this, it makes the recent change to conditionally
4081    compile check/crc_clmul.c appear wrong since that file has CLMUL
4082    implementations for both CRC32 and CRC64.
4083
4084 src/liblzma/check/Makefile.inc | 4 ++--
4085 1 file changed, 2 insertions(+), 2 deletions(-)
4086
4087commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c
4088Author: Jia Tan <jiat0218@gmail.com>
4089Date:   2023-10-19 16:09:01 +0800
4090
4091    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
4092
4093    The option is enabled by default, but will only be visible to a user
4094    listing cache variables or using a CMake GUI application if the
4095    immintrin.h header file is found.
4096
4097    This mirrors our Autotools build --disable-clmul-crc functionality.
4098
4099 CMakeLists.txt | 44 +++++++++++++++++++++++++-------------------
4100 1 file changed, 25 insertions(+), 19 deletions(-)
4101
4102commit c60b25569d414bb73b705977a4dd342f8f9f1965
4103Author: Jia Tan <jiat0218@gmail.com>
4104Date:   2023-10-19 00:22:50 +0800
4105
4106    liblzma: Fix -fsanitize=address failure with crc_clmul functions.
4107
4108    After forcing crc_simd_body() to always be inlined it caused
4109    -fsanitize=address to fail for lzma_crc32_clmul() and
4110    lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added
4111    to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from
4112    crc_simd_body(). ASAN and inline functions behavior has changed over
4113    the years for GCC specifically, so while strictly required we will
4114    keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in
4115    case this becomes a requirement in the future.
4116
4117    Older GCC versions refuse to inline a function with ASAN if the
4118    caller and callee do not agree on sanitization flags
4119    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the
4120    function was forced to be inlined, it will not compile if the callee
4121    function has __no_sanitize_address__ but the caller doesn't.
4122
4123 src/liblzma/check/crc_clmul.c | 6 ++++++
4124 1 file changed, 6 insertions(+)
4125
4126commit 9a78971261bc67622cbd7dae02f6966968ac1393
4127Author: Lasse Collin <lasse.collin@tukaani.org>
4128Date:   2023-10-14 20:16:13 +0300
4129
4130    tuklib_integer: Update the CMake test for fast unaligned access.
4131
4132 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++----------
4133 1 file changed, 54 insertions(+), 15 deletions(-)
4134
4135commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4
4136Author: Lasse Collin <lasse.collin@tukaani.org>
4137Date:   2023-09-23 23:28:48 +0300
4138
4139    Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V.
4140
4141    PowerPC64LE wasn't tested but it seems like a safe change.
4142    POWER8 supports unaligned access in little endian mode. Testing
4143    on godbolt.org shows that GCC uses unaligned access by default.
4144
4145    The RISC-V macro __riscv_misaligned_fast is very new and not
4146    in any stable compiler release yet.
4147
4148    Documentation in INSTALL was updated to match.
4149
4150    Documentation about an autodetection bug when using ARM64 GCC
4151    with -mstrict-align was added to INSTALL.
4152
4153    CMake files weren't updated yet.
4154
4155 INSTALL              | 39 +++++++++++++++++++++++++++++++++++++--
4156 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++-------
4157 2 files changed, 64 insertions(+), 9 deletions(-)
4158
4159commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2
4160Author: Lasse Collin <lasse.collin@tukaani.org>
4161Date:   2023-10-14 17:56:59 +0300
4162
4163    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
4164
4165    In XZ Utils context this doesn't matter much because
4166    unaligned reads and writes aren't used in hot code
4167    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
4168
4169 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
4170 1 file changed, 189 insertions(+), 67 deletions(-)
4171
4172commit 6828242735cbf61b93d140383336e1e51a006f2d
4173Author: Lasse Collin <lasse.collin@tukaani.org>
4174Date:   2023-09-23 02:21:49 +0300
4175
4176    tuklib_integer: Add missing write64be and write64le fallback functions.
4177
4178 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
4179 1 file changed, 34 insertions(+)
4180
4181commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416
4182Author: Jia Tan <jiat0218@gmail.com>
4183Date:   2023-10-18 19:57:10 +0800
4184
4185    liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul().
4186
4187    After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul()
4188    has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the
4189    optimizations disabled.
4190
4191 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++---------------
4192 1 file changed, 15 insertions(+), 15 deletions(-)
4193
4194commit 5ce0f7a48bdf5c3b45430850a4487307afac6143
4195Author: Lasse Collin <lasse.collin@tukaani.org>
4196Date:   2023-10-18 14:30:00 +0300
4197
4198    liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc.
4199
4200 src/liblzma/check/crc_common.h | 4 +++-
4201 1 file changed, 3 insertions(+), 1 deletion(-)
4202
4203commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b
4204Author: Lasse Collin <lasse.collin@tukaani.org>
4205Date:   2023-10-17 21:53:11 +0300
4206
4207    liblzma: Include common.h in crc_common.h.
4208
4209    crc_common.h depends on common.h. The headers include common.h except
4210    when there is a reason to not do so.
4211
4212 src/liblzma/check/crc_clmul.c  | 1 -
4213 src/liblzma/check/crc_common.h | 3 +++
4214 2 files changed, 3 insertions(+), 1 deletion(-)
4215
4216commit e13b7947b92355c334edd594295d3a2c99c4bca1
4217Author: Jia Tan <jiat0218@gmail.com>
4218Date:   2023-10-18 01:23:26 +0800
4219
4220    liblzma: Add include guards to crc_common.h.
4221
4222 src/liblzma/check/crc_common.h | 5 +++++
4223 1 file changed, 5 insertions(+)
4224
4225commit 40abd88afcc61a8157fcd12d78d491caeb8e12be
4226Author: Jia Tan <jiat0218@gmail.com>
4227Date:   2023-10-18 22:50:25 +0800
4228
4229    liblzma: Add the crc_always_inline macro to crc_simd_body().
4230
4231    Forcing this to be inline has a significant speed improvement at the
4232    cost of a few repeated instructions. The compilers tested on did not
4233    inline this function since it is large and is used twice in the same
4234    translation unit.
4235
4236 src/liblzma/check/crc_clmul.c | 2 +-
4237 1 file changed, 1 insertion(+), 1 deletion(-)
4238
4239commit a5966c276bd6fa975f0389f8a8dc61393de750b0
4240Author: Jia Tan <jiat0218@gmail.com>
4241Date:   2023-10-18 22:48:19 +0800
4242
4243    liblzma: Create crc_always_inline macro.
4244
4245    This macro must be used instead of the inline keyword. On MSVC, it is
4246    a replacement for __forceinline which is an MSVC specific keyword that
4247    should not be used with inline (it will issue a warning if it is).
4248
4249    It does not use a build system check to determine if
4250    __attribute__((__always_inline__)) since all compilers that can use
4251    CLMUL extensions (except the special case for MSVC) should support this
4252    attribute. If this assumption is incorrect then it will result in a bug
4253    report instead of silently producing slow code.
4254
4255 src/liblzma/check/crc_common.h | 15 +++++++++++++++
4256 1 file changed, 15 insertions(+)
4257
4258commit 96b663f67c0e738a99ba8f35d9f4ced9add74544
4259Author: Jia Tan <jiat0218@gmail.com>
4260Date:   2023-10-14 13:23:23 +0800
4261
4262    liblzma: Refactor CRC comments.
4263
4264    A detailed description of the three dispatch methods was added. Also,
4265    duplicated comments now only appear in crc32_fast.c or were removed from
4266    both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c.
4267
4268 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++-------------
4269 src/liblzma/check/crc64_fast.c | 61 ++++++----------------------------------
4270 2 files changed, 53 insertions(+), 72 deletions(-)
4271
4272commit 8c0f9376f58c0696d5d6719705164d35542dd891
4273Author: Jia Tan <jiat0218@gmail.com>
4274Date:   2023-10-14 12:17:57 +0800
4275
4276    liblzma: Create crc_clmul.c.
4277
4278    Both crc32_clmul() and crc64_clmul() are now exported from
4279    crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This
4280    ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is
4281    not duplicated between crc32_fast.c and crc64_fast.c.
4282
4283    Also, it encapsulates the complexity of the CLMUL implementations into a
4284    single file and reduces the complexity of crc32_fast.c and crc64_fast.c.
4285    Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and
4286    crc_common.h.
4287
4288    During the conversion, various cleanups were applied to code (thanks to
4289    Lasse Collin) including:
4290
4291    - Require using semicolons with MASK_/L/H/LH macros.
4292    - Variable typing and const handling improvements.
4293    - Improvements to comments.
4294    - Fixes to the pragmas used.
4295    - Removed unneeded variables.
4296    - Whitespace improvements.
4297    - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling.
4298    - Silenced warnings and removed the need for some #pragmas
4299
4300 CMakeLists.txt                 |   6 +-
4301 configure.ac                   |   6 +-
4302 src/liblzma/check/Makefile.inc |   3 +
4303 src/liblzma/check/crc32_fast.c | 120 +-----------
4304 src/liblzma/check/crc64_fast.c | 128 +------------
4305 src/liblzma/check/crc_clmul.c  | 414 +++++++++++++++++++++++++++++++++++++++++
4306 src/liblzma/check/crc_common.h | 190 +------------------
4307 7 files changed, 444 insertions(+), 423 deletions(-)
4308
4309commit a3ebc2c516b09616638060806c841bd4bcf7bce3
4310Author: Jia Tan <jiat0218@gmail.com>
4311Date:   2023-10-14 10:23:03 +0800
4312
4313    liblzma: Define CRC_USE_IFUNC in crc_common.h.
4314
4315    When ifunc is supported, we can define a simpler macro instead of
4316    repeating the more complex check in both crc32_fast.c and crc64_fast.c.
4317
4318 src/liblzma/check/crc32_fast.c | 3 +--
4319 src/liblzma/check/crc64_fast.c | 3 +--
4320 src/liblzma/check/crc_common.h | 5 +++++
4321 3 files changed, 7 insertions(+), 4 deletions(-)
4322
4323commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17
4324Author: Hans Jansen <hansjansen162@outlook.com>
4325Date:   2023-10-12 19:37:01 +0200
4326
4327    liblzma: Added crc32_clmul to crc32_fast.c.
4328
4329 src/liblzma/check/crc32_fast.c  | 247 ++++++++++++++++++++++++++++++++++++++--
4330 src/liblzma/check/crc32_table.c |  19 +++-
4331 2 files changed, 255 insertions(+), 11 deletions(-)
4332
4333commit 93e6fb08b22c7c13be2dd1e7274fe78413436254
4334Author: Hans Jansen <hansjansen162@outlook.com>
4335Date:   2023-10-12 19:23:40 +0200
4336
4337    liblzma: Moved CLMUL CRC logic to crc_common.h.
4338
4339    crc64_fast.c was updated to use the code from crc_common.h instead.
4340
4341 src/liblzma/check/crc64_fast.c | 257 ++---------------------------------------
4342 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++-
4343 2 files changed, 240 insertions(+), 247 deletions(-)
4344
4345commit 233885a437f8b55a5c8442984ebc0aaa579e92de
4346Author: Hans Jansen <hansjansen162@outlook.com>
4347Date:   2023-10-12 19:07:50 +0200
4348
4349    liblzma: Rename crc_macros.h to crc_common.h.
4350
4351 CMakeLists.txt                                   | 2 +-
4352 src/liblzma/check/Makefile.inc                   | 2 +-
4353 src/liblzma/check/crc32_fast.c                   | 2 +-
4354 src/liblzma/check/crc64_fast.c                   | 2 +-
4355 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +-
4356 5 files changed, 5 insertions(+), 5 deletions(-)
4357
4358commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd
4359Author: Gabriela Gutierrez <gabigutierrez@google.com>
4360Date:   2023-09-26 15:55:13 +0000
4361
4362    CI: Bump and ref actions by commit SHA in windows-ci.yml
4363
4364    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.
4365
4366    It's important to make sure the SHA's are from the original repositories and not forks.
4367
4368    For reference:
4369
4370    https://github.com/msys2/setup-msys2/releases/tag/v2.20.1
4371    https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d
4372
4373    https://github.com/actions/checkout/releases/tag/v4.1.0
4374    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
4375
4376    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
4377    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
4378
4379    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
4380
4381 .github/workflows/windows-ci.yml | 6 +++---
4382 1 file changed, 3 insertions(+), 3 deletions(-)
4383
4384commit f28cc9bd481ce493da11f98c18526d324211599a
4385Author: Gabriela Gutierrez <gabigutierrez@google.com>
4386Date:   2023-09-26 14:35:08 +0000
4387
4388    CI: Bump and ref actions by commit SHA in ci.yml
4389
4390    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.
4391
4392    It's important to make sure the SHA's are from the original repositories and not forks.
4393
4394    For reference:
4395
4396    https://github.com/actions/checkout/releases/tag/v4.1.0
4397    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
4398
4399    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
4400    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
4401
4402    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
4403
4404 .github/workflows/ci.yml | 4 ++--
4405 1 file changed, 2 insertions(+), 2 deletions(-)
4406
4407commit f74f1740067b75042497edbfa6ea457ff75484b9
4408Author: Jia Tan <jiat0218@gmail.com>
4409Date:   2023-10-12 20:12:18 +0800
4410
4411    Build: Update visibility.m4 from Gnulib.
4412
4413    Updating from version 6 -> 8 from upstream. Declarations for variables
4414    and function bodies were added to avoid unnecessary failures with
4415    -Werror.
4416
4417 m4/visibility.m4 | 9 +++++++--
4418 1 file changed, 7 insertions(+), 2 deletions(-)
4419
4420commit 5c4bca521e6fb435898a0012b3276eee70a6dadf
4421Author: Lasse Collin <lasse.collin@tukaani.org>
4422Date:   2023-10-06 19:36:35 +0300
4423
4424    Update THANKS.
4425
4426 THANKS | 1 +
4427 1 file changed, 1 insertion(+)
4428
4429commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
4430Author: Lasse Collin <lasse.collin@tukaani.org>
4431Date:   2023-10-06 18:55:57 +0300
4432
4433    CMake/Windows: Fix when the windres workaround is applied.
4434
4435    CMake doesn't set WIN32 on CYGWIN but the workaround is
4436    probably needed on Cygwin too. Same for MSYS and MSYS2.
4437
4438    The workaround must not be used with Clang that is acting in
4439    MSVC mode. This fixes it by checking for the known environments
4440    that need the workaround instead of using "NOT MSVC".
4441
4442    Thanks to Martin Storsjö.
4443    https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431
4444
4445 CMakeLists.txt | 6 +++---
4446 1 file changed, 3 insertions(+), 3 deletions(-)
4447
4448commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d
4449Author: Jia Tan <jiat0218@gmail.com>
4450Date:   2023-09-29 22:11:54 +0800
4451
4452    CI: Disable CLANG64 MSYS2 environment until bug is resolved.
4453
4454    lld 17.0.1 searches for libraries to link first in the toolchain
4455    directories before the local directory when building. The is a problem
4456    for us because liblzma.a is installed in MSYS2 CLANG64 by default and
4457    xz.exe will thus use the installed library instead of the one being
4458    built.
4459
4460    This causes tests to fail when they are expecting features to be
4461    disabled. More importantly, it will compile xz.exe with an incorrect
4462    liblzma and could cause unexpected behavior by being unable to update
4463    liblzma code in static builds. The CLANG64 environment can be tested
4464    again once this is fixed.
4465
4466    Link to bug: https://github.com/llvm/llvm-project/issues/67779.
4467
4468 .github/workflows/windows-ci.yml | 8 +++++---
4469 1 file changed, 5 insertions(+), 3 deletions(-)
4470
4471commit 30d0c35327f3639cb11224872aa58fdbf0b1526e
4472Author: Jia Tan <jiat0218@gmail.com>
4473Date:   2023-09-29 20:14:39 +0800
4474
4475    CMake: Rename xz and man page symlink custom targets.
4476
4477    The Ninja Generator for CMake cannot have a custom target and its
4478    BYPRODUCTS have the same name. This has prevented Ninja builds on
4479    Unix-like systems since the xz symlinks were introduced in
4480    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
4481
4482 CMakeLists.txt | 6 +++---
4483 1 file changed, 3 insertions(+), 3 deletions(-)
4484
4485commit 506d03127a8565442b028ec991e1578124fd3025
4486Author: Jia Tan <jiat0218@gmail.com>
4487Date:   2023-09-29 19:58:44 +0800
4488
4489    CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator.
4490
4491    CMake is unable to guess the linker language for just a header file so
4492    it must be explicitly set.
4493
4494 CMakeLists.txt | 6 ++++++
4495 1 file changed, 6 insertions(+)
4496
4497commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f
4498Author: Lasse Collin <lasse.collin@tukaani.org>
4499Date:   2023-09-27 19:54:35 +0300
4500
4501    CMake: Fix Windows build with Clang/LLVM 17.
4502
4503    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
4504    the hack for GNU windres must now be used with llvm-windres too.
4505
4506    LLVM 16.0.6 has the old behavior and there likely won't be more
4507    16.x releases. So we can simply check for >= 17.0.0.
4508
4509    See also:
4510    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
4511
4512 CMakeLists.txt | 26 ++++++++++++++------------
4513 1 file changed, 14 insertions(+), 12 deletions(-)
4514
4515commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1
4516Author: Lasse Collin <lasse.collin@tukaani.org>
4517Date:   2023-09-26 21:47:13 +0300
4518
4519    liblzma: Update a comment.
4520
4521    The C standards don't allow an empty translation unit which can be
4522    avoided by declaring something, without exporting any symbols.
4523
4524    When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had
4525    a feeling that some specific toolchain somewhere didn't like
4526    empty object files (assembler or maybe "ar" complained) but
4527    I cannot find anything to confirm this now. Quite likely I
4528    remembered nonsense. I leave this here as a note to my future self. :-)
4529
4530 src/liblzma/check/crc64_table.c | 3 +--
4531 1 file changed, 1 insertion(+), 2 deletions(-)
4532
4533commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499
4534Author: Jia Tan <jiat0218@gmail.com>
4535Date:   2023-09-27 00:02:11 +0800
4536
4537    liblzma: Avoid compiler warning without creating extra symbol.
4538
4539    When the generic fast crc64 method is used, then we omit
4540    lzma_crc64_table[][]. Similar to
4541    d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings
4542    with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a
4543    never used typedef instead of an extra symbol.
4544
4545 src/liblzma/check/crc64_table.c | 3 +--
4546 1 file changed, 1 insertion(+), 2 deletions(-)
4547
4548commit 092d21db2e5eea19fe079264ce48c178989c7606
4549Author: Lasse Collin <lasse.collin@tukaani.org>
4550Date:   2023-09-26 17:24:15 +0300
4551
4552    Build: Update the comment about -Werror usage in checks.
4553
4554 configure.ac | 10 ++++++++--
4555 1 file changed, 8 insertions(+), 2 deletions(-)
4556
4557commit a37a2763383e6c204fe878e1416dd35e7711d3a9
4558Author: Lasse Collin <lasse.collin@tukaani.org>
4559Date:   2023-09-26 15:00:43 +0300
4560
4561    Build: Fix __attribute__((ifunc(...))) detection with clang -Wall.
4562
4563    Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic
4564    the two checks that need -Werror will still work.
4565
4566    At CMake side there is add_compile_options(-Wall -Wextra)
4567    but it didn't affect the -Werror tests. So with both Autotools
4568    and CMake only user-supplied CFLAGS could make the checks fail
4569    when they shouldn't.
4570
4571    This is not a full fix as things like -Wunused-macros in
4572    user-supplied CFLAGS will still cause problems with both
4573    GCC and Clang.
4574
4575 CMakeLists.txt | 8 ++++++++
4576 configure.ac   | 8 ++++++++
4577 2 files changed, 16 insertions(+)
4578
4579commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2
4580Author: Lasse Collin <lasse.collin@tukaani.org>
4581Date:   2023-09-26 13:51:31 +0300
4582
4583    Build: Fix underquoted AC_LANG_SOURCE.
4584
4585    It made no practical difference in this case.
4586
4587 configure.ac | 2 +-
4588 1 file changed, 1 insertion(+), 1 deletion(-)
4589
4590commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982
4591Author: Lasse Collin <lasse.collin@tukaani.org>
4592Date:   2023-09-26 13:14:37 +0300
4593
4594    Build: Silence two Autoconf warnings.
4595
4596    There were two uses of AC_COMPILE_IFELSE that didn't use
4597    AC_LANG_SOURCE and Autoconf warned about these. The omission
4598    had been intentional but it turned out that this didn't do
4599    what I thought it would.
4600
4601    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
4602    inserts all #defines that have been made with AC_DEFINE so
4603    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
4604    would mean that only the exact code included in the
4605    AC_COMPILE_IFELSE call would be compiled.
4606
4607    With C programs this is not true: the #defines get added without
4608    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
4609    Thus, with the C language at least, adding AC_LANG_SOURCE makes
4610    no other difference than silencing a warning from Autoconf. The
4611    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
4612    say that the #defines have been inserted since Autoconf 2.63b and
4613    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
4614    documented if one also reads the docs of macros that one isn't
4615    calling directly.)
4616
4617    Any extra code, including #defines, can cause problems for
4618    these two tests because these tests must use -Werror.
4619    CC=clang CFLAGS=-Weverything is the most extreme example.
4620    It enables -Wreserved-macro-identifier which warns about
4621    #define __EXTENSIONS__ 1 because it begins with two underscores.
4622    It's possible to write a test file that passes -Weverything but
4623    it becomes impossible when Autoconf inserts confdefs.h.
4624
4625    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
4626    A different solution is needed for -Werror tests.
4627
4628 configure.ac | 9 ++++-----
4629 1 file changed, 4 insertions(+), 5 deletions(-)
4630
4631commit 519e47c2818acde571fadc79551294527fe6cc22
4632Author: Jia Tan <jiat0218@gmail.com>
4633Date:   2023-09-26 01:17:11 +0800
4634
4635    CMake: Remove accidental extra newline.
4636
4637 CMakeLists.txt | 1 -
4638 1 file changed, 1 deletion(-)
4639
4640commit bbb42412da6a02705ba3e668e90840c2683e4e67
4641Author: Jia Tan <jiat0218@gmail.com>
4642Date:   2023-09-26 00:47:26 +0800
4643
4644    Build: Remove Gnulib dependency from tests.
4645
4646    The tests do not use any Gnulib replacements so they do not need to link
4647    libgnu.a or have /lib in the include path.
4648
4649 tests/Makefile.am | 7 +------
4650 1 file changed, 1 insertion(+), 6 deletions(-)
4651
4652commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa
4653Author: Jia Tan <jiat0218@gmail.com>
4654Date:   2023-09-26 00:43:43 +0800
4655
4656    CMake: Remove /lib from tests include path.
4657
4658    The tests never included anything from /lib, so this was not needed.
4659
4660 CMakeLists.txt | 1 -
4661 1 file changed, 1 deletion(-)
4662
4663commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f
4664Author: Jia Tan <jiat0218@gmail.com>
4665Date:   2023-09-24 22:10:41 +0800
4666
4667    Scripts: Change quoting style from `...' to '...'.
4668
4669 src/scripts/xzdiff.in | 2 +-
4670 src/scripts/xzgrep.in | 2 +-
4671 2 files changed, 2 insertions(+), 2 deletions(-)
4672
4673commit eaebdef4d4de3c088b0905f42626b74e0d23abf3
4674Author: Jia Tan <jiat0218@gmail.com>
4675Date:   2023-09-24 22:10:18 +0800
4676
4677    xz: Change quoting style from `...' to '...'.
4678
4679 src/xz/args.c    |  6 +++---
4680 src/xz/file_io.c |  2 +-
4681 src/xz/main.c    |  4 ++--
4682 src/xz/message.c | 14 +++++++-------
4683 src/xz/options.c |  2 +-
4684 src/xz/suffix.c  |  2 +-
4685 src/xz/util.c    |  6 +++---
4686 7 files changed, 18 insertions(+), 18 deletions(-)
4687
4688commit f6667702bf075a05fbe336dbf3576ad1a82ec645
4689Author: Jia Tan <jiat0218@gmail.com>
4690Date:   2023-09-24 22:09:47 +0800
4691
4692    liblzma: Change quoting style from `...' to '...'.
4693
4694    This was done for both internal and API headers.
4695
4696 src/liblzma/api/lzma/base.h            | 18 +++++++++---------
4697 src/liblzma/api/lzma/container.h       | 10 +++++-----
4698 src/liblzma/api/lzma/filter.h          |  6 +++---
4699 src/liblzma/api/lzma/index.h           |  8 ++++----
4700 src/liblzma/api/lzma/lzma12.h          |  2 +-
4701 src/liblzma/lz/lz_encoder.h            |  2 +-
4702 src/liblzma/rangecoder/range_decoder.h |  2 +-
4703 7 files changed, 24 insertions(+), 24 deletions(-)
4704
4705commit be012b8097a4eaee335b51357d6befa745f753ce
4706Author: Jia Tan <jiat0218@gmail.com>
4707Date:   2023-09-24 22:09:16 +0800
4708
4709    Build: Change quoting style from `...' to '...'.
4710
4711 configure.ac          | 18 +++++++++---------
4712 dos/config.h          |  6 +++---
4713 m4/getopt.m4          |  2 +-
4714 m4/tuklib_progname.m4 |  2 +-
4715 windows/build.bash    |  2 +-
4716 5 files changed, 15 insertions(+), 15 deletions(-)
4717
4718commit ce162db07f03495bd333696e66883c8f36abdc1e
4719Author: Jia Tan <jiat0218@gmail.com>
4720Date:   2023-09-24 22:05:02 +0800
4721
4722    Docs: Change quoting style from `...' to '...'.
4723
4724    These days the ` and ' do not look symmetric. This quoting style has
4725    been changed in various apps over the years including the GNU tools.
4726
4727 INSTALL                         |  6 +++---
4728 doc/examples/01_compress_easy.c |  2 +-
4729 doc/examples/11_file_info.c     | 16 ++++++++--------
4730 3 files changed, 12 insertions(+), 12 deletions(-)
4731
4732commit db17656721e43939bfa4ec13506e7c76f4b86da6
4733Author: Jia Tan <jiat0218@gmail.com>
4734Date:   2023-09-24 21:25:01 +0800
4735
4736    lib: Silence -Wsign-conversion in getopt.c.
4737
4738 lib/getopt.c | 6 +++---
4739 1 file changed, 3 insertions(+), 3 deletions(-)
4740
4741commit a6234f677d66888f435010bc0b67de6a32fefcf6
4742Author: Jia Tan <jiat0218@gmail.com>
4743Date:   2023-09-24 20:48:52 +0800
4744
4745    Build: Update getopt.m4 from Gnulib.
4746
4747    This file was modified from upstream since we do not need to replace
4748    getopt() and can avoid complexity and feature tests.
4749
4750 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------
4751 1 file changed, 39 insertions(+), 40 deletions(-)
4752
4753commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10
4754Author: Jia Tan <jiat0218@gmail.com>
4755Date:   2023-09-26 00:09:53 +0800
4756
4757    CMake: Add /lib to include path.
4758
4759 CMakeLists.txt | 5 +++++
4760 1 file changed, 5 insertions(+)
4761
4762commit 01804a0b4b64e0f33568e947e0579263808c59d3
4763Author: Jia Tan <jiat0218@gmail.com>
4764Date:   2023-09-24 20:36:34 +0800
4765
4766    CMake: Update libgnu target with new header files.
4767
4768 CMakeLists.txt | 5 +++++
4769 1 file changed, 5 insertions(+)
4770
4771commit d34558388fe1d8929f6478d61dc322eb4f2900af
4772Author: Jia Tan <jiat0218@gmail.com>
4773Date:   2023-09-23 00:47:52 +0800
4774
4775    lib: Update Makefile.am for new header files.
4776
4777 lib/Makefile.am | 12 +++++++++++-
4778 1 file changed, 11 insertions(+), 1 deletion(-)
4779
4780commit 52bf644bdf536e20fcc743b712cede135e05eec5
4781Author: Jia Tan <jiat0218@gmail.com>
4782Date:   2023-09-24 20:34:03 +0800
4783
4784    lib: Update getopt1.c from Gnulib.
4785
4786    The only difference was maintaining the conditional inclusion for
4787    config.h.
4788
4789 lib/getopt1.c | 56 ++++++++++++++++++++++----------------------------------
4790 1 file changed, 22 insertions(+), 34 deletions(-)
4791
4792commit 7e884c00d0093c38339f17fb1d280eec493f42ca
4793Author: Jia Tan <jiat0218@gmail.com>
4794Date:   2023-09-23 03:27:00 +0800
4795
4796    lib: Update getopt.in.h from Gnulib with modifications.
4797
4798    We can still avoid modifying the contents of this file during
4799    configuration to simplify the build systems. Gnulib added replacements
4800    for inclusions guards for Cygwin. Cygwin should not need getopt_long
4801    replacement so this feature can be omitted.
4802
4803    <unistd.h> is conditionally included to avoid MSVC since it is not
4804    available.
4805
4806    The definition for _GL_ARG_NONNULL was also copied into this file from
4807    Gnulib since this stage is usually done during gnulib-tool.
4808
4809 lib/getopt.in.h | 228 +++++++-------------------------------------------------
4810 1 file changed, 29 insertions(+), 199 deletions(-)
4811
4812commit cff05f82066ca3ce9425dafdb086325a8eef8de3
4813Author: Jia Tan <jiat0218@gmail.com>
4814Date:   2023-09-23 00:31:55 +0800
4815
4816    lib: Update getopt_int.h from Gnulib.
4817
4818 lib/getopt_int.h | 109 ++++++++++++++++++++++++-------------------------------
4819 1 file changed, 48 insertions(+), 61 deletions(-)
4820
4821commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024
4822Author: Jia Tan <jiat0218@gmail.com>
4823Date:   2023-09-23 00:27:23 +0800
4824
4825    lib: Update getopt.c from Gnulib with modifications.
4826
4827    The code maintains the prior modifications of conditionally including
4828    config.h and disabling NLS support.
4829
4830    _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED
4831    is only used for these two parameters so its simpler than having to
4832    define it.
4833
4834 lib/getopt.c | 1134 +++++++++++++++++++---------------------------------------
4835 1 file changed, 377 insertions(+), 757 deletions(-)
4836
4837commit 56b42be7287844db20b3a3bc1372c6ae8c040d63
4838Author: Jia Tan <jiat0218@gmail.com>
4839Date:   2023-09-23 00:18:56 +0800
4840
4841    lib: Add getopt-cdefs.h for getopt_long update.
4842
4843    This was modified slightly from Gnulib. In Gnulib, it expects the
4844    @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H
4845    on systems that have it and avoid copying another file into the build
4846    directory. Since we are not using gnulib-tool, copying extra files
4847    requires extra build system updates (and special handling with CMake) so
4848    we should avoid when possible.
4849
4850 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
4851 1 file changed, 70 insertions(+)
4852
4853commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196
4854Author: Jia Tan <jiat0218@gmail.com>
4855Date:   2023-09-23 00:15:25 +0800
4856
4857    lib: Copy new header files from Gnulib without modification.
4858
4859    The getopt related files have changed from Gnulib by splitting up
4860    getopt.in.h into more modular header files. We could have kept
4861    everything in just getopt.in.h, but this will help us continue to update
4862    in the future.
4863
4864 lib/getopt-core.h     | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++
4865 lib/getopt-ext.h      | 77 +++++++++++++++++++++++++++++++++++++++++
4866 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++
4867 lib/getopt-pfx-ext.h  | 70 +++++++++++++++++++++++++++++++++++++
4868 4 files changed, 309 insertions(+)
4869
4870commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93
4871Author: Lasse Collin <lasse.collin@tukaani.org>
4872Date:   2023-09-22 21:16:52 +0300
4873
4874    Windows: Update the version requirement comments from Win95 to W2k.
4875
4876 windows/README-Windows.txt | 10 ++++------
4877 windows/build.bash         |  6 +++---
4878 2 files changed, 7 insertions(+), 9 deletions(-)
4879
4880commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1
4881Author: Lasse Collin <lasse.collin@tukaani.org>
4882Date:   2023-09-22 21:12:54 +0300
4883
4884    tuklib_physmem: Comment out support for Windows versions older than 2000.
4885
4886 src/common/tuklib_physmem.c | 20 +++++++++-----------
4887 1 file changed, 9 insertions(+), 11 deletions(-)
4888
4889commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a
4890Author: Lasse Collin <lasse.collin@tukaani.org>
4891Date:   2023-09-24 16:32:32 +0300
4892
4893    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
4894
4895 src/common/sysdefs.h | 10 +++++++++-
4896 1 file changed, 9 insertions(+), 1 deletion(-)
4897
4898commit 2a9929af0ab7e6c0ab725565034afe3293e51d71
4899Author: Lasse Collin <lasse.collin@tukaani.org>
4900Date:   2023-09-22 02:33:29 +0300
4901
4902    xz: Windows: Don't (de)compress to special files like "con" or "nul".
4903
4904    Before this commit, the following writes "foo" to the
4905    console and deletes the input file:
4906
4907        echo foo | xz > con_xz
4908        xz --suffix=_xz --decompress con_xz
4909
4910    It cannot happen without --suffix because names like con.xz
4911    are also special and so attempting to decompress con.xz
4912    (or compress con to con.xz) will already fail when opening
4913    the input file.
4914
4915    Similar thing is possible when compressing. The following
4916    writes to "nul" and the input file "n" is deleted.
4917
4918        echo foo | xz > n
4919        xz --suffix=ul n
4920
4921    Now xz checks if the destination is a special file before
4922    continuing. DOS/DJGPP version had a check for this but
4923    Windows (and OS/2) didn't.
4924
4925 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
4926 1 file changed, 28 insertions(+), 7 deletions(-)
4927
4928commit 01311b81f03cce1c0ce847a3d556f84dbd439343
4929Author: Lasse Collin <lasse.collin@tukaani.org>
4930Date:   2023-09-21 20:42:52 +0300
4931
4932    CMake: Wrap two overlong lines that are possible to wrap.
4933
4934 CMakeLists.txt | 6 ++++--
4935 1 file changed, 4 insertions(+), 2 deletions(-)
4936
4937commit 152d0771ddd0cffcac9042ad1a66f110d228eee2
4938Author: Lasse Collin <lasse.collin@tukaani.org>
4939Date:   2023-09-21 20:36:31 +0300
4940
4941    CMake: Add a comment about threads on Cygwin.
4942
4943 CMakeLists.txt | 1 +
4944 1 file changed, 1 insertion(+)
4945
4946commit 6df988cceffaa3100b428ed816fad334935b27bf
4947Author: Lasse Collin <lasse.collin@tukaani.org>
4948Date:   2023-09-12 23:53:25 +0300
4949
4950    MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt.
4951
4952    CMake is now the preferred build file generator when building
4953    with MSVC.
4954
4955 windows/INSTALL-MSVC.txt           |  37 ++--
4956 windows/vs2013/config.h            | 157 ---------------
4957 windows/vs2013/liblzma.vcxproj     | 363 ---------------------------------
4958 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------
4959 windows/vs2013/xz_win.sln          |  48 -----
4960 windows/vs2017/config.h            | 157 ---------------
4961 windows/vs2017/liblzma.vcxproj     | 363 ---------------------------------
4962 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------
4963 windows/vs2017/xz_win.sln          |  48 -----
4964 windows/vs2019/config.h            | 157 ---------------
4965 windows/vs2019/liblzma.vcxproj     | 364 ---------------------------------
4966 windows/vs2019/liblzma_dll.vcxproj | 399 -------------------------------------
4967 windows/vs2019/xz_win.sln          |  51 -----
4968 13 files changed, 12 insertions(+), 2928 deletions(-)
4969
4970commit edd563daf0da1d00018684614803c77ab62efcd6
4971Author: Lasse Collin <lasse.collin@tukaani.org>
4972Date:   2023-09-21 19:17:40 +0300
4973
4974    CMake: Require VS2015 or later for building xzdec.
4975
4976    xzdec might build with VS2013 but it hasn't been tested.
4977    It was never supported before and VS2013 is old anyway
4978    so for simplicity only liblzma is supported with VS2013.
4979
4980 CMakeLists.txt | 2 +-
4981 1 file changed, 1 insertion(+), 1 deletion(-)
4982
4983commit daea64d158a7151ca6c255a0e4554c6d521cd589
4984Author: Lasse Collin <lasse.collin@tukaani.org>
4985Date:   2023-09-12 23:43:49 +0300
4986
4987    CMake: Allow building xz with Visual Studio 2015 and later.
4988
4989    Building the command line tools xz and xzdec with the combination
4990    of CMake + Visual Studio 2015/2017/2019/2022 works now.
4991
4992    VS2013 update 2 should still be able to build liblzma.
4993    VS2013 cannot build the xz command line tool because xz
4994    needs snprintf() that roughly conforms to C99.
4995    VS2013 is old and no extra code will be added to support it.
4996
4997    Thanks to Kelvin Lee and Jia Tan for testing.
4998
4999 CMakeLists.txt | 2 +-
5000 1 file changed, 1 insertion(+), 1 deletion(-)
5001
5002commit 8c2d197c940d246849b2ec48109bb22e54036927
5003Author: Lasse Collin <lasse.collin@tukaani.org>
5004Date:   2023-09-12 23:34:31 +0300
5005
5006    MSVC: #define inline and restrict only when needed.
5007
5008    This also drops the check for _WIN32 as that shouldn't be needed.
5009
5010 src/common/sysdefs.h | 13 ++++++++-----
5011 1 file changed, 8 insertions(+), 5 deletions(-)
5012
5013commit af66cd585902045e5689a0418103ec81f19f1d0a
5014Author: Lasse Collin <lasse.collin@tukaani.org>
5015Date:   2023-09-12 22:16:56 +0300
5016
5017    CMake: Add support for replacement getopt_long (lib/getopt*).
5018
5019    Thanks to Jia Tan for the initial work. I added the libgnu target
5020    and made a few related minor edits.
5021
5022 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
5023 1 file changed, 47 insertions(+), 7 deletions(-)
5024
5025commit e3288fdb45c580cb849f6799cf419c4922004ae5
5026Author: Lasse Collin <lasse.collin@tukaani.org>
5027Date:   2023-09-12 21:12:34 +0300
5028
5029    CMake: Bump maximum policy version to 3.27.
5030
5031    There are several new policies. CMP0149 may affect the Windows SDK
5032    version that CMake will choose by default. The new behavior is more
5033    predictable, always choosing the latest SDK version by default.
5034
5035    The other new policies shouldn't affect this package.
5036
5037 CMakeLists.txt | 2 +-
5038 1 file changed, 1 insertion(+), 1 deletion(-)
5039
5040commit aff1b479c7b168652bd20305ceed4317d5db6661
5041Author: Lasse Collin <lasse.collin@tukaani.org>
5042Date:   2023-09-12 20:55:10 +0300
5043
5044    lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined.
5045
5046    The CMake-based build doesn't use config.h.
5047
5048    Up-to-date getopt_long in Gnulib is LGPLv2 so at some
5049    point it could be included in XZ Utils too but for now
5050    this commit is enough to make CMake-based build possible.
5051
5052 lib/getopt.c  | 4 +++-
5053 lib/getopt1.c | 4 +++-
5054 2 files changed, 6 insertions(+), 2 deletions(-)
5055
5056commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5
5057Author: Lasse Collin <lasse.collin@tukaani.org>
5058Date:   2023-09-08 19:08:57 +0300
5059
5060    Doxygen: Add more C macro names to PREDEFINED.
5061
5062 doxygen/Doxyfile | 7 +++++--
5063 1 file changed, 5 insertions(+), 2 deletions(-)
5064
5065commit ee7709bae53637e1765ce142ef102914f1423cb5
5066Author: Lasse Collin <lasse.collin@tukaani.org>
5067Date:   2023-09-11 18:47:26 +0300
5068
5069    liblzma: Move a few __attribute__ uses in function declarations.
5070
5071    The API headers have many attributes but these were left
5072    as is for now.
5073
5074 src/liblzma/common/common.c    | 6 ++++--
5075 src/liblzma/common/common.h    | 8 ++++----
5076 src/liblzma/common/memcmplen.h | 3 ++-
5077 3 files changed, 10 insertions(+), 7 deletions(-)
5078
5079commit 217958d88713b5dc73d366d24dd64b2b311b86fe
5080Author: Lasse Collin <lasse.collin@tukaani.org>
5081Date:   2023-09-11 19:03:35 +0300
5082
5083    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
5084
5085    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
5086    must be at the beginning of declaration (before "extern" or
5087    "static", and even before any GNU C's __attribute__).
5088
5089    This commit also moves all other function attributes to
5090    the beginning of function declarations. "extern" is kept
5091    at the beginning of a line so the attributes are listed on
5092    separate lines before "extern" or "static".
5093
5094 src/lzmainfo/lzmainfo.c |  6 ++++--
5095 src/xz/coder.c          |  3 ++-
5096 src/xz/hardware.h       |  3 ++-
5097 src/xz/message.h        | 30 +++++++++++++++++-------------
5098 src/xz/options.c        |  3 ++-
5099 src/xz/util.h           |  8 ++++----
5100 src/xzdec/xzdec.c       |  9 ++++++---
5101 7 files changed, 37 insertions(+), 25 deletions(-)
5102
5103commit 18a66fbac031c98f9c2077fc88846e4d07849197
5104Author: Lasse Collin <lasse.collin@tukaani.org>
5105Date:   2023-09-11 18:53:31 +0300
5106
5107    Remove incorrect uses of __attribute__((__malloc__)).
5108
5109    xrealloc() is obviously incorrect, modern GCC docs even
5110    mention realloc() as an example where this attribute
5111    cannot be used.
5112
5113    liblzma's lzma_alloc() and lzma_alloc_zero() would be
5114    correct uses most of the time but custom allocators
5115    may use a memory pool or otherwise hold the pointer
5116    so aliasing issues could happen in theory.
5117
5118    The xstrdup() case likely was correct but I removed it anyway.
5119    Now there are no __malloc__ attributes left in the code.
5120    The allocations aren't in hot paths so this should make
5121    no practical difference.
5122
5123 src/liblzma/common/common.c | 4 ++--
5124 src/liblzma/common/common.h | 4 ++--
5125 src/xz/util.h               | 4 ++--
5126 3 files changed, 6 insertions(+), 6 deletions(-)
5127
5128commit 74b0e900c92d5b222b36f474f1efa431f8e262f7
5129Author: Lasse Collin <lasse.collin@tukaani.org>
5130Date:   2023-09-08 18:41:25 +0300
5131
5132    Build: Omit -Wc99-c11-compat since it warns about _Noreturn.
5133
5134 configure.ac | 1 -
5135 1 file changed, 1 deletion(-)
5136
5137commit 90c94dddfd57b7d744bfad64c54e10d15778144b
5138Author: Lasse Collin <lasse.collin@tukaani.org>
5139Date:   2023-09-08 18:19:26 +0300
5140
5141    tuklib: Update tuklib_attr_noreturn for C11/C17 and C23.
5142
5143    This makes no difference for GCC or Clang as they support
5144    GNU C's __attribute__((__noreturn__)) but this helps with MSVC:
5145
5146      - VS 2019 version 16.7 and later support _Noreturn if the
5147        options /std:c11 or /std:c17 are used. This gets handled
5148        with the check for __STDC_VERSION__ >= 201112.
5149
5150      - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used.
5151
5152    C23 will deprecate _Noreturn (and <stdnoreturn.h>)
5153    for [[noreturn]]. This commit anticipates that but
5154    the final __STDC_VERSION__ value isn't known yet.
5155
5156 src/common/tuklib_common.h | 22 +++++++++++++++++++++-
5157 src/common/tuklib_exit.h   |  4 ++--
5158 2 files changed, 23 insertions(+), 3 deletions(-)
5159
5160commit 189f72581329ab281ad6af37f60135910cb1b146
5161Author: Lasse Collin <lasse.collin@tukaani.org>
5162Date:   2023-09-11 17:22:44 +0300
5163
5164    Update THANKS.
5165
5166 THANKS | 1 +
5167 1 file changed, 1 insertion(+)
5168
5169commit 79334e7f20f2bf9e0de095835b48868f1238f584
5170Author: Lasse Collin <lasse.collin@tukaani.org>
5171Date:   2023-09-05 22:42:10 +0300
5172
5173    MSVC: xz: Make file_io.c and file_io.h compatible with MSVC.
5174
5175    Thanks to Kelvin Lee for the original patches
5176    and testing the modifications I made.
5177
5178 src/xz/file_io.c | 26 ++++++++++++++++++++++++++
5179 src/xz/file_io.h | 10 ++++++++++
5180 2 files changed, 36 insertions(+)
5181
5182commit c660b8d78b7bda43b12b285550d8c70e8ccec698
5183Author: Lasse Collin <lasse.collin@tukaani.org>
5184Date:   2023-09-05 21:33:35 +0300
5185
5186    MSVC: xz: Use GetTickCount64() to implement mytime_now().
5187
5188    It's available since Windows Vista.
5189
5190 src/xz/mytime.c | 11 +++++++++--
5191 1 file changed, 9 insertions(+), 2 deletions(-)
5192
5193commit 5c6f892d411670e3060f4bc309402617a209e57c
5194Author: Kelvin Lee <kiyolee@gmail.com>
5195Date:   2023-09-05 15:05:09 +0300
5196
5197    MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c.
5198
5199 src/xz/suffix.c | 10 ++++++++--
5200 1 file changed, 8 insertions(+), 2 deletions(-)
5201
5202commit e241051f50044259d174e8b4633dd9a1c4478408
5203Author: Kelvin Lee <kiyolee@gmail.com>
5204Date:   2023-09-05 15:01:10 +0300
5205
5206    MSVC: xz: Use _isatty() from <io.h> to implement isatty().
5207
5208 src/xz/message.c | 5 +++++
5209 src/xz/util.c    | 5 +++++
5210 2 files changed, 10 insertions(+)
5211
5212commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
5213Author: Kelvin Lee <kiyolee@gmail.com>
5214Date:   2023-09-05 15:10:31 +0300
5215
5216    MSVC: xz: Use _fileno() instead of fileno().
5217
5218 src/xz/private.h | 4 ++++
5219 1 file changed, 4 insertions(+)
5220
5221commit c4edd367678e6a38c42b149856159bf417da7fe1
5222Author: Kelvin Lee <kiyolee@gmail.com>
5223Date:   2023-09-05 15:00:07 +0300
5224
5225    MSVC: xzdec: Use _fileno and _setmode.
5226
5227 src/xzdec/xzdec.c | 4 ++++
5228 1 file changed, 4 insertions(+)
5229
5230commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0
5231Author: Kelvin Lee <kiyolee@gmail.com>
5232Date:   2023-09-05 14:37:50 +0300
5233
5234    MSVC: Don't #include <unistd.h>.
5235
5236 lib/getopt.c      | 4 +++-
5237 lib/getopt.in.h   | 4 +++-
5238 src/xz/private.h  | 5 ++++-
5239 src/xzdec/xzdec.c | 5 ++++-
5240 4 files changed, 14 insertions(+), 4 deletions(-)
5241
5242commit adef92f23563a2cc088b31ddee9040ecc96bc996
5243Author: Lasse Collin <lasse.collin@tukaani.org>
5244Date:   2023-09-19 14:03:45 +0300
5245
5246    Update THANKS.
5247
5248 THANKS | 1 +
5249 1 file changed, 1 insertion(+)
5250
5251commit 953e775941a25bfcfa353f802b13e66acb1edf2c
5252Author: Jia Tan <jiat0218@gmail.com>
5253Date:   2023-09-14 21:13:23 +0800
5254
5255    CI: Enable CLMUL in address sanitization test.
5256
5257    The crc64_clmul() function should be ignored by the address sanitizer
5258    now so these builds should still pass.
5259
5260 .github/workflows/ci.yml | 12 ++++--------
5261 1 file changed, 4 insertions(+), 8 deletions(-)
5262
5263commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77
5264Author: Lasse Collin <lasse.collin@tukaani.org>
5265Date:   2023-09-14 16:35:46 +0300
5266
5267    Update THANKS.
5268
5269 THANKS | 1 +
5270 1 file changed, 1 insertion(+)
5271
5272commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
5273Author: Lasse Collin <lasse.collin@tukaani.org>
5274Date:   2023-09-14 16:34:07 +0300
5275
5276    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
5277
5278    Thanks to Agostino Sarubbo.
5279    Fixes: https://github.com/tukaani-project/xz/issues/62
5280
5281 src/liblzma/check/crc64_fast.c | 8 ++++++++
5282 1 file changed, 8 insertions(+)
5283
5284commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08
5285Author: Jia Tan <jiat0218@gmail.com>
5286Date:   2023-09-12 22:36:12 +0800
5287
5288    CMake: Fix time.h checks not running on second CMake run.
5289
5290    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
5291    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
5292    for librt being needed to provide HAVE_CLOCK_GETTIME was also
5293    simplified.
5294
5295 CMakeLists.txt | 18 ++++++++++--------
5296 1 file changed, 10 insertions(+), 8 deletions(-)
5297
5298commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6
5299Author: Jia Tan <jiat0218@gmail.com>
5300Date:   2023-09-12 22:34:06 +0800
5301
5302    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
5303
5304    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
5305    added as a compile definition even if the check for it failed.
5306
5307 CMakeLists.txt | 8 +++-----
5308 1 file changed, 3 insertions(+), 5 deletions(-)
5309
5310commit eccf12866527b8d24c7d7f92f755142be8ef9b11
5311Author: Lasse Collin <lasse.collin@tukaani.org>
5312Date:   2023-08-31 19:50:05 +0300
5313
5314    xz: Refactor thousand separator detection and disable it on MSVC.
5315
5316    Now the two variations of the format strings are created with
5317    a macro, and the whole detection code can be easily disabled
5318    on platforms where thousand separator formatting is known to
5319    not work (MSVC has no support, and on DJGPP 2.05 it can have
5320    problems in some cases).
5321
5322 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
5323 1 file changed, 45 insertions(+), 44 deletions(-)
5324
5325commit f7093cd9d130477c234b40aeda613964171f8f21
5326Author: Lasse Collin <lasse.collin@tukaani.org>
5327Date:   2023-08-31 18:14:43 +0300
5328
5329    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
5330
5331    SSIZE_MAX isn't readily available on MSVC. Removing it means
5332    that there is one thing less to worry when porting to MSVC.
5333
5334 src/xz/file_io.c | 5 ++---
5335 src/xz/file_io.h | 4 ++--
5336 2 files changed, 4 insertions(+), 5 deletions(-)
5337
5338commit 74c3449d8b816a724b12ebce7417e00fb597309a
5339Author: Jia Tan <jiat0218@gmail.com>
5340Date:   2023-08-28 23:14:45 +0800
5341
5342    Tests: Improve invalid unpadded size check in test_lzma_index_append().
5343
5344    This check was extended to test the code added to fix a failing assert
5345    in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
5346
5347 tests/test_index.c | 26 +++++++++++++++++++++++---
5348 1 file changed, 23 insertions(+), 3 deletions(-)
5349
5350commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336
5351Author: Jia Tan <jiat0218@gmail.com>
5352Date:   2023-08-28 21:54:41 +0800
5353
5354    Tests: Improve comments in test_index.c.
5355
5356 tests/test_index.c | 6 +++---
5357 1 file changed, 3 insertions(+), 3 deletions(-)
5358
5359commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b
5360Author: Jia Tan <jiat0218@gmail.com>
5361Date:   2023-08-28 21:52:54 +0800
5362
5363    Update THANKS.
5364
5365 THANKS | 1 +
5366 1 file changed, 1 insertion(+)
5367
5368commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
5369Author: Jia Tan <jiat0218@gmail.com>
5370Date:   2023-08-28 21:50:16 +0800
5371
5372    liblzma: Update assert in vli_ceil4().
5373
5374    The argument to vli_ceil4() should always guarantee the return value
5375    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
5376    are invalid arguments. All uses of the function ensure this so the
5377    assert is updated to match this.
5378
5379 src/liblzma/common/index.h | 2 +-
5380 1 file changed, 1 insertion(+), 1 deletion(-)
5381
5382commit ae5c07b22a6b3766b84f409f1b6b5c100469068a
5383Author: Jia Tan <jiat0218@gmail.com>
5384Date:   2023-08-28 21:31:25 +0800
5385
5386    liblzma: Add overflow check for Unpadded size in lzma_index_append().
5387
5388    This was not a security bug since there was no path to overflow
5389    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
5390    The bug was discovered by a failing assert() in vli_ceil4() when called
5391    from index_file_size() when unpadded_sum (the sum of the compressed size
5392    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
5393
5394    Previously, the unpadded_size parameter was checked to be not greater
5395    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
5396    added.
5397
5398    This could not have caused an integer overflow in index_file_size() when
5399    called by lzma_index_append(). The calculation for file_size breaks down
5400    into the sum of:
5401
5402    - Compressed base from all previous Streams
5403    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
5404      footer)
5405    - stream_padding (can be set by lzma_index_stream_padding())
5406    - Compressed base from the current Stream
5407    - Unpadded size (parameter to lzma_index_append())
5408
5409    The sum of everything except for Unpadded size must be less than
5410    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
5411    that can set these values including lzma_index_stream_padding(),
5412    lzma_index_append(), and lzma_index_cat(). The maximum value for
5413    Unpadded size is enforced by lzma_index_append() to be less than or
5414    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
5415    LZMA_VLI_MAX is half of UINT64_MAX.
5416
5417    Thanks to Joona Kannisto for reporting this.
5418
5419 src/liblzma/common/index.c | 6 ++++++
5420 1 file changed, 6 insertions(+)
5421
5422commit 1057765aaabfe0f1397b8094531846655376ae38
5423Author: Jia Tan <jiat0218@gmail.com>
5424Date:   2023-08-28 22:18:29 +0800
5425
5426    Translations: Update the Esperanto translation.
5427
5428 po/eo.po | 4 ++--
5429 1 file changed, 2 insertions(+), 2 deletions(-)
5430
5431commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856
5432Author: Jia Tan <jiat0218@gmail.com>
5433Date:   2023-08-26 20:10:23 +0800
5434
5435    Translations: Update the Esperanto translation.
5436
5437 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
5438 1 file changed, 29 insertions(+), 18 deletions(-)
5439
5440commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3
5441Author: Jia Tan <jiat0218@gmail.com>
5442Date:   2023-08-09 20:55:36 +0800
5443
5444    Docs: Update INSTALL for --enable-threads method win95.
5445
5446    The Autotools build allows win95 threads and --enable-small together now
5447    if the compiler supports __attribute__((__constructor__)).
5448
5449 INSTALL | 6 ++++--
5450 1 file changed, 4 insertions(+), 2 deletions(-)
5451
5452commit 356ad5b26b4196f085ce3afa1869154ca81faad8
5453Author: Jia Tan <jiat0218@gmail.com>
5454Date:   2023-08-09 20:54:15 +0800
5455
5456    CMake: Conditionally allow win95 threads and --enable-small.
5457
5458 CMakeLists.txt | 28 ++++++++++++++++++++--------
5459 1 file changed, 20 insertions(+), 8 deletions(-)
5460
5461commit de574404c4c2f87aca049f232c38526e3ce092aa
5462Author: Jia Tan <jiat0218@gmail.com>
5463Date:   2023-08-09 20:35:16 +0800
5464
5465    Build: Conditionally allow win95 threads and --enable-small.
5466
5467    When the compiler supports __attribute__((__constructor__))
5468    mythread_once() is never used, even with --enable-small. A configuration
5469    with win95 threads and --enable-small will compile and be thread safe so
5470    it can be allowed.
5471
5472    This isn't a very common configuration since MSVC does not support
5473    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
5474    for MSYS2 can use win95 threads and have
5475    __attribute__((__constructor__)) support.
5476
5477 configure.ac | 21 +++++++++++++--------
5478 1 file changed, 13 insertions(+), 8 deletions(-)
5479
5480commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a
5481Author: Jamaika1 <lukaszcz18@wp.pl>
5482Date:   2023-08-08 14:07:59 +0200
5483
5484    mythread.h: Fix typo error in Vista threads mythread_once().
5485
5486    The "once_" variable was accidentally referred to as just "once". This
5487    prevented building with Vista threads when
5488    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
5489
5490 src/common/mythread.h | 2 +-
5491 1 file changed, 1 insertion(+), 1 deletion(-)
5492
5493commit 80cb961e5380a3878246d41341ff91378ca59e05
5494Author: Jia Tan <jiat0218@gmail.com>
5495Date:   2023-08-04 22:17:11 +0800
5496
5497    codespell: Add .codespellrc to set default options.
5498
5499    The .codespellrc allows setting default options to avoid false positive
5500    matches, set additional dictionaries, etc. For now, codespell can be
5501    used locally before committing doc and comment changes.
5502
5503    It should help prevent silly errors and fix up commits in the future.
5504
5505 .codespellrc | 24 ++++++++++++++++++++++++
5506 1 file changed, 24 insertions(+)
5507
5508commit cd678a6077358935249b64a4a16fe8d17434f9c9
5509Author: Jia Tan <jiat0218@gmail.com>
5510Date:   2023-08-03 20:10:21 +0800
5511
5512    Tests: Style fixes to test_lzip_decoder.c.
5513
5514 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
5515 1 file changed, 24 insertions(+), 12 deletions(-)
5516
5517commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81
5518Author: Jia Tan <jiat0218@gmail.com>
5519Date:   2023-08-03 15:56:20 +0800
5520
5521    Translations: Update the Chinese (simplified) translation.
5522
5523 po/zh_CN.po | 2 +-
5524 1 file changed, 1 insertion(+), 1 deletion(-)
5525
5526commit 16068f6c30b888cdb873f6285af941d00f95741d
5527Author: Lasse Collin <lasse.collin@tukaani.org>
5528Date:   2023-08-02 17:15:12 +0300
5529
5530    xz: Omit an empty paragraph on the man page.
5531
5532 src/xz/xz.1 | 1 -
5533 1 file changed, 1 deletion(-)
5534
5535commit 9ae4371b5106189486e850ce777e40f7b6021c0b
5536Author: Jia Tan <jiat0218@gmail.com>
5537Date:   2023-08-02 20:30:07 +0800
5538
5539    Add NEWS for 5.4.4.
5540
5541 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
5542 1 file changed, 43 insertions(+)
5543
5544commit e8c2203b2c76466d8d3387c5212b46151de8e605
5545Author: Lasse Collin <lasse.collin@tukaani.org>
5546Date:   2023-08-02 15:19:43 +0300
5547
5548    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
5549
5550    groff defaults to SGR escapes. Using -P-c passes -c to grotty
5551    which restores the old behavior. Perhaps there is a better way to
5552    get pure plain text output but this works for now.
5553
5554 build-aux/manconv.sh | 4 ++--
5555 1 file changed, 2 insertions(+), 2 deletions(-)
5556
5557commit 9a706167b0d903d92fd134895acb4bc6a5e3e688
5558Author: Lasse Collin <lasse.collin@tukaani.org>
5559Date:   2023-08-01 19:10:43 +0300
5560
5561    Update THANKS.
5562
5563 THANKS | 1 +
5564 1 file changed, 1 insertion(+)
5565
5566commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
5567Author: Lasse Collin <lasse.collin@tukaani.org>
5568Date:   2023-08-01 18:22:24 +0300
5569
5570    Update THANKS.
5571
5572 THANKS | 1 +
5573 1 file changed, 1 insertion(+)
5574
5575commit 81db3b889830132334d1f2129bdc93177ac2ca7d
5576Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
5577Date:   2023-08-01 18:17:17 +0300
5578
5579    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
5580
5581    signal.h in WASI SDK doesn't currently provide sigprocmask()
5582    or sigset_t. liblzma doesn't need them so this change makes
5583    liblzma and xzdec build against WASI SDK. xz doesn't build yet
5584    and the tests don't either as tuktest needs setjmp() which
5585    isn't (yet?) implemented in WASI SDK.
5586
5587    Closes: https://github.com/tukaani-project/xz/pull/57
5588    See also: https://github.com/tukaani-project/xz/pull/56
5589
5590    (The original commit was edited a little by Lasse Collin.)
5591
5592 src/common/mythread.h | 2 +-
5593 1 file changed, 1 insertion(+), 1 deletion(-)
5594
5595commit 71c638c611324e606d324c8189fef8fe79db6991
5596Author: Jia Tan <jiat0218@gmail.com>
5597Date:   2023-08-01 21:58:51 +0800
5598
5599    Add newline to end of .gitignore.
5600
5601    Newline was accidentally removed in commit
5602    01cbb7f023ee7fda8ddde04bd17cf7d3c2418706.
5603
5604 .gitignore | 2 +-
5605 1 file changed, 1 insertion(+), 1 deletion(-)
5606
5607commit 42df7c7aa1cca385e509eb33c65136e61890f0bf
5608Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
5609Date:   2023-07-31 14:02:21 +0200
5610
5611    Docs: Fix typos found by codespell
5612
5613 CMakeLists.txt                            | 4 ++--
5614 NEWS                                      | 2 +-
5615 configure.ac                              | 2 +-
5616 src/liblzma/api/lzma/container.h          | 4 ++--
5617 src/liblzma/api/lzma/filter.h             | 2 +-
5618 src/liblzma/api/lzma/lzma12.h             | 4 ++--
5619 src/liblzma/common/block_buffer_encoder.c | 2 +-
5620 src/liblzma/common/common.h               | 2 +-
5621 src/liblzma/common/file_info.c            | 2 +-
5622 src/liblzma/common/lzip_decoder.c         | 2 +-
5623 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
5624 src/liblzma/common/string_conversion.c    | 6 +++---
5625 src/liblzma/lz/lz_encoder.h               | 2 +-
5626 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
5627 src/xz/hardware.c                         | 4 ++--
5628 tests/test_filter_flags.c                 | 4 ++--
5629 tests/test_index.c                        | 2 +-
5630 tests/test_vli.c                          | 2 +-
5631 18 files changed, 29 insertions(+), 29 deletions(-)
5632
5633commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706
5634Author: Jia Tan <jiat0218@gmail.com>
5635Date:   2023-07-26 20:26:23 +0800
5636
5637    Update .gitignore.
5638
5639 .gitignore | 4 ++++
5640 1 file changed, 4 insertions(+)
5641
5642commit f97a1afd564c48ad9cb94682e10972a72e11fa08
5643Author: Jia Tan <jiat0218@gmail.com>
5644Date:   2023-07-28 22:03:08 +0800
5645
5646    CMake: Conditionally allow the creation of broken symlinks.
5647
5648    The CMake build will try to create broken symlinks on Unix and Unix-like
5649    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
5650    broken symlinks. The value of the CYGWIN or MSYS environment variables
5651    determine if broken symlinks are valid.
5652
5653    The default for MSYS2 does not allow for broken symlinks, so the CMake
5654    build has been broken for MSYS2 since commit
5655    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
5656
5657 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
5658 1 file changed, 75 insertions(+), 7 deletions(-)
5659
5660commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f
5661Author: Jia Tan <jiat0218@gmail.com>
5662Date:   2023-07-28 21:56:48 +0800
5663
5664    CI: Fix windows-ci dependency installation.
5665
5666    All of the MSYS2 environments need make, and it does not come with the
5667    toolchain package. The toolchain package will install the needed
5668    compiler toolchains since without this package CMake cannot properly
5669    generate the Makefiles.
5670
5671 .github/workflows/windows-ci.yml | 6 +++---
5672 1 file changed, 3 insertions(+), 3 deletions(-)
5673
5674commit a048f472cd9a2245265cb292853cbbcdd4f02001
5675Author: Jia Tan <jiat0218@gmail.com>
5676Date:   2023-07-28 21:54:22 +0800
5677
5678    CI: Update ci_build.sh CMake to always make Unix Makefiles.
5679
5680    The default for many of the MSYS2 environments is for CMake to create
5681    Ninja build files. This would complicate the build script since we would
5682    need a different command to run the tests. Its simpler to always use
5683    Unix Makefiles so that "make test" is always a usable target for
5684    testing.
5685
5686 build-aux/ci_build.sh | 4 ++--
5687 1 file changed, 2 insertions(+), 2 deletions(-)
5688
5689commit 7870396a0ca945473aa0d1d790f4cbef456610bd
5690Author: Jia Tan <jiat0218@gmail.com>
5691Date:   2023-07-25 20:17:23 +0800
5692
5693    CI: Test CMake builds and test framework with MSYS2.
5694
5695 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------
5696 1 file changed, 20 insertions(+), 12 deletions(-)
5697
5698commit 6497d1f8875cb7e3007f714336cc09c06fed235b
5699Author: Jia Tan <jiat0218@gmail.com>
5700Date:   2023-07-25 20:14:53 +0800
5701
5702    CI: Windows CI rename system matrix variable -> msys2_env.
5703
5704    Calling the MSYS2 environment "system" was a bit vague and should be
5705    more specific.
5706
5707 .github/workflows/windows-ci.yml | 15 +++++----------
5708 1 file changed, 5 insertions(+), 10 deletions(-)
5709
5710commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd
5711Author: Jia Tan <jiat0218@gmail.com>
5712Date:   2023-07-24 23:11:45 +0800
5713
5714    CI: Add Clang64 MSYS2 environment to Windows CI.
5715
5716 .github/workflows/windows-ci.yml | 1 +
5717 1 file changed, 1 insertion(+)
5718
5719commit d9166b52cf3458a4da3eb92224837ca8fc208d79
5720Author: Jia Tan <jiat0218@gmail.com>
5721Date:   2023-07-24 21:43:44 +0800
5722
5723    liblzma: Prevent an empty translation unit in Windows builds.
5724
5725    To workaround Automake lacking Windows resource compiler support, an
5726    empty source file is compiled to overwrite the resource files for static
5727    library builds. Translation units without an external declaration are
5728    not allowed by the C standard and result in a warning when used with
5729    -Wempty-translation-unit (Clang) or -pedantic (GCC).
5730
5731 src/liblzma/Makefile.am | 6 +++++-
5732 1 file changed, 5 insertions(+), 1 deletion(-)
5733
5734commit db5019d691f980d622fb56fdcf383af2c3519c98
5735Author: Jia Tan <jiat0218@gmail.com>
5736Date:   2023-07-22 18:37:56 +0800
5737
5738    Translations: Update the Vietnamese translation.
5739
5740 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
5741 1 file changed, 28 insertions(+), 17 deletions(-)
5742
5743commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5
5744Author: Jia Tan <jiat0218@gmail.com>
5745Date:   2023-07-22 14:55:42 +0800
5746
5747    CI: Add Windows runner for Autotools builds with MSYS2.
5748
5749    Only a subset of the tests run by the Linux and MacOS Autotools builds
5750    are run. The most interesting tests are the ones that disable threads,
5751    encoders, and decoders.
5752
5753    The Windows runner will only be run manually since these tests will
5754    likely take much longer than the Linux and MacOS runners. This runner
5755    should be used before merging any large features and before releases.
5756
5757    Currently the clang64 environment fails to due to a warning and
5758    -Werror is enabled for the CI tests. This is still an early version
5759    since the CMake build can be done for MSVC and optionally each of the
5760    MSYS2 environments. GitHub does not allow manually running the CI tests
5761    unless the workflow is checked on the default branch so checking in a
5762    minimum version is a good idea.
5763
5764    Thanks to Arthur S for the original proposing the original patch.
5765
5766    Closes: https://github.com/tukaani-project/xz/pull/34
5767
5768 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++
5769 1 file changed, 119 insertions(+)
5770
5771commit 556536a3525df9e5ed78b8c7057991cfa9edfac8
5772Author: Jia Tan <jiat0218@gmail.com>
5773Date:   2023-07-21 22:11:01 +0800
5774
5775    CI: Add argument to ci_build.sh to pass flags to autogen.sh.
5776
5777 build-aux/ci_build.sh | 9 +++++++--
5778 1 file changed, 7 insertions(+), 2 deletions(-)
5779
5780commit 39a32d36fc465c4e70f13192eea380e518ba6e8a
5781Author: Jia Tan <jiat0218@gmail.com>
5782Date:   2023-07-21 18:05:44 +0800
5783
5784    Tests: Skip .lz files in test_files.sh if not configured.
5785
5786    Previously if the lzip decoder was not configured then test_files.sh
5787    would pass the lzip tests instead of skipping them.
5788
5789 tests/test_files.sh | 2 +-
5790 1 file changed, 1 insertion(+), 1 deletion(-)
5791
5792commit 194d12724b30fe42789d12a0184f9d412c449347
5793Author: Jia Tan <jiat0218@gmail.com>
5794Date:   2023-07-20 22:11:13 +0800
5795
5796    Tests: Add ARM64 filter test to test_compress.sh.
5797
5798 tests/test_compress.sh | 1 +
5799 1 file changed, 1 insertion(+)
5800
5801commit d850365c444368102c69beaddf849ed463c33467
5802Author: Jia Tan <jiat0218@gmail.com>
5803Date:   2023-07-20 20:30:05 +0800
5804
5805    Translations: Update the Croatian translation.
5806
5807 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
5808 1 file changed, 30 insertions(+), 19 deletions(-)
5809
5810commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe
5811Author: Jia Tan <jiat0218@gmail.com>
5812Date:   2023-07-20 20:28:32 +0800
5813
5814    Translations: Update the Korean man page translations.
5815
5816 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
5817 1 file changed, 629 insertions(+), 626 deletions(-)
5818
5819commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49
5820Author: Jia Tan <jiat0218@gmail.com>
5821Date:   2023-07-20 20:25:24 +0800
5822
5823    Translations: Update the Korean translation.
5824
5825 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
5826 1 file changed, 28 insertions(+), 17 deletions(-)
5827
5828commit 237f06d9c55cf438a7538a598354bcf103f23711
5829Author: Jia Tan <jiat0218@gmail.com>
5830Date:   2023-07-20 20:24:05 +0800
5831
5832    Translations: Update the Polish translation.
5833
5834 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
5835 1 file changed, 29 insertions(+), 18 deletions(-)
5836
5837commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a
5838Author: Jia Tan <jiat0218@gmail.com>
5839Date:   2023-07-20 20:22:23 +0800
5840
5841    Translations: Update the German man page translations.
5842
5843 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
5844 1 file changed, 629 insertions(+), 626 deletions(-)
5845
5846commit fdbde14503ca03069d3649aa51926f5f796b89d8
5847Author: Jia Tan <jiat0218@gmail.com>
5848Date:   2023-07-20 20:18:44 +0800
5849
5850    Translations: Update the German translation.
5851
5852 po/de.po | 47 +++++++++++++++++++++++++++++------------------
5853 1 file changed, 29 insertions(+), 18 deletions(-)
5854
5855commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101
5856Author: Jia Tan <jiat0218@gmail.com>
5857Date:   2023-07-20 20:17:10 +0800
5858
5859    Translations: Update the Chinese (simplified) translation.
5860
5861 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
5862 1 file changed, 29 insertions(+), 18 deletions(-)
5863
5864commit 376938c588011567c74f1d5a160c0ccce6336d46
5865Author: Jia Tan <jiat0218@gmail.com>
5866Date:   2023-07-20 20:15:47 +0800
5867
5868    Translations: Update the Swedish translation.
5869
5870 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
5871 1 file changed, 29 insertions(+), 18 deletions(-)
5872
5873commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8
5874Author: Jia Tan <jiat0218@gmail.com>
5875Date:   2023-07-20 20:14:00 +0800
5876
5877    Translations: Update the Ukrainian man page translations.
5878
5879 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
5880 1 file changed, 628 insertions(+), 625 deletions(-)
5881
5882commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b
5883Author: Jia Tan <jiat0218@gmail.com>
5884Date:   2023-07-20 20:09:15 +0800
5885
5886    Translations: Update the Ukrainian translation.
5887
5888 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
5889 1 file changed, 28 insertions(+), 17 deletions(-)
5890
5891commit f881018b503fd334331c24a09075429558abbce1
5892Author: Jia Tan <jiat0218@gmail.com>
5893Date:   2023-07-20 20:06:57 +0800
5894
5895    Translations: Update the Spanish translation.
5896
5897 po/es.po | 47 +++++++++++++++++++++++++++++------------------
5898 1 file changed, 29 insertions(+), 18 deletions(-)
5899
5900commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31
5901Author: Jia Tan <jiat0218@gmail.com>
5902Date:   2023-07-20 20:05:19 +0800
5903
5904    Translations: Update the Romanian translation.
5905
5906 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
5907 1 file changed, 30 insertions(+), 18 deletions(-)
5908
5909commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77
5910Author: Jia Tan <jiat0218@gmail.com>
5911Date:   2023-07-20 20:02:56 +0800
5912
5913    Translations: Update the Romanian man page translations.
5914
5915 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
5916 1 file changed, 629 insertions(+), 625 deletions(-)
5917
5918commit 0184d344fa4f215cd345bb131db9068e077c69b8
5919Author: Jia Tan <jiat0218@gmail.com>
5920Date:   2023-07-19 23:36:00 +0800
5921
5922    liblzma: Suppress -Wunused-function warning.
5923
5924    Clang 16.0.0 and earlier have a bug that the ifunc resolver function
5925    triggers the -Wunused-function warning. The resolver function is static
5926    and only "used" by the __attribute__((__ifunc()__)).
5927
5928    At this time, the bug is still unresolved, but has been reported:
5929    https://github.com/llvm/llvm-project/issues/63957
5930
5931    This is not a problem in GCC.
5932
5933 src/liblzma/check/crc64_fast.c | 10 ++++++++++
5934 1 file changed, 10 insertions(+)
5935
5936commit 43845fa70fc751736c44c18f4cee42d49bfd1392
5937Author: Jia Tan <jiat0218@gmail.com>
5938Date:   2023-07-18 22:52:25 +0800
5939
5940    liblzma: Reword lzma_str_list_filters() documentation.
5941
5942    This further improves the documentation from commit
5943    f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of
5944    "supported options" was slightly misleading since the options that are
5945    printed are the ones that are relevant for encoding/decoding. It is not
5946    about which options can or must be specified.
5947
5948 src/liblzma/api/lzma/filter.h | 2 +-
5949 1 file changed, 1 insertion(+), 1 deletion(-)
5950
5951commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67
5952Author: Jia Tan <jiat0218@gmail.com>
5953Date:   2023-07-18 22:49:57 +0800
5954
5955    liblzma: Improve comment in string_conversion.c.
5956
5957    The comment used "flag" when referring to decoder options. Just
5958    referring to them as options is more clear and consistent.
5959
5960 src/liblzma/common/string_conversion.c | 4 ++--
5961 1 file changed, 2 insertions(+), 2 deletions(-)
5962
5963commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090
5964Author: Lasse Collin <lasse.collin@tukaani.org>
5965Date:   2023-07-18 17:37:33 +0300
5966
5967    xz: Translate the second "%s: " in message.c since French needs "%s : ".
5968
5969    This string is used to print a filename when using "xz -v" and
5970    stderr isn't a terminal.
5971
5972 src/xz/message.c | 2 +-
5973 1 file changed, 1 insertion(+), 1 deletion(-)
5974
5975commit be644042c3066d8e7a2834f989671ba74d27f749
5976Author: Lasse Collin <lasse.collin@tukaani.org>
5977Date:   2023-07-18 14:35:33 +0300
5978
5979    xz: Make "%s: %s" translatable because French needs "%s : %s".
5980
5981 src/xz/args.c    |  5 ++++-
5982 src/xz/coder.c   |  8 ++++----
5983 src/xz/file_io.c |  8 ++++----
5984 src/xz/list.c    | 11 ++++++-----
5985 4 files changed, 18 insertions(+), 14 deletions(-)
5986
5987commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2
5988Author: Lasse Collin <lasse.collin@tukaani.org>
5989Date:   2023-07-18 13:57:54 +0300
5990
5991    liblzma: Tweak #if condition in memcmplen.h.
5992
5993    Maybe ICC always #defines _MSC_VER on Windows but now
5994    it's very clear which code will get used.
5995
5996 src/liblzma/common/memcmplen.h | 4 ++--
5997 1 file changed, 2 insertions(+), 2 deletions(-)
5998
5999commit 40392c19f71985852d75997f109dea97177d6f3f
6000Author: Lasse Collin <lasse.collin@tukaani.org>
6001Date:   2023-07-18 13:49:43 +0300
6002
6003    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
6004
6005 src/liblzma/common/memcmplen.h | 4 ++--
6006 1 file changed, 2 insertions(+), 2 deletions(-)
6007
6008commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98
6009Author: Jia Tan <jiat0218@gmail.com>
6010Date:   2023-07-18 00:51:48 +0800
6011
6012    xz: Update Authors list in a few files.
6013
6014 src/xz/args.c    | 3 ++-
6015 src/xz/args.h    | 3 ++-
6016 src/xz/coder.c   | 3 ++-
6017 src/xz/coder.h   | 3 ++-
6018 src/xz/message.c | 3 ++-
6019 5 files changed, 10 insertions(+), 5 deletions(-)
6020
6021commit 289034a168878baa9df6ff6e159110aade69cba5
6022Author: Jia Tan <jiat0218@gmail.com>
6023Date:   2023-07-14 23:20:33 +0800
6024
6025    Docs: Add a new section to INSTALL for Tests.
6026
6027    The new Tests section describes basic information about the tests, how
6028    to run them, and important details when cross compiling. We have had a
6029    few questions about how to compile the tests without running them, so
6030    hopefully this information will help others with the same question in the
6031    future.
6032
6033    Fixes: https://github.com/tukaani-project/xz/issues/54
6034
6035 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
6036 1 file changed, 64 insertions(+), 17 deletions(-)
6037
6038commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513
6039Author: Jia Tan <jiat0218@gmail.com>
6040Date:   2023-07-14 21:10:27 +0800
6041
6042    Docs: Update README.
6043
6044    This adds an entry to "Other implementations of the .xz format" for
6045    XZ for Java.
6046
6047 README | 4 ++++
6048 1 file changed, 4 insertions(+)
6049
6050commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9
6051Author: Jia Tan <jiat0218@gmail.com>
6052Date:   2023-07-13 23:32:10 +0800
6053
6054    xz: Fix typo in man page.
6055
6056    The Memory limit information section described three output
6057    columns when it actually has six. This was reworded to
6058    "multiple" to make it more future proof.
6059
6060 src/xz/xz.1 | 2 +-
6061 1 file changed, 1 insertion(+), 1 deletion(-)
6062
6063commit f907705eb1f6c5edaafc9668a34c51a989932f1d
6064Author: Jia Tan <jiat0218@gmail.com>
6065Date:   2023-07-13 21:46:12 +0800
6066
6067    xz: Minor clean up for coder.c
6068
6069    * Moved max_block_list_size from a global to local variable.
6070    * Reworded error message in validate_block_list_filter().
6071    * Removed helper function filter_chain_error().
6072    * Changed 1 << X to 1U << X in many places
6073
6074 src/xz/coder.c | 53 +++++++++++++++++++++--------------------------------
6075 1 file changed, 21 insertions(+), 32 deletions(-)
6076
6077commit 9adc9e56157ecbf2948e5036df8567809b9ae177
6078Author: Jia Tan <jiat0218@gmail.com>
6079Date:   2023-07-13 21:26:47 +0800
6080
6081    xz: Update man page Authors and date.
6082
6083 src/xz/xz.1 | 5 +++--
6084 1 file changed, 3 insertions(+), 2 deletions(-)
6085
6086commit c12e429f2635da8d8f5749e5f733f451baca6945
6087Author: Jia Tan <jiat0218@gmail.com>
6088Date:   2023-06-20 20:32:59 +0800
6089
6090    xz: Add a section to man page for robot mode --filters-help.
6091
6092 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++--
6093 1 file changed, 30 insertions(+), 2 deletions(-)
6094
6095commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d
6096Author: Jia Tan <jiat0218@gmail.com>
6097Date:   2023-06-19 23:11:41 +0800
6098
6099    xz: Slight reword in xz man page for consistency.
6100
6101    Changed will print => prints in xz --robot --version description to
6102    match --robot --info-memory description.
6103
6104 src/xz/xz.1 | 2 +-
6105 1 file changed, 1 insertion(+), 1 deletion(-)
6106
6107commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81
6108Author: Jia Tan <jiat0218@gmail.com>
6109Date:   2023-06-19 23:07:10 +0800
6110
6111    xz: Reorder robot mode subsections in the man page.
6112
6113    The order is now consistent with the order the command line arguments
6114    are documented earlier in the man page. The new order is:
6115    1. --list
6116    2. --info-memory
6117    3. --version
6118
6119    Instead of the previous order:
6120    1. --version
6121    2. --info-memory
6122    3. --list
6123
6124 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------
6125 1 file changed, 96 insertions(+), 96 deletions(-)
6126
6127commit 9628be23aef2784249fd9f3199799d785d2ec5cc
6128Author: Jia Tan <jiat0218@gmail.com>
6129Date:   2023-05-13 00:46:50 +0800
6130
6131    xz: Update man page for new --filters-help option.
6132
6133 src/xz/xz.1 | 10 ++++++++++
6134 1 file changed, 10 insertions(+)
6135
6136commit a165d7df1964121eb9df715e6f836a31c865beef
6137Author: Jia Tan <jiat0218@gmail.com>
6138Date:   2023-05-13 00:44:41 +0800
6139
6140    xz: Add a new --filters-help option.
6141
6142    The --filters-help can be used to help create filter chains with the
6143    --filters and --filtersX options. The message in --long-help is too
6144    short to fully explain the syntax to construct complex filter chains.
6145
6146    In --robot mode, xz will only print the output from liblzma function
6147    lzma_str_list_filters.
6148
6149 src/xz/args.c    |  8 ++++++++
6150 src/xz/message.c | 30 ++++++++++++++++++++++++++++++
6151 src/xz/message.h |  5 +++++
6152 3 files changed, 43 insertions(+)
6153
6154commit 95f1a414b156ee35d3e71862a14915fdd138f913
6155Author: Jia Tan <jiat0218@gmail.com>
6156Date:   2023-04-21 20:28:11 +0800
6157
6158    xz: Update the man page for --block-list and --filtersX
6159
6160    The --block-list option description needed updating since the new
6161    --filtersX option changes how it can be used. The new entry for
6162    --filters1=FILTERS ... --filter9=FILTERS was created right after
6163    the --filters option.
6164
6165 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++---------------
6166 1 file changed, 80 insertions(+), 26 deletions(-)
6167
6168commit 47a63cad2aa778280e0c1926b7159427ea028cb1
6169Author: Jia Tan <jiat0218@gmail.com>
6170Date:   2023-04-21 19:50:14 +0800
6171
6172    xz: Update --long-help for the new --filtersX option.
6173
6174 src/xz/message.c | 12 ++++++++++--
6175 1 file changed, 10 insertions(+), 2 deletions(-)
6176
6177commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13
6178Author: Jia Tan <jiat0218@gmail.com>
6179Date:   2023-06-17 20:46:21 +0800
6180
6181    xz: Ignore filter chains that are set but never used in --block-list.
6182
6183    If a filter chain is set but not used in --block-list, it introduced
6184    unexpected behavior such as requiring an unneeded amount of memory to
6185    compress, reducing the number of threads in multi-threaded encoding, and
6186    printing an incorrect amount of memory needed to decompress.
6187
6188    This also renames filters_init_mask => filters_used_mask. A filter is
6189    assumed to be used if it is specified in --filtersX until
6190    coder_set_compression_settings() determines which filters are referenced
6191    in --block-list.
6192
6193 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++----------------
6194 1 file changed, 48 insertions(+), 18 deletions(-)
6195
6196commit 183819bfd9efac8c184d9bf123325719b7eee30f
6197Author: Jia Tan <jiat0218@gmail.com>
6198Date:   2023-05-13 20:11:13 +0800
6199
6200    xz: Set the Block size for mt encoding correctly.
6201
6202    When opt_block_size is not used, the Block size for mt encoder is
6203    derived from the minimum of the largest Block specified by
6204    --block-list and the recommended Block size on all filter chains
6205    calculated by lzma_mt_block_size(). This avoids using unnecessary
6206    memory and ensures that all Blocks are large enough for the most memory
6207    needy filter chain.
6208
6209 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
6210 1 file changed, 67 insertions(+), 1 deletion(-)
6211
6212commit afb2dbec3d857b026486b75e42a4728e12d234cb
6213Author: Jia Tan <jiat0218@gmail.com>
6214Date:   2023-05-11 00:09:41 +0800
6215
6216    xz: Validate --flush-timeout for all specified filter chains.
6217
6218 src/xz/coder.c | 24 ++++++++++++++++--------
6219 1 file changed, 16 insertions(+), 8 deletions(-)
6220
6221commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
6222Author: Jia Tan <jiat0218@gmail.com>
6223Date:   2023-05-13 19:54:33 +0800
6224
6225    xz: Allows --block-list filters to scale down memory usage.
6226
6227    Previously, only the default filter chain could have its memory usage
6228    adjusted. The filter chains specified with --filtersX were not checked
6229    for memory usage. Now, all used filter chains will be adjusted if
6230    necessary.
6231
6232 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------
6233 1 file changed, 214 insertions(+), 55 deletions(-)
6234
6235commit 479fd58d60622331fcbe48fddf756927b9f80d9a
6236Author: Jia Tan <jiat0218@gmail.com>
6237Date:   2023-05-10 21:50:33 +0800
6238
6239    xz: Do not include block splitting if encoders are disabled.
6240
6241    The block splitting logic and split_block() function are not needed if
6242    encoders are disabled. This will help slightly reduce the binary size
6243    when built without encoders and allow split_block() to use functions
6244    that require encoders being enabled.
6245
6246 src/xz/coder.c | 29 ++++++++++++++++++++---------
6247 1 file changed, 20 insertions(+), 9 deletions(-)
6248
6249commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3
6250Author: Jia Tan <jiat0218@gmail.com>
6251Date:   2023-05-10 22:38:59 +0800
6252
6253    xz: Free filters[] in debug mode.
6254
6255    This will only free filter chains created with --filters1-9 since the
6256    default filter chain may be set from a static function variable. The
6257    complexity to free the default filter chain is not worth the burden on
6258    code maintenance.
6259
6260 src/xz/coder.c | 10 ++++++++++
6261 1 file changed, 10 insertions(+)
6262
6263commit f281cd0d692ac0c70fc7669b80dddb863ea947e1
6264Author: Jia Tan <jiat0218@gmail.com>
6265Date:   2023-05-13 19:28:23 +0800
6266
6267    xz: Add a message if --block-list is used outside of xz compresssion.
6268
6269    --block-list is only supported with compression in xz format. This avoids
6270    silently ignoring when --block-list is unused.
6271
6272 src/xz/args.c | 11 +++++++++++
6273 1 file changed, 11 insertions(+)
6274
6275commit d6af7f347077b22403133239592e478931307759
6276Author: Jia Tan <jiat0218@gmail.com>
6277Date:   2023-04-18 20:29:09 +0800
6278
6279    xz: Create command line options for filters[1-9].
6280
6281    The new command line options are meant to be combined with --block-list.
6282    They work as an optional extension to --block-list to specify a custom
6283    filter chain for each block listed. The new options allow the creation
6284    of up to 9 reusable filter chains. For instance:
6285
6286    xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \
6287    --filters2=x86--lzma2 --filters3=arm64--lzma2
6288
6289    Will create the following blocks:
6290    1. A block of size 10 MiB with filter chain delta, lzma2.
6291    2. A block of size 5 MiB with filter chain arm64, lzma2.
6292    3. A block of size 5 MiB with filter chain arm64, lzma2.
6293    4. A block of size 5 MiB with filter chain x86, lzma2.
6294    5. A block containing the rest of the file contents with filter chain
6295       delta, lzma2.
6296
6297 src/xz/args.c  |  82 ++++++++++++++++++++++---
6298 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++---------------
6299 src/xz/coder.h |  20 +++++-
6300 3 files changed, 230 insertions(+), 60 deletions(-)
6301
6302commit 072d29250113268536719ad0e040ab8a66fb6435
6303Author: Jia Tan <jiat0218@gmail.com>
6304Date:   2023-05-13 19:36:09 +0800
6305
6306    xz: Use lzma_filters_free() in forget_filter_chain().
6307
6308    This is a little cleaner than the previous implementation of
6309    forget_filter_chain(). It is also more consistent since
6310    lzma_str_to_filters() will always terminate the filter chain so there
6311    is no need to terminate it later in coder_set_compression_settings().
6312
6313 src/xz/coder.c | 18 ++++++++++--------
6314 1 file changed, 10 insertions(+), 8 deletions(-)
6315
6316commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059
6317Author: Jia Tan <jiat0218@gmail.com>
6318Date:   2023-04-17 22:22:45 +0800
6319
6320    xz: Separate string to filter conversion into a helper function.
6321
6322    Converting from string to filter will also need to be done for block
6323    specific filter chains.
6324
6325 src/xz/coder.c | 33 ++++++++++++++++++++-------------
6326 1 file changed, 20 insertions(+), 13 deletions(-)
6327
6328commit a6583726e5f950278f96abcf79c04f1056810be6
6329Author: Jia Tan <jiat0218@gmail.com>
6330Date:   2023-01-06 00:03:35 +0800
6331
6332    Tests: Use new --filters option in test_compress.sh
6333
6334 tests/test_compress.sh | 20 ++++++++++----------
6335 1 file changed, 10 insertions(+), 10 deletions(-)
6336
6337commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0
6338Author: Jia Tan <jiat0218@gmail.com>
6339Date:   2023-01-06 00:03:06 +0800
6340
6341    xz: Update --long-help and man page for new --filters option.
6342
6343 src/xz/message.c |  6 ++++++
6344 src/xz/xz.1      | 41 ++++++++++++++++++++++++++++++++++++-----
6345 2 files changed, 42 insertions(+), 5 deletions(-)
6346
6347commit 9ded880a0221f4d1256845fc4ab957ffd377c760
6348Author: Jia Tan <jiat0218@gmail.com>
6349Date:   2023-01-06 00:02:29 +0800
6350
6351    xz: Add --filters option to CLI.
6352
6353    The --filters option uses the new lzma_str_to_filters() function
6354    to convert a string into a full filter chain. Using this option
6355    will reset all previous filters set by --preset, --[filter], or
6356    --filters.
6357
6358 src/xz/args.c  |  9 +++++++--
6359 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
6360 src/xz/coder.h |  3 +++
6361 3 files changed, 58 insertions(+), 4 deletions(-)
6362
6363commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88
6364Author: Jia Tan <jiat0218@gmail.com>
6365Date:   2023-07-14 21:30:25 +0800
6366
6367    Tests: Improve feature testing for skipping.
6368
6369    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
6370    filters were enabled for compression but arm was disabled. Since the
6371    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
6372    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
6373
6374    Now the config.h feature test requires " 1" at the end to prevent the
6375    prefix problem. have_feature() was also updated for this even though
6376    there were known current bugs affecting it. This is just in case future
6377    features have a similar prefix problem.
6378
6379 tests/test_compress.sh | 4 ++--
6380 tests/test_files.sh    | 2 +-
6381 2 files changed, 3 insertions(+), 3 deletions(-)
6382
6383commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357
6384Author: Jia Tan <jiat0218@gmail.com>
6385Date:   2023-07-10 20:56:28 +0800
6386
6387    Translations: Update the Chinese (traditional) translation.
6388
6389 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
6390 1 file changed, 377 insertions(+), 282 deletions(-)
6391
6392commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd
6393Author: Jia Tan <jiat0218@gmail.com>
6394Date:   2023-07-08 21:24:19 +0800
6395
6396    liblzma: Remove non-portable empty initializer.
6397
6398    Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty
6399    initializer {} to prevent a warning. The empty initializer is a GNU
6400    extension and results in a build failure on MSVC. The -wpedantic flag
6401    warns about empty initializers.
6402
6403 src/liblzma/common/stream_encoder_mt.c | 2 +-
6404 1 file changed, 1 insertion(+), 1 deletion(-)
6405
6406commit 3aca4f629cd577f0c54f594d5d88722edf0b0413
6407Author: Jia Tan <jiat0218@gmail.com>
6408Date:   2023-07-08 20:03:59 +0800
6409
6410    Translations: Update the Vietnamese translation.
6411
6412 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
6413 1 file changed, 349 insertions(+), 271 deletions(-)
6414
6415commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4
6416Author: Jia Tan <jiat0218@gmail.com>
6417Date:   2023-06-28 20:46:31 +0800
6418
6419    Tests: Fix memory leaks in test_index.
6420
6421    Several tests were missing calls to lzma_index_end() to clean up the
6422    lzma_index structs. The memory leaks were discovered by using
6423    -fsanitize=address with GCC.
6424
6425 tests/test_index.c | 11 +++++++++++
6426 1 file changed, 11 insertions(+)
6427
6428commit fe3bd438fb119f9bad3f08dc29d331e4956196e1
6429Author: Jia Tan <jiat0218@gmail.com>
6430Date:   2023-06-28 20:43:29 +0800
6431
6432    Tests: Fix memory leaks in test_block_header.
6433
6434    test_block_header was not properly freeing the filter options between
6435    calls to lzma_block_header_decode(). The memory leaks were discovered by
6436    using -fsanitize=address with GCC.
6437
6438 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
6439 1 file changed, 22 insertions(+), 16 deletions(-)
6440
6441commit 78704f36e74205857c898a351c757719a6c8b666
6442Author: Jia Tan <jiat0218@gmail.com>
6443Date:   2023-06-28 20:31:11 +0800
6444
6445    liblzma: Prevent uninitialzed warning in mt stream encoder.
6446
6447    This change only impacts the compiler warning since it was impossible
6448    for the wait_abs struct in stream_encode_mt() to be used before it was
6449    initialized since mythread_condtime_set() will always be called before
6450    mythread_cond_timedwait().
6451
6452    Since the mythread.h code is different between the POSIX and
6453    Windows versions, this warning was only present on Windows builds.
6454
6455    Thanks to Arthur S for reporting the warning and providing an initial
6456    patch.
6457
6458 src/liblzma/common/stream_encoder_mt.c | 2 +-
6459 1 file changed, 1 insertion(+), 1 deletion(-)
6460
6461commit e3356a204c5ae02db3ec4552b6c1be354e9b6142
6462Author: Jia Tan <jiat0218@gmail.com>
6463Date:   2023-06-28 20:22:38 +0800
6464
6465    liblzma: Prevent warning for MSYS2 Windows build.
6466
6467    In lzma_memcmplen(), the <intrin.h> header file is only included if
6468    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
6469    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
6470    not _MSC_VER so _BitScanForward64() was used without including
6471    <intrin.h>.
6472
6473    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
6474    expected.
6475
6476 src/liblzma/common/memcmplen.h | 6 ++++--
6477 1 file changed, 4 insertions(+), 2 deletions(-)
6478
6479commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e
6480Author: Jia Tan <jiat0218@gmail.com>
6481Date:   2023-06-28 21:01:22 +0800
6482
6483    CI: Add test with -fsanitize=address,undefined.
6484
6485    ci_build.sh was updated to accept disabling of __attribute__ ifunc
6486    and CLMUL. This will allow -fsanitize=address to pass because ifunc
6487    is incompatible with -fsanitize=address. The CLMUL implementation has
6488    optimizations that potentially read past the buffer and mask out the
6489    unwanted bytes.
6490
6491    This test will only run on Autotools Linux.
6492
6493 .github/workflows/ci.yml | 23 +++++++++++++++++++----
6494 build-aux/ci_build.sh    |  8 +++++++-
6495 2 files changed, 26 insertions(+), 5 deletions(-)
6496
6497commit 596ee722cd7ddf0afae584fc06365adc0e735977
6498Author: Jia Tan <jiat0218@gmail.com>
6499Date:   2023-06-28 20:16:04 +0800
6500
6501    CI: Upgrade checkout action from v2 to v3.
6502
6503 .github/workflows/ci.yml | 2 +-
6504 1 file changed, 1 insertion(+), 1 deletion(-)
6505
6506commit 86118ea320f867e09e98a8682cc08cbbdfd640e2
6507Author: Jia Tan <jiat0218@gmail.com>
6508Date:   2023-06-27 23:38:32 +0800
6509
6510    Update THANKS.
6511
6512 THANKS | 1 +
6513 1 file changed, 1 insertion(+)
6514
6515commit 3d1fdddf92321b516d55651888b9c669e254634e
6516Author: Jia Tan <jiat0218@gmail.com>
6517Date:   2023-06-27 17:27:09 +0300
6518
6519    Docs: Document the configure option --disable-ifunc in INSTALL.
6520
6521 INSTALL | 8 ++++++++
6522 1 file changed, 8 insertions(+)
6523
6524commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3
6525Author: Lasse Collin <lasse.collin@tukaani.org>
6526Date:   2023-06-27 17:24:49 +0300
6527
6528    Minor tweaks to style and comments.
6529
6530 CMakeLists.txt | 8 ++++----
6531 configure.ac   | 9 +++++----
6532 2 files changed, 9 insertions(+), 8 deletions(-)
6533
6534commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1
6535Author: Lasse Collin <lasse.collin@tukaani.org>
6536Date:   2023-06-27 17:19:49 +0300
6537
6538    CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC.
6539
6540    It's so that there's a clear difference in wording compared
6541    to liblzma's integrity check types.
6542
6543 CMakeLists.txt | 6 +++---
6544 1 file changed, 3 insertions(+), 3 deletions(-)
6545
6546commit ee44863ae88e377a5df10db007ba9bfadde3d314
6547Author: Lasse Collin <lasse.collin@tukaani.org>
6548Date:   2023-06-27 17:05:23 +0300
6549
6550    liblzma: Add ifunc implementation to crc64_fast.c.
6551
6552    The ifunc method avoids indirection via the function pointer
6553    crc64_func. This works on GNU/Linux and probably on FreeBSD too.
6554    The previous __attribute((__constructor__)) method is kept for
6555    compatibility with ELF platforms which do support ifunc.
6556
6557    The ifunc method has some limitations, for example, building
6558    liblzma with -fsanitize=address will result in segfaults.
6559    The configure option --disable-ifunc must be used for such builds.
6560
6561    Thanks to Hans Jansen for the original patch.
6562    Closes: https://github.com/tukaani-project/xz/pull/53
6563
6564 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++---------
6565 1 file changed, 26 insertions(+), 9 deletions(-)
6566
6567commit b72d21202402a603db6d512fb9271cfa83249639
6568Author: Hans Jansen <hansjansen162@outlook.com>
6569Date:   2023-06-22 19:49:30 +0200
6570
6571    Add ifunc check to CMakeLists.txt
6572
6573    CMake build system will now verify if __attribute__((__ifunc__())) can be
6574    used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be
6575    defined to 1.
6576
6577 CMakeLists.txt | 19 +++++++++++++++++++
6578 1 file changed, 19 insertions(+)
6579
6580commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b
6581Author: Hans Jansen <hansjansen162@outlook.com>
6582Date:   2023-06-22 19:46:55 +0200
6583
6584    Add ifunc check to configure.ac
6585
6586    configure.ac will now verify if __attribute__((__ifunc__())) can be used in
6587    the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1.
6588
6589 configure.ac | 28 ++++++++++++++++++++++++++++
6590 1 file changed, 28 insertions(+)
6591
6592commit dbb3a536ed9873ffa0870321f6873e564c6a9da8
6593Author: Jia Tan <jiat0218@gmail.com>
6594Date:   2023-06-07 00:18:30 +0800
6595
6596    CI: Add apt update command before installing dependencies.
6597
6598    Without the extra command, all of the CI tests were automatically
6599    failing because the Ubuntu servers could not be reached properly.
6600
6601 .github/workflows/ci.yml | 8 ++++++--
6602 1 file changed, 6 insertions(+), 2 deletions(-)
6603
6604commit 6bcd516812331de42b347922913230895bebad34
6605Author: Jia Tan <jiat0218@gmail.com>
6606Date:   2023-06-07 00:10:38 +0800
6607
6608    Update THANKS.
6609
6610 THANKS | 1 +
6611 1 file changed, 1 insertion(+)
6612
6613commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
6614Author: Benjamin Buch <bebuch@users.noreply.github.com>
6615Date:   2023-06-06 15:32:45 +0200
6616
6617    CMake: Protects against double find_package
6618
6619    Boost iostream uses `find_package` in quiet mode and then again uses
6620    `find_package` with required. This second call triggers a
6621    `add_library cannot create imported target "ZLIB::ZLIB" because another
6622    target with the same name already exists.`
6623
6624    This can simply be fixed by skipping the alias part on secondary
6625    `find_package` runs.
6626
6627 CMakeLists.txt | 16 +++++++++-------
6628 1 file changed, 9 insertions(+), 7 deletions(-)
6629
6630commit 045d7aae286ecd2ce163be9e0d9041343a03f89a
6631Author: Jia Tan <jiat0218@gmail.com>
6632Date:   2023-05-31 20:26:42 +0800
6633
6634    Translations: Update the Esperanto translation.
6635
6636 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
6637 1 file changed, 92 insertions(+), 93 deletions(-)
6638
6639commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78
6640Author: Jia Tan <jiat0218@gmail.com>
6641Date:   2023-05-31 20:25:00 +0800
6642
6643    Translations: Update the Croatian translation.
6644
6645 po/hr.po | 2 +-
6646 1 file changed, 1 insertion(+), 1 deletion(-)
6647
6648commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce
6649Author: Jia Tan <jiat0218@gmail.com>
6650Date:   2023-05-31 20:15:53 +0800
6651
6652    Translations: Update the Chinese (simplified) translation.
6653
6654 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
6655 1 file changed, 157 insertions(+), 160 deletions(-)
6656
6657commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383
6658Author: Jia Tan <jiat0218@gmail.com>
6659Date:   2023-05-17 23:12:13 +0800
6660
6661    Translations: Update German translation of man pages.
6662
6663 po4a/de.po | 52 ++++++++++++----------------------------------------
6664 1 file changed, 12 insertions(+), 40 deletions(-)
6665
6666commit 592961ccdbba39c7d60fe37e36764232feb57c60
6667Author: Jia Tan <jiat0218@gmail.com>
6668Date:   2023-05-17 23:09:18 +0800
6669
6670    Translations: Update the German translation.
6671
6672 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
6673 1 file changed, 94 insertions(+), 95 deletions(-)
6674
6675commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524
6676Author: Jia Tan <jiat0218@gmail.com>
6677Date:   2023-05-17 20:30:01 +0800
6678
6679    Translations: Update the Croatian translation.
6680
6681 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
6682 1 file changed, 93 insertions(+), 94 deletions(-)
6683
6684commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d
6685Author: Jia Tan <jiat0218@gmail.com>
6686Date:   2023-05-17 20:26:54 +0800
6687
6688    Translations: Update Korean translation of man pages.
6689
6690 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
6691 1 file changed, 568 insertions(+), 2447 deletions(-)
6692
6693commit d5ef1f6faf7c270f60093629257150085ecf19ca
6694Author: Jia Tan <jiat0218@gmail.com>
6695Date:   2023-05-17 20:13:01 +0800
6696
6697    Translations: Update the Korean translation.
6698
6699 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
6700 1 file changed, 158 insertions(+), 161 deletions(-)
6701
6702commit e22d0b0f2e301e7906d0106689d967ed84362028
6703Author: Jia Tan <jiat0218@gmail.com>
6704Date:   2023-05-16 23:49:09 +0800
6705
6706    Translations: Update the Spanish translation.
6707
6708 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
6709 1 file changed, 158 insertions(+), 161 deletions(-)
6710
6711commit f50da74d52d01f6cfd826a921249e289cf671678
6712Author: Jia Tan <jiat0218@gmail.com>
6713Date:   2023-05-16 23:47:23 +0800
6714
6715    Translations: Update the Romanian translation.
6716
6717 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
6718 1 file changed, 98 insertions(+), 97 deletions(-)
6719
6720commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696
6721Author: Jia Tan <jiat0218@gmail.com>
6722Date:   2023-05-16 23:45:43 +0800
6723
6724    Translations: Update Romanian translation of man pages.
6725
6726 po4a/ro.po | 19 ++++++++++---------
6727 1 file changed, 10 insertions(+), 9 deletions(-)
6728
6729commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea
6730Author: Jia Tan <jiat0218@gmail.com>
6731Date:   2023-05-16 23:43:51 +0800
6732
6733    Translations: Update Ukrainian translation of man pages.
6734
6735 po4a/uk.po | 12 ++++++------
6736 1 file changed, 6 insertions(+), 6 deletions(-)
6737
6738commit c3e8fcbc2db4861f92ad15606c995bd255803c52
6739Author: Jia Tan <jiat0218@gmail.com>
6740Date:   2023-05-16 23:37:54 +0800
6741
6742    Translations: Update the Ukrainian translation.
6743
6744 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
6745 1 file changed, 159 insertions(+), 162 deletions(-)
6746
6747commit 27b81b84fcedbc55aa6e6b21004c44070b15b038
6748Author: Jia Tan <jiat0218@gmail.com>
6749Date:   2023-05-16 23:07:35 +0800
6750
6751    Translations: Update the Polish translation.
6752
6753 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
6754 1 file changed, 155 insertions(+), 161 deletions(-)
6755
6756commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed
6757Author: Jia Tan <jiat0218@gmail.com>
6758Date:   2023-05-16 22:52:14 +0800
6759
6760    Translations: Update the Swedish translation.
6761
6762 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
6763 1 file changed, 158 insertions(+), 161 deletions(-)
6764
6765commit 6699a29673f227c4664826db485ed9f7596320d2
6766Author: Jia Tan <jiat0218@gmail.com>
6767Date:   2023-05-16 21:21:38 +0800
6768
6769    Translations: Update the Esperanto translation.
6770
6771 po/eo.po | 34 +++++++++++++++++-----------------
6772 1 file changed, 17 insertions(+), 17 deletions(-)
6773
6774commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf
6775Author: Jia Tan <jiat0218@gmail.com>
6776Date:   2023-05-13 21:21:54 +0800
6777
6778    liblzma: Slightly rewords lzma_str_list_filters() documentation.
6779
6780    Reword "options required" to "supported options". The previous may have
6781    suggested that the options listed were all required anytime a filter is
6782    used for encoding or decoding. The reword makes this more clear that
6783    adjusting the options is optional.
6784
6785 src/liblzma/api/lzma/filter.h | 2 +-
6786 1 file changed, 1 insertion(+), 1 deletion(-)
6787
6788commit 3374a5359e52f1671d8f831d65827d5020fe2595
6789Author: Jia Tan <jiat0218@gmail.com>
6790Date:   2023-05-11 23:49:23 +0800
6791
6792    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
6793
6794    None of the liblzma functions may throw an exception, so this
6795    attribute should be applied to all liblzma API functions.
6796
6797 src/liblzma/api/lzma/container.h | 5 +++--
6798 1 file changed, 3 insertions(+), 2 deletions(-)
6799
6800commit 8f236574986e7c414c0ea059f441982d1387e6a4
6801Author: Jia Tan <jiat0218@gmail.com>
6802Date:   2023-05-09 20:20:06 +0800
6803
6804    liblzma: Exports lzma_mt_block_size() as an API function.
6805
6806    The lzma_mt_block_size() was previously just an internal function for
6807    the multithreaded .xz encoder. It is used to provide a recommended Block
6808    size for a given filter chain.
6809
6810    This function is helpful to determine the maximum Block size for the
6811    multithreaded .xz encoder when one wants to change the filters between
6812    blocks. Then, this determined Block size can be provided to
6813    lzma_stream_encoder_mt() in the lzma_mt options parameter when
6814    intializing the coder. This requires one to know all the filter chains
6815    they are using before starting to encode (or at least the filter chain
6816    that will need the largest Block size), but that isn't a bad limitation.
6817
6818 src/liblzma/api/lzma/container.h       | 28 ++++++++++++++++++++++++++++
6819 src/liblzma/common/filter_encoder.c    | 16 ++++++++++------
6820 src/liblzma/common/filter_encoder.h    |  6 +-----
6821 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++-----------
6822 src/liblzma/liblzma_generic.map        |  5 +++++
6823 src/liblzma/liblzma_linux.map          |  5 +++++
6824 src/liblzma/lzma/lzma2_encoder.c       |  3 +++
6825 7 files changed, 61 insertions(+), 22 deletions(-)
6826
6827commit d0f33d672a4da7985ebb5ba8d829f885de49c171
6828Author: Jia Tan <jiat0218@gmail.com>
6829Date:   2023-05-08 22:58:09 +0800
6830
6831    liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
6832
6833    This creates an internal liblzma macro to test if the dictionary size
6834    is valid for encoding.
6835
6836 src/liblzma/lz/lz_encoder.c | 4 +---
6837 src/liblzma/lz/lz_encoder.h | 8 ++++++++
6838 2 files changed, 9 insertions(+), 3 deletions(-)
6839
6840commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f
6841Author: Jia Tan <jiat0218@gmail.com>
6842Date:   2023-05-02 20:39:56 +0800
6843
6844    Add NEWS for 5.4.3.
6845
6846 NEWS | 10 ++++++++++
6847 1 file changed, 10 insertions(+)
6848
6849commit 77050b78364ffb6b0f129e742b7c31602d725c08
6850Author: Jia Tan <jiat0218@gmail.com>
6851Date:   2023-05-02 20:39:37 +0800
6852
6853    Add NEWS for 5.2.12.
6854
6855 NEWS | 14 ++++++++++++++
6856 1 file changed, 14 insertions(+)
6857
6858commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0
6859Author: Jia Tan <jiat0218@gmail.com>
6860Date:   2023-05-04 20:38:52 +0800
6861
6862    Translations: Update the Croatian translation.
6863
6864 po/hr.po | 6 +++---
6865 1 file changed, 3 insertions(+), 3 deletions(-)
6866
6867commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9
6868Author: Jia Tan <jiat0218@gmail.com>
6869Date:   2023-05-04 20:30:25 +0800
6870
6871    tuklib_integer.h: Reverts previous commit.
6872
6873    Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an
6874    error if the integer size was 32 bit.
6875
6876 src/common/tuklib_integer.h | 4 ++--
6877 1 file changed, 2 insertions(+), 2 deletions(-)
6878
6879commit 6be460dde07113fe3f08f814b61ddc3264125a96
6880Author: Jia Tan <jiat0218@gmail.com>
6881Date:   2023-05-04 19:25:20 +0800
6882
6883    tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=.
6884
6885 src/common/tuklib_integer.h | 4 ++--
6886 1 file changed, 2 insertions(+), 2 deletions(-)
6887
6888commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878
6889Author: Lasse Collin <lasse.collin@tukaani.org>
6890Date:   2023-05-03 22:46:42 +0300
6891
6892    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
6893
6894    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
6895    Also, this has >= instead of == since ints larger than 32 bits would
6896    work too even if not relevant in practice.
6897
6898 src/common/tuklib_integer.h | 4 ++--
6899 1 file changed, 2 insertions(+), 2 deletions(-)
6900
6901commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68
6902Author: Jia Tan <jiat0218@gmail.com>
6903Date:   2023-04-25 20:06:15 +0800
6904
6905    CI: Adds a build and test for small configuration.
6906
6907 .github/workflows/ci.yml | 5 +++++
6908 1 file changed, 5 insertions(+)
6909
6910commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43
6911Author: Jia Tan <jiat0218@gmail.com>
6912Date:   2023-04-25 20:05:26 +0800
6913
6914    CI: ci_build.sh allows configuring small build.
6915
6916 build-aux/ci_build.sh | 7 ++++++-
6917 1 file changed, 6 insertions(+), 1 deletion(-)
6918
6919commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d
6920Author: Jia Tan <jiat0218@gmail.com>
6921Date:   2023-04-20 20:15:00 +0800
6922
6923    Update THANKS.
6924
6925 THANKS | 1 +
6926 1 file changed, 1 insertion(+)
6927
6928commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
6929Author: Jia Tan <jiat0218@gmail.com>
6930Date:   2023-04-19 22:22:16 +0800
6931
6932    Windows: Include <intrin.h> when needed.
6933
6934    Legacy Windows did not need to #include <intrin.h> to use the MSVC
6935    intrinsics. Newer versions likely just issue a warning, but the MSVC
6936    documentation says to include the header file for the intrinsics we use.
6937
6938    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
6939    needed in tuklib_integer.h to only include <intrin.h> when it will is
6940    actually needed.
6941
6942 src/common/tuklib_integer.h    |  6 ++++++
6943 src/liblzma/common/memcmplen.h | 10 ++++++++++
6944 2 files changed, 16 insertions(+)
6945
6946commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7
6947Author: Jia Tan <jiat0218@gmail.com>
6948Date:   2023-04-19 21:59:03 +0800
6949
6950    tuklib_integer: Use __builtin_clz() with Clang.
6951
6952    Clang has support for __builtin_clz(), but previously Clang would
6953    fallback to either the MSVC intrinsic or the regular C code. This was
6954    discovered due to a bug where a new version of Clang required the
6955    <intrin.h> header file in order to use the MSVC intrinsics.
6956
6957    Thanks to Anton Kochkov for notifying us about the bug.
6958
6959 src/common/tuklib_integer.h | 6 +++---
6960 1 file changed, 3 insertions(+), 3 deletions(-)
6961
6962commit 3938718ce3773c90755785c0df8777f133b7ae29
6963Author: Lasse Collin <lasse.collin@tukaani.org>
6964Date:   2023-04-14 18:42:33 +0300
6965
6966    liblzma: Update project maintainers in lzma.h.
6967
6968    AUTHORS was updated earlier, lzma.h was simply forgotten.
6969
6970 src/liblzma/api/lzma.h | 2 +-
6971 1 file changed, 1 insertion(+), 1 deletion(-)
6972
6973commit 2a89670ab295e377f8b44f5bda6d198deb8ea285
6974Author: Jia Tan <jiat0218@gmail.com>
6975Date:   2023-04-13 20:45:19 +0800
6976
6977    liblzma: Cleans up old commented out code.
6978
6979 src/liblzma/common/alone_encoder.c | 11 -----------
6980 1 file changed, 11 deletions(-)
6981
6982commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81
6983Author: Jia Tan <jiat0218@gmail.com>
6984Date:   2023-04-07 20:46:41 +0800
6985
6986    Docs: Add missing word to SECURITY.md.
6987
6988 .github/SECURITY.md | 2 +-
6989 1 file changed, 1 insertion(+), 1 deletion(-)
6990
6991commit fb9c50f38a17bf37581de4034b36c8df8ec90a87
6992Author: Jia Tan <jiat0218@gmail.com>
6993Date:   2023-04-07 20:43:22 +0800
6994
6995    Update THANKS.
6996
6997 THANKS | 1 +
6998 1 file changed, 1 insertion(+)
6999
7000commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
7001Author: Jia Tan <jiat0218@gmail.com>
7002Date:   2023-04-07 20:42:12 +0800
7003
7004    Docs: Minor edits to SECURITY.md.
7005
7006 .github/SECURITY.md | 25 ++++++++++++++++++++-----
7007 1 file changed, 20 insertions(+), 5 deletions(-)
7008
7009commit 6549df8dd53f358345957e232648fdb699930074
7010Author: Gabriela Gutierrez <gabigutierrez@google.com>
7011Date:   2023-04-07 12:08:30 +0000
7012
7013    Docs: Create SECURITY.md
7014
7015    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
7016
7017 .github/SECURITY.md | 14 ++++++++++++++
7018 1 file changed, 14 insertions(+)
7019
7020commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
7021Author: Jia Tan <jiat0218@gmail.com>
7022Date:   2023-03-28 22:48:24 +0800
7023
7024    CI: Tests for disabling threading on CMake builds.
7025
7026 .github/workflows/ci.yml | 3 ---
7027 build-aux/ci_build.sh    | 4 ++--
7028 2 files changed, 2 insertions(+), 5 deletions(-)
7029
7030commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d
7031Author: Jia Tan <jiat0218@gmail.com>
7032Date:   2023-03-28 22:45:42 +0800
7033
7034    CI: Removes CMakeCache.txt between builds.
7035
7036    If the cache file is not removed, CMake will not reset configurations
7037    back to their default values. In order to make the tests independent, it
7038    is simplest to purge the cache. Unfortunatly, this will slow down the
7039    tests a little and repeat some checks.
7040
7041 build-aux/ci_build.sh | 2 ++
7042 1 file changed, 2 insertions(+)
7043
7044commit 2cb6028fc31de082b7f927632363bb1426b61aaa
7045Author: Jia Tan <jiat0218@gmail.com>
7046Date:   2023-03-28 22:32:40 +0800
7047
7048    CMake: Update liblzma-config.cmake generation.
7049
7050    Now that the threading is configurable, the liblzma CMake package only
7051    needs the threading library when using POSIX threads.
7052
7053 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
7054 1 file changed, 22 insertions(+), 11 deletions(-)
7055
7056commit 4d7fac0b07cc722825ba8d7838c558827e635611
7057Author: Jia Tan <jiat0218@gmail.com>
7058Date:   2023-03-28 22:25:33 +0800
7059
7060    CMake: Allows setting thread method.
7061
7062    The thread method is now configurable for the CMake build. It matches
7063    the Autotools build by allowing ON (pick the best threading method),
7064    OFF (no threading), posix, win95, and vista. If both Windows and
7065    posix threading are both available, then ON will choose Windows
7066    threading. Windows threading will also not use:
7067
7068    target_link_libraries(liblzma Threads::Threads)
7069
7070    since on systems like MinGW-w64 it would link the posix threads
7071    without purpose.
7072
7073 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
7074 1 file changed, 104 insertions(+), 40 deletions(-)
7075
7076commit 20cd905d898c1494dee42b78530769bb9c9f8076
7077Author: Jia Tan <jiat0218@gmail.com>
7078Date:   2023-03-24 23:05:48 +0800
7079
7080    CI: Runs CMake feature tests.
7081
7082    Now, CMake will run similar feature disable tests that the Autotools
7083    version did before. In order to do this without repeating lines in
7084    ci.yml, it now makes sense to use the GitHub Workflow matrix to create
7085    a loop.
7086
7087 .github/workflows/ci.yml | 169 +++++++++++++++--------------------------------
7088 1 file changed, 55 insertions(+), 114 deletions(-)
7089
7090commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229
7091Author: Jia Tan <jiat0218@gmail.com>
7092Date:   2023-03-24 20:35:11 +0800
7093
7094    CI: ci_build.sh allows CMake features to be configured.
7095
7096    Also included various clean ups for style and helper functions for
7097    repeated work.
7098
7099 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++-------------------
7100 1 file changed, 143 insertions(+), 90 deletions(-)
7101
7102commit cf3d1f130e50cf63da4bb1031771605f6f443b6a
7103Author: Jia Tan <jiat0218@gmail.com>
7104Date:   2023-03-24 20:06:33 +0800
7105
7106    CI: Change ci_build.sh to use bash instead of sh.
7107
7108    This script is only meant to be run as part of the CI build/test process
7109    on machines that are known to have bash (Ubuntu and MacOS). If this
7110    assumption changes in the future, then the bash specific commands will
7111    need to be replaced with a more portable option. For now, it is
7112    convenient to use bash commands.
7113
7114 build-aux/ci_build.sh | 2 +-
7115 1 file changed, 1 insertion(+), 1 deletion(-)
7116
7117commit ddfe164368e779c40d061aa4ccc376129e92f8e1
7118Author: Jia Tan <jiat0218@gmail.com>
7119Date:   2023-03-24 20:05:59 +0800
7120
7121    CMake: Only build xzdec if decoders are enabled.
7122
7123 CMakeLists.txt | 2 +-
7124 1 file changed, 1 insertion(+), 1 deletion(-)
7125
7126commit 116e81f002c503d3c3cd12726db8f9116e58ef25
7127Author: Jia Tan <jiat0218@gmail.com>
7128Date:   2023-03-22 15:42:04 +0800
7129
7130    Build: Removes redundant check for LZMA1 filter support.
7131
7132 src/liblzma/lzma/Makefile.inc | 5 +----
7133 1 file changed, 1 insertion(+), 4 deletions(-)
7134
7135commit 0ba234f692772595329d225462d391fe2c199d0a
7136Author: Lasse Collin <lasse.collin@tukaani.org>
7137Date:   2023-03-23 15:14:29 +0200
7138
7139    CMake: Bump maximum policy version to 3.26.
7140
7141    It adds only one new policy related to FOLDERS which we don't use.
7142    This makes it clear that the code is compatible with the policies
7143    up to 3.26.
7144
7145 CMakeLists.txt | 2 +-
7146 1 file changed, 1 insertion(+), 1 deletion(-)
7147
7148commit b0891684b4436aed31510fddcbb218d513bd5489
7149Author: Jia Tan <jiat0218@gmail.com>
7150Date:   2023-03-21 23:36:00 +0800
7151
7152    CMake: Conditionally build xz list.* files if decoders are enabled.
7153
7154 CMakeLists.txt | 9 +++++++--
7155 1 file changed, 7 insertions(+), 2 deletions(-)
7156
7157commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227
7158Author: Jia Tan <jiat0218@gmail.com>
7159Date:   2023-02-25 11:46:50 +0800
7160
7161    CMake: Allow configuring features as cache variables.
7162
7163    This allows users to change the features they build either in
7164    CMakeCache.txt or by using a CMake GUI. The sources built for
7165    liblzma are affected by this too, so only the necessary files
7166    will be compiled.
7167
7168 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
7169 1 file changed, 391 insertions(+), 137 deletions(-)
7170
7171commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff
7172Author: Lasse Collin <lasse.collin@tukaani.org>
7173Date:   2023-03-21 14:07:51 +0200
7174
7175    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
7176
7177    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
7178    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
7179
7180 configure.ac | 3 +++
7181 1 file changed, 3 insertions(+)
7182
7183commit 53cc475f2652d9e390ca002018dfd0af0626ef80
7184Author: Lasse Collin <lasse.collin@tukaani.org>
7185Date:   2023-03-21 14:04:37 +0200
7186
7187    Build: configure.ac: Use AS_IF and AS_CASE where required.
7188
7189    This makes no functional difference in the generated configure
7190    (at least with the Autotools versions I have installed) but this
7191    change might prevent future bugs like the one that was just
7192    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
7193
7194 configure.ac | 30 +++++++++++++++---------------
7195 1 file changed, 15 insertions(+), 15 deletions(-)
7196
7197commit 3b8890a40233b6c783bb101ec14405e786871775
7198Author: Lasse Collin <lasse.collin@tukaani.org>
7199Date:   2023-03-21 13:12:03 +0200
7200
7201    Update THANKS.
7202
7203 THANKS | 1 +
7204 1 file changed, 1 insertion(+)
7205
7206commit 5a5bd7f871818029d5ccbe189f087f591258c294
7207Author: Lasse Collin <lasse.collin@tukaani.org>
7208Date:   2023-03-21 13:11:49 +0200
7209
7210    Build: Fix --disable-threads breaking the building of shared libs.
7211
7212    This is broken in the releases 5.2.6 to 5.4.2. A workaround
7213    for these releases is to pass EGREP='grep -E' as an argument
7214    to configure in addition to --disable-threads.
7215
7216    The problem appeared when m4/ax_pthread.m4 was updated in
7217    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
7218    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
7219    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
7220    but this was only executed if POSIX threads were enabled.
7221    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
7222    omits it as AC_PROG_EGREP has already been required earlier.
7223    Thus, if not using POSIX threads, the shell variable EGREP
7224    would be undefined in the Libtool code in configure.
7225
7226    ax_pthread.m4 is fine. The bug was in configure.ac which called
7227    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
7228    ensures that all AC_REQUIREs get always run.
7229
7230    Thanks to Frank Busse for reporting the bug.
7231    Fixes: https://github.com/tukaani-project/xz/issues/45
7232
7233 configure.ac | 16 ++++++++--------
7234 1 file changed, 8 insertions(+), 8 deletions(-)
7235
7236commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06
7237Author: Lasse Collin <lasse.collin@tukaani.org>
7238Date:   2023-03-19 22:45:59 +0200
7239
7240    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
7241
7242    Thanks to Christian Hesse for reporting the issue.
7243    Fixes: https://github.com/tukaani-project/xz/issues/44
7244
7245 src/liblzma/common/memcmplen.h | 3 ++-
7246 1 file changed, 2 insertions(+), 1 deletion(-)
7247
7248commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce
7249Author: Jia Tan <jiat0218@gmail.com>
7250Date:   2023-03-18 22:10:57 +0800
7251
7252    Add NEWS for 5.4.2.
7253
7254 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
7255 1 file changed, 48 insertions(+)
7256
7257commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6
7258Author: Jia Tan <jiat0218@gmail.com>
7259Date:   2023-03-18 22:10:12 +0800
7260
7261    Add NEWS for 5.2.11.
7262
7263 NEWS | 27 +++++++++++++++++++++++++++
7264 1 file changed, 27 insertions(+)
7265
7266commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40
7267Author: Lasse Collin <lasse.collin@tukaani.org>
7268Date:   2023-03-18 16:00:54 +0200
7269
7270    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
7271
7272 COPYING.GPLv3 | 8 ++++----
7273 1 file changed, 4 insertions(+), 4 deletions(-)
7274
7275commit b473a92891f7e991398a3b5eff305f6f2b6d7293
7276Author: Lasse Collin <lasse.collin@tukaani.org>
7277Date:   2023-03-18 15:51:57 +0200
7278
7279    Change a few HTTP URLs to HTTPS.
7280
7281    The xz man page timestamp was intentionally left unchanged.
7282
7283 INSTALL                    |  2 +-
7284 README                     |  8 ++++----
7285 configure.ac               |  2 +-
7286 dos/INSTALL.txt            |  4 ++--
7287 src/liblzma/api/lzma.h     |  8 ++++----
7288 src/liblzma/check/sha256.c |  2 +-
7289 src/xz/xz.1                |  2 +-
7290 windows/INSTALL-MinGW.txt  | 10 +++++-----
7291 8 files changed, 19 insertions(+), 19 deletions(-)
7292
7293commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8
7294Author: Jia Tan <jiat0218@gmail.com>
7295Date:   2023-03-18 00:40:28 +0800
7296
7297    CMake: Fix typo in a comment.
7298
7299 CMakeLists.txt | 2 +-
7300 1 file changed, 1 insertion(+), 1 deletion(-)
7301
7302commit 76e2315e14c399c15cc90e7930fd4d3d086b0227
7303Author: Lasse Collin <lasse.collin@tukaani.org>
7304Date:   2023-03-17 18:36:22 +0200
7305
7306    Windows: build.bash: Copy liblzma API docs to the output package.
7307
7308 windows/build.bash | 3 ++-
7309 1 file changed, 2 insertions(+), 1 deletion(-)
7310
7311commit 133cf55edc5ce92952d2709abd992e48ef1f45ee
7312Author: Lasse Collin <lasse.collin@tukaani.org>
7313Date:   2023-03-17 08:53:38 +0200
7314
7315    Windows: Add microlzma_*.c to the VS project files.
7316
7317    These should have been included in 5.3.2alpha already.
7318
7319 windows/vs2013/liblzma.vcxproj     | 2 ++
7320 windows/vs2013/liblzma_dll.vcxproj | 2 ++
7321 windows/vs2017/liblzma.vcxproj     | 2 ++
7322 windows/vs2017/liblzma_dll.vcxproj | 2 ++
7323 windows/vs2019/liblzma.vcxproj     | 2 ++
7324 windows/vs2019/liblzma_dll.vcxproj | 2 ++
7325 6 files changed, 12 insertions(+)
7326
7327commit 75c9ca450fab6982fda9286b168081c9d54126cd
7328Author: Lasse Collin <lasse.collin@tukaani.org>
7329Date:   2023-03-17 08:43:51 +0200
7330
7331    CMake: Add microlzma_*.c to the build.
7332
7333    These should have been included in 5.3.2alpha already.
7334
7335 CMakeLists.txt | 2 ++
7336 1 file changed, 2 insertions(+)
7337
7338commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b
7339Author: Lasse Collin <lasse.collin@tukaani.org>
7340Date:   2023-03-17 08:41:36 +0200
7341
7342    Build: Update comments about unaligned access to mention 64-bit.
7343
7344 cmake/tuklib_integer.cmake | 7 +++----
7345 m4/tuklib_integer.m4       | 4 ++--
7346 2 files changed, 5 insertions(+), 6 deletions(-)
7347
7348commit 5e57e3301319f20c35f8111dea73fa58403b96b1
7349Author: Lasse Collin <lasse.collin@tukaani.org>
7350Date:   2023-03-17 00:02:30 +0200
7351
7352    Tests: Update .gitignore.
7353
7354 .gitignore | 3 ++-
7355 1 file changed, 2 insertions(+), 1 deletion(-)
7356
7357commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac
7358Author: Lasse Collin <lasse.collin@tukaani.org>
7359Date:   2023-03-14 20:04:03 +0200
7360
7361    po4a/update-po: Display the script name consistently in error messages.
7362
7363 po4a/update-po | 2 +-
7364 1 file changed, 1 insertion(+), 1 deletion(-)
7365
7366commit 509157c80c500426ec853bd992d684ebafc8500c
7367Author: Jia Tan <jiat0218@gmail.com>
7368Date:   2023-03-17 01:30:36 +0800
7369
7370    Doc: Rename Doxygen HTML doc directory name liblzma => api.
7371
7372    When the docs are installed, calling the directory "liblzma" is
7373    confusing since multiple other files in the doc directory are for
7374    liblzma. This should also make it more natural for distros when they
7375    package the documentation.
7376
7377 .gitignore             |  2 +-
7378 Makefile.am            | 18 +++++++++---------
7379 PACKAGERS              |  4 ++--
7380 doxygen/Doxyfile       |  2 +-
7381 doxygen/update-doxygen | 18 +++++++++---------
7382 5 files changed, 22 insertions(+), 22 deletions(-)
7383
7384commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3
7385Author: Jia Tan <jiat0218@gmail.com>
7386Date:   2023-03-16 22:07:15 +0800
7387
7388    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
7389
7390    This was left in by mistake since an early version of the ARM64 filter
7391    used a different struct for its options.
7392
7393 src/liblzma/api/lzma/bcj.h | 2 +-
7394 1 file changed, 1 insertion(+), 1 deletion(-)
7395
7396commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d
7397Author: Jia Tan <jiat0218@gmail.com>
7398Date:   2023-03-16 21:44:02 +0800
7399
7400    CI: Add doxygen as a dependency.
7401
7402    Autogen now requires --no-doxygen or having doxygen installed to run
7403    without errors.
7404
7405 .github/workflows/ci.yml | 5 ++---
7406 1 file changed, 2 insertions(+), 3 deletions(-)
7407
7408commit f68f4b27f62f53fdac570885a1f4f23367ce6599
7409Author: Lasse Collin <lasse.collin@tukaani.org>
7410Date:   2023-03-15 19:19:13 +0200
7411
7412    COPYING: Add a note about the included Doxygen-generated HTML.
7413
7414 COPYING | 11 +++++++++++
7415 1 file changed, 11 insertions(+)
7416
7417commit 8979308528c1f45cb9ee52d511f05232b4ad90a1
7418Author: Jia Tan <jiat0218@gmail.com>
7419Date:   2023-03-16 21:41:09 +0800
7420
7421    Doc: Update PACKAGERS with details about liblzma API docs install.
7422
7423 PACKAGERS | 22 ++++++++++++++++------
7424 1 file changed, 16 insertions(+), 6 deletions(-)
7425
7426commit 55ba6e93004842ae0a0792214a23504267ad8f43
7427Author: Jia Tan <jiat0218@gmail.com>
7428Date:   2023-03-16 21:38:32 +0800
7429
7430    liblzma: Add set lzma.h as the main page for Doxygen documentation.
7431
7432    The \mainpage command is used in the first block of comments in lzma.h.
7433    This changes the previously nearly empty index.html to use the first
7434    comment block in lzma.h for its contents.
7435
7436    lzma.h is no longer documented separately, but this is for the better
7437    since lzma.h only defined a few macros that users do not need to use.
7438    The individual API header files all have a disclaimer that they should
7439    not be #included directly, so there should be no confusion on the fact
7440    that lzma.h should be the only header used by applications.
7441
7442    Additionally, the note "See ../lzma.h for information about liblzma as
7443    a whole." was removed since lzma.h is now the main page of the
7444    generated HTML and does not have its own page anymore. So it would be
7445    confusing in the HTML version and was only a "nice to have" when
7446    browsing the source files.
7447
7448 src/liblzma/api/lzma.h              | 1 +
7449 src/liblzma/api/lzma/base.h         | 2 --
7450 src/liblzma/api/lzma/bcj.h          | 2 --
7451 src/liblzma/api/lzma/block.h        | 2 --
7452 src/liblzma/api/lzma/check.h        | 2 --
7453 src/liblzma/api/lzma/container.h    | 2 --
7454 src/liblzma/api/lzma/delta.h        | 2 --
7455 src/liblzma/api/lzma/filter.h       | 2 --
7456 src/liblzma/api/lzma/hardware.h     | 2 --
7457 src/liblzma/api/lzma/index.h        | 2 --
7458 src/liblzma/api/lzma/index_hash.h   | 4 +---
7459 src/liblzma/api/lzma/lzma12.h       | 2 --
7460 src/liblzma/api/lzma/stream_flags.h | 2 --
7461 src/liblzma/api/lzma/version.h      | 2 --
7462 src/liblzma/api/lzma/vli.h          | 2 --
7463 15 files changed, 2 insertions(+), 29 deletions(-)
7464
7465commit 16f21255597f6a57e5692780f962cdc090f62b8c
7466Author: Jia Tan <jiat0218@gmail.com>
7467Date:   2023-03-16 21:37:32 +0800
7468
7469    Build: Generate doxygen documentation in autogen.sh.
7470
7471    Another command line option (--no-doxygen) was added to disable
7472    creating the doxygen documenation in cases where it not wanted or
7473    if the doxygen tool is not installed.
7474
7475 autogen.sh | 35 +++++++++++++++++++++++++++++------
7476 1 file changed, 29 insertions(+), 6 deletions(-)
7477
7478commit 1321852a3be7196bd7fcfd146221a5669e46407c
7479Author: Jia Tan <jiat0218@gmail.com>
7480Date:   2023-03-16 21:35:55 +0800
7481
7482    Build: Create doxygen/update-doxygen script.
7483
7484    This is a helper script to generate the Doxygen documentation. It can be
7485    run in 'liblzma' or 'internal' mode by setting the first argument. It
7486    will default to 'liblzma' mode and only generate documentation for the
7487    liblzma API header files.
7488
7489    The helper script will be run during the custom mydist hook when we
7490    create releases. This hook already alters the source directory, so its
7491    fine to do it here too. This way, we can include the Doxygen generated
7492    files in the distrubtion and when installing.
7493
7494    In 'liblzma' mode, the JavaScript is stripped from the .html files and
7495    the .js files are removed. This avoids license hassle from jQuery and
7496    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
7497
7498 Makefile.am            |   1 +
7499 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
7500 2 files changed, 112 insertions(+)
7501
7502commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b
7503Author: Jia Tan <jiat0218@gmail.com>
7504Date:   2023-03-16 21:34:36 +0800
7505
7506    Build: Install Doxygen docs and include in distribution if generated.
7507
7508    Added a install-data-local target to install the Doxygen documentation
7509    only when it has been generated. In order to correctly remove the docs,
7510    a corresponding uninstall-local target was added.
7511
7512    If the doxygen docs exist in the source tree, they will also be included
7513    in the distribution now too.
7514
7515 Makefile.am | 18 ++++++++++++++++++
7516 1 file changed, 18 insertions(+)
7517
7518commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73
7519Author: Lasse Collin <lasse.collin@tukaani.org>
7520Date:   2023-03-16 21:23:48 +0800
7521
7522    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
7523
7524    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
7525    can have the tags that need to be configured piped into the doxygen
7526    command through stdin with the overrides after Doxyfile's contents.
7527
7528    Going forward, the documentation should be generated in two different
7529    modes: liblzma or internal.
7530
7531    liblzma is useful for most users. It is the documentation for just
7532    the liblzma API header files. This is the default.
7533
7534    internal is for people who want to understand how xz and liblzma work.
7535    It might be useful for people who want to contribute to the project.
7536
7537 .gitignore                      |   3 +-
7538 Makefile.am                     |   1 -
7539 configure.ac                    |  40 ---
7540 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++---------------
7541 4 files changed, 456 insertions(+), 309 deletions(-)
7542
7543commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f
7544Author: Jia Tan <jiat0218@gmail.com>
7545Date:   2023-02-28 23:22:36 +0800
7546
7547    Tests: Remove unused macros and functions.
7548
7549 tests/tests.h | 75 -----------------------------------------------------------
7550 1 file changed, 75 deletions(-)
7551
7552commit af55191102f01e76de658c881299f0909ca0feda
7553Author: Jia Tan <jiat0218@gmail.com>
7554Date:   2022-12-29 21:52:15 +0800
7555
7556    liblzma: Defines masks for return values from lzma_index_checks().
7557
7558 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++
7559 tests/test_index.c           | 22 +++++++++++-----------
7560 2 files changed, 34 insertions(+), 11 deletions(-)
7561
7562commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73
7563Author: Jia Tan <jiat0218@gmail.com>
7564Date:   2023-01-12 22:29:07 +0800
7565
7566    Tests: Refactors existing lzma_index tests.
7567
7568    Converts the existing lzma_index tests into tuktests and covers every
7569    API function from index.h except for lzma_file_info_decoder, which can
7570    be tested in the future.
7571
7572 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
7573 1 file changed, 1492 insertions(+), 544 deletions(-)
7574
7575commit 717aa3651ce582807f379d8654c2516e1594df77
7576Author: Lasse Collin <lasse.collin@tukaani.org>
7577Date:   2023-03-11 18:42:08 +0200
7578
7579    xz: Simplify the error-label in Capsicum sandbox code.
7580
7581    Also remove unneeded "sandbox_allowed = false;" as this code
7582    will never be run more than once (making it work with multiple
7583    input files isn't trivial).
7584
7585 src/xz/file_io.c | 27 ++++++++++++---------------
7586 1 file changed, 12 insertions(+), 15 deletions(-)
7587
7588commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75
7589Author: Lasse Collin <lasse.collin@tukaani.org>
7590Date:   2023-03-07 19:59:23 +0200
7591
7592    xz: Make Capsicum sandbox more strict with stdin and stdout.
7593
7594 src/xz/file_io.c | 8 ++++++++
7595 1 file changed, 8 insertions(+)
7596
7597commit 916448d624aaf55cef0fc3e53754affb8c4f309d
7598Author: Jia Tan <jiat0218@gmail.com>
7599Date:   2023-03-08 23:08:46 +0800
7600
7601    Revert: "Add warning if Capsicum sandbox system calls are unsupported."
7602
7603    The warning causes the exit status to be 2, so this will cause problems
7604    for many scripted use cases for xz. The sandbox usage is already very
7605    limited already, so silently disabling this allows it to be more usable.
7606
7607 src/xz/file_io.c | 10 ++++------
7608 1 file changed, 4 insertions(+), 6 deletions(-)
7609
7610commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f
7611Author: Jia Tan <jiat0218@gmail.com>
7612Date:   2023-03-07 20:02:22 +0800
7613
7614    xz: Fix -Wunused-label in io_sandbox_enter().
7615
7616    Thanks to Xin Li for recommending the fix.
7617
7618 src/xz/file_io.c | 4 ++--
7619 1 file changed, 2 insertions(+), 2 deletions(-)
7620
7621commit 5fb936786601a1cd013a5d436adde65982b1e13c
7622Author: Jia Tan <jiat0218@gmail.com>
7623Date:   2023-03-06 21:37:45 +0800
7624
7625    xz: Add warning if Capsicum sandbox system calls are unsupported.
7626
7627    The warning is only used when errno == ENOSYS. Otherwise, xz still
7628    issues a fatal error.
7629
7630 src/xz/file_io.c | 2 ++
7631 1 file changed, 2 insertions(+)
7632
7633commit 61ee82cb1232a402c82282bbae42821f2b952b0d
7634Author: Jia Tan <jiat0218@gmail.com>
7635Date:   2023-03-06 21:27:53 +0800
7636
7637    xz: Skip Capsicum sandbox system calls when they are unsupported.
7638
7639    If a system has the Capsicum header files but does not actually
7640    implement the system calls, then this would render xz unusable. Instead,
7641    we can check if errno == ENOSYS and not issue a fatal error.
7642
7643 src/xz/file_io.c | 22 +++++++++++++++++-----
7644 1 file changed, 17 insertions(+), 5 deletions(-)
7645
7646commit f070722b57ba975a0dff36492d766f03026b1d21
7647Author: Jia Tan <jiat0218@gmail.com>
7648Date:   2023-03-06 21:08:26 +0800
7649
7650    xz: Reorder cap_enter() to beginning of capsicum sandbox code.
7651
7652    cap_enter() puts the process into the sandbox. If later calls to
7653    cap_rights_limit() fail, then the process can still have some extra
7654    protections.
7655
7656 src/xz/file_io.c | 6 +++---
7657 1 file changed, 3 insertions(+), 3 deletions(-)
7658
7659commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f
7660Author: Jia Tan <jiat0218@gmail.com>
7661Date:   2023-02-24 23:46:23 +0800
7662
7663    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
7664
7665    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
7666    usable in an encoder even if it returns false (success). If liblzma
7667    is built with default configurations, then the options will always be
7668    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
7669    the options may not be usable depending on the preset level requested.
7670
7671    The documentation was updated to reflect this complexity, since this
7672    behavior was unclear before.
7673
7674 src/liblzma/api/lzma/lzma12.h | 5 +++++
7675 1 file changed, 5 insertions(+)
7676
7677commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99
7678Author: Lasse Collin <lasse.collin@tukaani.org>
7679Date:   2023-02-27 18:38:35 +0200
7680
7681    CMake: Require that the C compiler supports C99 or a newer standard.
7682
7683    Thanks to autoantwort for reporting the issue and suggesting
7684    a different patch:
7685    https://github.com/tukaani-project/xz/pull/42
7686
7687 CMakeLists.txt | 8 ++++++++
7688 1 file changed, 8 insertions(+)
7689
7690commit 9aa7fdeb04c486d2700967090956af88fdccab7e
7691Author: Jia Tan <jiat0218@gmail.com>
7692Date:   2023-02-24 18:10:37 +0800
7693
7694    Tests: Small tweak to test-vli.c.
7695
7696    The static global variables can be disabled if encoders and decoders
7697    are not built. If they are not disabled and -Werror is used, it will
7698    cause an usused warning as an error.
7699
7700 tests/test_vli.c | 2 ++
7701 1 file changed, 2 insertions(+)
7702
7703commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9
7704Author: Jia Tan <jiat0218@gmail.com>
7705Date:   2023-02-06 21:46:43 +0800
7706
7707    liblzma: Replace '\n' -> newline in filter.h documentation.
7708
7709    The '\n' renders as a newline when the comments are converted to html
7710    by Doxygen.
7711
7712 src/liblzma/api/lzma/filter.h | 2 +-
7713 1 file changed, 1 insertion(+), 1 deletion(-)
7714
7715commit 002006be62d77c706565fa6ec828bea64be302da
7716Author: Jia Tan <jiat0218@gmail.com>
7717Date:   2023-02-06 21:45:37 +0800
7718
7719    liblzma: Shorten return description for two functions in filter.h.
7720
7721    Shorten the description for lzma_raw_encoder_memusage() and
7722    lzma_raw_decoder_memusage().
7723
7724 src/liblzma/api/lzma/filter.h | 8 ++------
7725 1 file changed, 2 insertions(+), 6 deletions(-)
7726
7727commit 463d9359b8595f01d44ada1739d75aeb87f36524
7728Author: Jia Tan <jiat0218@gmail.com>
7729Date:   2023-02-06 21:44:45 +0800
7730
7731    liblzma: Reword a few lines in filter.h
7732
7733 src/liblzma/api/lzma/filter.h | 10 +++++-----
7734 1 file changed, 5 insertions(+), 5 deletions(-)
7735
7736commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0
7737Author: Jia Tan <jiat0218@gmail.com>
7738Date:   2023-02-06 21:35:06 +0800
7739
7740    liblzma: Improve documentation in filter.h.
7741
7742    All functions now explicitly specify parameter and return values.
7743    The notes and code annotations were moved before the parameter and
7744    return value descriptions for consistency.
7745
7746    Also, the description above lzma_filter_encoder_is_supported() about
7747    not being able to list available filters was removed since
7748    lzma_str_list_filters() will do this.
7749
7750 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
7751 1 file changed, 143 insertions(+), 83 deletions(-)
7752
7753commit 805b45cd60bfd5da3d3d89077de3789df179b324
7754Author: Lasse Collin <lasse.collin@tukaani.org>
7755Date:   2023-02-23 20:46:16 +0200
7756
7757    Update THANKS.
7758
7759 THANKS | 1 +
7760 1 file changed, 1 insertion(+)
7761
7762commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
7763Author: Lasse Collin <lasse.collin@tukaani.org>
7764Date:   2023-02-21 22:57:10 +0200
7765
7766    liblzma: Avoid null pointer + 0 (undefined behavior in C).
7767
7768    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
7769    adding 0 to a null pointer is undefined behavior. As of writing,
7770    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
7771    I'm not aware of any compiler that would take advantage of this
7772    when optimizing (Clang 15 included). It's good to avoid this anyway
7773    since compilers might some day infer that pointer arithmetic implies
7774    that the pointer is not NULL. That is, the following foo() would then
7775    unconditionally return 0, even for foo(NULL, 0):
7776
7777        void bar(char *a, char *b);
7778
7779        int foo(char *a, size_t n)
7780        {
7781            bar(a, a + n);
7782            return a == NULL;
7783        }
7784
7785    In contrast to C, C++ explicitly allows null pointer + 0. So if
7786    the above is compiled as C++ then there is no undefined behavior
7787    in the foo(NULL, 0) call.
7788
7789    To me it seems that changing the C standard would be the sane
7790    thing to do (just add one sentence) as it would ensure that a huge
7791    amount of old code won't break in the future. Based on web searches
7792    it seems that a large number of codebases (where null pointer + 0
7793    occurs) are being fixed instead to be future-proof in case compilers
7794    will some day optimize based on it (like making the above foo(NULL, 0)
7795    return 0) which in the worst case will cause security bugs.
7796
7797    Some projects don't plan to change it. For example, gnulib and thus
7798    many GNU tools currently require that null pointer + 0 is defined:
7799
7800        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
7801
7802        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
7803
7804    In XZ Utils null pointer + 0 issue should be fixed after this
7805    commit. This adds a few if-statements and thus branches to avoid
7806    null pointer + 0. These check for size > 0 instead of ptr != NULL
7807    because this way bugs where size > 0 && ptr == NULL will likely
7808    get caught quickly. None of them are in hot spots so it shouldn't
7809    matter for performance.
7810
7811    A little less readable version would be replacing
7812
7813        ptr + offset
7814
7815    with
7816
7817        offset != 0 ? ptr + offset : ptr
7818
7819    or creating a macro for it:
7820
7821        #define my_ptr_add(ptr, offset) \
7822                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
7823
7824    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
7825    Clang >= 7, and Clang-based ICX to optimize it to the very same code
7826    as ptr + offset. That is, it won't create a branch. So for hot code
7827    this could be a good solution to avoid null pointer + 0. Unfortunately
7828    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
7829    branch from my_ptr_add().
7830
7831    Thanks to Marcin Kowalczyk for reporting the problem:
7832    https://github.com/tukaani-project/xz/issues/36
7833
7834 src/liblzma/common/block_decoder.c |  5 ++++-
7835 src/liblzma/common/block_encoder.c |  7 +++++--
7836 src/liblzma/common/common.c        | 20 ++++++++++++++------
7837 src/liblzma/common/index_decoder.c | 13 ++++++++++---
7838 src/liblzma/common/index_encoder.c | 11 +++++++++--
7839 src/liblzma/common/index_hash.c    | 13 ++++++++++---
7840 src/liblzma/common/lzip_decoder.c  |  6 +++++-
7841 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
7842 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
7843 src/liblzma/simple/simple_coder.c  |  6 ++++--
7844 10 files changed, 77 insertions(+), 23 deletions(-)
7845
7846commit fa9065fac54194fe0407fc7f0cc9633fdce13c21
7847Author: Jia Tan <jiat0218@gmail.com>
7848Date:   2023-02-07 00:00:44 +0800
7849
7850    liblzma: Adjust container.h for consistency with filter.h.
7851
7852 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
7853 1 file changed, 9 insertions(+), 11 deletions(-)
7854
7855commit 00a721b63d82dfb658dca8d8cb599d8a245c663f
7856Author: Jia Tan <jiat0218@gmail.com>
7857Date:   2023-02-07 00:00:09 +0800
7858
7859    liblzma: Fix small typos and reword a few things in filter.h.
7860
7861 src/liblzma/api/lzma/container.h | 13 ++++++-------
7862 1 file changed, 6 insertions(+), 7 deletions(-)
7863
7864commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39
7865Author: Jia Tan <jiat0218@gmail.com>
7866Date:   2023-02-06 23:42:08 +0800
7867
7868    liblzma: Convert list of flags in lzma_mt to bulleted list.
7869
7870 src/liblzma/api/lzma/container.h | 9 ++++++---
7871 1 file changed, 6 insertions(+), 3 deletions(-)
7872
7873commit dbd47622eb99fefb3538a22baec3def002aa56f5
7874Author: Jia Tan <jiat0218@gmail.com>
7875Date:   2023-01-26 23:17:41 +0800
7876
7877    liblzma: Fix typo in documentation in container.h
7878
7879    lzma_microlzma_decoder -> lzma_microlzma_encoder
7880
7881 src/liblzma/api/lzma/container.h | 2 +-
7882 1 file changed, 1 insertion(+), 1 deletion(-)
7883
7884commit 14cd30806d69e55906073745bcce3ee50e0ec942
7885Author: Jia Tan <jiat0218@gmail.com>
7886Date:   2023-01-26 23:16:34 +0800
7887
7888    liblzma: Improve documentation for container.h
7889
7890    Standardizing each function to always specify parameters and return
7891    values. Also moved the parameters and return values to the end of each
7892    function description.
7893
7894 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
7895 1 file changed, 93 insertions(+), 53 deletions(-)
7896
7897commit c9c8bfae3502842dcead85eeb2b951b437c2cd88
7898Author: Jia Tan <jiat0218@gmail.com>
7899Date:   2023-02-22 20:59:41 +0800
7900
7901    CMake: Add LZIP decoder test to list of tests.
7902
7903 CMakeLists.txt | 1 +
7904 1 file changed, 1 insertion(+)
7905
7906commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a
7907Author: Lasse Collin <lasse.collin@tukaani.org>
7908Date:   2023-02-17 20:56:49 +0200
7909
7910    Update THANKS.
7911
7912 THANKS | 1 +
7913 1 file changed, 1 insertion(+)
7914
7915commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
7916Author: Lasse Collin <lasse.collin@tukaani.org>
7917Date:   2023-02-17 20:48:28 +0200
7918
7919    Build: Use only the generic symbol versioning on MicroBlaze.
7920
7921    On MicroBlaze, GCC 12 is broken in sense that
7922    __has_attribute(__symver__) returns true but it still doesn't
7923    support the __symver__ attribute even though the platform is ELF
7924    and symbol versioning is supported if using the traditional
7925    __asm__(".symver ...") method. Avoiding the traditional method is
7926    good because it breaks LTO (-flto) builds with GCC.
7927
7928    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
7929
7930    For now the only extra symbols in liblzma_linux.map are the
7931    compatibility symbols with the patch that spread from RHEL/CentOS 7.
7932    These require the use of __symver__ attribute or __asm__(".symver ...")
7933    in the C code. Compatibility with the patch from CentOS 7 doesn't
7934    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
7935    instead. It doesn't require anything special in the C code and thus
7936    no LTO issues either.
7937
7938    An alternative would be to detect support for __symver__
7939    attribute in configure.ac and CMakeLists.txt and fall back
7940    to __asm__(".symver ...") but then LTO would be silently broken
7941    on MicroBlaze. It sounds likely that MicroBlaze is a special
7942    case so let's treat it as a such because that is simpler. If
7943    a similar issue exists on some other platform too then hopefully
7944    someone will report it and this can be reconsidered.
7945
7946    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
7947    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
7948    The problem breaks the build so it's easy to notice and can be fixed
7949    later.)
7950
7951    Thanks to Vincent Fazio for reporting the problem and proposing
7952    a patch (in the end that solution wasn't used):
7953    https://github.com/tukaani-project/xz/pull/32
7954
7955 configure.ac | 12 ++++++++++--
7956 1 file changed, 10 insertions(+), 2 deletions(-)
7957
7958commit d831072cceca458d94d2d5da201862f6d43a417b
7959Author: Lasse Collin <lasse.collin@tukaani.org>
7960Date:   2023-02-16 21:09:00 +0200
7961
7962    liblzma: Very minor API doc tweaks.
7963
7964    Use "member" to refer to struct members as that's the term used
7965    by the C standard.
7966
7967    Use lzma_options_delta.dist and such in docs so that in Doxygen's
7968    HTML output they will link to the doc of the struct member.
7969
7970    Clean up a few trailing white spaces too.
7971
7972 src/liblzma/api/lzma/block.h        |  6 +++---
7973 src/liblzma/api/lzma/delta.h        |  6 +++---
7974 src/liblzma/api/lzma/index.h        | 10 +++++-----
7975 src/liblzma/api/lzma/stream_flags.h |  6 +++---
7976 4 files changed, 14 insertions(+), 14 deletions(-)
7977
7978commit f029daea39c215fd7d5cb6b6798818b055cf5b22
7979Author: Jia Tan <jiat0218@gmail.com>
7980Date:   2023-02-17 00:54:33 +0800
7981
7982    liblzma: Adjust spacing in doc headers in bcj.h.
7983
7984 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
7985 1 file changed, 7 insertions(+), 7 deletions(-)
7986
7987commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c
7988Author: Jia Tan <jiat0218@gmail.com>
7989Date:   2023-02-17 00:44:44 +0800
7990
7991    liblzma: Adjust documentation in bcj.h for consistent style.
7992
7993 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
7994 1 file changed, 22 insertions(+), 21 deletions(-)
7995
7996commit efa498c13b883810497e0ea8a169efd6f48f5026
7997Author: Jia Tan <jiat0218@gmail.com>
7998Date:   2023-02-17 00:36:05 +0800
7999
8000    liblzma: Rename field => member in documentation.
8001
8002    Also adjusted preset value => preset level.
8003
8004 src/liblzma/api/lzma/base.h         | 18 +++++++--------
8005 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
8006 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
8007 src/liblzma/api/lzma/delta.h        | 12 +++++-----
8008 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
8009 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
8010 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
8011 7 files changed, 95 insertions(+), 95 deletions(-)
8012
8013commit 718b22a6c5e3ee5de123323ea798872381f9320e
8014Author: Lasse Collin <lasse.collin@tukaani.org>
8015Date:   2023-02-16 17:59:50 +0200
8016
8017    liblzma: Silence a warning from MSVC.
8018
8019    It gives C4146 here since unary minus with unsigned integer
8020    is still unsigned (which is the intention here). Doing it
8021    with substraction makes it clearer and avoids the warning.
8022
8023    Thanks to Nathan Moinvaziri for reporting this.
8024
8025 src/liblzma/check/crc64_fast.c | 2 +-
8026 1 file changed, 1 insertion(+), 1 deletion(-)
8027
8028commit 87c53553fa7d50f777b4edfa99f2083628f590fe
8029Author: Jia Tan <jiat0218@gmail.com>
8030Date:   2023-02-16 21:04:54 +0800
8031
8032     liblzma: Improve documentation for stream_flags.h
8033
8034    Standardizing each function to always specify parameters and return
8035    values. Also moved the parameters and return values to the end of each
8036    function description.
8037
8038    A few small things were reworded and long sentences broken up.
8039
8040 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
8041 1 file changed, 46 insertions(+), 30 deletions(-)
8042
8043commit 13d99e75a543e9e5f8633cc241eae55b91a3b242
8044Author: Jia Tan <jiat0218@gmail.com>
8045Date:   2023-02-14 21:50:16 +0800
8046
8047    liblzma: Improve documentation in lzma12.h.
8048
8049    All functions now explicitly specify parameter and return values.
8050
8051 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
8052 1 file changed, 23 insertions(+), 9 deletions(-)
8053
8054commit 43ec344c868f930e96879eb9e49212cce92a9884
8055Author: Jia Tan <jiat0218@gmail.com>
8056Date:   2023-01-27 22:44:06 +0800
8057
8058    liblzma: Improve documentation in check.h.
8059
8060    All functions now explicitly specify parameter and return values.
8061    Also moved the note about SHA-256 functions not being exported to the
8062    top of the file.
8063
8064 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
8065 1 file changed, 28 insertions(+), 13 deletions(-)
8066
8067commit 9c71db4e884fd49aea3d1e711036bff45ca66487
8068Author: Jia Tan <jiat0218@gmail.com>
8069Date:   2023-02-08 21:33:52 +0800
8070
8071    liblzma: Improve documentation in index.h
8072
8073    All functions now explicitly specify parameter and return values.
8074
8075 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
8076 1 file changed, 126 insertions(+), 51 deletions(-)
8077
8078commit 421f2f2e160720f6009e3b6a125cafe2feaa9419
8079Author: Jia Tan <jiat0218@gmail.com>
8080Date:   2023-02-08 20:35:32 +0800
8081
8082    liblzma: Reword a comment in index.h.
8083
8084 src/liblzma/api/lzma/index.h | 4 ++--
8085 1 file changed, 2 insertions(+), 2 deletions(-)
8086
8087commit b67539484981351d501b68de5e925425e50c59b1
8088Author: Jia Tan <jiat0218@gmail.com>
8089Date:   2023-02-08 20:30:23 +0800
8090
8091    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
8092
8093    Add \private above this field and its sub-fields since it is not meant
8094    to be modified by users.
8095
8096 src/liblzma/api/lzma/index.h | 9 ++++++++-
8097 1 file changed, 8 insertions(+), 1 deletion(-)
8098
8099commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96
8100Author: Jia Tan <jiat0218@gmail.com>
8101Date:   2023-01-21 21:32:03 +0800
8102
8103    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
8104
8105    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
8106    documentation after a member.
8107
8108 src/liblzma/api/lzma/base.h | 2 +-
8109 1 file changed, 1 insertion(+), 1 deletion(-)
8110
8111commit 816fec125aa74bcef46512c73acc6d9e5a700d15
8112Author: Jia Tan <jiat0218@gmail.com>
8113Date:   2023-01-21 00:29:38 +0800
8114
8115    liblzma: Improve documentation for base.h.
8116
8117    Standardizing each function to always specify params and return values.
8118    Also fixed a small grammar mistake.
8119
8120 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
8121 1 file changed, 25 insertions(+), 5 deletions(-)
8122
8123commit 862dacef1a4e7e1b28d465956fa4244ed01df154
8124Author: Jia Tan <jiat0218@gmail.com>
8125Date:   2023-02-14 00:12:34 +0800
8126
8127    liblzma: Add one more missing [out] annotation in vli.h
8128
8129 src/liblzma/api/lzma/vli.h | 2 +-
8130 1 file changed, 1 insertion(+), 1 deletion(-)
8131
8132commit 867b08ae4254bf55dd1f7fd502cc618231b92f75
8133Author: Jia Tan <jiat0218@gmail.com>
8134Date:   2023-02-14 00:08:33 +0800
8135
8136    liblzma: Minor improvements to vli.h.
8137
8138    Added [out] annotations to parameters that are pointers and can have
8139    their value changed. Also added a clarification to lzma_vli_is_valid.
8140
8141 src/liblzma/api/lzma/vli.h | 13 +++++++------
8142 1 file changed, 7 insertions(+), 6 deletions(-)
8143
8144commit 90d0e628ff11e5030bcc4fc000bca056adda6603
8145Author: Jia Tan <jiat0218@gmail.com>
8146Date:   2023-02-10 21:38:02 +0800
8147
8148    liblzma: Add comments for macros in delta.h.
8149
8150    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
8151    and to avoid Doxygen warnings.
8152
8153 src/liblzma/api/lzma/delta.h | 8 ++++++++
8154 1 file changed, 8 insertions(+)
8155
8156commit 9255fffdb13e59874bf7f95c370c410ad3a7e114
8157Author: Jia Tan <jiat0218@gmail.com>
8158Date:   2023-02-10 21:35:23 +0800
8159
8160    liblzma: Improve documentation in index_hash.h.
8161
8162    All functions now explicitly specify parameter and return values.
8163    Also reworded the description of lzma_index_hash_init() for readability.
8164
8165 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
8166 1 file changed, 27 insertions(+), 9 deletions(-)
8167
8168commit 1dbe12b90cff79bb51923733ac0840747b4b4131
8169Author: Lasse Collin <lasse.collin@tukaani.org>
8170Date:   2023-02-07 19:07:45 +0200
8171
8172    xz: Improve the comment about start_time in mytime.c.
8173
8174    start_time is relative to an arbitary point in time, it's not
8175    time of day, so using it for anything else than time differences
8176    wouldn't make sense.
8177
8178 src/xz/mytime.c | 15 ++++++++++-----
8179 1 file changed, 10 insertions(+), 5 deletions(-)
8180
8181commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56
8182Author: Jia Tan <jiat0218@gmail.com>
8183Date:   2023-02-04 21:06:35 +0800
8184
8185    Build: Adjust CMake version search regex.
8186
8187    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
8188    macros do not need to be on consecutive lines in version.h. They can be
8189    separated by more whitespace, comments, or even other content, as long
8190    as they appear in the proper order (major, minor, patch).
8191
8192 CMakeLists.txt | 2 ++
8193 1 file changed, 2 insertions(+)
8194
8195commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac
8196Author: Jia Tan <jiat0218@gmail.com>
8197Date:   2023-02-04 12:01:23 +0800
8198
8199    xz: Add a comment clarifying the use of start_time in mytime.c.
8200
8201 src/xz/mytime.c | 5 +++++
8202 1 file changed, 5 insertions(+)
8203
8204commit 912af91b10a18fb9bb3167247ecaaefca8248ee9
8205Author: Jia Tan <jiat0218@gmail.com>
8206Date:   2023-01-26 09:50:21 +0800
8207
8208    liblzma: Improve documentation for version.h.
8209
8210    Specified parameter and return values for API functions and documented
8211    a few more of the macros.
8212
8213 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
8214 1 file changed, 22 insertions(+), 7 deletions(-)
8215
8216commit 850adec171203cd22b57d016084d713f72ae5307
8217Author: Jia Tan <jiat0218@gmail.com>
8218Date:   2023-02-03 22:52:55 +0800
8219
8220    Docs: Omit SIGTSTP not handled from TODO.
8221
8222 TODO | 4 ----
8223 1 file changed, 4 deletions(-)
8224
8225commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3
8226Author: Jia Tan <jiat0218@gmail.com>
8227Date:   2023-02-03 00:33:32 +0800
8228
8229    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
8230
8231    The bug is only a problem in applications that do not properly terminate
8232    the filters[] array with LZMA_VLI_UNKNOWN or have more than
8233    LZMA_FILTERS_MAX filters. This bug does not affect xz.
8234
8235 src/liblzma/common/string_conversion.c | 7 +++++++
8236 1 file changed, 7 insertions(+)
8237
8238commit e01f01b9af1c074463b92694a16ecc16a31907c0
8239Author: Jia Tan <jiat0218@gmail.com>
8240Date:   2023-02-03 00:32:47 +0800
8241
8242    Tests: Create test_filter_str.c.
8243
8244    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
8245    lzma_str_list_filters() API functions.
8246
8247 CMakeLists.txt          |   1 +
8248 tests/Makefile.am       |   2 +
8249 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
8250 3 files changed, 596 insertions(+)
8251
8252commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26
8253Author: Jia Tan <jiat0218@gmail.com>
8254Date:   2023-01-22 08:49:00 +0800
8255
8256    liblzma: Fix typos in comments in string_conversion.c.
8257
8258 src/liblzma/common/string_conversion.c | 4 ++--
8259 1 file changed, 2 insertions(+), 2 deletions(-)
8260
8261commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6
8262Author: Jia Tan <jiat0218@gmail.com>
8263Date:   2023-02-03 00:20:20 +0800
8264
8265    liblzma: Clarify block encoder and decoder documentation.
8266
8267    Added a few sentences to the description for lzma_block_encoder() and
8268    lzma_block_decoder() to highlight that the Block Header must be coded
8269    before calling these functions.
8270
8271 src/liblzma/api/lzma/block.h | 15 +++++++++++----
8272 1 file changed, 11 insertions(+), 4 deletions(-)
8273
8274commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f
8275Author: Jia Tan <jiat0218@gmail.com>
8276Date:   2023-02-03 00:12:24 +0800
8277
8278    Update lzma_block documentation for lzma_block_uncomp_encode().
8279
8280 src/liblzma/api/lzma/block.h | 3 +++
8281 1 file changed, 3 insertions(+)
8282
8283commit 504cf4af895fd45aad0c56eb3b49d90acd54465b
8284Author: Jia Tan <jiat0218@gmail.com>
8285Date:   2023-02-03 00:11:37 +0800
8286
8287    liblzma: Minor edits to lzma_block header_size documentation.
8288
8289 src/liblzma/api/lzma/block.h | 3 ++-
8290 1 file changed, 2 insertions(+), 1 deletion(-)
8291
8292commit 115b720fb521f99aa832d06b2c12b7f8c6c50680
8293Author: Jia Tan <jiat0218@gmail.com>
8294Date:   2023-02-03 00:11:07 +0800
8295
8296    liblzma: Enumerate functions that read version in lzma_block.
8297
8298 src/liblzma/api/lzma/block.h | 13 +++++++++++--
8299 1 file changed, 11 insertions(+), 2 deletions(-)
8300
8301commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1
8302Author: Jia Tan <jiat0218@gmail.com>
8303Date:   2023-02-03 00:10:34 +0800
8304
8305    liblzma: Clarify comment in block.h.
8306
8307 src/liblzma/api/lzma/block.h | 3 ++-
8308 1 file changed, 2 insertions(+), 1 deletion(-)
8309
8310commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8
8311Author: Jia Tan <jiat0218@gmail.com>
8312Date:   2023-02-03 00:07:23 +0800
8313
8314    liblzma: Improve documentation for block.h.
8315
8316    Standardizing each function to always specify params and return values.
8317    Output pointer parameters are also marked with doxygen style [out] to
8318    make it clear. Any note sections were also moved above the parameter and
8319    return sections for consistency.
8320
8321 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
8322 1 file changed, 75 insertions(+), 21 deletions(-)
8323
8324commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3
8325Author: Jia Tan <jiat0218@gmail.com>
8326Date:   2023-02-01 23:38:30 +0800
8327
8328    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
8329
8330    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
8331    about the treatment for filters than cannot be used with .xz format
8332    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
8333    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
8334
8335 src/liblzma/api/lzma/filter.h | 5 +++--
8336 1 file changed, 3 insertions(+), 2 deletions(-)
8337
8338commit 315c64c7e18acc59a745b68148188a73e998252b
8339Author: Jia Tan <jiat0218@gmail.com>
8340Date:   2023-02-01 21:43:33 +0800
8341
8342    CI: Update .gitignore for artifacts directory in build-aux.
8343
8344    The workflow action for our CI pipeline can only reference artifacts in
8345    the source directory, so we should ignore these files if the ci_build.sh
8346    is run locally.
8347
8348 .gitignore | 1 +
8349 1 file changed, 1 insertion(+)
8350
8351commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f
8352Author: Jia Tan <jiat0218@gmail.com>
8353Date:   2023-02-01 21:36:46 +0800
8354
8355    CI: Add quotes around variables in a few places.
8356
8357 build-aux/ci_build.sh | 6 +++---
8358 1 file changed, 3 insertions(+), 3 deletions(-)
8359
8360commit 3a401b0e0c7a2658af7801dd0690256ef24149e0
8361Author: Jia Tan <jiat0218@gmail.com>
8362Date:   2023-02-01 21:36:22 +0800
8363
8364    CI: Upload test logs as artifacts if a test fails.
8365
8366 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++--------------
8367 build-aux/ci_build.sh    | 31 ++++++++++++++++++++-----
8368 2 files changed, 68 insertions(+), 23 deletions(-)
8369
8370commit 610dde15a88f12cc540424eb3eb3ed61f3876f74
8371Author: Lasse Collin <lasse.collin@tukaani.org>
8372Date:   2023-01-27 20:02:49 +0200
8373
8374    xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
8375
8376    mythread.h and thus liblzma already does it.
8377
8378 src/xz/mytime.c  | 11 ++++++++---
8379 src/xz/private.h |  3 +--
8380 2 files changed, 9 insertions(+), 5 deletions(-)
8381
8382commit 2e02877288f6576cd4595e9ac7684f867cd47d68
8383Author: Lasse Collin <lasse.collin@tukaani.org>
8384Date:   2023-01-27 19:41:19 +0200
8385
8386    po4a/po4a.conf: Sort the language identifiers in alphabetical order.
8387
8388 po4a/po4a.conf | 2 +-
8389 1 file changed, 1 insertion(+), 1 deletion(-)
8390
8391commit ff592c616eda274215b485cf1b8d34f060c9f3be
8392Author: Lasse Collin <lasse.collin@tukaani.org>
8393Date:   2023-01-26 18:29:17 +0200
8394
8395    xz: Add SIGTSTP handler for progress indicator time keeping.
8396
8397    This way, if xz is stopped the elapsed time and estimated time
8398    remaining won't get confused by the amount of time spent in
8399    the stopped state.
8400
8401    This raises SIGSTOP. It's not clear to me if this is the correct way.
8402    POSIX and glibc docs say that SIGTSTP shouldn't stop the process if
8403    it is orphaned but this commit doesn't attempt to handle that.
8404
8405    Search for SIGTSTP in section 2.4.3:
8406
8407    https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
8408
8409 src/xz/mytime.c  | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
8410 src/xz/mytime.h  |  6 ++++++
8411 src/xz/private.h | 12 ++++++++++++
8412 src/xz/signals.c | 17 ++++++++++++++++-
8413 4 files changed, 89 insertions(+), 2 deletions(-)
8414
8415commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76
8416Author: Jia Tan <jiat0218@gmail.com>
8417Date:   2023-01-27 20:14:51 +0800
8418
8419    Translations: Add Brazilian Portuguese translation of man pages.
8420
8421    Thanks to Rafael Fontenelle.
8422
8423 po4a/po4a.conf |    2 +-
8424 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8425 2 files changed, 3678 insertions(+), 1 deletion(-)
8426
8427commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc
8428Author: Lasse Collin <lasse.collin@tukaani.org>
8429Date:   2023-01-26 17:51:06 +0200
8430
8431    Build: Avoid different quoting style in --enable-doxygen doc.
8432
8433 configure.ac | 10 +++++-----
8434 1 file changed, 5 insertions(+), 5 deletions(-)
8435
8436commit af5a4bd5afc089d9697756dded38feafaa987ae4
8437Author: Lasse Collin <lasse.collin@tukaani.org>
8438Date:   2023-01-26 17:39:46 +0200
8439
8440    tuklib_physmem: Check for __has_warning before GCC version.
8441
8442    Clang can be configured to fake a too high GCC version so
8443    this way it's more robust.
8444
8445 src/common/tuklib_physmem.c | 6 +++---
8446 1 file changed, 3 insertions(+), 3 deletions(-)
8447
8448commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4
8449Author: Jia Tan <jiat0218@gmail.com>
8450Date:   2023-01-24 20:48:50 +0800
8451
8452    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
8453
8454    The previous documentation for lzma_str_to_filters() was technically
8455    correct, but misleading. lzma_str_to_filters() returns NULL on success,
8456    which is in practice always defined to 0. This is the same value as
8457    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
8458    be more clear.
8459
8460 src/liblzma/api/lzma/filter.h | 2 +-
8461 1 file changed, 1 insertion(+), 1 deletion(-)
8462
8463commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2
8464Author: Lasse Collin <lasse.collin@tukaani.org>
8465Date:   2023-01-23 23:44:58 +0200
8466
8467    Revert "tuklib_common: Define __has_warning if it is not defined."
8468
8469    This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766.
8470
8471    Macros in the reserved namespace (_foo or __foo) shouldn't be #defined
8472    without a very good reason. Here the alternative would have been
8473    to #define tuklib_has_warning(str) to an approriate value.
8474
8475    Also the tuklib_* files should stay namespace clean if possible.
8476
8477 src/common/tuklib_common.h | 7 -------
8478 1 file changed, 7 deletions(-)
8479
8480commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575
8481Author: Lasse Collin <lasse.collin@tukaani.org>
8482Date:   2023-01-23 23:38:34 +0200
8483
8484    tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows.
8485
8486    __has_warning and other __has_foo macros are meant to become
8487    compiler-agnostic so it's not good to check for __clang__ with it.
8488
8489    This also relied on tuklib_common.h for #defining __has_warning
8490    which was confusing as #defining reserved macros is generally
8491    not a good idea.
8492
8493 src/common/tuklib_physmem.c | 17 +++++++++++++----
8494 1 file changed, 13 insertions(+), 4 deletions(-)
8495
8496commit 683a3c7e2fcd922200c31078e5c9dd1348e90941
8497Author: Lasse Collin <lasse.collin@tukaani.org>
8498Date:   2023-01-24 00:05:38 +0200
8499
8500    xz: Flip the return value of suffix_is_set to match the documentation.
8501
8502    Also edit style to match the existing coding style in the project.
8503
8504 src/xz/args.c   | 6 +++---
8505 src/xz/suffix.c | 2 +-
8506 src/xz/suffix.h | 1 +
8507 3 files changed, 5 insertions(+), 4 deletions(-)
8508
8509commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0
8510Author: Jia Tan <jiat0218@gmail.com>
8511Date:   2023-01-07 21:55:06 +0800
8512
8513    xz: Refactor duplicated check for custom suffix when using --format=raw
8514
8515 src/xz/args.c   |  8 ++++++++
8516 src/xz/suffix.c | 26 ++++++++------------------
8517 src/xz/suffix.h |  7 +++++++
8518 3 files changed, 23 insertions(+), 18 deletions(-)
8519
8520commit 9663141274e01592a281a7f2df5d7a31a1dac8bf
8521Author: Jia Tan <jiat0218@gmail.com>
8522Date:   2023-01-20 21:53:14 +0800
8523
8524    liblzma: Set documentation on all reserved fields to private.
8525
8526    This prevents the reserved fields from being part of the generated
8527    Doxygen documentation.
8528
8529 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
8530 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
8531 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
8532 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
8533 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
8534 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
8535 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
8536 7 files changed, 173 insertions(+)
8537
8538commit 6327a045f34d48fc5afc58ba0d32a82c94403049
8539Author: Jia Tan <jiat0218@gmail.com>
8540Date:   2022-12-20 21:39:59 +0800
8541
8542    Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17.
8543
8544    A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released
8545    in 2019, so this should be compatible with resonable modern distros.
8546    The purpose of Doxygen these days is for docs on the website, so it
8547    doesn't necessarily have to work for everyone. Just when the maintainers
8548    want to update the docs.
8549
8550 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++---------------
8551 1 file changed, 1893 insertions(+), 630 deletions(-)
8552
8553commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad
8554Author: Jia Tan <jiat0218@gmail.com>
8555Date:   2023-01-03 20:37:30 +0800
8556
8557    Doxygen: Make Doxygen only produce liblzma API documentation by default.
8558
8559    Doxygen is now configurable in autotools only with
8560    --enable-doxygen=[api|all]. The default is "api", which will only
8561    generate HTML output for liblzma API functions. The LaTex documentation
8562    output was also disabled.
8563
8564 Doxyfile.in  | 18 +++++++++---------
8565 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
8566 2 files changed, 48 insertions(+), 9 deletions(-)
8567
8568commit 6fcf4671b6047113c583a0919fc850987a4ec5f4
8569Author: Jia Tan <jiat0218@gmail.com>
8570Date:   2022-12-21 23:59:43 +0800
8571
8572    liblzma: Highlight liblzma API headers should not be included directly.
8573
8574    This improves the generated Doxygen HTML files to better highlight
8575    how to properly use the liblzma API header files.
8576
8577 src/liblzma/api/lzma/base.h         | 5 +++--
8578 src/liblzma/api/lzma/bcj.h          | 5 +++--
8579 src/liblzma/api/lzma/block.h        | 5 +++--
8580 src/liblzma/api/lzma/check.h        | 5 +++--
8581 src/liblzma/api/lzma/container.h    | 5 +++--
8582 src/liblzma/api/lzma/delta.h        | 5 +++--
8583 src/liblzma/api/lzma/filter.h       | 5 +++--
8584 src/liblzma/api/lzma/hardware.h     | 5 +++--
8585 src/liblzma/api/lzma/index.h        | 5 +++--
8586 src/liblzma/api/lzma/index_hash.h   | 5 +++--
8587 src/liblzma/api/lzma/lzma12.h       | 5 +++--
8588 src/liblzma/api/lzma/stream_flags.h | 5 +++--
8589 src/liblzma/api/lzma/version.h      | 5 +++--
8590 src/liblzma/api/lzma/vli.h          | 5 +++--
8591 14 files changed, 42 insertions(+), 28 deletions(-)
8592
8593commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4
8594Author: Jia Tan <jiat0218@gmail.com>
8595Date:   2023-01-19 20:35:09 +0800
8596
8597    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
8598
8599    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
8600    to retrieve a function address. The proper way to do this is to cast the
8601    return value to the type of function pointer retrieved. Unfortunately,
8602    this causes a cast-function-type warning, so the best solution is to
8603    simply ignore the warning.
8604
8605 src/common/tuklib_physmem.c | 9 +++++++++
8606 1 file changed, 9 insertions(+)
8607
8608commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766
8609Author: Jia Tan <jiat0218@gmail.com>
8610Date:   2023-01-19 20:32:40 +0800
8611
8612    tuklib_common: Define __has_warning if it is not defined.
8613
8614    clang supports the __has_warning macro to determine if the version of
8615    clang compiling the code supports a given warning. If we do not define
8616    it for other compilers, it may cause a preprocessor error.
8617
8618 src/common/tuklib_common.h | 7 +++++++
8619 1 file changed, 7 insertions(+)
8620
8621commit b2ba1a489df451cdcd93b2334e319dd06778de19
8622Author: Jia Tan <jiat0218@gmail.com>
8623Date:   2023-01-18 22:11:05 +0800
8624
8625    CI: Reorder 32-bit build first for Linux autotool builds.
8626
8627    The 32-bit build needs to be first so the configure cache only needs to
8628    be reset one time. The 32-bit build sets the CFLAGS env variable, so any
8629    build using that flag after will fail unless the cache is reset.
8630
8631 .github/workflows/ci.yml | 17 ++++++++++++-----
8632 1 file changed, 12 insertions(+), 5 deletions(-)
8633
8634commit dd1c1135741057c91e8d018be9ec4d43968b0e64
8635Author: Jia Tan <jiat0218@gmail.com>
8636Date:   2023-01-18 21:51:43 +0800
8637
8638    CI: Enable --config-cache in autotool builds.
8639
8640    If CFLAGS are set in a build, the cache must be cleared with
8641    "make distclean", or by deleting the cache file.
8642
8643 build-aux/ci_build.sh | 2 +-
8644 1 file changed, 1 insertion(+), 1 deletion(-)
8645
8646commit d3e11477053764c003eec2daa5198c747d70ff69
8647Author: Jia Tan <jiat0218@gmail.com>
8648Date:   2023-01-16 21:35:45 +0800
8649
8650    xz: Add missing comment for coder_set_compression_settings()
8651
8652 src/xz/coder.h | 3 ++-
8653 1 file changed, 2 insertions(+), 1 deletion(-)
8654
8655commit 123255b6ed15f4428b2aa92e4962015a5362f6bf
8656Author: Jia Tan <jiat0218@gmail.com>
8657Date:   2023-01-16 20:55:10 +0800
8658
8659    xz: Do not set compression settings with raw format in list mode.
8660
8661    Calling coder_set_compression_settings() in list mode with verbose mode
8662    on caused the filter chain and memory requirements to print. This was
8663    unnecessary since the command results in an error and not consistent
8664    with other formats like lzma and alone.
8665
8666 src/xz/args.c | 3 ++-
8667 1 file changed, 2 insertions(+), 1 deletion(-)
8668
8669commit 571919c47b9ff5171ede84378620ed0a9aeb98c0
8670Author: Jia Tan <jiat0218@gmail.com>
8671Date:   2023-01-13 20:37:06 +0800
8672
8673    Translations: Update the Brazilian Portuguese translation.
8674
8675 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
8676 1 file changed, 344 insertions(+), 259 deletions(-)
8677
8678commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf
8679Author: Jia Tan <jiat0218@gmail.com>
8680Date:   2023-01-12 23:43:06 +0800
8681
8682    CI: Disable shared and nls from various jobs in autotool runners.
8683
8684    Disabling shared library generation and linking should help speed up the
8685    runners. The shared library is still being tested in the 32 bit build
8686    and the full feature.
8687
8688    Disabling nls is to check for any unexpected warnings or errors.
8689
8690 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------
8691 1 file changed, 28 insertions(+), 28 deletions(-)
8692
8693commit 58a052198a7bcaf6e958f87fad72e69e19a2579b
8694Author: Jia Tan <jiat0218@gmail.com>
8695Date:   2023-01-12 23:39:19 +0800
8696
8697    CI: Reorder the 32-bit job in the Ubuntu runner.
8698
8699    Run the 32 bit job sooner since this is a more interesting test than
8700    some of the later jobs.
8701
8702 .github/workflows/ci.yml | 10 +++++-----
8703 1 file changed, 5 insertions(+), 5 deletions(-)
8704
8705commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797
8706Author: Jia Tan <jiat0218@gmail.com>
8707Date:   2023-01-12 23:09:03 +0800
8708
8709    CI: Allow disabling Native Language Support.
8710
8711 build-aux/ci_build.sh | 9 ++++++++-
8712 1 file changed, 8 insertions(+), 1 deletion(-)
8713
8714commit 0dec634e705b5bf89a37c5d62d71e8511d480058
8715Author: Jia Tan <jiat0218@gmail.com>
8716Date:   2023-01-12 23:02:20 +0800
8717
8718    CI: Only run autogen.sh if it has not already run.
8719
8720 build-aux/ci_build.sh | 11 ++++++++---
8721 1 file changed, 8 insertions(+), 3 deletions(-)
8722
8723commit 32287dc8def94df4546e903495d14c132bd54cc4
8724Author: Jia Tan <jiat0218@gmail.com>
8725Date:   2023-01-12 22:58:36 +0800
8726
8727    CI: Allow disabling shared library in autotools builds.
8728
8729 build-aux/ci_build.sh | 9 ++++++++-
8730 1 file changed, 8 insertions(+), 1 deletion(-)
8731
8732commit 77d1ebcc99ddd82a300d1838f608150221931dcd
8733Author: Jia Tan <jiat0218@gmail.com>
8734Date:   2023-01-12 22:44:18 +0800
8735
8736    CI: Improve Usage readability and add -h option.
8737
8738 build-aux/ci_build.sh | 15 +++++++++++++--
8739 1 file changed, 13 insertions(+), 2 deletions(-)
8740
8741commit a8bb8358d10b059274f3cf993d9b8f490bafb268
8742Author: Lasse Collin <lasse.collin@tukaani.org>
8743Date:   2023-01-12 13:04:05 +0200
8744
8745    Build: Omit -Wmissing-noreturn from the default warnings.
8746
8747    It's not that important. It can be annoying in builds that
8748    disable many features since in those cases the tests programs
8749    will correctly trigger this warning with Clang.
8750
8751 configure.ac | 1 -
8752 1 file changed, 1 deletion(-)
8753
8754commit 52dc033d0bde0d19e3912303c6c74bae559d6498
8755Author: Lasse Collin <lasse.collin@tukaani.org>
8756Date:   2023-01-12 06:05:58 +0200
8757
8758    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
8759
8760    It makes no difference here as the return value fits into an int
8761    too and it then gets ignored but this looks better.
8762
8763 src/xz/file_io.c | 2 +-
8764 1 file changed, 1 insertion(+), 1 deletion(-)
8765
8766commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3
8767Author: Lasse Collin <lasse.collin@tukaani.org>
8768Date:   2023-01-12 06:01:12 +0200
8769
8770    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
8771
8772 src/common/tuklib_mbstr_fw.c | 2 +-
8773 src/xz/list.c                | 4 ++--
8774 2 files changed, 3 insertions(+), 3 deletions(-)
8775
8776commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339
8777Author: Lasse Collin <lasse.collin@tukaani.org>
8778Date:   2023-01-12 05:38:48 +0200
8779
8780    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
8781
8782    It doesn't warn on a 64-bit system because truncating
8783    a ptrdiff_t (signed long) to uint32_t is diagnosed under
8784    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
8785
8786 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
8787 1 file changed, 4 insertions(+), 3 deletions(-)
8788
8789commit 37fbdfb7263522c11c7ad2685413d6295532581d
8790Author: Lasse Collin <lasse.collin@tukaani.org>
8791Date:   2023-01-12 04:46:45 +0200
8792
8793    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
8794
8795 src/common/mythread.h | 4 ++--
8796 1 file changed, 2 insertions(+), 2 deletions(-)
8797
8798commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008
8799Author: Lasse Collin <lasse.collin@tukaani.org>
8800Date:   2023-01-12 04:17:24 +0200
8801
8802    Build: Make configure add more warning flags for GCC and Clang.
8803
8804    -Wstrict-aliasing was removed from the list since it is enabled
8805    by -Wall already.
8806
8807    A normal build is clean with these on GNU/Linux x86-64 with
8808    GCC 12.2.0 and Clang 14.0.6.
8809
8810 configure.ac | 36 +++++++++++++++++++++++++++++++-----
8811 1 file changed, 31 insertions(+), 5 deletions(-)
8812
8813commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c
8814Author: Lasse Collin <lasse.collin@tukaani.org>
8815Date:   2023-01-12 04:14:18 +0200
8816
8817    Tests: Fix warnings from clang --Wassign-enum.
8818
8819    Explicitly casting the integer to lzma_check silences the warning.
8820    Since such an invalid value is needed in multiple tests, a constant
8821    INVALID_LZMA_CHECK_ID was added to tests.h.
8822
8823    The use of 0x1000 for lzma_block.check wasn't optimal as if
8824    the underlying type is a char then 0x1000 will be truncated to 0.
8825    However, in these test cases the value is ignored, thus even with
8826    such truncation the test would have passed.
8827
8828 tests/test_block_header.c | 6 +++---
8829 tests/test_check.c        | 2 +-
8830 tests/test_stream_flags.c | 8 ++++----
8831 tests/tests.h             | 9 +++++++++
8832 4 files changed, 17 insertions(+), 8 deletions(-)
8833
8834commit 49245bb31e215ad455a1ab85e4ed6783152dc522
8835Author: Lasse Collin <lasse.collin@tukaani.org>
8836Date:   2023-01-12 03:51:07 +0200
8837
8838    Tests: Silence warnings from -Wsign-conversion.
8839
8840    Note that assigning an unsigned int to lzma_check doesn't warn
8841    on GNU/Linux x86-64 since the enum type is unsigned on that
8842    platform. The enum can be signed on some other platform though
8843    so it's best to use enumeration type lzma_check in these situations.
8844
8845 tests/test_check.c        |  6 +++---
8846 tests/test_stream_flags.c | 10 +++++-----
8847 2 files changed, 8 insertions(+), 8 deletions(-)
8848
8849commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571
8850Author: Lasse Collin <lasse.collin@tukaani.org>
8851Date:   2023-01-12 03:19:59 +0200
8852
8853    liblzma: Silence warnings from clang -Wconditional-uninitialized.
8854
8855    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
8856    The actual initialization of the variables is done inside
8857    mythread_sync() macro. Clang doesn't seem to see that
8858    the initialization code inside the macro is always executed.
8859
8860 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
8861 src/liblzma/common/stream_encoder_mt.c | 2 +-
8862 2 files changed, 6 insertions(+), 4 deletions(-)
8863
8864commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6
8865Author: Lasse Collin <lasse.collin@tukaani.org>
8866Date:   2023-01-12 03:11:40 +0200
8867
8868    Fix warnings from clang -Wdocumentation.
8869
8870 src/liblzma/check/check.h      | 4 ----
8871 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
8872 src/xz/options.c               | 4 ++--
8873 3 files changed, 4 insertions(+), 8 deletions(-)
8874
8875commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba
8876Author: Lasse Collin <lasse.collin@tukaani.org>
8877Date:   2023-01-12 03:04:28 +0200
8878
8879    Tests: test_lzip_decoder: Remove trailing white-space.
8880
8881 tests/test_lzip_decoder.c | 4 ++--
8882 1 file changed, 2 insertions(+), 2 deletions(-)
8883
8884commit c0f8d6782f29e219fd496dd23f6a033270509d5c
8885Author: Lasse Collin <lasse.collin@tukaani.org>
8886Date:   2023-01-12 03:03:55 +0200
8887
8888    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
8889
8890 tests/test_lzip_decoder.c | 13 +++++++------
8891 1 file changed, 7 insertions(+), 6 deletions(-)
8892
8893commit 62efd48a825e8f439e84c85e165d8774ddc68fd2
8894Author: Jia Tan <jiat0218@gmail.com>
8895Date:   2023-01-11 23:58:16 +0800
8896
8897    Add NEWS for 5.4.1.
8898
8899 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8900 1 file changed, 70 insertions(+)
8901
8902commit d1561c47ec8cd3844a785d3741dc932f9b9c5790
8903Author: Jia Tan <jiat0218@gmail.com>
8904Date:   2023-01-11 22:46:48 +0800
8905
8906    xz: Fix warning -Wformat-nonliteral on clang in message.c.
8907
8908    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
8909    allow a non-literal format string as long as the function takes its
8910    format arguments as a va_list.
8911
8912 src/xz/message.c | 9 +++++++++
8913 1 file changed, 9 insertions(+)
8914
8915commit 8c0f115cc489331c48df77beca92fe378039d919
8916Author: Jia Tan <jiat0218@gmail.com>
8917Date:   2023-01-11 20:58:31 +0800
8918
8919    Tests: Fix test_filter_flags copy/paste error.
8920
8921 tests/test_filter_flags.c | 4 ++--
8922 1 file changed, 2 insertions(+), 2 deletions(-)
8923
8924commit 25035813d1d596fde692addc33e7f715f1fe55eb
8925Author: Jia Tan <jiat0218@gmail.com>
8926Date:   2023-01-11 20:42:29 +0800
8927
8928    Tests: Fix type-limits warning in test_filter_flags.
8929
8930    This only occurs in test_filter_flags when the BCJ filters are not
8931    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
8932    type-limits warning with the loop variable since an unsigned number will
8933    always be >= 0.
8934
8935 tests/test_filter_flags.c | 13 ++++++++++---
8936 1 file changed, 10 insertions(+), 3 deletions(-)
8937
8938commit 0b8fa310cf56fec55663f62340e49e8e1441594f
8939Author: Lasse Collin <lasse.collin@tukaani.org>
8940Date:   2023-01-10 22:14:03 +0200
8941
8942    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
8943
8944    This affects only 32-bit x86 builds. x86-64 is OK as is.
8945
8946    I still cannot easily test this myself. The reporter has tested
8947    this and it passes the tests included in the CMake build and
8948    performance is good: raw CRC64 is 2-3 times faster than the
8949    C version of the slice-by-four method. (Note that liblzma doesn't
8950    include a MSVC-compatible version of the 32-bit x86 assembly code
8951    for the slice-by-four method.)
8952
8953    Thanks to Iouri Kharon for figuring out a fix, testing, and
8954    benchmarking.
8955
8956 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
8957 1 file changed, 18 insertions(+)
8958
8959commit 765354b50c2886fc0d294d6be3b207f7ae2ada70
8960Author: Jia Tan <jiat0218@gmail.com>
8961Date:   2023-01-11 01:18:50 +0800
8962
8963    Tests: Fix unused function warning in test_block_header.
8964
8965    One of the global arrays of filters was only used in a test that
8966    required both encoders and decoders to be configured in the build.
8967
8968 tests/test_block_header.c | 4 ++++
8969 1 file changed, 4 insertions(+)
8970
8971commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa
8972Author: Jia Tan <jiat0218@gmail.com>
8973Date:   2023-01-11 01:08:03 +0800
8974
8975    Tests: Fix unused function warning in test_index_hash.
8976
8977    test_index_hash does not use fill_index_hash() unless both encoders
8978    and decoders are configured in the build.
8979
8980 tests/test_index_hash.c | 4 +---
8981 1 file changed, 1 insertion(+), 3 deletions(-)
8982
8983commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6
8984Author: Jia Tan <jiat0218@gmail.com>
8985Date:   2023-01-11 00:54:45 +0800
8986
8987    CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner.
8988
8989    If all goes well, Mac autotools and Linux and Mac CMake will be added
8990    later for 32-bit builds.
8991
8992 .github/workflows/ci.yml | 7 ++++++-
8993 1 file changed, 6 insertions(+), 1 deletion(-)
8994
8995commit 923eb689a4b863b6cca8df6360d4962aae994edf
8996Author: Jia Tan <jiat0218@gmail.com>
8997Date:   2023-01-11 00:51:01 +0800
8998
8999    CI/CD: Enables warnings as errors in autotool build.
9000
9001    This will help us catch warnings and potential bugs in builds that are
9002    not often tested by us.
9003
9004 build-aux/ci_build.sh | 2 +-
9005 1 file changed, 1 insertion(+), 1 deletion(-)
9006
9007commit feae5528a30c006b6e2f96a95116e20b983703fc
9008Author: Jia Tan <jiat0218@gmail.com>
9009Date:   2023-01-11 00:48:35 +0800
9010
9011    CI/CD: Add -f argument to set CFLAGS in ci_build.sh.
9012
9013    For now, the suggested option is for -m32 only, but this can be updated
9014    later if other flags are deemed useful.
9015
9016 build-aux/ci_build.sh | 8 ++++++--
9017 1 file changed, 6 insertions(+), 2 deletions(-)
9018
9019commit cfabb62a4874c146e7d6f30445637602545bc054
9020Author: Lasse Collin <lasse.collin@tukaani.org>
9021Date:   2023-01-10 12:47:16 +0200
9022
9023    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
9024
9025    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
9026
9027    It was reported that it wasn't a good enough fix and MSVC
9028    still produced (different kind of) bad code when building
9029    for 32-bit x86 if optimizations are enabled.
9030
9031    Thanks to Iouri Kharon.
9032
9033 src/liblzma/check/crc64_fast.c | 6 ------
9034 1 file changed, 6 deletions(-)
9035
9036commit 0b64215170dd3562f207ef26f794755bcd600526
9037Author: Lasse Collin <lasse.collin@tukaani.org>
9038Date:   2023-01-10 11:56:11 +0200
9039
9040    sysdefs.h: Don't include strings.h anymore.
9041
9042    On some platforms src/xz/suffix.c may need <strings.h> for
9043    strcasecmp() but suffix.c includes the header when it needs it.
9044
9045    Unless there is an old system that otherwise supports enough C99
9046    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
9047    there should be no need to include <strings.h> in sysdefs.h.
9048
9049 src/common/sysdefs.h | 6 ------
9050 1 file changed, 6 deletions(-)
9051
9052commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
9053Author: Lasse Collin <lasse.collin@tukaani.org>
9054Date:   2023-01-10 11:23:41 +0200
9055
9056    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
9057
9058    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
9059    Of these, strcasecmp() is used on some platforms in suffix.c.
9060    Nothing else in the project needs <strings.h> (at least if
9061    building on a modern system).
9062
9063    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
9064    defined and suffix.c relied on this.
9065
9066    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
9067    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
9068    is also in <string.h> in DJGPP.
9069
9070 src/xz/suffix.c | 3 +++
9071 1 file changed, 3 insertions(+)
9072
9073commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
9074Author: Lasse Collin <lasse.collin@tukaani.org>
9075Date:   2023-01-10 10:05:13 +0200
9076
9077    sysdefs.h: Fix a comment.
9078
9079 src/common/sysdefs.h | 2 +-
9080 1 file changed, 1 insertion(+), 1 deletion(-)
9081
9082commit 194a5fab69277d9e804a6113b5f676b8666b3a61
9083Author: Lasse Collin <lasse.collin@tukaani.org>
9084Date:   2023-01-10 10:04:06 +0200
9085
9086    sysdefs.h: Don't include memory.h anymore even if it were available.
9087
9088    It quite probably was never needed, that is, any system where memory.h
9089    was required likely couldn't compile XZ Utils for other reasons anyway.
9090
9091    XZ Utils 5.2.6 and later source packages were generated using
9092    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
9093    being removed is no longer used anyway.
9094
9095 src/common/sysdefs.h | 8 ++------
9096 1 file changed, 2 insertions(+), 6 deletions(-)
9097
9098commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0
9099Author: Lasse Collin <lasse.collin@tukaani.org>
9100Date:   2023-01-10 08:29:32 +0200
9101
9102    CMake: Fix appending to CMAKE_RC_FLAGS.
9103
9104    It's a string, not a list. It only worked when the variable was empty.
9105
9106    Thanks to Iouri Kharon.
9107
9108 CMakeLists.txt | 2 +-
9109 1 file changed, 1 insertion(+), 1 deletion(-)
9110
9111commit 6e652ceb18c615c578c869db300fa0756788b4e0
9112Author: Lasse Collin <lasse.collin@tukaani.org>
9113Date:   2023-01-10 00:33:14 +0200
9114
9115    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
9116
9117 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
9118 1 file changed, 12 insertions(+), 7 deletions(-)
9119
9120commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47
9121Author: Lasse Collin <lasse.collin@tukaani.org>
9122Date:   2023-01-09 23:41:25 +0200
9123
9124    CMake: Fix windres issues again.
9125
9126    At least on some systems, GNU windres needs --use-temp-file
9127    in addition to the \x20 hack to avoid spaces in the command line
9128    argument. Hovever, that \x20 syntax is broken with llvm-windres
9129    version 15.0.0 (results in "XZx20Utils") but luckily it works
9130    with a regular space. Thus it is best to limit the workarounds
9131    to GNU toolchain on Windows.
9132
9133 CMakeLists.txt | 35 +++++++++++++++++++++++------------
9134 1 file changed, 23 insertions(+), 12 deletions(-)
9135
9136commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935
9137Author: Lasse Collin <lasse.collin@tukaani.org>
9138Date:   2023-01-06 22:53:38 +0200
9139
9140    Tests: test_filter_flags: Clean up minor issues.
9141
9142    Here are the list of the most significant issues addressed:
9143    - Avoid using internal common.h header. It's not good to copy the
9144    constants like this but common.h cannot be included for use outside
9145    of liblzma. This is the quickest thing to do that could be fixed later.
9146
9147    - Omit the INIT_FILTER macro. Initialization should be done with just
9148    regular designated initializers.
9149
9150    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
9151    Flags encoder and decoder don't validate the options thoroughly.
9152    257 is valid only for the x86 filter. This is a bit silly but
9153    not a significant problem in practice because the encoder and
9154    decoder initialization functions will catch bad alignment still.
9155    Perhaps this should be fixed but it's not urgent and doesn't need
9156    to be in 5.4.x.
9157
9158    - Various tweaks to comments such as filter id -> Filter ID
9159
9160 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
9161 1 file changed, 78 insertions(+), 75 deletions(-)
9162
9163commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865
9164Author: Jia Tan <jiat0218@gmail.com>
9165Date:   2022-12-29 23:33:33 +0800
9166
9167    Tests: Refactors existing filter flags tests.
9168
9169    Converts the existing filter flags tests into tuktests.
9170
9171 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
9172 1 file changed, 457 insertions(+), 198 deletions(-)
9173
9174commit 36edc65ab4cf10a131f239acbd423b4510ba52d5
9175Author: Lasse Collin <lasse.collin@tukaani.org>
9176Date:   2023-01-09 12:22:05 +0200
9177
9178    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
9179
9180    I haven't tested with MSVC myself and there doesn't seem to be
9181    information about the problem online, so I'm relying on the bug report.
9182
9183    Thanks to Iouri Kharon for the bug report and the patch.
9184
9185 src/liblzma/check/crc64_fast.c | 6 ++++++
9186 1 file changed, 6 insertions(+)
9187
9188commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d
9189Author: Lasse Collin <lasse.collin@tukaani.org>
9190Date:   2023-01-09 11:27:24 +0200
9191
9192    CMake: Fix a copypaste error in xzdec Windows resource file handling.
9193
9194    It was my mistake. Thanks to Iouri Kharon for the bug report.
9195
9196 CMakeLists.txt | 4 ++--
9197 1 file changed, 2 insertions(+), 2 deletions(-)
9198
9199commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848
9200Author: Lasse Collin <lasse.collin@tukaani.org>
9201Date:   2023-01-08 00:32:29 +0200
9202
9203    Tests: tuktest.h: Support tuktest_malloc(0).
9204
9205    It's not needed in XZ Utils at least for now. It's good to support
9206    it still because if such use is needed later, it wouldn't be
9207    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
9208
9209 tests/tuktest.h | 4 ++--
9210 1 file changed, 2 insertions(+), 2 deletions(-)
9211
9212commit 69d5d78c6904668eb09a131da86276beec3281f8
9213Author: Lasse Collin <lasse.collin@tukaani.org>
9214Date:   2023-01-08 00:24:23 +0200
9215
9216    Update THANKS.
9217
9218 THANKS | 1 +
9219 1 file changed, 1 insertion(+)
9220
9221commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
9222Author: Lasse Collin <lasse.collin@tukaani.org>
9223Date:   2023-01-07 21:57:11 +0200
9224
9225    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
9226
9227    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
9228    shouldn't affect this project.
9229
9230 CMakeLists.txt | 2 +-
9231 1 file changed, 1 insertion(+), 1 deletion(-)
9232
9233commit a890a637bee9193d5b690aefa9a59eba5b8532ae
9234Author: Lasse Collin <lasse.collin@tukaani.org>
9235Date:   2023-01-07 19:50:35 +0200
9236
9237    Update THANKS.
9238
9239 THANKS | 1 +
9240 1 file changed, 1 insertion(+)
9241
9242commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
9243Author: Lasse Collin <lasse.collin@tukaani.org>
9244Date:   2023-01-07 19:50:03 +0200
9245
9246    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
9247
9248    The command line tools cannot be built with MSVC for now but
9249    they can be built with MinGW-w64.
9250
9251    Thanks to Iouri Kharon for the bug report and the original patch.
9252
9253 CMakeLists.txt | 16 ++++++++++++++++
9254 1 file changed, 16 insertions(+)
9255
9256commit 443dfebced041adc88f10d824188eeef5b5821a9
9257Author: Lasse Collin <lasse.collin@tukaani.org>
9258Date:   2023-01-07 19:48:52 +0200
9259
9260    CMake/Windows: Add a workaround for windres from GNU binutils.
9261
9262    Thanks to Iouri Kharon for the bug report and the original patch.
9263
9264 CMakeLists.txt | 21 ++++++++++++++++++++-
9265 1 file changed, 20 insertions(+), 1 deletion(-)
9266
9267commit ceb805011747d04a915f3f39e4bed9eed151c634
9268Author: Lasse Collin <lasse.collin@tukaani.org>
9269Date:   2023-01-07 19:31:15 +0200
9270
9271    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
9272
9273    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
9274    disabled with VS2013.
9275
9276    Thanks to Iouri Kharon for the bug report.
9277
9278 CMakeLists.txt | 3 ++-
9279 configure.ac   | 8 ++++++--
9280 2 files changed, 8 insertions(+), 3 deletions(-)
9281
9282commit 8d372bd94066b1a5b0570b2550f83c2868486adf
9283Author: Jia Tan <jiat0218@gmail.com>
9284Date:   2023-01-07 21:05:15 +0800
9285
9286    CI/CD: Split CMake Linux and MacOS build phase to build and test.
9287
9288    The phase split was only done for Autotools before, so should also
9289    apply to CMake.
9290
9291 .github/workflows/ci.yml | 8 ++++++--
9292 1 file changed, 6 insertions(+), 2 deletions(-)
9293
9294commit 747c7f2b34bd498f6702c6875500a26b06201772
9295Author: Jia Tan <jiat0218@gmail.com>
9296Date:   2023-01-07 11:16:55 +0800
9297
9298    CI/CD: Reduce job runners to 4 instead of using matrix strategy.
9299
9300    The old version used too many runners that resulted in unnecessary
9301    dependency downloads. Now, the runners are reused for the different
9302    configurations for each OS and build system.
9303
9304 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------
9305 1 file changed, 83 insertions(+), 12 deletions(-)
9306
9307commit 4de35fd6b58d46fc887c78faf163f6a37b790c45
9308Author: Jia Tan <jiat0218@gmail.com>
9309Date:   2023-01-07 10:07:20 +0800
9310
9311    CI/CD: Add new -p (PHASE) argument to ci_build.sh
9312
9313    The new PHASE argument can be build, test, or all. all is the default.
9314    This way, the CI/CD script can differentiate between the build and test
9315    phases to make it easier to track down errors when they happen.
9316
9317 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++-----------------------
9318 1 file changed, 76 insertions(+), 64 deletions(-)
9319
9320commit 6fd39664de47801e670a16617863196bfbde4755
9321Merge: 78e0561d fc0c7884
9322Author: Jia Tan <jiat0218@gmail.com>
9323Date:   2023-01-07 00:10:50 +0800
9324
9325    Merge pull request #7 from tukaani-project/tuktest_index_hash
9326
9327    Tuktest index hash
9328
9329commit fc0c788469159f634f09ff23c8cef6925c91da57
9330Author: Lasse Collin <lasse.collin@tukaani.org>
9331Date:   2023-01-06 17:58:48 +0200
9332
9333    Tests: test_index_hash: Add an assert_uint_eq().
9334
9335 tests/test_index_hash.c | 3 +++
9336 1 file changed, 3 insertions(+)
9337
9338commit d550304f5343b3a082da265107cd820e0d81dc71
9339Author: Lasse Collin <lasse.collin@tukaani.org>
9340Date:   2023-01-06 17:55:06 +0200
9341
9342    Tests: test_index_hash: Fix a memory leak.
9343
9344 tests/test_index_hash.c | 2 ++
9345 1 file changed, 2 insertions(+)
9346
9347commit 02608f74ea1f2d2d56585711ff241c34b4ad0937
9348Author: Lasse Collin <lasse.collin@tukaani.org>
9349Date:   2023-01-06 17:53:03 +0200
9350
9351    Tests: test_index_hash: Don't treat pointers as booleans.
9352
9353 tests/test_index_hash.c | 6 +++---
9354 1 file changed, 3 insertions(+), 3 deletions(-)
9355
9356commit 056766c8601a3808bea1761f6cc833197a35a3e0
9357Author: Lasse Collin <lasse.collin@tukaani.org>
9358Date:   2023-01-06 17:51:41 +0200
9359
9360    Tests: test_index_hash: Fix a typo in a comment.
9361
9362 tests/test_index_hash.c | 2 +-
9363 1 file changed, 1 insertion(+), 1 deletion(-)
9364
9365commit 873e684028ba9738f071c5236db7d452ed797b4c
9366Author: Lasse Collin <lasse.collin@tukaani.org>
9367Date:   2023-01-06 17:44:29 +0200
9368
9369    Tests: test_index_hash: Avoid the variable name "index".
9370
9371    It can trigger warnings from -Wshadow on some systems.
9372
9373 tests/test_index_hash.c | 16 ++++++++--------
9374 1 file changed, 8 insertions(+), 8 deletions(-)
9375
9376commit d1f24c35874eeba8432d75aa77b06c50375ed937
9377Author: Lasse Collin <lasse.collin@tukaani.org>
9378Date:   2023-01-06 17:35:50 +0200
9379
9380    Tests: test_index_hash: Use the word "Record" instead of "entry".
9381
9382 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------
9383 1 file changed, 51 insertions(+), 51 deletions(-)
9384
9385commit b93f7c5cbb02b42024ac866fc0af541de3d816e2
9386Author: Lasse Collin <lasse.collin@tukaani.org>
9387Date:   2023-01-06 17:35:05 +0200
9388
9389    Tests: test_index_hash: Tweak comments and style.
9390
9391    The words defined in the .xz file format specification
9392    begin with capital letter to emphasize that they have
9393    a specific meaning.
9394
9395 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++-----------------------
9396 1 file changed, 33 insertions(+), 29 deletions(-)
9397
9398commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036
9399Author: Lasse Collin <lasse.collin@tukaani.org>
9400Date:   2023-01-06 17:17:37 +0200
9401
9402    Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.
9403
9404 tests/test_index_hash.c | 2 +-
9405 1 file changed, 1 insertion(+), 1 deletion(-)
9406
9407commit 78e0561dfebaa9d5e34558de537efcda890e0629
9408Author: Jia Tan <jiat0218@gmail.com>
9409Date:   2023-01-06 20:43:31 +0800
9410
9411    Style: Change #if !defined() to #ifndef in mythread.h.
9412
9413 src/common/mythread.h | 2 +-
9414 1 file changed, 1 insertion(+), 1 deletion(-)
9415
9416commit e834e1e934ed0af673598d8c0c34afb2af56bee0
9417Author: Jia Tan <jiat0218@gmail.com>
9418Date:   2023-01-06 20:35:55 +0800
9419
9420    Build: Add missing stream_decoder_mt.c to .vcxproj files.
9421
9422    The line in the .vcxproj files for building with was missing in 5.4.0.
9423    Thank to Hajin Jang for reporting the issue.
9424
9425 windows/vs2013/liblzma.vcxproj     | 1 +
9426 windows/vs2013/liblzma_dll.vcxproj | 1 +
9427 windows/vs2017/liblzma.vcxproj     | 1 +
9428 windows/vs2017/liblzma_dll.vcxproj | 1 +
9429 windows/vs2019/liblzma.vcxproj     | 1 +
9430 windows/vs2019/liblzma_dll.vcxproj | 1 +
9431 6 files changed, 6 insertions(+)
9432
9433commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111
9434Author: Jia Tan <jiat0218@gmail.com>
9435Date:   2023-01-05 20:57:25 +0800
9436
9437    liblzma: Remove common.h include from common/index.h.
9438
9439    common/index.h is needed by liblzma internally and tests. common.h will
9440    include and define many things that are not needed by the tests. Also,
9441    this prevents include order problems because common.h will redefine
9442    LZMA_API resulting in a warning.
9443
9444 src/liblzma/common/index.c                 | 1 +
9445 src/liblzma/common/index.h                 | 9 +++++++--
9446 src/liblzma/common/index_decoder.h         | 1 +
9447 src/liblzma/common/stream_buffer_encoder.c | 1 +
9448 4 files changed, 10 insertions(+), 2 deletions(-)
9449
9450commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f
9451Author: Lasse Collin <lasse.collin@tukaani.org>
9452Date:   2023-01-04 22:40:54 +0200
9453
9454    Update THANKS.
9455
9456 THANKS | 1 +
9457 1 file changed, 1 insertion(+)
9458
9459commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
9460Author: Lasse Collin <lasse.collin@tukaani.org>
9461Date:   2023-01-04 18:40:28 +0200
9462
9463    Tests: Adjust style in test_compress.sh.
9464
9465 tests/test_compress.sh | 12 +++++++-----
9466 1 file changed, 7 insertions(+), 5 deletions(-)
9467
9468commit 52380678f42364daa4510f92f6d3b18ec98c3638
9469Author: Jia Tan <jiat0218@gmail.com>
9470Date:   2023-01-04 23:58:58 +0800
9471
9472    Tests: Replace non portable shell parameter expansion
9473
9474    The shell parameter expansion using # and ## is not supported in
9475    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
9476    portable, so we should avoid it.
9477
9478 tests/create_compress_files.c          |  2 +-
9479 tests/test_compress.sh                 | 20 +++++++++++++-------
9480 tests/test_compress_prepared_bcj_sparc |  2 +-
9481 tests/test_compress_prepared_bcj_x86   |  2 +-
9482 4 files changed, 16 insertions(+), 10 deletions(-)
9483
9484commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b
9485Author: Jia Tan <jiat0218@gmail.com>
9486Date:   2023-01-03 21:02:38 +0800
9487
9488    Translations: Add Korean translation of man pages.
9489
9490    Thanks to Seong-ho Cho
9491
9492 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9493 po4a/po4a.conf |    2 +-
9494 2 files changed, 5553 insertions(+), 1 deletion(-)
9495
9496commit c4145978d95ebf1690c778d354e15f7c2823d7a8
9497Author: Jia Tan <jiat0218@gmail.com>
9498Date:   2023-01-03 20:47:27 +0800
9499
9500    Translations: Update the Esperanto translation.
9501
9502 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
9503 1 file changed, 332 insertions(+), 288 deletions(-)
9504
9505commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c
9506Author: Lasse Collin <lasse.collin@tukaani.org>
9507Date:   2023-01-02 17:20:47 +0200
9508
9509    Bump version and soname for 5.5.0alpha.
9510
9511    5.5.0alpha won't be released, it's just to mark that
9512    the branch is not for stable 5.4.x.
9513
9514    Once again there is no API/ABI stability for new features
9515    in devel versions. The major soname won't be bumped even
9516    if API/ABI of new features breaks between devel releases.
9517
9518 src/liblzma/Makefile.am        | 2 +-
9519 src/liblzma/api/lzma/version.h | 4 ++--
9520 2 files changed, 3 insertions(+), 3 deletions(-)
9521
9522commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a
9523Author: Lasse Collin <lasse.collin@tukaani.org>
9524Date:   2023-01-02 17:05:07 +0200
9525
9526    Build: Fix config.h comments.
9527
9528 configure.ac          | 2 +-
9529 m4/tuklib_progname.m4 | 2 +-
9530 2 files changed, 2 insertions(+), 2 deletions(-)
9531
9532commit bb740e3b117f1a3c65152d01e5755523a908ecb1
9533Author: Jia Tan <jiat0218@gmail.com>
9534Date:   2023-01-02 22:33:48 +0800
9535
9536    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
9537
9538    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
9539    HAVE_PROGRAM_INVOCATION_NAME. Previously,
9540    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
9541    building with autotools. CMake would only set this when it was 1, and the
9542    dos/config.h did not define it. The new macro definition is consistent
9543    across build systems.
9544
9545 cmake/tuklib_progname.cmake  | 5 ++---
9546 m4/tuklib_progname.m4        | 5 ++++-
9547 src/common/tuklib_progname.c | 2 +-
9548 src/common/tuklib_progname.h | 2 +-
9549 4 files changed, 8 insertions(+), 6 deletions(-)
9550
9551commit 064cd385a716abc78d93a3612411a82d69ceb221
9552Author: Jia Tan <jiat0218@gmail.com>
9553Date:   2022-12-29 00:30:52 +0800
9554
9555    Adds test_index_hash to .gitignore.
9556
9557 .gitignore | 1 +
9558 1 file changed, 1 insertion(+)
9559
9560commit 3959162baec074511d83ba0fec1284c3ed724799
9561Author: Jia Tan <jiat0218@gmail.com>
9562Date:   2022-12-29 00:25:18 +0800
9563
9564    Tests: Creates test_index_hash.c
9565
9566    Tests all API functions exported from index_hash.h. Does not have a
9567    dedicated test for lzma_index_hash_end.
9568
9569 CMakeLists.txt          |   2 +
9570 tests/Makefile.am       |   3 +
9571 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++
9572 3 files changed, 384 insertions(+)
9573
9574commit f16e12d5e755d371247202fcccbcccd1ec16b2cf
9575Author: Jia Tan <jiat0218@gmail.com>
9576Date:   2022-08-17 20:20:16 +0800
9577
9578    liblzma: Add NULL check to lzma_index_hash_append.
9579
9580    This is for consistency with lzma_index_append.
9581
9582 src/liblzma/common/index_hash.c | 2 +-
9583 1 file changed, 1 insertion(+), 1 deletion(-)
9584
9585commit 203b008eb220208981902e0db541c02d1c1c9f5e
9586Author: Jia Tan <jiat0218@gmail.com>
9587Date:   2022-08-17 17:59:51 +0800
9588
9589    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
9590
9591 src/liblzma/common/index.h             | 3 +++
9592 src/liblzma/common/index_decoder.c     | 2 +-
9593 src/liblzma/common/index_encoder.c     | 2 +-
9594 src/liblzma/common/index_hash.c        | 2 +-
9595 src/liblzma/common/stream_decoder.c    | 3 ++-
9596 src/liblzma/common/stream_decoder_mt.c | 2 +-
9597 6 files changed, 9 insertions(+), 5 deletions(-)
9598
9599commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0
9600Author: Lasse Collin <lasse.collin@tukaani.org>
9601Date:   2022-12-30 20:10:08 +0200
9602
9603    Tests: test_check: Test corner cases of CLMUL CRC64.
9604
9605 tests/test_check.c | 27 +++++++++++++++++++++++++++
9606 1 file changed, 27 insertions(+)
9607
9608commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7
9609Author: Lasse Collin <lasse.collin@tukaani.org>
9610Date:   2022-12-30 19:36:49 +0200
9611
9612    Tests: Clarify a comment in test_lzip_decoder.c.
9613
9614 tests/test_lzip_decoder.c | 8 ++++++--
9615 1 file changed, 6 insertions(+), 2 deletions(-)
9616
9617commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8
9618Author: Jia Tan <jiat0218@gmail.com>
9619Date:   2022-12-29 01:55:19 +0800
9620
9621    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
9622
9623    Previously, mytime.c depended on mythread.h for <time.h> to be included.
9624
9625 src/xz/mytime.c | 4 +++-
9626 1 file changed, 3 insertions(+), 1 deletion(-)
9627
9628commit f82294c8318a7a0990583d51ac5c7de682ad36ef
9629Author: Jia Tan <jiat0218@gmail.com>
9630Date:   2022-12-29 01:15:27 +0800
9631
9632    liblzma: Includes sys/time.h conditionally in mythread
9633
9634    Previously, <sys/time.h> was always included, even if mythread only used
9635    clock_gettime. <time.h> is still needed even if clock_gettime is not used
9636    though because struct timespec is needed for mythread_condtime.
9637
9638 src/common/mythread.h | 8 +++++++-
9639 1 file changed, 7 insertions(+), 1 deletion(-)
9640
9641commit 74dae7d30091e906d6a92a57952dea4354473f9b
9642Author: Jia Tan <jiat0218@gmail.com>
9643Date:   2022-12-29 01:10:53 +0800
9644
9645    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
9646
9647    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
9648    be set to 0 or 1. However, this macro was needed in xz so if xz was not
9649    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
9650    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
9651    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
9652    will only be set if it is 1.
9653
9654 CMakeLists.txt        | 8 +++-----
9655 configure.ac          | 5 ++++-
9656 src/common/mythread.h | 4 ++--
9657 src/xz/mytime.c       | 5 ++---
9658 4 files changed, 11 insertions(+), 11 deletions(-)
9659
9660commit 7339e39dc060df6eda74a2c5b69961befc3d5d24
9661Author: Jia Tan <jiat0218@gmail.com>
9662Date:   2022-12-28 01:14:07 +0800
9663
9664    Translations: Add Ukrainian translations of man pages.
9665
9666    Thanks to Yuri Chornoivan
9667
9668 po4a/po4a.conf |    2 +-
9669 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9670 2 files changed, 3677 insertions(+), 1 deletion(-)
9671
9672commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e
9673Author: Jia Tan <jiat0218@gmail.com>
9674Date:   2022-12-23 00:34:48 +0800
9675
9676    CI/CD: Create initial version of CI/CD workflow.
9677
9678    The CI/CD workflow will only execute on Ubuntu and MacOS latest version.
9679    The workflow will attempt to build with autotools and CMake and execute
9680    the tests. The workflow will run for all pull requests and pushes done
9681    to the master branch.
9682
9683 .github/workflows/ci.yml |  72 ++++++++++++++++++++++++
9684 build-aux/ci_build.sh    | 141 +++++++++++++++++++++++++++++++++++++++++++++++
9685 2 files changed, 213 insertions(+)
9686
9687commit 1275ebfba74230dbd028049141423c79c8b83b8f
9688Author: Jia Tan <jiat0218@gmail.com>
9689Date:   2022-12-22 23:14:53 +0800
9690
9691    liblzma: Update documentation for lzma_filter_encoder.
9692
9693 src/liblzma/common/filter_encoder.c | 7 +++++--
9694 1 file changed, 5 insertions(+), 2 deletions(-)
9695
9696commit 7c9ff5f1667a16733163b75dfd4b509662c387f4
9697Author: Jia Tan <jiat0218@gmail.com>
9698Date:   2022-12-21 21:12:03 +0800
9699
9700    Tests: Adds lzip decoder tests
9701
9702 .gitignore                |   1 +
9703 tests/Makefile.am         |   2 +
9704 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
9705 3 files changed, 474 insertions(+)
9706
9707commit 799ead162de63b8400733603d3abcd2e1977bdca
9708Author: Jia Cheong Tan <jiat0218@gmail.com>
9709Date:   2022-12-20 22:05:21 +0800
9710
9711    Doxygen: Update .gitignore for generating docs for in source build.
9712
9713    In source builds are not recommended, but we should still ignore
9714    the generated artifacts.
9715
9716 .gitignore | 2 ++
9717 1 file changed, 2 insertions(+)
9718
9719commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e
9720Author: Jia Tan <jiat0218@gmail.com>
9721Date:   2022-12-20 20:46:44 +0800
9722
9723    liblzma: Fix lzma_microlzma_encoder() return value.
9724
9725    Using return_if_error on lzma_lzma_lclppb_encode was improper because
9726    return_if_error is expecting an lzma_ret value, but
9727    lzma_lzma_lclppb_encode returns a boolean. This could result in
9728    lzma_microlzma_encoder, which would be misleading for applications.
9729
9730 src/liblzma/common/microlzma_encoder.c | 3 ++-
9731 1 file changed, 2 insertions(+), 1 deletion(-)
9732
9733commit 8ace358d65059152d9a1f43f4770170d29d35754
9734Author: Jia Tan <jiat0218@gmail.com>
9735Date:   2022-12-16 20:58:55 +0800
9736
9737    CMake: Update .gitignore for CMake artifacts from in source build.
9738
9739    In source builds are not recommended, but we can make it easier
9740    by ignoring the generated artifacts from CMake.
9741
9742 .gitignore | 23 +++++++++++++++++++++++
9743 1 file changed, 23 insertions(+)
9744
9745commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad
9746Author: Lasse Collin <lasse.collin@tukaani.org>
9747Date:   2022-12-16 18:30:02 +0200
9748
9749    liblzma: Update authors list in arm64.c.
9750
9751 src/liblzma/simple/arm64.c | 1 +
9752 1 file changed, 1 insertion(+)
9753
9754commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
9755Author: Lasse Collin <lasse.collin@tukaani.org>
9756Date:   2022-12-13 20:37:17 +0200
9757
9758    Bump version to 5.4.0 and soname to 5.4.0.
9759
9760 src/liblzma/Makefile.am         | 2 +-
9761 src/liblzma/api/lzma/version.h  | 6 +++---
9762 src/liblzma/liblzma_generic.map | 2 +-
9763 src/liblzma/liblzma_linux.map   | 2 +-
9764 4 files changed, 6 insertions(+), 6 deletions(-)
9765