xref: /freebsd/contrib/xz/ChangeLog (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1commit 9331ce4009ddc839f5191d234cc41b2d4797376d
2Author: Lasse Collin <lasse.collin@tukaani.org>
3Date:   2024-10-01 12:21:22 +0300
4
5    Bump version and soname for 5.6.3
6
7 src/liblzma/Makefile.am        | 2 +-
8 src/liblzma/api/lzma/version.h | 2 +-
9 2 files changed, 2 insertions(+), 2 deletions(-)
10
11commit f52857ffde768058db0e0e13f68a2660ca9f1330
12Author: Lasse Collin <lasse.collin@tukaani.org>
13Date:   2024-10-01 12:17:39 +0300
14
15    Add NEWS for 5.6.3
16
17 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 1 file changed, 125 insertions(+)
19
20commit b8f52990b5d47a50902bf33cd2305ce985457bac
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   2024-10-01 12:10:23 +0300
23
24    Update THANKS
25
26    (cherry picked from commit 1ebbe915d4e0d877154261b5f8103719a6722975)
27
28 THANKS | 2 ++
29 1 file changed, 2 insertions(+)
30
31commit 51f6f455873911894f155e6997bc23a9be8f42ba
32Author: Lasse Collin <lasse.collin@tukaani.org>
33Date:   2024-10-01 12:10:23 +0300
34
35    Tests/Windows: Add the application manifest to the test programs
36
37    This ensures that the test programs get executed the same way as
38    the binaries that are installed.
39
40    (cherry picked from commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0)
41
42 CMakeLists.txt        | 14 ++++++++++----
43 tests/Makefile.am     | 10 ++++++++++
44 tests/tests.cmake     | 33 ++++++++++++++++++++++++++++++++-
45 tests/tests_w32res.rc | 18 ++++++++++++++++++
46 4 files changed, 70 insertions(+), 5 deletions(-)
47
48commit bf518b9ba446327a062ddfe67e7e0a5baed2394f
49Author: Lasse Collin <lasse.collin@tukaani.org>
50Date:   2024-10-01 12:10:23 +0300
51
52    Windows: Embed an application manifest in the EXE files
53
54    IMPORTANT: This includes a security fix to command line tool
55               argument handling.
56
57    Some toolchains embed an application manifest by default to declare
58    UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11
59    to let the app access features newer than those of Vista.
60
61    We want all the above but also two more things:
62
63      - Declare that the app is long path aware to support paths longer
64        than 259 characters (this may also require a registry change).
65
66      - Force the code page to UTF-8. This allows the command line tools
67        to access files whose names contain characters that don't exist
68        in the current legacy code page (except unpaired surrogates).
69        The UTF-8 code page also fixes security issues in command line
70        argument handling which can be exploited with malicious filenames.
71        See the new file w32_application.manifest.comments.txt.
72
73    Thanks to Orange Tsai and splitline from DEVCORE Research Team
74    for discovering this issue.
75
76    Thanks to Vijay Sarvepalli for reporting the issue to me.
77
78    Thanks to Kelvin Lee for testing with MSVC and helping with
79    the required build system fixes.
80
81    (cherry picked from commit 46ee0061629fb075d61d83839e14dd193337af59)
82
83 CMakeLists.txt                                   |  18 +++
84 src/Makefile.am                                  |   4 +-
85 src/common/common_w32res.rc                      |   5 +
86 src/common/w32_application.manifest              |  28 ++++
87 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++
88 5 files changed, 232 insertions(+), 1 deletion(-)
89
90commit 5718ce932e6ad4262d5fffc9e2a7a838f963d7e5
91Author: Lasse Collin <lasse.collin@tukaani.org>
92Date:   2024-09-29 14:46:52 +0300
93
94    Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2
95
96    Now the information in the "Details" tab in the file properties
97    dialog matches the naming convention of Cygwin and MSYS2. This
98    is only a cosmetic change.
99
100    (cherry picked from commit dad153091552b52a41b95ec4981c6951f1cae487)
101
102 src/liblzma/liblzma_w32res.rc | 10 +++++++++-
103 1 file changed, 9 insertions(+), 1 deletion(-)
104
105commit e77c0ca61d12ebac433b7661840cb18d7031700a
106Author: Lasse Collin <lasse.collin@tukaani.org>
107Date:   2024-09-25 15:47:55 +0300
108
109    common_w32res.rc: White space edits
110
111    LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line
112    between them.
113
114    (cherry picked from commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904)
115
116 src/common/common_w32res.rc | 15 ++++++++-------
117 1 file changed, 8 insertions(+), 7 deletions(-)
118
119commit e0ba0f26d9f3f53cedc92fb13303924c39d00392
120Author: Lasse Collin <lasse.collin@tukaani.org>
121Date:   2024-09-28 20:09:50 +0300
122
123    CMake: Add the resource files to the Cygwin and MSYS2 builds
124
125    Autotools-based build has always done this so this is for consistency.
126
127    However, the CMake build won't create the DEF file when building
128    for Cygwin or MSYS2 because in that context it should be useless.
129    (If Cygwin or MSYS2 is used to host building of normal Windows
130    binaries then the DEF file is still created.)
131
132    (cherry picked from commit c3b9dad07d3fd9319f88386b7095019bcea45ce1)
133
134 CMakeLists.txt | 16 ++++++++++------
135 1 file changed, 10 insertions(+), 6 deletions(-)
136
137commit 69637d0c323c0d7d9619cff637c7ce97dabc4f02
138Author: Lasse Collin <lasse.collin@tukaani.org>
139Date:   2024-09-28 15:19:14 +0300
140
141    CMake: Fix Windows resource file dependencies
142
143    If common_w32res.rc is modified, the resource files need to be rebuilt.
144    In contrast, the liblzma*.map files truly are link dependencies.
145
146    (cherry picked from commit da4f275bd1c18b897e5c2dd0043546de3accce0a)
147
148 CMakeLists.txt | 17 +++++++++--------
149 1 file changed, 9 insertions(+), 8 deletions(-)
150
151commit af8533459c60d7bc5b55f2f516251af4572169e4
152Author: Lasse Collin <lasse.collin@tukaani.org>
153Date:   2024-09-29 01:20:03 +0300
154
155    CMake: Checking for CYGWIN covers MSYS2 too
156
157    On MSYS2, both CYGWIN and MSYS are set.
158
159    (cherry picked from commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47)
160
161 CMakeLists.txt | 2 +-
162 1 file changed, 1 insertion(+), 1 deletion(-)
163
164commit eca08e4c204db404911e513f95110dcb0fb919bd
165Author: Lasse Collin <lasse.collin@tukaani.org>
166Date:   2024-09-28 09:37:30 +0300
167
168    Translations: Add the SPDX license identifier to pt_BR.po
169
170    (cherry picked from commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521)
171
172 po/pt_BR.po | 2 ++
173 1 file changed, 2 insertions(+)
174
175commit 85801c96c32456300177fbbad1506b07f5dd0a47
176Author: Lasse Collin <lasse.collin@tukaani.org>
177Date:   2024-09-25 16:41:37 +0300
178
179    Windows/CMake: Use the correct resource file for lzmadec.exe
180
181    CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec.
182
183    Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe
184    (cherry picked from commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb)
185
186 CMakeLists.txt | 2 +-
187 1 file changed, 1 insertion(+), 1 deletion(-)
188
189commit a341d19c835a8c10fcf561b00b548c53af43381e
190Author: Lasse Collin <lasse.collin@tukaani.org>
191Date:   2024-09-25 21:29:59 +0300
192
193    Translations: Update the Brazilian Portuguese translation
194
195    (cherry picked from commit b834ae5f80911a3819d6cdb484f61b257174c544)
196
197 po/pt_BR.po | 144 ++++++++++++++++++++++--------------------------------------
198 1 file changed, 53 insertions(+), 91 deletions(-)
199
200commit e69c0b9b2e00ade984393ef9cabac57342072328
201Author: Lasse Collin <lasse.collin@tukaani.org>
202Date:   2024-09-17 01:21:15 +0300
203
204    Update THANKS
205
206    (cherry picked from commit eceb023d4c129fd63ee881a2d8696eaf52ad1532)
207
208 THANKS | 1 +
209 1 file changed, 1 insertion(+)
210
211commit aef9a25b3200457c16846b046222fb2c7967afe0
212Author: Tobias Stoeckmann <tobias@stoeckmann.org>
213Date:   2024-09-16 23:19:46 +0200
214
215    lzmainfo: Avoid integer overflow
216
217    The MB output can overflow with huge numbers. Most likely these are
218    invalid .lzma files anyway, but let's avoid garbage output.
219
220    lzmadec was adapted from LZMA Utils. The original code with this bug
221    was written in 2005, over 19 years ago.
222
223    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
224    Closes: https://github.com/tukaani-project/xz/pull/144
225    (cherry picked from commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f)
226
227 src/lzmainfo/lzmainfo.c | 5 ++---
228 1 file changed, 2 insertions(+), 3 deletions(-)
229
230commit 40a7f163f56aca6b3c8b83e9382f5e5cb4f8e93b
231Author: Tobias Stoeckmann <tobias@stoeckmann.org>
232Date:   2024-09-16 22:04:40 +0200
233
234    xzdec: Remove unused short option -M
235
236    "xzdec -M123" exited with exit status 1 without printing
237    any messages. The "M:" entry should have been removed when
238    the memory usage limiter support was removed from xzdec.
239
240    Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae
241    Closes: https://github.com/tukaani-project/xz/pull/143
242    [ Lasse: Commit message edits ]
243
244    (cherry picked from commit 78355aebb7fb654302e5e33692ba109909dacaff)
245
246 src/xzdec/xzdec.c | 2 +-
247 1 file changed, 1 insertion(+), 1 deletion(-)
248
249commit c98714a57058ac381365c2ff1e1d1cd63a5742c4
250Author: Lasse Collin <lasse.collin@tukaani.org>
251Date:   2024-09-10 13:54:47 +0300
252
253    Update THANKS
254
255    (cherry picked from commit e5758db7bd75587a2499e0771907521a4aa86908)
256
257 THANKS | 1 +
258 1 file changed, 1 insertion(+)
259
260commit 4ed449517817b3659b35d19f39703e3c460f46c2
261Author: Firas Khalil Khana <firasuke@gmail.com>
262Date:   2024-09-10 12:30:32 +0300
263
264    Build: Fix a typo in autogen.sh
265
266    Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310
267    Closes: https://github.com/tukaani-project/xz/pull/141
268    (cherry picked from commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c)
269
270 autogen.sh | 2 +-
271 1 file changed, 1 insertion(+), 1 deletion(-)
272
273commit 3b83577a1547e72cb78a905ad3d308a799ded485
274Author: Lasse Collin <lasse.collin@tukaani.org>
275Date:   2024-09-02 20:08:40 +0300
276
277    Translations: Update Chinese (simplified) translation
278
279    Differences to the zh_CN.po file from the Translation Project:
280
281      - Two uses of \v were fixed.
282
283      - Missing "OPTS" translation in --riscv[=OPTS] was copied from
284        previous lines.
285
286      - "make update-po" was run to remove line numbers from comments.
287
288    (cherry picked from commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2)
289
290 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------
291 1 file changed, 40 insertions(+), 62 deletions(-)
292
293commit 06f4c7edda0387eb6a2d6303804b59dcf4d3db1f
294Author: Lasse Collin <lasse.collin@tukaani.org>
295Date:   2024-09-02 19:40:50 +0300
296
297    Translations: Update the Catalan translation
298
299    Differences to the ca.po file from the Translation Project:
300
301      - An overlong line translating --filters-help was wrapped.
302
303      - "make update-po" was used to remove line numbers from the comments
304        to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637
305        and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP
306        is older than these commits.
307
308    (cherry picked from commit 2230692aa1bcebb586100183831e3daf1714d60a)
309
310 po/ca.po | 171 ++++++++++++++++++++++++++-------------------------------------
311 1 file changed, 69 insertions(+), 102 deletions(-)
312
313commit 406cb5b669e47c0e45c98f1afb7be998084a93d0
314Author: Lasse Collin <lasse.collin@tukaani.org>
315Date:   2024-08-22 11:01:07 +0300
316
317    Update THANKS
318
319    (cherry picked from commit 5e375987509fab484b7bef0b90be92f241c58c91)
320
321 THANKS | 1 +
322 1 file changed, 1 insertion(+)
323
324commit 3a4a05d75eb41ddc41899324df0511670ceaaf1e
325Author: Yifeng Li <tomli@tomli.me>
326Date:   2024-08-22 02:18:49 +0000
327
328    liblzma: Fix x86-64 movzw compatibility in range_decoder.h
329
330    Support for instruction "movzw" without suffix in "GNU as" was
331    added in commit [1] and stabilized in binutils 2.27, released
332    in August 2016. Earlier systems don't accept this instruction
333    without a suffix, making range_decoder.h's inline assembly
334    unable to build on old systems such as Ubuntu 16.04, creating
335    error messages like:
336
337        lzma_decoder.c: Assembler messages:
338        lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi'
339        lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi'
340        lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx'
341        lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi'
342
343    Change "movzw" to "movzwl" for compatibility.
344
345    [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2
346
347    Suggested-by: Lasse Collin <lasse.collin@tukaani.org>
348    Tested-by: Yifeng Li <tomli@tomli.me>
349    Signed-off-by: Yifeng Li <tomli@tomli.me>
350    Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158
351    Fixes: https://github.com/tukaani-project/xz/issues/121
352    Closes: https://github.com/tukaani-project/xz/pull/136
353    (cherry picked from commit 6cd7c8607843c337edfe2c472aa316602a393754)
354
355 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------
356 1 file changed, 12 insertions(+), 12 deletions(-)
357
358commit 4669f06d1a8d31de4b8b5861b5e8afd82cacd721
359Author: Lasse Collin <lasse.collin@tukaani.org>
360Date:   2024-07-19 20:02:43 +0300
361
362    Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6
363
364    (cherry picked from commit bf901dee5d4c46609645e50311c0cb2dfdcf9738)
365
366 CMakeLists.txt |  2 +-
367 configure.ac   | 17 +++++++++++------
368 2 files changed, 12 insertions(+), 7 deletions(-)
369
370commit 9edddda5636d7b3504a033c31e8ea763e293fd35
371Author: Lasse Collin <lasse.collin@tukaani.org>
372Date:   2024-07-13 22:10:37 +0300
373
374    liblzma: Tweak a comment
375
376    (cherry picked from commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede)
377
378 src/liblzma/simple/arm64.c | 4 ++--
379 1 file changed, 2 insertions(+), 2 deletions(-)
380
381commit 1a93ab55d1563f5eb9b2c1b8240384046fe4bb97
382Author: Lasse Collin <lasse.collin@tukaani.org>
383Date:   2024-07-11 22:17:56 +0300
384
385    CMake: Bump maximum policy version to 3.30
386
387 CMakeLists.txt | 2 +-
388 1 file changed, 1 insertion(+), 1 deletion(-)
389
390commit cfe4465742ad2963fb0d9795e258615d7c1cf32d
391Author: Lasse Collin <lasse.collin@tukaani.org>
392Date:   2024-07-09 14:27:51 +0300
393
394    Update THANKS
395
396    (cherry picked from commit 028185dd4889e3d6235ff13560160ebca6985021)
397
398 THANKS | 1 +
399 1 file changed, 1 insertion(+)
400
401commit 0f47db18d04434203b350bde4909a5e468f197cc
402Author: Lasse Collin <lasse.collin@tukaani.org>
403Date:   2024-07-06 14:04:48 +0300
404
405    xz: Remove the TODO comment about --recursive
406
407    It won't be implemented. find + xargs is more flexible, for example,
408    it allows compressing small files in parallel. An example for that
409    has been included in the xz man page since 2010.
410
411    (cherry picked from commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747)
412
413 src/xz/args.c | 1 -
414 1 file changed, 1 deletion(-)
415
416commit 07f52c3528e43c4a925a3fc59a933c89f5604d92
417Author: Lasse Collin <lasse.collin@tukaani.org>
418Date:   2024-07-03 20:45:48 +0300
419
420    CMake: Link xz against Threads::Threads if using pthreads
421
422    The liblzma target was recently changed to link against Threads::Threads
423    with the PRIVATE keyword. I had forgotten that xz itself depends on
424    pthreads too due to pthread_sigmask(). Thus, the build broke when
425    building shared liblzma and pthread_sigmask() wasn't in libc.
426
427    Thanks to Peter Seiderer for the bug report.
428
429    Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
430    Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994
431    (cherry picked from commit b3e53122f42796aaebd767bab920cf7bedf69966)
432
433 CMakeLists.txt | 13 +++++++++++++
434 1 file changed, 13 insertions(+)
435
436commit eccb4d258b01651d06a2a31b8b68be9b04b7998c
437Author: Lasse Collin <lasse.collin@tukaani.org>
438Date:   2024-07-02 22:49:33 +0300
439
440    Update THANKS
441
442    (cherry picked from commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374)
443
444 THANKS | 1 +
445 1 file changed, 1 insertion(+)
446
447commit c9bd00327f064778babb014302718a18d65cf7d3
448Author: Sam James <sam@gentoo.org>
449Date:   2024-06-28 14:18:35 +0300
450
451    CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...
452
453    This addresses the issue I mentioned in
454    6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind
455    job a bit, because non-xz tools aren't run unnecessarily with
456    Valgrind by the script tests.
457
458    (cherry picked from commit 7e99856f66c07852c4e0de7aa01951e9147d86b0)
459
460 .github/workflows/ci.yml | 2 +-
461 1 file changed, 1 insertion(+), 1 deletion(-)
462
463commit 495de6ec9d7834c4ef4d5286844ef7b784eb951b
464Author: Lasse Collin <lasse.collin@tukaani.org>
465Date:   2024-06-25 16:00:22 +0300
466
467    Build: Prepend, not append, PTHREAD_CFLAGS to LIBS
468
469    It shouldn't make any difference because LIBS should be empty
470    at that point in configure. But prepending is the correct way
471    because in general the libraries being added might require other
472    libraries that come later on the command line.
473
474    (cherry picked from commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098)
475
476 configure.ac | 2 +-
477 1 file changed, 1 insertion(+), 1 deletion(-)
478
479commit 55bf3f49a812e20a21e42323e39526bb31d9341a
480Author: Lasse Collin <lasse.collin@tukaani.org>
481Date:   2024-06-25 14:24:29 +0300
482
483    Build: Use AC_LINK_IFELSE to handle implicit function declarations
484
485    It's more robust in case the compiler allows pre-C99 implicit function
486    declarations. If an x86 intrinsic is missing and gets treated as
487    implicit function, the linking step will very probably fail. This
488    isn't the only way to workaround implicit function declarations but
489    it might be the simplest and cleanest.
490
491    The problem hasn't been observed in the wild.
492
493    There are a couple more AC_COMPILE_IFELSE uses in configure.ac.
494    Of these, Landlock check calls prctl() and in theory could have
495    the same problem. In practice it doesn't as the check program
496    looks for several other things too. However, it was changed to
497    AC_LINK_IFELSE still to look more correct.
498
499    Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were
500    updated although they haven't given any trouble either. They
501    have worked all these years because those check programs rely
502    on specific headers and types: if headers or types are missing,
503    compilation will fail. Using the linker makes these checks more
504    similar to the ones in cmake/tuklib_*.cmake which always link.
505
506    (cherry picked from commit 7bb46f2b7b3989c1b589a247a251470f65e91cda)
507
508 configure.ac          |  8 ++++++--
509 m4/tuklib_cpucores.m4 |  8 ++++----
510 m4/tuklib_physmem.m4  | 17 +++++++++++------
511 3 files changed, 21 insertions(+), 12 deletions(-)
512
513commit b45270d88f0de1b2e8bf510f0e370a5db4067e1f
514Author: Lasse Collin <lasse.collin@tukaani.org>
515Date:   2024-06-24 23:35:59 +0300
516
517    Build: Use AC_LINK_IFELSE instead of -Werror
518
519    AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely
520    warn about the unsupported attribute and implicit function declaration.
521    Changing to AC_LINK_IFELSE handles the implicit declaration because
522    the symbol __crc32d is unlikely to exist in libc.
523
524    Note that the other part of the check is that #include <arm_acle.h>
525    must work. If the header is missing, most compilers give an error
526    and the linking step won't be attempted.
527
528    Avoiding -Werror makes the check more robust in case CFLAGS contains
529    warning flags that break -Werror anyway (but this isn't the only check
530    in configure.ac that has this problem). Using AC_LINK_IFELSE also makes
531    the check more similar to how it is done in CMakeLists.txt.
532
533    (cherry picked from commit 35eb57355ad1c415a838d26192d5af84abb7cf39)
534
535 configure.ac | 12 +-----------
536 1 file changed, 1 insertion(+), 11 deletions(-)
537
538commit 2c3e4cbbdcefe214ef3033a725049034b73e9756
539Author: Lasse Collin <lasse.collin@tukaani.org>
540Date:   2024-06-24 23:34:34 +0300
541
542    Build: Sync the compile check changes from CMakeLists.txt
543
544    It's nice to keep these in sync. The use of main() will later allow
545    AC_LINK_IFELSE usage too which may avoid the more fragile -Werror.
546
547    (cherry picked from commit 5a728813c378cc3c4c9c95793762452418d08f1b)
548
549 configure.ac | 15 ++++++++-------
550 1 file changed, 8 insertions(+), 7 deletions(-)
551
552commit 809e69f1f574dad3c9b00d4f01b9ef1a492319f3
553Author: Lasse Collin <lasse.collin@tukaani.org>
554Date:   2024-06-25 16:11:13 +0300
555
556    CMake: Use configure_file() to copy a file
557
558    I had missed this simpler method before. It does create a dependency
559    so that if .in.h changes the copying is done again.
560
561    (cherry picked from commit de215a0517645d16343f3a5336d3df884a4f665f)
562
563 CMakeLists.txt | 17 +++++++----------
564 1 file changed, 7 insertions(+), 10 deletions(-)
565
566commit 52a8c87f37f4bd133f670722d2d4b73a74e352bc
567Author: Lasse Collin <lasse.collin@tukaani.org>
568Date:   2024-06-25 15:51:48 +0300
569
570    CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES
571
572    It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES
573    only if CLOCK_MONOTONIC is available. Alternative would be to remove
574    the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for
575    pthread_condattr_setclock() but keeping the libs should be fine too.
576    Then it's ready in case more pthread functions were wanted some day.
577
578    (cherry picked from commit e620f35097c0ad20cd76d8258750aa706758ced9)
579
580 CMakeLists.txt | 6 ++++--
581 1 file changed, 4 insertions(+), 2 deletions(-)
582
583commit 1591747bf692d10c3b2fd92c9dc8ba931626fd84
584Author: Lasse Collin <lasse.collin@tukaani.org>
585Date:   2024-06-24 22:41:10 +0300
586
587    CMake: Fix three checks if building with -flto
588
589    In CMake, check_c_source_compiles() always links too. With
590    link-time optimization, unused functions may get omitted if
591    main() doesn't depend on them. Consider the following which
592    tries to check if somefunction() is available when <someheader.h>
593    has been included:
594
595        #include <someheader.h>
596        int foo(void) { return somefunction(); }
597        int main(void) { return 0; }
598
599    LTO may omit foo() completely because the program as a whole doesn't
600    need it and then the program will link even if the symbol somefunction
601    isn't available in libc or other library being linked in, and then
602    the test may pass when it shouldn't.
603
604    What happens if <someheader.h> doesn't declare somefunction()?
605    Shouldn't the test fail in the compilation phase already? It should
606    but many compilers don't follow the C99 and later standards that
607    prohibit implicit function declarations. Instead such compilers
608    assume that somefunction() exists, compilation succeeds (with a
609    warning), and then linker with LTO omits the call to somefunction().
610
611    Change the tests so that they are part of main(). If compiler accepts
612    implicitly declared functions, LTO cannot omit them because it has to
613    assume that they might have side effects and thus linking will fail.
614    On the other hand, if the functions/intrinsics being used are supported,
615    they might get optimized away but in that case it's fine because they
616    really are supported.
617
618    It is fine to use __attribute__((target(...))) for main(). At least
619    it works with GCC 4.9 to 14.1 on x86-64.
620
621    Reported-by: Sam James <sam@gentoo.org>
622    (cherry picked from commit 114cba69dbb96003e676c8c87a2e9943b12d065f)
623
624 CMakeLists.txt | 19 ++++++++-----------
625 1 file changed, 8 insertions(+), 11 deletions(-)
626
627commit cc386f4ff4b87ff895fbc30fd3b13ee6e6152ace
628Author: Lasse Collin <lasse.collin@tukaani.org>
629Date:   2024-06-24 21:06:18 +0300
630
631    CMake: Improve the comment about LIBS
632
633    (cherry picked from commit d3f20382fc1bd865eb70a65455d5022ed05caac8)
634
635 CMakeLists.txt | 6 ++++++
636 1 file changed, 6 insertions(+)
637
638commit 65aaa0f87048f78a3f69c4ec0ad03723a2354fa7
639Author: Lasse Collin <lasse.collin@tukaani.org>
640Date:   2024-06-24 17:39:54 +0300
641
642    CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS
643
644    Check for the wrong triplet from config.guess and override it with
645    the --build option on the configure command line. Then i386 assembly
646    autodetection will work.
647
648    These Ubuntu versions (and as of writing, also Debian unstable)
649    ship config.guess version 2022-01-09 which contains a bug that
650    was fixed in version 2022-05-08. It results in a wrong configure
651    triplet when using CC="gcc -m32" to build i386 binaries.
652
653    Upstream fix:
654    https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329
655
656    More information:
657    https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html
658
659    (cherry picked from commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a)
660
661 build-aux/ci_build.bash | 9 +++++++++
662 1 file changed, 9 insertions(+)
663
664commit 810f1a8aee9edb3bff430559f4b832cd0ec50797
665Author: Lasse Collin <lasse.collin@tukaani.org>
666Date:   2024-06-24 15:24:52 +0300
667
668    CI: Use CC="gcc -m32" to get i386 compiler on x86-64
669
670    The old method put it in CFLAGS which is a wrong place because
671    config.guess doesn't read CFLAGS.
672
673    (cherry picked from commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679)
674
675 .github/workflows/ci.yml | 4 ++--
676 1 file changed, 2 insertions(+), 2 deletions(-)
677
678commit dde14ded9a3240fd524d9bc01c9ceeb4d7909e95
679Author: Lasse Collin <lasse.collin@tukaani.org>
680Date:   2024-06-24 14:54:17 +0300
681
682    CI: Let CMake use the CC environment variable
683
684    CC from environment is used to initialize CMAKE_C_COMPILER so
685    setting CMAKE_C_COMPILER explicitly isn't needed.
686
687    The syntax in ci_build.bash was broken in case one wished to put
688    spaces in CC.
689
690    (cherry picked from commit 0c1e6d900bac127464fb30a854776e1810ab5f16)
691
692 build-aux/ci_build.bash | 4 ----
693 1 file changed, 4 deletions(-)
694
695commit 85a55e1120bebac2f3cd9af8965f4a6335eeeb9b
696Author: Lasse Collin <lasse.collin@tukaani.org>
697Date:   2024-06-20 18:12:21 +0300
698
699    CMake: Keep existing options in LIBS when adding -lrt
700
701    This makes no difference yet because -lrt is currently the only option
702    that might be added to LIBS.
703
704    (cherry picked from commit 75ce4797d49621710e6da95d8cb91541028c6d68)
705
706 CMakeLists.txt | 2 +-
707 1 file changed, 1 insertion(+), 1 deletion(-)
708
709commit e24a762f1be6bf379df73b7fe0a115ccae139a35
710Author: Lasse Collin <lasse.collin@tukaani.org>
711Date:   2024-06-15 18:07:04 +0300
712
713    CMake: Fix indentation
714
715    (cherry picked from commit c715dec8e800b65145918cfb0ee9bbc90faa8aad)
716
717 CMakeLists.txt | 2 +-
718 1 file changed, 1 insertion(+), 1 deletion(-)
719
720commit 99555b721b55263a6892b1093f2806f09a92e1fb
721Author: Lasse Collin <lasse.collin@tukaani.org>
722Date:   2024-06-15 23:34:29 +0300
723
724    CMake: Link Threads::Threads as PRIVATE to liblzma
725
726    This way pthread options aren't passed to the linker when linking
727    against shared liblzma but they are still passed when linking against
728    static liblzma. (Also, one never needs the include path of the
729    threading library to use liblzma since liblzma's API headers
730    don't #include <pthread.h>. But <pthread.h> tends to be in the
731    default include path so here this change makes no difference.)
732
733    One cannot mix target_link_libraries() calls that use the scope
734    (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it.
735    The calls without the keyword are like PUBLIC except perhaps when
736    they aren't, or something like that... It seems best to always
737    specify a scope keyword as the meanings of those three keywords
738    at least are clear.
739
740    (cherry picked from commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c)
741
742 CMakeLists.txt | 2 +-
743 1 file changed, 1 insertion(+), 1 deletion(-)
744
745commit 258bae30a2040138c783b5c380cef0ca603663ed
746Author: Lasse Collin <lasse.collin@tukaani.org>
747Date:   2024-06-16 19:39:32 +0300
748
749    CMake: Add empty lines
750
751    (cherry picked from commit 82986d8c691a294c78b48d8391303e5c428b5437)
752
753 CMakeLists.txt | 2 ++
754 1 file changed, 2 insertions(+)
755
756commit a95a9601a109f0d0d059dea7a5a44efa87ef1401
757Author: Lasse Collin <lasse.collin@tukaani.org>
758Date:   2024-06-16 19:37:36 +0300
759
760    CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads
761
762    This shouldn't make much difference in practice as on Windows
763    no flags are needed anyway and unitialized variable (when threading
764    is disabled) expands to empty. But it's clearer this way.
765
766    (cherry picked from commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2)
767
768 CMakeLists.txt | 8 +++++++-
769 1 file changed, 7 insertions(+), 1 deletion(-)
770
771commit 65a10ddd439ad435d2c0176106b1e2d6b9c1b3a1
772Author: Lasse Collin <lasse.collin@tukaani.org>
773Date:   2024-06-17 18:20:14 +0300
774
775    Update THANKS
776
777    (cherry picked from commit 664918bd3635ea8e773f06022286ecb0c485166c)
778
779 THANKS | 3 +++
780 1 file changed, 3 insertions(+)
781
782commit 6ad5739094ac69ac448a84493f2c7ddfc6eb0688
783Author: Lasse Collin <lasse.collin@tukaani.org>
784Date:   2024-06-16 19:25:07 +0300
785
786    CMake: Use native newlines in liblzma.pc
787
788    vcpkg doesn't specify the newline type so it should be fine to
789    use native newlines in liblzma.pc on Windows.
790
791    (cherry picked from commit 5ca96a93488d0f5a530c78b274cac317453807ff)
792
793 CMakeLists.txt | 4 +---
794 1 file changed, 1 insertion(+), 3 deletions(-)
795
796commit 4107f2066764bb3a31d114852bc20722d582fd82
797Author: Lasse Collin <lasse.collin@tukaani.org>
798Date:   2024-06-16 19:18:56 +0300
799
800    CMake: Use relative paths in liblzma.pc if possible
801
802    Now liblzma.pc can be relocatable only if using CMake >= 3.20
803    but that should be OK as now we shouldn't get broken liblzma.pc
804    if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an
805    absolute path.
806
807    Thanks to Eli Schwartz.
808
809    (cherry picked from commit ebd155c3a1b87411edae06d3bdaa9659ec057522)
810
811 CMakeLists.txt | 18 ++++++++++++++----
812 1 file changed, 14 insertions(+), 4 deletions(-)
813
814commit ff697eb154361417d94284e0c569aa08cacf9031
815Author: Lasse Collin <lasse.collin@tukaani.org>
816Date:   2024-06-16 13:39:37 +0300
817
818    liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed
819
820    On E2K the function compiles only due to compiler emulation but the
821    function is never used. It's cleaner to omit the function when it's
822    not needed even though it's a "static inline" function.
823
824    Thanks to Ilya Kurdyukov.
825
826    (cherry picked from commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f)
827
828 src/liblzma/check/crc_x86_clmul.h | 4 ++++
829 1 file changed, 4 insertions(+)
830
831commit 4e4a568f6a089c867891c2388a19624e312eb2f3
832Author: Lasse Collin <lasse.collin@tukaani.org>
833Date:   2024-06-12 14:26:44 +0300
834
835    CMake: Prefer C11 with a fallback to C99
836
837    There is no need to make a similar change in configure.ac.
838    With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99
839    is an alias for AC_PROG_CC which prefers a C11 compiler.
840
841    (cherry picked from commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92)
842
843 CMakeLists.txt | 17 +++++++++++------
844 1 file changed, 11 insertions(+), 6 deletions(-)
845
846commit 849e757a8cce41bfd6acfaa7dd3b07324363de90
847Author: Lasse Collin <lasse.collin@tukaani.org>
848Date:   2024-06-12 14:20:21 +0300
849
850    Update THANKS
851
852    (cherry picked from commit c97e9c12fef4d1093ee2a75236742481361f50f5)
853
854 THANKS | 4 ++++
855 1 file changed, 4 insertions(+)
856
857commit 1305056a54e68895e052506bceb26274f52bbc9a
858Author: Lasse Collin <lasse.collin@tukaani.org>
859Date:   2024-06-11 11:15:49 +0300
860
861    Tests: Improve the CRC32 test
862
863    A similar one was already there for CRC64 but nowadays also CRC32
864    has a CLMUL implementation, so it's good to test it better too.
865
866    (cherry picked from commit 89e9f12e03324b8a186e807b268f34f92d1b2f41)
867
868 tests/test_check.c | 17 +++++++++++++----
869 1 file changed, 13 insertions(+), 4 deletions(-)
870
871commit a44493ec41edc98f24ed9933668e7372f5267a40
872Author: Lasse Collin <lasse.collin@tukaani.org>
873Date:   2024-06-11 22:42:26 +0300
874
875    xz: Fix white space
876
877    (cherry picked from commit c7164b1927e3fe7cdba70ee4687e1a590a81043b)
878
879 src/xz/list.c | 6 +++---
880 1 file changed, 3 insertions(+), 3 deletions(-)
881
882commit 5e74a6a8138b3c102193d731120139d5a854f2cf
883Author: Lasse Collin <lasse.collin@tukaani.org>
884Date:   2024-06-11 21:59:09 +0300
885
886    liblzma: Fix a typo in a comment
887
888    Thanks to Sam James for spotting it.
889
890    Fixes: f644473a211394447824ea00518d0a214ff3f7f2
891    (cherry picked from commit 0a32d2072c598de281058b26dc08920fbf0cd2a1)
892
893 src/liblzma/check/crc_x86_clmul.h | 2 +-
894 1 file changed, 1 insertion(+), 1 deletion(-)
895
896commit 3f7edc673cf21b3e4db3e2f11746905e0a393db7
897Author: Lasse Collin <lasse.collin@tukaani.org>
898Date:   2024-05-10 15:52:26 +0300
899
900    liblzma: Fix a comment indentation
901
902    (cherry picked from commit afd9b4d282a10186808c3331dad4caf79c02d55f)
903
904 src/liblzma/check/crc_common.h | 6 +++---
905 1 file changed, 3 insertions(+), 3 deletions(-)
906
907commit 8a9cc7ca0867494f39990f0d4cbe0972042f6d59
908Author: Lasse Collin <lasse.collin@tukaani.org>
909Date:   2024-05-09 22:09:12 +0300
910
911    liblzma: Fix white space
912
913    (cherry picked from commit 50e6bff274568c568930e15094da8217e7d47d28)
914
915 src/liblzma/check/crc32_table.c   | 10 +++++-----
916 src/liblzma/check/crc_x86_clmul.h |  6 +++---
917 src/liblzma/check/sha256.c        |  2 +-
918 3 files changed, 9 insertions(+), 9 deletions(-)
919
920commit b29b13082fe578a3bb9384a5939c82055f796a34
921Author: RainRat <rainrat78@yahoo.ca>
922Date:   2024-06-05 15:21:49 -0700
923
924    Fix typos
925
926    Closes: https://github.com/tukaani-project/xz/pull/124
927    (cherry picked from commit 9e73918a4f14be754a23f74dda45ca431939a4a0)
928
929 INSTALL                           | 2 +-
930 doc/examples/03_compress_custom.c | 2 +-
931 src/common/tuklib_integer.h       | 2 +-
932 src/liblzma/api/lzma/container.h  | 2 +-
933 src/xz/mytime.c                   | 2 +-
934 tests/test_filter_str.c           | 2 +-
935 6 files changed, 6 insertions(+), 6 deletions(-)
936
937commit 6f66155e01a6467e70db48cddbe790bdb8d87754
938Author: Lasse Collin <lasse.collin@tukaani.org>
939Date:   2024-06-07 15:47:20 +0300
940
941    tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2
942
943    GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h
944    tries to use OS-specific byte swap methods instead. On OpenBSD those
945    macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs
946    and Darwin.
947
948    An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it
949    is a macro. But since OpenBSD seems to be a special case under this
950    special case of "*BSDs and Darwin", checking for __OpenBSD__ seems
951    the more conservative choice now.
952
953    Thanks to Christian Weisgerber and Brad Smith who both submitted
954    the same patch a few hours apart.
955
956    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
957    Co-authored-by: Brad Smith <brad@comstyle.com>
958    Closes: https://github.com/tukaani-project/xz/pull/126
959    (cherry picked from commit 04b23addf3733873667675df2439725f076c2f36)
960
961 src/common/tuklib_integer.h | 12 +++++++++---
962 1 file changed, 9 insertions(+), 3 deletions(-)
963
964commit 5522759d31e0f1513fffbdf39a955f12d373f121
965Author: Lasse Collin <lasse.collin@tukaani.org>
966Date:   2024-06-05 13:55:43 +0300
967
968    Update THANKS
969
970    (cherry picked from commit f5c2ae58ec68c665e62c790b842657afcb31474c)
971
972 THANKS | 2 ++
973 1 file changed, 2 insertions(+)
974
975commit 45aed6f37f17e5fac215290204e03894965cf1d5
976Author: Lasse Collin <lasse.collin@tukaani.org>
977Date:   2024-06-05 13:30:28 +0300
978
979    CMake: Fix wrong version variable
980
981    liblzma_VERSION has never existed in the repository. xz_VERSION from
982    the project() command was used for liblzma SOVERSION so use xz_VERSION
983    here too.
984
985    The wrong variable did no harm in practice as PROJECT_VERSION
986    was used as the fallback. It has the same value as xz_VERSION.
987
988    Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6
989    (cherry picked from commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0)
990
991 CMakeLists.txt | 2 +-
992 1 file changed, 1 insertion(+), 1 deletion(-)
993
994commit 198271a6ed0e6ac6820f8f44172a203aa44abe39
995Author: Lasse Collin <lasse.collin@tukaani.org>
996Date:   2024-06-04 23:59:29 +0300
997
998    CMake: Fix liblzma filename in Windows environments
999
1000    This is a mess because liblzma DLL outside Cygwin and MSYS2
1001    is liblzma.dll instead of lzma.dll to avoid a conflict with
1002    lzma.dll from LZMA SDK.
1003
1004    On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll"
1005    would have been correct (and match what Libtool produces).
1006    MSYS2 likely was broken too as it uses the "msys-" prefix.
1007
1008    This change has no effect with MinGW-w64 because with that
1009    the "lib" prefix was correct already.
1010
1011    With MSVC builds this is a small breaking change that requires developers
1012    to adjust the library name when linking against liblzma. The liblzma.dll
1013    name is kept as is but the import library and static library are now
1014    lzma.lib instead of liblzma.lib. This is helpful when using pkgconf
1015    because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib"
1016    (it's converted from "-llzma" in liblzma.pc). It would be easy to
1017    keep the liblzma.lib naming but the pkgconf compatibility seems worth
1018    it in the long run. The lzma.lib name is compatible with MinGW-w64
1019    too as -llzma will find also lzma.lib.
1020
1021    vcpkg had been patching CMakeLists.txt this way since 2022 but I
1022    learned this only recently. The reasoning for the patch makes sense,
1023    and while this is a small breaking change with MSVC, it seems like
1024    a decent compromise as it keeps the DLL name the same.
1025
1026    2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch
1027    See the discussion: https://github.com/microsoft/vcpkg/pull/39024
1028
1029    Thanks to Vincent Torri for confirming the naming issue on Cygwin.
1030
1031    (cherry picked from commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7)
1032
1033 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++----
1034 1 file changed, 30 insertions(+), 4 deletions(-)
1035
1036commit 92e5425979199407080fd80e67c15f2cbf85392b
1037Author: Lasse Collin <lasse.collin@tukaani.org>
1038Date:   2024-06-03 16:55:03 +0300
1039
1040    Fix version.sh compatiblity with Solaris
1041
1042    The ancient /bin/tr on Solaris doesn't support '\n'.
1043    With /usr/xpg4/bin/tr it works but it might not be in PATH.
1044
1045    Another problem was that sed was given input that didn't have a newline
1046    at the end. Text files must end with a newline to be portable.
1047
1048    Fix both problems:
1049
1050      - Handle multiline input within sed itself to avoid one tr invocation.
1051        The default sed even on Solaris does understand \n.
1052
1053      - Use octals in tr -d. \012 works for ASCII "line feed", it's even
1054        used as an example in the Solaris man page. But we must strip
1055        also ASCII "carriage return" \015 and EBCDIC "next line" \025.
1056        The EBCDIC case got handled with \n previously. Stripping \012
1057        and \015 on EBCDIC system won't matter as those control chars
1058        won't be present in the string in the first place.
1059
1060    An awk-based solution could be an alternative but it might need
1061    special casing on Solaris to used nawk instead of awk. The changes
1062    in this commit are smaller and should have a smaller risk for
1063    regressions. It's also possible that version.sh will be dropped
1064    entirely at some point.
1065
1066    (cherry picked from commit e7a42cda7c827e016619e8cab15e2faf5d4181ae)
1067
1068 build-aux/version.sh | 5 ++---
1069 1 file changed, 2 insertions(+), 3 deletions(-)
1070
1071commit 0c089a33a5b1f5b9451b332484c68e1d6f02631a
1072Author: Lasse Collin <lasse.collin@tukaani.org>
1073Date:   2024-06-03 17:07:11 +0300
1074
1075    CI: Don't require po4a on Solaris
1076
1077    (cherry picked from commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9)
1078
1079 .github/workflows/solaris.yml | 2 +-
1080 1 file changed, 1 insertion(+), 1 deletion(-)
1081
1082commit 83d3792711295656a3de69bbcd98dcb4b06be1c2
1083Author: Lasse Collin <lasse.collin@tukaani.org>
1084Date:   2024-06-03 15:08:15 +0300
1085
1086    CI: Use set -e on Solaris too
1087
1088    (cherry picked from commit 5229bdf5335ce18ed54beb7e646e39927663be86)
1089
1090 .github/workflows/solaris.yml | 1 +
1091 1 file changed, 1 insertion(+)
1092
1093commit 9c64d4fd787ea7bca3795be55367504a9f47a68c
1094Author: Lasse Collin <lasse.collin@tukaani.org>
1095Date:   2024-06-03 17:44:50 +0300
1096
1097    CMake: Install liblzma.pc even with MSVC
1098
1099    I had misunderstood that it wouldn't be useful with MSVC.
1100    vcpkg had been installing liblzma.pc with custom rules since 2020,
1101    years before liblzma.pc support was added to CMakeLists.txt.
1102
1103    See:
1104    https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake
1105    https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670
1106    (cherry picked from commit afa938e429c1ce07d26d02999352fb014b62ff3d)
1107
1108 CMakeLists.txt | 8 +++-----
1109 1 file changed, 3 insertions(+), 5 deletions(-)
1110
1111commit 42754176bd84c4539db55a9e70bdcdd5700c709f
1112Author: Sam James <sam@gentoo.org>
1113Date:   2024-06-03 06:16:23 +0100
1114
1115    ci: don't pin official GH actions via commit, just tag
1116
1117    There's no real value in doing it via commit for official GH actions. We
1118    can keep using pinned commits for unofficial actions. It's hassle for no
1119    gain.
1120
1121    Maybe going forward we can limit this further by only being paranoid
1122    for the jobs with any access to tokens.
1123
1124    (cherry picked from commit 35f8649f08341639a627fd06350e938124ca3622)
1125
1126 .github/workflows/ci.yml         | 4 ++--
1127 .github/workflows/freebsd.yml    | 2 +-
1128 .github/workflows/netbsd.yml     | 2 +-
1129 .github/workflows/openbsd.yml    | 2 +-
1130 .github/workflows/solaris.yml    | 2 +-
1131 .github/workflows/windows-ci.yml | 4 ++--
1132 6 files changed, 8 insertions(+), 8 deletions(-)
1133
1134commit 9a5fee7022eddffdfcee32a7e43f64635581b393
1135Author: Christoph Junghans <christoph.junghans@gmail.com>
1136Date:   2024-04-30 07:49:26 -0600
1137
1138    ci: set -e on openbsd
1139
1140    Closes: https://github.com/tukaani-project/xz/pull/116
1141    (cherry picked from commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2)
1142
1143 .github/workflows/openbsd.yml | 1 +
1144 1 file changed, 1 insertion(+)
1145
1146commit a2d66de54f234999a7d42305988cf2c3e0b1b8f6
1147Author: Christoph Junghans <christoph.junghans@gmail.com>
1148Date:   2024-04-30 07:48:58 -0600
1149
1150    ci: set -e on netbsd
1151
1152    (cherry picked from commit 21b02dd128cf9e8c76325ec124f70381862dcf19)
1153
1154 .github/workflows/netbsd.yml | 1 +
1155 1 file changed, 1 insertion(+)
1156
1157commit 1bdc70176b59b0e22c0a580c518dc5d0f2fd0723
1158Author: Christoph Junghans <christoph.junghans@gmail.com>
1159Date:   2024-04-25 14:56:06 -0700
1160
1161    ci: actually fail on FreeBSD
1162
1163    Without "set -e" the job will always be successful.
1164
1165    See vmactions/freebsd-vm#72
1166
1167    (cherry picked from commit 8641f0c24c041136670c975b23408184b45431bc)
1168
1169 .github/workflows/freebsd.yml | 1 +
1170 1 file changed, 1 insertion(+)
1171
1172commit 4132277103acdf1c01f8b5a4c12c0992c330ade4
1173Author: Andrew Murray <radarhere@users.noreply.github.com>
1174Date:   2024-04-25 09:24:46 +1000
1175
1176    Updated actions
1177
1178    Closes: https://github.com/tukaani-project/xz/pull/115
1179    (cherry picked from commit ef616683ef11f11ffdfbe0624da33905e28a70f9)
1180
1181 .github/workflows/ci.yml         | 4 ++--
1182 .github/workflows/windows-ci.yml | 6 +++---
1183 2 files changed, 5 insertions(+), 5 deletions(-)
1184
1185commit 1575414636104773cefc62cf075726c6ee7ae37d
1186Author: Sam James <sam@gentoo.org>
1187Date:   2024-06-03 02:49:40 +0100
1188
1189    ci: add po4a
1190
1191    (cherry picked from commit 57b440d316da9ac9cb312ee7e6890f5382556f10)
1192
1193 .github/workflows/netbsd.yml  | 2 +-
1194 .github/workflows/openbsd.yml | 3 ++-
1195 2 files changed, 3 insertions(+), 2 deletions(-)
1196
1197commit c3e293037e1bb2bd9efedbb0e75387d1282cc03f
1198Author: Sam James <sam@gentoo.org>
1199Date:   2024-04-13 21:02:04 +0100
1200
1201    ci: add Solaris
1202
1203    Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94.
1204
1205    It runs on Solaris 5.11 via a VirtualBox VM.
1206
1207    (cherry picked from commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95)
1208
1209 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++
1210 1 file changed, 31 insertions(+)
1211
1212commit dc6b6011b45b0d0ddd0650f4885e24c68b37fddf
1213Author: Sam James <sam@gentoo.org>
1214Date:   2024-04-14 08:08:00 +0100
1215
1216    xz: list: suppress -Wformat-nonliteral for Solaris
1217
1218    Solaris' GCC can't understand that our use is fine, unlike modern compilers:
1219    ```
1220    list.c: In function 'print_totals_basic':
1221    list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
1222      uint64_to_str(totals.files, 0));
1223      ^~~~~~~~~~~~~
1224    cc1: all warnings being treated as errors
1225    ```
1226
1227    It's presumably because of older gettext missing format attributes.
1228
1229    This is with `gcc (GCC) 7.3.0`.
1230
1231    (cherry picked from commit b69768c8bd1a34fde311935c551d061ba52d9a3f)
1232
1233 src/xz/list.c | 7 +++++++
1234 1 file changed, 7 insertions(+)
1235
1236commit 7ce2ac795a812ecf1eb2d6b62f51b55ac799c2a5
1237Author: Lasse Collin <lasse.collin@tukaani.org>
1238Date:   2024-05-31 21:36:26 +0300
1239
1240    Update THANKS
1241
1242    (cherry picked from commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2)
1243
1244 THANKS | 3 +++
1245 1 file changed, 3 insertions(+)
1246
1247commit 3ec664d3f652133136587a51d4505b1abe1acdd7
1248Author: Lasse Collin <lasse.collin@tukaani.org>
1249Date:   2024-05-29 18:03:51 +0300
1250
1251    Bump version and soname for 5.6.2
1252
1253 src/liblzma/Makefile.am        | 2 +-
1254 src/liblzma/api/lzma/version.h | 2 +-
1255 2 files changed, 2 insertions(+), 2 deletions(-)
1256
1257commit 3cc0aa702e50b786c52c6f3d3f831a635c4df197
1258Author: Lasse Collin <lasse.collin@tukaani.org>
1259Date:   2024-05-29 18:03:04 +0300
1260
1261    Add NEWS for 5.6.2
1262
1263 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1264 1 file changed, 130 insertions(+)
1265
1266commit 526d3f7f2c2d5e134157d08b37fb5fd0b125799e
1267Author: Lasse Collin <lasse.collin@tukaani.org>
1268Date:   2024-05-29 18:03:04 +0300
1269
1270    Add NEWS for 5.4.7
1271
1272 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1273 1 file changed, 89 insertions(+)
1274
1275commit 660b09279e8f544acf120d29194d5c3051b484eb
1276Author: Lasse Collin <lasse.collin@tukaani.org>
1277Date:   2024-05-29 18:03:04 +0300
1278
1279    Add NEWS for 5.2.13
1280
1281 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1282 1 file changed, 115 insertions(+)
1283
1284commit 7d76282dac766c0ced8ae24e0f7ce0005f3e377d
1285Author: Lasse Collin <lasse.collin@tukaani.org>
1286Date:   2024-05-29 17:47:13 +0300
1287
1288    Translations: Run po4a/update-po
1289
1290    Now the files are in the new formatting without source file
1291    line numbers. Future updates should keep the diffs much smaller.
1292
1293 po4a/de.po    | 1592 ++++++++++---------
1294 po4a/fr.po    | 4450 +++++++++++++++++-----------------------------------
1295 po4a/ko.po    | 1592 ++++++++++---------
1296 po4a/pt_BR.po | 4817 ++++++++++++++++++---------------------------------------
1297 po4a/ro.po    | 1592 ++++++++++---------
1298 po4a/uk.po    | 1592 ++++++++++---------
1299 6 files changed, 6114 insertions(+), 9521 deletions(-)
1300
1301commit 4470c3f7d8954bb47b280ec07ad0bd4be2223083
1302Author: Lasse Collin <lasse.collin@tukaani.org>
1303Date:   2024-05-29 17:44:53 +0300
1304
1305    Translations: Run "make -C po update-po"
1306
1307    In the past this wasn't done before releases; the Git repository
1308    just contained the files from the Translation Project. But this
1309    way it is clearer when comparing release tarballs against the
1310    Git repository. In future releases this might no longer be necessary
1311    within a stable branch as the .po files won't change so easily anymore
1312    when creating a tarball.
1313
1314 po/ca.po    | 567 +++++++++++++++++++++++++---------------
1315 po/cs.po    | 821 +++++++++++++++++++++++++++++++++++++--------------------
1316 po/da.po    | 809 +++++++++++++++++++++++++++++++++++---------------------
1317 po/de.po    | 403 ++++++++++++++--------------
1318 po/eo.po    | 403 ++++++++++++++--------------
1319 po/es.po    | 403 ++++++++++++++--------------
1320 po/fi.po    | 578 +++++++++++++++++++++++++---------------
1321 po/fr.po    | 538 +++++++++++++++++++++++---------------
1322 po/hr.po    | 403 ++++++++++++++--------------
1323 po/hu.po    | 403 ++++++++++++++--------------
1324 po/it.po    | 854 +++++++++++++++++++++++++++++++++++++++---------------------
1325 po/ko.po    | 403 ++++++++++++++--------------
1326 po/pl.po    | 403 ++++++++++++++--------------
1327 po/pt.po    | 842 +++++++++++++++++++++++++++++++++++++++--------------------
1328 po/pt_BR.po | 567 +++++++++++++++++++++++++---------------
1329 po/ro.po    | 403 ++++++++++++++--------------
1330 po/sr.po    | 838 ++++++++++++++++++++++++++++++++++++++--------------------
1331 po/sv.po    | 403 ++++++++++++++--------------
1332 po/tr.po    | 567 +++++++++++++++++++++++++---------------
1333 po/uk.po    | 403 ++++++++++++++--------------
1334 po/vi.po    | 403 ++++++++++++++--------------
1335 po/zh_CN.po | 417 +++++++++++++++--------------
1336 po/zh_TW.po | 558 ++++++++++++++++++++++++---------------
1337 23 files changed, 7257 insertions(+), 5132 deletions(-)
1338
1339commit 33b8a85face5392b5ac843bdbe3a72f024cad6ef
1340Author: Lasse Collin <lasse.collin@tukaani.org>
1341Date:   2024-05-29 16:33:24 +0300
1342
1343    Build: Update po/*.po files only when needed
1344
1345    When po/xz.pot doesn't exist, running "make" or "make dist" will
1346    create it. Then the .po files will be updated but only if they
1347    actually would change more than the POT-Creation-Date line.
1348    Then the .gmo files would be generated from the .po files.
1349    This is the case before and after this commit.
1350
1351    However, "make dist" and thus "make mydist" did a forced update
1352    to the files, updating them even if the only change was the
1353    POT-Creation-Date line. This had pros and cons: It made it clear
1354    that the .po file really is in sync with the recent strings in
1355    the package. On the other hand, it added noise in form of changed
1356    files in the source tree and distribution tarballs. It can be
1357    ignored with something like "diff -I'^"POT-Creation-Date: '" but
1358    it's still a minor annoyance *if* there's not enough value in
1359    having the most recent timestamp.
1360
1361    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
1362    update won't happen in "make dist" anymore. However, the "mydist"
1363    target will use xz.pot-update target which is the same target that
1364    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
1365    ensure that the translations are up to date, without noise from
1366    changes that would affect only the POT-Creation-Date line.
1367
1368    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
1369    in the man page translations is never the only change in .po files.
1370    In that sense this commit makes the message translations behave more
1371    similarly to the man page translations.
1372
1373    Distribution tarballs will still have non-reproducible POT-Creation-Date
1374    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
1375    could be made reproducible from a Git timestamp if desired.
1376
1377    (cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762)
1378
1379 Makefile.am | 3 ++-
1380 po/Makevars | 6 +++++-
1381 2 files changed, 7 insertions(+), 2 deletions(-)
1382
1383commit 09daebd66b55799bbc495b84310a86c91bbfc1c8
1384Author: Lasse Collin <lasse.collin@tukaani.org>
1385Date:   2024-05-28 21:10:33 +0300
1386
1387    po4a/update-po: Disable wrapping in .pot and .po files
1388
1389    The .po files from the Translation Project come with unwrapped
1390    strings so this matches it.
1391
1392    This may reduce the noise in diffs too. When the beginning of
1393    a paragraph had changed, the rest of the lines got rewrapped
1394    in msgsid. Now it's just one very long line that changes when
1395    a paragraph has been edited.
1396
1397    The --add-location=file option was removed as redundant. The line
1398    numbers don't exist in the .pot file due to --porefs file and thus
1399    they cannot get copied to the .po files either.
1400
1401    (cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599)
1402
1403 po4a/update-po | 15 +++++++++++----
1404 1 file changed, 11 insertions(+), 4 deletions(-)
1405
1406commit 51ad72dae4e516e9292f6f399bd1e4970b77f7c1
1407Author: Lasse Collin <lasse.collin@tukaani.org>
1408Date:   2024-05-28 18:36:53 +0300
1409
1410    Update contact info in README
1411
1412    (cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569)
1413
1414 README | 12 +++++++++---
1415 1 file changed, 9 insertions(+), 3 deletions(-)
1416
1417commit 18463917f9b255b8f925fa54ab9388319735b14a
1418Author: Lasse Collin <lasse.collin@tukaani.org>
1419Date:   2024-05-28 13:25:07 +0300
1420
1421    Translations: Use --package-name=xz-man with po4a
1422
1423    This is to match reality. See the added comment.
1424
1425    (cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353)
1426
1427 po4a/update-po | 9 ++++++++-
1428 1 file changed, 8 insertions(+), 1 deletion(-)
1429
1430commit 26bbcb13cd2bbb56fe406544a484b4edfc7e0837
1431Author: Lasse Collin <lasse.collin@tukaani.org>
1432Date:   2024-05-28 13:03:40 +0300
1433
1434    Translations: Omit --package-name from po/Makevars
1435
1436    This is closer to the reality in the po/*.po files.
1437
1438    (cherry picked from commit eb217d016cfbbba1babc19a61095b3ea25898af6)
1439
1440 po/Makevars | 3 +--
1441 1 file changed, 1 insertion(+), 2 deletions(-)
1442
1443commit c35ee804b89556d15bc8cdc16867f4316e69392f
1444Author: Lasse Collin <lasse.collin@tukaani.org>
1445Date:   2024-05-28 01:17:45 +0300
1446
1447    Translations: Omit man page line numbers from .pot and .po files
1448
1449    (cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839)
1450
1451 po4a/update-po | 5 +++++
1452 1 file changed, 5 insertions(+)
1453
1454commit 0f4429d47f9cfe2cdfbad115a7bc2f11221cb217
1455Author: Lasse Collin <lasse.collin@tukaani.org>
1456Date:   2024-05-28 01:06:30 +0300
1457
1458    Translations: Use the xgettext option --add-location=file
1459
1460    (cherry picked from commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6)
1461
1462 po/Makevars | 3 ++-
1463 1 file changed, 2 insertions(+), 1 deletion(-)
1464
1465commit a93e2c2d1d34a6f609d24a8e62072ce78df7a734
1466Author: Lasse Collin <lasse.collin@tukaani.org>
1467Date:   2024-05-28 00:43:53 +0300
1468
1469    Translations: Use the msgmerge option --add-location=file
1470
1471    This way the PO file diffs are less noisy but the locations of the
1472    strings are still present at file level, just without line numbers.
1473
1474    The option is available since gettext 0.19 (2014).
1475    configure.ac requires 0.19.6.
1476
1477    (cherry picked from commit fccebe2b4fd513488fc920e4dac32562ed3c7637)
1478
1479 po/Makevars | 2 +-
1480 1 file changed, 1 insertion(+), 1 deletion(-)
1481
1482commit d4389895592e9a8e0f6391fdad816ae0537bb07b
1483Author: Lasse Collin <lasse.collin@tukaani.org>
1484Date:   2024-05-27 12:22:08 +0300
1485
1486    Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
1487
1488    (cherry picked from commit f361d9ae85707a87eb28db400eb7229cec103d58)
1489
1490 Makefile.am | 10 +++++-----
1491 1 file changed, 5 insertions(+), 5 deletions(-)
1492
1493commit 5781414b6e3120098b0060d073aa2b0580ff6f40
1494Author: Lasse Collin <lasse.collin@tukaani.org>
1495Date:   2024-05-23 17:25:13 +0300
1496
1497    Translations: Change the home page URLs in man page translations
1498
1499    Since the source strings have changed, these would get marked as
1500    fuzzy and the original string would be used instead. The original
1501    and translated strings are identical in this case so it wouldn't
1502    matter. But patching the translations helps still because then
1503    po4a will show the correct translation percentage.
1504
1505    (cherry picked from commit a26dece34793a09aac2476f954d162d03e9cf62b)
1506
1507 po4a/de.po    | 8 ++++----
1508 po4a/fr.po    | 4 ++--
1509 po4a/ko.po    | 4 ++--
1510 po4a/pt_BR.po | 4 ++--
1511 po4a/ro.po    | 8 ++++----
1512 po4a/uk.po    | 8 ++++----
1513 6 files changed, 18 insertions(+), 18 deletions(-)
1514
1515commit 3670e0616eb9d86e7519d2b76242fd32c6e0c1ae
1516Author: Lasse Collin <lasse.collin@tukaani.org>
1517Date:   2024-05-23 15:15:18 +0300
1518
1519    CMake: Add manual support for 32-bit x86 assembly files
1520
1521    One has to pass -DENABLE_X86_ASM=ON to cmake to enable the
1522    CRC assembly code. Autodetection isn't done. Looking at
1523    CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname
1524    unless cross-compilation is done using a CMake toolchain file.
1525
1526    On top of this, if the code is run on modern processors that support
1527    the CLMUL instruction, then the C code should be faster (but then
1528    one should also be using a x86-64 build if possible).
1529
1530    (cherry picked from commit 24387c234b4eed1ef9a7eaa107391740b4095568)
1531
1532 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++---
1533 1 file changed, 31 insertions(+), 3 deletions(-)
1534
1535commit c1b001b09e902ecacabb8a2ae1fc991018a4d1f8
1536Author: Lasse Collin <lasse.collin@tukaani.org>
1537Date:   2024-05-23 14:26:45 +0300
1538
1539    CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN
1540
1541    It's more consistent with the other option() uses.
1542
1543    (cherry picked from commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d)
1544
1545 CMakeLists.txt | 4 ++--
1546 1 file changed, 2 insertions(+), 2 deletions(-)
1547
1548commit 7213fe39c717d4623c92af715484a71d9a6ff8d0
1549Author: Lasse Collin <lasse.collin@tukaani.org>
1550Date:   2024-05-22 15:21:53 +0300
1551
1552    Use more confident language in COPYING
1553
1554    (cherry picked from commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a)
1555
1556 COPYING | 8 ++++----
1557 1 file changed, 4 insertions(+), 4 deletions(-)
1558
1559commit 15358be94a4e3f9c20f331b64b3980f3e5283760
1560Author: Lasse Collin <lasse.collin@tukaani.org>
1561Date:   2024-04-29 17:16:38 +0300
1562
1563    Add SPDX license identifiers to files under tests/ossfuzz
1564
1565    (cherry picked from commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde)
1566
1567 tests/ossfuzz/Makefile                          | 2 ++
1568 tests/ossfuzz/config/fuzz_decode_alone.options  | 2 ++
1569 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++
1570 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++
1571 tests/ossfuzz/config/fuzz_lzma.dict             | 2 ++
1572 tests/ossfuzz/config/fuzz_xz.dict               | 2 ++
1573 6 files changed, 12 insertions(+)
1574
1575commit 1aa92c7ffd0bf8f9738ebf3bd1263bd6f5f096a2
1576Author: Lasse Collin <lasse.collin@tukaani.org>
1577Date:   2024-04-29 17:16:06 +0300
1578
1579    Add SPDX license identifier to .codespellrc
1580
1581    (cherry picked from commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05)
1582
1583 .codespellrc | 2 ++
1584 1 file changed, 2 insertions(+)
1585
1586commit 3c7e400fdcabc0a1b78863948fc17964667a9401
1587Author: Lasse Collin <lasse.collin@tukaani.org>
1588Date:   2024-05-22 15:12:09 +0300
1589
1590    Move entries po4a/.gitignore to the top level .gitignore
1591
1592    The po4a directory is in EXTRA_DIST and thus all files there
1593    are included in the package. .gitignore doesn't belong in the
1594    package so keep that file out of the po4a directory.
1595
1596    (cherry picked from commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76)
1597
1598 .gitignore      | 4 ++++
1599 po4a/.gitignore | 3 ---
1600 2 files changed, 4 insertions(+), 3 deletions(-)
1601
1602commit 8a99272d4a9358dabdb5bc0b72f4c5240a9dc066
1603Author: Lasse Collin <lasse.collin@tukaani.org>
1604Date:   2024-05-20 16:55:00 +0300
1605
1606    CMake: Add comments
1607
1608    (cherry picked from commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa)
1609
1610 tests/tests.cmake | 2 ++
1611 1 file changed, 2 insertions(+)
1612
1613commit c35259c9e2400f6f88c269d95ecafdb223ff45d2
1614Author: Lasse Collin <lasse.collin@tukaani.org>
1615Date:   2024-05-20 16:55:00 +0300
1616
1617    CMake: Remove the note that some tests aren't run
1618
1619    They are now in the common build configurations.
1620
1621    (cherry picked from commit d35368b33e54bad2f566df99fac29ffea38e34de)
1622
1623 CMakeLists.txt | 2 --
1624 1 file changed, 2 deletions(-)
1625
1626commit 30982a215395f19b3837c3da540e1cb3f913569f
1627Author: Lasse Collin <lasse.collin@tukaani.org>
1628Date:   2024-05-20 16:55:00 +0300
1629
1630    CMake: Add support for test_files.sh
1631
1632    (cherry picked from commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba)
1633
1634 tests/tests.cmake | 20 ++++++++++++++++++++
1635 1 file changed, 20 insertions(+)
1636
1637commit 3a8f81e0ad4cd1c102a03ff09e703cf8cb074afc
1638Author: Lasse Collin <lasse.collin@tukaani.org>
1639Date:   2024-05-20 16:55:00 +0300
1640
1641    Tests: Make test_files.sh more flexible
1642
1643    Add a new optional argument to specify the directory of the xz and
1644    xzdec executables.
1645
1646    If ../config.h doesn't exist, assume that all encoders and decoders
1647    are available.
1648
1649    (cherry picked from commit a7e9230af9d1f87f474fe38886eb977d4149dc9b)
1650
1651 tests/test_files.sh | 18 +++++++++++++-----
1652 1 file changed, 13 insertions(+), 5 deletions(-)
1653
1654commit 0644675c829143112c85455f8a6aa91bfc4e1bbb
1655Author: Lasse Collin <lasse.collin@tukaani.org>
1656Date:   2024-05-20 16:55:00 +0300
1657
1658    CMake: Add support for test_compress.sh tests
1659
1660    (cherry picked from commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8)
1661
1662 tests/tests.cmake | 26 ++++++++++++++++++++++++++
1663 1 file changed, 26 insertions(+)
1664
1665commit dcc02a6ca0e0ac4e330e820683754badbcf9815b
1666Author: Lasse Collin <lasse.collin@tukaani.org>
1667Date:   2024-05-20 16:55:00 +0300
1668
1669    Tests: Make test_compress.sh more flexible
1670
1671    Add a new optional second argument: directory of the xz and xzdec
1672    executables. This is need with the CMake build where the binaries
1673    end up in the top-level build directory.
1674
1675    If ../config.h doesn't exist, assume that all encoders and decoders
1676    are available. This will make this script usable from CMake in the
1677    most common build configuration.
1678
1679    NOTE: Since the existence of ../config.h is checked, the working
1680    directory of the test script must be a subdir in the build tree!
1681    Otherwise ../config.h would look outside the build tree.
1682
1683    Use the default check type instead of forcing CRC32 or CRC64.
1684    Now the script doesn't need to check if CRC64 is available.
1685
1686    (cherry picked from commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2)
1687
1688 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------
1689 1 file changed, 29 insertions(+), 12 deletions(-)
1690
1691commit c761b7051fb2ebb6da3cbecafe695fb5af7b2c9c
1692Author: Lasse Collin <lasse.collin@tukaani.org>
1693Date:   2024-05-20 16:55:00 +0300
1694
1695    CMake: Prepare to support the test_*.sh tests
1696
1697    This is a bit hacky since the scripts grep config.h to know which
1698    features were built but the CMake build doesn't create config.h.
1699    So instead those test scripts will be run only when all relevant
1700    features have been enabled.
1701
1702    (cherry picked from commit 006040b29c83104403621e950ada0c8956c56b3d)
1703
1704 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1705 1 file changed, 49 insertions(+)
1706
1707commit a71bc2d75b95f85fe046f0fd1fb25d36be2b20ba
1708Author: Lasse Collin <lasse.collin@tukaani.org>
1709Date:   2024-05-20 16:55:00 +0300
1710
1711    Tests: test_suffix.sh: Add a comment
1712
1713    (cherry picked from commit 6167607a6ea72fb74eefb943c4566e3cab528cd2)
1714
1715 tests/test_suffix.sh | 3 +++
1716 1 file changed, 3 insertions(+)
1717
1718commit 8fda5ce872632e464a1f9660b3ab8dac939a03c6
1719Author: Lasse Collin <lasse.collin@tukaani.org>
1720Date:   2024-05-18 00:34:07 +0300
1721
1722    Fix typos
1723
1724    Thanks to xx on #tukaani.
1725
1726    (cherry picked from commit 4e9023857d287f624562156b60dc23d2b64c0f10)
1727
1728 src/common/mythread.h                      | 2 +-
1729 src/common/tuklib_integer.h                | 2 +-
1730 src/liblzma/api/lzma/base.h                | 2 +-
1731 src/liblzma/common/filter_buffer_decoder.c | 2 +-
1732 src/liblzma/common/filter_common.c         | 2 +-
1733 src/scripts/xzgrep.in                      | 2 +-
1734 6 files changed, 6 insertions(+), 6 deletions(-)
1735
1736commit 2729079bcb8dd1c3ab1a79426690d17f6f8e6f7d
1737Author: Lasse Collin <lasse.collin@tukaani.org>
1738Date:   2024-05-18 00:23:52 +0300
1739
1740    liblzma: Fix white space
1741
1742    Thanks to xx on #tukaani.
1743
1744    (cherry picked from commit b14d08fbbc254485ace9ccfe7908674f608a62ae)
1745
1746 src/liblzma/simple/simple_coder.h | 8 ++++----
1747 1 file changed, 4 insertions(+), 4 deletions(-)
1748
1749commit a289c4dfeb3ded35e129c48b13f46605f0138704
1750Author: Lasse Collin <lasse.collin@tukaani.org>
1751Date:   2024-05-13 17:15:04 +0300
1752
1753    xz: Document the static function get_chains_memusage()
1754
1755    (cherry picked from commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88)
1756
1757 src/xz/coder.c | 14 ++++++++++++--
1758 1 file changed, 12 insertions(+), 2 deletions(-)
1759
1760commit 6f0db31713845386ce2419c55b2df89b53b80dd3
1761Author: Lasse Collin <lasse.collin@tukaani.org>
1762Date:   2024-05-13 17:07:22 +0300
1763
1764    xz: Rename filters_memusage_max() to get_chains_memusage()
1765
1766    (cherry picked from commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca)
1767
1768 src/xz/coder.c | 14 ++++++--------
1769 1 file changed, 6 insertions(+), 8 deletions(-)
1770
1771commit d7e2bf7e2dc9289a7a5dd0311d19d10de6d7ea1b
1772Author: Lasse Collin <lasse.collin@tukaani.org>
1773Date:   2024-05-13 17:04:05 +0300
1774
1775    xz: Rename filter_memusages to chains_memusages
1776
1777    (cherry picked from commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7)
1778
1779 src/xz/coder.c | 6 +++---
1780 1 file changed, 3 insertions(+), 3 deletions(-)
1781
1782commit 58f200b6d1dc4cbc1ab3315a359120ab6eb84878
1783Author: Lasse Collin <lasse.collin@tukaani.org>
1784Date:   2024-05-12 22:26:30 +0300
1785
1786    xz: Simplify the memory usage scaling code
1787
1788    This is closer to what it was before the --filtersX support was added,
1789    just extended to support for scaling all filter chains. The method
1790    before this commit was an extended version of the original too but
1791    it was done in a more complex way for no clear reason. In case of
1792    an error, the complex version printed fewer informative messages
1793    (a good thing) but it's not a sigificant benefit.
1794
1795    In the limit is too low even for single-threaded mode, the required
1796    amount of memory is now reported like in 5.4.x instead of like in
1797    5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It
1798    had been a FIXME in the old code but it's not clear what message
1799    makes the most sense.
1800
1801    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
1802    (cherry picked from commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417)
1803
1804 src/xz/coder.c | 163 ++++++++++++++++++++-------------------------------------
1805 1 file changed, 57 insertions(+), 106 deletions(-)
1806
1807commit 41bdc9fa5cc2fc2a70f4331329ac724773cc2f26
1808Author: Lasse Collin <lasse.collin@tukaani.org>
1809Date:   2024-05-13 12:14:00 +0300
1810
1811    xz: Edit comments
1812
1813    (cherry picked from commit 0ee56983d198b776878432703de664049b1be32e)
1814
1815 src/xz/coder.h | 6 ++----
1816 1 file changed, 2 insertions(+), 4 deletions(-)
1817
1818commit 52e40c1912dfdbf8c7aa85e3a4c3eb138fa73d5d
1819Author: Lasse Collin <lasse.collin@tukaani.org>
1820Date:   2024-05-13 12:03:51 +0300
1821
1822    xz: Rename chain_idx to chain_num
1823
1824    (cherry picked from commit ec82a49c3553f7206104582dbfb8b64fa433b491)
1825
1826 src/xz/coder.c | 6 +++---
1827 1 file changed, 3 insertions(+), 3 deletions(-)
1828
1829commit 8a019633319c694423691f58c55fa23a46e45ded
1830Author: Lasse Collin <lasse.collin@tukaani.org>
1831Date:   2024-05-12 22:29:11 +0300
1832
1833    xz: Edit coding style
1834
1835    (cherry picked from commit a731a6993c34bbbd55abaf9c166718682b1da24f)
1836
1837 src/xz/coder.c | 2 +-
1838 1 file changed, 1 insertion(+), 1 deletion(-)
1839
1840commit e3ad7eda74caea29849e2e9ec01212f5f7d0f574
1841Author: Lasse Collin <lasse.collin@tukaani.org>
1842Date:   2024-05-12 22:16:05 +0300
1843
1844    xz: Edit comments
1845
1846    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
1847    (cherry picked from commit 32eb176b89243fce3112347fe43a8ad14a9fd2be)
1848
1849 src/xz/coder.c | 8 ++------
1850 1 file changed, 2 insertions(+), 6 deletions(-)
1851
1852commit 09cabae2ab47a06f6eee02419a815d4bfd0d9490
1853Author: Lasse Collin <lasse.collin@tukaani.org>
1854Date:   2024-05-12 21:57:49 +0300
1855
1856    xz: Fix grammar in a comment
1857
1858    Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02
1859    (cherry picked from commit b90339f4daa510d2b1b8c550f855a99667f1d004)
1860
1861 src/xz/coder.c | 2 +-
1862 1 file changed, 1 insertion(+), 1 deletion(-)
1863
1864commit c10b66fbf9b2442741a1f052bdb4ce7009af9cda
1865Author: Lasse Collin <lasse.collin@tukaani.org>
1866Date:   2024-05-12 21:46:56 +0300
1867
1868    xz: Rename filter_memusages to encoder_memusages
1869
1870    (cherry picked from commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13)
1871
1872 src/xz/coder.c | 12 ++++++------
1873 1 file changed, 6 insertions(+), 6 deletions(-)
1874
1875commit 9132ce3564b2c003bffd6de6294a3d98dccf314e
1876Author: Lasse Collin <lasse.collin@tukaani.org>
1877Date:   2024-05-12 21:42:05 +0300
1878
1879    xz: Edit coding style
1880
1881    (cherry picked from commit b54aa023e0ec291b06e976e5f094ab0549e7b09b)
1882
1883 src/xz/coder.c | 8 ++++----
1884 1 file changed, 4 insertions(+), 4 deletions(-)
1885
1886commit d642e13874e93b03959d1de523f1c8ebe9428838
1887Author: Lasse Collin <lasse.collin@tukaani.org>
1888Date:   2024-05-12 21:31:02 +0300
1889
1890    xz: Rename filters_index to chain_num
1891
1892    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
1893
1894    (cherry picked from commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce)
1895
1896 src/xz/args.c  | 8 ++++----
1897 src/xz/coder.c | 8 ++++----
1898 src/xz/coder.h | 2 +-
1899 3 files changed, 9 insertions(+), 9 deletions(-)
1900
1901commit 47599f3b73f0a2bc18e0a8367d723f1eb0f11b63
1902Author: Lasse Collin <lasse.collin@tukaani.org>
1903Date:   2024-05-12 21:22:43 +0300
1904
1905    xz: Replace a few uint32_t with "unsigned" to reduce the number of casts
1906
1907    These hold only tiny values.
1908
1909    (cherry picked from commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492)
1910
1911 src/xz/args.c  |  2 +-
1912 src/xz/coder.c | 17 ++++++++---------
1913 src/xz/coder.h |  2 +-
1914 3 files changed, 10 insertions(+), 11 deletions(-)
1915
1916commit 8f5ab75c454ea8676ed09c7f6eda8afe87b008ad
1917Author: Lasse Collin <lasse.collin@tukaani.org>
1918Date:   2024-05-12 21:10:45 +0300
1919
1920    xz: Rename filters_used_mask to chains_used_mask
1921
1922    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
1923
1924    (cherry picked from commit b5e6c1113b1ba02c282bd9163eccdb521c937a78)
1925
1926 src/xz/coder.c | 30 +++++++++++++++---------------
1927 1 file changed, 15 insertions(+), 15 deletions(-)
1928
1929commit 3eb7cf9dd5b90a074f741234225d7de51ad88774
1930Author: Lasse Collin <lasse.collin@tukaani.org>
1931Date:   2024-05-12 17:14:43 +0300
1932
1933    xz: Move the setting of "check" in coder_set_compression_settings()
1934
1935    It's more logical to do it in the beginning instead of in the middle
1936    of the filter chain handling.
1937
1938    Fixes: d6af7f347077b22403133239592e478931307759
1939    (cherry picked from commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52)
1940
1941 src/xz/coder.c | 18 +++++++++---------
1942 1 file changed, 9 insertions(+), 9 deletions(-)
1943
1944commit 067961ee0e1adaa66a43fbf8c3be31697554a839
1945Author: Lasse Collin <lasse.collin@tukaani.org>
1946Date:   2024-05-12 17:09:17 +0300
1947
1948    xz: Rename "filters" to "chains"
1949
1950    The convention is that
1951
1952        lzma_filter filters[LZMA_FILTERS_MAX + 1];
1953
1954    contains the filters of a single filter chain.
1955    It was so here as well before the commit
1956    d6af7f347077b22403133239592e478931307759.
1957    It changes "filters" to a ten-element array of filter chains.
1958    It's clearer to call this array-of-arrays "chains".
1959
1960    This also renames "filter_idx" to "chain_idx" which is used
1961    as an index as in chains[chain_idx].
1962
1963    (cherry picked from commit ad146b1f42bbb678175a503a45ce525e779f9b8b)
1964
1965 src/xz/coder.c | 68 +++++++++++++++++++++++++++++-----------------------------
1966 1 file changed, 34 insertions(+), 34 deletions(-)
1967
1968commit 6822f6f891d43c97ea379a51223ce8ea69439161
1969Author: Lasse Collin <lasse.collin@tukaani.org>
1970Date:   2024-05-12 16:56:15 +0300
1971
1972    xz: Clean up a comment
1973
1974    (cherry picked from commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0)
1975
1976 src/xz/coder.c | 9 +++------
1977 1 file changed, 3 insertions(+), 6 deletions(-)
1978
1979commit 0e5e3e7bdcfcdc4b4607665ff0f6ad794e5195af
1980Author: Lasse Collin <lasse.collin@tukaani.org>
1981Date:   2024-05-12 16:52:09 +0300
1982
1983    xz: Add clarifying assertions
1984
1985    (cherry picked from commit 2de80494ed9a4dc7db395a32a5efb770ce769804)
1986
1987 src/xz/coder.c | 4 ++++
1988 1 file changed, 4 insertions(+)
1989
1990commit 77bcf6b76a26833923e62b2dec717474d5d44700
1991Author: Lasse Collin <lasse.collin@tukaani.org>
1992Date:   2024-05-10 20:23:33 +0300
1993
1994    xz: Add a clarifying assertion
1995
1996    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
1997    (cherry picked from commit 1eaad004bf7748976324672db028e34f42802e61)
1998
1999 src/xz/coder.c | 1 +
2000 1 file changed, 1 insertion(+)
2001
2002commit df3efc058a256629ea0153b4750d3df308757038
2003Author: Lasse Collin <lasse.collin@tukaani.org>
2004Date:   2024-05-12 16:47:17 +0300
2005
2006    xz: Clarify a comment
2007
2008    (cherry picked from commit 605094329b986244833c967c04963cacc41a868d)
2009
2010 src/xz/coder.c | 4 +++-
2011 1 file changed, 3 insertions(+), 1 deletion(-)
2012
2013commit 4ebfe11cd33439675f03e1e3725abf03d6f8251b
2014Author: Lasse Collin <lasse.collin@tukaani.org>
2015Date:   2024-05-12 16:28:25 +0300
2016
2017    xz: Use the info collected in parse_block_list()
2018
2019    This is slightly simpler and it avoids looping through
2020    the opt_block_list array.
2021
2022    (cherry picked from commit 8fac2577f2dbb9491afd8500f60d004c9071df3b)
2023
2024 src/xz/coder.c | 95 ++++++++++++++++++++++++----------------------------------
2025 1 file changed, 39 insertions(+), 56 deletions(-)
2026
2027commit bfea6913618357a7034a1d79079bccb688262124
2028Author: Lasse Collin <lasse.collin@tukaani.org>
2029Date:   2024-05-12 15:48:45 +0300
2030
2031    xz: Remember the filter chains and the largest Block in parse_block_list()
2032
2033    (cherry picked from commit 81d350dab864b985b740742772f3b132d4c52914)
2034
2035 src/xz/args.c  | 18 ++++++++++++++++++
2036 src/xz/coder.c |  2 ++
2037 src/xz/coder.h | 13 +++++++++++++
2038 3 files changed, 33 insertions(+)
2039
2040commit d4e33e73922427a0f5277b91b239af538fd41c06
2041Author: Lasse Collin <lasse.collin@tukaani.org>
2042Date:   2024-05-12 15:38:48 +0300
2043
2044    xz: Update a comment and initialization of filters_used_mask
2045
2046    (cherry picked from commit 46ab56968f7dfdac187710a1223659d832fa1565)
2047
2048 src/xz/coder.c | 16 ++++++++--------
2049 1 file changed, 8 insertions(+), 8 deletions(-)
2050
2051commit 3c130737c9bb4a5021bb14eb19e9ceae30ffef3a
2052Author: Lasse Collin <lasse.collin@tukaani.org>
2053Date:   2024-05-12 15:08:10 +0300
2054
2055    xz: parse_block_list: Edit integer type casting
2056
2057    (cherry picked from commit e89293a0baeb8663707c6b4a74fbb310ec698a8f)
2058
2059 src/xz/args.c | 5 ++---
2060 1 file changed, 2 insertions(+), 3 deletions(-)
2061
2062commit 40c8513b4ee42b8c0fae9b2a229e078ac7e0f87a
2063Author: Lasse Collin <lasse.collin@tukaani.org>
2064Date:   2024-05-12 14:51:37 +0300
2065
2066    xz: Make filter_memusages a local variable
2067
2068    (cherry picked from commit 87011e40c168255cd2edea129ee68c901770603b)
2069
2070 src/xz/coder.c | 35 +++++++++++++++++++++--------------
2071 1 file changed, 21 insertions(+), 14 deletions(-)
2072
2073commit cacaf25aa71cd1110cc049d037c11e4075602c35
2074Author: Lasse Collin <lasse.collin@tukaani.org>
2075Date:   2024-05-10 20:33:08 +0300
2076
2077    xz: Remove unused code and simplify
2078
2079    opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't
2080    defined. Thus, when *encoding*, the message about *decoder* memory
2081    usage is possible to show only when both encoder and decoder have
2082    been built.
2083
2084    Since the message is shown only at V_DEBUG, skip the memusage
2085    calculation if verbosity level isn't high enough.
2086
2087    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
2088    (cherry picked from commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5)
2089
2090 src/xz/coder.c | 16 ++++------------
2091 1 file changed, 4 insertions(+), 12 deletions(-)
2092
2093commit 3495a6b291f49079485854bb185a52c29d06cd2f
2094Author: Lasse Collin <lasse.collin@tukaani.org>
2095Date:   2024-05-10 20:22:58 +0300
2096
2097    xz: Fix integer type from uint64_t to uint32_t
2098
2099    lzma_options_lzma.dict_size is uint32_t so use it here too.
2100
2101    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
2102    (cherry picked from commit 31358c057c9de9d6aba96bae112b2d17942de7cb)
2103
2104 src/xz/coder.c | 2 +-
2105 1 file changed, 1 insertion(+), 1 deletion(-)
2106
2107commit 2861d856deb557734f067c5c471d670f0b0c6684
2108Author: Lasse Collin <lasse.collin@tukaani.org>
2109Date:   2024-05-08 21:40:07 +0300
2110
2111    debug/translation.bash: Remove an outdated test command
2112
2113    Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs
2114    at least nice=4. It is rounded up internally by liblzma when needed.
2115
2116    Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
2117    (cherry picked from commit 3f71e0f3a118e1012526f94fd640a626d30cb599)
2118
2119 debug/translation.bash | 1 -
2120 1 file changed, 1 deletion(-)
2121
2122commit 54546babc3feb2786e541b80f9e7216b8f1bd543
2123Author: Lasse Collin <lasse.collin@tukaani.org>
2124Date:   2024-05-07 20:41:28 +0300
2125
2126    Fix the date of NEWS for 5.4.5
2127
2128    (cherry picked from commit b05a516830095a0e1937aeb31c937fb0400408b6)
2129
2130 NEWS | 2 +-
2131 1 file changed, 1 insertion(+), 1 deletion(-)
2132
2133commit a7e58d1fdb493d58854ac599347cf64da0cecca4
2134Author: Lasse Collin <lasse.collin@tukaani.org>
2135Date:   2024-05-07 16:21:15 +0300
2136
2137    Build: Update visibility.m4 from Gnulib
2138
2139    This fixes the syntax of the "serial" line and renames
2140    a temporary variable.
2141
2142    (cherry picked from commit 6d336aeb97b69c496ddc626af403f6f21c753658)
2143
2144 m4/visibility.m4 | 13 +++++++------
2145 1 file changed, 7 insertions(+), 6 deletions(-)
2146
2147commit 07a9cda037042b262ba6c8c18fae4a5b3333d508
2148Author: Lasse Collin <lasse.collin@tukaani.org>
2149Date:   2024-05-07 15:05:21 +0300
2150
2151    po4a/update-po: Delete the *.po.authors files
2152
2153    These are temporary files that are needed only when running po4a.
2154    The top-level Makefile.am puts the whole po4a directory into
2155    distribution tarball (it's simpler) so deleting these temporary
2156    files is needed to prevent them from getting into tarballs.
2157
2158    (cherry picked from commit ab51e8ee610e2a893906859848f93d5cb0d5ba83)
2159
2160 po4a/update-po | 4 ++++
2161 1 file changed, 4 insertions(+)
2162
2163commit 1b4e7dca243d8ef297a245b5ee3ce9cd1ca20f56
2164Author: Lasse Collin <lasse.collin@tukaani.org>
2165Date:   2024-05-07 13:12:17 +0300
2166
2167    xz: Edit comments and coding style
2168
2169    (cherry picked from commit e4780244a17420cc95d5498cd6e02ad10eac6e5f)
2170
2171 src/xz/coder.c | 25 ++++++++++++-------------
2172 1 file changed, 12 insertions(+), 13 deletions(-)
2173
2174commit 18683525a78e96ec6d7c2b4e841e94ad39be7096
2175Author: Lasse Collin <lasse.collin@tukaani.org>
2176Date:   2024-05-06 23:08:22 +0300
2177
2178    xz: Omit an incorrect comment
2179
2180    It likely was a leftover from a development version of the code.
2181
2182    Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f
2183    (cherry picked from commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c)
2184
2185 src/xz/coder.c | 6 +-----
2186 1 file changed, 1 insertion(+), 5 deletions(-)
2187
2188commit 005f0398645b0342c9c1915d422743c77ec1d435
2189Author: Lasse Collin <lasse.collin@tukaani.org>
2190Date:   2024-05-06 23:04:31 +0300
2191
2192    xz: Add braces to a for-statement and to an if-statement
2193
2194    No functional changes.
2195
2196    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
2197    Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a
2198    (cherry picked from commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937)
2199
2200 src/xz/coder.c | 6 ++++--
2201 1 file changed, 4 insertions(+), 2 deletions(-)
2202
2203commit 34be4e6aa62376314fde250ea4f142c18274272f
2204Author: Lasse Collin <lasse.collin@tukaani.org>
2205Date:   2024-05-06 23:00:09 +0300
2206
2207    liblzma: Omit an unneeded array from the x86 filter
2208
2209    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
2210    (cherry picked from commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57)
2211
2212 src/liblzma/simple/x86.c | 5 +----
2213 1 file changed, 1 insertion(+), 4 deletions(-)
2214
2215commit 79e329b771210c30ea317dd4d99e8968f3e6f9b2
2216Author: Lasse Collin <lasse.collin@tukaani.org>
2217Date:   2024-05-06 22:56:31 +0300
2218
2219    CMake: Add test_suffix.sh to the tests
2220
2221    (cherry picked from commit 7da488cb933fdf51cfc14cb5810beb0766224380)
2222
2223 tests/tests.cmake | 13 +++++++++++++
2224 1 file changed, 13 insertions(+)
2225
2226commit 86f33bb90c6cfe6950f1d36c9e5dd7fdc9798124
2227Author: Lasse Collin <lasse.collin@tukaani.org>
2228Date:   2024-05-06 22:55:54 +0300
2229
2230    Test: Add CMake support to test_suffix.sh
2231
2232    It needs to find the xz executable from a different directory
2233    and work without config.h.
2234
2235    (cherry picked from commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876)
2236
2237 tests/test_suffix.sh | 12 +++++++-----
2238 1 file changed, 7 insertions(+), 5 deletions(-)
2239
2240commit 1e243ab378e8f78ebb3af741fb38354954cf20f9
2241Author: Lasse Collin <lasse.collin@tukaani.org>
2242Date:   2024-05-06 20:45:34 +0300
2243
2244    Update INSTALL about MINIX 3
2245
2246    The latest stable is 3.3.0 and it's from 2014.
2247    Don't mention the older versions in INSTALL.
2248    3.3.0 ships with Clang already.
2249
2250    Testing with 3.4.0beta6 shows that tuklib_physmem
2251    works too so omit comments about that from INSTALL.
2252    Visibility warnigns weren't a problem either.
2253
2254    Thus it's enough to mention the need for --disable-threads
2255    as configure doesn't autodetect the lack of pthreads.
2256
2257    (cherry picked from commit 50e19489387774bab3c4a988397d0d9c7a142a46)
2258
2259 INSTALL | 20 +++++++-------------
2260 1 file changed, 7 insertions(+), 13 deletions(-)
2261
2262commit 8595b5ab3ba766eb6daed890bfe91a16fe329c2c
2263Author: Lasse Collin <lasse.collin@tukaani.org>
2264Date:   2024-05-02 23:00:16 +0300
2265
2266    Windows: Remove the "doc/api" line from README-Windows.txt
2267
2268    Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864
2269    (cherry picked from commit 68d18aea1422a2b86b98b71d0b019233d84e01b0)
2270
2271 windows/README-Windows.txt | 2 --
2272 1 file changed, 2 deletions(-)
2273
2274commit a3f163a4ad97189744107e964e4dea505fbcc252
2275Author: Lasse Collin <lasse.collin@tukaani.org>
2276Date:   2024-05-02 22:59:04 +0300
2277
2278    Build: Don't copy doc/api from source tree to distribution tarball
2279
2280    It was copied if it existed. This was intentional when autogen.sh
2281    still built liblzma API docs with Doxygen.
2282
2283    Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
2284    (cherry picked from commit 8ede961374613aa302a13571d662cfaea1cf91f7)
2285
2286 Makefile.am | 5 -----
2287 1 file changed, 5 deletions(-)
2288
2289commit cb0e847fe07099c1ef6d8076f6a46e17bc431acb
2290Author: Sam James <sam@gentoo.org>
2291Date:   2024-05-02 13:26:40 +0100
2292
2293    ci: add SPDX headers
2294
2295    I've checked over each of these and they're straightforward applications
2296    of the relevant Github Actions.
2297
2298    (cherry picked from commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc)
2299
2300 .github/workflows/freebsd.yml | 2 ++
2301 .github/workflows/netbsd.yml  | 2 ++
2302 .github/workflows/openbsd.yml | 2 ++
2303 3 files changed, 6 insertions(+)
2304
2305commit c3c854dc759fe0c5549aa0a730be9e259243edb6
2306Author: Yaroslav Halchenko <debian@onerussian.com>
2307Date:   2024-03-29 14:37:24 -0400
2308
2309    codespell: Ignore the THANKS file and debbugs.gnu.org URL
2310
2311    This way "codespell -i 0" is silent.
2312
2313    This is the first commit from
2314    https://github.com/tukaani-project/xz/pull/93
2315    with trivial edits by Lasse Collin.
2316
2317    (cherry picked from commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3)
2318
2319 .codespellrc | 6 +++++-
2320 1 file changed, 5 insertions(+), 1 deletion(-)
2321
2322commit 3216301aa20fcf9d5a7485e35a295d5c451d9658
2323Author: Lasse Collin <lasse.collin@tukaani.org>
2324Date:   2024-04-30 14:37:11 +0300
2325
2326    Add .gitattributes to clean up git-archive output
2327
2328    (cherry picked from commit 905bfc74fe2670fd9c39014803017ab53d325401)
2329
2330 .gitattributes | 7 +++++++
2331 1 file changed, 7 insertions(+)
2332
2333commit f99e7c69ada9e0db0ee1ebbc38c8ce9390cd9788
2334Author: Lasse Collin <lasse.collin@tukaani.org>
2335Date:   2024-04-19 12:11:09 +0300
2336
2337    xzdec: Support Landlock ABI version 4
2338
2339    This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899
2340    but I forgot to do the same in xzdec.
2341
2342    The Landlock sandbox in xzdec could be stricter as now it's
2343    active only for the last file being decompressed. In xz,
2344    read-only sandbox is used for multi-file case. On the other hand,
2345    xz doesn't go to the strictest mode when processing the last file
2346    when more than one file was specified; xzdec does.
2347
2348    (cherry picked from commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501)
2349
2350 src/xzdec/xzdec.c | 18 ++++++++++++++----
2351 1 file changed, 14 insertions(+), 4 deletions(-)
2352
2353commit bfe9be7a46cfd3b3069c15f7ba1432192bca1f5b
2354Author: Lasse Collin <lasse.collin@tukaani.org>
2355Date:   2024-04-30 22:22:45 +0300
2356
2357    liblzma: Fix incorrect function type error from sanitizer
2358
2359    Clang 17 with -fsanitize=address,undefined:
2360
2361        src/liblzma/common/filter_common.c:366:8: runtime error:
2362            call to function encoder_find through pointer to incorrect
2363            function type 'const lzma_filter_coder *(*)(unsigned long)'
2364        src/liblzma/common/filter_encoder.c:187: note:
2365            encoder_find defined here
2366
2367    Use a wrapper function to get the correct type neatly.
2368    This reduces the number of casts needed too.
2369
2370    This issue could be a problem with control flow integrity (CFI)
2371    methods that check the function type on indirect function calls.
2372
2373    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
2374    (cherry picked from commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8)
2375
2376 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
2377 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
2378 2 files changed, 25 insertions(+), 7 deletions(-)
2379
2380commit 882eadc5b820b6b1495fc91ba3573ac2aa6c1df3
2381Author: Lasse Collin <lasse.collin@tukaani.org>
2382Date:   2024-04-30 21:41:11 +0300
2383
2384    xz: Avoid arithmetic on a null pointer
2385
2386    It's undefined behavior. The result wasn't ever used as it occurred
2387    in the last iteration of a loop.
2388
2389    Clang 17 with -fsanitize=address,undefined:
2390
2391        $ src/xz/xz --block-list=123
2392        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
2393            to null pointer
2394
2395    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
2396    Co-authored-by: Sam James <sam@gentoo.org>
2397    (cherry picked from commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff)
2398
2399 src/xz/args.c | 8 +++++++-
2400 1 file changed, 7 insertions(+), 1 deletion(-)
2401
2402commit ec5458e1c9b2beb416781e81ad4ff22b0149b99d
2403Author: Lasse Collin <lasse.collin@tukaani.org>
2404Date:   2024-04-27 20:42:00 +0300
2405
2406    CMake: Support building liblzma API docs using Doxygen
2407
2408    This is disabled by default to match the default in Autotools.
2409    Use -DUSE_DOXYGEN=ON to enable Doxygen usage.
2410
2411    This uses the update-doxygen script, thus this is under if(UNIX)
2412    although Doxygen itself can run on Windows too.
2413
2414    (cherry picked from commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5)
2415
2416 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++---------
2417 1 file changed, 31 insertions(+), 9 deletions(-)
2418
2419commit 8c93ced56bcb23df723dab23b7477d580720f522
2420Author: Lasse Collin <lasse.collin@tukaani.org>
2421Date:   2024-04-20 23:36:39 +0300
2422
2423    CMake: List API headers in LIBLZMA_API_HEADERS variable
2424
2425    This way the same list will be usable in more than one location.
2426
2427    (cherry picked from commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37)
2428
2429 CMakeLists.txt | 21 ++++++++++++---------
2430 1 file changed, 12 insertions(+), 9 deletions(-)
2431
2432commit f7c9bab0372db357511e42c9c610a2cfe5fca9b1
2433Author: Lasse Collin <lasse.collin@tukaani.org>
2434Date:   2024-04-19 15:16:42 +0300
2435
2436    PACKAGERS: Document the optional Doxygen usage
2437
2438    Also add a note that packagers should check the licensing
2439    of the Doxygen output.
2440
2441    (cherry picked from commit 541406bee3f09e9813103c6406b10fc6ab2e0d30)
2442
2443 PACKAGERS | 19 ++++++++++---------
2444 1 file changed, 10 insertions(+), 9 deletions(-)
2445
2446commit 28e7d130cb843e96d7e6b0358f8dd58bd1b2a275
2447Author: Lasse Collin <lasse.collin@tukaani.org>
2448Date:   2024-04-27 17:47:09 +0300
2449
2450    Build: Add --enable-doxygen to generate and install API docs
2451
2452    It requires Doxygen. This option is disabled by default.
2453
2454    (cherry picked from commit e21efdf96f39378fe417479f89e97046680406f5)
2455
2456 INSTALL                     |  6 ++++++
2457 configure.ac                | 10 +++++++++-
2458 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++
2459 3 files changed, 34 insertions(+), 1 deletion(-)
2460
2461commit cca7e6c05bc6cc51c0271c36856b7fe29f65c648
2462Author: Lasse Collin <lasse.collin@tukaani.org>
2463Date:   2024-04-19 15:15:17 +0300
2464
2465    Doxygen: update-doxygen: Support out-of-tree builds
2466
2467    Also, now $0 is used to refer to the script itself.
2468
2469    (cherry picked from commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b)
2470
2471 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++-------------------
2472 1 file changed, 68 insertions(+), 42 deletions(-)
2473
2474commit 8090d3dc7f0eea4a3a61f4f6d46a0d0866e345fe
2475Author: Lasse Collin <lasse.collin@tukaani.org>
2476Date:   2024-04-28 21:08:00 +0300
2477
2478    Doxygen: Simplify Doxyfile and add SPDX license identifier
2479
2480    This omits all comments and a few non-default options that weren't
2481    needed. Now it contains no copyrighted content from Doxygen itself.
2482
2483    (cherry picked from commit 2c519f641f266fd897edf680827d9c905f411440)
2484
2485 doxygen/Doxyfile | 2698 +-----------------------------------------------------
2486 1 file changed, 25 insertions(+), 2673 deletions(-)
2487
2488commit 0721b8bfe558502669f06c97601fe59ad0d52541
2489Author: Lasse Collin <lasse.collin@tukaani.org>
2490Date:   2024-04-19 15:14:02 +0300
2491
2492    Doxygen: Don't strip JavaScript anymore
2493
2494    The stripping method worked well with Doxygen 1.8 and 1.9 but
2495    it doesn't work with Doxygen 1.10 anymore. Since we won't ship
2496    pre-generated liblzma API docs anymore, the extra bloat and
2497    extra license info of the JavaScript files won't affect the
2498    upstream source package anymore.
2499
2500    (cherry picked from commit bdba39a57530d11b88440df8024002be3d09e4a1)
2501
2502 doxygen/update-doxygen | 21 ---------------------
2503 1 file changed, 21 deletions(-)
2504
2505commit 1ddb40f6fd286c3c6ef510735112db1ac1b60936
2506Author: Lasse Collin <lasse.collin@tukaani.org>
2507Date:   2024-04-19 17:26:41 +0300
2508
2509    Build: Remove old Doxygen rules from top-level Makefile.am
2510
2511    (cherry picked from commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139)
2512
2513 Makefile.am | 12 ------------
2514 1 file changed, 12 deletions(-)
2515
2516commit 092af76234b1bc79380427456b3215aa0b80f339
2517Author: Lasse Collin <lasse.collin@tukaani.org>
2518Date:   2024-04-19 15:10:06 +0300
2519
2520    Update COPYING to match the autogen.sh and mydist changes
2521
2522    (cherry picked from commit fd7faa4c338a42a6a40e854b837d285ae2e8c609)
2523
2524 COPYING | 11 -----------
2525 1 file changed, 11 deletions(-)
2526
2527commit 77bce9a0a250cfb20333ee0dca036b3193dd4941
2528Author: Lasse Collin <lasse.collin@tukaani.org>
2529Date:   2024-04-19 17:23:43 +0300
2530
2531    Build: Don't run update-doxygen as part of "make mydist"
2532
2533    (cherry picked from commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3)
2534
2535 Makefile.am | 1 -
2536 1 file changed, 1 deletion(-)
2537
2538commit 3a2fc62f59b2e8cc45f8d8fd9988b4305efe4bff
2539Author: Lasse Collin <lasse.collin@tukaani.org>
2540Date:   2024-04-19 15:09:48 +0300
2541
2542    autogen.sh: Don't generated Doxygen docs anymore
2543
2544    (cherry picked from commit e9be74f5b129fe8a5388d588e68b1b7f5168a310)
2545
2546 autogen.sh | 18 +++---------------
2547 1 file changed, 3 insertions(+), 15 deletions(-)
2548
2549commit b04c16f9a5a8675a87783305568cadfa3f17d999
2550Author: Lasse Collin <lasse.collin@tukaani.org>
2551Date:   2024-04-19 17:41:36 +0300
2552
2553    windows/build.bash: Omit Doxygen docs from the package
2554
2555    They will be omitted from the source tarball and I don't want
2556    to make Doxygen a dependency of build.bash.
2557
2558    (cherry picked from commit 252aa1d67bc015eeba462803ab72edeb7744d864)
2559
2560 windows/build.bash | 4 ++--
2561 1 file changed, 2 insertions(+), 2 deletions(-)
2562
2563commit d4dd3c8f6169adf50cad8fe6872e0f5fcb82475c
2564Author: Lasse Collin <lasse.collin@tukaani.org>
2565Date:   2024-04-19 14:14:47 +0300
2566
2567    README: Don't mention PDF man pages anymore
2568
2569    (cherry picked from commit 634095364d87444d62d8ec54c134c0cd4705f5d7)
2570
2571 README | 6 +++---
2572 1 file changed, 3 insertions(+), 3 deletions(-)
2573
2574commit be90720d6cd7fbb1b170794445815f579b444a6f
2575Author: Lasse Collin <lasse.collin@tukaani.org>
2576Date:   2024-04-19 14:10:39 +0300
2577
2578    Build: Omit PDF man pages from the package
2579
2580    pdf-local rule was added to create the PDFs still with "make pdf".
2581    The install rules are missing but that likely doesn't matter at all.
2582
2583    (cherry picked from commit dc684bf76ea23574ee9d88382057381e04e6089a)
2584
2585 Makefile.am | 29 +++++++++++++++++++----------
2586 1 file changed, 19 insertions(+), 10 deletions(-)
2587
2588commit f724552d0c1ae2e3aa693d80d8d0da962dfac4e8
2589Author: Lasse Collin <lasse.collin@tukaani.org>
2590Date:   2024-04-19 13:54:39 +0300
2591
2592    windows/build.bash: Don't copy PDF man pages to the package
2593
2594    (cherry picked from commit e3531ab4125cbd5c01ebd3200791350960547189)
2595
2596 windows/README-Windows.txt | 2 +-
2597 windows/build.bash         | 2 +-
2598 2 files changed, 2 insertions(+), 2 deletions(-)
2599
2600commit 00e774819c6550a8eac219e9f6f083ab2b155505
2601Author: Lasse Collin <lasse.collin@tukaani.org>
2602Date:   2024-04-28 01:34:50 +0300
2603
2604    Tests: test_index: Fix failures when features are disabled
2605
2606    Fixes: cd88423e76d54eb72aea037364f3ebb21f122503
2607    (cherry picked from commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7)
2608
2609 tests/test_index.c | 13 ++++++++-----
2610 1 file changed, 8 insertions(+), 5 deletions(-)
2611
2612commit 51133ad71eecc19bdb3ab287a0732fd9441753f4
2613Author: Lasse Collin <lasse.collin@tukaani.org>
2614Date:   2024-04-20 17:09:11 +0300
2615
2616    CMake: Keep the build working if the "tests" directory is missing
2617
2618    This moves the tests section as is from CMakeLists.txt into
2619    tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake
2620    if the latter file exists.
2621
2622    Now it's possible to delete the whole "tests" directory and
2623    building with CMake will still work normally, just without
2624    the tests. This way the tests are readily available for those
2625    who want them, and those who won't run the tests anyway have
2626    a straightforward way to ensure that nothing from the "tests"
2627    directory can affect the build process.
2628
2629    (cherry picked from commit aaff75c3486c4489ce88b0efb36b41cf138af7c3)
2630
2631 CMakeLists.txt    | 76 ++---------------------------------------------
2632 tests/Makefile.am |  1 +
2633 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2634 3 files changed, 92 insertions(+), 73 deletions(-)
2635
2636commit 85b5595b67f0081b2a900104ed7589de4bb75e12
2637Author: Lasse Collin <lasse.collin@tukaani.org>
2638Date:   2024-04-20 13:12:50 +0300
2639
2640    Tests: Remove x86 and SPARC BCJ tests
2641
2642    These are very old but the exact test file isn't easy to reproduce
2643    as it was compiled from a short C program (bcj_test.c) long ago.
2644    These tests weren't very good anyway, just a little better than nothing.
2645
2646    (cherry picked from commit a5f2aa5618fe9183706c9c514c3067985f6c338b)
2647
2648 tests/Makefile.am                      |   7 ----
2649 tests/bcj_test.c                       |  64 ---------------------------------
2650 tests/compress_prepared_bcj_sparc      | Bin 1240 -> 0 bytes
2651 tests/compress_prepared_bcj_x86        | Bin 1388 -> 0 bytes
2652 tests/files/README                     |   8 -----
2653 tests/files/good-1-sparc-lzma2.xz      | Bin 612 -> 0 bytes
2654 tests/files/good-1-x86-lzma2.xz        | Bin 716 -> 0 bytes
2655 tests/test_compress_prepared_bcj_sparc |   4 ---
2656 tests/test_compress_prepared_bcj_x86   |   4 ---
2657 9 files changed, 87 deletions(-)
2658
2659commit d8228d1ea08155a17acaadd76ed95805d3b0a929
2660Author: Lasse Collin <lasse.collin@tukaani.org>
2661Date:   2024-04-27 18:30:40 +0300
2662
2663    Tests: test_index: Edit a misleading test
2664
2665    (cherry picked from commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07)
2666
2667 tests/test_index.c | 7 +++++--
2668 1 file changed, 5 insertions(+), 2 deletions(-)
2669
2670commit 2358ef8238f166c49e66f438e7494d4d352eb113
2671Author: Lasse Collin <lasse.collin@tukaani.org>
2672Date:   2024-04-27 16:46:01 +0300
2673
2674    Tests: test_index: Use minimal values to test integer overflow
2675
2676    (cherry picked from commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd)
2677
2678 tests/test_index.c | 4 ++--
2679 1 file changed, 2 insertions(+), 2 deletions(-)
2680
2681commit 54f4a4162aae8796580489013583d6148be5a473
2682Author: Lasse Collin <lasse.collin@tukaani.org>
2683Date:   2024-04-27 15:13:39 +0300
2684
2685    Tests: test_index: Test lzma_index_buffer_decode() more
2686
2687    (cherry picked from commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d)
2688
2689 tests/test_index.c | 29 ++++++++++++++++++++++++++---
2690 1 file changed, 26 insertions(+), 3 deletions(-)
2691
2692commit 85ab59a6b70db33f320a3ea7a854249cb693dea2
2693Author: Lasse Collin <lasse.collin@tukaani.org>
2694Date:   2024-04-27 15:08:29 +0300
2695
2696    Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR
2697
2698    On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was
2699    already done but this adds a test for that case too.
2700
2701    (cherry picked from commit 575b11b0d291e66c5fce31ce7a72f11436d57c83)
2702
2703 tests/test_index.c | 31 +++++++++++++++++++++++++++----
2704 1 file changed, 27 insertions(+), 4 deletions(-)
2705
2706commit fb42599e44dde417305c7d92fd782147ca923079
2707Author: Lasse Collin <lasse.collin@tukaani.org>
2708Date:   2024-04-27 15:01:25 +0300
2709
2710    Tests: test_index: Test lzma_index_buffer_encode() with empty output buf
2711
2712    (cherry picked from commit 2c970debdb285823f01f75e875561d893345ac2b)
2713
2714 tests/test_index.c | 3 +++
2715 1 file changed, 3 insertions(+)
2716
2717commit 20cac20f63a96a39391f2d613bef0f7bd6553495
2718Author: Lasse Collin <lasse.collin@tukaani.org>
2719Date:   2024-04-27 14:59:55 +0300
2720
2721    Tests: test_index: Replace if-statements with tuktest assertions
2722
2723    (cherry picked from commit cd88423e76d54eb72aea037364f3ebb21f122503)
2724
2725 tests/test_index.c | 22 +++++++++-------------
2726 1 file changed, 9 insertions(+), 13 deletions(-)
2727
2728commit 91e3ea8735752db5d0373991e84607196070aeaa
2729Author: Lasse Collin <lasse.collin@tukaani.org>
2730Date:   2024-04-27 14:56:16 +0300
2731
2732    Tests: test_index: Make it clear that my_alloc() has no integer overflows
2733
2734    liblzma guarantees that the product of the allocation size arguments
2735    will fit in size_t.
2736
2737    Putting the pre-increment in the if-statement was clearly wrong
2738    although in practice it didn't matter here as the function is
2739    called only a couple of times.
2740
2741    (cherry picked from commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51)
2742
2743 tests/test_index.c | 5 ++++-
2744 1 file changed, 4 insertions(+), 1 deletion(-)
2745
2746commit df1659a6c8367db69e82e2ea59ad5f959cf4e615
2747Author: Lasse Collin <lasse.collin@tukaani.org>
2748Date:   2024-04-27 14:51:52 +0300
2749
2750    Tests: test_index: Verify also iter.block.number_in_stream
2751
2752    (cherry picked from commit 12313a3b6596cdcf012e180597f84d231f8730d3)
2753
2754 tests/test_index.c | 2 ++
2755 1 file changed, 2 insertions(+)
2756
2757commit e083e95dbfda73900109cca4c82c8713d0a1da21
2758Author: Lasse Collin <lasse.collin@tukaani.org>
2759Date:   2024-04-27 14:51:06 +0300
2760
2761    Tests: test_index: Check cases that aren't a multiple of 4 bytes
2762
2763    (cherry picked from commit ad2654010d9d641ce1601beeff00630027e6bcd4)
2764
2765 tests/test_index.c | 33 +++++++++++++++++++++++++--------
2766 1 file changed, 25 insertions(+), 8 deletions(-)
2767
2768commit b0d3b86ecf1881d10e6614b64b0fcc6c16a3b08f
2769Author: Lasse Collin <lasse.collin@tukaani.org>
2770Date:   2024-04-27 14:40:25 +0300
2771
2772    Tests: test_index: Edit comments and white space
2773
2774    (cherry picked from commit 2524fcf2b68b662035437cee8edbe80067c0c240)
2775
2776 tests/test_index.c | 18 +++++++++++-------
2777 1 file changed, 11 insertions(+), 7 deletions(-)
2778
2779commit bae288ea6ffb976c36e2387c03d75ce84a8a1034
2780Author: Lasse Collin <lasse.collin@tukaani.org>
2781Date:   2024-04-27 14:33:38 +0300
2782
2783    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
2784
2785    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
2786    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
2787    argument wasn't touched even though the API docs say that *i = NULL
2788    is done if an error occurs. This obviously won't be done even now
2789    if i == NULL but otherwise it is best to do it due to the wording
2790    in the API docs.
2791
2792    In practice this matters very little: The problem can occur only
2793    if the functions are called with invalid arguments, that is,
2794    the calling application must already have a bug.
2795
2796    (cherry picked from commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0)
2797
2798 src/liblzma/common/index_decoder.c | 11 +++++++++++
2799 1 file changed, 11 insertions(+)
2800
2801commit f10cb93f335900a29e50f990b751996ef026b3a3
2802Author: Lasse Collin <lasse.collin@tukaani.org>
2803Date:   2024-04-26 18:25:18 +0300
2804
2805    CMake: Bump maximum policy version to 3.29
2806
2807    (cherry picked from commit 0478473953f50716a2bc37b619b1c7dc2682b1ad)
2808
2809 CMakeLists.txt | 2 +-
2810 1 file changed, 1 insertion(+), 1 deletion(-)
2811
2812commit 59055d70cdd3df091264ae9da793821bfd65314d
2813Author: Sam James <sam@gentoo.org>
2814Date:   2024-04-13 22:30:44 +0100
2815
2816    ci: add NetBSD
2817
2818    (cherry picked from commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3)
2819
2820 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++
2821 1 file changed, 29 insertions(+)
2822
2823commit 812c1f95f37751aaa1e020fc2360949a674842fd
2824Author: Sam James <sam@gentoo.org>
2825Date:   2024-04-13 23:49:26 +0100
2826
2827    ci: add FreeBSD
2828
2829    (cherry picked from commit 72c210336de26fb87a928160d025fa10a638d23b)
2830
2831 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++
2832 1 file changed, 29 insertions(+)
2833
2834commit d2a4f963c28b864aa179464f7827cc10c6e1365d
2835Author: Sam James <sam@gentoo.org>
2836Date:   2024-04-13 23:16:08 +0100
2837
2838    ci: add OpenBSD
2839
2840    (cherry picked from commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2)
2841
2842 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++
2843 1 file changed, 31 insertions(+)
2844
2845commit 493bc57c33385bda5ad32d01ab73dcfe8f5e7ced
2846Author: Sam James <sam@gentoo.org>
2847Date:   2024-04-15 05:53:01 +0100
2848
2849    liblzma: outqueue: add header guard
2850
2851    Reported by github's codeql.
2852
2853    (cherry picked from commit c7ef767c49351743d8d011574abb9e200bf6b24f)
2854
2855 src/liblzma/common/outqueue.h | 5 +++++
2856 1 file changed, 5 insertions(+)
2857
2858commit cede418d4f8e1fb4c8a30839fa5d3b14743e83d4
2859Author: Sam James <sam@gentoo.org>
2860Date:   2024-04-15 05:53:56 +0100
2861
2862    liblzma: easy_preset: add header guard
2863
2864    Reported by github's codeql.
2865
2866    (cherry picked from commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c)
2867
2868 src/liblzma/common/easy_preset.h | 5 +++++
2869 1 file changed, 5 insertions(+)
2870
2871commit 6e76a25df28b47407a201bf0381fa6d3c80cb0bb
2872Author: Lasse Collin <lasse.collin@tukaani.org>
2873Date:   2024-04-25 14:00:57 +0300
2874
2875    tuklib_integer: Rename bswapXX to byteswapXX
2876
2877    The __builtin_bswapXX from GCC and Clang are preferred when
2878    they are available. This can allow compilers to emit the x86 MOVBE
2879    instruction instead of doing a load + byteswap as two instructions
2880    (which would happen if the byteswapping is done in inline asm).
2881
2882    bswap16, bswap32, and bswap64 exist in system headers on *BSDs
2883    and Darwin. #defining bswap16 on NetBSD results in a warning about
2884    macro redefinition. It's safest to avoid this namespace conflict
2885    completely.
2886
2887    No OS supported by tuklib_integer.h uses byteswapXX names and
2888    a web search doesn't immediately find any obvious danger of
2889    namespace conflicts. So let's try these still-pretty-short names
2890    for the macros.
2891
2892    Thanks to Sam James for pointing out the compiler warning on
2893    NetBSD 10.0.
2894
2895    (cherry picked from commit 4ffc60f32397371769b7d6b5e3ed8626292d58df)
2896
2897 src/common/tuklib_integer.h        | 47 ++++++++++++++++++++------------------
2898 src/liblzma/check/crc32_fast.c     |  4 ++--
2899 src/liblzma/check/crc32_tablegen.c |  2 +-
2900 src/liblzma/check/crc64_fast.c     |  4 ++--
2901 src/liblzma/check/crc64_tablegen.c |  2 +-
2902 5 files changed, 31 insertions(+), 28 deletions(-)
2903
2904commit 0ca14871f306b97ce81bfe44c4a39b6b2af31bb3
2905Author: Lasse Collin <lasse.collin@tukaani.org>
2906Date:   2024-04-24 01:20:26 +0300
2907
2908    liblzma: API doc cleanups
2909
2910    (cherry picked from commit 08ab0966a75b501aa7c717622223f0c13a113c75)
2911
2912 src/liblzma/api/lzma/container.h | 2 +-
2913 src/liblzma/api/lzma/index.h     | 6 +++---
2914 src/liblzma/api/lzma/vli.h       | 5 ++---
2915 3 files changed, 6 insertions(+), 7 deletions(-)
2916
2917commit 94a462850bc8718f5dd5b30116bce2165b2403c2
2918Author: Lasse Collin <lasse.collin@tukaani.org>
2919Date:   2024-04-23 16:35:33 +0300
2920
2921    Tests: test_filter_str: Add a few assertions
2922
2923    (cherry picked from commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989)
2924
2925 tests/test_filter_str.c | 4 ++++
2926 1 file changed, 4 insertions(+)
2927
2928commit 72058ca22a7f3c9c67ed58be624f8302c6337cd7
2929Author: Lasse Collin <lasse.collin@tukaani.org>
2930Date:   2024-04-23 16:35:08 +0300
2931
2932    Tests: test_filter_str: Move one assertion and add a comment
2933
2934    (cherry picked from commit 26c69be80523b05c84dea86c47c4ddd9a10945d7)
2935
2936 tests/test_filter_str.c | 6 ++++--
2937 1 file changed, 4 insertions(+), 2 deletions(-)
2938
2939commit c59ebbe1c6dd18b78a046aae3133702dd52c352e
2940Author: Lasse Collin <lasse.collin@tukaani.org>
2941Date:   2024-04-23 16:26:06 +0300
2942
2943    Tests: test_filter_str: Tweak comments and white space
2944
2945    (cherry picked from commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b)
2946
2947 tests/test_filter_str.c | 3 +++
2948 1 file changed, 3 insertions(+)
2949
2950commit ceda860934b0272689d0722ceeb490cf9c559956
2951Author: Lasse Collin <lasse.collin@tukaani.org>
2952Date:   2024-04-23 16:25:22 +0300
2953
2954    Tests: test_filter_str: Add missing RISC-V case
2955
2956    Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
2957    (cherry picked from commit c92663aa1bd576e0615498a4189acf0df12e84b9)
2958
2959 tests/test_filter_str.c | 3 +++
2960 1 file changed, 3 insertions(+)
2961
2962commit 2234b7cc472e62f3401216a71261579342fa2959
2963Author: Lasse Collin <lasse.collin@tukaani.org>
2964Date:   2024-04-22 22:23:32 +0300
2965
2966    Tests: test_filter_str: Test *error_pos more thoroughly
2967
2968    (cherry picked from commit b0366df1d7ed26268101f9303a001c91c0806dfc)
2969
2970 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++-
2971 1 file changed, 76 insertions(+), 1 deletion(-)
2972
2973commit 3ba3ef57f929670adb1f9c5e5207a81a29374237
2974Author: Lasse Collin <lasse.collin@tukaani.org>
2975Date:   2024-04-22 21:54:39 +0300
2976
2977    liblzma: lzma_str_to_filters: Set *error_pos on all errors
2978
2979    The API docs clearly say that if error_pos isn't NULL then *error
2980    is always set on any error. However, it wasn't touched if str == NULL
2981    or filters == NULL or unsupported flags were specified.
2982
2983    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
2984    (cherry picked from commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d)
2985
2986 src/liblzma/common/string_conversion.c | 6 ++++++
2987 1 file changed, 6 insertions(+)
2988
2989commit 57ad820e15381344a812c78ce9b67a77a60b9cf3
2990Author: Lasse Collin <lasse.collin@tukaani.org>
2991Date:   2024-04-22 20:31:25 +0300
2992
2993    liblzma: Clean up white space
2994
2995    (cherry picked from commit ed8e552395701fbf046027cebc8be4a6755b263f)
2996
2997 src/liblzma/lz/lz_encoder.h | 2 +-
2998 1 file changed, 1 insertion(+), 1 deletion(-)
2999
3000commit ba0b5bfe7cb3cdbd9a4e3c268e10c304cb834e8a
3001Author: Lasse Collin <lasse.collin@tukaani.org>
3002Date:   2024-04-22 18:35:19 +0300
3003
3004    Tests: test_filter_flags: Edit comments and style
3005
3006    (cherry picked from commit 2f06920f20b1ad63b7953dc09569e1d424998849)
3007
3008 tests/test_filter_flags.c | 13 +++++++++----
3009 1 file changed, 9 insertions(+), 4 deletions(-)
3010
3011commit d2ed6759596185ac6a9c69ea713c27cd4bd1d9ba
3012Author: Lasse Collin <lasse.collin@tukaani.org>
3013Date:   2024-04-22 16:39:44 +0300
3014
3015    Tests: Fix C99/C11 compatibility when features are disabled
3016
3017    The array could become empty and then the initializer would be
3018    simply {} which is allowed only in GNU-C and C23.
3019
3020    (cherry picked from commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82)
3021
3022 tests/test_filter_flags.c | 18 ++++++++----------
3023 1 file changed, 8 insertions(+), 10 deletions(-)
3024
3025commit 9a70e93fef3fd5943484e56f1881a7c6e3296027
3026Author: Lasse Collin <lasse.collin@tukaani.org>
3027Date:   2024-04-21 20:32:16 +0300
3028
3029    DOS: Omit useless defines from config.h
3030
3031    (cherry picked from commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d)
3032
3033 dos/config.h | 12 ------------
3034 1 file changed, 12 deletions(-)
3035
3036commit dc4740f720e08bdd496aa2736db3b7aea6dd3d1e
3037Author: Lasse Collin <lasse.collin@tukaani.org>
3038Date:   2024-04-21 20:27:50 +0300
3039
3040    Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h
3041
3042    (cherry picked from commit fc1921b04b8840caaa777c2bd5340d41b259da20)
3043
3044 configure.ac | 6 ------
3045 1 file changed, 6 deletions(-)
3046
3047commit 6e210d5766b25d36729152a13c5889bb0605a1e3
3048Author: Lasse Collin <lasse.collin@tukaani.org>
3049Date:   2024-04-19 22:04:21 +0300
3050
3051    liblzma: Silence a warning from Coverity static analysis
3052
3053    It is logical why it cannot know for sure that the value has
3054    to be at most 4 if it is less than 16.
3055
3056    The x86 filter is based on a very old LZMA SDK version. Newer
3057    ones have quite a different implementation for the same filter.
3058
3059    Thanks to Sam James.
3060
3061    (cherry picked from commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4)
3062
3063 src/liblzma/simple/x86.c | 12 +++++-------
3064 1 file changed, 5 insertions(+), 7 deletions(-)
3065
3066commit 4019b012f29008ea6545aba6fe6c141a2d920ae2
3067Author: Lasse Collin <lasse.collin@tukaani.org>
3068Date:   2024-04-19 23:18:19 +0300
3069
3070    Update .gitignore
3071
3072    (cherry picked from commit e89d3e83b4496d0b5410870634970c0aa9721d59)
3073
3074 .gitignore | 21 ++++++++-------------
3075 1 file changed, 8 insertions(+), 13 deletions(-)
3076
3077commit 09a0311a1e8cdefbcfab9e490cdd41c97a459d24
3078Author: Lasse Collin <lasse.collin@tukaani.org>
3079Date:   2024-04-19 20:53:24 +0300
3080
3081    Tests: test_lzip_decoder: Tweak coding style and comments
3082
3083    (cherry picked from commit 86fc4ee859709da0ff9617a1490f13ddac0a109b)
3084
3085 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------
3086 1 file changed, 28 insertions(+), 30 deletions(-)
3087
3088commit 3117336a0291309ddd2a54d2966a589f9f806850
3089Author: Lasse Collin <lasse.collin@tukaani.org>
3090Date:   2024-04-19 20:51:36 +0300
3091
3092    Tests: test_lzip_decoder: Remove redundant initializations
3093
3094    (cherry picked from commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5)
3095
3096 tests/test_lzip_decoder.c | 6 ++----
3097 1 file changed, 2 insertions(+), 4 deletions(-)
3098
3099commit f78081eb12c804ec4f5a3dc569b859646b16e9e5
3100Author: Lasse Collin <lasse.collin@tukaani.org>
3101Date:   2024-04-19 20:47:24 +0300
3102
3103    Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
3104
3105    (cherry picked from commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9)
3106
3107 tests/test_lzip_decoder.c | 12 ++----------
3108 1 file changed, 2 insertions(+), 10 deletions(-)
3109
3110commit 7413383e4280065b79ca70abe4d8ebc78055b35a
3111Author: Lasse Collin <lasse.collin@tukaani.org>
3112Date:   2024-04-15 20:35:07 +0300
3113
3114    xz: Fix white space error.
3115
3116    Thanks to xx on #tukaani.
3117
3118    (cherry picked from commit eeca8f7c5baf1ad69606bb734d5001763466d58f)
3119
3120 src/xz/args.c | 2 +-
3121 1 file changed, 1 insertion(+), 1 deletion(-)
3122
3123commit eed2f26c0edb6e31a50d48bab4ff619778690a1e
3124Author: Sam James <sam@gentoo.org>
3125Date:   2024-04-11 23:01:44 +0100
3126
3127    xz: add missing noreturn for message_filters_help
3128
3129    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
3130    (cherry picked from commit 462ca9409940a19f743daee6b3bcc611277d0007)
3131
3132 src/xz/message.h | 1 +
3133 1 file changed, 1 insertion(+)
3134
3135commit 2633d8df616405bd54fd748d7bf887ebc4505b88
3136Author: Sam James <sam@gentoo.org>
3137Date:   2024-04-11 19:34:04 +0100
3138
3139    xz: signals: suppress -Wsign-conversion on macOS
3140
3141    On macOS, we get:
3142    ```
3143    signals.c: In function 'signals_init':
3144    signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
3145       76 |                 sigaddset(&hooked_signals, sigs[i]);
3146          |                 ^~~~~~~~~
3147    signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
3148       81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
3149          |                 ^~~~~~~~~
3150    signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
3151       86 |         sigaddset(&hooked_signals, SIGTSTP);
3152          |         ^~~~~~~~~
3153    ```
3154
3155    We use `int` for `hooked_signals` but we can't just cast to whatever
3156    `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
3157    on macOS. On macOS, `sigaddset` is implemented as a macro.
3158
3159    Just suppress -Wsign-conversion for `signals_init` for macOS given
3160    there's no real nice way of fixing this.
3161
3162    (cherry picked from commit 863f13d2828b99b0539ce73f9cf85bde32358034)
3163
3164 src/xz/signals.c | 7 +++++++
3165 1 file changed, 7 insertions(+)
3166
3167commit 50fb269c7a9cf62a9f3fe08859e2aa4348b600a7
3168Author: Lasse Collin <lasse.collin@tukaani.org>
3169Date:   2024-04-13 22:19:40 +0300
3170
3171    Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
3172
3173    (cherry picked from commit fcbd0d199933a69713cb293cbd7409a757d854cd)
3174
3175 tests/test_microlzma.c | 8 ++++++++
3176 1 file changed, 8 insertions(+)
3177
3178commit 3e2ff2d38c54c8fc7ce15aaf91185dc105d9c92c
3179Author: Lasse Collin <lasse.collin@tukaani.org>
3180Date:   2024-04-13 18:05:31 +0300
3181
3182    Tests: test_microlzma: Tweak comments, coding style, and minor details
3183
3184    A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
3185    and a few uint32_t were changed to size_t. No real functional changes
3186    were intended.
3187
3188    (cherry picked from commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e)
3189
3190 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++----------------------
3191 1 file changed, 83 insertions(+), 66 deletions(-)
3192
3193commit ebc8b8de19d641c37ab7959a224bcd0ff4c0833f
3194Author: Ryan Carsten Schmidt <git@ryandesign.com>
3195Date:   2024-04-12 19:31:13 -0500
3196
3197    CI: Use only the active CPUs on macOS
3198
3199    hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
3200    only the active CPUs.
3201
3202    (cherry picked from commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992)
3203
3204 build-aux/ci_build.bash | 2 +-
3205 1 file changed, 1 insertion(+), 1 deletion(-)
3206
3207commit 1e63f7d53648beb6dd5acb5771850d7c4bc30477
3208Author: Sam James <sam@gentoo.org>
3209Date:   2024-04-10 18:33:55 +0100
3210
3211    ci: rename ci_build.sh -> ci_build.bash
3212
3213    We discussed the name and it's less cognitive load to just call it '.bash'
3214    so you don't have an immediate question about if bashisms are OK.
3215
3216    (cherry picked from commit 73f629e321b74f68c9954728fa4f19261afccf46)
3217
3218 .github/workflows/ci.yml                 | 52 ++++++++++++++++----------------
3219 .github/workflows/windows-ci.yml         | 20 ++++++------
3220 build-aux/{ci_build.sh => ci_build.bash} |  0
3221 3 files changed, 36 insertions(+), 36 deletions(-)
3222
3223commit aea54a4724414466a20afd7493156d40d0a2741c
3224Author: Sam James <sam@gentoo.org>
3225Date:   2024-04-10 17:42:23 +0100
3226
3227    ci: build in parallel by default
3228
3229    (cherry picked from commit 8709407a9ef8e7e8aec117879400e4dd3e227ada)
3230
3231 build-aux/ci_build.sh | 2 ++
3232 1 file changed, 2 insertions(+)
3233
3234commit 4381fcf00b2fabb6dcc9fd5cf35d520feb9e775a
3235Author: Sam James <sam@gentoo.org>
3236Date:   2024-04-10 15:41:08 +0100
3237
3238    ci: default to -O2
3239
3240    We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
3241    with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
3242    environment and append what was passed on the command line.
3243
3244    (cherry picked from commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f)
3245
3246 build-aux/ci_build.sh | 3 ++-
3247 1 file changed, 2 insertions(+), 1 deletion(-)
3248
3249commit 752ba5ed99ec754bafbdc4d87a2876cb2566ecc4
3250Author: Sam James <sam@gentoo.org>
3251Date:   2024-04-10 15:17:47 +0100
3252
3253    ci: make automake's test runner verbose on failures
3254
3255    This is a lot easier to work with than the save-logs thing the action
3256    tries to do...
3257
3258    (cherry picked from commit bc899f9e0700ad153bd65f4804c4de7515c8a847)
3259
3260 build-aux/ci_build.sh | 2 +-
3261 1 file changed, 1 insertion(+), 1 deletion(-)
3262
3263commit cc21af171599ffe0419fc32a30edd3ef7d479865
3264Author: Sam James <sam@gentoo.org>
3265Date:   2024-04-10 12:38:51 +0100
3266
3267    ci: make UBSAN abort on errors
3268
3269    Unfortunately, UBSAN doesn't do this by default. See also the change
3270    I made in Meson for this in October [0].
3271
3272    [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c
3273
3274    (cherry picked from commit b5e3470442531717b2457b40ab412740296af1bc)
3275
3276 .github/workflows/ci.yml | 1 +
3277 1 file changed, 1 insertion(+)
3278
3279commit 2d2d5f14b392cd1aeddab7ce34fd50ba5422e5b5
3280Author: Sam James <sam@gentoo.org>
3281Date:   2024-04-10 11:43:10 +0100
3282
3283    ci: test Valgrind
3284
3285    Using `--trace-children=yes` has a trade-off here, as it makes
3286    `test_scripts.sh` pretty slow when calling various non-xz utilities.
3287
3288    But I also feel like it's not useless to have Valgrind used there and it's
3289    not easy to exclude Valgrind just for that one test...
3290
3291    I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
3292    immediately with some conditionally-built tests and I wondered if it was
3293    worth spending time on at least while we're debating xz's future build
3294    system situation.
3295
3296    [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
3297    [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/
3298
3299    (cherry picked from commit 6c095a98fbec70b790253a663173ecdb669108c4)
3300
3301 .github/workflows/ci.yml | 11 ++++++++++-
3302 build-aux/ci_build.sh    |  8 +++++---
3303 2 files changed, 15 insertions(+), 4 deletions(-)
3304
3305commit 5d20a612051fac3ca6d99abe3cd7e0e3370e5b67
3306Author: Lasse Collin <lasse.collin@tukaani.org>
3307Date:   2024-04-10 23:20:02 +0300
3308
3309    liblzma: CRC: Simplify table omission macros
3310
3311    A macro is useful to prevent a single #if directive from
3312    getting too ugly but only one macro is needed for all archs.
3313
3314    (cherry picked from commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59)
3315
3316 src/liblzma/check/crc32_table.c | 10 ++++------
3317 src/liblzma/check/crc64_table.c |  4 ++--
3318 src/liblzma/check/crc_common.h  |  5 +++--
3319 3 files changed, 9 insertions(+), 10 deletions(-)
3320
3321commit 2a80827e23169c624560ac89714bf5084cbead43
3322Author: Lasse Collin <lasse.collin@tukaani.org>
3323Date:   2024-04-10 23:09:40 +0300
3324
3325    liblzma: ARM64 CRC: Fix omission of CRC32 table
3326
3327    The macro name had an odd typo so the table wasn't omitted
3328    when it should have.
3329
3330    Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
3331    (cherry picked from commit 45da936c879acf4f053a3055665bf1b10ded4462)
3332
3333 src/liblzma/check/crc32_table.c | 2 +-
3334 1 file changed, 1 insertion(+), 1 deletion(-)
3335
3336commit a54117377151356c1e2494ba1febc245cb71b51c
3337Author: Lasse Collin <lasse.collin@tukaani.org>
3338Date:   2024-04-10 22:21:51 +0300
3339
3340    Build: If ARM64 feature detection func is found, stop looking for others
3341
3342    This can speed up configure a tiny bit.
3343
3344    Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
3345    (cherry picked from commit 308a9af85400b0e2019f0f012c8354e831d06d65)
3346
3347 configure.ac | 2 +-
3348 1 file changed, 1 insertion(+), 1 deletion(-)
3349
3350commit 9223ad6e78a666cc9f9aba135d1755fec184a24a
3351Author: Lasse Collin <lasse.collin@tukaani.org>
3352Date:   2024-04-10 22:04:27 +0300
3353
3354    liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
3355
3356    I didn't test this but it shouldn't change any functionality.
3357
3358    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
3359    (cherry picked from commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6)
3360
3361 src/liblzma/check/crc32_arm64.h | 7 ++++---
3362 1 file changed, 4 insertions(+), 3 deletions(-)
3363
3364commit 32ceb2c36a0e450037bbe906c2a1ea42607b9d21
3365Author: Lasse Collin <lasse.collin@tukaani.org>
3366Date:   2024-04-10 21:59:27 +0300
3367
3368    liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
3369
3370    Also add parenthesis to the return statement.
3371
3372    I didn't test this.
3373
3374    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
3375    (cherry picked from commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57)
3376
3377 src/liblzma/check/crc32_arm64.h | 6 ++++--
3378 1 file changed, 4 insertions(+), 2 deletions(-)
3379
3380commit 42915101e914dba353c236925bc1d5e4826d3f7a
3381Author: Lasse Collin <lasse.collin@tukaani.org>
3382Date:   2024-04-10 21:56:33 +0300
3383
3384    liblzma: ARM64 CRC32: Use negation instead of subtracting from 8
3385
3386    Subtracting from 0 is negation, this just keeps warnings away.
3387
3388    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
3389    (cherry picked from commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0)
3390
3391 src/liblzma/check/crc32_arm64.h | 2 +-
3392 1 file changed, 1 insertion(+), 1 deletion(-)
3393
3394commit 42a9482b48f0171852fbaddbdc729a56f2daa547
3395Author: Lasse Collin <lasse.collin@tukaani.org>
3396Date:   2024-04-10 21:55:10 +0300
3397
3398    liblzma: ARM64 CRC32: Tweak coding style and comments
3399
3400    (cherry picked from commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7)
3401
3402 src/liblzma/check/crc32_arm64.h | 10 +++++-----
3403 1 file changed, 5 insertions(+), 5 deletions(-)
3404
3405commit 38a3ec5a7e2ddeee3686be64b037aa1377f31fd1
3406Author: Lasse Collin <lasse.collin@tukaani.org>
3407Date:   2024-04-09 17:47:01 +0300
3408
3409    CI: Remove ifunc support.
3410
3411    (cherry picked from commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a)
3412
3413 .github/workflows/ci.yml | 13 +++----------
3414 build-aux/ci_build.sh    |  5 +----
3415 2 files changed, 4 insertions(+), 14 deletions(-)
3416
3417commit 34d1252f093944ff350a88a6196539f95902ad41
3418Author: Lasse Collin <lasse.collin@tukaani.org>
3419Date:   2024-04-09 17:43:16 +0300
3420
3421    liblzma: Remove ifunc support.
3422
3423    This is *NOT* done for security reasons even though the backdoor
3424    relied on the ifunc code. Instead, the reason is that in this
3425    project ifunc provides little benefits but it's quite a bit of
3426    extra code to support it. The only case where ifunc *might* matter
3427    for performance is if the CRC functions are used directly by an
3428    application. In normal compression use it's completely irrelevant.
3429
3430    (cherry picked from commit 689ae2427342a2ea1206eb5ca08301baf410e7e0)
3431
3432 CMakeLists.txt                    | 79 ---------------------------------------
3433 INSTALL                           |  8 ----
3434 configure.ac                      | 79 ---------------------------------------
3435 src/liblzma/check/crc32_fast.c    | 48 +++---------------------
3436 src/liblzma/check/crc64_fast.c    | 21 -----------
3437 src/liblzma/check/crc_common.h    |  9 +----
3438 src/liblzma/check/crc_x86_clmul.h | 11 +-----
3439 7 files changed, 8 insertions(+), 247 deletions(-)
3440
3441commit a594b39685051cd1ec866360bc4dd6c22f301bb4
3442Author: Lasse Collin <lasse.collin@tukaani.org>
3443Date:   2024-04-08 22:04:41 +0300
3444
3445    tests/files/README: Update the main heading.
3446
3447    (cherry picked from commit 6b4c859059a7eb9b0547590c081668e14ecf8af6)
3448
3449 tests/files/README | 4 ++--
3450 1 file changed, 2 insertions(+), 2 deletions(-)
3451
3452commit fa76e3ef597ee2e9d150461a42d270a386204042
3453Author: Lasse Collin <lasse.collin@tukaani.org>
3454Date:   2024-04-08 22:02:45 +0300
3455
3456    tests/files/README: Explain how to recreate the ARM64 test files.
3457
3458    (cherry picked from commit 2a851e06b891ce894f918faff32a6cca6fdecee6)
3459
3460 tests/files/README | 15 ++++++++++++++-
3461 1 file changed, 14 insertions(+), 1 deletion(-)
3462
3463commit 112fa0aba6be30968811c9131f1b995cf9e92e75
3464Author: Lasse Collin <lasse.collin@tukaani.org>
3465Date:   2024-04-08 21:51:55 +0300
3466
3467    debug: Add generator for the ARM64 test file data.
3468
3469    (cherry picked from commit 3d09b721b94e18fe1f853a04799697f5de10b291)
3470
3471 debug/Makefile.am         |   3 +-
3472 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++
3473 2 files changed, 118 insertions(+), 1 deletion(-)
3474
3475commit 1a1f3d0323d5991a3238566e8f517d5116358b5c
3476Author: Lasse Collin <lasse.collin@tukaani.org>
3477Date:   2024-04-08 21:19:38 +0300
3478
3479    xz man page: Use .ft CR instead of CW to silence warnings from groff.
3480
3481    (cherry picked from commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48)
3482
3483 src/xz/xz.1 | 32 ++++++++++++++++----------------
3484 1 file changed, 16 insertions(+), 16 deletions(-)
3485
3486commit 9f9203f574f895c40a86a83c45c6bb79c25bb5d2
3487Author: Lasse Collin <lasse.collin@tukaani.org>
3488Date:   2024-04-08 19:28:35 +0300
3489
3490    Fix NEWS for 5.6.0 and 5.6.1.
3491
3492    (cherry picked from commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685)
3493
3494 NEWS | 6 ++++++
3495 1 file changed, 6 insertions(+)
3496
3497commit 12876b33c79e36d7e51e8ba6ab7162bd2129cb5b
3498Author: Lasse Collin <lasse.collin@tukaani.org>
3499Date:   2024-04-08 19:22:26 +0300
3500
3501    Remove the XZ logo.
3502
3503    (cherry picked from commit bfd0c7c478e93a1911b845459549ff94587b6ea2)
3504
3505 COPYING              |   5 -
3506 COPYING.CC-BY-SA-4.0 | 427 ---------------------------------------------------
3507 Makefile.am          |   2 -
3508 README               |   2 -
3509 doc/xz-logo.png      | Bin 6771 -> 0 bytes
3510 doxygen/Doxyfile     |   6 +-
3511 doxygen/footer.html  |  13 --
3512 7 files changed, 3 insertions(+), 452 deletions(-)
3513
3514commit 879295d91f06c241fd8a8fc1ca95776dbeb45f93
3515Author: Lasse Collin <lasse.collin@tukaani.org>
3516Date:   2024-04-08 18:27:39 +0300
3517
3518    Update maintainer and author info.
3519
3520    The other maintainer suddenly disappeared.
3521
3522    (cherry picked from commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4)
3523
3524 AUTHORS                |  9 +++++++--
3525 README                 | 10 +++-------
3526 THANKS                 |  1 -
3527 src/liblzma/api/lzma.h |  2 +-
3528 4 files changed, 11 insertions(+), 11 deletions(-)
3529
3530commit 859617d30d81317236e004b323fed0883f932dcf
3531Author: Lasse Collin <lasse.collin@tukaani.org>
3532Date:   2024-04-08 18:05:32 +0300
3533
3534    Docs: Update .xz file format specification to 1.2.1.
3535
3536    This only reverts the XZ URL changes.
3537
3538    (cherry picked from commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072)
3539
3540 doc/xz-file-format.txt | 12 ++++++++----
3541 1 file changed, 8 insertions(+), 4 deletions(-)
3542
3543commit eeb74fba1f6ea334a519015938b4a26c6ba5d4eb
3544Author: Lasse Collin <lasse.collin@tukaani.org>
3545Date:   2024-04-08 17:33:56 +0300
3546
3547    Update website URLs back to tukaani.org.
3548
3549    The XZ projects were moved back to their original URLs.
3550
3551    (cherry picked from commit 17aa2e1a796d3f758802df29afc89dcf335db567)
3552
3553 CMakeLists.txt             |  2 +-
3554 COPYING                    |  3 +--
3555 README                     |  4 ++--
3556 configure.ac               |  2 +-
3557 doc/faq.txt                |  2 +-
3558 doc/lzma-file-format.txt   | 12 ++++++------
3559 dos/config.h               |  2 +-
3560 src/liblzma/api/lzma.h     |  2 +-
3561 src/xz/xz.1                |  6 +++---
3562 src/xzdec/xzdec.1          |  4 ++--
3563 windows/README-Windows.txt |  2 +-
3564 11 files changed, 20 insertions(+), 21 deletions(-)
3565
3566commit a7b9cd70004bfc1abadc7e865dfce765f7b8b59d
3567Author: Lasse Collin <lasse.collin@tukaani.org>
3568Date:   2024-04-08 17:07:08 +0300
3569
3570    xzdec: Tweak coding style and comments.
3571
3572    (cherry picked from commit 2739db981023373a2ddabc7b456c7e658bb4f582)
3573
3574 src/xzdec/xzdec.c | 32 +++++++++++++++++++++-----------
3575 1 file changed, 21 insertions(+), 11 deletions(-)
3576
3577commit ebe9d6d8cb27168706078009b3f64da8fde63833
3578Author: Lasse Collin <lasse.collin@tukaani.org>
3579Date:   2024-04-08 15:53:46 +0300
3580
3581    tests/ossfuzz: Tiny fix to a comment.
3582
3583    (cherry picked from commit 408b6adb2a07d07c6535f859571cca38837caaf3)
3584
3585 tests/ossfuzz/fuzz_decode_stream.c | 2 +-
3586 1 file changed, 1 insertion(+), 1 deletion(-)
3587
3588commit 78ab47d65d916207233abbcdb0ccfd6efb946c05
3589Author: Lasse Collin <lasse.collin@tukaani.org>
3590Date:   2024-03-30 14:36:28 +0200
3591
3592    CMake: Fix sabotaged Landlock sandbox check.
3593
3594    It never enabled it.
3595
3596    (cherry picked from commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00)
3597
3598 CMakeLists.txt | 2 +-
3599 1 file changed, 1 insertion(+), 1 deletion(-)
3600
3601commit 5f178c364c3b5c6fe87099b7624d5c76995ff8e6
3602Author: Lasse Collin <lasse.collin@tukaani.org>
3603Date:   2024-05-22 14:08:33 +0300
3604
3605    Delete SECURITY.md from v5.6
3606
3607    It's too easily out of date in the stable branches.
3608    It's not included in the release packages anyway.
3609
3610 .github/SECURITY.md | 29 -----------------------------
3611 1 file changed, 29 deletions(-)
3612
3613commit b3a756188004a16de5956c368e3b0efd1a9bccb0
3614Author: Lasse Collin <lasse.collin@tukaani.org>
3615Date:   2024-03-22 17:46:30 +0200
3616
3617    liblzma: memcmplen.h: Add a comment why subtraction is used.
3618
3619    (cherry picked from commit 0b99783d63f27606936bb79a16c52d0d70c0b56f)
3620
3621 src/liblzma/common/memcmplen.h | 13 +++++++++++++
3622 1 file changed, 13 insertions(+)
3623
3624commit 94939a145f362ff8b09fb37fc72901743f7f5cb2
3625Author: Lasse Collin <lasse.collin@tukaani.org>
3626Date:   2024-03-15 17:43:39 +0200
3627
3628    INSTALL: Document arguments of --enable-symbol-versions.
3629
3630    (cherry picked from commit 8a25ba024d55610c448c6e4f1400a00bae51b493)
3631
3632 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
3633 1 file changed, 39 insertions(+), 4 deletions(-)
3634
3635commit fa14c8aaf0d0266b7e0c3b7c766159299c1a0f18
3636Author: Lasse Collin <lasse.collin@tukaani.org>
3637Date:   2024-03-15 17:15:50 +0200
3638
3639    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
3640
3641    This does the previous commit with CMake.
3642
3643    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
3644    be changed to AS_IF to ensure that things wont break some day.
3645    See 5a5bd7f871818029d5ccbe189f087f591258c294.
3646
3647    (cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5)
3648
3649 configure.ac | 18 +++++++++++++-----
3650 1 file changed, 13 insertions(+), 5 deletions(-)
3651
3652commit 73baa8d99b51c7623ed95afe6411302d9ff56864
3653Author: Lasse Collin <lasse.collin@tukaani.org>
3654Date:   2024-03-15 16:36:35 +0200
3655
3656    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
3657
3658    It doesn't support the __symver__ attribute or __asm__(".symver ...").
3659    The generic symbol versioning can still be used since it only needs
3660    linker support.
3661
3662    (cherry picked from commit c273123ed0ebaebf49994057a7fe98aae7f42c40)
3663
3664 CMakeLists.txt | 7 ++++++-
3665 1 file changed, 6 insertions(+), 1 deletion(-)
3666
3667commit 886633f42376f4648d931917733c8a59fb2e1f6c
3668Author: Lasse Collin <lasse.collin@tukaani.org>
3669Date:   2024-03-13 21:38:24 +0200
3670
3671    Update THANKS.
3672
3673    (cherry picked from commit df7f487648d18a3992386a59b8a061edca862d17)
3674
3675 THANKS | 1 +
3676 1 file changed, 1 insertion(+)
3677
3678commit 760f622f0d73632df2347aaca7ac7ff5761e98b6
3679Author: Lasse Collin <lasse.collin@tukaani.org>
3680Date:   2024-03-13 21:30:18 +0200
3681
3682    liblzma: Minor comment edits.
3683
3684    (cherry picked from commit 3217b82b3ec023bf8338249134a076bea0ea30ec)
3685
3686 src/liblzma/common/string_conversion.c | 4 ++--
3687 src/liblzma/delta/delta_decoder.c      | 2 ++
3688 2 files changed, 4 insertions(+), 2 deletions(-)
3689
3690commit 403b4c78b81f67bc3787542f55f555407253316c
3691Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
3692Date:   2024-03-13 13:07:13 +0100
3693
3694    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
3695
3696    NVHPC compiler has several issues that make it impossible to
3697    build liblzma:
3698      - the compiler cannot handle unions that contain pointers that
3699        are not the first members;
3700      - the compiler cannot handle the assembler code in range_decoder.h
3701        (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
3702      - the compiler fails to produce valid code for delta_decode if the
3703        vectorization is enabled, which results in failed tests.
3704
3705    This introduces NVHPC-specific workarounds that address the issues.
3706
3707    (cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31)
3708
3709 src/liblzma/common/string_conversion.c | 6 ++++--
3710 src/liblzma/delta/delta_decoder.c      | 3 +++
3711 src/liblzma/rangecoder/range_decoder.h | 1 +
3712 3 files changed, 8 insertions(+), 2 deletions(-)
3713
3714commit 1888fb49f629340758e98e69d5aa328f6f73c5e1
3715Author: Lasse Collin <lasse.collin@tukaani.org>
3716Date:   2024-03-13 21:17:10 +0200
3717
3718    CMake: Disable symbol versioning on non-glibc Linux.
3719
3720    This better matches what configure.ac does. For example, musl has
3721    only basic symbol versioning support:
3722
3723    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
3724
3725    configure.ac tries to enable symbol versioning only with glibc
3726    so now CMake does the same.
3727
3728    (cherry picked from commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62)
3729
3730 CMakeLists.txt | 22 ++++++++++++++++++++--
3731 1 file changed, 20 insertions(+), 2 deletions(-)
3732
3733commit 4b3c84e8eebbcf712fc2396dbb8117cce2d72464
3734Author: Lasse Collin <lasse.collin@tukaani.org>
3735Date:   2024-03-13 20:32:46 +0200
3736
3737    CMake: Make symbol versioning configurable.
3738
3739    (cherry picked from commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4)
3740
3741 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
3742 1 file changed, 42 insertions(+), 20 deletions(-)
3743
3744commit 69d1e20208eb9bd1f4f1c8ee4e49cc82d681a877
3745Author: Lasse Collin <lasse.collin@tukaani.org>
3746Date:   2024-03-13 19:47:36 +0200
3747
3748    Build: Style tweaks to configure.ac.
3749
3750    The AC_MSG_ERROR line is overlong anyway as are a few other
3751    AC_MSG_ERROR lines already.
3752
3753    (cherry picked from commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076)
3754
3755 configure.ac | 16 +++++++++-------
3756 1 file changed, 9 insertions(+), 7 deletions(-)
3757
3758commit 051d6b5c85a874c78249693865fd751088f403a2
3759Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
3760Date:   2024-03-12 20:03:49 +0100
3761
3762    Build: Let the users override the symbol versioning variant.
3763
3764    There are cases when the users want to decide themselves whether
3765    they want to have the generic (even on GNU/Linux) or the linux
3766    (even if we do not recommend that) symbol versioning variant.
3767    The former might be needed to circumvent compiler issues (i.e.
3768    the compiler does not support all features that are required
3769    for the linux versioning), the latter might help in overriding
3770    the assumptions made in the configure script.
3771
3772    (cherry picked from commit f56ed6fac6619b56b005878d3b5210e2f0d721c0)
3773
3774 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
3775 1 file changed, 50 insertions(+), 41 deletions(-)
3776
3777commit 95dcea4b5df0b180af461e4584d2bcf7725e3aef
3778Author: Lasse Collin <lasse.collin@tukaani.org>
3779Date:   2024-04-09 18:22:16 +0300
3780
3781    Update THANKS.
3782
3783 THANKS | 1 +
3784 1 file changed, 1 insertion(+)
3785
3786commit 1107712e372f7593ad729764c0c2644d0e4aa675
3787Author: Lasse Collin <lasse.collin@tukaani.org>
3788Date:   2024-04-08 15:32:58 +0300
3789
3790    Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
3791
3792    While the backdoor was inactive (and thus harmless) without inserting
3793    a small trigger code into the build system when the source package was
3794    created, it's good to remove this anyway:
3795
3796      - The executable payloads were embedded as binary blobs in
3797        the test files. This was a blatant violation of the
3798        Debian Free Software Guidelines.
3799
3800      - On machines that see lots bots poking at the SSH port, the backdoor
3801        noticeably increased CPU load, resulting in degraded user experience
3802        and thus overwhelmingly negative user feedback.
3803
3804      - The maintainer who added the backdoor has disappeared.
3805
3806      - Backdoors are bad for security.
3807
3808    This reverts the following without making any other changes:
3809
3810    6e636819 Tests: Update two test files.
3811    a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
3812    0b4ccc91 Tests: Update RISC-V test files.
3813    8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
3814    82ecc538 liblzma: Fix false Valgrind error report with GCC.
3815    cf44e4b7 Tests: Add a few test files.
3816    3060e107 Tests: Use smaller dictionary size in RISC-V test files.
3817    e2870db5 Tests: Add two RISC-V Filter test files.
3818
3819    The RISC-V test files also have real content that tests the filter
3820    but the real content would fit into much smaller files. A generator
3821    program would need to be available as well.
3822
3823    Thanks to Andres Freund for finding and reporting it and making
3824    it public quickly so others could act without a delay.
3825    See: https://www.openwall.com/lists/oss-security/2024/03/29/4
3826
3827 src/liblzma/check/crc32_fast.c         |   7 +++++--
3828 src/liblzma/check/crc64_fast.c         |   4 +++-
3829 src/liblzma/check/crc_common.h         |  25 -------------------------
3830 tests/files/README                     |  27 ---------------------------
3831 tests/files/bad-3-corrupt_lzma2.xz     | Bin 512 -> 0 bytes
3832 tests/files/bad-dict_size.lzma         | Bin 41 -> 0 bytes
3833 tests/files/good-1-riscv-lzma2-1.xz    | Bin 7424 -> 0 bytes
3834 tests/files/good-1-riscv-lzma2-2.xz    | Bin 7432 -> 0 bytes
3835 tests/files/good-2cat.xz               | Bin 136 -> 0 bytes
3836 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes
3837 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes
3838 tests/test_files.sh                    |  11 -----------
3839 12 files changed, 8 insertions(+), 66 deletions(-)
3840
3841commit fd1b975b7851e081ed6e5cf63df946cd5cbdbb94
3842Author: Jia Tan <jiat0218@gmail.com>
3843Date:   2024-03-09 11:42:50 +0800
3844
3845    Bump version and soname for 5.6.1.
3846
3847 src/liblzma/Makefile.am        | 2 +-
3848 src/liblzma/api/lzma/version.h | 2 +-
3849 2 files changed, 2 insertions(+), 2 deletions(-)
3850
3851commit a2cda572498e96163fe4e2bde096d5dd7b814668
3852Author: Jia Tan <jiat0218@gmail.com>
3853Date:   2024-03-09 11:27:27 +0800
3854
3855    Add NEWS for 5.6.1
3856
3857 NEWS | 26 ++++++++++++++++++++++++++
3858 1 file changed, 26 insertions(+)
3859
3860commit 8583c6021124e388bce044a09f00ebabfd6165a7
3861Author: Jia Tan <jiat0218@gmail.com>
3862Date:   2024-03-09 10:43:20 +0800
3863
3864    Translations: Add missing --riscv option to man page translations.
3865
3866 po4a/de.po    | 702 +++++++++++++++++++++++++++++-----------------------------
3867 po4a/fr.po    | 549 ++++++++++++++++++++++-----------------------
3868 po4a/ko.po    | 702 +++++++++++++++++++++++++++++-----------------------------
3869 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++--------------------------
3870 po4a/ro.po    | 702 +++++++++++++++++++++++++++++-----------------------------
3871 po4a/uk.po    | 702 +++++++++++++++++++++++++++++-----------------------------
3872 6 files changed, 2024 insertions(+), 1974 deletions(-)
3873
3874commit 74b138d2a6529f2c07729d7c77b1725a8e8b16f1
3875Author: Jia Tan <jiat0218@gmail.com>
3876Date:   2024-03-09 10:18:29 +0800
3877
3878    Tests: Update two test files.
3879
3880    The original files were generated with random local to my machine.
3881    To better reproduce these files in the future, a constant seed was used
3882    to recreate these files.
3883
3884 tests/files/bad-3-corrupt_lzma2.xz     | Bin 484 -> 512 bytes
3885 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes
3886 2 files changed, 0 insertions(+), 0 deletions(-)
3887
3888commit 3ec6dfd656bdd40ede2a5f11e6be338988e38be4
3889Author: Jia Tan <jiat0218@gmail.com>
3890Date:   2024-03-09 10:08:32 +0800
3891
3892    Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
3893
3894    The first stream in this file is valid, so this tests that xz properly
3895    stops after decompressing it.
3896
3897 tests/test_files.sh | 11 +++++++++++
3898 1 file changed, 11 insertions(+)
3899
3900commit a67dcce6109c2f932a0a86abb0d7a95d3c31fb3e
3901Author: Jia Tan <jiat0218@gmail.com>
3902Date:   2024-03-09 10:05:32 +0800
3903
3904    Tests: Update RISC-V test files.
3905
3906    This increases code coverage and tests for possible shifting bugs.
3907
3908 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes
3909 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes
3910 2 files changed, 0 insertions(+), 0 deletions(-)
3911
3912commit 058337b0f1da9f166049ecc972fa5c499c1af08c
3913Author: Jia Tan <jiat0218@gmail.com>
3914Date:   2024-03-09 09:52:32 +0800
3915
3916    liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
3917
3918 src/liblzma/check/crc32_fast.c | 4 ++--
3919 src/liblzma/check/crc64_fast.c | 3 +--
3920 2 files changed, 3 insertions(+), 4 deletions(-)
3921
3922commit cd5de9c1bbab3dd41b34b37a89c193fb6ff51ca5
3923Author: Jia Tan <jiat0218@gmail.com>
3924Date:   2024-03-09 09:49:55 +0800
3925
3926    Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
3927
3928    This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
3929
3930 CMakeLists.txt         | 15 ++++++++++-----
3931 configure.ac           |  9 ++-------
3932 tests/Makefile.am      |  9 ++++++---
3933 tests/test_microlzma.c | 12 ++++--------
3934 4 files changed, 22 insertions(+), 23 deletions(-)
3935
3936commit 651a1545c8b6150051a0b44857136efd419afc6f
3937Author: Jia Tan <jiat0218@gmail.com>
3938Date:   2024-03-09 09:20:57 +0800
3939
3940    liblzma: Fix false Valgrind error report with GCC.
3941
3942    With GCC and a certain combination of flags, Valgrind will falsely
3943    trigger an invalid write. This appears to be due to the omission of
3944    instructions to properly save, set up, and restore the frame pointer.
3945
3946    The IFUNC resolver is a leaf function since it only calls a function
3947    that is inlined. So sometimes GCC omits the frame pointer instructions
3948    in the resolver unless this optimization is explictly disabled.
3949
3950    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
3951
3952 src/liblzma/check/crc32_fast.c |  9 +++------
3953 src/liblzma/check/crc64_fast.c |  7 +++----
3954 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++
3955 3 files changed, 31 insertions(+), 10 deletions(-)
3956
3957commit 6e97b299f1b22e366ec42ba5dc5b9d0746e87b84
3958Author: Lasse Collin <lasse.collin@tukaani.org>
3959Date:   2024-03-05 23:21:26 +0200
3960
3961    liblzma: Fix a typo in a comment in the RISC-V filter.
3962
3963 src/liblzma/simple/riscv.c | 2 +-
3964 1 file changed, 1 insertion(+), 1 deletion(-)
3965
3966commit 4e1c97052b5f14f4d6dda99d12cbbd01e66e3712
3967Author: Jia Tan <jiat0218@gmail.com>
3968Date:   2024-03-05 00:34:46 +0800
3969
3970    liblzma: Use attribute no_profile_instrument_function with ifunc.
3971
3972    Thanks to Sam James for determining this was the attribute needed to
3973    workaround the GCC bug and for his version of the patch in Gentoo.
3974
3975 src/liblzma/check/crc32_fast.c | 5 +++++
3976 src/liblzma/check/crc64_fast.c | 3 +++
3977 2 files changed, 8 insertions(+)
3978
3979commit ed957d39426695e948b06de0ed952a2fbbe84bd1
3980Author: Jia Tan <jiat0218@gmail.com>
3981Date:   2024-03-05 00:27:31 +0800
3982
3983    Build: Require attribute no_profile_instrument_function for ifunc usage.
3984
3985    Using __attribute__((__no_profile_instrument_function__)) on the ifunc
3986    resolver works around a bug in GCC -fprofile-generate:
3987    it adds profiling code even to ifunc resolvers which can make
3988    the ifunc resolver crash at program startup. This attribute
3989    was not introduced until GCC 7 and Clang 13, so ifunc won't
3990    be used with prior versions of these compilers.
3991
3992    This bug was brought to our attention by:
3993
3994        https://bugs.gentoo.org/925415
3995
3996    And was reported to upstream GCC by:
3997
3998        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
3999
4000 CMakeLists.txt | 7 +++++++
4001 configure.ac   | 7 +++++++
4002 2 files changed, 14 insertions(+)
4003
4004commit e98ddaf85a1a8fb3cc863637f83356cc9db31e13
4005Author: Lasse Collin <lasse.collin@tukaani.org>
4006Date:   2024-03-04 19:23:18 +0200
4007
4008    liblzma: Fix a comment in the RISC-V filter.
4009
4010 src/liblzma/simple/riscv.c | 4 ++--
4011 1 file changed, 2 insertions(+), 2 deletions(-)
4012
4013commit 319cec142f67fe294e0486402f1569f223d9a83d
4014Author: Lasse Collin <lasse.collin@tukaani.org>
4015Date:   2024-02-29 16:35:52 +0200
4016
4017    CMake: Warn if translated man pages are missing.
4018
4019 CMakeLists.txt | 9 +++++++++
4020 1 file changed, 9 insertions(+)
4021
4022commit 46c3e113d8eeb1a731a60829fa7f5d1b519f7f26
4023Author: Lasse Collin <lasse.collin@tukaani.org>
4024Date:   2024-02-29 16:35:52 +0200
4025
4026    CMake: Warn if gettext tools and pre-created .gmo files are missing.
4027
4028    It's only done with CMake >= 3.20 and if library support
4029    for translation was already found.
4030
4031    Sort of fixes: https://github.com/tukaani-project/xz/issues/82
4032
4033 CMakeLists.txt | 25 +++++++++++++++++++++++++
4034 1 file changed, 25 insertions(+)
4035
4036commit 86bec8334bb1dcb6d9293a11cdccd895b17f364b
4037Author: Lasse Collin <lasse.collin@tukaani.org>
4038Date:   2024-02-28 18:26:25 +0200
4039
4040    xz: Add comments.
4041
4042 src/xz/coder.c | 10 ++++++++++
4043 1 file changed, 10 insertions(+)
4044
4045commit 5c91b454c24e043ca8f2cc7d2b09bd091dafe655
4046Author: Jia Tan <jiat0218@gmail.com>
4047Date:   2024-02-27 23:42:41 +0800
4048
4049    xz: Change logging level for thread reduction to highest verbosity only.
4050
4051    Now that multi threaded encoding is the default, users do not need to
4052    see a warning message everytime the number of threads is reduced. On
4053    some machines, this could happen very often. It is not unreasonable for
4054    users to need to set double verbose mode to see this kind of
4055    information.
4056
4057    To see these warning messages -vv or --verbose --verbose must be passed
4058    to set xz into the highest possible verbosity mode.
4059
4060    These warnings had caused automated testing frameworks to fail when they
4061    expected no output to stderr.
4062
4063    Thanks to Sebastian Andrzej Siewior for reporting this and for the
4064    initial version of the patch.
4065
4066 src/xz/coder.c | 4 ++--
4067 1 file changed, 2 insertions(+), 2 deletions(-)
4068
4069commit d0e57b2f159f8fd03a9a89f2f593a768d0487898
4070Author: Lasse Collin <lasse.collin@tukaani.org>
4071Date:   2024-02-26 23:06:13 +0200
4072
4073    Fix sorting in THANKS.
4074
4075 THANKS | 4 ++--
4076 1 file changed, 2 insertions(+), 2 deletions(-)
4077
4078commit d416be55ac02af1144fed455fb18b710147bb490
4079Author: Jia Tan <jiat0218@gmail.com>
4080Date:   2024-02-26 23:39:29 +0800
4081
4082    Update THANKS.
4083
4084 THANKS | 1 +
4085 1 file changed, 1 insertion(+)
4086
4087commit f06b33edd2aeabdb11836a2bf0b681768dad29d3
4088Author: Chien Wong <m@xv97.com>
4089Date:   2024-02-25 21:38:13 +0800
4090
4091    xz: Add missing RISC-V on the filter list in the man page
4092
4093    Signed-off-by: Chien Wong <m@xv97.com>
4094
4095 src/xz/xz.1 | 4 +++-
4096 1 file changed, 3 insertions(+), 1 deletion(-)
4097
4098commit a100f9111c8cc7f5b5f0e4a5e8af3de7161c7975
4099Author: Jia Tan <jiat0218@gmail.com>
4100Date:   2024-02-26 23:02:06 +0800
4101
4102    Build: Fix Linux Landlock feature test in Autotools and CMake builds.
4103
4104    The previous Linux Landlock feature test assumed that having the
4105    linux/landlock.h header file was enough. The new feature tests also
4106    requires that prctl() and the required Landlock system calls are
4107    supported.
4108
4109 CMakeLists.txt    | 25 ++++++++++++++++++++++---
4110 configure.ac      | 27 ++++++++++++++++++++++++++-
4111 src/xz/sandbox.c  |  2 +-
4112 src/xz/sandbox.h  |  2 +-
4113 src/xzdec/xzdec.c |  8 ++++----
4114 5 files changed, 54 insertions(+), 10 deletions(-)
4115
4116commit d85efdc8911e6e8964ec920af44c8a6fe0a4c3c2
4117Author: Jia Tan <jiat0218@gmail.com>
4118Date:   2024-02-26 20:06:10 +0800
4119
4120    Tests: Add test_microlzma to .gitignore and CMakeLists.txt.
4121
4122 .gitignore     | 1 +
4123 CMakeLists.txt | 1 +
4124 2 files changed, 2 insertions(+)
4125
4126commit 42ee4256739779005a7f921946c8a8e483d1f2ed
4127Author: Jia Tan <jiat0218@gmail.com>
4128Date:   2024-02-26 19:56:25 +0800
4129
4130    Tests: Correct license header in test_microlzma.c.
4131
4132 tests/test_microlzma.c | 5 ++---
4133 1 file changed, 2 insertions(+), 3 deletions(-)
4134
4135commit c83349dfd9cf9c495005b6d30e2fd34a9cafc18a
4136Author: Jia Tan <jiat0218@gmail.com>
4137Date:   2024-02-25 21:41:55 +0800
4138
4139    Fix typos in NEWS and CMakeLists.
4140
4141 CMakeLists.txt | 2 +-
4142 NEWS           | 2 +-
4143 2 files changed, 2 insertions(+), 2 deletions(-)
4144
4145commit 2d7d862e3ffa8cec4fd3fdffcd84e984a17aa429
4146Author: Jia Tan <jiat0218@gmail.com>
4147Date:   2024-02-24 15:55:08 +0800
4148
4149    Bump version and soname for 5.6.0.
4150
4151 src/liblzma/Makefile.am         | 2 +-
4152 src/liblzma/api/lzma/version.h  | 6 +++---
4153 src/liblzma/liblzma_generic.map | 2 +-
4154 src/liblzma/liblzma_linux.map   | 2 +-
4155 4 files changed, 6 insertions(+), 6 deletions(-)
4156
4157commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
4158Author: Jia Tan <jiat0218@gmail.com>
4159Date:   2024-02-24 15:50:36 +0800
4160
4161    Add NEWS for 5.6.0.
4162
4163 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4164 1 file changed, 143 insertions(+)
4165
4166commit 24355c5280bc95e3d594432d60bb8432aa6af173
4167Author: Jia Tan <jiat0218@gmail.com>
4168Date:   2024-02-22 22:27:01 +0800
4169
4170    Translations: Remove obsolete and fuzzy matches from some translations.
4171
4172    The French and Brazilian Portuguese man page translations have not been
4173    updated since the switch from public domain to 0BSD. The old GPLv2
4174    strings have now been removed from these files.
4175
4176 po4a/fr.po    | 4702 +++++++++++++++++++++++++++++++++++++----------------
4177 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++-----------------
4178 2 files changed, 6832 insertions(+), 2857 deletions(-)
4179
4180commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1
4181Author: Jia Tan <jiat0218@gmail.com>
4182Date:   2024-02-21 00:31:54 +0800
4183
4184    Translations: Patch man pages to avoid fuzzy matches.
4185
4186    This will be fixed in the next round of translations, but this avoids
4187    having a fuzzy match or not fixing the English version.
4188
4189 po4a/de.po | 2 +-
4190 po4a/ko.po | 2 +-
4191 po4a/ro.po | 2 +-
4192 po4a/uk.po | 2 +-
4193 4 files changed, 4 insertions(+), 4 deletions(-)
4194
4195commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64
4196Author: Jia Tan <jiat0218@gmail.com>
4197Date:   2024-02-21 00:30:43 +0800
4198
4199    xzmore: Fix typo in xzmore.1.
4200
4201    Thanks to Yuri Chornoivan.
4202
4203 src/scripts/xzmore.1 | 2 +-
4204 1 file changed, 1 insertion(+), 1 deletion(-)
4205
4206commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba
4207Author: Jia Tan <jiat0218@gmail.com>
4208Date:   2024-02-24 12:12:16 +0800
4209
4210    Translations: Update the Vietnamese translation.
4211
4212 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++-------------------------
4213 1 file changed, 309 insertions(+), 196 deletions(-)
4214
4215commit a65fd7ce9d6228e87faf61dc56a35984d0088248
4216Author: Jia Tan <jiat0218@gmail.com>
4217Date:   2024-02-24 12:06:40 +0800
4218
4219    Translations: Update the Esperanto translation.
4220
4221 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++-------------------------
4222 1 file changed, 306 insertions(+), 196 deletions(-)
4223
4224commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0
4225Author: Jia Tan <jiat0218@gmail.com>
4226Date:   2024-02-23 23:09:59 +0800
4227
4228    Tests: Add a few test files.
4229
4230 tests/files/README                     |  19 +++++++++++++++++++
4231 tests/files/bad-3-corrupt_lzma2.xz     | Bin 0 -> 484 bytes
4232 tests/files/bad-dict_size.lzma         | Bin 0 -> 41 bytes
4233 tests/files/good-2cat.xz               | Bin 0 -> 136 bytes
4234 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes
4235 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes
4236 6 files changed, 19 insertions(+)
4237
4238commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73
4239Author: Jia Tan <jiat0218@gmail.com>
4240Date:   2024-02-23 20:58:36 +0800
4241
4242    Tests: Add MicroLZMA test.
4243
4244 tests/Makefile.am      |   4 +-
4245 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++
4246 2 files changed, 551 insertions(+), 1 deletion(-)
4247
4248commit adaacafde6661496ca2814b1e94a3ba5186428cb
4249Author: Jia Tan <jiat0218@gmail.com>
4250Date:   2024-02-23 20:57:59 +0800
4251
4252    Build: Define HAVE_MICROLZMA when it is configured.
4253
4254 CMakeLists.txt | 4 ++++
4255 configure.ac   | 9 +++++++--
4256 2 files changed, 11 insertions(+), 2 deletions(-)
4257
4258commit eea78216d27182ca917bf00e02feaab058a4d21e
4259Author: Jia Tan <jiat0218@gmail.com>
4260Date:   2024-02-23 20:27:15 +0800
4261
4262    xz: Fix Capsicum sandbox compile error.
4263
4264    user_abort_pipe[] was still being used instead of the parameters.
4265
4266 src/xz/sandbox.c | 4 ++--
4267 1 file changed, 2 insertions(+), 2 deletions(-)
4268
4269commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d
4270Author: Jia Tan <jiat0218@gmail.com>
4271Date:   2024-02-23 16:12:32 +0800
4272
4273    Build: Fix ARM64 CRC32 instruction feature test.
4274
4275    Old versions of Clang reported the unsupported function attribute and
4276    __crc32d() function as warnings instead of errors, so the feature test
4277    passed when it shouldn't have, causing a compile error at build time.
4278    -Werror was added to this feature test to fix this. The change is not
4279    needed for CMake because check_c_source_compiles() also performs
4280    linking and the error is caught then.
4281
4282    Thanks to Sebastian Andrzej Siewior for reporting this.
4283
4284 configure.ac | 10 ++++++++++
4285 1 file changed, 10 insertions(+)
4286
4287commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
4288Author: Lasse Collin <lasse.collin@tukaani.org>
4289Date:   2024-02-22 19:16:35 +0200
4290
4291    CMake: Add LOCALEDIR to the windres workaround.
4292
4293    LOCALEDIR may contain spaces like in "C:\Program Files".
4294
4295 CMakeLists.txt | 16 +++++++++++-----
4296 1 file changed, 11 insertions(+), 5 deletions(-)
4297
4298commit de4337fd89ca7db5feb97b5c40143404f6e22986
4299Author: Lasse Collin <lasse.collin@tukaani.org>
4300Date:   2024-02-22 15:18:25 +0200
4301
4302    xz: Landlock: Fix error message if input file is a directory.
4303
4304    If xz is given a directory, it should look like this:
4305
4306        $ xz /usr/bin
4307        xz: /usr/bin: Is a directory, skipping
4308
4309    The Landlock rules didn't allow opening directories for reading:
4310
4311        $ xz /usr/bin
4312        xz: /usr/bin: Permission denied
4313
4314    The simplest fix was to allow opening directories for reading.
4315    While it's a bit silly to allow it solely for the error message,
4316    it shouldn't make the sandbox significantly weaker.
4317
4318    The single-file use case (like when called from GNU tar) is
4319    still as strict as possible: all Landlock restrictions are
4320    enabled before (de)compression starts.
4321
4322 src/xz/sandbox.c | 15 ++++++++++++++-
4323 1 file changed, 14 insertions(+), 1 deletion(-)
4324
4325commit 120da10ae139ea52ca4275452adf8eda02d07cc8
4326Author: Lasse Collin <lasse.collin@tukaani.org>
4327Date:   2024-02-22 14:41:29 +0200
4328
4329    liblzma: Disable branchless C version in range decoder.
4330
4331    Thanks to Sebastian Andrzej Siewior and Sam James for
4332    benchmarking on various systems.
4333
4334 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++---
4335 1 file changed, 10 insertions(+), 3 deletions(-)
4336
4337commit 00440f52be9ac2c7438c7b0cb1082f12399632c6
4338Author: Lasse Collin <lasse.collin@tukaani.org>
4339Date:   2024-02-21 17:41:32 +0200
4340
4341    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
4342
4343 INSTALL | 18 +++++++++---------
4344 1 file changed, 9 insertions(+), 9 deletions(-)
4345
4346commit 11405be84ea294497e12d03d7219f607063f4a00
4347Author: Lasse Collin <lasse.collin@tukaani.org>
4348Date:   2024-02-19 18:41:37 +0200
4349
4350    Windows: build.bash: Include COPYING.0BSD in the package.
4351
4352 windows/build.bash | 2 +-
4353 1 file changed, 1 insertion(+), 1 deletion(-)
4354
4355commit c27cf64e3e27f4968431d65be7098a12a3a80d30
4356Author: Lasse Collin <lasse.collin@tukaani.org>
4357Date:   2024-02-18 17:59:46 +0200
4358
4359    Windows: build.bash: include liblzma-crt-mixing.txt in the package.
4360
4361 windows/build.bash | 6 ++++--
4362 1 file changed, 4 insertions(+), 2 deletions(-)
4363
4364commit 8d38941baed05de4ff7cc775de14833108f62184
4365Author: Lasse Collin <lasse.collin@tukaani.org>
4366Date:   2024-02-18 17:17:43 +0200
4367
4368    Windows: Major update to Windows build instructions.
4369
4370 INSTALL                                      |  68 ++++-----
4371 windows/INSTALL-MSVC.txt                     |  23 +--
4372 windows/INSTALL-MinGW-w64_with_Autotools.txt |  49 +++++++
4373 windows/INSTALL-MinGW-w64_with_CMake.txt     | 203 +++++++++++++++++++++++++++
4374 windows/INSTALL-MinGW.txt                    | 138 ------------------
4375 windows/README-Windows.txt                   |   2 +
4376 windows/build-with-cmake.bat                 |  35 +++++
4377 windows/liblzma-crt-mixing.txt               |  70 +++++++++
4378 8 files changed, 404 insertions(+), 184 deletions(-)
4379
4380commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1
4381Author: Lasse Collin <lasse.collin@tukaani.org>
4382Date:   2024-02-18 15:15:04 +0200
4383
4384    Windows: Update windows/README-Windows.txt.
4385
4386    It's for binary packages built with windows/build.bash.
4387
4388 windows/README-Windows.txt | 104 ++++++++++++++++++---------------------------
4389 1 file changed, 41 insertions(+), 63 deletions(-)
4390
4391commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
4392Author: Lasse Collin <lasse.collin@tukaani.org>
4393Date:   2024-02-18 15:15:04 +0200
4394
4395    Windows: Update windows/build.bash.
4396
4397    Support for the old MinGW was dropped. Only MinGW-w64 with GCC
4398    is supported now.
4399
4400    The script now supports also cross-compilation from GNU/Linux
4401    (tests are not run). MSYS2 and also the old MSYS 1.0.11 work
4402    for building on Windows. The i686 and x86_64 toolchains must
4403    be in PATH to build both 32-bit and 64-bit versions.
4404
4405    Parallel builds are done if "nproc" from GNU coreutils is available.
4406
4407    MinGW-w64 runtime copyright information file was renamed from
4408    COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which
4409    is the filename used by MinGW-w64 itself. Its existence
4410    is now mandatory, it's checked at the beginning of the script.
4411
4412    The file TODO is no longer copied to the package.
4413
4414 windows/build.bash | 191 +++++++++++++++++++++++++++++++----------------------
4415 1 file changed, 112 insertions(+), 79 deletions(-)
4416
4417commit 60462e42609a1d961868a1d1ebecc713c6d27e2e
4418Author: Jia Tan <jiat0218@gmail.com>
4419Date:   2024-02-20 23:32:22 +0800
4420
4421    Translations: Update the Romanian man page translations.
4422
4423 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++-----------------------------
4424 1 file changed, 875 insertions(+), 840 deletions(-)
4425
4426commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05
4427Author: Jia Tan <jiat0218@gmail.com>
4428Date:   2024-02-20 23:30:25 +0800
4429
4430    Translations: Update the Korean man page translations.
4431
4432 po4a/ko.po | 6 +++---
4433 1 file changed, 3 insertions(+), 3 deletions(-)
4434
4435commit 797a34b72ac6baff237d7a546fa941d8f78f2f62
4436Author: Jia Tan <jiat0218@gmail.com>
4437Date:   2024-02-20 21:03:53 +0800
4438
4439    Translations: Update the Spanish translation.
4440
4441 po/es.po | 6 +++---
4442 1 file changed, 3 insertions(+), 3 deletions(-)
4443
4444commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49
4445Author: Jia Tan <jiat0218@gmail.com>
4446Date:   2024-02-20 20:18:07 +0800
4447
4448    Translations: Update the Romanian translation.
4449
4450 po/ro.po | 470 ++++++++++++++++++++++++++++++---------------------------------
4451 1 file changed, 227 insertions(+), 243 deletions(-)
4452
4453commit e2d31154ecc750935436e8b62c6b073b2cfa84e3
4454Author: Jia Tan <jiat0218@gmail.com>
4455Date:   2024-02-20 20:15:50 +0800
4456
4457    Translations: Update the Croatian translation.
4458
4459 po/hr.po | 648 ++++++++++++++++++++++++++++++++++-----------------------------
4460 1 file changed, 355 insertions(+), 293 deletions(-)
4461
4462commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2
4463Author: Jia Tan <jiat0218@gmail.com>
4464Date:   2024-02-20 20:05:44 +0800
4465
4466    Translations: Update the German man page translations.
4467
4468 po4a/de.po | 1696 +++++++++++++++++++++++++++++++-----------------------------
4469 1 file changed, 873 insertions(+), 823 deletions(-)
4470
4471commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f
4472Author: Jia Tan <jiat0218@gmail.com>
4473Date:   2024-02-20 19:58:25 +0800
4474
4475    Translations: Update the German translation.
4476
4477 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------
4478 1 file changed, 225 insertions(+), 202 deletions(-)
4479
4480commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a
4481Author: Jia Tan <jiat0218@gmail.com>
4482Date:   2024-02-20 19:56:52 +0800
4483
4484    Translations: Update the Hungarian translation.
4485
4486 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++-------------------------
4487 1 file changed, 338 insertions(+), 218 deletions(-)
4488
4489commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04
4490Author: Lasse Collin <lasse.collin@tukaani.org>
4491Date:   2024-02-19 16:48:05 +0200
4492
4493    CMake: Fix building of lzmainfo when translations are enabled.
4494
4495 CMakeLists.txt | 2 ++
4496 1 file changed, 2 insertions(+)
4497
4498commit b0d1422b6037bfea6f6723683bd82a8e6d77026c
4499Author: Lasse Collin <lasse.collin@tukaani.org>
4500Date:   2024-02-19 13:38:42 +0200
4501
4502    CMake: Don't assume that -fvisibility=hidden is supported outside Windows.
4503
4504    The original code was good enough for supporting GNU/Linux
4505    and a few others but it wasn't very portable.
4506
4507    CMake doesn't support Solaris Studio's -xldscope=hidden.
4508    If it ever does, things should still work with this commit
4509    as Solaris Studio supports not only its own __global but also
4510    the GNU C __attribute__((visibility("default"))). Support for the
4511    attribute was added in 2007 to Sun Studio 12 compiler version 5.9.
4512
4513 CMakeLists.txt | 26 ++++++++++++++++++++++----
4514 1 file changed, 22 insertions(+), 4 deletions(-)
4515
4516commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c
4517Author: Lasse Collin <lasse.collin@tukaani.org>
4518Date:   2024-02-19 12:20:59 +0200
4519
4520    CMake: Revise the component splitting.
4521
4522 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++--------------------------
4523 1 file changed, 31 insertions(+), 26 deletions(-)
4524
4525commit 426bdc709c169d39b31dec410016779de117ef69
4526Author: Lasse Collin <lasse.collin@tukaani.org>
4527Date:   2024-02-17 21:45:07 +0200
4528
4529    CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release.
4530
4531 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------
4532 1 file changed, 63 insertions(+), 16 deletions(-)
4533
4534commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10
4535Author: Lasse Collin <lasse.collin@tukaani.org>
4536Date:   2024-02-17 21:27:48 +0200
4537
4538    CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release.
4539
4540    -O3 doesn't seem useful for speed but it makes the code bigger.
4541    CMake makes is difficult for users to simply override the
4542    optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because
4543    they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override
4544    CMAKE_C_FLAGS_RELEASE directly but then they have to remember to
4545    add also -DNDEBUG to disable assertions.
4546
4547    This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if
4548    CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if
4549    a custom value is passed on the command line (or reconfiguring an
4550    already-configured build), the cache variable won't be modified.
4551
4552 CMakeLists.txt | 19 +++++++++++++++++++
4553 1 file changed, 19 insertions(+)
4554
4555commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660
4556Author: Lasse Collin <lasse.collin@tukaani.org>
4557Date:   2024-02-18 14:59:52 +0200
4558
4559    CMake: Handle symbol versioning on MicroBlaze specially.
4560
4561    This is to match configure.ac.
4562
4563 CMakeLists.txt | 23 +++++++++++++++++++----
4564 1 file changed, 19 insertions(+), 4 deletions(-)
4565
4566commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce
4567Author: Lasse Collin <lasse.collin@tukaani.org>
4568Date:   2024-02-17 22:18:12 +0200
4569
4570    CMake: Keep build working even if lib/*.[ch] are removed.
4571
4572 CMakeLists.txt | 7 ++++++-
4573 1 file changed, 6 insertions(+), 1 deletion(-)
4574
4575commit d753e2ce4715552884afadc4ed6fbf8ccca6efac
4576Author: Lasse Collin <lasse.collin@tukaani.org>
4577Date:   2024-02-17 18:10:40 +0200
4578
4579    CMake: Install documentation.
4580
4581 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
4582 1 file changed, 32 insertions(+)
4583
4584commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
4585Author: Lasse Collin <lasse.collin@tukaani.org>
4586Date:   2024-02-17 15:35:35 +0200
4587
4588    CMake: Bump maximum policy version to 3.28.
4589
4590    CMP0154 doesn't affect us since we don't use FILE_SET.
4591
4592 CMakeLists.txt | 2 +-
4593 1 file changed, 1 insertion(+), 1 deletion(-)
4594
4595commit c2264ffbe3892d28930b89b0123efc369cabc143
4596Author: Lasse Collin <lasse.collin@tukaani.org>
4597Date:   2024-02-17 15:35:35 +0200
4598
4599    CMake: Build lzmainfo.
4600
4601 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
4602 1 file changed, 54 insertions(+)
4603
4604commit 998d0b29536094a89cf385a3b894e157db1ccefe
4605Author: Lasse Collin <lasse.collin@tukaani.org>
4606Date:   2024-02-17 15:35:35 +0200
4607
4608    CMake: Build lzmadec.
4609
4610 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++--------------------------
4611 1 file changed, 42 insertions(+), 34 deletions(-)
4612
4613commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9
4614Author: Lasse Collin <lasse.collin@tukaani.org>
4615Date:   2024-02-17 15:35:35 +0200
4616
4617    CMake: Add test_scripts.sh to the tests.
4618
4619    In contrast to Automake, skipping of this test when decoders
4620    are disabled is handled at CMake side instead of test_scripts.sh
4621    because CMake-build doesn't create config.h.
4622
4623 CMakeLists.txt        | 14 ++++++++++++++
4624 tests/test_scripts.sh | 13 ++++++++-----
4625 2 files changed, 22 insertions(+), 5 deletions(-)
4626
4627commit 4808f238a731befcd46c2117c62a1caaf4403989
4628Author: Lasse Collin <lasse.collin@tukaani.org>
4629Date:   2024-02-17 15:35:35 +0200
4630
4631    CMake: Install scripts.
4632
4633    Compared to the Autotools-based build, this has simpler handling
4634    for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts
4635    (configure has --enable-path-for-scripts=PREFIX). The simpler
4636    metho should be enough for non-ancient systems and Solaris.
4637
4638 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
4639 1 file changed, 82 insertions(+), 1 deletion(-)
4640
4641commit 3462362ebd94d835c664e94ad8f414cfe7590ca7
4642Author: Lasse Collin <lasse.collin@tukaani.org>
4643Date:   2024-02-17 15:35:35 +0200
4644
4645    Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@.
4646
4647    PACKAGE_VERSION was already used in liblzma.pc.in.
4648    This way only one version @foo@ is used.
4649
4650 src/scripts/xzdiff.in | 2 +-
4651 src/scripts/xzgrep.in | 2 +-
4652 src/scripts/xzless.in | 2 +-
4653 src/scripts/xzmore.in | 2 +-
4654 4 files changed, 4 insertions(+), 4 deletions(-)
4655
4656commit 67610c245ba6c68cf65991693bab9312b7dc987b
4657Author: Lasse Collin <lasse.collin@tukaani.org>
4658Date:   2024-02-17 15:35:35 +0200
4659
4660    CMake: Simplify symlink creation and install translated man pages.
4661
4662    It helps that cmake_install.cmake doesn't parallelize installation
4663    so symlinks can be created so that the target is always known to
4664    exist (a requirement on Windows in some cases).
4665
4666    This bumps the minimum CMake version from 3.13 to 3.14 to use
4667    file(CREATE_LINK ...). It could be made to work on 3.13 by
4668    calling "cmake -E create_symlink" but it's uglier code and
4669    slower in "make install". 3.14 should be a reasonable version
4670    to require nowadays, especially since the Autotools build
4671    is still the primary build system for most OSes.
4672
4673 CMakeLists.txt | 195 +++++++++++++++++++++++++++++----------------------------
4674 1 file changed, 98 insertions(+), 97 deletions(-)
4675
4676commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf
4677Author: Lasse Collin <lasse.collin@tukaani.org>
4678Date:   2024-02-17 15:35:35 +0200
4679
4680    CMake: Add support for building and installing xz with translations.
4681
4682    If gettext tools are available, the .po files listed in po/LINGUAS
4683    are converted using msgfmt. This allows building with translations
4684    directly from xz.git without Autotools.
4685
4686    If gettext tools aren't available, the Autotools-created .gmo files
4687    in the "po" directory will be used. This allows CMake-based build
4688    to use translations from Autotools-generated tarball.
4689
4690    If translation support is found (Intl_FOUND) but both the
4691    gettext tools and the pre-generated .gmo files are missing,
4692    then "make" will fail.
4693
4694 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
4695 1 file changed, 66 insertions(+), 2 deletions(-)
4696
4697commit 746c471643009947f94a3494a1148f74c7381b56
4698Author: Lasse Collin <lasse.collin@tukaani.org>
4699Date:   2024-02-19 11:58:33 +0200
4700
4701    liblzma: Remove commented-out code.
4702
4703 src/liblzma/rangecoder/range_decoder.h | 3 ---
4704 1 file changed, 3 deletions(-)
4705
4706commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7
4707Author: Lasse Collin <lasse.collin@tukaani.org>
4708Date:   2024-02-17 23:07:35 +0200
4709
4710    xz: Delete old commented-out code.
4711
4712 src/xz/message.c | 19 -------------------
4713 1 file changed, 19 deletions(-)
4714
4715commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa
4716Author: Lasse Collin <lasse.collin@tukaani.org>
4717Date:   2024-02-17 23:07:35 +0200
4718
4719    xz: Use stricter pledge(2) and Landlock sandbox.
4720
4721    This makes these sandboxing methods stricter when no files are
4722    created or deleted. That is, it's a middle ground between the
4723    initial sandbox and the strictest single-file-to-stdout sandbox:
4724    this allows opening files for reading but output has to go to stdout.
4725
4726 src/xz/main.c    | 46 +++++++++++++++++++++++++++++++++-------------
4727 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++
4728 src/xz/sandbox.h |  4 ++++
4729 3 files changed, 69 insertions(+), 13 deletions(-)
4730
4731commit 02e3505991233901575b7eabc06b2c6c62a96899
4732Author: Lasse Collin <lasse.collin@tukaani.org>
4733Date:   2024-02-17 23:07:35 +0200
4734
4735    xz: Support Landlock ABI version 4.
4736
4737    Linux 6.7 added support for ABI version 4 which restricts
4738    TCP connections which xz won't need and thus those can be
4739    forbidden now. Since the ABI version is handled at runtime,
4740    supporting version 4 won't cause any compatibility issues.
4741
4742    Note that new enough kernel headers are required to get
4743    version 4 support enabled at build time.
4744
4745 src/xz/sandbox.c | 25 ++++++++++++++++++++-----
4746 1 file changed, 20 insertions(+), 5 deletions(-)
4747
4748commit 374868d81d473ab56556a1cfd6b1b36a1fab348b
4749Author: Lasse Collin <lasse.collin@tukaani.org>
4750Date:   2024-02-17 23:07:35 +0200
4751
4752    xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.
4753
4754    Landlock is now always used just like pledge(2) is: first in more
4755    permissive mode and later (under certain common conditions) in
4756    a strict mode that doesn't allow opening more files.
4757
4758    I put pledge(2) first in sandbox.c because it's the simplest API
4759    to use and still somewhat fine-grained for basic applications.
4760    So it's the simplest thing to understand for anyone reading sandbox.c.
4761
4762 CMakeLists.txt     |   2 +
4763 src/xz/Makefile.am |   2 +
4764 src/xz/file_io.c   | 170 +-----------------------------
4765 src/xz/file_io.h   |   6 --
4766 src/xz/main.c      |  50 +++------
4767 src/xz/private.h   |   6 +-
4768 src/xz/sandbox.c   | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++
4769 src/xz/sandbox.h   |  39 +++++++
4770 8 files changed, 357 insertions(+), 213 deletions(-)
4771
4772commit 7312dfbb02197c7f990c7a3cefd027a9387d1473
4773Author: Lasse Collin <lasse.collin@tukaani.org>
4774Date:   2024-02-17 23:07:35 +0200
4775
4776    xz: Tweak comments.
4777
4778 src/xz/main.c | 4 +++-
4779 1 file changed, 3 insertions(+), 1 deletion(-)
4780
4781commit c701a5909ad9882469fbab4fab5d2d5556d3ba78
4782Author: Lasse Collin <lasse.collin@tukaani.org>
4783Date:   2024-02-17 23:07:35 +0200
4784
4785    xz: Fix message_init() description.
4786
4787    Also explicitly initialize progress_automatic to make it clear
4788    that it can be read before message_init() sets it. Static variable
4789    was initialized to false by default already so this is only for
4790    clarity.
4791
4792 src/xz/main.c    | 3 ++-
4793 src/xz/message.c | 2 +-
4794 src/xz/message.h | 5 ++++-
4795 3 files changed, 7 insertions(+), 3 deletions(-)
4796
4797commit 9466306719f3b76e92fac4e55fbfd89ec92295fa
4798Author: Lasse Collin <lasse.collin@tukaani.org>
4799Date:   2024-02-17 19:35:47 +0200
4800
4801    Build: Makefile.am: Sort EXTRA_DIST.
4802
4803    Dirs first, then files in case-sensitive ASCII order.
4804
4805 Makefile.am | 14 +++++++-------
4806 1 file changed, 7 insertions(+), 7 deletions(-)
4807
4808commit f3440e78c9517db75bfa52e1a378fad60b073bbe
4809Author: Lasse Collin <lasse.collin@tukaani.org>
4810Date:   2024-02-17 19:25:05 +0200
4811
4812    Build: Don't install TODO.
4813
4814 Makefile.am | 2 +-
4815 1 file changed, 1 insertion(+), 1 deletion(-)
4816
4817commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381
4818Author: Jia Tan <jiat0218@gmail.com>
4819Date:   2024-02-18 01:09:11 +0800
4820
4821    Translations: Update the Korean man page translations.
4822
4823 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++-----------------------------
4824 1 file changed, 871 insertions(+), 836 deletions(-)
4825
4826commit 9b315db2d5e74700f3dc0755eb86c27947c0b393
4827Author: Jia Tan <jiat0218@gmail.com>
4828Date:   2024-02-18 01:08:32 +0800
4829
4830    Translations: Update the Korean translation.
4831
4832 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------
4833 1 file changed, 223 insertions(+), 200 deletions(-)
4834
4835commit 56246607dff177b0410d140fcca4a42c865723dc
4836Author: Lasse Collin <lasse.collin@tukaani.org>
4837Date:   2024-02-17 16:23:14 +0200
4838
4839    Build: Install translated lzmainfo man pages.
4840
4841    All other translated man pages were being installed but
4842    lzmainfo had been forgotten.
4843
4844 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++
4845 1 file changed, 26 insertions(+)
4846
4847commit f1d6b88aefcced538403c5c2606ba57065b16e70
4848Author: Lasse Collin <lasse.collin@tukaani.org>
4849Date:   2024-02-17 16:01:32 +0200
4850
4851    liblzma: Avoid implementation-defined behavior in the RISC-V filter.
4852
4853    GCC docs promise that it works and a few other compilers do
4854    too. Clang/LLVM is documented source code only but unsurprisingly
4855    it behaves the same as others on x86-64 at least. But the
4856    certainly-portable way is good enough here so use that.
4857
4858 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++--------
4859 1 file changed, 22 insertions(+), 8 deletions(-)
4860
4861commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a
4862Author: Lasse Collin <lasse.collin@tukaani.org>
4863Date:   2024-02-17 15:48:28 +0200
4864
4865    liblzma: Wrap a line exceeding 80 chars.
4866
4867 src/liblzma/rangecoder/range_decoder.h | 3 ++-
4868 1 file changed, 2 insertions(+), 1 deletion(-)
4869
4870commit e9053c907250c70d98b319d95fa54cb94fc76869
4871Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
4872Date:   2024-02-16 21:50:15 +0100
4873
4874    liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
4875
4876    The x32 port has a x86-64 ABI in term of all registers but uses only
4877    32bit pointer like x86-32. The assembly optimisation fails to compile on
4878    x32. Given the state of x32 I suggest to exclude it from the
4879    optimisation rather than trying to fix it.
4880
4881    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
4882
4883 src/liblzma/rangecoder/range_decoder.h | 2 +-
4884 1 file changed, 1 insertion(+), 1 deletion(-)
4885
4886commit 3d198fb13b87f8803442e5799d465f7434a70555
4887Author: Jia Tan <jiat0218@gmail.com>
4888Date:   2024-02-17 21:05:07 +0800
4889
4890    Translations: Update the Spanish translation.
4891
4892 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------
4893 1 file changed, 226 insertions(+), 201 deletions(-)
4894
4895commit cf278bfe60a25b54b3786f06503bc61272970820
4896Author: Jia Tan <jiat0218@gmail.com>
4897Date:   2024-02-17 20:43:29 +0800
4898
4899    Translations: Update the Swedish translation.
4900
4901 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------
4902 1 file changed, 230 insertions(+), 204 deletions(-)
4903
4904commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2
4905Author: Jia Tan <jiat0218@gmail.com>
4906Date:   2024-02-17 20:41:38 +0800
4907
4908    Translations: Update the Polish translation.
4909
4910 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------
4911 1 file changed, 224 insertions(+), 200 deletions(-)
4912
4913commit d74ed48b30c631b6a4c7e7858b06828293bf8520
4914Author: Jia Tan <jiat0218@gmail.com>
4915Date:   2024-02-17 20:41:02 +0800
4916
4917    Translations: Update the Ukrainian translation.
4918
4919 po/uk.po | 2 +-
4920 1 file changed, 1 insertion(+), 1 deletion(-)
4921
4922commit 711e22d5c5f3bac39ac904efb3ede874a66e2045
4923Author: Lasse Collin <lasse.collin@tukaani.org>
4924Date:   2024-02-16 17:53:34 +0200
4925
4926    Translations: Use the same sentence in xz.pot-header that the TP uses.
4927
4928 po/xz.pot-header | 2 +-
4929 1 file changed, 1 insertion(+), 1 deletion(-)
4930
4931commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422
4932Author: Jia Tan <jiat0218@gmail.com>
4933Date:   2024-02-16 22:53:46 +0800
4934
4935    Fix typos discovered by codespell.
4936
4937 AUTHORS                                | 2 +-
4938 NEWS                                   | 2 +-
4939 src/liblzma/rangecoder/range_decoder.h | 4 ++--
4940 3 files changed, 4 insertions(+), 4 deletions(-)
4941
4942commit c64723bbb094e29b4edd98f6fcce866e1b569b42
4943Author: Jia Tan <jiat0218@gmail.com>
4944Date:   2024-02-16 22:52:41 +0800
4945
4946    Translations: Update the Ukrainian man page translations.
4947
4948 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++-----------------------------
4949 1 file changed, 873 insertions(+), 837 deletions(-)
4950
4951commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6
4952Author: Jia Tan <jiat0218@gmail.com>
4953Date:   2024-02-16 22:51:04 +0800
4954
4955    Translations: Update the Ukrainian translation.
4956
4957 po/uk.po | 466 ++++++++++++++++++++++++++++++---------------------------------
4958 1 file changed, 225 insertions(+), 241 deletions(-)
4959
4960commit 4c20781f4c8f04879b64d631a4f44b4909147bde
4961Author: Lasse Collin <lasse.collin@tukaani.org>
4962Date:   2024-02-15 22:32:52 +0200
4963
4964    Translations: Omit the generic copyright line from man page headers.
4965
4966 po4a/update-po | 1 +
4967 1 file changed, 1 insertion(+)
4968
4969commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e
4970Author: Jia Tan <jiat0218@gmail.com>
4971Date:   2024-02-15 22:26:43 +0800
4972
4973    Update m4/.gitignore.
4974
4975 m4/.gitignore | 1 +
4976 1 file changed, 1 insertion(+)
4977
4978commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
4979Author: Lasse Collin <lasse.collin@tukaani.org>
4980Date:   2024-02-14 21:11:49 +0200
4981
4982    Tests: tuktest.h: Treat Clang separately from GCC.
4983
4984    Don't assume that Clang defines __GNUC__ as the extensions
4985    are available in clang-cl as well (and possibly in some other
4986    Clang variants?).
4987
4988 tests/tuktest.h | 6 +++---
4989 1 file changed, 3 insertions(+), 3 deletions(-)
4990
4991commit cce7330b9f23485a0879422e0c3395a7065439ac
4992Author: Lasse Collin <lasse.collin@tukaani.org>
4993Date:   2024-02-14 21:11:03 +0200
4994
4995    Tests: tuktest.h: Add a missing word to a comment.
4996
4997 tests/tuktest.h | 4 ++--
4998 1 file changed, 2 insertions(+), 2 deletions(-)
4999
5000commit 5dd8fc9452a3373cedc27379067ce638f992c741
5001Author: Lasse Collin <lasse.collin@tukaani.org>
5002Date:   2024-02-14 21:10:10 +0200
5003
5004    Tests: tuktest.h: Fix the comment about STest.
5005
5006 tests/tuktest.h | 3 ++-
5007 1 file changed, 2 insertions(+), 1 deletion(-)
5008
5009commit 6f1790254a03c5edf0f2976f773220f070450acd
5010Author: Jia Tan <jiat0218@gmail.com>
5011Date:   2024-02-15 01:53:40 +0800
5012
5013    Bump version for 5.5.2beta.
5014
5015 src/liblzma/api/lzma/version.h  | 4 ++--
5016 src/liblzma/liblzma_generic.map | 2 +-
5017 src/liblzma/liblzma_linux.map   | 2 +-
5018 3 files changed, 4 insertions(+), 4 deletions(-)
5019
5020commit 924fdeedf48113fb1e0646d86bd89a356d21a055
5021Author: Lasse Collin <lasse.collin@tukaani.org>
5022Date:   2024-02-14 19:46:11 +0200
5023
5024    liblzma: Fix validate_map.sh.
5025
5026    Adding the SPDX license identifier changed the line numbers.
5027
5028 src/liblzma/validate_map.sh | 2 +-
5029 1 file changed, 1 insertion(+), 1 deletion(-)
5030
5031commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01
5032Author: Lasse Collin <lasse.collin@tukaani.org>
5033Date:   2024-02-14 19:38:34 +0200
5034
5035    Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0.
5036
5037 Makefile.am | 2 +-
5038 1 file changed, 1 insertion(+), 1 deletion(-)
5039
5040commit 0b8cefa136c21d403a01b78517f4decb50172bdb
5041Author: Lasse Collin <lasse.collin@tukaani.org>
5042Date:   2024-02-14 19:27:46 +0200
5043
5044    Fixed NEWS for 5.5.2beta.
5045
5046 NEWS | 8 ++++++--
5047 1 file changed, 6 insertions(+), 2 deletions(-)
5048
5049commit a4557bad96361d93ea171ed859ac5a696fca824f
5050Author: Lasse Collin <lasse.collin@tukaani.org>
5051Date:   2024-02-14 19:21:45 +0200
5052
5053    liblzma: Silence warnings in --enable-small build.
5054
5055 src/liblzma/lzma/lzma_decoder.c        | 2 ++
5056 src/liblzma/rangecoder/range_decoder.h | 1 +
5057 2 files changed, 3 insertions(+)
5058
5059commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2
5060Author: Lasse Collin <lasse.collin@tukaani.org>
5061Date:   2024-02-14 19:15:58 +0200
5062
5063    Build: Install COPYING.0BSD as part of docs.
5064
5065 Makefile.am | 1 +
5066 1 file changed, 1 insertion(+)
5067
5068commit b74e10bd839bcdc239afb5300ffaee195f34c217
5069Author: Lasse Collin <lasse.collin@tukaani.org>
5070Date:   2024-02-14 19:14:05 +0200
5071
5072    Docs: List COPYING.0BSD in README.
5073
5074 README | 1 +
5075 1 file changed, 1 insertion(+)
5076
5077commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e
5078Author: Lasse Collin <lasse.collin@tukaani.org>
5079Date:   2024-02-14 19:11:48 +0200
5080
5081    Docs: Include doc/examples/11_file_info.c in tarballs.
5082
5083    It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
5084    but it never got into any release tarballs because it was
5085    forgotten to be added to Makefile.am.
5086
5087 Makefile.am | 1 +
5088 1 file changed, 1 insertion(+)
5089
5090commit 160b6862646d95dfdbd73ab7f1031ede0f54992d
5091Author: Lasse Collin <lasse.collin@tukaani.org>
5092Date:   2024-02-14 19:05:58 +0200
5093
5094    liblzma: Silence a warning.
5095
5096 src/liblzma/rangecoder/range_decoder.h | 2 +-
5097 1 file changed, 1 insertion(+), 1 deletion(-)
5098
5099commit eeedd4d0925ea417add04ceb42a6c0829244b50c
5100Author: Lasse Collin <lasse.collin@tukaani.org>
5101Date:   2024-02-14 18:32:27 +0200
5102
5103    Add NEWS for 5.5.2beta.
5104
5105 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5106 1 file changed, 60 insertions(+)
5107
5108commit 8af7db854f903068d72a9a0d21103cb0c5027fa8
5109Author: Lasse Collin <lasse.collin@tukaani.org>
5110Date:   2024-02-13 14:32:47 +0200
5111
5112    xz: Mention lzmainfo if trying to use 'lzma --list'.
5113
5114    This kind of fixes the problem reported here:
5115    https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020
5116
5117 src/xz/list.c | 16 ++++++++++++++--
5118 1 file changed, 14 insertions(+), 2 deletions(-)
5119
5120commit 0668907ff736e4cd16738c10d39a2bc9e851aefb
5121Author: Lasse Collin <lasse.collin@tukaani.org>
5122Date:   2024-02-14 14:58:36 +0200
5123
5124    liblzma: Add comments.
5125
5126 src/liblzma/lzma/lzma_decoder.c        |  9 +++++++++
5127 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++--
5128 2 files changed, 18 insertions(+), 2 deletions(-)
5129
5130commit 109f1913d4824c8214d5bbd38ebebf62c37572da
5131Author: Lasse Collin <lasse.collin@tukaani.org>
5132Date:   2024-02-13 17:00:17 +0200
5133
5134    Scripts: Add lz4 support to xzgrep and xzdiff.
5135
5136 src/scripts/xzdiff.1  |  8 +++++---
5137 src/scripts/xzdiff.in | 14 +++++++++-----
5138 src/scripts/xzgrep.1  |  6 ++++--
5139 src/scripts/xzgrep.in |  1 +
5140 4 files changed, 19 insertions(+), 10 deletions(-)
5141
5142commit de55485cb23af56c5adbe3239b935c957ff8ac4f
5143Author: Lasse Collin <lasse.collin@tukaani.org>
5144Date:   2024-02-13 14:05:13 +0200
5145
5146    liblzma: Choose the range decoder variants using a bitmask macro.
5147
5148 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------
5149 1 file changed, 53 insertions(+), 11 deletions(-)
5150
5151commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5
5152Author: Lasse Collin <lasse.collin@tukaani.org>
5153Date:   2024-02-13 11:38:10 +0200
5154
5155    xz: Fix outdated threading related info on the man page.
5156
5157 src/xz/xz.1 | 22 ++++++++++++++--------
5158 1 file changed, 14 insertions(+), 8 deletions(-)
5159
5160commit 3182a330c1512cc1f5c87b5c5a272578e60a5158
5161Author: Lasse Collin <lasse.collin@tukaani.org>
5162Date:   2024-02-12 17:09:10 +0200
5163
5164    liblzma: Range decoder: Add x86-64 inline assembly.
5165
5166    It's compatible with GCC and Clang.
5167
5168 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++
5169 1 file changed, 491 insertions(+)
5170
5171commit cba2edc991dffba7cd4891dbc1bd26cb950cf053
5172Author: Lasse Collin <lasse.collin@tukaani.org>
5173Date:   2024-02-12 17:09:10 +0200
5174
5175    liblzma: Range decoder: Add branchless C code.
5176
5177    It's used only for basic bittrees and fixed-size reverse bittree
5178    because those showed a clear benefit on x86-64 with GCC and Clang.
5179    The other methods were more mixed and thus are commented out but
5180    they should be tested on other archs.
5181
5182 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++
5183 1 file changed, 76 insertions(+)
5184
5185commit e290a72d6dee71faf3a90c9678b2f730083666a7
5186Author: Lasse Collin <lasse.collin@tukaani.org>
5187Date:   2024-02-12 17:09:10 +0200
5188
5189    liblzma: Clarify a comment.
5190
5191 src/liblzma/lzma/lzma_decoder.c | 9 ++++++---
5192 1 file changed, 6 insertions(+), 3 deletions(-)
5193
5194commit 5e04706b91ca90d6befd4da24a588a55e631d4a9
5195Author: Lasse Collin <lasse.collin@tukaani.org>
5196Date:   2024-02-12 17:09:10 +0200
5197
5198    liblzma: LZMA decoder: Optimize loop comparison.
5199
5200    But now it needs one more local variable.
5201
5202 src/liblzma/lzma/lzma_decoder.c        |  5 ++---
5203 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++-
5204 2 files changed, 11 insertions(+), 4 deletions(-)
5205
5206commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66
5207Author: Lasse Collin <lasse.collin@tukaani.org>
5208Date:   2024-02-12 17:09:10 +0200
5209
5210    liblzma: Optimize literal_subcoder() macro slightly.
5211
5212 src/liblzma/lzma/lzma_common.h                 | 22 ++++++++++++----------
5213 src/liblzma/lzma/lzma_decoder.c                | 12 ++++++------
5214 src/liblzma/lzma/lzma_encoder.c                |  6 +++---
5215 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  2 +-
5216 src/liblzma/lzma/lzma_encoder_private.h        |  4 ++--
5217 5 files changed, 24 insertions(+), 22 deletions(-)
5218
5219commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5
5220Author: Lasse Collin <lasse.collin@tukaani.org>
5221Date:   2024-02-12 17:09:10 +0200
5222
5223    liblzma: LZ decoder: Add unlikely().
5224
5225 src/liblzma/lz/lz_decoder.h | 2 +-
5226 1 file changed, 1 insertion(+), 1 deletion(-)
5227
5228commit 9c252e3ed086c6b72590b2531586c42596d4a9d9
5229Author: Lasse Collin <lasse.collin@tukaani.org>
5230Date:   2024-02-12 17:09:10 +0200
5231
5232    liblzma: LZ decoder: Remove a useless unlikely().
5233
5234 src/liblzma/lz/lz_decoder.h | 2 +-
5235 1 file changed, 1 insertion(+), 1 deletion(-)
5236
5237commit f3872a59475456c5d365cad9f1c5be514cfa54b5
5238Author: Lasse Collin <lasse.collin@tukaani.org>
5239Date:   2024-02-12 17:09:10 +0200
5240
5241    liblzma: Optimize LZ decoder slightly.
5242
5243    Now extra buffer space is reserved so that repeating bytes for
5244    any single match will never need to copy from two places (both
5245    the beginning and the end of the buffer). This simplifies
5246    dict_repeat() and helps a little with speed.
5247
5248    This seems to reduce .lzma decompression time about 2 %, so
5249    with .xz and CRC it could be slightly less. The small things
5250    add up still.
5251
5252 src/liblzma/lz/lz_decoder.c     |  43 ++++++++++++-----
5253 src/liblzma/lz/lz_decoder.h     | 101 +++++++++++++++++++++-------------------
5254 src/liblzma/lzma/lzma_decoder.c |   4 +-
5255 3 files changed, 88 insertions(+), 60 deletions(-)
5256
5257commit eb518446e578acf079abae5f1ce28db7b6e59bc1
5258Author: Lasse Collin <lasse.collin@tukaani.org>
5259Date:   2024-02-12 17:09:10 +0200
5260
5261    liblzma: LZMA decoder: Get rid of next_state[].
5262
5263    It's not completely obvious if this is better in the decoder.
5264    It should be good if compiler can avoid creating a branch
5265    (like using CMOV on x86).
5266
5267    This also makes lzma_encoder.c use the new macros.
5268
5269 src/liblzma/lzma/lzma_common.h  | 14 ++++++++++++++
5270 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++----------------------
5271 src/liblzma/lzma/lzma_encoder.c |  4 ++--
5272 3 files changed, 24 insertions(+), 24 deletions(-)
5273
5274commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604
5275Author: Lasse Collin <lasse.collin@tukaani.org>
5276Date:   2024-02-12 17:09:10 +0200
5277
5278    liblzma: LZMA decoder improvements.
5279
5280    This adds macros for bittree decoding which prepares the code
5281    for alternative C versions and inline assembly.
5282
5283 src/liblzma/lzma/lzma_decoder.c        | 264 ++++++++++-----------------------
5284 src/liblzma/rangecoder/range_common.h  |   4 +
5285 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++--
5286 3 files changed, 210 insertions(+), 200 deletions(-)
5287
5288commit de5c5e417645ad8906ef914bc059d08c1462fc29
5289Author: Jia Tan <jiat0218@gmail.com>
5290Date:   2024-02-12 17:09:10 +0200
5291
5292    liblzma: Creates Non-resumable and Resumable modes for lzma_decoder.
5293
5294    The new decoder resumes the first decoder loop in the Resumable mode.
5295    Then, the code executes in Non-resumable mode until it detects that it
5296    cannot guarantee to have enough input/output to decode another symbol.
5297
5298    The Resumable mode is how the decoder has always worked. Before decoding
5299    every input bit, it checks if there is enough space and will save its
5300    location to be resumed later. When the decoder has more input/output,
5301    it jumps back to the correct sequence in the Resumable mode code.
5302
5303    When the input/output buffers are large, the Resumable mode is much
5304    slower than the Non-resumable because it has more branches and is harder
5305    for the compiler to optimize since it is in a large switch block.
5306
5307    Early benchmarking shows significant time improvement (8-10% on gcc and
5308    clang x86) by using the Non-resumable code as much as possible.
5309
5310 src/liblzma/lz/lz_decoder.h     |  14 +-
5311 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------
5312 2 files changed, 521 insertions(+), 213 deletions(-)
5313
5314commit e446ab7a18abfde18f8d1cf02a914df72b1370e3
5315Author: Jia Tan <jiat0218@gmail.com>
5316Date:   2024-02-12 17:09:10 +0200
5317
5318    liblzma: Creates separate "safe" range decoder mode.
5319
5320    The new "safe" range decoder mode is the same as old range decoder, but
5321    now the default behavior of the range decoder will not check if there is
5322    enough input or output to complete the operation. When the buffers are
5323    close to fully consumed, the "safe" operations must be used instead. This
5324    will improve speed because it will reduce the number of branches needed
5325    for most of the range decoder operations.
5326
5327 src/liblzma/lzma/lzma_decoder.c        | 108 ++++++++-------------------------
5328 src/liblzma/rangecoder/range_decoder.h |  77 +++++++++++++++++------
5329 2 files changed, 82 insertions(+), 103 deletions(-)
5330
5331commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9
5332Author: Lasse Collin <lasse.collin@tukaani.org>
5333Date:   2024-02-12 17:09:10 +0200
5334
5335    doxygen/footer.html: Add missing closing tags and don't open a new tab.
5336
5337    The footer template from Doxygen has the closing </body> </html>
5338    as Doxygen doesn't add them otherwise.
5339
5340    target="_blank" was omitted as it's not useful here but
5341    it can be slightly annoying as one cannot just go back
5342    in the browser history.
5343
5344    Since the footer links to the license file in the same
5345    directory and not to CC website, the rel attributes
5346    can be omitted.
5347
5348 doxygen/footer.html | 6 ++++--
5349 1 file changed, 4 insertions(+), 2 deletions(-)
5350
5351commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92
5352Author: Lasse Collin <lasse.collin@tukaani.org>
5353Date:   2024-02-13 13:19:10 +0200
5354
5355    Tweak the expressions in AUTHORS.
5356
5357 AUTHORS | 31 +++++++++++++++++++++++--------
5358 1 file changed, 23 insertions(+), 8 deletions(-)
5359
5360commit d231d56580175fa040fdd3c6207a58243ce6217b
5361Author: Lasse Collin <lasse.collin@tukaani.org>
5362Date:   2024-02-13 13:07:33 +0200
5363
5364    Translations: Add the man page translators into man page header comment.
5365
5366    It looked odd to only have the original English authors listed
5367    in the header comments of the translated files.
5368
5369 po4a/.gitignore |  1 +
5370 po4a/po4a.conf  | 14 +++++++-------
5371 po4a/update-po  | 18 ++++++++++++++++++
5372 3 files changed, 26 insertions(+), 7 deletions(-)
5373
5374commit 6d35fcb936474fca1acaebfd9502c097b6fde88e
5375Author: Lasse Collin <lasse.collin@tukaani.org>
5376Date:   2024-02-12 17:09:10 +0200
5377
5378    Translations: Translate also messages of lzmainfo.
5379
5380    lzmainfo has had translation support since 2009 at least but
5381    it was never added to po/POTFILES.in so the messages weren't
5382    translated. It's a very rarely needed tool so it's not too bad.
5383
5384    This also adds src/xz/mytime.c to po/POTFILES.in although there
5385    are no translatable strings. It's simpler this way so that it
5386    won't be forgotten if strings were ever added to that file.
5387
5388 po/POTFILES.in | 2 ++
5389 1 file changed, 2 insertions(+)
5390
5391commit a9f369dd54b05f9ac4e00ead9d765d04fc259868
5392Author: Lasse Collin <lasse.collin@tukaani.org>
5393Date:   2024-02-12 17:09:10 +0200
5394
5395    Translations: Add custom .pot header with SPDX license identifier.
5396
5397    The same is used for both po/xz.pot and po4a/xz-man.pot.
5398
5399 Makefile.am      | 1 +
5400 po/xz.pot-header | 7 +++++++
5401 po4a/update-po   | 8 ++++++++
5402 3 files changed, 16 insertions(+)
5403
5404commit 469cd6653bb96e83c5cf1031c204d34566b15f44
5405Author: Lasse Collin <lasse.collin@tukaani.org>
5406Date:   2024-02-12 17:09:10 +0200
5407
5408    Translations: po4a/update-po: Add copyright notice to xz-man.pot.
5409
5410    All man pages are under 0BSD now so this is simple now.
5411
5412 po4a/update-po | 2 +-
5413 1 file changed, 1 insertion(+), 1 deletion(-)
5414
5415commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699
5416Author: Lasse Collin <lasse.collin@tukaani.org>
5417Date:   2024-02-12 17:09:10 +0200
5418
5419    Update COPYING about the man pages of the scripts.
5420
5421 COPYING | 6 +++---
5422 1 file changed, 3 insertions(+), 3 deletions(-)
5423
5424commit e48287bf51afd5184ea74de1dcade9e153f873f7
5425Author: Lasse Collin <lasse.collin@tukaani.org>
5426Date:   2024-02-12 17:09:10 +0200
5427
5428    xzdiff, xzgrep, and xzmore: Rewrite the man pages.
5429
5430    The main reason is a kind of silly one:
5431
5432    xz-man.pot contains strings from all man pages in XZ Utils.
5433    The man pages of xzdiff, xzgrep, and xzmore were under GPLv2
5434    and the rest under 0BSD. Thus xz-man.pot contained strings
5435    under two licences. po4a creates the translated man pages
5436    from the combined 0BSD+GPLv2 xz-man.pot.
5437
5438    I haven't liked this mixing in xz-man.pot but the
5439    Translation Project requires that all man pages must be
5440    in the same .pot file. So a separate xz-man-gpl.pot
5441    wasn't an option.
5442
5443    Since these man pages are short, rewriting them was quick enough.
5444    Now xz-man.pot is entirely under 0BSD and marking the per-file
5445    licenses is simpler.
5446
5447    As a bonus, some wording hopefully is now slightly better
5448    although it's perhaps a matter of taste.
5449
5450    NOTE: In xzgrep.1, the EXIT STATUS section was written by me
5451    in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's
5452    why that section could be taken as is from the old xzgrep.1.
5453
5454 src/scripts/xzdiff.1 |  94 ++++++++++++++++++++++++-----------------
5455 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++-------------------
5456 src/scripts/xzmore.1 |  79 ++++++++++++++++++++---------------
5457 3 files changed, 173 insertions(+), 116 deletions(-)
5458
5459commit 3e551b111b8ae8150f1a1040364dbafc034f22be
5460Author: Lasse Collin <lasse.collin@tukaani.org>
5461Date:   2024-02-12 17:09:10 +0200
5462
5463    xzless: Update man page slightly.
5464
5465    The xz tool can decompress three file formats and xzless
5466    has always supported uncompressed files too.
5467
5468 src/scripts/xzless.1 | 8 ++++----
5469 1 file changed, 4 insertions(+), 4 deletions(-)
5470
5471commit 40f36da2262d13d6e1ba8449caa855512ae626d7
5472Author: Lasse Collin <lasse.collin@tukaani.org>
5473Date:   2024-02-12 17:09:10 +0200
5474
5475    Translations: Change po/Makevars to add a copyright notice to po/xz.pot.
5476
5477 po/Makevars | 4 ++--
5478 1 file changed, 2 insertions(+), 2 deletions(-)
5479
5480commit 24192854e2ea5c06997431a98bda3c36c5da1497
5481Author: Lasse Collin <lasse.collin@tukaani.org>
5482Date:   2024-02-12 17:09:10 +0200
5483
5484    Translations: Update po/Makevars to use the template from gettext 0.22.4.
5485
5486    Also add SPDX license identifier now that there is a known license.
5487
5488 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
5489 1 file changed, 46 insertions(+), 5 deletions(-)
5490
5491commit b94154957370116480b43bcabca25fc52deb9853
5492Author: Lasse Collin <lasse.collin@tukaani.org>
5493Date:   2024-02-12 17:09:10 +0200
5494
5495    liblzma: Include the SPDX license identifier 0BSD to generated files.
5496
5497    Perhaps the generated files aren't even copyrightable but
5498    using the same license for them as for the rest of the liblzma
5499    keeps things more consistent for tools that look for license info.
5500
5501 src/liblzma/check/crc32_table_be.h      |  4 +++-
5502 src/liblzma/check/crc32_table_le.h      |  4 +++-
5503 src/liblzma/check/crc32_tablegen.c      | 16 ++++++++++------
5504 src/liblzma/check/crc64_table_be.h      |  4 +++-
5505 src/liblzma/check/crc64_table_le.h      |  4 +++-
5506 src/liblzma/check/crc64_tablegen.c      |  8 +++++---
5507 src/liblzma/lz/lz_encoder_hash_table.h  |  4 +++-
5508 src/liblzma/lzma/fastpos_table.c        |  4 +++-
5509 src/liblzma/lzma/fastpos_tablegen.c     | 12 +++++++-----
5510 src/liblzma/rangecoder/price_table.c    |  4 +++-
5511 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++-----
5512 11 files changed, 50 insertions(+), 26 deletions(-)
5513
5514commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4
5515Author: Lasse Collin <lasse.collin@tukaani.org>
5516Date:   2024-02-12 17:09:10 +0200
5517
5518    liblzma: Fix compilation of price_tablegen.c.
5519
5520    It is built and run only manually so this didn't matter
5521    unless one wanted to regenerate the price_table.c.
5522
5523 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
5524 src/liblzma/rangecoder/range_common.h   | 5 ++++-
5525 2 files changed, 9 insertions(+), 1 deletion(-)
5526
5527commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf
5528Author: Lasse Collin <lasse.collin@tukaani.org>
5529Date:   2024-02-12 17:09:10 +0200
5530
5531    Add SPDX license identifiers to GPL, LGPL, and FSFULLR files.
5532
5533 extra/scanlzma/scanlzma.c | 2 ++
5534 lib/Makefile.am           | 2 ++
5535 lib/getopt-cdefs.h        | 2 ++
5536 lib/getopt-core.h         | 2 ++
5537 lib/getopt-ext.h          | 2 ++
5538 lib/getopt-pfx-core.h     | 2 ++
5539 lib/getopt-pfx-ext.h      | 2 ++
5540 lib/getopt.c              | 2 ++
5541 lib/getopt.in.h           | 2 ++
5542 lib/getopt1.c             | 2 ++
5543 lib/getopt_int.h          | 2 ++
5544 m4/ax_pthread.m4          | 2 ++
5545 m4/getopt.m4              | 2 ++
5546 m4/posix-shell.m4         | 2 ++
5547 m4/visibility.m4          | 2 ++
5548 src/scripts/xzdiff.1      | 3 +--
5549 src/scripts/xzdiff.in     | 1 +
5550 src/scripts/xzgrep.1      | 3 +--
5551 src/scripts/xzgrep.in     | 1 +
5552 src/scripts/xzless.in     | 1 +
5553 src/scripts/xzmore.1      | 3 +--
5554 src/scripts/xzmore.in     | 1 +
5555 22 files changed, 37 insertions(+), 6 deletions(-)
5556
5557commit 22af94128b89a131f5e58ae69bee5e50227c15da
5558Author: Lasse Collin <lasse.collin@tukaani.org>
5559Date:   2024-02-12 17:09:10 +0200
5560
5561    Add SPDX license identifier into 0BSD source code files.
5562
5563 .github/workflows/ci.yml                       | 2 ++
5564 .github/workflows/windows-ci.yml               | 2 ++
5565 CMakeLists.txt                                 | 2 ++
5566 Makefile.am                                    | 3 +--
5567 autogen.sh                                     | 1 +
5568 build-aux/ci_build.sh                          | 3 ++-
5569 build-aux/manconv.sh                           | 3 ++-
5570 build-aux/version.sh                           | 3 ++-
5571 cmake/remove-ordinals.cmake                    | 2 ++
5572 cmake/tuklib_common.cmake                      | 4 ++++
5573 cmake/tuklib_cpucores.cmake                    | 4 ++++
5574 cmake/tuklib_integer.cmake                     | 4 ++++
5575 cmake/tuklib_large_file_support.cmake          | 4 ++++
5576 cmake/tuklib_mbstr.cmake                       | 4 ++++
5577 cmake/tuklib_physmem.cmake                     | 4 ++++
5578 cmake/tuklib_progname.cmake                    | 4 ++++
5579 configure.ac                                   | 4 +++-
5580 debug/Makefile.am                              | 3 +--
5581 debug/crc32.c                                  | 2 ++
5582 debug/full_flush.c                             | 2 ++
5583 debug/hex2bin.c                                | 2 ++
5584 debug/known_sizes.c                            | 2 ++
5585 debug/memusage.c                               | 2 ++
5586 debug/repeat.c                                 | 2 ++
5587 debug/sync_flush.c                             | 2 ++
5588 debug/translation.bash                         | 1 +
5589 doc/examples/01_compress_easy.c                | 2 ++
5590 doc/examples/02_decompress.c                   | 2 ++
5591 doc/examples/03_compress_custom.c              | 2 ++
5592 doc/examples/04_compress_easy_mt.c             | 2 ++
5593 doc/examples/11_file_info.c                    | 2 ++
5594 doc/examples/Makefile                          | 3 +--
5595 dos/Makefile                                   | 2 ++
5596 dos/config.h                                   | 2 ++
5597 doxygen/update-doxygen                         | 3 ++-
5598 extra/7z2lzma/7z2lzma.bash                     | 3 ++-
5599 m4/tuklib_common.m4                            | 8 ++++++--
5600 m4/tuklib_cpucores.m4                          | 8 ++++++--
5601 m4/tuklib_integer.m4                           | 8 ++++++--
5602 m4/tuklib_mbstr.m4                             | 8 ++++++--
5603 m4/tuklib_physmem.m4                           | 8 ++++++--
5604 m4/tuklib_progname.m4                          | 8 ++++++--
5605 po/POTFILES.in                                 | 2 ++
5606 po4a/po4a.conf                                 | 2 ++
5607 po4a/update-po                                 | 3 ++-
5608 src/Makefile.am                                | 3 +--
5609 src/common/common_w32res.rc                    | 2 ++
5610 src/common/mythread.h                          | 2 ++
5611 src/common/sysdefs.h                           | 2 ++
5612 src/common/tuklib_common.h                     | 2 ++
5613 src/common/tuklib_config.h                     | 2 ++
5614 src/common/tuklib_cpucores.c                   | 2 ++
5615 src/common/tuklib_cpucores.h                   | 2 ++
5616 src/common/tuklib_exit.c                       | 2 ++
5617 src/common/tuklib_exit.h                       | 2 ++
5618 src/common/tuklib_gettext.h                    | 2 ++
5619 src/common/tuklib_integer.h                    | 2 ++
5620 src/common/tuklib_mbstr.h                      | 2 ++
5621 src/common/tuklib_mbstr_fw.c                   | 2 ++
5622 src/common/tuklib_mbstr_width.c                | 2 ++
5623 src/common/tuklib_open_stdxxx.c                | 2 ++
5624 src/common/tuklib_open_stdxxx.h                | 2 ++
5625 src/common/tuklib_physmem.c                    | 2 ++
5626 src/common/tuklib_physmem.h                    | 2 ++
5627 src/common/tuklib_progname.c                   | 2 ++
5628 src/common/tuklib_progname.h                   | 2 ++
5629 src/liblzma/Makefile.am                        | 3 +--
5630 src/liblzma/api/Makefile.am                    | 3 +--
5631 src/liblzma/api/lzma.h                         | 2 ++
5632 src/liblzma/api/lzma/base.h                    | 2 ++
5633 src/liblzma/api/lzma/bcj.h                     | 2 ++
5634 src/liblzma/api/lzma/block.h                   | 2 ++
5635 src/liblzma/api/lzma/check.h                   | 2 ++
5636 src/liblzma/api/lzma/container.h               | 2 ++
5637 src/liblzma/api/lzma/delta.h                   | 2 ++
5638 src/liblzma/api/lzma/filter.h                  | 2 ++
5639 src/liblzma/api/lzma/hardware.h                | 2 ++
5640 src/liblzma/api/lzma/index.h                   | 2 ++
5641 src/liblzma/api/lzma/index_hash.h              | 2 ++
5642 src/liblzma/api/lzma/lzma12.h                  | 2 ++
5643 src/liblzma/api/lzma/stream_flags.h            | 2 ++
5644 src/liblzma/api/lzma/version.h                 | 2 ++
5645 src/liblzma/api/lzma/vli.h                     | 2 ++
5646 src/liblzma/check/Makefile.inc                 | 4 ++--
5647 src/liblzma/check/check.c                      | 2 ++
5648 src/liblzma/check/check.h                      | 2 ++
5649 src/liblzma/check/crc32_arm64.h                | 2 ++
5650 src/liblzma/check/crc32_fast.c                 | 2 ++
5651 src/liblzma/check/crc32_small.c                | 2 ++
5652 src/liblzma/check/crc32_table.c                | 2 ++
5653 src/liblzma/check/crc32_tablegen.c             | 2 ++
5654 src/liblzma/check/crc32_x86.S                  | 2 ++
5655 src/liblzma/check/crc64_fast.c                 | 2 ++
5656 src/liblzma/check/crc64_small.c                | 2 ++
5657 src/liblzma/check/crc64_table.c                | 2 ++
5658 src/liblzma/check/crc64_tablegen.c             | 2 ++
5659 src/liblzma/check/crc64_x86.S                  | 2 ++
5660 src/liblzma/check/crc_common.h                 | 2 ++
5661 src/liblzma/check/crc_x86_clmul.h              | 2 ++
5662 src/liblzma/check/sha256.c                     | 2 ++
5663 src/liblzma/common/Makefile.inc                | 3 +--
5664 src/liblzma/common/alone_decoder.c             | 2 ++
5665 src/liblzma/common/alone_decoder.h             | 2 ++
5666 src/liblzma/common/alone_encoder.c             | 2 ++
5667 src/liblzma/common/auto_decoder.c              | 2 ++
5668 src/liblzma/common/block_buffer_decoder.c      | 2 ++
5669 src/liblzma/common/block_buffer_encoder.c      | 2 ++
5670 src/liblzma/common/block_buffer_encoder.h      | 2 ++
5671 src/liblzma/common/block_decoder.c             | 2 ++
5672 src/liblzma/common/block_decoder.h             | 2 ++
5673 src/liblzma/common/block_encoder.c             | 2 ++
5674 src/liblzma/common/block_encoder.h             | 2 ++
5675 src/liblzma/common/block_header_decoder.c      | 2 ++
5676 src/liblzma/common/block_header_encoder.c      | 2 ++
5677 src/liblzma/common/block_util.c                | 2 ++
5678 src/liblzma/common/common.c                    | 2 ++
5679 src/liblzma/common/common.h                    | 2 ++
5680 src/liblzma/common/easy_buffer_encoder.c       | 2 ++
5681 src/liblzma/common/easy_decoder_memusage.c     | 2 ++
5682 src/liblzma/common/easy_encoder.c              | 2 ++
5683 src/liblzma/common/easy_encoder_memusage.c     | 2 ++
5684 src/liblzma/common/easy_preset.c               | 2 ++
5685 src/liblzma/common/easy_preset.h               | 2 ++
5686 src/liblzma/common/file_info.c                 | 2 ++
5687 src/liblzma/common/filter_buffer_decoder.c     | 2 ++
5688 src/liblzma/common/filter_buffer_encoder.c     | 2 ++
5689 src/liblzma/common/filter_common.c             | 2 ++
5690 src/liblzma/common/filter_common.h             | 2 ++
5691 src/liblzma/common/filter_decoder.c            | 2 ++
5692 src/liblzma/common/filter_decoder.h            | 2 ++
5693 src/liblzma/common/filter_encoder.c            | 2 ++
5694 src/liblzma/common/filter_encoder.h            | 2 ++
5695 src/liblzma/common/filter_flags_decoder.c      | 2 ++
5696 src/liblzma/common/filter_flags_encoder.c      | 2 ++
5697 src/liblzma/common/hardware_cputhreads.c       | 2 ++
5698 src/liblzma/common/hardware_physmem.c          | 2 ++
5699 src/liblzma/common/index.c                     | 2 ++
5700 src/liblzma/common/index.h                     | 2 ++
5701 src/liblzma/common/index_decoder.c             | 2 ++
5702 src/liblzma/common/index_decoder.h             | 2 ++
5703 src/liblzma/common/index_encoder.c             | 2 ++
5704 src/liblzma/common/index_encoder.h             | 2 ++
5705 src/liblzma/common/index_hash.c                | 2 ++
5706 src/liblzma/common/lzip_decoder.c              | 2 ++
5707 src/liblzma/common/lzip_decoder.h              | 2 ++
5708 src/liblzma/common/memcmplen.h                 | 2 ++
5709 src/liblzma/common/microlzma_decoder.c         | 2 ++
5710 src/liblzma/common/microlzma_encoder.c         | 2 ++
5711 src/liblzma/common/outqueue.c                  | 2 ++
5712 src/liblzma/common/outqueue.h                  | 2 ++
5713 src/liblzma/common/stream_buffer_decoder.c     | 2 ++
5714 src/liblzma/common/stream_buffer_encoder.c     | 2 ++
5715 src/liblzma/common/stream_decoder.c            | 2 ++
5716 src/liblzma/common/stream_decoder.h            | 2 ++
5717 src/liblzma/common/stream_decoder_mt.c         | 2 ++
5718 src/liblzma/common/stream_encoder.c            | 2 ++
5719 src/liblzma/common/stream_encoder_mt.c         | 2 ++
5720 src/liblzma/common/stream_flags_common.c       | 2 ++
5721 src/liblzma/common/stream_flags_common.h       | 2 ++
5722 src/liblzma/common/stream_flags_decoder.c      | 2 ++
5723 src/liblzma/common/stream_flags_encoder.c      | 2 ++
5724 src/liblzma/common/string_conversion.c         | 2 ++
5725 src/liblzma/common/vli_decoder.c               | 2 ++
5726 src/liblzma/common/vli_encoder.c               | 2 ++
5727 src/liblzma/common/vli_size.c                  | 2 ++
5728 src/liblzma/delta/Makefile.inc                 | 3 +--
5729 src/liblzma/delta/delta_common.c               | 2 ++
5730 src/liblzma/delta/delta_common.h               | 2 ++
5731 src/liblzma/delta/delta_decoder.c              | 2 ++
5732 src/liblzma/delta/delta_decoder.h              | 2 ++
5733 src/liblzma/delta/delta_encoder.c              | 2 ++
5734 src/liblzma/delta/delta_encoder.h              | 2 ++
5735 src/liblzma/delta/delta_private.h              | 2 ++
5736 src/liblzma/liblzma.pc.in                      | 3 +--
5737 src/liblzma/liblzma_generic.map                | 2 ++
5738 src/liblzma/liblzma_linux.map                  | 2 ++
5739 src/liblzma/liblzma_w32res.rc                  | 2 ++
5740 src/liblzma/lz/Makefile.inc                    | 3 +--
5741 src/liblzma/lz/lz_decoder.c                    | 2 ++
5742 src/liblzma/lz/lz_decoder.h                    | 2 ++
5743 src/liblzma/lz/lz_encoder.c                    | 2 ++
5744 src/liblzma/lz/lz_encoder.h                    | 2 ++
5745 src/liblzma/lz/lz_encoder_hash.h               | 2 ++
5746 src/liblzma/lz/lz_encoder_mf.c                 | 2 ++
5747 src/liblzma/lzma/Makefile.inc                  | 3 +--
5748 src/liblzma/lzma/fastpos.h                     | 2 ++
5749 src/liblzma/lzma/fastpos_tablegen.c            | 2 ++
5750 src/liblzma/lzma/lzma2_decoder.c               | 2 ++
5751 src/liblzma/lzma/lzma2_decoder.h               | 2 ++
5752 src/liblzma/lzma/lzma2_encoder.c               | 2 ++
5753 src/liblzma/lzma/lzma2_encoder.h               | 2 ++
5754 src/liblzma/lzma/lzma_common.h                 | 2 ++
5755 src/liblzma/lzma/lzma_decoder.c                | 2 ++
5756 src/liblzma/lzma/lzma_decoder.h                | 2 ++
5757 src/liblzma/lzma/lzma_encoder.c                | 2 ++
5758 src/liblzma/lzma/lzma_encoder.h                | 2 ++
5759 src/liblzma/lzma/lzma_encoder_optimum_fast.c   | 2 ++
5760 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++
5761 src/liblzma/lzma/lzma_encoder_presets.c        | 2 ++
5762 src/liblzma/lzma/lzma_encoder_private.h        | 2 ++
5763 src/liblzma/rangecoder/Makefile.inc            | 3 +--
5764 src/liblzma/rangecoder/price.h                 | 2 ++
5765 src/liblzma/rangecoder/price_tablegen.c        | 2 ++
5766 src/liblzma/rangecoder/range_common.h          | 2 ++
5767 src/liblzma/rangecoder/range_decoder.h         | 2 ++
5768 src/liblzma/rangecoder/range_encoder.h         | 2 ++
5769 src/liblzma/simple/Makefile.inc                | 3 +--
5770 src/liblzma/simple/arm.c                       | 2 ++
5771 src/liblzma/simple/arm64.c                     | 2 ++
5772 src/liblzma/simple/armthumb.c                  | 2 ++
5773 src/liblzma/simple/ia64.c                      | 2 ++
5774 src/liblzma/simple/powerpc.c                   | 2 ++
5775 src/liblzma/simple/riscv.c                     | 2 ++
5776 src/liblzma/simple/simple_coder.c              | 2 ++
5777 src/liblzma/simple/simple_coder.h              | 2 ++
5778 src/liblzma/simple/simple_decoder.c            | 2 ++
5779 src/liblzma/simple/simple_decoder.h            | 2 ++
5780 src/liblzma/simple/simple_encoder.c            | 2 ++
5781 src/liblzma/simple/simple_encoder.h            | 2 ++
5782 src/liblzma/simple/simple_private.h            | 2 ++
5783 src/liblzma/simple/sparc.c                     | 2 ++
5784 src/liblzma/simple/x86.c                       | 2 ++
5785 src/liblzma/validate_map.sh                    | 1 +
5786 src/lzmainfo/Makefile.am                       | 3 +--
5787 src/lzmainfo/lzmainfo.c                        | 2 ++
5788 src/lzmainfo/lzmainfo_w32res.rc                | 2 ++
5789 src/scripts/Makefile.am                        | 3 +--
5790 src/xz/Makefile.am                             | 3 +--
5791 src/xz/args.c                                  | 2 ++
5792 src/xz/args.h                                  | 2 ++
5793 src/xz/coder.c                                 | 2 ++
5794 src/xz/coder.h                                 | 2 ++
5795 src/xz/file_io.c                               | 2 ++
5796 src/xz/file_io.h                               | 2 ++
5797 src/xz/hardware.c                              | 2 ++
5798 src/xz/hardware.h                              | 2 ++
5799 src/xz/list.c                                  | 2 ++
5800 src/xz/list.h                                  | 2 ++
5801 src/xz/main.c                                  | 2 ++
5802 src/xz/main.h                                  | 2 ++
5803 src/xz/message.c                               | 2 ++
5804 src/xz/message.h                               | 2 ++
5805 src/xz/mytime.c                                | 2 ++
5806 src/xz/mytime.h                                | 2 ++
5807 src/xz/options.c                               | 2 ++
5808 src/xz/options.h                               | 2 ++
5809 src/xz/private.h                               | 2 ++
5810 src/xz/signals.c                               | 2 ++
5811 src/xz/signals.h                               | 2 ++
5812 src/xz/suffix.c                                | 2 ++
5813 src/xz/suffix.h                                | 2 ++
5814 src/xz/util.c                                  | 2 ++
5815 src/xz/util.h                                  | 2 ++
5816 src/xz/xz_w32res.rc                            | 2 ++
5817 src/xzdec/Makefile.am                          | 3 +--
5818 src/xzdec/lzmadec_w32res.rc                    | 2 ++
5819 src/xzdec/xzdec.c                              | 2 ++
5820 src/xzdec/xzdec_w32res.rc                      | 2 ++
5821 tests/Makefile.am                              | 3 +--
5822 tests/bcj_test.c                               | 2 ++
5823 tests/code_coverage.sh                         | 1 +
5824 tests/create_compress_files.c                  | 2 ++
5825 tests/ossfuzz/fuzz_common.h                    | 2 ++
5826 tests/ossfuzz/fuzz_decode_alone.c              | 2 ++
5827 tests/ossfuzz/fuzz_decode_stream.c             | 2 ++
5828 tests/ossfuzz/fuzz_encode_stream.c             | 2 ++
5829 tests/test_bcj_exact_size.c                    | 2 ++
5830 tests/test_block_header.c                      | 2 ++
5831 tests/test_check.c                             | 2 ++
5832 tests/test_compress.sh                         | 1 +
5833 tests/test_compress_generated_abc              | 1 +
5834 tests/test_compress_generated_random           | 1 +
5835 tests/test_compress_generated_text             | 1 +
5836 tests/test_compress_prepared_bcj_sparc         | 1 +
5837 tests/test_compress_prepared_bcj_x86           | 1 +
5838 tests/test_files.sh                            | 1 +
5839 tests/test_filter_flags.c                      | 2 ++
5840 tests/test_filter_str.c                        | 2 ++
5841 tests/test_hardware.c                          | 2 ++
5842 tests/test_index.c                             | 2 ++
5843 tests/test_index_hash.c                        | 2 ++
5844 tests/test_lzip_decoder.c                      | 2 ++
5845 tests/test_memlimit.c                          | 2 ++
5846 tests/test_scripts.sh                          | 1 +
5847 tests/test_stream_flags.c                      | 2 ++
5848 tests/test_suffix.sh                           | 1 +
5849 tests/test_vli.c                               | 2 ++
5850 tests/tests.h                                  | 2 ++
5851 tests/tuktest.h                                | 2 ++
5852 windows/build.bash                             | 3 ++-
5853 290 files changed, 588 insertions(+), 58 deletions(-)
5854
5855commit 23de53421ea258cde6a3c33a038b1e9d08f771d1
5856Author: Lasse Collin <lasse.collin@tukaani.org>
5857Date:   2024-02-12 23:25:54 +0200
5858
5859    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
5860
5861 src/liblzma/api/lzma.h | 10 ++++------
5862 1 file changed, 4 insertions(+), 6 deletions(-)
5863
5864commit 689e0228baeb95232430e90d628379db89583d71
5865Author: Lasse Collin <lasse.collin@tukaani.org>
5866Date:   2024-02-12 17:09:10 +0200
5867
5868    Change most public domain parts to 0BSD.
5869
5870    Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
5871    were not touched.
5872
5873    COPYING.0BSD was added.
5874
5875 .github/workflows/ci.yml                       |   3 -
5876 .github/workflows/windows-ci.yml               |   3 -
5877 CMakeLists.txt                                 |   3 -
5878 COPYING                                        | 112 ++++++++++++++-----------
5879 COPYING.0BSD                                   |  11 +++
5880 Makefile.am                                    |   3 -
5881 PACKAGERS                                      |  11 +--
5882 autogen.sh                                     |   3 -
5883 build-aux/ci_build.sh                          |   3 -
5884 build-aux/manconv.sh                           |   3 -
5885 build-aux/version.sh                           |   3 -
5886 cmake/remove-ordinals.cmake                    |   3 -
5887 cmake/tuklib_common.cmake                      |   3 -
5888 cmake/tuklib_cpucores.cmake                    |   3 -
5889 cmake/tuklib_integer.cmake                     |   3 -
5890 cmake/tuklib_large_file_support.cmake          |   3 -
5891 cmake/tuklib_mbstr.cmake                       |   3 -
5892 cmake/tuklib_physmem.cmake                     |   3 -
5893 cmake/tuklib_progname.cmake                    |   3 -
5894 configure.ac                                   |   3 -
5895 debug/Makefile.am                              |   3 -
5896 debug/crc32.c                                  |   3 -
5897 debug/full_flush.c                             |   3 -
5898 debug/hex2bin.c                                |   3 -
5899 debug/known_sizes.c                            |   3 -
5900 debug/memusage.c                               |   3 -
5901 debug/repeat.c                                 |   3 -
5902 debug/sync_flush.c                             |   3 -
5903 debug/translation.bash                         |   3 -
5904 doc/examples/01_compress_easy.c                |   3 -
5905 doc/examples/02_decompress.c                   |   3 -
5906 doc/examples/03_compress_custom.c              |   3 -
5907 doc/examples/04_compress_easy_mt.c             |   3 -
5908 doc/examples/11_file_info.c                    |   3 -
5909 doc/examples/Makefile                          |   3 -
5910 dos/Makefile                                   |   3 -
5911 doxygen/update-doxygen                         |   3 -
5912 extra/7z2lzma/7z2lzma.bash                     |   3 -
5913 m4/tuklib_common.m4                            |   3 -
5914 m4/tuklib_cpucores.m4                          |   3 -
5915 m4/tuklib_integer.m4                           |   3 -
5916 m4/tuklib_mbstr.m4                             |   3 -
5917 m4/tuklib_physmem.m4                           |   3 -
5918 m4/tuklib_progname.m4                          |   3 -
5919 po4a/update-po                                 |   3 -
5920 src/Makefile.am                                |   3 -
5921 src/common/common_w32res.rc                    |   3 -
5922 src/common/mythread.h                          |   3 -
5923 src/common/sysdefs.h                           |   3 -
5924 src/common/tuklib_common.h                     |   3 -
5925 src/common/tuklib_cpucores.c                   |   3 -
5926 src/common/tuklib_cpucores.h                   |   3 -
5927 src/common/tuklib_exit.c                       |   3 -
5928 src/common/tuklib_exit.h                       |   3 -
5929 src/common/tuklib_gettext.h                    |   3 -
5930 src/common/tuklib_integer.h                    |   3 -
5931 src/common/tuklib_mbstr.h                      |   3 -
5932 src/common/tuklib_mbstr_fw.c                   |   3 -
5933 src/common/tuklib_mbstr_width.c                |   3 -
5934 src/common/tuklib_open_stdxxx.c                |   3 -
5935 src/common/tuklib_open_stdxxx.h                |   3 -
5936 src/common/tuklib_physmem.c                    |   3 -
5937 src/common/tuklib_physmem.h                    |   3 -
5938 src/common/tuklib_progname.c                   |   3 -
5939 src/common/tuklib_progname.h                   |   3 -
5940 src/liblzma/Makefile.am                        |   3 -
5941 src/liblzma/api/Makefile.am                    |   3 -
5942 src/liblzma/api/lzma.h                         |  13 ++-
5943 src/liblzma/api/lzma/base.h                    |   3 -
5944 src/liblzma/api/lzma/bcj.h                     |   3 -
5945 src/liblzma/api/lzma/block.h                   |   3 -
5946 src/liblzma/api/lzma/check.h                   |   3 -
5947 src/liblzma/api/lzma/container.h               |   3 -
5948 src/liblzma/api/lzma/delta.h                   |   3 -
5949 src/liblzma/api/lzma/filter.h                  |   3 -
5950 src/liblzma/api/lzma/hardware.h                |   3 -
5951 src/liblzma/api/lzma/index.h                   |   3 -
5952 src/liblzma/api/lzma/index_hash.h              |   3 -
5953 src/liblzma/api/lzma/lzma12.h                  |   3 -
5954 src/liblzma/api/lzma/stream_flags.h            |   3 -
5955 src/liblzma/api/lzma/version.h                 |   3 -
5956 src/liblzma/api/lzma/vli.h                     |   3 -
5957 src/liblzma/check/Makefile.inc                 |   3 -
5958 src/liblzma/check/check.c                      |   3 -
5959 src/liblzma/check/check.h                      |   3 -
5960 src/liblzma/check/crc32_arm64.h                |   3 -
5961 src/liblzma/check/crc32_fast.c                 |   3 -
5962 src/liblzma/check/crc32_small.c                |   3 -
5963 src/liblzma/check/crc32_table.c                |   3 -
5964 src/liblzma/check/crc32_tablegen.c             |   3 -
5965 src/liblzma/check/crc32_x86.S                  |   3 -
5966 src/liblzma/check/crc64_fast.c                 |   3 -
5967 src/liblzma/check/crc64_small.c                |   3 -
5968 src/liblzma/check/crc64_table.c                |   3 -
5969 src/liblzma/check/crc64_tablegen.c             |   3 -
5970 src/liblzma/check/crc64_x86.S                  |   3 -
5971 src/liblzma/check/crc_common.h                 |   3 -
5972 src/liblzma/check/crc_x86_clmul.h              |   3 -
5973 src/liblzma/check/sha256.c                     |   3 -
5974 src/liblzma/common/Makefile.inc                |   3 -
5975 src/liblzma/common/alone_decoder.c             |   3 -
5976 src/liblzma/common/alone_decoder.h             |   3 -
5977 src/liblzma/common/alone_encoder.c             |   3 -
5978 src/liblzma/common/auto_decoder.c              |   3 -
5979 src/liblzma/common/block_buffer_decoder.c      |   3 -
5980 src/liblzma/common/block_buffer_encoder.c      |   3 -
5981 src/liblzma/common/block_buffer_encoder.h      |   3 -
5982 src/liblzma/common/block_decoder.c             |   3 -
5983 src/liblzma/common/block_decoder.h             |   3 -
5984 src/liblzma/common/block_encoder.c             |   3 -
5985 src/liblzma/common/block_encoder.h             |   3 -
5986 src/liblzma/common/block_header_decoder.c      |   3 -
5987 src/liblzma/common/block_header_encoder.c      |   3 -
5988 src/liblzma/common/block_util.c                |   3 -
5989 src/liblzma/common/common.c                    |   3 -
5990 src/liblzma/common/common.h                    |   3 -
5991 src/liblzma/common/easy_buffer_encoder.c       |   3 -
5992 src/liblzma/common/easy_decoder_memusage.c     |   3 -
5993 src/liblzma/common/easy_encoder.c              |   3 -
5994 src/liblzma/common/easy_encoder_memusage.c     |   3 -
5995 src/liblzma/common/easy_preset.c               |   3 -
5996 src/liblzma/common/easy_preset.h               |   3 -
5997 src/liblzma/common/file_info.c                 |   3 -
5998 src/liblzma/common/filter_buffer_decoder.c     |   3 -
5999 src/liblzma/common/filter_buffer_encoder.c     |   3 -
6000 src/liblzma/common/filter_common.c             |   3 -
6001 src/liblzma/common/filter_common.h             |   3 -
6002 src/liblzma/common/filter_decoder.c            |   3 -
6003 src/liblzma/common/filter_decoder.h            |   3 -
6004 src/liblzma/common/filter_encoder.c            |   3 -
6005 src/liblzma/common/filter_encoder.h            |   3 -
6006 src/liblzma/common/filter_flags_decoder.c      |   3 -
6007 src/liblzma/common/filter_flags_encoder.c      |   3 -
6008 src/liblzma/common/hardware_cputhreads.c       |   3 -
6009 src/liblzma/common/hardware_physmem.c          |   3 -
6010 src/liblzma/common/index.c                     |   3 -
6011 src/liblzma/common/index.h                     |   3 -
6012 src/liblzma/common/index_decoder.c             |   3 -
6013 src/liblzma/common/index_decoder.h             |   3 -
6014 src/liblzma/common/index_encoder.c             |   3 -
6015 src/liblzma/common/index_encoder.h             |   3 -
6016 src/liblzma/common/index_hash.c                |   3 -
6017 src/liblzma/common/lzip_decoder.c              |   3 -
6018 src/liblzma/common/lzip_decoder.h              |   3 -
6019 src/liblzma/common/memcmplen.h                 |   3 -
6020 src/liblzma/common/microlzma_decoder.c         |   3 -
6021 src/liblzma/common/microlzma_encoder.c         |   3 -
6022 src/liblzma/common/outqueue.c                  |   3 -
6023 src/liblzma/common/outqueue.h                  |   3 -
6024 src/liblzma/common/stream_buffer_decoder.c     |   3 -
6025 src/liblzma/common/stream_buffer_encoder.c     |   3 -
6026 src/liblzma/common/stream_decoder.c            |   3 -
6027 src/liblzma/common/stream_decoder.h            |   3 -
6028 src/liblzma/common/stream_decoder_mt.c         |   3 -
6029 src/liblzma/common/stream_encoder.c            |   3 -
6030 src/liblzma/common/stream_encoder_mt.c         |   3 -
6031 src/liblzma/common/stream_flags_common.c       |   3 -
6032 src/liblzma/common/stream_flags_common.h       |   3 -
6033 src/liblzma/common/stream_flags_decoder.c      |   3 -
6034 src/liblzma/common/stream_flags_encoder.c      |   3 -
6035 src/liblzma/common/string_conversion.c         |   3 -
6036 src/liblzma/common/vli_decoder.c               |   3 -
6037 src/liblzma/common/vli_encoder.c               |   3 -
6038 src/liblzma/common/vli_size.c                  |   3 -
6039 src/liblzma/delta/Makefile.inc                 |   3 -
6040 src/liblzma/delta/delta_common.c               |   3 -
6041 src/liblzma/delta/delta_common.h               |   3 -
6042 src/liblzma/delta/delta_decoder.c              |   3 -
6043 src/liblzma/delta/delta_decoder.h              |   3 -
6044 src/liblzma/delta/delta_encoder.c              |   3 -
6045 src/liblzma/delta/delta_encoder.h              |   3 -
6046 src/liblzma/delta/delta_private.h              |   3 -
6047 src/liblzma/liblzma.pc.in                      |   3 -
6048 src/liblzma/liblzma_w32res.rc                  |   3 -
6049 src/liblzma/lz/Makefile.inc                    |   3 -
6050 src/liblzma/lz/lz_decoder.c                    |   3 -
6051 src/liblzma/lz/lz_decoder.h                    |   3 -
6052 src/liblzma/lz/lz_encoder.c                    |   3 -
6053 src/liblzma/lz/lz_encoder.h                    |   3 -
6054 src/liblzma/lz/lz_encoder_hash.h               |   3 -
6055 src/liblzma/lz/lz_encoder_mf.c                 |   3 -
6056 src/liblzma/lzma/Makefile.inc                  |   3 -
6057 src/liblzma/lzma/fastpos.h                     |   3 -
6058 src/liblzma/lzma/fastpos_tablegen.c            |   3 -
6059 src/liblzma/lzma/lzma2_decoder.c               |   3 -
6060 src/liblzma/lzma/lzma2_decoder.h               |   3 -
6061 src/liblzma/lzma/lzma2_encoder.c               |   3 -
6062 src/liblzma/lzma/lzma2_encoder.h               |   3 -
6063 src/liblzma/lzma/lzma_common.h                 |   3 -
6064 src/liblzma/lzma/lzma_decoder.c                |   3 -
6065 src/liblzma/lzma/lzma_decoder.h                |   3 -
6066 src/liblzma/lzma/lzma_encoder.c                |   3 -
6067 src/liblzma/lzma/lzma_encoder.h                |   3 -
6068 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 -
6069 src/liblzma/lzma/lzma_encoder_optimum_normal.c |   3 -
6070 src/liblzma/lzma/lzma_encoder_presets.c        |   3 -
6071 src/liblzma/lzma/lzma_encoder_private.h        |   3 -
6072 src/liblzma/rangecoder/Makefile.inc            |   3 -
6073 src/liblzma/rangecoder/price.h                 |   3 -
6074 src/liblzma/rangecoder/price_tablegen.c        |   3 -
6075 src/liblzma/rangecoder/range_common.h          |   3 -
6076 src/liblzma/rangecoder/range_decoder.h         |   3 -
6077 src/liblzma/rangecoder/range_encoder.h         |   3 -
6078 src/liblzma/simple/Makefile.inc                |   3 -
6079 src/liblzma/simple/arm.c                       |   3 -
6080 src/liblzma/simple/arm64.c                     |   3 -
6081 src/liblzma/simple/armthumb.c                  |   3 -
6082 src/liblzma/simple/ia64.c                      |   3 -
6083 src/liblzma/simple/powerpc.c                   |   3 -
6084 src/liblzma/simple/riscv.c                     |   3 -
6085 src/liblzma/simple/simple_coder.c              |   3 -
6086 src/liblzma/simple/simple_coder.h              |   3 -
6087 src/liblzma/simple/simple_decoder.c            |   3 -
6088 src/liblzma/simple/simple_decoder.h            |   3 -
6089 src/liblzma/simple/simple_encoder.c            |   3 -
6090 src/liblzma/simple/simple_encoder.h            |   3 -
6091 src/liblzma/simple/simple_private.h            |   3 -
6092 src/liblzma/simple/sparc.c                     |   3 -
6093 src/liblzma/simple/x86.c                       |   3 -
6094 src/liblzma/validate_map.sh                    |   3 -
6095 src/lzmainfo/Makefile.am                       |   3 -
6096 src/lzmainfo/lzmainfo.1                        |   4 +-
6097 src/lzmainfo/lzmainfo.c                        |   3 -
6098 src/lzmainfo/lzmainfo_w32res.rc                |   3 -
6099 src/scripts/Makefile.am                        |   3 -
6100 src/scripts/xzless.1                           |   4 +-
6101 src/xz/Makefile.am                             |   3 -
6102 src/xz/args.c                                  |   3 -
6103 src/xz/args.h                                  |   3 -
6104 src/xz/coder.c                                 |   3 -
6105 src/xz/coder.h                                 |   3 -
6106 src/xz/file_io.c                               |   3 -
6107 src/xz/file_io.h                               |   3 -
6108 src/xz/hardware.c                              |   3 -
6109 src/xz/hardware.h                              |   3 -
6110 src/xz/list.c                                  |   3 -
6111 src/xz/list.h                                  |   3 -
6112 src/xz/main.c                                  |   3 -
6113 src/xz/main.h                                  |   3 -
6114 src/xz/message.c                               |   3 -
6115 src/xz/message.h                               |   3 -
6116 src/xz/mytime.c                                |   3 -
6117 src/xz/mytime.h                                |   3 -
6118 src/xz/options.c                               |   3 -
6119 src/xz/options.h                               |   3 -
6120 src/xz/private.h                               |   3 -
6121 src/xz/signals.c                               |   3 -
6122 src/xz/signals.h                               |   3 -
6123 src/xz/suffix.c                                |   3 -
6124 src/xz/suffix.h                                |   3 -
6125 src/xz/util.c                                  |   3 -
6126 src/xz/util.h                                  |   3 -
6127 src/xz/xz.1                                    |   4 +-
6128 src/xz/xz_w32res.rc                            |   3 -
6129 src/xzdec/Makefile.am                          |   3 -
6130 src/xzdec/lzmadec_w32res.rc                    |   3 -
6131 src/xzdec/xzdec.1                              |   4 +-
6132 src/xzdec/xzdec.c                              |   3 -
6133 src/xzdec/xzdec_w32res.rc                      |   3 -
6134 tests/Makefile.am                              |   3 -
6135 tests/bcj_test.c                               |   3 -
6136 tests/code_coverage.sh                         |   3 -
6137 tests/create_compress_files.c                  |   3 -
6138 tests/files/README                             |   3 +-
6139 tests/ossfuzz/fuzz_common.h                    |   3 -
6140 tests/ossfuzz/fuzz_decode_alone.c              |   3 -
6141 tests/ossfuzz/fuzz_decode_stream.c             |   3 -
6142 tests/ossfuzz/fuzz_encode_stream.c             |   3 -
6143 tests/test_bcj_exact_size.c                    |   3 -
6144 tests/test_block_header.c                      |   3 -
6145 tests/test_check.c                             |   3 -
6146 tests/test_compress.sh                         |   3 -
6147 tests/test_files.sh                            |   3 -
6148 tests/test_filter_flags.c                      |   3 -
6149 tests/test_filter_str.c                        |   3 -
6150 tests/test_hardware.c                          |   3 -
6151 tests/test_index.c                             |   3 -
6152 tests/test_index_hash.c                        |   3 -
6153 tests/test_lzip_decoder.c                      |   3 -
6154 tests/test_memlimit.c                          |   3 -
6155 tests/test_scripts.sh                          |   3 -
6156 tests/test_stream_flags.c                      |   3 -
6157 tests/test_suffix.sh                           |   3 -
6158 tests/test_vli.c                               |   3 -
6159 tests/tests.h                                  |   3 -
6160 tests/tuktest.h                                |   3 -
6161 windows/README-Windows.txt                     |  11 +--
6162 windows/build.bash                             |   3 -
6163 288 files changed, 100 insertions(+), 911 deletions(-)
6164
6165commit 76946dc4336c831fe2cc26696a035d807dd3cf13
6166Author: Lasse Collin <lasse.collin@tukaani.org>
6167Date:   2024-02-09 17:20:31 +0200
6168
6169    Fix SHA-256 authors.
6170
6171    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
6172    in 2007 had a comment in sha256.c that the code is based on
6173    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
6174    and the AUTHORS file was updated with information that the
6175    code had come from Crypto++ but via 7-Zip. I know I had viewed
6176    7-Zip's SHA-256 code but back then the C code has been identical
6177    enough with Crypto++, so I don't why I thought the author info
6178    would need that extra step via 7-Zip for this single file.
6179
6180    Another error is that I had mixed sha.* and shacal2.* files
6181    when checking for author info in Crypto++. The shacal2.* files
6182    aren't related to liblzma's sha256.c and thus Kevin Springle's
6183    code in Crypto++ isn't either.
6184
6185 AUTHORS                    |  6 ++----
6186 src/liblzma/check/sha256.c | 14 ++++----------
6187 2 files changed, 6 insertions(+), 14 deletions(-)
6188
6189commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851
6190Author: Lasse Collin <lasse.collin@tukaani.org>
6191Date:   2024-02-09 17:20:31 +0200
6192
6193    Remove macosx/build.sh.
6194
6195    It was last updated in 2013.
6196
6197 Makefile.am     |   1 -
6198 macosx/build.sh | 113 --------------------------------------------------------
6199 2 files changed, 114 deletions(-)
6200
6201commit eac2c3c67f9113a225fb6667df862edd30366931
6202Author: Lasse Collin <lasse.collin@tukaani.org>
6203Date:   2024-02-09 17:20:31 +0200
6204
6205    Doc: Remove doc/examples_old.
6206
6207    It was good to keep these around in parallel with the newer examples
6208    but I think it's OK to remove the old ones at this point.
6209
6210 Makefile.am                       |   5 --
6211 doc/examples_old/xz_pipe_comp.c   | 127 --------------------------------------
6212 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------
6213 3 files changed, 255 deletions(-)
6214
6215commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
6216Author: Jia Tan <jiat0218@gmail.com>
6217Date:   2024-02-13 22:38:58 +0800
6218
6219    Tests: Add RISC-V filter support in a few places.
6220
6221 tests/test_filter_flags.c | 6 ++++++
6222 tests/test_filter_str.c   | 6 ++++++
6223 2 files changed, 12 insertions(+)
6224
6225commit 45663443eb2b377e6171529380fee312f1adcdf4
6226Author: Jia Tan <jiat0218@gmail.com>
6227Date:   2024-02-13 22:37:07 +0800
6228
6229    liblzma: Fix build error if only RISC-V BCJ filter is enabled.
6230
6231    If any other BCJ filter was enabled for encoding or decoding, then this
6232    was not a problem.
6233
6234 src/liblzma/common/string_conversion.c | 4 +++-
6235 1 file changed, 3 insertions(+), 1 deletion(-)
6236
6237commit 2f15597d677bc35743c777d4cf3bfa698b478681
6238Author: Jia Tan <jiat0218@gmail.com>
6239Date:   2024-02-13 22:56:24 +0800
6240
6241    Translations: Update the Korean translation.
6242
6243 po/ko.po | 526 ++++++++++++++++++++++++++++++++++-----------------------------
6244 1 file changed, 284 insertions(+), 242 deletions(-)
6245
6246commit df873143ad1615c6d6aaa1bf8808b1676091dfe3
6247Author: Jia Tan <jiat0218@gmail.com>
6248Date:   2024-02-13 01:55:53 +0800
6249
6250    Translations: Update the Korean man page translations.
6251
6252 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++--------------------------
6253 1 file changed, 770 insertions(+), 605 deletions(-)
6254
6255commit b3f415eddb150341865a1af47959c3baba076b33
6256Author: Jia Tan <jiat0218@gmail.com>
6257Date:   2024-02-13 01:53:33 +0800
6258
6259    Translations: Update the Chinese (simplified) translation.
6260
6261 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++----------------------
6262 1 file changed, 268 insertions(+), 156 deletions(-)
6263
6264commit 9860d418d296eb3c721e5384fb367c0499b579c8
6265Author: Lasse Collin <lasse.collin@tukaani.org>
6266Date:   2024-02-09 23:21:01 +0200
6267
6268    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
6269
6270 src/scripts/xzless.in | 9 ++++++++-
6271 1 file changed, 8 insertions(+), 1 deletion(-)
6272
6273commit fd0692b0525e6c26b496492be9e2c865cab734f8
6274Author: Lasse Collin <lasse.collin@tukaani.org>
6275Date:   2024-02-09 23:00:05 +0200
6276
6277    xzless: Use --show-preproc-errors with "less" 632 and newer.
6278
6279    This makes "less" show a warning if a decompression error occurred.
6280
6281 src/scripts/xzless.in | 11 +++++++++--
6282 1 file changed, 9 insertions(+), 2 deletions(-)
6283
6284commit adb073da76a920b5a81e6b32254f4ddb054dc57a
6285Author: Jia Tan <jiat0218@gmail.com>
6286Date:   2024-02-09 23:59:54 +0800
6287
6288    liblzma: Fix typo discovered by codespell.
6289
6290 src/liblzma/check/crc32_arm64.h | 2 +-
6291 1 file changed, 1 insertion(+), 1 deletion(-)
6292
6293commit 55d9fc883d221cbace951a370f1fb144698f8c2e
6294Author: Jia Tan <jiat0218@gmail.com>
6295Date:   2024-02-09 20:01:06 +0800
6296
6297    Translations: Update the Swedish translation.
6298
6299 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++-------------------------
6300 1 file changed, 254 insertions(+), 166 deletions(-)
6301
6302commit 55ba4a1ea321499c805eedfa811ffde690bae311
6303Author: Jia Tan <jiat0218@gmail.com>
6304Date:   2024-02-08 20:09:04 +0800
6305
6306    Translations: Update the Spanish translation.
6307
6308 po/es.po | 22 +++++++++++-----------
6309 1 file changed, 11 insertions(+), 11 deletions(-)
6310
6311commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae
6312Author: Jia Tan <jiat0218@gmail.com>
6313Date:   2024-02-07 21:34:35 +0800
6314
6315    Translations: Update the Spanish translation.
6316
6317 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++-------------------------
6318 1 file changed, 253 insertions(+), 166 deletions(-)
6319
6320commit f4af2036bc625739d6d33d9e1fede583a25c3828
6321Author: Jia Tan <jiat0218@gmail.com>
6322Date:   2024-02-07 21:28:32 +0800
6323
6324    Translations: Update the Polish translation.
6325
6326 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++-------------------------
6327 1 file changed, 249 insertions(+), 162 deletions(-)
6328
6329commit e5e93bb816043c559cddf03a3b7ba13bec353ee4
6330Author: Jia Tan <jiat0218@gmail.com>
6331Date:   2024-02-07 19:40:12 +0800
6332
6333    Translations: Update the German translation.
6334
6335 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++-------------------------
6336 1 file changed, 242 insertions(+), 154 deletions(-)
6337
6338commit 28f18ff8e26902762fb007c13be235b4ac1ac071
6339Author: Jia Tan <jiat0218@gmail.com>
6340Date:   2024-02-07 19:27:25 +0800
6341
6342    Translations: Update the German man page translations.
6343
6344 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++---------------------------
6345 1 file changed, 752 insertions(+), 601 deletions(-)
6346
6347commit cabfbc7947da05aa5dfe39bec9759e076f940e3c
6348Author: Jia Tan <jiat0218@gmail.com>
6349Date:   2024-02-06 23:44:06 +0800
6350
6351    Translations: Update the Romanian translation.
6352
6353 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++-------------------------
6354 1 file changed, 252 insertions(+), 164 deletions(-)
6355
6356commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e
6357Author: Jia Tan <jiat0218@gmail.com>
6358Date:   2024-02-06 23:45:02 +0800
6359
6360    Translations: Update the Romanian man page translations.
6361
6362 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++---------------------------
6363 1 file changed, 966 insertions(+), 793 deletions(-)
6364
6365commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96
6366Author: Jia Tan <jiat0218@gmail.com>
6367Date:   2024-02-07 20:56:57 +0800
6368
6369    Translations: Update the Ukrainian translation.
6370
6371 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++-------------------------
6372 1 file changed, 242 insertions(+), 155 deletions(-)
6373
6374commit b3523250e9eef10b017473754c1e1c9e31f10374
6375Author: Jia Tan <jiat0218@gmail.com>
6376Date:   2024-02-06 23:30:03 +0800
6377
6378    Translations: Update the Ukrainian man page translations.
6379
6380 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++--------------------------
6381 1 file changed, 764 insertions(+), 599 deletions(-)
6382
6383commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d
6384Author: Jia Tan <jiat0218@gmail.com>
6385Date:   2024-02-02 01:39:28 +0800
6386
6387    Update AUTHORS.
6388
6389 AUTHORS | 3 ++-
6390 1 file changed, 2 insertions(+), 1 deletion(-)
6391
6392commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
6393Author: Jia Tan <jiat0218@gmail.com>
6394Date:   2024-02-02 01:38:51 +0800
6395
6396    liblzma: Update Authors list in crc32_arm64.h.
6397
6398 src/liblzma/check/crc32_arm64.h | 1 +
6399 1 file changed, 1 insertion(+)
6400
6401commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0
6402Author: Jia Tan <jiat0218@gmail.com>
6403Date:   2024-02-01 16:07:03 +0800
6404
6405    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table.
6406
6407    This was split from the prior commit so it could be easily applied to
6408    the 5.4 branch.
6409
6410    Closes: https://github.com/tukaani-project/xz/pull/77
6411
6412 src/liblzma/check/crc32_table.c | 4 ++--
6413 1 file changed, 2 insertions(+), 2 deletions(-)
6414
6415commit ca9015f4dead2c97b48f5a6933631b0a448b65b9
6416Author: Jia Tan <jiat0218@gmail.com>
6417Date:   2024-02-01 16:06:29 +0800
6418
6419    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table.
6420
6421    If liblzma is configured with --disable-clmul-crc
6422    CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the
6423    generic version must be used but the CRC tables were not included.
6424
6425 src/liblzma/check/crc64_table.c | 4 ++--
6426 1 file changed, 2 insertions(+), 2 deletions(-)
6427
6428commit 2f1552a91c825e87013925e1a67a0930e7aef592
6429Author: Jia Tan <jiat0218@gmail.com>
6430Date:   2024-01-23 18:02:13 +0800
6431
6432    liblzma: Only use ifunc in crcXX_fast.c if its needed.
6433
6434    The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC.
6435    With ARM64, ifunc is incompatible because it requires non-inline
6436    function calls for runtime detection.
6437
6438 src/liblzma/check/crc32_fast.c | 6 +++---
6439 src/liblzma/check/crc64_fast.c | 6 +++---
6440 2 files changed, 6 insertions(+), 6 deletions(-)
6441
6442commit 30a25f3742287697bc57a1bef86c19ecf5129322
6443Author: Jia Tan <jiat0218@gmail.com>
6444Date:   2024-01-22 22:08:45 +0800
6445
6446    Docs: Add --disable-arm64-crc32 description to INSTALL.
6447
6448 INSTALL | 12 +++++++++++-
6449 1 file changed, 11 insertions(+), 1 deletion(-)
6450
6451commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
6452Author: Jia Tan <jiat0218@gmail.com>
6453Date:   2024-01-22 21:36:09 +0800
6454
6455    liblzma: Omit CRC tables when not needed with ARM64 optimizations.
6456
6457    This is similar to the existing x86-64 CLMUL conditions to omit the
6458    tables. They were slightly refactored to improve readability.
6459
6460 src/liblzma/check/crc32_table.c | 18 +++++++++++++++---
6461 src/liblzma/check/crc64_table.c |  7 ++++++-
6462 src/liblzma/check/crc_common.h  |  5 ++++-
6463 3 files changed, 25 insertions(+), 5 deletions(-)
6464
6465commit 761f5b69a4c778c8bcb09279b845b07c28790575
6466Author: Jia Tan <jiat0218@gmail.com>
6467Date:   2024-01-22 20:54:56 +0800
6468
6469    liblzma: Rename crc32_aarch64.h to crc32_arm64.h.
6470
6471    Even though the proper name for the architecture is aarch64, this
6472    project uses ARM64 throughout. So the rename is for consistency.
6473
6474    Additionally, crc32_arm64.h was slightly refactored for the following
6475    changes:
6476
6477       * Added MSVC, FreeBSD, and macOS support in
6478         is_arch_extension_supported().
6479
6480       * crc32_arch_optimized() now checks the size when aligning the
6481         buffer.
6482
6483       * crc32_arch_optimized() loop conditions were slightly modified to
6484         avoid both decrementing the size and incrementing the buffer
6485         pointer.
6486
6487       * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and
6488         Clang name them differently.
6489
6490       * Minor spacing and comment changes.
6491
6492 CMakeLists.txt                    |   2 +-
6493 src/liblzma/check/Makefile.inc    |   2 +-
6494 src/liblzma/check/crc32_aarch64.h | 109 ----------------------------------
6495 src/liblzma/check/crc32_arm64.h   | 119 ++++++++++++++++++++++++++++++++++++++
6496 src/liblzma/check/crc32_fast.c    |   3 +-
6497 src/liblzma/check/crc64_fast.c    |   3 -
6498 6 files changed, 122 insertions(+), 116 deletions(-)
6499
6500commit 455a08609caa3223066a717fb01bfa42c5dba47d
6501Author: Jia Tan <jiat0218@gmail.com>
6502Date:   2024-01-22 20:49:30 +0800
6503
6504    liblzma: Refactor crc_common.h.
6505
6506    The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since
6507    the ARM64 optimizations will be different between CRC32 and CRC64.
6508
6509    For the same reason, CRC_ARCH_OPTIMIZED is split into
6510    CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED.
6511
6512    ifunc will only be used with x86-64 CLMUL because the runtime detection
6513    methods needed with ARM64 are not compatible with ifunc.
6514
6515 src/liblzma/check/crc32_fast.c |   8 +--
6516 src/liblzma/check/crc64_fast.c |   8 +--
6517 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++-------------
6518 3 files changed, 82 insertions(+), 42 deletions(-)
6519
6520commit 61908e816049af7a9f43ea804a57ee8570e2e644
6521Author: Jia Tan <jiat0218@gmail.com>
6522Date:   2024-01-22 00:42:28 +0800
6523
6524    CMake: Add support for ARM64 CRC32 instruction detection.
6525
6526 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
6527 1 file changed, 50 insertions(+)
6528
6529commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732
6530Author: Jia Tan <jiat0218@gmail.com>
6531Date:   2024-01-22 00:36:47 +0800
6532
6533    Build: Add support for ARM64 CRC32 instruction detection.
6534
6535    This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by
6536    default) for using the ARM64 CRC32 instruction. This can be disabled if
6537    one knows the binary will never need to run on an ARM64 machine
6538    with this instruction extension.
6539
6540 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
6541 1 file changed, 52 insertions(+)
6542
6543commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
6544Author: Chenxi Mao <chenxi.mao2013@gmail.com>
6545Date:   2024-01-09 17:23:11 +0800
6546
6547    Speed up CRC32 calculation on ARM64
6548
6549    The CRC32 instructions in ARM64 can calculate the CRC32 result
6550    for 8 bytes in a single operation, making the use of ARM64
6551    instructions much faster compared to the general CRC32 algorithm.
6552
6553    Optimized CRC32 will be enabled if ARM64 has CRC extension
6554    running on Linux.
6555
6556    Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
6557
6558 CMakeLists.txt                    |   1 +
6559 src/liblzma/check/Makefile.inc    |   3 +-
6560 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++
6561 src/liblzma/check/crc32_fast.c    |   5 +-
6562 src/liblzma/check/crc64_fast.c    |   5 +-
6563 src/liblzma/check/crc_common.h    |  16 +++---
6564 6 files changed, 130 insertions(+), 9 deletions(-)
6565
6566commit b43c3e48bf6097095eef36d44cdbec811074940a
6567Author: Jia Tan <jiat0218@gmail.com>
6568Date:   2024-01-26 19:05:51 +0800
6569
6570    Bump version number for 5.5.1alpha.
6571
6572 src/liblzma/api/lzma/version.h  | 2 +-
6573 src/liblzma/liblzma_generic.map | 2 +-
6574 src/liblzma/liblzma_linux.map   | 2 +-
6575 3 files changed, 3 insertions(+), 3 deletions(-)
6576
6577commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f
6578Author: Jia Tan <jiat0218@gmail.com>
6579Date:   2024-01-26 19:00:52 +0800
6580
6581    Add NEWS for 5.5.1alpha
6582
6583 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6584 1 file changed, 80 insertions(+)
6585
6586commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df
6587Author: Jia Tan <jiat0218@gmail.com>
6588Date:   2024-01-26 18:54:24 +0800
6589
6590    Add NEWS for 5.4.6.
6591
6592 NEWS | 22 ++++++++++++++++++++++
6593 1 file changed, 22 insertions(+)
6594
6595commit 93de7e751d17731315a899264f2a7239d7d2d316
6596Author: Lasse Collin <lasse.collin@tukaani.org>
6597Date:   2024-01-24 20:00:57 +0200
6598
6599    Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
6600
6601    The footer isn't a complete HTML file so having it in the doxygen
6602    directory is a tiny bit clearer.
6603
6604 Makefile.am                                    |   2 +-
6605 doc/{logo => }/xz-logo.png                     | Bin
6606 doxygen/Doxyfile                               |   4 ++--
6607 doc/logo/copyright.html => doxygen/footer.html |   0
6608 4 files changed, 3 insertions(+), 3 deletions(-)
6609
6610commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9
6611Author: Jia Tan <jiat0218@gmail.com>
6612Date:   2024-01-09 17:05:01 +0800
6613
6614    README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1.
6615
6616    The Overall documentation section (1.1) table spacing had to be adjusted
6617    since the filename was very long.
6618
6619 README | 38 ++++++++++++++++++++------------------
6620 1 file changed, 20 insertions(+), 18 deletions(-)
6621
6622commit e280470040b27c5e58d78b25b9e2bb71fc6c3882
6623Author: Jia Tan <jiat0218@gmail.com>
6624Date:   2024-01-09 16:56:16 +0800
6625
6626    Build: Add the logo and license to the release.
6627
6628 Makefile.am | 2 ++
6629 1 file changed, 2 insertions(+)
6630
6631commit b1ee6cf259bb49ce91abe9f622294524e37edf4c
6632Author: Jia Tan <jiat0218@gmail.com>
6633Date:   2024-01-09 16:44:42 +0800
6634
6635    COPYING: Add the license for the XZ logo.
6636
6637 COPYING              |   5 +
6638 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++
6639 2 files changed, 432 insertions(+)
6640
6641commit 31293ae7074802cc7286089a89c7b552d930c97f
6642Author: Jia Tan <jiat0218@gmail.com>
6643Date:   2024-01-09 16:40:56 +0800
6644
6645    Doxygen: Added the XZ logo and copyright information.
6646
6647    The PROJECT_LOGO field is now used to include the XZ logo. The footer
6648    of each page now lists the copyright information instead of the default
6649    footer. The license is also copied to statisfy the copyright and so the
6650    link in the documentation can be local.
6651
6652 doc/logo/copyright.html |  11 +++++++++++
6653 doc/logo/xz-logo.png    | Bin 0 -> 6771 bytes
6654 doxygen/Doxyfile        |   6 +++---
6655 3 files changed, 14 insertions(+), 3 deletions(-)
6656
6657commit 6daa4d0ea46a8441f21f609149f3633158bf4704
6658Author: Lasse Collin <lasse.collin@tukaani.org>
6659Date:   2024-01-23 18:29:28 +0200
6660
6661    xz: Use threaded mode by defaut (as if --threads=0 was used).
6662
6663    This hopefully does more good than bad:
6664
6665      + It's faster by default.
6666
6667      + Only the threaded compressor creates files that
6668        can be decompressed in threaded mode.
6669
6670      - Compression ratio is worse, usually not too much though.
6671        When it matters, -T1 must be used.
6672
6673      - Memory usage increases.
6674
6675      - Scripts that assume single-threaded mode but don't use -T1 will
6676        possibly use too much resources, for example, if they run
6677        multiple xz processes in parallel to compress multiple files.
6678
6679      - Output from single-threaded and multi-threaded compressors
6680        differ but such changes could happen for other reasons too
6681        (they just haven't happened since 5.0.0).
6682
6683 src/xz/hardware.c | 6 +++++-
6684 src/xz/message.c  | 4 ++--
6685 src/xz/xz.1       | 9 +++++++++
6686 3 files changed, 16 insertions(+), 3 deletions(-)
6687
6688commit a2dd2dc8e5307a7280bb99868bc478560facba2c
6689Author: Jia Tan <jiat0218@gmail.com>
6690Date:   2024-01-23 23:52:49 +0800
6691
6692    CI: Use RISC-V filter when building with BCJ support.
6693
6694 build-aux/ci_build.sh | 4 ++--
6695 1 file changed, 2 insertions(+), 2 deletions(-)
6696
6697commit 3060e1070b2421b26c0e17794c1307ec5622f11d
6698Author: Jia Tan <jiat0218@gmail.com>
6699Date:   2024-01-23 23:52:14 +0800
6700
6701    Tests: Use smaller dictionary size in RISC-V test files.
6702
6703 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes
6704 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes
6705 2 files changed, 0 insertions(+), 0 deletions(-)
6706
6707commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3
6708Author: Jia Tan <jiat0218@gmail.com>
6709Date:   2024-01-23 23:50:57 +0800
6710
6711    Tests: Skip RISC-V test files if decoder was not built.
6712
6713 tests/test_files.sh | 5 +++++
6714 1 file changed, 5 insertions(+)
6715
6716commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e
6717Author: Lasse Collin <lasse.collin@tukaani.org>
6718Date:   2024-01-23 16:11:54 +0200
6719
6720    xz: Man page: Add more examples of LZMA2 options with BCJ filters.
6721
6722 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++-------
6723 1 file changed, 31 insertions(+), 7 deletions(-)
6724
6725commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d
6726Author: Lasse Collin <lasse.collin@tukaani.org>
6727Date:   2024-01-23 00:09:48 +0200
6728
6729    liblzma: RISC-V filter: Use byte-by-byte access.
6730
6731    Not all RISC-V processors support fast unaligned access so
6732    it's better to read only one byte in the main loop. This can
6733    be faster even on x86-64 when compared to reading 32 bits at
6734    a time as half the time the address is only 16-bit aligned.
6735
6736    The downside is larger code size on archs that do support
6737    fast unaligned access.
6738
6739 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------
6740 1 file changed, 84 insertions(+), 30 deletions(-)
6741
6742commit db5eb5f563e8baa8d912ecf576f53391ff861596
6743Author: Jia Tan <jiat0218@gmail.com>
6744Date:   2024-01-22 23:33:39 +0800
6745
6746    xz: Update xz -lvv for RISC-V filter.
6747
6748    Version 5.6.0 will be shown, even though upcoming alphas and betas
6749    will be able to support this filter. 5.6.0 looks nicer in the output and
6750    people shouldn't be encouraged to use an unstable version in production
6751    in any way.
6752
6753 src/xz/list.c | 10 ++++++++++
6754 1 file changed, 10 insertions(+)
6755
6756commit e2870db5be1503e6a489fc3d47daf950d6f62723
6757Author: Jia Tan <jiat0218@gmail.com>
6758Date:   2024-01-22 23:33:39 +0800
6759
6760    Tests: Add two RISC-V Filter test files.
6761
6762    These test files achieve 100% code coverage in
6763    src/liblzma/simple/riscv.c. They contain all of the instructions that
6764    should be filtered and a few cases that should not.
6765
6766 tests/files/README                  |   8 ++++++++
6767 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes
6768 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes
6769 3 files changed, 8 insertions(+)
6770
6771commit b26a89869315ece2f6d9d10d32d45f672550f245
6772Author: Jia Tan <jiat0218@gmail.com>
6773Date:   2024-01-22 23:33:39 +0800
6774
6775    xz: Update message in --long-help for RISC-V Filter.
6776
6777 src/xz/message.c | 1 +
6778 1 file changed, 1 insertion(+)
6779
6780commit 283f778908873eca61388029fc418fa800c9d7d7
6781Author: Jia Tan <jiat0218@gmail.com>
6782Date:   2024-01-22 23:33:39 +0800
6783
6784    xz: Update the man page for the RISC-V Filter.
6785
6786    A special note was added to suggest using four-byte alignment when the
6787    compressed instruction extension is not present in a RISC-V binary.
6788
6789 src/xz/xz.1 | 3 ++-
6790 1 file changed, 2 insertions(+), 1 deletion(-)
6791
6792commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28
6793Author: Jia Tan <jiat0218@gmail.com>
6794Date:   2024-01-22 23:33:39 +0800
6795
6796    Tests: Add RISC-V Filter test in test_compress.sh.
6797
6798 tests/test_compress.sh | 1 +
6799 1 file changed, 1 insertion(+)
6800
6801commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4
6802Author: Jia Tan <jiat0218@gmail.com>
6803Date:   2024-01-22 23:33:39 +0800
6804
6805    liblzma: Update string_conversion.c to support RISC-V Filter.
6806
6807 src/liblzma/common/string_conversion.c | 5 +++++
6808 1 file changed, 5 insertions(+)
6809
6810commit 34372a5adbe5a7f6bf29498410ba3a463a720966
6811Author: Jia Tan <jiat0218@gmail.com>
6812Date:   2024-01-22 23:33:39 +0800
6813
6814    CMake: Support RISC-V BCJ Filter for encoding and decoding.
6815
6816 CMakeLists.txt | 1 +
6817 1 file changed, 1 insertion(+)
6818
6819commit 440a2eccb082dc13400c09e22308a58fef85146c
6820Author: Jia Tan <jiat0218@gmail.com>
6821Date:   2024-01-22 23:33:39 +0800
6822
6823    liblzma: Add RISC-V BCJ filter.
6824
6825    The new Filter ID is 0x0B.
6826
6827    Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
6828    the xz CLI updates, and the Autotools build system modifications.
6829
6830    Thanks to Igor Pavlov for his many contributions to the design of
6831    the filter.
6832
6833 configure.ac                        |   4 +-
6834 src/liblzma/api/lzma/bcj.h          |   5 +
6835 src/liblzma/common/filter_common.c  |   9 +
6836 src/liblzma/common/filter_decoder.c |   8 +
6837 src/liblzma/common/filter_encoder.c |  10 +
6838 src/liblzma/simple/Makefile.inc     |   4 +
6839 src/liblzma/simple/riscv.c          | 688 ++++++++++++++++++++++++++++++++++++
6840 src/liblzma/simple/simple_coder.h   |   9 +
6841 src/xz/args.c                       |   7 +
6842 9 files changed, 742 insertions(+), 2 deletions(-)
6843
6844commit 5540f4329bbdb4deb4850d4af48b18ad074bba19
6845Author: Jia Tan <jiat0218@gmail.com>
6846Date:   2024-01-19 23:08:14 +0800
6847
6848    Docs: Update .xz file format specification to 1.2.0.
6849
6850    The new RISC-V filter was added to the specification, in addition to
6851    updating the specification URL.
6852
6853 doc/xz-file-format.txt | 29 +++++++++++++++++------------
6854 1 file changed, 17 insertions(+), 12 deletions(-)
6855
6856commit 22d86192f8cf00902a1f90ee2a83ca600794459b
6857Author: Jia Tan <jiat0218@gmail.com>
6858Date:   2024-01-19 23:08:14 +0800
6859
6860    xz: Update website URLs in the man pages.
6861
6862 src/xz/xz.1       | 6 +++---
6863 src/xzdec/xzdec.1 | 4 ++--
6864 2 files changed, 5 insertions(+), 5 deletions(-)
6865
6866commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d
6867Author: Jia Tan <jiat0218@gmail.com>
6868Date:   2024-01-19 23:08:14 +0800
6869
6870    liblzma: Update website URL.
6871
6872 dos/config.h           | 2 +-
6873 src/liblzma/api/lzma.h | 6 +++---
6874 2 files changed, 4 insertions(+), 4 deletions(-)
6875
6876commit fce4758018f3a3589236f3fe7999fd9dd08c77e9
6877Author: Jia Tan <jiat0218@gmail.com>
6878Date:   2024-01-19 23:08:14 +0800
6879
6880    Docs: Update website URLs.
6881
6882 .github/SECURITY.md        |  2 +-
6883 COPYING                    |  3 ++-
6884 README                     |  4 ++--
6885 doc/faq.txt                |  2 +-
6886 doc/lzma-file-format.txt   | 18 +++++++++---------
6887 windows/README-Windows.txt |  3 ++-
6888 6 files changed, 17 insertions(+), 15 deletions(-)
6889
6890commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5
6891Author: Jia Tan <jiat0218@gmail.com>
6892Date:   2024-01-19 23:08:14 +0800
6893
6894    Build: Update website URL.
6895
6896 CMakeLists.txt | 2 +-
6897 configure.ac   | 2 +-
6898 2 files changed, 2 insertions(+), 2 deletions(-)
6899
6900commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b
6901Author: Lasse Collin <lasse.collin@tukaani.org>
6902Date:   2024-01-11 15:01:50 +0200
6903
6904    liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
6905
6906 src/liblzma/check/crc_x86_clmul.h | 6 ++++++
6907 1 file changed, 6 insertions(+)
6908
6909commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882
6910Author: Lasse Collin <lasse.collin@tukaani.org>
6911Date:   2024-01-11 15:22:36 +0200
6912
6913    liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
6914
6915    Now crc_simd_body() in crc_x86_clmul.h is only called once
6916    in a translation unit, we no longer need to be so cautious
6917    about ensuring the always-inline behavior.
6918
6919 src/liblzma/check/crc_common.h    | 20 --------------------
6920 src/liblzma/check/crc_x86_clmul.h |  2 +-
6921 2 files changed, 1 insertion(+), 21 deletions(-)
6922
6923commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20
6924Author: Lasse Collin <lasse.collin@tukaani.org>
6925Date:   2024-01-11 14:39:46 +0200
6926
6927    liblzma: CRC: Update CLMUL comments to more generic wording.
6928
6929 src/liblzma/check/crc32_fast.c | 16 ++++++++--------
6930 src/liblzma/check/crc64_fast.c | 10 +++++-----
6931 2 files changed, 13 insertions(+), 13 deletions(-)
6932
6933commit 66f080e8016129576536482ac377e2ecac7a2b90
6934Author: Lasse Collin <lasse.collin@tukaani.org>
6935Date:   2024-01-10 18:23:31 +0200
6936
6937    liblzma: Rename arch-specific CRC functions and macros.
6938
6939    CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL.
6940    CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used.
6941    Currently the x86 CLMUL implementations are the only arch-optimized
6942    versions, and these also use the CRC_x86_CLMUL macro to tell when
6943    crc_x86_clmul.h needs to be included.
6944
6945    is_clmul_supported() was renamed to is_arch_extension_supported().
6946    crc32_clmul() and crc64_clmul() were renamed to
6947    crc32_arch_optimized() and crc64_arch_optimized().
6948    This way the names make sense with arch-specific non-CLMUL
6949    implementations as well.
6950
6951 src/liblzma/check/crc32_fast.c    | 13 +++++++------
6952 src/liblzma/check/crc64_fast.c    | 13 +++++++------
6953 src/liblzma/check/crc_common.h    |  9 ++++++---
6954 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++----------
6955 4 files changed, 31 insertions(+), 25 deletions(-)
6956
6957commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99
6958Author: Lasse Collin <lasse.collin@tukaani.org>
6959Date:   2024-01-10 18:19:21 +0200
6960
6961    liblzma: Fix a comment in crc_common.h.
6962
6963 src/liblzma/check/crc_common.h | 3 ++-
6964 1 file changed, 2 insertions(+), 1 deletion(-)
6965
6966commit 419f55f9dfc2df8792902b8953d50690121afeea
6967Author: Lasse Collin <lasse.collin@tukaani.org>
6968Date:   2023-10-20 23:35:10 +0300
6969
6970    liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul().
6971
6972    A CLMUL-only build will have the crcxx_clmul() inlined into
6973    lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul()
6974    was needed. Notes about shared liblzma on ELF platforms:
6975
6976      - On platforms that support ifunc and -fvisibility=hidden, this
6977        was silly because CLMUL-only build would have that single extra
6978        jump instruction of extra overhead.
6979
6980      - On platforms that support neither -fvisibility=hidden nor linker
6981        version script (liblzma*.map), jumping to lzma_crcxx_clmul()
6982        would go via PLT so a few more instructions of overhead (still
6983        not a big issue but silly nevertheless).
6984
6985    There was a downside with static liblzma too: if an application only
6986    needs lzma_crc64(), static linking would make the linker include the
6987    CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though
6988    the CRC32 code wouldn't be needed, thus increasing code size of the
6989    executable (assuming that -ffunction-sections isn't used).
6990
6991    Also, now compilers are likely to inline crc_simd_body()
6992    even if they don't support the always_inline attribute
6993    (or MSVC's __forceinline). Quite possibly all compilers
6994    that build the code do support such an attribute. But now
6995    it likely isn't a problem even if the attribute wasn't supported.
6996
6997    Now all x86-specific stuff is in crc_x86_clmul.h. If other archs
6998    The other archs can then have their own headers with their own
6999    is_clmul_supported() and crcxx_clmul().
7000
7001    Another bonus is that the build system doesn't need to care if
7002    crc_clmul.c is needed.
7003
7004    is_clmul_supported() stays as inline function as it's not needed
7005    when doing a CLMUL-only build (avoids a warning about unused function).
7006
7007 CMakeLists.txt                                     |  7 +-
7008 configure.ac                                       |  1 -
7009 src/liblzma/check/Makefile.inc                     |  6 +-
7010 src/liblzma/check/crc32_fast.c                     |  9 ++-
7011 src/liblzma/check/crc64_fast.c                     |  9 ++-
7012 src/liblzma/check/crc_common.h                     | 64 ----------------
7013 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++----
7014 7 files changed, 91 insertions(+), 91 deletions(-)
7015
7016commit e3833e297dfb5021a197bda34ba2a795e30aaf8a
7017Author: Lasse Collin <lasse.collin@tukaani.org>
7018Date:   2023-10-21 00:06:52 +0300
7019
7020    liblzma: crc_clmul.c: Add crc_attr_target macro.
7021
7022    This reduces the number of the complex #if directives.
7023
7024 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++--------------
7025 1 file changed, 16 insertions(+), 14 deletions(-)
7026
7027commit d164ac0e62904126f7920c25f9a2875c8cd28b97
7028Author: Lasse Collin <lasse.collin@tukaani.org>
7029Date:   2023-10-20 22:49:48 +0300
7030
7031    liblzma: Simplify existing cases with lzma_attr_no_sanitize_address.
7032
7033 src/liblzma/check/crc_clmul.c | 12 +++---------
7034 1 file changed, 3 insertions(+), 9 deletions(-)
7035
7036commit 9523c1300d22fa715765c181cf991d14d6112fb1
7037Author: Lasse Collin <lasse.collin@tukaani.org>
7038Date:   2023-10-20 21:53:35 +0300
7039
7040    liblzma: #define crc_attr_no_sanitize_address in crc_common.h.
7041
7042 src/liblzma/check/crc_common.h | 10 ++++++++++
7043 1 file changed, 10 insertions(+)
7044
7045commit 93d144f0930821590524247bd174afd38003d7f0
7046Author: Lasse Collin <lasse.collin@tukaani.org>
7047Date:   2023-10-20 23:25:14 +0300
7048
7049    liblzma: CRC: Add empty lines.
7050
7051    And remove one too.
7052
7053 src/liblzma/check/crc32_fast.c | 2 ++
7054 src/liblzma/check/crc64_fast.c | 3 +++
7055 src/liblzma/check/crc_clmul.c  | 1 -
7056 3 files changed, 5 insertions(+), 1 deletion(-)
7057
7058commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae
7059Author: Lasse Collin <lasse.collin@tukaani.org>
7060Date:   2023-10-20 23:19:33 +0300
7061
7062    liblzma: crc_clmul.c: Tidy up the location of MSVC pragma.
7063
7064    It makes no difference in practice.
7065
7066 src/liblzma/check/crc_clmul.c | 4 ++--
7067 1 file changed, 2 insertions(+), 2 deletions(-)
7068
7069commit 15cf3f04f270d707a5c91cc0208b23b6db42b774
7070Author: Lasse Collin <lasse.collin@tukaani.org>
7071Date:   2023-12-20 21:16:24 +0200
7072
7073    Update THANKS.
7074
7075 THANKS | 1 +
7076 1 file changed, 1 insertion(+)
7077
7078commit cd64dd70d5665b6048829c45772d08606f44672e
7079Author: Lasse Collin <lasse.collin@tukaani.org>
7080Date:   2023-12-20 21:15:16 +0200
7081
7082    liblzma: Use 8-byte method in memcmplen.h on ARM64.
7083
7084    It requires fast unaligned access to 64-bit integers
7085    and a fast instruction to count leading zeros in
7086    a 64-bit integer (__builtin_ctzll()). This perhaps
7087    should be enabled on some other archs too.
7088
7089    Thanks to Chenxi Mao for the original patch:
7090    https://github.com/tukaani-project/xz/pull/75 (the first commit)
7091    According to the numbers there, this may improve encoding
7092    speed by about 3-5 %.
7093
7094    This enables the 8-byte method on MSVC ARM64 too which
7095    should work but wasn't tested.
7096
7097 src/liblzma/common/memcmplen.h | 18 ++++++++++--------
7098 1 file changed, 10 insertions(+), 8 deletions(-)
7099
7100commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606
7101Author: Lasse Collin <lasse.collin@tukaani.org>
7102Date:   2023-12-20 21:01:06 +0200
7103
7104    liblzma: Check also for __clang__ in memcmplen.h.
7105
7106    This change hopefully makes no practical difference as Clang
7107    likely was detected via __GNUC__ or _MSC_VER already.
7108
7109 src/liblzma/common/memcmplen.h | 3 ++-
7110 1 file changed, 2 insertions(+), 1 deletion(-)
7111
7112commit 133c5851eb917c6d99d0b623c1689c8518e65f38
7113Author: Jia Tan <jiat0218@gmail.com>
7114Date:   2023-12-21 21:39:08 +0800
7115
7116    Translations: Update the French translation.
7117
7118 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++--------------------------
7119 1 file changed, 370 insertions(+), 262 deletions(-)
7120
7121commit 710cbc186cad0ac601c38bd6bf31167648a5581e
7122Author: Jia Tan <jiat0218@gmail.com>
7123Date:   2023-12-21 16:39:53 +0800
7124
7125    xz: Add a comment to Capsicum sandbox setup.
7126
7127    This comment is repeated in xzdec.c to help remind us why all the
7128    capabilities are removed from stdin in certain situations.
7129
7130 src/xz/file_io.c | 1 +
7131 1 file changed, 1 insertion(+)
7132
7133commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12
7134Author: Jia Tan <jiat0218@gmail.com>
7135Date:   2023-12-20 22:19:19 +0800
7136
7137    Docs: Update --enable-sandbox option in INSTALL.
7138
7139    xzdec now also uses the sandbox when its configured.
7140
7141 INSTALL | 17 ++++++++++-------
7142 1 file changed, 10 insertions(+), 7 deletions(-)
7143
7144commit ebddf20214143a8e002ab897e95e880bb4c5ac44
7145Author: Jia Tan <jiat0218@gmail.com>
7146Date:   2023-12-20 22:39:13 +0800
7147
7148    CMake: Move sandbox detection outside of xz section.
7149
7150    The sandbox is now enabled for xzdec as well, so it no longer belongs
7151    in just the xz section. xz and xzdec are always built, except for older
7152    MSVC versions, so there isn't a need to conditionally show the sandbox
7153    configuration. CMake will do a little unecessary work on older MSVC
7154    versions that can't build xz or xzdec, but this is a very small
7155    downside.
7156
7157 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++--------------------------
7158 1 file changed, 98 insertions(+), 80 deletions(-)
7159
7160commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316
7161Author: Jia Tan <jiat0218@gmail.com>
7162Date:   2023-12-20 22:43:44 +0800
7163
7164    Build: Allow sandbox to be configured for just xzdec.
7165
7166    If xz is disabled, then xzdec can still use the sandbox.
7167
7168 configure.ac | 10 +++++-----
7169 1 file changed, 5 insertions(+), 5 deletions(-)
7170
7171commit d74fb5f060b76db709b50f5fd37490394e52f975
7172Author: Jia Tan <jiat0218@gmail.com>
7173Date:   2023-12-19 21:18:28 +0800
7174
7175    xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.
7176
7177    A very strict sandbox is used when the last file is decompressed. The
7178    likely most common use case of xzdec is to decompress a single file.
7179    The Pledge sandbox is applied to the entire process with slightly more
7180    relaxed promises, until the last file is processed.
7181
7182    Thanks to Christian Weisgerber for the initial patch adding Pledge
7183    sandboxing.
7184
7185 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++---
7186 1 file changed, 139 insertions(+), 7 deletions(-)
7187
7188commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5
7189Author: Jia Tan <jiat0218@gmail.com>
7190Date:   2023-12-20 21:31:34 +0800
7191
7192    liblzma: Initialize lzma_lz_encoder pointers with NULL.
7193
7194    This fixes the recent change to lzma_lz_encoder that used memzero
7195    instead of the NULL constant. On some compilers the NULL constant
7196    (always 0) may not equal the NULL pointer (this only needs to guarentee
7197    to not point to valid memory address).
7198
7199    Later code compares the pointers to the NULL pointer so we must
7200    initialize them with the NULL pointer instead of 0 to guarentee
7201    code correctness.
7202
7203 src/liblzma/lz/lz_encoder.c | 6 +++++-
7204 1 file changed, 5 insertions(+), 1 deletion(-)
7205
7206commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df
7207Author: Jia Tan <jiat0218@gmail.com>
7208Date:   2023-12-16 20:51:38 +0800
7209
7210    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
7211
7212    The first member of lzma_lz_encoder doesn't necessarily need to be set
7213    to NULL since it will always be set before anything tries to use it.
7214    However the function pointer members must be set to NULL since other
7215    functions rely on this NULL value to determine if this behavior is
7216    supported or not.
7217
7218    This fixes a somewhat serious bug, where the options_update() and
7219    set_out_limit() function pointers are not set to NULL. This seems to
7220    have been forgotten since these function pointers were added many years
7221    after the original two (code() and end()).
7222
7223    The problem is that by not setting this to NULL we are relying on the
7224    memory allocation to zero things out if lzma_filters_update() is called
7225    on a LZMA1 encoder. The function pointer for set_out_limit() is less
7226    serious because there is not an API function that could call this in an
7227    incorrect way. set_out_limit() is only called by the MicroLZMA encoder,
7228    which must use LZMA1 where set_out_limit() is always set. Its currently
7229    not possible to call set_out_limit() on an LZMA2 encoder at this time.
7230
7231    So calling lzma_filters_update() on an LZMA1 encoder had undefined
7232    behavior since its possible that memory could be manipulated so the
7233    options_update member pointed to a different instruction sequence.
7234
7235    This is unlikely to be a bug in an existing application since it relies
7236    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
7237    For instance, it does not affect xz because lzma_filters_update() can
7238    only be used when encoding to the .xz format.
7239
7240    This is fixed by using memzero() to set all members of lzma_lz_encoder
7241    to NULL after it is allocated. This ensures this mistake will not occur
7242    here in the future if any additional function pointers are added.
7243
7244 src/liblzma/lz/lz_encoder.c | 4 +---
7245 1 file changed, 1 insertion(+), 3 deletions(-)
7246
7247commit 1a1bb381db7a20cf86cb45a350e5cca35224d017
7248Author: Jia Tan <jiat0218@gmail.com>
7249Date:   2023-12-16 20:30:55 +0800
7250
7251    liblzma: Tweak a comment.
7252
7253 src/liblzma/lz/lz_encoder.c | 2 +-
7254 1 file changed, 1 insertion(+), 1 deletion(-)
7255
7256commit 55810780e04f759747b02683fb8020b8cd022a85
7257Author: Jia Tan <jiat0218@gmail.com>
7258Date:   2023-12-16 20:28:21 +0800
7259
7260    liblzma: Make parameter names in function definition match declaration.
7261
7262    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
7263    parameter name instead of "filters" (used by the declaration). "filters"
7264    is more clear since the parameter represents the list of filters passed
7265    to the raw encoder, each of which contains filter options.
7266
7267 src/liblzma/common/filter_encoder.c | 8 ++++----
7268 1 file changed, 4 insertions(+), 4 deletions(-)
7269
7270commit 5dad6f628af742bab826819760deb677597445f7
7271Author: Jia Tan <jiat0218@gmail.com>
7272Date:   2023-12-16 20:18:47 +0800
7273
7274    liblzma: Improve lzma encoder init function consistency.
7275
7276    lzma_encoder_init() did not check for NULL options, but
7277    lzma2_encoder_init() did. This is more of a code style improvement than
7278    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
7279    more similar.
7280
7281 src/liblzma/lzma/lzma_encoder.c | 3 +++
7282 1 file changed, 3 insertions(+)
7283
7284commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf
7285Author: Jia Tan <jiat0218@gmail.com>
7286Date:   2023-12-16 11:20:20 +0800
7287
7288    Docs: Update repository URL in Changelog.
7289
7290 ChangeLog | 2 +-
7291 1 file changed, 1 insertion(+), 1 deletion(-)
7292
7293commit f9b82bc64a9405e486575c65c1729229eb0a8198
7294Author: Jia Tan <jiat0218@gmail.com>
7295Date:   2023-12-15 16:56:31 +0800
7296
7297    CI: Update Upload Artifact Action.
7298
7299 .github/workflows/ci.yml         | 2 +-
7300 .github/workflows/windows-ci.yml | 2 +-
7301 2 files changed, 2 insertions(+), 2 deletions(-)
7302
7303commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e
7304Author: Jia Tan <jiat0218@gmail.com>
7305Date:   2023-12-07 21:48:07 +0800
7306
7307    Tests: Silence -Wsign-conversion warning on GCC version < 10.
7308
7309    Since GCC version 10, GCC no longer complains about simple implicit
7310    integer conversions with Arithmetic operators.
7311
7312    For instance:
7313
7314        uint8_t a = 5;
7315        uint32_t b = a + 5;
7316
7317    Give a warning on GCC 9 and earlier but this:
7318
7319        uint8_t a = 5;
7320        uint32_t b = (a + 5) * 2;
7321
7322    Gives a warning with GCC 10+.
7323
7324 tests/test_block_header.c | 2 +-
7325 1 file changed, 1 insertion(+), 1 deletion(-)
7326
7327commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8
7328Author: Jia Tan <jiat0218@gmail.com>
7329Date:   2023-12-06 18:39:03 +0800
7330
7331    Update THANKS.
7332
7333 THANKS | 1 +
7334 1 file changed, 1 insertion(+)
7335
7336commit ee2f48350099201694a7586e41d7aa2f09fc74da
7337Author: Jia Tan <jiat0218@gmail.com>
7338Date:   2023-12-06 18:30:25 +0800
7339
7340    Tests: Minor cleanups to OSS-Fuzz files.
7341
7342    Most of these fixes are small typos and tweaks. A few were caused by bad
7343    advice from me. Here is the summary of what is changed:
7344
7345    - Author line edits
7346
7347    - Small comment changes/additions
7348
7349    - Using the return value in the error messages in the fuzz targets'
7350      coder initialization code
7351
7352    - Removed fuzz_encode_stream.options. This set a max length, which may
7353      prevent some worthwhile code paths from being properly exercised.
7354
7355    - Removed the max_len option from fuzz_decode_stream.options for the
7356      same reason as fuzz_encode_stream. The alone decoder fuzz target still
7357      has this restriction.
7358
7359    - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping
7360      the properties static and varying the dictionary size, the properties
7361      are varied and the dictionary size is kept small. The dictionary size
7362      doesn't have much impact on the code paths but the properties do.
7363
7364    Closes: https://github.com/tukaani-project/xz/pull/73
7365
7366 tests/ossfuzz/Makefile                          |  3 ++
7367 tests/ossfuzz/config/fuzz_decode_stream.options |  1 -
7368 tests/ossfuzz/config/fuzz_lzma.dict             | 34 +++++++++++-----------
7369 tests/ossfuzz/fuzz_common.h                     | 16 +++++------
7370 tests/ossfuzz/fuzz_decode_alone.c               | 15 +++++-----
7371 tests/ossfuzz/fuzz_decode_stream.c              | 15 +++++-----
7372 tests/ossfuzz/fuzz_encode_stream.c              | 38 +++++++++++++++----------
7373 7 files changed, 66 insertions(+), 56 deletions(-)
7374
7375commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d
7376Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
7377Date:   2023-12-05 16:31:09 +0100
7378
7379    Tests: Add fuzz_encode_stream ossfuzz target.
7380
7381    This fuzz target handles .xz stream encoding. The first byte of input
7382    is used to dynamically set the preset level in order to increase the
7383    fuzz coverage of complex critical code paths.
7384
7385 tests/ossfuzz/config/fuzz_encode_stream.options |  2 +
7386 tests/ossfuzz/fuzz_encode_stream.c              | 79 +++++++++++++++++++++++++
7387 2 files changed, 81 insertions(+)
7388
7389commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48
7390Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
7391Date:   2023-12-04 17:23:24 +0100
7392
7393    Tests: Add fuzz_decode_alone OSS-Fuzz target
7394
7395    This fuzz target that handles LZMA alone decoding. A new fuzz
7396    dictionary .dict was also created with common LZMA header values to
7397    help speed up the discovery of valid headers.
7398
7399 tests/ossfuzz/config/fuzz_decode_alone.options |  3 ++
7400 tests/ossfuzz/config/fuzz_lzma.dict            | 22 ++++++++++++++
7401 tests/ossfuzz/fuzz_decode_alone.c              | 41 ++++++++++++++++++++++++++
7402 3 files changed, 66 insertions(+)
7403
7404commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a
7405Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
7406Date:   2023-12-04 17:21:29 +0100
7407
7408    Tests: Update OSS-Fuzz Makefile.
7409
7410    All .c files can be built as separate fuzz targets. This simplifies
7411    the Makefile by allowing us to use wildcards instead of having a
7412    Makefile target for each fuzz target.
7413
7414 tests/ossfuzz/Makefile | 13 +++++++++----
7415 1 file changed, 9 insertions(+), 4 deletions(-)
7416
7417commit 28ce6a1c2a74866c51f7996a6869679c236d3c94
7418Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
7419Date:   2023-12-04 17:20:08 +0100
7420
7421    Tests: Move common OSS-Fuzz target code to .h file.
7422
7423 tests/ossfuzz/fuzz_common.h        | 56 ++++++++++++++++++++++++++++++++++++
7424 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++----------------------------
7425 2 files changed, 71 insertions(+), 44 deletions(-)
7426
7427commit bf0521ea1591c25b9d510c1b8be86073e9d847c6
7428Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
7429Date:   2023-12-04 17:18:20 +0100
7430
7431    Tests: Rename OSS-Fuzz files.
7432
7433 tests/ossfuzz/config/fuzz.options                | 2 --
7434 tests/ossfuzz/config/fuzz_decode_stream.options  | 3 +++
7435 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0
7436 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c}   | 0
7437 4 files changed, 3 insertions(+), 2 deletions(-)
7438
7439commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7
7440Author: Jia Tan <jiat0218@gmail.com>
7441Date:   2023-11-30 23:10:43 +0800
7442
7443    Update THANKS.
7444
7445 THANKS | 1 +
7446 1 file changed, 1 insertion(+)
7447
7448commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
7449Author: Kian-Meng Ang <kianmeng@cpan.org>
7450Date:   2023-11-30 23:01:19 +0800
7451
7452    Tests: Fix typos
7453
7454 tests/test_index.c        | 2 +-
7455 tests/test_lzip_decoder.c | 4 ++--
7456 2 files changed, 3 insertions(+), 3 deletions(-)
7457
7458commit 424d46ead8cbc0da57f406b76926ec4ed47437f5
7459Author: Kian-Meng Ang <kianmeng@cpan.org>
7460Date:   2023-11-30 22:59:47 +0800
7461
7462    xz: Fix typo
7463
7464 src/xz/file_io.c | 2 +-
7465 1 file changed, 1 insertion(+), 1 deletion(-)
7466
7467commit 35558adf9c45e5597f2c8dbd969885dd484038d2
7468Author: Jia Tan <jiat0218@gmail.com>
7469Date:   2023-11-30 20:41:00 +0800
7470
7471    Update THANKS.
7472
7473 THANKS | 1 +
7474 1 file changed, 1 insertion(+)
7475
7476commit fd170e8557727bed6bec0518c16415064d972e4e
7477Author: Jia Tan <jiat0218@gmail.com>
7478Date:   2023-11-22 21:20:12 +0800
7479
7480    CI: Test musl libc builds on Ubuntu runner.
7481
7482 .github/workflows/ci.yml | 19 +++++++++++++++++--
7483 1 file changed, 17 insertions(+), 2 deletions(-)
7484
7485commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e
7486Author: Jia Tan <jiat0218@gmail.com>
7487Date:   2023-11-22 21:12:15 +0800
7488
7489    CI: Allow ci_build.sh to set a different C compiler.
7490
7491 build-aux/ci_build.sh | 11 ++++++++++-
7492 1 file changed, 10 insertions(+), 1 deletion(-)
7493
7494commit ff7badef53c2cd698d4b72b945f34dfd0835e13c
7495Author: Jia Tan <jiat0218@gmail.com>
7496Date:   2023-11-24 21:19:12 +0800
7497
7498    CMake: Use consistent indentation with check_c_source_compiles().
7499
7500 CMakeLists.txt | 4 ++--
7501 1 file changed, 2 insertions(+), 2 deletions(-)
7502
7503commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1
7504Author: Jia Tan <jiat0218@gmail.com>
7505Date:   2023-11-22 20:33:36 +0800
7506
7507    CMake: Change __attribute__((__ifunc__())) detection.
7508
7509    This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc
7510    detection changes that were made to the Autotools build.
7511
7512    Fixes: https://github.com/tukaani-project/xz/issues/70
7513
7514 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
7515 1 file changed, 45 insertions(+), 8 deletions(-)
7516
7517commit 20ecee40a0053fd16371ef0628046bf45e548d72
7518Author: Jia Tan <jiat0218@gmail.com>
7519Date:   2023-11-24 20:19:11 +0800
7520
7521    Docs: Update INSTALL for --enable_ifunc change.
7522
7523 INSTALL | 16 ++++++++--------
7524 1 file changed, 8 insertions(+), 8 deletions(-)
7525
7526commit ffb456593d695d70052a2f71c7a2e6269217d194
7527Author: Jia Tan <jiat0218@gmail.com>
7528Date:   2023-11-21 20:56:55 +0800
7529
7530    Build: Change --enable-ifunc handling.
7531
7532    Some compilers support __attribute__((__ifunc__())) even though the
7533    dynamic linker does not. The compiler is able to create the binary
7534    but it will fail on startup. So it is not enough to just test if
7535    the attribute is supported.
7536
7537    The default value for enable_ifunc is now auto, which will attempt
7538    to compile a program using __attribute__((__ifunc__())). There are
7539    additional checks in this program if glibc is being used or if it
7540    is running on FreeBSD.
7541
7542    Setting --enable-ifunc will skip this test and always enable
7543    __attribute__((__ifunc__())), even if is not supported.
7544
7545 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++-----------------
7546 1 file changed, 44 insertions(+), 17 deletions(-)
7547
7548commit 12b89bcc9915090eb42ae638e565af44b6832a23
7549Author: Lasse Collin <lasse.collin@tukaani.org>
7550Date:   2023-11-23 17:39:10 +0200
7551
7552    xz: Tweak a comment.
7553
7554 src/xz/util.c | 4 ++--
7555 1 file changed, 2 insertions(+), 2 deletions(-)
7556
7557commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e
7558Author: Jia Tan <jiat0218@gmail.com>
7559Date:   2023-11-23 22:13:39 +0800
7560
7561    xz: Use is_tty() in message.c.
7562
7563 src/xz/message.c | 7 +------
7564 1 file changed, 1 insertion(+), 6 deletions(-)
7565
7566commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e
7567Author: Jia Tan <jiat0218@gmail.com>
7568Date:   2023-11-23 22:04:35 +0800
7569
7570    xz: Create separate is_tty() function.
7571
7572    The new is_tty() will report if a file descriptor is a terminal or not.
7573    On POSIX systems, it is a wrapper around isatty(). However, the native
7574    Windows implementation of isatty() will return true for all character
7575    devices, not just terminals. So is_tty() has a special case for Windows
7576    so it can use alternative Windows API functions to determine if a file
7577    descriptor is a terminal.
7578
7579    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
7580    or write to non-terminal character devices because xz thought it was a
7581    terminal. For instance:
7582
7583        xz foo -c > /dev/null
7584
7585    would fail because /dev/null was assumed to be a terminal.
7586
7587 src/xz/util.c | 30 +++++++++++++++++++++++-------
7588 src/xz/util.h | 14 ++++++++++++++
7589 2 files changed, 37 insertions(+), 7 deletions(-)
7590
7591commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d
7592Author: Jia Tan <jiat0218@gmail.com>
7593Date:   2023-11-22 20:39:41 +0800
7594
7595    tuklib_integer: Fix typo discovered by codespell.
7596
7597    Based on internet dictionary searches, 'choise' is an outdated spelling
7598    of 'choice'.
7599
7600 src/common/tuklib_integer.h | 2 +-
7601 1 file changed, 1 insertion(+), 1 deletion(-)
7602
7603commit 659aca0d695807c0762d4101765189e4e33d1e2c
7604Author: Lasse Collin <lasse.collin@tukaani.org>
7605Date:   2023-11-17 19:35:19 +0200
7606
7607    xz: Move the check for --suffix with --format=raw a few lines earlier.
7608
7609    Now it reads from argv[] instead of args->arg_names.
7610
7611 src/xz/args.c | 44 ++++++++++++++++++++++----------------------
7612 1 file changed, 22 insertions(+), 22 deletions(-)
7613
7614commit ca278eb2b7f5a4940f5ab18955297b398d423824
7615Author: Jia Tan <jiat0218@gmail.com>
7616Date:   2023-11-17 20:35:11 +0800
7617
7618    Tests: Create test_suffix.sh.
7619
7620    This tests some complicated interactions with the --suffix= option.
7621    The suffix option must be used with --format=raw, but can optionally
7622    be used to override the default .xz suffix.
7623
7624    This test also verifies some recent bugs have been correctly solved
7625    and to hopefully avoid further regressions in the future.
7626
7627 tests/Makefile.am    |   2 +
7628 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++
7629 2 files changed, 191 insertions(+)
7630
7631commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce
7632Author: Jia Tan <jiat0218@gmail.com>
7633Date:   2023-11-17 20:19:26 +0800
7634
7635    xz: Fix a bug with --files and --files0 in raw mode without a suffix.
7636
7637    The following command caused a segmentation fault:
7638
7639        xz -Fraw --lzma1 --files=foo
7640
7641    when foo was a valid file. The usage of --files or --files0 was not
7642    being checked when compressing or decompressing in raw mode without a
7643    suffix. The suffix checking code was meant to validate that all files
7644    to be processed are "-" (if not writing to standard out), meaning the
7645    data is only coming from standard in. In this case, there were no file
7646    names to check since --files and --files0 store their file name in a
7647    different place.
7648
7649    Later code assumed the suffix was set and caused a segmentation fault.
7650    Now, the above command results in an error.
7651
7652 src/xz/args.c | 5 +++++
7653 1 file changed, 5 insertions(+)
7654
7655commit 299920bab9ae258a247366339264e8aefca9e3ce
7656Author: Jia Tan <jiat0218@gmail.com>
7657Date:   2023-11-17 20:04:58 +0800
7658
7659    Tests: Fix typo in a comment.
7660
7661 tests/test_files.sh | 2 +-
7662 1 file changed, 1 insertion(+), 1 deletion(-)
7663
7664commit f481523baac946fa3bc13d79186ffaf0c0b818a7
7665Author: Jia Tan <jiat0218@gmail.com>
7666Date:   2023-11-15 23:40:13 +0800
7667
7668    xz: Refactor suffix test with raw format.
7669
7670    The previous version set opt_stdout, but this caused an issue with
7671    copying an input file to standard out when decompressing an unknown file
7672    type. The following needs to result in an error:
7673
7674        echo foo | xz -df
7675
7676    since -c, --stdout is not used. This fixes the previous error by not
7677    setting opt_stdout.
7678
7679 src/xz/args.c | 38 +++++++++++++-------------------------
7680 1 file changed, 13 insertions(+), 25 deletions(-)
7681
7682commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6
7683Author: Jia Tan <jiat0218@gmail.com>
7684Date:   2023-11-14 20:27:46 +0800
7685
7686    xz: Move suffix check after stdout mode is detected.
7687
7688    This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0
7689    when the suffix check was initially moved. This caused a situation that
7690    previously worked:
7691
7692        echo foo | xz -Fraw --lzma1 | wc -c
7693
7694    to fail because the old code knew that this would write to standard out
7695    so a suffix was not needed.
7696
7697 src/xz/args.c | 16 ++++++++--------
7698 1 file changed, 8 insertions(+), 8 deletions(-)
7699
7700commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf
7701Author: Jia Tan <jiat0218@gmail.com>
7702Date:   2023-11-14 20:27:04 +0800
7703
7704    xz: Detect when all data will be written to standard out earlier.
7705
7706    If the -c, --stdout argument is not used, then we can still detect when
7707    the data will be written to standard out if all of the provided
7708    filenames are "-" (denoting standard in) or if no filenames are
7709    provided.
7710
7711 src/xz/args.c | 21 +++++++++++++++++++++
7712 1 file changed, 21 insertions(+)
7713
7714commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b
7715Author: Jia Tan <jiat0218@gmail.com>
7716Date:   2023-11-09 01:21:53 +0800
7717
7718    liblzma: Add missing comments to lz_encoder.h.
7719
7720 src/liblzma/lz/lz_encoder.h | 6 +++++-
7721 1 file changed, 5 insertions(+), 1 deletion(-)
7722
7723commit 5fe1450603dc625340b8b7866fb4a83ff748ad06
7724Author: Jia Tan <jiat0218@gmail.com>
7725Date:   2023-11-01 20:18:30 +0800
7726
7727    Add NEWS for 5.4.5.
7728
7729 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7730 1 file changed, 74 insertions(+)
7731
7732commit 46007049cd42e606543dbe650feb17bdf4469c29
7733Author: Lasse Collin <lasse.collin@tukaani.org>
7734Date:   2023-10-31 21:41:09 +0200
7735
7736    liblzma: Fix compilation of fastpos_tablegen.c.
7737
7738    The macro lzma_attr_visibility_hidden has to be defined to make
7739    fastpos.h usable. The visibility attribute is irrelevant to
7740    fastpos_tablegen.c so simply #define the macro to an empty value.
7741
7742    fastpos_tablegen.c is never built by the included build systems
7743    and so the problem wasn't noticed earlier. It's just a standalone
7744    program for generating fastpos_table.c.
7745
7746    Fixes: https://github.com/tukaani-project/xz/pull/69
7747    Thanks to GitHub user Jamaika1.
7748
7749 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
7750 1 file changed, 2 insertions(+)
7751
7752commit 148e20607e95781558bdfc823ecba07b7af4b590
7753Author: Jia Tan <jiat0218@gmail.com>
7754Date:   2023-10-31 21:51:40 +0800
7755
7756    Build: Fix text wrapping in an output message.
7757
7758 configure.ac | 9 +++++----
7759 1 file changed, 5 insertions(+), 4 deletions(-)
7760
7761commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c
7762Author: Lasse Collin <lasse.collin@tukaani.org>
7763Date:   2023-10-30 18:09:53 +0200
7764
7765    liblzma: Add a note why crc_always_inline exists for now.
7766
7767    Solaris Studio is a possible example (not tested) which
7768    supports the always_inline attribute but might not get
7769    detected by the common.h #ifdefs.
7770
7771 src/liblzma/check/crc_common.h | 5 +++++
7772 1 file changed, 5 insertions(+)
7773
7774commit e7a86b94cd247435ac96bc79ba528b690b9ca388
7775Author: Lasse Collin <lasse.collin@tukaani.org>
7776Date:   2023-10-22 17:59:11 +0300
7777
7778    liblzma: Use lzma_always_inline in memcmplen.h.
7779
7780 src/liblzma/common/memcmplen.h | 3 +--
7781 1 file changed, 1 insertion(+), 2 deletions(-)
7782
7783commit dcfe5632992fb7f06f921da13fcdd84f83d0d285
7784Author: Lasse Collin <lasse.collin@tukaani.org>
7785Date:   2023-10-30 17:43:03 +0200
7786
7787    liblzma: #define lzma_always_inline in common.h.
7788
7789 src/liblzma/common/common.h | 17 +++++++++++++++++
7790 1 file changed, 17 insertions(+)
7791
7792commit 41113fe30a47f6fd3e30cb4494dd538e86212edf
7793Author: Lasse Collin <lasse.collin@tukaani.org>
7794Date:   2023-10-22 17:15:32 +0300
7795
7796    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
7797
7798    These variables are internal to liblzma and not exposed in the API.
7799
7800 src/liblzma/check/check.h                | 7 +++++++
7801 src/liblzma/common/stream_flags_common.h | 3 +++
7802 src/liblzma/lz/lz_encoder_hash.h         | 1 +
7803 src/liblzma/lzma/fastpos.h               | 1 +
7804 src/liblzma/rangecoder/price.h           | 1 +
7805 5 files changed, 13 insertions(+)
7806
7807commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478
7808Author: Lasse Collin <lasse.collin@tukaani.org>
7809Date:   2023-10-22 17:08:39 +0300
7810
7811    liblzma: #define lzma_attr_visibility_hidden in common.h.
7812
7813    In ELF shared libs:
7814
7815    -fvisibility=hidden affects definitions of symbols but not
7816    declarations.[*] This doesn't affect direct calls to functions
7817    inside liblzma as a linker can replace a call to lzma_foo@plt
7818    with a call directly to lzma_foo when -fvisibility=hidden is used.
7819
7820    [*] It has to be like this because otherwise every installed
7821        header file would need to explictly set the symbol visibility
7822        to default.
7823
7824    When accessing extern variables that aren't defined in the
7825    same translation unit, compiler assumes that the variable has
7826    the default visibility and thus indirection is needed. Unlike
7827    function calls, linker cannot optimize this.
7828
7829    Using __attribute__((__visibility__("hidden"))) with the extern
7830    variable declarations tells the compiler that indirection isn't
7831    needed because the definition is in the same shared library.
7832
7833    About 15+ years ago, someone told me that it would be good if
7834    the CRC tables would be defined in the same translation unit
7835    as the C code of the CRC functions. While I understood that it
7836    could help a tiny amount, I didn't want to change the code because
7837    a separate translation unit for the CRC tables was needed for the
7838    x86 assembly code anyway. But when visibility attributes are
7839    supported, simply marking the extern declaration with the
7840    hidden attribute will get identical result. When there are only
7841    a few affected variables, this is trivial to do. I wish I had
7842    understood this back then already.
7843
7844 src/liblzma/common/common.h | 11 +++++++++++
7845 1 file changed, 11 insertions(+)
7846
7847commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8
7848Author: Lasse Collin <lasse.collin@tukaani.org>
7849Date:   2023-09-30 22:54:28 +0300
7850
7851    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
7852
7853    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
7854    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
7855    most recent GCC package (released 2021-02-02). The project might
7856    still be alive but majority of people have switched to MinGW-w64.
7857    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
7858    Building with MinGW is likely to still work but I haven't tested it
7859    in the recent years.
7860
7861 src/liblzma/api/lzma.h         | 4 ++--
7862 src/liblzma/api/lzma/version.h | 2 +-
7863 2 files changed, 3 insertions(+), 3 deletions(-)
7864
7865commit 597f49b61475438a43a417236989b2acc968a686
7866Author: Lasse Collin <lasse.collin@tukaani.org>
7867Date:   2023-09-27 00:58:17 +0300
7868
7869    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
7870
7871    A CMake option LARGE_FILE_SUPPORT is created if and only if
7872    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
7873
7874    This is needed on many 32-bit platforms and even with 64-bit builds
7875    with MinGW-w64 to get support for files larger than 2 GiB.
7876
7877 CMakeLists.txt                        |  7 ++++-
7878 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
7879 2 files changed, 58 insertions(+), 1 deletion(-)
7880
7881commit 1bc548b8210366e44ba35b0b11577a8e328c1228
7882Author: Lasse Collin <lasse.collin@tukaani.org>
7883Date:   2023-09-30 02:14:25 +0300
7884
7885    CMake: Generate and install liblzma.pc if not using MSVC.
7886
7887    Autotools based build uses -pthread and thus adds it to Libs.private
7888    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
7889    are available in libc so Libs.private doesn't get -pthread either.
7890
7891 CMakeLists.txt | 21 +++++++++++++++++++++
7892 1 file changed, 21 insertions(+)
7893
7894commit 2add71966f891d315105d6245f724ed4f43a4eff
7895Author: Lasse Collin <lasse.collin@tukaani.org>
7896Date:   2023-09-30 01:13:13 +0300
7897
7898    CMake: Rearrange the PACKAGE_ variables.
7899
7900    The windres workaround now replaces spaces with \x20 so
7901    the package name isn't repeated.
7902
7903    These changes will help with creation of liblzma.pc.
7904
7905 CMakeLists.txt | 26 +++++++++++++++-----------
7906 1 file changed, 15 insertions(+), 11 deletions(-)
7907
7908commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91
7909Author: Lasse Collin <lasse.collin@tukaani.org>
7910Date:   2023-09-29 20:46:11 +0300
7911
7912    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
7913
7914    It properly adds -DLZMA_API_STATIC when compiling code that
7915    will be linked against static liblzma. Having it there on
7916    systems other than Windows does no harm.
7917
7918    See: https://www.msys2.org/docs/pkgconfig/
7919
7920 src/liblzma/liblzma.pc.in | 1 +
7921 1 file changed, 1 insertion(+)
7922
7923commit 80e0750e3996c1c659e972ce9cf789ca2e99f702
7924Author: Lasse Collin <lasse.collin@tukaani.org>
7925Date:   2023-09-27 22:46:20 +0300
7926
7927    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
7928
7929 CMakeLists.txt              | 20 ++++++++++++++++++++
7930 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
7931 2 files changed, 46 insertions(+)
7932
7933commit 08d12595f486890cf601b87f36ee0ddbce57728e
7934Author: Lasse Collin <lasse.collin@tukaani.org>
7935Date:   2023-10-26 21:44:42 +0300
7936
7937    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
7938
7939    In this case they have identical values.
7940
7941 CMakeLists.txt | 2 +-
7942 1 file changed, 1 insertion(+), 1 deletion(-)
7943
7944commit e67aaf698de75c73443a5ec786781cbf2034461d
7945Author: Lasse Collin <lasse.collin@tukaani.org>
7946Date:   2023-10-01 19:10:57 +0300
7947
7948    CMake/Windows: Fix the import library filename.
7949
7950    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
7951    liblzma.dll and liblzma.dll.a.
7952
7953 CMakeLists.txt | 1 +
7954 1 file changed, 1 insertion(+)
7955
7956commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179
7957Author: Lasse Collin <lasse.collin@tukaani.org>
7958Date:   2023-10-25 19:13:25 +0300
7959
7960    Build: Detect -fsanitize= in CFLAGS and incompatible build options.
7961
7962    Now configure will fail if -fsanitize= is found in CFLAGS
7963    and sanitizer-incompatible ifunc or Landlock sandboxing
7964    would be used. These are incompatible with one or more sanitizers.
7965    It's simpler to reject all -fsanitize= uses instead of trying to
7966    pass those that might not cause problems.
7967
7968    CMake-based build was updated similarly. It lets the configuration
7969    finish (SEND_ERROR instead of FATAL_ERROR) so that both error
7970    messages can be seen at once.
7971
7972 CMakeLists.txt | 29 +++++++++++++++++++++++++++++
7973 configure.ac   | 37 +++++++++++++++++++++++++++++++++----
7974 2 files changed, 62 insertions(+), 4 deletions(-)
7975
7976commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468
7977Author: Jia Tan <jiat0218@gmail.com>
7978Date:   2023-10-24 00:50:08 +0800
7979
7980    CI: Disable sandboxing in fsanitize=address,undefined job.
7981
7982    The sandboxing on Linux now supports Landlock, which restricts all
7983    supported filesystem actions after xz opens the files it needs. The
7984    sandbox is only enabled when one file is input and we are writing to
7985    standard out. With fsanitize=address,undefined, the instrumentation
7986    needs to read additional files after the sandbox is in place. This
7987    forces all xz based test to fail, so the sandbox must instead be
7988    disabled.
7989
7990 .github/workflows/ci.yml | 8 ++++++--
7991 1 file changed, 6 insertions(+), 2 deletions(-)
7992
7993commit b1408987ea832e2760e478ae960a636df17a1363
7994Author: Jia Tan <jiat0218@gmail.com>
7995Date:   2023-10-24 00:15:39 +0800
7996
7997    CI: Allow disabling the sandbox in ci_build.sh.
7998
7999 build-aux/ci_build.sh | 5 ++++-
8000 1 file changed, 4 insertions(+), 1 deletion(-)
8001
8002commit 91c435cf1c7a1e893706d4d716dfd361621ed824
8003Author: Lasse Collin <lasse.collin@tukaani.org>
8004Date:   2023-10-11 19:47:44 +0300
8005
8006    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
8007
8008    Using set(ENABLE_THREADS "posix") is confusing because it sets
8009    a new normal variable and leaves the cache entry with the same
8010    name unchanged. The intent wasn't to change the cache entry so
8011    this switches to a different variable name.
8012
8013 CMakeLists.txt | 10 +++++++---
8014 1 file changed, 7 insertions(+), 3 deletions(-)
8015
8016commit fa1609eb9393ecd30decfed4891c907829f06710
8017Author: Lasse Collin <lasse.collin@tukaani.org>
8018Date:   2023-10-09 22:28:49 +0300
8019
8020    Docs: Update INSTALL about sandboxing support.
8021
8022 INSTALL | 7 ++++++-
8023 1 file changed, 6 insertions(+), 1 deletion(-)
8024
8025commit 8276c7f41c671eee4aa3239490658b23dcfd3021
8026Author: Lasse Collin <lasse.collin@tukaani.org>
8027Date:   2023-10-09 22:07:52 +0300
8028
8029    xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3).
8030
8031    It is enabled only when decompressing one file to stdout,
8032    similar to how Capsicum is used.
8033
8034    Landlock was added in Linux 5.13.
8035
8036 CMakeLists.txt   | 12 +++++++++++-
8037 configure.ac     | 11 ++++++++---
8038 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8039 src/xz/main.c    | 19 +++++++++++++++++++
8040 src/xz/private.h |  3 ++-
8041 5 files changed, 98 insertions(+), 5 deletions(-)
8042
8043commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c
8044Author: Lasse Collin <lasse.collin@tukaani.org>
8045Date:   2023-10-09 21:12:31 +0300
8046
8047    CMake: Edit threading related messages.
8048
8049    It's mostly to change from "thread method" to "threading method".
8050
8051 CMakeLists.txt | 19 ++++++++++---------
8052 1 file changed, 10 insertions(+), 9 deletions(-)
8053
8054commit bf011352528ae3539ea7b780b45b96736ee57a99
8055Author: Lasse Collin <lasse.collin@tukaani.org>
8056Date:   2023-10-09 20:59:24 +0300
8057
8058    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
8059
8060    This way typos are caught quickly and compounding error messages
8061    are avoided (a single typo could cause more than one error).
8062
8063    This keeps using SEND_ERROR when the system is lacking a feature
8064    (like threading library or sandboxing method). This way the whole
8065    configuration log will be generated in case someone wishes to
8066    report a problem upstream.
8067
8068 CMakeLists.txt | 28 ++++++++++++++--------------
8069 1 file changed, 14 insertions(+), 14 deletions(-)
8070
8071commit 3f53870c249945d657ca3d75e0993e6267d71f75
8072Author: Lasse Collin <lasse.collin@tukaani.org>
8073Date:   2023-10-09 18:37:32 +0300
8074
8075    CMake: Add sandboxing support.
8076
8077 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
8078 1 file changed, 49 insertions(+), 1 deletion(-)
8079
8080commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0
8081Author: Lasse Collin <lasse.collin@tukaani.org>
8082Date:   2023-10-09 18:13:08 +0300
8083
8084    Simplify detection of Capsicum support.
8085
8086    This removes support for FreeBSD 10.0 and 10.1 which used
8087    <sys/capability.h> instead of <sys/capsicum.h>. Support for
8088    FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is
8089    required to enable Capsicum support.
8090
8091    This also removes support for Capsicum on Linux (libcaprights)
8092    which seems to have been unmaintained since 2017 and Linux 4.11:
8093    https://github.com/google/capsicum-linux
8094
8095 configure.ac            |  4 +--
8096 m4/ax_check_capsicum.m4 | 85 -------------------------------------------------
8097 src/xz/Makefile.am      |  2 +-
8098 src/xz/file_io.c        | 14 +++-----
8099 src/xz/private.h        |  2 +-
8100 5 files changed, 9 insertions(+), 98 deletions(-)
8101
8102commit c57858b60e186d020b2dbaf7aabd9b32c71da824
8103Author: Lasse Collin <lasse.collin@tukaani.org>
8104Date:   2023-09-25 01:46:36 +0300
8105
8106    xz/Windows: Allow clock_gettime with POSIX threads.
8107
8108    If winpthreads are used for threading, it's OK to use clock_gettime()
8109    from winpthreads too.
8110
8111 src/xz/mytime.c | 9 ++++++---
8112 1 file changed, 6 insertions(+), 3 deletions(-)
8113
8114commit dd32f628bb5541ef4e8ce66966ef456a1934084c
8115Author: Lasse Collin <lasse.collin@tukaani.org>
8116Date:   2023-09-25 01:39:26 +0300
8117
8118    mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads.
8119
8120    This might be almost useless but it doesn't need much extra code either.
8121
8122 src/common/mythread.h | 23 ++++++++++++++++++++++-
8123 1 file changed, 22 insertions(+), 1 deletion(-)
8124
8125commit 680e52cdd086e92691d8a0bca2c98815565f60ca
8126Author: Lasse Collin <lasse.collin@tukaani.org>
8127Date:   2023-09-23 03:06:36 +0300
8128
8129    CMake: Check for clock_gettime() even on Windows.
8130
8131    This mirrors configure.ac although currently MinGW-w64 builds
8132    don't use clock_gettime() even if it is found.
8133
8134 CMakeLists.txt | 44 +++++++++++++++++++++-----------------------
8135 1 file changed, 21 insertions(+), 23 deletions(-)
8136
8137commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419
8138Author: Lasse Collin <lasse.collin@tukaani.org>
8139Date:   2023-09-23 03:23:32 +0300
8140
8141    Build: Check for clock_gettime() even if not using POSIX threads.
8142
8143    See the new comment in the code.
8144
8145    This also makes the check for clock_gettime() run with MinGW-w64
8146    with which we don't want to use clock_gettime(). The previous
8147    commit already took care of this situation.
8148
8149 configure.ac | 31 ++++++++++++++++++-------------
8150 1 file changed, 18 insertions(+), 13 deletions(-)
8151
8152commit 46fd991cd2808ef62554853864c946232e7547f0
8153Author: Lasse Collin <lasse.collin@tukaani.org>
8154Date:   2023-09-24 22:58:53 +0300
8155
8156    xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64.
8157
8158    This commit alone doesn't change anything in the real-world:
8159
8160      - configure.ac currently checks for clock_gettime() only
8161        when using pthreads.
8162
8163      - CMakeLists.txt doesn't check for clock_gettime() on Windows.
8164
8165    So clock_gettime() wasn't used with MinGW-w64 before either.
8166
8167    clock_gettime() provides monotonic time and it's better than
8168    gettimeofday() in this sense. But clock_gettime() is defined
8169    in winpthreads, and liblzma or xz needs nothing else from
8170    winpthreads. By avoiding clock_gettime(), we avoid the dependency on
8171    libwinpthread-1.dll or the need to link against the static version.
8172
8173    As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be
8174    faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution
8175    is more than good enough for the progress indicator in xz.
8176
8177 src/xz/mytime.c | 9 +++++++--
8178 1 file changed, 7 insertions(+), 2 deletions(-)
8179
8180commit cdb4d91f2464b50c985ef7b9517314ea237ddda7
8181Author: Lasse Collin <lasse.collin@tukaani.org>
8182Date:   2023-09-24 00:21:22 +0300
8183
8184    xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
8185
8186 src/xz/mytime.c | 14 +++++++++++---
8187 1 file changed, 11 insertions(+), 3 deletions(-)
8188
8189commit 988e09f27b9b04a43d45d10f92782e0092ee27a9
8190Author: Jia Tan <jiat0218@gmail.com>
8191Date:   2023-10-20 19:17:46 +0800
8192
8193    liblzma: Move is_clmul_supported() back to crc_common.h.
8194
8195    This partially reverts creating crc_clmul.c
8196    (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
8197    was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
8198    caused a problem when the function call to lzma_is_clmul_supported()
8199    results in a call through the PLT. ifunc resolvers run very early in
8200    the dynamic loading sequence, so the PLT may not be setup properly at
8201    this point. Whether the PLT is used or not for
8202    lzma_is_clmul_supported() depened upon the compiler-toolchain used and
8203    flags.
8204
8205    In liblzma compiled with GCC, for instance, GCC will go through the PLT
8206    for function calls internal to liblzma if the version scripts and
8207    symbol visibility hiding are not used. If lazy-binding is disabled,
8208    then it would have made any program linked with liblzma fail during
8209    dynamic loading in the ifunc resolver.
8210
8211 src/liblzma/check/crc32_fast.c |  2 +-
8212 src/liblzma/check/crc64_fast.c |  2 +-
8213 src/liblzma/check/crc_clmul.c  | 45 ------------------------------------
8214 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++---
8215 4 files changed, 51 insertions(+), 50 deletions(-)
8216
8217commit 105c7ca90d4152942e0798580a37f736d02faa22
8218Author: Jia Tan <jiat0218@gmail.com>
8219Date:   2023-10-19 16:23:32 +0800
8220
8221    Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc.
8222
8223    Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be
8224    set. Because of this, it makes the recent change to conditionally
8225    compile check/crc_clmul.c appear wrong since that file has CLMUL
8226    implementations for both CRC32 and CRC64.
8227
8228 src/liblzma/check/Makefile.inc | 4 ++--
8229 1 file changed, 2 insertions(+), 2 deletions(-)
8230
8231commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c
8232Author: Jia Tan <jiat0218@gmail.com>
8233Date:   2023-10-19 16:09:01 +0800
8234
8235    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
8236
8237    The option is enabled by default, but will only be visible to a user
8238    listing cache variables or using a CMake GUI application if the
8239    immintrin.h header file is found.
8240
8241    This mirrors our Autotools build --disable-clmul-crc functionality.
8242
8243 CMakeLists.txt | 44 +++++++++++++++++++++++++-------------------
8244 1 file changed, 25 insertions(+), 19 deletions(-)
8245
8246commit c60b25569d414bb73b705977a4dd342f8f9f1965
8247Author: Jia Tan <jiat0218@gmail.com>
8248Date:   2023-10-19 00:22:50 +0800
8249
8250    liblzma: Fix -fsanitize=address failure with crc_clmul functions.
8251
8252    After forcing crc_simd_body() to always be inlined it caused
8253    -fsanitize=address to fail for lzma_crc32_clmul() and
8254    lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added
8255    to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from
8256    crc_simd_body(). ASAN and inline functions behavior has changed over
8257    the years for GCC specifically, so while strictly required we will
8258    keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in
8259    case this becomes a requirement in the future.
8260
8261    Older GCC versions refuse to inline a function with ASAN if the
8262    caller and callee do not agree on sanitization flags
8263    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the
8264    function was forced to be inlined, it will not compile if the callee
8265    function has __no_sanitize_address__ but the caller doesn't.
8266
8267 src/liblzma/check/crc_clmul.c | 6 ++++++
8268 1 file changed, 6 insertions(+)
8269
8270commit 9a78971261bc67622cbd7dae02f6966968ac1393
8271Author: Lasse Collin <lasse.collin@tukaani.org>
8272Date:   2023-10-14 20:16:13 +0300
8273
8274    tuklib_integer: Update the CMake test for fast unaligned access.
8275
8276 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++----------
8277 1 file changed, 54 insertions(+), 15 deletions(-)
8278
8279commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4
8280Author: Lasse Collin <lasse.collin@tukaani.org>
8281Date:   2023-09-23 23:28:48 +0300
8282
8283    Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V.
8284
8285    PowerPC64LE wasn't tested but it seems like a safe change.
8286    POWER8 supports unaligned access in little endian mode. Testing
8287    on godbolt.org shows that GCC uses unaligned access by default.
8288
8289    The RISC-V macro __riscv_misaligned_fast is very new and not
8290    in any stable compiler release yet.
8291
8292    Documentation in INSTALL was updated to match.
8293
8294    Documentation about an autodetection bug when using ARM64 GCC
8295    with -mstrict-align was added to INSTALL.
8296
8297    CMake files weren't updated yet.
8298
8299 INSTALL              | 39 +++++++++++++++++++++++++++++++++++++--
8300 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++-------
8301 2 files changed, 64 insertions(+), 9 deletions(-)
8302
8303commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2
8304Author: Lasse Collin <lasse.collin@tukaani.org>
8305Date:   2023-10-14 17:56:59 +0300
8306
8307    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
8308
8309    In XZ Utils context this doesn't matter much because
8310    unaligned reads and writes aren't used in hot code
8311    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
8312
8313 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
8314 1 file changed, 189 insertions(+), 67 deletions(-)
8315
8316commit 6828242735cbf61b93d140383336e1e51a006f2d
8317Author: Lasse Collin <lasse.collin@tukaani.org>
8318Date:   2023-09-23 02:21:49 +0300
8319
8320    tuklib_integer: Add missing write64be and write64le fallback functions.
8321
8322 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
8323 1 file changed, 34 insertions(+)
8324
8325commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416
8326Author: Jia Tan <jiat0218@gmail.com>
8327Date:   2023-10-18 19:57:10 +0800
8328
8329    liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul().
8330
8331    After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul()
8332    has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the
8333    optimizations disabled.
8334
8335 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++---------------
8336 1 file changed, 15 insertions(+), 15 deletions(-)
8337
8338commit 5ce0f7a48bdf5c3b45430850a4487307afac6143
8339Author: Lasse Collin <lasse.collin@tukaani.org>
8340Date:   2023-10-18 14:30:00 +0300
8341
8342    liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc.
8343
8344 src/liblzma/check/crc_common.h | 4 +++-
8345 1 file changed, 3 insertions(+), 1 deletion(-)
8346
8347commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b
8348Author: Lasse Collin <lasse.collin@tukaani.org>
8349Date:   2023-10-17 21:53:11 +0300
8350
8351    liblzma: Include common.h in crc_common.h.
8352
8353    crc_common.h depends on common.h. The headers include common.h except
8354    when there is a reason to not do so.
8355
8356 src/liblzma/check/crc_clmul.c  | 1 -
8357 src/liblzma/check/crc_common.h | 3 +++
8358 2 files changed, 3 insertions(+), 1 deletion(-)
8359
8360commit e13b7947b92355c334edd594295d3a2c99c4bca1
8361Author: Jia Tan <jiat0218@gmail.com>
8362Date:   2023-10-18 01:23:26 +0800
8363
8364    liblzma: Add include guards to crc_common.h.
8365
8366 src/liblzma/check/crc_common.h | 5 +++++
8367 1 file changed, 5 insertions(+)
8368
8369commit 40abd88afcc61a8157fcd12d78d491caeb8e12be
8370Author: Jia Tan <jiat0218@gmail.com>
8371Date:   2023-10-18 22:50:25 +0800
8372
8373    liblzma: Add the crc_always_inline macro to crc_simd_body().
8374
8375    Forcing this to be inline has a significant speed improvement at the
8376    cost of a few repeated instructions. The compilers tested on did not
8377    inline this function since it is large and is used twice in the same
8378    translation unit.
8379
8380 src/liblzma/check/crc_clmul.c | 2 +-
8381 1 file changed, 1 insertion(+), 1 deletion(-)
8382
8383commit a5966c276bd6fa975f0389f8a8dc61393de750b0
8384Author: Jia Tan <jiat0218@gmail.com>
8385Date:   2023-10-18 22:48:19 +0800
8386
8387    liblzma: Create crc_always_inline macro.
8388
8389    This macro must be used instead of the inline keyword. On MSVC, it is
8390    a replacement for __forceinline which is an MSVC specific keyword that
8391    should not be used with inline (it will issue a warning if it is).
8392
8393    It does not use a build system check to determine if
8394    __attribute__((__always_inline__)) since all compilers that can use
8395    CLMUL extensions (except the special case for MSVC) should support this
8396    attribute. If this assumption is incorrect then it will result in a bug
8397    report instead of silently producing slow code.
8398
8399 src/liblzma/check/crc_common.h | 15 +++++++++++++++
8400 1 file changed, 15 insertions(+)
8401
8402commit 96b663f67c0e738a99ba8f35d9f4ced9add74544
8403Author: Jia Tan <jiat0218@gmail.com>
8404Date:   2023-10-14 13:23:23 +0800
8405
8406    liblzma: Refactor CRC comments.
8407
8408    A detailed description of the three dispatch methods was added. Also,
8409    duplicated comments now only appear in crc32_fast.c or were removed from
8410    both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c.
8411
8412 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++-------------
8413 src/liblzma/check/crc64_fast.c | 61 ++++++----------------------------------
8414 2 files changed, 53 insertions(+), 72 deletions(-)
8415
8416commit 8c0f9376f58c0696d5d6719705164d35542dd891
8417Author: Jia Tan <jiat0218@gmail.com>
8418Date:   2023-10-14 12:17:57 +0800
8419
8420    liblzma: Create crc_clmul.c.
8421
8422    Both crc32_clmul() and crc64_clmul() are now exported from
8423    crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This
8424    ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is
8425    not duplicated between crc32_fast.c and crc64_fast.c.
8426
8427    Also, it encapsulates the complexity of the CLMUL implementations into a
8428    single file and reduces the complexity of crc32_fast.c and crc64_fast.c.
8429    Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and
8430    crc_common.h.
8431
8432    During the conversion, various cleanups were applied to code (thanks to
8433    Lasse Collin) including:
8434
8435    - Require using semicolons with MASK_/L/H/LH macros.
8436    - Variable typing and const handling improvements.
8437    - Improvements to comments.
8438    - Fixes to the pragmas used.
8439    - Removed unneeded variables.
8440    - Whitespace improvements.
8441    - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling.
8442    - Silenced warnings and removed the need for some #pragmas
8443
8444 CMakeLists.txt                 |   6 +-
8445 configure.ac                   |   6 +-
8446 src/liblzma/check/Makefile.inc |   3 +
8447 src/liblzma/check/crc32_fast.c | 120 +-----------
8448 src/liblzma/check/crc64_fast.c | 128 +------------
8449 src/liblzma/check/crc_clmul.c  | 414 +++++++++++++++++++++++++++++++++++++++++
8450 src/liblzma/check/crc_common.h | 190 +------------------
8451 7 files changed, 444 insertions(+), 423 deletions(-)
8452
8453commit a3ebc2c516b09616638060806c841bd4bcf7bce3
8454Author: Jia Tan <jiat0218@gmail.com>
8455Date:   2023-10-14 10:23:03 +0800
8456
8457    liblzma: Define CRC_USE_IFUNC in crc_common.h.
8458
8459    When ifunc is supported, we can define a simpler macro instead of
8460    repeating the more complex check in both crc32_fast.c and crc64_fast.c.
8461
8462 src/liblzma/check/crc32_fast.c | 3 +--
8463 src/liblzma/check/crc64_fast.c | 3 +--
8464 src/liblzma/check/crc_common.h | 5 +++++
8465 3 files changed, 7 insertions(+), 4 deletions(-)
8466
8467commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17
8468Author: Hans Jansen <hansjansen162@outlook.com>
8469Date:   2023-10-12 19:37:01 +0200
8470
8471    liblzma: Added crc32_clmul to crc32_fast.c.
8472
8473 src/liblzma/check/crc32_fast.c  | 247 ++++++++++++++++++++++++++++++++++++++--
8474 src/liblzma/check/crc32_table.c |  19 +++-
8475 2 files changed, 255 insertions(+), 11 deletions(-)
8476
8477commit 93e6fb08b22c7c13be2dd1e7274fe78413436254
8478Author: Hans Jansen <hansjansen162@outlook.com>
8479Date:   2023-10-12 19:23:40 +0200
8480
8481    liblzma: Moved CLMUL CRC logic to crc_common.h.
8482
8483    crc64_fast.c was updated to use the code from crc_common.h instead.
8484
8485 src/liblzma/check/crc64_fast.c | 257 ++---------------------------------------
8486 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++-
8487 2 files changed, 240 insertions(+), 247 deletions(-)
8488
8489commit 233885a437f8b55a5c8442984ebc0aaa579e92de
8490Author: Hans Jansen <hansjansen162@outlook.com>
8491Date:   2023-10-12 19:07:50 +0200
8492
8493    liblzma: Rename crc_macros.h to crc_common.h.
8494
8495 CMakeLists.txt                                   | 2 +-
8496 src/liblzma/check/Makefile.inc                   | 2 +-
8497 src/liblzma/check/crc32_fast.c                   | 2 +-
8498 src/liblzma/check/crc64_fast.c                   | 2 +-
8499 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +-
8500 5 files changed, 5 insertions(+), 5 deletions(-)
8501
8502commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd
8503Author: Gabriela Gutierrez <gabigutierrez@google.com>
8504Date:   2023-09-26 15:55:13 +0000
8505
8506    CI: Bump and ref actions by commit SHA in windows-ci.yml
8507
8508    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.
8509
8510    It's important to make sure the SHA's are from the original repositories and not forks.
8511
8512    For reference:
8513
8514    https://github.com/msys2/setup-msys2/releases/tag/v2.20.1
8515    https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d
8516
8517    https://github.com/actions/checkout/releases/tag/v4.1.0
8518    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
8519
8520    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
8521    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
8522
8523    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
8524
8525 .github/workflows/windows-ci.yml | 6 +++---
8526 1 file changed, 3 insertions(+), 3 deletions(-)
8527
8528commit f28cc9bd481ce493da11f98c18526d324211599a
8529Author: Gabriela Gutierrez <gabigutierrez@google.com>
8530Date:   2023-09-26 14:35:08 +0000
8531
8532    CI: Bump and ref actions by commit SHA in ci.yml
8533
8534    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.
8535
8536    It's important to make sure the SHA's are from the original repositories and not forks.
8537
8538    For reference:
8539
8540    https://github.com/actions/checkout/releases/tag/v4.1.0
8541    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
8542
8543    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
8544    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
8545
8546    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
8547
8548 .github/workflows/ci.yml | 4 ++--
8549 1 file changed, 2 insertions(+), 2 deletions(-)
8550
8551commit f74f1740067b75042497edbfa6ea457ff75484b9
8552Author: Jia Tan <jiat0218@gmail.com>
8553Date:   2023-10-12 20:12:18 +0800
8554
8555    Build: Update visibility.m4 from Gnulib.
8556
8557    Updating from version 6 -> 8 from upstream. Declarations for variables
8558    and function bodies were added to avoid unnecessary failures with
8559    -Werror.
8560
8561 m4/visibility.m4 | 9 +++++++--
8562 1 file changed, 7 insertions(+), 2 deletions(-)
8563
8564commit 5c4bca521e6fb435898a0012b3276eee70a6dadf
8565Author: Lasse Collin <lasse.collin@tukaani.org>
8566Date:   2023-10-06 19:36:35 +0300
8567
8568    Update THANKS.
8569
8570 THANKS | 1 +
8571 1 file changed, 1 insertion(+)
8572
8573commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
8574Author: Lasse Collin <lasse.collin@tukaani.org>
8575Date:   2023-10-06 18:55:57 +0300
8576
8577    CMake/Windows: Fix when the windres workaround is applied.
8578
8579    CMake doesn't set WIN32 on CYGWIN but the workaround is
8580    probably needed on Cygwin too. Same for MSYS and MSYS2.
8581
8582    The workaround must not be used with Clang that is acting in
8583    MSVC mode. This fixes it by checking for the known environments
8584    that need the workaround instead of using "NOT MSVC".
8585
8586    Thanks to Martin Storsjö.
8587    https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431
8588
8589 CMakeLists.txt | 6 +++---
8590 1 file changed, 3 insertions(+), 3 deletions(-)
8591
8592commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d
8593Author: Jia Tan <jiat0218@gmail.com>
8594Date:   2023-09-29 22:11:54 +0800
8595
8596    CI: Disable CLANG64 MSYS2 environment until bug is resolved.
8597
8598    lld 17.0.1 searches for libraries to link first in the toolchain
8599    directories before the local directory when building. The is a problem
8600    for us because liblzma.a is installed in MSYS2 CLANG64 by default and
8601    xz.exe will thus use the installed library instead of the one being
8602    built.
8603
8604    This causes tests to fail when they are expecting features to be
8605    disabled. More importantly, it will compile xz.exe with an incorrect
8606    liblzma and could cause unexpected behavior by being unable to update
8607    liblzma code in static builds. The CLANG64 environment can be tested
8608    again once this is fixed.
8609
8610    Link to bug: https://github.com/llvm/llvm-project/issues/67779.
8611
8612 .github/workflows/windows-ci.yml | 8 +++++---
8613 1 file changed, 5 insertions(+), 3 deletions(-)
8614
8615commit 30d0c35327f3639cb11224872aa58fdbf0b1526e
8616Author: Jia Tan <jiat0218@gmail.com>
8617Date:   2023-09-29 20:14:39 +0800
8618
8619    CMake: Rename xz and man page symlink custom targets.
8620
8621    The Ninja Generator for CMake cannot have a custom target and its
8622    BYPRODUCTS have the same name. This has prevented Ninja builds on
8623    Unix-like systems since the xz symlinks were introduced in
8624    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
8625
8626 CMakeLists.txt | 6 +++---
8627 1 file changed, 3 insertions(+), 3 deletions(-)
8628
8629commit 506d03127a8565442b028ec991e1578124fd3025
8630Author: Jia Tan <jiat0218@gmail.com>
8631Date:   2023-09-29 19:58:44 +0800
8632
8633    CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator.
8634
8635    CMake is unable to guess the linker language for just a header file so
8636    it must be explicitly set.
8637
8638 CMakeLists.txt | 6 ++++++
8639 1 file changed, 6 insertions(+)
8640
8641commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f
8642Author: Lasse Collin <lasse.collin@tukaani.org>
8643Date:   2023-09-27 19:54:35 +0300
8644
8645    CMake: Fix Windows build with Clang/LLVM 17.
8646
8647    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
8648    the hack for GNU windres must now be used with llvm-windres too.
8649
8650    LLVM 16.0.6 has the old behavior and there likely won't be more
8651    16.x releases. So we can simply check for >= 17.0.0.
8652
8653    See also:
8654    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
8655
8656 CMakeLists.txt | 26 ++++++++++++++------------
8657 1 file changed, 14 insertions(+), 12 deletions(-)
8658
8659commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1
8660Author: Lasse Collin <lasse.collin@tukaani.org>
8661Date:   2023-09-26 21:47:13 +0300
8662
8663    liblzma: Update a comment.
8664
8665    The C standards don't allow an empty translation unit which can be
8666    avoided by declaring something, without exporting any symbols.
8667
8668    When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had
8669    a feeling that some specific toolchain somewhere didn't like
8670    empty object files (assembler or maybe "ar" complained) but
8671    I cannot find anything to confirm this now. Quite likely I
8672    remembered nonsense. I leave this here as a note to my future self. :-)
8673
8674 src/liblzma/check/crc64_table.c | 3 +--
8675 1 file changed, 1 insertion(+), 2 deletions(-)
8676
8677commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499
8678Author: Jia Tan <jiat0218@gmail.com>
8679Date:   2023-09-27 00:02:11 +0800
8680
8681    liblzma: Avoid compiler warning without creating extra symbol.
8682
8683    When the generic fast crc64 method is used, then we omit
8684    lzma_crc64_table[][]. Similar to
8685    d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings
8686    with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a
8687    never used typedef instead of an extra symbol.
8688
8689 src/liblzma/check/crc64_table.c | 3 +--
8690 1 file changed, 1 insertion(+), 2 deletions(-)
8691
8692commit 092d21db2e5eea19fe079264ce48c178989c7606
8693Author: Lasse Collin <lasse.collin@tukaani.org>
8694Date:   2023-09-26 17:24:15 +0300
8695
8696    Build: Update the comment about -Werror usage in checks.
8697
8698 configure.ac | 10 ++++++++--
8699 1 file changed, 8 insertions(+), 2 deletions(-)
8700
8701commit a37a2763383e6c204fe878e1416dd35e7711d3a9
8702Author: Lasse Collin <lasse.collin@tukaani.org>
8703Date:   2023-09-26 15:00:43 +0300
8704
8705    Build: Fix __attribute__((ifunc(...))) detection with clang -Wall.
8706
8707    Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic
8708    the two checks that need -Werror will still work.
8709
8710    At CMake side there is add_compile_options(-Wall -Wextra)
8711    but it didn't affect the -Werror tests. So with both Autotools
8712    and CMake only user-supplied CFLAGS could make the checks fail
8713    when they shouldn't.
8714
8715    This is not a full fix as things like -Wunused-macros in
8716    user-supplied CFLAGS will still cause problems with both
8717    GCC and Clang.
8718
8719 CMakeLists.txt | 8 ++++++++
8720 configure.ac   | 8 ++++++++
8721 2 files changed, 16 insertions(+)
8722
8723commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2
8724Author: Lasse Collin <lasse.collin@tukaani.org>
8725Date:   2023-09-26 13:51:31 +0300
8726
8727    Build: Fix underquoted AC_LANG_SOURCE.
8728
8729    It made no practical difference in this case.
8730
8731 configure.ac | 2 +-
8732 1 file changed, 1 insertion(+), 1 deletion(-)
8733
8734commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982
8735Author: Lasse Collin <lasse.collin@tukaani.org>
8736Date:   2023-09-26 13:14:37 +0300
8737
8738    Build: Silence two Autoconf warnings.
8739
8740    There were two uses of AC_COMPILE_IFELSE that didn't use
8741    AC_LANG_SOURCE and Autoconf warned about these. The omission
8742    had been intentional but it turned out that this didn't do
8743    what I thought it would.
8744
8745    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
8746    inserts all #defines that have been made with AC_DEFINE so
8747    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
8748    would mean that only the exact code included in the
8749    AC_COMPILE_IFELSE call would be compiled.
8750
8751    With C programs this is not true: the #defines get added without
8752    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
8753    Thus, with the C language at least, adding AC_LANG_SOURCE makes
8754    no other difference than silencing a warning from Autoconf. The
8755    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
8756    say that the #defines have been inserted since Autoconf 2.63b and
8757    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
8758    documented if one also reads the docs of macros that one isn't
8759    calling directly.)
8760
8761    Any extra code, including #defines, can cause problems for
8762    these two tests because these tests must use -Werror.
8763    CC=clang CFLAGS=-Weverything is the most extreme example.
8764    It enables -Wreserved-macro-identifier which warns about
8765    #define __EXTENSIONS__ 1 because it begins with two underscores.
8766    It's possible to write a test file that passes -Weverything but
8767    it becomes impossible when Autoconf inserts confdefs.h.
8768
8769    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
8770    A different solution is needed for -Werror tests.
8771
8772 configure.ac | 9 ++++-----
8773 1 file changed, 4 insertions(+), 5 deletions(-)
8774
8775commit 519e47c2818acde571fadc79551294527fe6cc22
8776Author: Jia Tan <jiat0218@gmail.com>
8777Date:   2023-09-26 01:17:11 +0800
8778
8779    CMake: Remove accidental extra newline.
8780
8781 CMakeLists.txt | 1 -
8782 1 file changed, 1 deletion(-)
8783
8784commit bbb42412da6a02705ba3e668e90840c2683e4e67
8785Author: Jia Tan <jiat0218@gmail.com>
8786Date:   2023-09-26 00:47:26 +0800
8787
8788    Build: Remove Gnulib dependency from tests.
8789
8790    The tests do not use any Gnulib replacements so they do not need to link
8791    libgnu.a or have /lib in the include path.
8792
8793 tests/Makefile.am | 7 +------
8794 1 file changed, 1 insertion(+), 6 deletions(-)
8795
8796commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa
8797Author: Jia Tan <jiat0218@gmail.com>
8798Date:   2023-09-26 00:43:43 +0800
8799
8800    CMake: Remove /lib from tests include path.
8801
8802    The tests never included anything from /lib, so this was not needed.
8803
8804 CMakeLists.txt | 1 -
8805 1 file changed, 1 deletion(-)
8806
8807commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f
8808Author: Jia Tan <jiat0218@gmail.com>
8809Date:   2023-09-24 22:10:41 +0800
8810
8811    Scripts: Change quoting style from `...' to '...'.
8812
8813 src/scripts/xzdiff.in | 2 +-
8814 src/scripts/xzgrep.in | 2 +-
8815 2 files changed, 2 insertions(+), 2 deletions(-)
8816
8817commit eaebdef4d4de3c088b0905f42626b74e0d23abf3
8818Author: Jia Tan <jiat0218@gmail.com>
8819Date:   2023-09-24 22:10:18 +0800
8820
8821    xz: Change quoting style from `...' to '...'.
8822
8823 src/xz/args.c    |  6 +++---
8824 src/xz/file_io.c |  2 +-
8825 src/xz/main.c    |  4 ++--
8826 src/xz/message.c | 14 +++++++-------
8827 src/xz/options.c |  2 +-
8828 src/xz/suffix.c  |  2 +-
8829 src/xz/util.c    |  6 +++---
8830 7 files changed, 18 insertions(+), 18 deletions(-)
8831
8832commit f6667702bf075a05fbe336dbf3576ad1a82ec645
8833Author: Jia Tan <jiat0218@gmail.com>
8834Date:   2023-09-24 22:09:47 +0800
8835
8836    liblzma: Change quoting style from `...' to '...'.
8837
8838    This was done for both internal and API headers.
8839
8840 src/liblzma/api/lzma/base.h            | 18 +++++++++---------
8841 src/liblzma/api/lzma/container.h       | 10 +++++-----
8842 src/liblzma/api/lzma/filter.h          |  6 +++---
8843 src/liblzma/api/lzma/index.h           |  8 ++++----
8844 src/liblzma/api/lzma/lzma12.h          |  2 +-
8845 src/liblzma/lz/lz_encoder.h            |  2 +-
8846 src/liblzma/rangecoder/range_decoder.h |  2 +-
8847 7 files changed, 24 insertions(+), 24 deletions(-)
8848
8849commit be012b8097a4eaee335b51357d6befa745f753ce
8850Author: Jia Tan <jiat0218@gmail.com>
8851Date:   2023-09-24 22:09:16 +0800
8852
8853    Build: Change quoting style from `...' to '...'.
8854
8855 configure.ac          | 18 +++++++++---------
8856 dos/config.h          |  6 +++---
8857 m4/getopt.m4          |  2 +-
8858 m4/tuklib_progname.m4 |  2 +-
8859 windows/build.bash    |  2 +-
8860 5 files changed, 15 insertions(+), 15 deletions(-)
8861
8862commit ce162db07f03495bd333696e66883c8f36abdc1e
8863Author: Jia Tan <jiat0218@gmail.com>
8864Date:   2023-09-24 22:05:02 +0800
8865
8866    Docs: Change quoting style from `...' to '...'.
8867
8868    These days the ` and ' do not look symmetric. This quoting style has
8869    been changed in various apps over the years including the GNU tools.
8870
8871 INSTALL                         |  6 +++---
8872 doc/examples/01_compress_easy.c |  2 +-
8873 doc/examples/11_file_info.c     | 16 ++++++++--------
8874 3 files changed, 12 insertions(+), 12 deletions(-)
8875
8876commit db17656721e43939bfa4ec13506e7c76f4b86da6
8877Author: Jia Tan <jiat0218@gmail.com>
8878Date:   2023-09-24 21:25:01 +0800
8879
8880    lib: Silence -Wsign-conversion in getopt.c.
8881
8882 lib/getopt.c | 6 +++---
8883 1 file changed, 3 insertions(+), 3 deletions(-)
8884
8885commit a6234f677d66888f435010bc0b67de6a32fefcf6
8886Author: Jia Tan <jiat0218@gmail.com>
8887Date:   2023-09-24 20:48:52 +0800
8888
8889    Build: Update getopt.m4 from Gnulib.
8890
8891    This file was modified from upstream since we do not need to replace
8892    getopt() and can avoid complexity and feature tests.
8893
8894 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------
8895 1 file changed, 39 insertions(+), 40 deletions(-)
8896
8897commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10
8898Author: Jia Tan <jiat0218@gmail.com>
8899Date:   2023-09-26 00:09:53 +0800
8900
8901    CMake: Add /lib to include path.
8902
8903 CMakeLists.txt | 5 +++++
8904 1 file changed, 5 insertions(+)
8905
8906commit 01804a0b4b64e0f33568e947e0579263808c59d3
8907Author: Jia Tan <jiat0218@gmail.com>
8908Date:   2023-09-24 20:36:34 +0800
8909
8910    CMake: Update libgnu target with new header files.
8911
8912 CMakeLists.txt | 5 +++++
8913 1 file changed, 5 insertions(+)
8914
8915commit d34558388fe1d8929f6478d61dc322eb4f2900af
8916Author: Jia Tan <jiat0218@gmail.com>
8917Date:   2023-09-23 00:47:52 +0800
8918
8919    lib: Update Makefile.am for new header files.
8920
8921 lib/Makefile.am | 12 +++++++++++-
8922 1 file changed, 11 insertions(+), 1 deletion(-)
8923
8924commit 52bf644bdf536e20fcc743b712cede135e05eec5
8925Author: Jia Tan <jiat0218@gmail.com>
8926Date:   2023-09-24 20:34:03 +0800
8927
8928    lib: Update getopt1.c from Gnulib.
8929
8930    The only difference was maintaining the conditional inclusion for
8931    config.h.
8932
8933 lib/getopt1.c | 56 ++++++++++++++++++++++----------------------------------
8934 1 file changed, 22 insertions(+), 34 deletions(-)
8935
8936commit 7e884c00d0093c38339f17fb1d280eec493f42ca
8937Author: Jia Tan <jiat0218@gmail.com>
8938Date:   2023-09-23 03:27:00 +0800
8939
8940    lib: Update getopt.in.h from Gnulib with modifications.
8941
8942    We can still avoid modifying the contents of this file during
8943    configuration to simplify the build systems. Gnulib added replacements
8944    for inclusions guards for Cygwin. Cygwin should not need getopt_long
8945    replacement so this feature can be omitted.
8946
8947    <unistd.h> is conditionally included to avoid MSVC since it is not
8948    available.
8949
8950    The definition for _GL_ARG_NONNULL was also copied into this file from
8951    Gnulib since this stage is usually done during gnulib-tool.
8952
8953 lib/getopt.in.h | 228 +++++++-------------------------------------------------
8954 1 file changed, 29 insertions(+), 199 deletions(-)
8955
8956commit cff05f82066ca3ce9425dafdb086325a8eef8de3
8957Author: Jia Tan <jiat0218@gmail.com>
8958Date:   2023-09-23 00:31:55 +0800
8959
8960    lib: Update getopt_int.h from Gnulib.
8961
8962 lib/getopt_int.h | 109 ++++++++++++++++++++++++-------------------------------
8963 1 file changed, 48 insertions(+), 61 deletions(-)
8964
8965commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024
8966Author: Jia Tan <jiat0218@gmail.com>
8967Date:   2023-09-23 00:27:23 +0800
8968
8969    lib: Update getopt.c from Gnulib with modifications.
8970
8971    The code maintains the prior modifications of conditionally including
8972    config.h and disabling NLS support.
8973
8974    _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED
8975    is only used for these two parameters so its simpler than having to
8976    define it.
8977
8978 lib/getopt.c | 1134 +++++++++++++++++++---------------------------------------
8979 1 file changed, 377 insertions(+), 757 deletions(-)
8980
8981commit 56b42be7287844db20b3a3bc1372c6ae8c040d63
8982Author: Jia Tan <jiat0218@gmail.com>
8983Date:   2023-09-23 00:18:56 +0800
8984
8985    lib: Add getopt-cdefs.h for getopt_long update.
8986
8987    This was modified slightly from Gnulib. In Gnulib, it expects the
8988    @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H
8989    on systems that have it and avoid copying another file into the build
8990    directory. Since we are not using gnulib-tool, copying extra files
8991    requires extra build system updates (and special handling with CMake) so
8992    we should avoid when possible.
8993
8994 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
8995 1 file changed, 70 insertions(+)
8996
8997commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196
8998Author: Jia Tan <jiat0218@gmail.com>
8999Date:   2023-09-23 00:15:25 +0800
9000
9001    lib: Copy new header files from Gnulib without modification.
9002
9003    The getopt related files have changed from Gnulib by splitting up
9004    getopt.in.h into more modular header files. We could have kept
9005    everything in just getopt.in.h, but this will help us continue to update
9006    in the future.
9007
9008 lib/getopt-core.h     | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++
9009 lib/getopt-ext.h      | 77 +++++++++++++++++++++++++++++++++++++++++
9010 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++
9011 lib/getopt-pfx-ext.h  | 70 +++++++++++++++++++++++++++++++++++++
9012 4 files changed, 309 insertions(+)
9013
9014commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93
9015Author: Lasse Collin <lasse.collin@tukaani.org>
9016Date:   2023-09-22 21:16:52 +0300
9017
9018    Windows: Update the version requirement comments from Win95 to W2k.
9019
9020 windows/README-Windows.txt | 10 ++++------
9021 windows/build.bash         |  6 +++---
9022 2 files changed, 7 insertions(+), 9 deletions(-)
9023
9024commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1
9025Author: Lasse Collin <lasse.collin@tukaani.org>
9026Date:   2023-09-22 21:12:54 +0300
9027
9028    tuklib_physmem: Comment out support for Windows versions older than 2000.
9029
9030 src/common/tuklib_physmem.c | 20 +++++++++-----------
9031 1 file changed, 9 insertions(+), 11 deletions(-)
9032
9033commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a
9034Author: Lasse Collin <lasse.collin@tukaani.org>
9035Date:   2023-09-24 16:32:32 +0300
9036
9037    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
9038
9039 src/common/sysdefs.h | 10 +++++++++-
9040 1 file changed, 9 insertions(+), 1 deletion(-)
9041
9042commit 2a9929af0ab7e6c0ab725565034afe3293e51d71
9043Author: Lasse Collin <lasse.collin@tukaani.org>
9044Date:   2023-09-22 02:33:29 +0300
9045
9046    xz: Windows: Don't (de)compress to special files like "con" or "nul".
9047
9048    Before this commit, the following writes "foo" to the
9049    console and deletes the input file:
9050
9051        echo foo | xz > con_xz
9052        xz --suffix=_xz --decompress con_xz
9053
9054    It cannot happen without --suffix because names like con.xz
9055    are also special and so attempting to decompress con.xz
9056    (or compress con to con.xz) will already fail when opening
9057    the input file.
9058
9059    Similar thing is possible when compressing. The following
9060    writes to "nul" and the input file "n" is deleted.
9061
9062        echo foo | xz > n
9063        xz --suffix=ul n
9064
9065    Now xz checks if the destination is a special file before
9066    continuing. DOS/DJGPP version had a check for this but
9067    Windows (and OS/2) didn't.
9068
9069 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
9070 1 file changed, 28 insertions(+), 7 deletions(-)
9071
9072commit 01311b81f03cce1c0ce847a3d556f84dbd439343
9073Author: Lasse Collin <lasse.collin@tukaani.org>
9074Date:   2023-09-21 20:42:52 +0300
9075
9076    CMake: Wrap two overlong lines that are possible to wrap.
9077
9078 CMakeLists.txt | 6 ++++--
9079 1 file changed, 4 insertions(+), 2 deletions(-)
9080
9081commit 152d0771ddd0cffcac9042ad1a66f110d228eee2
9082Author: Lasse Collin <lasse.collin@tukaani.org>
9083Date:   2023-09-21 20:36:31 +0300
9084
9085    CMake: Add a comment about threads on Cygwin.
9086
9087 CMakeLists.txt | 1 +
9088 1 file changed, 1 insertion(+)
9089
9090commit 6df988cceffaa3100b428ed816fad334935b27bf
9091Author: Lasse Collin <lasse.collin@tukaani.org>
9092Date:   2023-09-12 23:53:25 +0300
9093
9094    MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt.
9095
9096    CMake is now the preferred build file generator when building
9097    with MSVC.
9098
9099 windows/INSTALL-MSVC.txt           |  37 ++--
9100 windows/vs2013/config.h            | 157 ---------------
9101 windows/vs2013/liblzma.vcxproj     | 363 ---------------------------------
9102 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------
9103 windows/vs2013/xz_win.sln          |  48 -----
9104 windows/vs2017/config.h            | 157 ---------------
9105 windows/vs2017/liblzma.vcxproj     | 363 ---------------------------------
9106 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------
9107 windows/vs2017/xz_win.sln          |  48 -----
9108 windows/vs2019/config.h            | 157 ---------------
9109 windows/vs2019/liblzma.vcxproj     | 364 ---------------------------------
9110 windows/vs2019/liblzma_dll.vcxproj | 399 -------------------------------------
9111 windows/vs2019/xz_win.sln          |  51 -----
9112 13 files changed, 12 insertions(+), 2928 deletions(-)
9113
9114commit edd563daf0da1d00018684614803c77ab62efcd6
9115Author: Lasse Collin <lasse.collin@tukaani.org>
9116Date:   2023-09-21 19:17:40 +0300
9117
9118    CMake: Require VS2015 or later for building xzdec.
9119
9120    xzdec might build with VS2013 but it hasn't been tested.
9121    It was never supported before and VS2013 is old anyway
9122    so for simplicity only liblzma is supported with VS2013.
9123
9124 CMakeLists.txt | 2 +-
9125 1 file changed, 1 insertion(+), 1 deletion(-)
9126
9127commit daea64d158a7151ca6c255a0e4554c6d521cd589
9128Author: Lasse Collin <lasse.collin@tukaani.org>
9129Date:   2023-09-12 23:43:49 +0300
9130
9131    CMake: Allow building xz with Visual Studio 2015 and later.
9132
9133    Building the command line tools xz and xzdec with the combination
9134    of CMake + Visual Studio 2015/2017/2019/2022 works now.
9135
9136    VS2013 update 2 should still be able to build liblzma.
9137    VS2013 cannot build the xz command line tool because xz
9138    needs snprintf() that roughly conforms to C99.
9139    VS2013 is old and no extra code will be added to support it.
9140
9141    Thanks to Kelvin Lee and Jia Tan for testing.
9142
9143 CMakeLists.txt | 2 +-
9144 1 file changed, 1 insertion(+), 1 deletion(-)
9145
9146commit 8c2d197c940d246849b2ec48109bb22e54036927
9147Author: Lasse Collin <lasse.collin@tukaani.org>
9148Date:   2023-09-12 23:34:31 +0300
9149
9150    MSVC: #define inline and restrict only when needed.
9151
9152    This also drops the check for _WIN32 as that shouldn't be needed.
9153
9154 src/common/sysdefs.h | 13 ++++++++-----
9155 1 file changed, 8 insertions(+), 5 deletions(-)
9156
9157commit af66cd585902045e5689a0418103ec81f19f1d0a
9158Author: Lasse Collin <lasse.collin@tukaani.org>
9159Date:   2023-09-12 22:16:56 +0300
9160
9161    CMake: Add support for replacement getopt_long (lib/getopt*).
9162
9163    Thanks to Jia Tan for the initial work. I added the libgnu target
9164    and made a few related minor edits.
9165
9166 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
9167 1 file changed, 47 insertions(+), 7 deletions(-)
9168
9169commit e3288fdb45c580cb849f6799cf419c4922004ae5
9170Author: Lasse Collin <lasse.collin@tukaani.org>
9171Date:   2023-09-12 21:12:34 +0300
9172
9173    CMake: Bump maximum policy version to 3.27.
9174
9175    There are several new policies. CMP0149 may affect the Windows SDK
9176    version that CMake will choose by default. The new behavior is more
9177    predictable, always choosing the latest SDK version by default.
9178
9179    The other new policies shouldn't affect this package.
9180
9181 CMakeLists.txt | 2 +-
9182 1 file changed, 1 insertion(+), 1 deletion(-)
9183
9184commit aff1b479c7b168652bd20305ceed4317d5db6661
9185Author: Lasse Collin <lasse.collin@tukaani.org>
9186Date:   2023-09-12 20:55:10 +0300
9187
9188    lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined.
9189
9190    The CMake-based build doesn't use config.h.
9191
9192    Up-to-date getopt_long in Gnulib is LGPLv2 so at some
9193    point it could be included in XZ Utils too but for now
9194    this commit is enough to make CMake-based build possible.
9195
9196 lib/getopt.c  | 4 +++-
9197 lib/getopt1.c | 4 +++-
9198 2 files changed, 6 insertions(+), 2 deletions(-)
9199
9200commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5
9201Author: Lasse Collin <lasse.collin@tukaani.org>
9202Date:   2023-09-08 19:08:57 +0300
9203
9204    Doxygen: Add more C macro names to PREDEFINED.
9205
9206 doxygen/Doxyfile | 7 +++++--
9207 1 file changed, 5 insertions(+), 2 deletions(-)
9208
9209commit ee7709bae53637e1765ce142ef102914f1423cb5
9210Author: Lasse Collin <lasse.collin@tukaani.org>
9211Date:   2023-09-11 18:47:26 +0300
9212
9213    liblzma: Move a few __attribute__ uses in function declarations.
9214
9215    The API headers have many attributes but these were left
9216    as is for now.
9217
9218 src/liblzma/common/common.c    | 6 ++++--
9219 src/liblzma/common/common.h    | 8 ++++----
9220 src/liblzma/common/memcmplen.h | 3 ++-
9221 3 files changed, 10 insertions(+), 7 deletions(-)
9222
9223commit 217958d88713b5dc73d366d24dd64b2b311b86fe
9224Author: Lasse Collin <lasse.collin@tukaani.org>
9225Date:   2023-09-11 19:03:35 +0300
9226
9227    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
9228
9229    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
9230    must be at the beginning of declaration (before "extern" or
9231    "static", and even before any GNU C's __attribute__).
9232
9233    This commit also moves all other function attributes to
9234    the beginning of function declarations. "extern" is kept
9235    at the beginning of a line so the attributes are listed on
9236    separate lines before "extern" or "static".
9237
9238 src/lzmainfo/lzmainfo.c |  6 ++++--
9239 src/xz/coder.c          |  3 ++-
9240 src/xz/hardware.h       |  3 ++-
9241 src/xz/message.h        | 30 +++++++++++++++++-------------
9242 src/xz/options.c        |  3 ++-
9243 src/xz/util.h           |  8 ++++----
9244 src/xzdec/xzdec.c       |  9 ++++++---
9245 7 files changed, 37 insertions(+), 25 deletions(-)
9246
9247commit 18a66fbac031c98f9c2077fc88846e4d07849197
9248Author: Lasse Collin <lasse.collin@tukaani.org>
9249Date:   2023-09-11 18:53:31 +0300
9250
9251    Remove incorrect uses of __attribute__((__malloc__)).
9252
9253    xrealloc() is obviously incorrect, modern GCC docs even
9254    mention realloc() as an example where this attribute
9255    cannot be used.
9256
9257    liblzma's lzma_alloc() and lzma_alloc_zero() would be
9258    correct uses most of the time but custom allocators
9259    may use a memory pool or otherwise hold the pointer
9260    so aliasing issues could happen in theory.
9261
9262    The xstrdup() case likely was correct but I removed it anyway.
9263    Now there are no __malloc__ attributes left in the code.
9264    The allocations aren't in hot paths so this should make
9265    no practical difference.
9266
9267 src/liblzma/common/common.c | 4 ++--
9268 src/liblzma/common/common.h | 4 ++--
9269 src/xz/util.h               | 4 ++--
9270 3 files changed, 6 insertions(+), 6 deletions(-)
9271
9272commit 74b0e900c92d5b222b36f474f1efa431f8e262f7
9273Author: Lasse Collin <lasse.collin@tukaani.org>
9274Date:   2023-09-08 18:41:25 +0300
9275
9276    Build: Omit -Wc99-c11-compat since it warns about _Noreturn.
9277
9278 configure.ac | 1 -
9279 1 file changed, 1 deletion(-)
9280
9281commit 90c94dddfd57b7d744bfad64c54e10d15778144b
9282Author: Lasse Collin <lasse.collin@tukaani.org>
9283Date:   2023-09-08 18:19:26 +0300
9284
9285    tuklib: Update tuklib_attr_noreturn for C11/C17 and C23.
9286
9287    This makes no difference for GCC or Clang as they support
9288    GNU C's __attribute__((__noreturn__)) but this helps with MSVC:
9289
9290      - VS 2019 version 16.7 and later support _Noreturn if the
9291        options /std:c11 or /std:c17 are used. This gets handled
9292        with the check for __STDC_VERSION__ >= 201112.
9293
9294      - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used.
9295
9296    C23 will deprecate _Noreturn (and <stdnoreturn.h>)
9297    for [[noreturn]]. This commit anticipates that but
9298    the final __STDC_VERSION__ value isn't known yet.
9299
9300 src/common/tuklib_common.h | 22 +++++++++++++++++++++-
9301 src/common/tuklib_exit.h   |  4 ++--
9302 2 files changed, 23 insertions(+), 3 deletions(-)
9303
9304commit 189f72581329ab281ad6af37f60135910cb1b146
9305Author: Lasse Collin <lasse.collin@tukaani.org>
9306Date:   2023-09-11 17:22:44 +0300
9307
9308    Update THANKS.
9309
9310 THANKS | 1 +
9311 1 file changed, 1 insertion(+)
9312
9313commit 79334e7f20f2bf9e0de095835b48868f1238f584
9314Author: Lasse Collin <lasse.collin@tukaani.org>
9315Date:   2023-09-05 22:42:10 +0300
9316
9317    MSVC: xz: Make file_io.c and file_io.h compatible with MSVC.
9318
9319    Thanks to Kelvin Lee for the original patches
9320    and testing the modifications I made.
9321
9322 src/xz/file_io.c | 26 ++++++++++++++++++++++++++
9323 src/xz/file_io.h | 10 ++++++++++
9324 2 files changed, 36 insertions(+)
9325
9326commit c660b8d78b7bda43b12b285550d8c70e8ccec698
9327Author: Lasse Collin <lasse.collin@tukaani.org>
9328Date:   2023-09-05 21:33:35 +0300
9329
9330    MSVC: xz: Use GetTickCount64() to implement mytime_now().
9331
9332    It's available since Windows Vista.
9333
9334 src/xz/mytime.c | 11 +++++++++--
9335 1 file changed, 9 insertions(+), 2 deletions(-)
9336
9337commit 5c6f892d411670e3060f4bc309402617a209e57c
9338Author: Kelvin Lee <kiyolee@gmail.com>
9339Date:   2023-09-05 15:05:09 +0300
9340
9341    MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c.
9342
9343 src/xz/suffix.c | 10 ++++++++--
9344 1 file changed, 8 insertions(+), 2 deletions(-)
9345
9346commit e241051f50044259d174e8b4633dd9a1c4478408
9347Author: Kelvin Lee <kiyolee@gmail.com>
9348Date:   2023-09-05 15:01:10 +0300
9349
9350    MSVC: xz: Use _isatty() from <io.h> to implement isatty().
9351
9352 src/xz/message.c | 5 +++++
9353 src/xz/util.c    | 5 +++++
9354 2 files changed, 10 insertions(+)
9355
9356commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
9357Author: Kelvin Lee <kiyolee@gmail.com>
9358Date:   2023-09-05 15:10:31 +0300
9359
9360    MSVC: xz: Use _fileno() instead of fileno().
9361
9362 src/xz/private.h | 4 ++++
9363 1 file changed, 4 insertions(+)
9364
9365commit c4edd367678e6a38c42b149856159bf417da7fe1
9366Author: Kelvin Lee <kiyolee@gmail.com>
9367Date:   2023-09-05 15:00:07 +0300
9368
9369    MSVC: xzdec: Use _fileno and _setmode.
9370
9371 src/xzdec/xzdec.c | 4 ++++
9372 1 file changed, 4 insertions(+)
9373
9374commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0
9375Author: Kelvin Lee <kiyolee@gmail.com>
9376Date:   2023-09-05 14:37:50 +0300
9377
9378    MSVC: Don't #include <unistd.h>.
9379
9380 lib/getopt.c      | 4 +++-
9381 lib/getopt.in.h   | 4 +++-
9382 src/xz/private.h  | 5 ++++-
9383 src/xzdec/xzdec.c | 5 ++++-
9384 4 files changed, 14 insertions(+), 4 deletions(-)
9385
9386commit adef92f23563a2cc088b31ddee9040ecc96bc996
9387Author: Lasse Collin <lasse.collin@tukaani.org>
9388Date:   2023-09-19 14:03:45 +0300
9389
9390    Update THANKS.
9391
9392 THANKS | 1 +
9393 1 file changed, 1 insertion(+)
9394
9395commit 953e775941a25bfcfa353f802b13e66acb1edf2c
9396Author: Jia Tan <jiat0218@gmail.com>
9397Date:   2023-09-14 21:13:23 +0800
9398
9399    CI: Enable CLMUL in address sanitization test.
9400
9401    The crc64_clmul() function should be ignored by the address sanitizer
9402    now so these builds should still pass.
9403
9404 .github/workflows/ci.yml | 12 ++++--------
9405 1 file changed, 4 insertions(+), 8 deletions(-)
9406
9407commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77
9408Author: Lasse Collin <lasse.collin@tukaani.org>
9409Date:   2023-09-14 16:35:46 +0300
9410
9411    Update THANKS.
9412
9413 THANKS | 1 +
9414 1 file changed, 1 insertion(+)
9415
9416commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
9417Author: Lasse Collin <lasse.collin@tukaani.org>
9418Date:   2023-09-14 16:34:07 +0300
9419
9420    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
9421
9422    Thanks to Agostino Sarubbo.
9423    Fixes: https://github.com/tukaani-project/xz/issues/62
9424
9425 src/liblzma/check/crc64_fast.c | 8 ++++++++
9426 1 file changed, 8 insertions(+)
9427
9428commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08
9429Author: Jia Tan <jiat0218@gmail.com>
9430Date:   2023-09-12 22:36:12 +0800
9431
9432    CMake: Fix time.h checks not running on second CMake run.
9433
9434    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
9435    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
9436    for librt being needed to provide HAVE_CLOCK_GETTIME was also
9437    simplified.
9438
9439 CMakeLists.txt | 18 ++++++++++--------
9440 1 file changed, 10 insertions(+), 8 deletions(-)
9441
9442commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6
9443Author: Jia Tan <jiat0218@gmail.com>
9444Date:   2023-09-12 22:34:06 +0800
9445
9446    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
9447
9448    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
9449    added as a compile definition even if the check for it failed.
9450
9451 CMakeLists.txt | 8 +++-----
9452 1 file changed, 3 insertions(+), 5 deletions(-)
9453
9454commit eccf12866527b8d24c7d7f92f755142be8ef9b11
9455Author: Lasse Collin <lasse.collin@tukaani.org>
9456Date:   2023-08-31 19:50:05 +0300
9457
9458    xz: Refactor thousand separator detection and disable it on MSVC.
9459
9460    Now the two variations of the format strings are created with
9461    a macro, and the whole detection code can be easily disabled
9462    on platforms where thousand separator formatting is known to
9463    not work (MSVC has no support, and on DJGPP 2.05 it can have
9464    problems in some cases).
9465
9466 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
9467 1 file changed, 45 insertions(+), 44 deletions(-)
9468
9469commit f7093cd9d130477c234b40aeda613964171f8f21
9470Author: Lasse Collin <lasse.collin@tukaani.org>
9471Date:   2023-08-31 18:14:43 +0300
9472
9473    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
9474
9475    SSIZE_MAX isn't readily available on MSVC. Removing it means
9476    that there is one thing less to worry when porting to MSVC.
9477
9478 src/xz/file_io.c | 5 ++---
9479 src/xz/file_io.h | 4 ++--
9480 2 files changed, 4 insertions(+), 5 deletions(-)
9481
9482commit 74c3449d8b816a724b12ebce7417e00fb597309a
9483Author: Jia Tan <jiat0218@gmail.com>
9484Date:   2023-08-28 23:14:45 +0800
9485
9486    Tests: Improve invalid unpadded size check in test_lzma_index_append().
9487
9488    This check was extended to test the code added to fix a failing assert
9489    in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
9490
9491 tests/test_index.c | 26 +++++++++++++++++++++++---
9492 1 file changed, 23 insertions(+), 3 deletions(-)
9493
9494commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336
9495Author: Jia Tan <jiat0218@gmail.com>
9496Date:   2023-08-28 21:54:41 +0800
9497
9498    Tests: Improve comments in test_index.c.
9499
9500 tests/test_index.c | 6 +++---
9501 1 file changed, 3 insertions(+), 3 deletions(-)
9502
9503commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b
9504Author: Jia Tan <jiat0218@gmail.com>
9505Date:   2023-08-28 21:52:54 +0800
9506
9507    Update THANKS.
9508
9509 THANKS | 1 +
9510 1 file changed, 1 insertion(+)
9511
9512commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
9513Author: Jia Tan <jiat0218@gmail.com>
9514Date:   2023-08-28 21:50:16 +0800
9515
9516    liblzma: Update assert in vli_ceil4().
9517
9518    The argument to vli_ceil4() should always guarantee the return value
9519    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
9520    are invalid arguments. All uses of the function ensure this so the
9521    assert is updated to match this.
9522
9523 src/liblzma/common/index.h | 2 +-
9524 1 file changed, 1 insertion(+), 1 deletion(-)
9525
9526commit ae5c07b22a6b3766b84f409f1b6b5c100469068a
9527Author: Jia Tan <jiat0218@gmail.com>
9528Date:   2023-08-28 21:31:25 +0800
9529
9530    liblzma: Add overflow check for Unpadded size in lzma_index_append().
9531
9532    This was not a security bug since there was no path to overflow
9533    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
9534    The bug was discovered by a failing assert() in vli_ceil4() when called
9535    from index_file_size() when unpadded_sum (the sum of the compressed size
9536    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
9537
9538    Previously, the unpadded_size parameter was checked to be not greater
9539    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
9540    added.
9541
9542    This could not have caused an integer overflow in index_file_size() when
9543    called by lzma_index_append(). The calculation for file_size breaks down
9544    into the sum of:
9545
9546    - Compressed base from all previous Streams
9547    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
9548      footer)
9549    - stream_padding (can be set by lzma_index_stream_padding())
9550    - Compressed base from the current Stream
9551    - Unpadded size (parameter to lzma_index_append())
9552
9553    The sum of everything except for Unpadded size must be less than
9554    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
9555    that can set these values including lzma_index_stream_padding(),
9556    lzma_index_append(), and lzma_index_cat(). The maximum value for
9557    Unpadded size is enforced by lzma_index_append() to be less than or
9558    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
9559    LZMA_VLI_MAX is half of UINT64_MAX.
9560
9561    Thanks to Joona Kannisto for reporting this.
9562
9563 src/liblzma/common/index.c | 6 ++++++
9564 1 file changed, 6 insertions(+)
9565
9566commit 1057765aaabfe0f1397b8094531846655376ae38
9567Author: Jia Tan <jiat0218@gmail.com>
9568Date:   2023-08-28 22:18:29 +0800
9569
9570    Translations: Update the Esperanto translation.
9571
9572 po/eo.po | 4 ++--
9573 1 file changed, 2 insertions(+), 2 deletions(-)
9574
9575commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856
9576Author: Jia Tan <jiat0218@gmail.com>
9577Date:   2023-08-26 20:10:23 +0800
9578
9579    Translations: Update the Esperanto translation.
9580
9581 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
9582 1 file changed, 29 insertions(+), 18 deletions(-)
9583
9584commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3
9585Author: Jia Tan <jiat0218@gmail.com>
9586Date:   2023-08-09 20:55:36 +0800
9587
9588    Docs: Update INSTALL for --enable-threads method win95.
9589
9590    The Autotools build allows win95 threads and --enable-small together now
9591    if the compiler supports __attribute__((__constructor__)).
9592
9593 INSTALL | 6 ++++--
9594 1 file changed, 4 insertions(+), 2 deletions(-)
9595
9596commit 356ad5b26b4196f085ce3afa1869154ca81faad8
9597Author: Jia Tan <jiat0218@gmail.com>
9598Date:   2023-08-09 20:54:15 +0800
9599
9600    CMake: Conditionally allow win95 threads and --enable-small.
9601
9602 CMakeLists.txt | 28 ++++++++++++++++++++--------
9603 1 file changed, 20 insertions(+), 8 deletions(-)
9604
9605commit de574404c4c2f87aca049f232c38526e3ce092aa
9606Author: Jia Tan <jiat0218@gmail.com>
9607Date:   2023-08-09 20:35:16 +0800
9608
9609    Build: Conditionally allow win95 threads and --enable-small.
9610
9611    When the compiler supports __attribute__((__constructor__))
9612    mythread_once() is never used, even with --enable-small. A configuration
9613    with win95 threads and --enable-small will compile and be thread safe so
9614    it can be allowed.
9615
9616    This isn't a very common configuration since MSVC does not support
9617    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
9618    for MSYS2 can use win95 threads and have
9619    __attribute__((__constructor__)) support.
9620
9621 configure.ac | 21 +++++++++++++--------
9622 1 file changed, 13 insertions(+), 8 deletions(-)
9623
9624commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a
9625Author: Jamaika1 <lukaszcz18@wp.pl>
9626Date:   2023-08-08 14:07:59 +0200
9627
9628    mythread.h: Fix typo error in Vista threads mythread_once().
9629
9630    The "once_" variable was accidentally referred to as just "once". This
9631    prevented building with Vista threads when
9632    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
9633
9634 src/common/mythread.h | 2 +-
9635 1 file changed, 1 insertion(+), 1 deletion(-)
9636
9637commit 80cb961e5380a3878246d41341ff91378ca59e05
9638Author: Jia Tan <jiat0218@gmail.com>
9639Date:   2023-08-04 22:17:11 +0800
9640
9641    codespell: Add .codespellrc to set default options.
9642
9643    The .codespellrc allows setting default options to avoid false positive
9644    matches, set additional dictionaries, etc. For now, codespell can be
9645    used locally before committing doc and comment changes.
9646
9647    It should help prevent silly errors and fix up commits in the future.
9648
9649 .codespellrc | 24 ++++++++++++++++++++++++
9650 1 file changed, 24 insertions(+)
9651
9652commit cd678a6077358935249b64a4a16fe8d17434f9c9
9653Author: Jia Tan <jiat0218@gmail.com>
9654Date:   2023-08-03 20:10:21 +0800
9655
9656    Tests: Style fixes to test_lzip_decoder.c.
9657
9658 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
9659 1 file changed, 24 insertions(+), 12 deletions(-)
9660
9661commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81
9662Author: Jia Tan <jiat0218@gmail.com>
9663Date:   2023-08-03 15:56:20 +0800
9664
9665    Translations: Update the Chinese (simplified) translation.
9666
9667 po/zh_CN.po | 2 +-
9668 1 file changed, 1 insertion(+), 1 deletion(-)
9669
9670commit 16068f6c30b888cdb873f6285af941d00f95741d
9671Author: Lasse Collin <lasse.collin@tukaani.org>
9672Date:   2023-08-02 17:15:12 +0300
9673
9674    xz: Omit an empty paragraph on the man page.
9675
9676 src/xz/xz.1 | 1 -
9677 1 file changed, 1 deletion(-)
9678
9679commit 9ae4371b5106189486e850ce777e40f7b6021c0b
9680Author: Jia Tan <jiat0218@gmail.com>
9681Date:   2023-08-02 20:30:07 +0800
9682
9683    Add NEWS for 5.4.4.
9684
9685 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
9686 1 file changed, 43 insertions(+)
9687
9688commit e8c2203b2c76466d8d3387c5212b46151de8e605
9689Author: Lasse Collin <lasse.collin@tukaani.org>
9690Date:   2023-08-02 15:19:43 +0300
9691
9692    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
9693
9694    groff defaults to SGR escapes. Using -P-c passes -c to grotty
9695    which restores the old behavior. Perhaps there is a better way to
9696    get pure plain text output but this works for now.
9697
9698 build-aux/manconv.sh | 4 ++--
9699 1 file changed, 2 insertions(+), 2 deletions(-)
9700
9701commit 9a706167b0d903d92fd134895acb4bc6a5e3e688
9702Author: Lasse Collin <lasse.collin@tukaani.org>
9703Date:   2023-08-01 19:10:43 +0300
9704
9705    Update THANKS.
9706
9707 THANKS | 1 +
9708 1 file changed, 1 insertion(+)
9709
9710commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
9711Author: Lasse Collin <lasse.collin@tukaani.org>
9712Date:   2023-08-01 18:22:24 +0300
9713
9714    Update THANKS.
9715
9716 THANKS | 1 +
9717 1 file changed, 1 insertion(+)
9718
9719commit 81db3b889830132334d1f2129bdc93177ac2ca7d
9720Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
9721Date:   2023-08-01 18:17:17 +0300
9722
9723    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
9724
9725    signal.h in WASI SDK doesn't currently provide sigprocmask()
9726    or sigset_t. liblzma doesn't need them so this change makes
9727    liblzma and xzdec build against WASI SDK. xz doesn't build yet
9728    and the tests don't either as tuktest needs setjmp() which
9729    isn't (yet?) implemented in WASI SDK.
9730
9731    Closes: https://github.com/tukaani-project/xz/pull/57
9732    See also: https://github.com/tukaani-project/xz/pull/56
9733
9734    (The original commit was edited a little by Lasse Collin.)
9735
9736 src/common/mythread.h | 2 +-
9737 1 file changed, 1 insertion(+), 1 deletion(-)
9738
9739commit 71c638c611324e606d324c8189fef8fe79db6991
9740Author: Jia Tan <jiat0218@gmail.com>
9741Date:   2023-08-01 21:58:51 +0800
9742
9743    Add newline to end of .gitignore.
9744
9745    Newline was accidentally removed in commit
9746    01cbb7f023ee7fda8ddde04bd17cf7d3c2418706.
9747
9748 .gitignore | 2 +-
9749 1 file changed, 1 insertion(+), 1 deletion(-)
9750
9751commit 42df7c7aa1cca385e509eb33c65136e61890f0bf
9752Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
9753Date:   2023-07-31 14:02:21 +0200
9754
9755    Docs: Fix typos found by codespell
9756
9757 CMakeLists.txt                            | 4 ++--
9758 NEWS                                      | 2 +-
9759 configure.ac                              | 2 +-
9760 src/liblzma/api/lzma/container.h          | 4 ++--
9761 src/liblzma/api/lzma/filter.h             | 2 +-
9762 src/liblzma/api/lzma/lzma12.h             | 4 ++--
9763 src/liblzma/common/block_buffer_encoder.c | 2 +-
9764 src/liblzma/common/common.h               | 2 +-
9765 src/liblzma/common/file_info.c            | 2 +-
9766 src/liblzma/common/lzip_decoder.c         | 2 +-
9767 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
9768 src/liblzma/common/string_conversion.c    | 6 +++---
9769 src/liblzma/lz/lz_encoder.h               | 2 +-
9770 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
9771 src/xz/hardware.c                         | 4 ++--
9772 tests/test_filter_flags.c                 | 4 ++--
9773 tests/test_index.c                        | 2 +-
9774 tests/test_vli.c                          | 2 +-
9775 18 files changed, 29 insertions(+), 29 deletions(-)
9776
9777commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706
9778Author: Jia Tan <jiat0218@gmail.com>
9779Date:   2023-07-26 20:26:23 +0800
9780
9781    Update .gitignore.
9782
9783 .gitignore | 4 ++++
9784 1 file changed, 4 insertions(+)
9785
9786commit f97a1afd564c48ad9cb94682e10972a72e11fa08
9787Author: Jia Tan <jiat0218@gmail.com>
9788Date:   2023-07-28 22:03:08 +0800
9789
9790    CMake: Conditionally allow the creation of broken symlinks.
9791
9792    The CMake build will try to create broken symlinks on Unix and Unix-like
9793    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
9794    broken symlinks. The value of the CYGWIN or MSYS environment variables
9795    determine if broken symlinks are valid.
9796
9797    The default for MSYS2 does not allow for broken symlinks, so the CMake
9798    build has been broken for MSYS2 since commit
9799    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
9800
9801 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
9802 1 file changed, 75 insertions(+), 7 deletions(-)
9803
9804commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f
9805Author: Jia Tan <jiat0218@gmail.com>
9806Date:   2023-07-28 21:56:48 +0800
9807
9808    CI: Fix windows-ci dependency installation.
9809
9810    All of the MSYS2 environments need make, and it does not come with the
9811    toolchain package. The toolchain package will install the needed
9812    compiler toolchains since without this package CMake cannot properly
9813    generate the Makefiles.
9814
9815 .github/workflows/windows-ci.yml | 6 +++---
9816 1 file changed, 3 insertions(+), 3 deletions(-)
9817
9818commit a048f472cd9a2245265cb292853cbbcdd4f02001
9819Author: Jia Tan <jiat0218@gmail.com>
9820Date:   2023-07-28 21:54:22 +0800
9821
9822    CI: Update ci_build.sh CMake to always make Unix Makefiles.
9823
9824    The default for many of the MSYS2 environments is for CMake to create
9825    Ninja build files. This would complicate the build script since we would
9826    need a different command to run the tests. Its simpler to always use
9827    Unix Makefiles so that "make test" is always a usable target for
9828    testing.
9829
9830 build-aux/ci_build.sh | 4 ++--
9831 1 file changed, 2 insertions(+), 2 deletions(-)
9832
9833commit 7870396a0ca945473aa0d1d790f4cbef456610bd
9834Author: Jia Tan <jiat0218@gmail.com>
9835Date:   2023-07-25 20:17:23 +0800
9836
9837    CI: Test CMake builds and test framework with MSYS2.
9838
9839 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------
9840 1 file changed, 20 insertions(+), 12 deletions(-)
9841
9842commit 6497d1f8875cb7e3007f714336cc09c06fed235b
9843Author: Jia Tan <jiat0218@gmail.com>
9844Date:   2023-07-25 20:14:53 +0800
9845
9846    CI: Windows CI rename system matrix variable -> msys2_env.
9847
9848    Calling the MSYS2 environment "system" was a bit vague and should be
9849    more specific.
9850
9851 .github/workflows/windows-ci.yml | 15 +++++----------
9852 1 file changed, 5 insertions(+), 10 deletions(-)
9853
9854commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd
9855Author: Jia Tan <jiat0218@gmail.com>
9856Date:   2023-07-24 23:11:45 +0800
9857
9858    CI: Add Clang64 MSYS2 environment to Windows CI.
9859
9860 .github/workflows/windows-ci.yml | 1 +
9861 1 file changed, 1 insertion(+)
9862
9863commit d9166b52cf3458a4da3eb92224837ca8fc208d79
9864Author: Jia Tan <jiat0218@gmail.com>
9865Date:   2023-07-24 21:43:44 +0800
9866
9867    liblzma: Prevent an empty translation unit in Windows builds.
9868
9869    To workaround Automake lacking Windows resource compiler support, an
9870    empty source file is compiled to overwrite the resource files for static
9871    library builds. Translation units without an external declaration are
9872    not allowed by the C standard and result in a warning when used with
9873    -Wempty-translation-unit (Clang) or -pedantic (GCC).
9874
9875 src/liblzma/Makefile.am | 6 +++++-
9876 1 file changed, 5 insertions(+), 1 deletion(-)
9877
9878commit db5019d691f980d622fb56fdcf383af2c3519c98
9879Author: Jia Tan <jiat0218@gmail.com>
9880Date:   2023-07-22 18:37:56 +0800
9881
9882    Translations: Update the Vietnamese translation.
9883
9884 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
9885 1 file changed, 28 insertions(+), 17 deletions(-)
9886
9887commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5
9888Author: Jia Tan <jiat0218@gmail.com>
9889Date:   2023-07-22 14:55:42 +0800
9890
9891    CI: Add Windows runner for Autotools builds with MSYS2.
9892
9893    Only a subset of the tests run by the Linux and MacOS Autotools builds
9894    are run. The most interesting tests are the ones that disable threads,
9895    encoders, and decoders.
9896
9897    The Windows runner will only be run manually since these tests will
9898    likely take much longer than the Linux and MacOS runners. This runner
9899    should be used before merging any large features and before releases.
9900
9901    Currently the clang64 environment fails to due to a warning and
9902    -Werror is enabled for the CI tests. This is still an early version
9903    since the CMake build can be done for MSVC and optionally each of the
9904    MSYS2 environments. GitHub does not allow manually running the CI tests
9905    unless the workflow is checked on the default branch so checking in a
9906    minimum version is a good idea.
9907
9908    Thanks to Arthur S for the original proposing the original patch.
9909
9910    Closes: https://github.com/tukaani-project/xz/pull/34
9911
9912 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++
9913 1 file changed, 119 insertions(+)
9914
9915commit 556536a3525df9e5ed78b8c7057991cfa9edfac8
9916Author: Jia Tan <jiat0218@gmail.com>
9917Date:   2023-07-21 22:11:01 +0800
9918
9919    CI: Add argument to ci_build.sh to pass flags to autogen.sh.
9920
9921 build-aux/ci_build.sh | 9 +++++++--
9922 1 file changed, 7 insertions(+), 2 deletions(-)
9923
9924commit 39a32d36fc465c4e70f13192eea380e518ba6e8a
9925Author: Jia Tan <jiat0218@gmail.com>
9926Date:   2023-07-21 18:05:44 +0800
9927
9928    Tests: Skip .lz files in test_files.sh if not configured.
9929
9930    Previously if the lzip decoder was not configured then test_files.sh
9931    would pass the lzip tests instead of skipping them.
9932
9933 tests/test_files.sh | 2 +-
9934 1 file changed, 1 insertion(+), 1 deletion(-)
9935
9936commit 194d12724b30fe42789d12a0184f9d412c449347
9937Author: Jia Tan <jiat0218@gmail.com>
9938Date:   2023-07-20 22:11:13 +0800
9939
9940    Tests: Add ARM64 filter test to test_compress.sh.
9941
9942 tests/test_compress.sh | 1 +
9943 1 file changed, 1 insertion(+)
9944
9945commit d850365c444368102c69beaddf849ed463c33467
9946Author: Jia Tan <jiat0218@gmail.com>
9947Date:   2023-07-20 20:30:05 +0800
9948
9949    Translations: Update the Croatian translation.
9950
9951 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
9952 1 file changed, 30 insertions(+), 19 deletions(-)
9953
9954commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe
9955Author: Jia Tan <jiat0218@gmail.com>
9956Date:   2023-07-20 20:28:32 +0800
9957
9958    Translations: Update the Korean man page translations.
9959
9960 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
9961 1 file changed, 629 insertions(+), 626 deletions(-)
9962
9963commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49
9964Author: Jia Tan <jiat0218@gmail.com>
9965Date:   2023-07-20 20:25:24 +0800
9966
9967    Translations: Update the Korean translation.
9968
9969 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
9970 1 file changed, 28 insertions(+), 17 deletions(-)
9971
9972commit 237f06d9c55cf438a7538a598354bcf103f23711
9973Author: Jia Tan <jiat0218@gmail.com>
9974Date:   2023-07-20 20:24:05 +0800
9975
9976    Translations: Update the Polish translation.
9977
9978 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
9979 1 file changed, 29 insertions(+), 18 deletions(-)
9980
9981commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a
9982Author: Jia Tan <jiat0218@gmail.com>
9983Date:   2023-07-20 20:22:23 +0800
9984
9985    Translations: Update the German man page translations.
9986
9987 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
9988 1 file changed, 629 insertions(+), 626 deletions(-)
9989
9990commit fdbde14503ca03069d3649aa51926f5f796b89d8
9991Author: Jia Tan <jiat0218@gmail.com>
9992Date:   2023-07-20 20:18:44 +0800
9993
9994    Translations: Update the German translation.
9995
9996 po/de.po | 47 +++++++++++++++++++++++++++++------------------
9997 1 file changed, 29 insertions(+), 18 deletions(-)
9998
9999commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101
10000Author: Jia Tan <jiat0218@gmail.com>
10001Date:   2023-07-20 20:17:10 +0800
10002
10003    Translations: Update the Chinese (simplified) translation.
10004
10005 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
10006 1 file changed, 29 insertions(+), 18 deletions(-)
10007
10008commit 376938c588011567c74f1d5a160c0ccce6336d46
10009Author: Jia Tan <jiat0218@gmail.com>
10010Date:   2023-07-20 20:15:47 +0800
10011
10012    Translations: Update the Swedish translation.
10013
10014 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
10015 1 file changed, 29 insertions(+), 18 deletions(-)
10016
10017commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8
10018Author: Jia Tan <jiat0218@gmail.com>
10019Date:   2023-07-20 20:14:00 +0800
10020
10021    Translations: Update the Ukrainian man page translations.
10022
10023 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
10024 1 file changed, 628 insertions(+), 625 deletions(-)
10025
10026commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b
10027Author: Jia Tan <jiat0218@gmail.com>
10028Date:   2023-07-20 20:09:15 +0800
10029
10030    Translations: Update the Ukrainian translation.
10031
10032 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
10033 1 file changed, 28 insertions(+), 17 deletions(-)
10034
10035commit f881018b503fd334331c24a09075429558abbce1
10036Author: Jia Tan <jiat0218@gmail.com>
10037Date:   2023-07-20 20:06:57 +0800
10038
10039    Translations: Update the Spanish translation.
10040
10041 po/es.po | 47 +++++++++++++++++++++++++++++------------------
10042 1 file changed, 29 insertions(+), 18 deletions(-)
10043
10044commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31
10045Author: Jia Tan <jiat0218@gmail.com>
10046Date:   2023-07-20 20:05:19 +0800
10047
10048    Translations: Update the Romanian translation.
10049
10050 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
10051 1 file changed, 30 insertions(+), 18 deletions(-)
10052
10053commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77
10054Author: Jia Tan <jiat0218@gmail.com>
10055Date:   2023-07-20 20:02:56 +0800
10056
10057    Translations: Update the Romanian man page translations.
10058
10059 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
10060 1 file changed, 629 insertions(+), 625 deletions(-)
10061
10062commit 0184d344fa4f215cd345bb131db9068e077c69b8
10063Author: Jia Tan <jiat0218@gmail.com>
10064Date:   2023-07-19 23:36:00 +0800
10065
10066    liblzma: Suppress -Wunused-function warning.
10067
10068    Clang 16.0.0 and earlier have a bug that the ifunc resolver function
10069    triggers the -Wunused-function warning. The resolver function is static
10070    and only "used" by the __attribute__((__ifunc()__)).
10071
10072    At this time, the bug is still unresolved, but has been reported:
10073    https://github.com/llvm/llvm-project/issues/63957
10074
10075    This is not a problem in GCC.
10076
10077 src/liblzma/check/crc64_fast.c | 10 ++++++++++
10078 1 file changed, 10 insertions(+)
10079
10080commit 43845fa70fc751736c44c18f4cee42d49bfd1392
10081Author: Jia Tan <jiat0218@gmail.com>
10082Date:   2023-07-18 22:52:25 +0800
10083
10084    liblzma: Reword lzma_str_list_filters() documentation.
10085
10086    This further improves the documentation from commit
10087    f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of
10088    "supported options" was slightly misleading since the options that are
10089    printed are the ones that are relevant for encoding/decoding. It is not
10090    about which options can or must be specified.
10091
10092 src/liblzma/api/lzma/filter.h | 2 +-
10093 1 file changed, 1 insertion(+), 1 deletion(-)
10094
10095commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67
10096Author: Jia Tan <jiat0218@gmail.com>
10097Date:   2023-07-18 22:49:57 +0800
10098
10099    liblzma: Improve comment in string_conversion.c.
10100
10101    The comment used "flag" when referring to decoder options. Just
10102    referring to them as options is more clear and consistent.
10103
10104 src/liblzma/common/string_conversion.c | 4 ++--
10105 1 file changed, 2 insertions(+), 2 deletions(-)
10106
10107commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090
10108Author: Lasse Collin <lasse.collin@tukaani.org>
10109Date:   2023-07-18 17:37:33 +0300
10110
10111    xz: Translate the second "%s: " in message.c since French needs "%s : ".
10112
10113    This string is used to print a filename when using "xz -v" and
10114    stderr isn't a terminal.
10115
10116 src/xz/message.c | 2 +-
10117 1 file changed, 1 insertion(+), 1 deletion(-)
10118
10119commit be644042c3066d8e7a2834f989671ba74d27f749
10120Author: Lasse Collin <lasse.collin@tukaani.org>
10121Date:   2023-07-18 14:35:33 +0300
10122
10123    xz: Make "%s: %s" translatable because French needs "%s : %s".
10124
10125 src/xz/args.c    |  5 ++++-
10126 src/xz/coder.c   |  8 ++++----
10127 src/xz/file_io.c |  8 ++++----
10128 src/xz/list.c    | 11 ++++++-----
10129 4 files changed, 18 insertions(+), 14 deletions(-)
10130
10131commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2
10132Author: Lasse Collin <lasse.collin@tukaani.org>
10133Date:   2023-07-18 13:57:54 +0300
10134
10135    liblzma: Tweak #if condition in memcmplen.h.
10136
10137    Maybe ICC always #defines _MSC_VER on Windows but now
10138    it's very clear which code will get used.
10139
10140 src/liblzma/common/memcmplen.h | 4 ++--
10141 1 file changed, 2 insertions(+), 2 deletions(-)
10142
10143commit 40392c19f71985852d75997f109dea97177d6f3f
10144Author: Lasse Collin <lasse.collin@tukaani.org>
10145Date:   2023-07-18 13:49:43 +0300
10146
10147    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
10148
10149 src/liblzma/common/memcmplen.h | 4 ++--
10150 1 file changed, 2 insertions(+), 2 deletions(-)
10151
10152commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98
10153Author: Jia Tan <jiat0218@gmail.com>
10154Date:   2023-07-18 00:51:48 +0800
10155
10156    xz: Update Authors list in a few files.
10157
10158 src/xz/args.c    | 3 ++-
10159 src/xz/args.h    | 3 ++-
10160 src/xz/coder.c   | 3 ++-
10161 src/xz/coder.h   | 3 ++-
10162 src/xz/message.c | 3 ++-
10163 5 files changed, 10 insertions(+), 5 deletions(-)
10164
10165commit 289034a168878baa9df6ff6e159110aade69cba5
10166Author: Jia Tan <jiat0218@gmail.com>
10167Date:   2023-07-14 23:20:33 +0800
10168
10169    Docs: Add a new section to INSTALL for Tests.
10170
10171    The new Tests section describes basic information about the tests, how
10172    to run them, and important details when cross compiling. We have had a
10173    few questions about how to compile the tests without running them, so
10174    hopefully this information will help others with the same question in the
10175    future.
10176
10177    Fixes: https://github.com/tukaani-project/xz/issues/54
10178
10179 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
10180 1 file changed, 64 insertions(+), 17 deletions(-)
10181
10182commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513
10183Author: Jia Tan <jiat0218@gmail.com>
10184Date:   2023-07-14 21:10:27 +0800
10185
10186    Docs: Update README.
10187
10188    This adds an entry to "Other implementations of the .xz format" for
10189    XZ for Java.
10190
10191 README | 4 ++++
10192 1 file changed, 4 insertions(+)
10193
10194commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9
10195Author: Jia Tan <jiat0218@gmail.com>
10196Date:   2023-07-13 23:32:10 +0800
10197
10198    xz: Fix typo in man page.
10199
10200    The Memory limit information section described three output
10201    columns when it actually has six. This was reworded to
10202    "multiple" to make it more future proof.
10203
10204 src/xz/xz.1 | 2 +-
10205 1 file changed, 1 insertion(+), 1 deletion(-)
10206
10207commit f907705eb1f6c5edaafc9668a34c51a989932f1d
10208Author: Jia Tan <jiat0218@gmail.com>
10209Date:   2023-07-13 21:46:12 +0800
10210
10211    xz: Minor clean up for coder.c
10212
10213    * Moved max_block_list_size from a global to local variable.
10214    * Reworded error message in validate_block_list_filter().
10215    * Removed helper function filter_chain_error().
10216    * Changed 1 << X to 1U << X in many places
10217
10218 src/xz/coder.c | 53 +++++++++++++++++++++--------------------------------
10219 1 file changed, 21 insertions(+), 32 deletions(-)
10220
10221commit 9adc9e56157ecbf2948e5036df8567809b9ae177
10222Author: Jia Tan <jiat0218@gmail.com>
10223Date:   2023-07-13 21:26:47 +0800
10224
10225    xz: Update man page Authors and date.
10226
10227 src/xz/xz.1 | 5 +++--
10228 1 file changed, 3 insertions(+), 2 deletions(-)
10229
10230commit c12e429f2635da8d8f5749e5f733f451baca6945
10231Author: Jia Tan <jiat0218@gmail.com>
10232Date:   2023-06-20 20:32:59 +0800
10233
10234    xz: Add a section to man page for robot mode --filters-help.
10235
10236 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++--
10237 1 file changed, 30 insertions(+), 2 deletions(-)
10238
10239commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d
10240Author: Jia Tan <jiat0218@gmail.com>
10241Date:   2023-06-19 23:11:41 +0800
10242
10243    xz: Slight reword in xz man page for consistency.
10244
10245    Changed will print => prints in xz --robot --version description to
10246    match --robot --info-memory description.
10247
10248 src/xz/xz.1 | 2 +-
10249 1 file changed, 1 insertion(+), 1 deletion(-)
10250
10251commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81
10252Author: Jia Tan <jiat0218@gmail.com>
10253Date:   2023-06-19 23:07:10 +0800
10254
10255    xz: Reorder robot mode subsections in the man page.
10256
10257    The order is now consistent with the order the command line arguments
10258    are documented earlier in the man page. The new order is:
10259    1. --list
10260    2. --info-memory
10261    3. --version
10262
10263    Instead of the previous order:
10264    1. --version
10265    2. --info-memory
10266    3. --list
10267
10268 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------
10269 1 file changed, 96 insertions(+), 96 deletions(-)
10270
10271commit 9628be23aef2784249fd9f3199799d785d2ec5cc
10272Author: Jia Tan <jiat0218@gmail.com>
10273Date:   2023-05-13 00:46:50 +0800
10274
10275    xz: Update man page for new --filters-help option.
10276
10277 src/xz/xz.1 | 10 ++++++++++
10278 1 file changed, 10 insertions(+)
10279
10280commit a165d7df1964121eb9df715e6f836a31c865beef
10281Author: Jia Tan <jiat0218@gmail.com>
10282Date:   2023-05-13 00:44:41 +0800
10283
10284    xz: Add a new --filters-help option.
10285
10286    The --filters-help can be used to help create filter chains with the
10287    --filters and --filtersX options. The message in --long-help is too
10288    short to fully explain the syntax to construct complex filter chains.
10289
10290    In --robot mode, xz will only print the output from liblzma function
10291    lzma_str_list_filters.
10292
10293 src/xz/args.c    |  8 ++++++++
10294 src/xz/message.c | 30 ++++++++++++++++++++++++++++++
10295 src/xz/message.h |  5 +++++
10296 3 files changed, 43 insertions(+)
10297
10298commit 95f1a414b156ee35d3e71862a14915fdd138f913
10299Author: Jia Tan <jiat0218@gmail.com>
10300Date:   2023-04-21 20:28:11 +0800
10301
10302    xz: Update the man page for --block-list and --filtersX
10303
10304    The --block-list option description needed updating since the new
10305    --filtersX option changes how it can be used. The new entry for
10306    --filters1=FILTERS ... --filter9=FILTERS was created right after
10307    the --filters option.
10308
10309 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++---------------
10310 1 file changed, 80 insertions(+), 26 deletions(-)
10311
10312commit 47a63cad2aa778280e0c1926b7159427ea028cb1
10313Author: Jia Tan <jiat0218@gmail.com>
10314Date:   2023-04-21 19:50:14 +0800
10315
10316    xz: Update --long-help for the new --filtersX option.
10317
10318 src/xz/message.c | 12 ++++++++++--
10319 1 file changed, 10 insertions(+), 2 deletions(-)
10320
10321commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13
10322Author: Jia Tan <jiat0218@gmail.com>
10323Date:   2023-06-17 20:46:21 +0800
10324
10325    xz: Ignore filter chains that are set but never used in --block-list.
10326
10327    If a filter chain is set but not used in --block-list, it introduced
10328    unexpected behavior such as requiring an unneeded amount of memory to
10329    compress, reducing the number of threads in multi-threaded encoding, and
10330    printing an incorrect amount of memory needed to decompress.
10331
10332    This also renames filters_init_mask => filters_used_mask. A filter is
10333    assumed to be used if it is specified in --filtersX until
10334    coder_set_compression_settings() determines which filters are referenced
10335    in --block-list.
10336
10337 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++----------------
10338 1 file changed, 48 insertions(+), 18 deletions(-)
10339
10340commit 183819bfd9efac8c184d9bf123325719b7eee30f
10341Author: Jia Tan <jiat0218@gmail.com>
10342Date:   2023-05-13 20:11:13 +0800
10343
10344    xz: Set the Block size for mt encoding correctly.
10345
10346    When opt_block_size is not used, the Block size for mt encoder is
10347    derived from the minimum of the largest Block specified by
10348    --block-list and the recommended Block size on all filter chains
10349    calculated by lzma_mt_block_size(). This avoids using unnecessary
10350    memory and ensures that all Blocks are large enough for the most memory
10351    needy filter chain.
10352
10353 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
10354 1 file changed, 67 insertions(+), 1 deletion(-)
10355
10356commit afb2dbec3d857b026486b75e42a4728e12d234cb
10357Author: Jia Tan <jiat0218@gmail.com>
10358Date:   2023-05-11 00:09:41 +0800
10359
10360    xz: Validate --flush-timeout for all specified filter chains.
10361
10362 src/xz/coder.c | 24 ++++++++++++++++--------
10363 1 file changed, 16 insertions(+), 8 deletions(-)
10364
10365commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
10366Author: Jia Tan <jiat0218@gmail.com>
10367Date:   2023-05-13 19:54:33 +0800
10368
10369    xz: Allows --block-list filters to scale down memory usage.
10370
10371    Previously, only the default filter chain could have its memory usage
10372    adjusted. The filter chains specified with --filtersX were not checked
10373    for memory usage. Now, all used filter chains will be adjusted if
10374    necessary.
10375
10376 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------
10377 1 file changed, 214 insertions(+), 55 deletions(-)
10378
10379commit 479fd58d60622331fcbe48fddf756927b9f80d9a
10380Author: Jia Tan <jiat0218@gmail.com>
10381Date:   2023-05-10 21:50:33 +0800
10382
10383    xz: Do not include block splitting if encoders are disabled.
10384
10385    The block splitting logic and split_block() function are not needed if
10386    encoders are disabled. This will help slightly reduce the binary size
10387    when built without encoders and allow split_block() to use functions
10388    that require encoders being enabled.
10389
10390 src/xz/coder.c | 29 ++++++++++++++++++++---------
10391 1 file changed, 20 insertions(+), 9 deletions(-)
10392
10393commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3
10394Author: Jia Tan <jiat0218@gmail.com>
10395Date:   2023-05-10 22:38:59 +0800
10396
10397    xz: Free filters[] in debug mode.
10398
10399    This will only free filter chains created with --filters1-9 since the
10400    default filter chain may be set from a static function variable. The
10401    complexity to free the default filter chain is not worth the burden on
10402    code maintenance.
10403
10404 src/xz/coder.c | 10 ++++++++++
10405 1 file changed, 10 insertions(+)
10406
10407commit f281cd0d692ac0c70fc7669b80dddb863ea947e1
10408Author: Jia Tan <jiat0218@gmail.com>
10409Date:   2023-05-13 19:28:23 +0800
10410
10411    xz: Add a message if --block-list is used outside of xz compresssion.
10412
10413    --block-list is only supported with compression in xz format. This avoids
10414    silently ignoring when --block-list is unused.
10415
10416 src/xz/args.c | 11 +++++++++++
10417 1 file changed, 11 insertions(+)
10418
10419commit d6af7f347077b22403133239592e478931307759
10420Author: Jia Tan <jiat0218@gmail.com>
10421Date:   2023-04-18 20:29:09 +0800
10422
10423    xz: Create command line options for filters[1-9].
10424
10425    The new command line options are meant to be combined with --block-list.
10426    They work as an optional extension to --block-list to specify a custom
10427    filter chain for each block listed. The new options allow the creation
10428    of up to 9 reusable filter chains. For instance:
10429
10430    xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \
10431    --filters2=x86--lzma2 --filters3=arm64--lzma2
10432
10433    Will create the following blocks:
10434    1. A block of size 10 MiB with filter chain delta, lzma2.
10435    2. A block of size 5 MiB with filter chain arm64, lzma2.
10436    3. A block of size 5 MiB with filter chain arm64, lzma2.
10437    4. A block of size 5 MiB with filter chain x86, lzma2.
10438    5. A block containing the rest of the file contents with filter chain
10439       delta, lzma2.
10440
10441 src/xz/args.c  |  82 ++++++++++++++++++++++---
10442 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++---------------
10443 src/xz/coder.h |  20 +++++-
10444 3 files changed, 230 insertions(+), 60 deletions(-)
10445
10446commit 072d29250113268536719ad0e040ab8a66fb6435
10447Author: Jia Tan <jiat0218@gmail.com>
10448Date:   2023-05-13 19:36:09 +0800
10449
10450    xz: Use lzma_filters_free() in forget_filter_chain().
10451
10452    This is a little cleaner than the previous implementation of
10453    forget_filter_chain(). It is also more consistent since
10454    lzma_str_to_filters() will always terminate the filter chain so there
10455    is no need to terminate it later in coder_set_compression_settings().
10456
10457 src/xz/coder.c | 18 ++++++++++--------
10458 1 file changed, 10 insertions(+), 8 deletions(-)
10459
10460commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059
10461Author: Jia Tan <jiat0218@gmail.com>
10462Date:   2023-04-17 22:22:45 +0800
10463
10464    xz: Separate string to filter conversion into a helper function.
10465
10466    Converting from string to filter will also need to be done for block
10467    specific filter chains.
10468
10469 src/xz/coder.c | 33 ++++++++++++++++++++-------------
10470 1 file changed, 20 insertions(+), 13 deletions(-)
10471
10472commit a6583726e5f950278f96abcf79c04f1056810be6
10473Author: Jia Tan <jiat0218@gmail.com>
10474Date:   2023-01-06 00:03:35 +0800
10475
10476    Tests: Use new --filters option in test_compress.sh
10477
10478 tests/test_compress.sh | 20 ++++++++++----------
10479 1 file changed, 10 insertions(+), 10 deletions(-)
10480
10481commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0
10482Author: Jia Tan <jiat0218@gmail.com>
10483Date:   2023-01-06 00:03:06 +0800
10484
10485    xz: Update --long-help and man page for new --filters option.
10486
10487 src/xz/message.c |  6 ++++++
10488 src/xz/xz.1      | 41 ++++++++++++++++++++++++++++++++++++-----
10489 2 files changed, 42 insertions(+), 5 deletions(-)
10490
10491commit 9ded880a0221f4d1256845fc4ab957ffd377c760
10492Author: Jia Tan <jiat0218@gmail.com>
10493Date:   2023-01-06 00:02:29 +0800
10494
10495    xz: Add --filters option to CLI.
10496
10497    The --filters option uses the new lzma_str_to_filters() function
10498    to convert a string into a full filter chain. Using this option
10499    will reset all previous filters set by --preset, --[filter], or
10500    --filters.
10501
10502 src/xz/args.c  |  9 +++++++--
10503 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
10504 src/xz/coder.h |  3 +++
10505 3 files changed, 58 insertions(+), 4 deletions(-)
10506
10507commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88
10508Author: Jia Tan <jiat0218@gmail.com>
10509Date:   2023-07-14 21:30:25 +0800
10510
10511    Tests: Improve feature testing for skipping.
10512
10513    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
10514    filters were enabled for compression but arm was disabled. Since the
10515    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
10516    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
10517
10518    Now the config.h feature test requires " 1" at the end to prevent the
10519    prefix problem. have_feature() was also updated for this even though
10520    there were known current bugs affecting it. This is just in case future
10521    features have a similar prefix problem.
10522
10523 tests/test_compress.sh | 4 ++--
10524 tests/test_files.sh    | 2 +-
10525 2 files changed, 3 insertions(+), 3 deletions(-)
10526
10527commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357
10528Author: Jia Tan <jiat0218@gmail.com>
10529Date:   2023-07-10 20:56:28 +0800
10530
10531    Translations: Update the Chinese (traditional) translation.
10532
10533 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
10534 1 file changed, 377 insertions(+), 282 deletions(-)
10535
10536commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd
10537Author: Jia Tan <jiat0218@gmail.com>
10538Date:   2023-07-08 21:24:19 +0800
10539
10540    liblzma: Remove non-portable empty initializer.
10541
10542    Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty
10543    initializer {} to prevent a warning. The empty initializer is a GNU
10544    extension and results in a build failure on MSVC. The -wpedantic flag
10545    warns about empty initializers.
10546
10547 src/liblzma/common/stream_encoder_mt.c | 2 +-
10548 1 file changed, 1 insertion(+), 1 deletion(-)
10549
10550commit 3aca4f629cd577f0c54f594d5d88722edf0b0413
10551Author: Jia Tan <jiat0218@gmail.com>
10552Date:   2023-07-08 20:03:59 +0800
10553
10554    Translations: Update the Vietnamese translation.
10555
10556 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
10557 1 file changed, 349 insertions(+), 271 deletions(-)
10558
10559commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4
10560Author: Jia Tan <jiat0218@gmail.com>
10561Date:   2023-06-28 20:46:31 +0800
10562
10563    Tests: Fix memory leaks in test_index.
10564
10565    Several tests were missing calls to lzma_index_end() to clean up the
10566    lzma_index structs. The memory leaks were discovered by using
10567    -fsanitize=address with GCC.
10568
10569 tests/test_index.c | 11 +++++++++++
10570 1 file changed, 11 insertions(+)
10571
10572commit fe3bd438fb119f9bad3f08dc29d331e4956196e1
10573Author: Jia Tan <jiat0218@gmail.com>
10574Date:   2023-06-28 20:43:29 +0800
10575
10576    Tests: Fix memory leaks in test_block_header.
10577
10578    test_block_header was not properly freeing the filter options between
10579    calls to lzma_block_header_decode(). The memory leaks were discovered by
10580    using -fsanitize=address with GCC.
10581
10582 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
10583 1 file changed, 22 insertions(+), 16 deletions(-)
10584
10585commit 78704f36e74205857c898a351c757719a6c8b666
10586Author: Jia Tan <jiat0218@gmail.com>
10587Date:   2023-06-28 20:31:11 +0800
10588
10589    liblzma: Prevent uninitialzed warning in mt stream encoder.
10590
10591    This change only impacts the compiler warning since it was impossible
10592    for the wait_abs struct in stream_encode_mt() to be used before it was
10593    initialized since mythread_condtime_set() will always be called before
10594    mythread_cond_timedwait().
10595
10596    Since the mythread.h code is different between the POSIX and
10597    Windows versions, this warning was only present on Windows builds.
10598
10599    Thanks to Arthur S for reporting the warning and providing an initial
10600    patch.
10601
10602 src/liblzma/common/stream_encoder_mt.c | 2 +-
10603 1 file changed, 1 insertion(+), 1 deletion(-)
10604
10605commit e3356a204c5ae02db3ec4552b6c1be354e9b6142
10606Author: Jia Tan <jiat0218@gmail.com>
10607Date:   2023-06-28 20:22:38 +0800
10608
10609    liblzma: Prevent warning for MSYS2 Windows build.
10610
10611    In lzma_memcmplen(), the <intrin.h> header file is only included if
10612    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
10613    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
10614    not _MSC_VER so _BitScanForward64() was used without including
10615    <intrin.h>.
10616
10617    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
10618    expected.
10619
10620 src/liblzma/common/memcmplen.h | 6 ++++--
10621 1 file changed, 4 insertions(+), 2 deletions(-)
10622
10623commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e
10624Author: Jia Tan <jiat0218@gmail.com>
10625Date:   2023-06-28 21:01:22 +0800
10626
10627    CI: Add test with -fsanitize=address,undefined.
10628
10629    ci_build.sh was updated to accept disabling of __attribute__ ifunc
10630    and CLMUL. This will allow -fsanitize=address to pass because ifunc
10631    is incompatible with -fsanitize=address. The CLMUL implementation has
10632    optimizations that potentially read past the buffer and mask out the
10633    unwanted bytes.
10634
10635    This test will only run on Autotools Linux.
10636
10637 .github/workflows/ci.yml | 23 +++++++++++++++++++----
10638 build-aux/ci_build.sh    |  8 +++++++-
10639 2 files changed, 26 insertions(+), 5 deletions(-)
10640
10641commit 596ee722cd7ddf0afae584fc06365adc0e735977
10642Author: Jia Tan <jiat0218@gmail.com>
10643Date:   2023-06-28 20:16:04 +0800
10644
10645    CI: Upgrade checkout action from v2 to v3.
10646
10647 .github/workflows/ci.yml | 2 +-
10648 1 file changed, 1 insertion(+), 1 deletion(-)
10649
10650commit 86118ea320f867e09e98a8682cc08cbbdfd640e2
10651Author: Jia Tan <jiat0218@gmail.com>
10652Date:   2023-06-27 23:38:32 +0800
10653
10654    Update THANKS.
10655
10656 THANKS | 1 +
10657 1 file changed, 1 insertion(+)
10658
10659commit 3d1fdddf92321b516d55651888b9c669e254634e
10660Author: Jia Tan <jiat0218@gmail.com>
10661Date:   2023-06-27 17:27:09 +0300
10662
10663    Docs: Document the configure option --disable-ifunc in INSTALL.
10664
10665 INSTALL | 8 ++++++++
10666 1 file changed, 8 insertions(+)
10667
10668commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3
10669Author: Lasse Collin <lasse.collin@tukaani.org>
10670Date:   2023-06-27 17:24:49 +0300
10671
10672    Minor tweaks to style and comments.
10673
10674 CMakeLists.txt | 8 ++++----
10675 configure.ac   | 9 +++++----
10676 2 files changed, 9 insertions(+), 8 deletions(-)
10677
10678commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1
10679Author: Lasse Collin <lasse.collin@tukaani.org>
10680Date:   2023-06-27 17:19:49 +0300
10681
10682    CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC.
10683
10684    It's so that there's a clear difference in wording compared
10685    to liblzma's integrity check types.
10686
10687 CMakeLists.txt | 6 +++---
10688 1 file changed, 3 insertions(+), 3 deletions(-)
10689
10690commit ee44863ae88e377a5df10db007ba9bfadde3d314
10691Author: Lasse Collin <lasse.collin@tukaani.org>
10692Date:   2023-06-27 17:05:23 +0300
10693
10694    liblzma: Add ifunc implementation to crc64_fast.c.
10695
10696    The ifunc method avoids indirection via the function pointer
10697    crc64_func. This works on GNU/Linux and probably on FreeBSD too.
10698    The previous __attribute((__constructor__)) method is kept for
10699    compatibility with ELF platforms which do support ifunc.
10700
10701    The ifunc method has some limitations, for example, building
10702    liblzma with -fsanitize=address will result in segfaults.
10703    The configure option --disable-ifunc must be used for such builds.
10704
10705    Thanks to Hans Jansen for the original patch.
10706    Closes: https://github.com/tukaani-project/xz/pull/53
10707
10708 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++---------
10709 1 file changed, 26 insertions(+), 9 deletions(-)
10710
10711commit b72d21202402a603db6d512fb9271cfa83249639
10712Author: Hans Jansen <hansjansen162@outlook.com>
10713Date:   2023-06-22 19:49:30 +0200
10714
10715    Add ifunc check to CMakeLists.txt
10716
10717    CMake build system will now verify if __attribute__((__ifunc__())) can be
10718    used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be
10719    defined to 1.
10720
10721 CMakeLists.txt | 19 +++++++++++++++++++
10722 1 file changed, 19 insertions(+)
10723
10724commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b
10725Author: Hans Jansen <hansjansen162@outlook.com>
10726Date:   2023-06-22 19:46:55 +0200
10727
10728    Add ifunc check to configure.ac
10729
10730    configure.ac will now verify if __attribute__((__ifunc__())) can be used in
10731    the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1.
10732
10733 configure.ac | 28 ++++++++++++++++++++++++++++
10734 1 file changed, 28 insertions(+)
10735
10736commit dbb3a536ed9873ffa0870321f6873e564c6a9da8
10737Author: Jia Tan <jiat0218@gmail.com>
10738Date:   2023-06-07 00:18:30 +0800
10739
10740    CI: Add apt update command before installing dependencies.
10741
10742    Without the extra command, all of the CI tests were automatically
10743    failing because the Ubuntu servers could not be reached properly.
10744
10745 .github/workflows/ci.yml | 8 ++++++--
10746 1 file changed, 6 insertions(+), 2 deletions(-)
10747
10748commit 6bcd516812331de42b347922913230895bebad34
10749Author: Jia Tan <jiat0218@gmail.com>
10750Date:   2023-06-07 00:10:38 +0800
10751
10752    Update THANKS.
10753
10754 THANKS | 1 +
10755 1 file changed, 1 insertion(+)
10756
10757commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
10758Author: Benjamin Buch <bebuch@users.noreply.github.com>
10759Date:   2023-06-06 15:32:45 +0200
10760
10761    CMake: Protects against double find_package
10762
10763    Boost iostream uses `find_package` in quiet mode and then again uses
10764    `find_package` with required. This second call triggers a
10765    `add_library cannot create imported target "ZLIB::ZLIB" because another
10766    target with the same name already exists.`
10767
10768    This can simply be fixed by skipping the alias part on secondary
10769    `find_package` runs.
10770
10771 CMakeLists.txt | 16 +++++++++-------
10772 1 file changed, 9 insertions(+), 7 deletions(-)
10773
10774commit 045d7aae286ecd2ce163be9e0d9041343a03f89a
10775Author: Jia Tan <jiat0218@gmail.com>
10776Date:   2023-05-31 20:26:42 +0800
10777
10778    Translations: Update the Esperanto translation.
10779
10780 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
10781 1 file changed, 92 insertions(+), 93 deletions(-)
10782
10783commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78
10784Author: Jia Tan <jiat0218@gmail.com>
10785Date:   2023-05-31 20:25:00 +0800
10786
10787    Translations: Update the Croatian translation.
10788
10789 po/hr.po | 2 +-
10790 1 file changed, 1 insertion(+), 1 deletion(-)
10791
10792commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce
10793Author: Jia Tan <jiat0218@gmail.com>
10794Date:   2023-05-31 20:15:53 +0800
10795
10796    Translations: Update the Chinese (simplified) translation.
10797
10798 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
10799 1 file changed, 157 insertions(+), 160 deletions(-)
10800
10801commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383
10802Author: Jia Tan <jiat0218@gmail.com>
10803Date:   2023-05-17 23:12:13 +0800
10804
10805    Translations: Update German translation of man pages.
10806
10807 po4a/de.po | 52 ++++++++++++----------------------------------------
10808 1 file changed, 12 insertions(+), 40 deletions(-)
10809
10810commit 592961ccdbba39c7d60fe37e36764232feb57c60
10811Author: Jia Tan <jiat0218@gmail.com>
10812Date:   2023-05-17 23:09:18 +0800
10813
10814    Translations: Update the German translation.
10815
10816 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
10817 1 file changed, 94 insertions(+), 95 deletions(-)
10818
10819commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524
10820Author: Jia Tan <jiat0218@gmail.com>
10821Date:   2023-05-17 20:30:01 +0800
10822
10823    Translations: Update the Croatian translation.
10824
10825 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
10826 1 file changed, 93 insertions(+), 94 deletions(-)
10827
10828commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d
10829Author: Jia Tan <jiat0218@gmail.com>
10830Date:   2023-05-17 20:26:54 +0800
10831
10832    Translations: Update Korean translation of man pages.
10833
10834 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
10835 1 file changed, 568 insertions(+), 2447 deletions(-)
10836
10837commit d5ef1f6faf7c270f60093629257150085ecf19ca
10838Author: Jia Tan <jiat0218@gmail.com>
10839Date:   2023-05-17 20:13:01 +0800
10840
10841    Translations: Update the Korean translation.
10842
10843 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
10844 1 file changed, 158 insertions(+), 161 deletions(-)
10845
10846commit e22d0b0f2e301e7906d0106689d967ed84362028
10847Author: Jia Tan <jiat0218@gmail.com>
10848Date:   2023-05-16 23:49:09 +0800
10849
10850    Translations: Update the Spanish translation.
10851
10852 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
10853 1 file changed, 158 insertions(+), 161 deletions(-)
10854
10855commit f50da74d52d01f6cfd826a921249e289cf671678
10856Author: Jia Tan <jiat0218@gmail.com>
10857Date:   2023-05-16 23:47:23 +0800
10858
10859    Translations: Update the Romanian translation.
10860
10861 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
10862 1 file changed, 98 insertions(+), 97 deletions(-)
10863
10864commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696
10865Author: Jia Tan <jiat0218@gmail.com>
10866Date:   2023-05-16 23:45:43 +0800
10867
10868    Translations: Update Romanian translation of man pages.
10869
10870 po4a/ro.po | 19 ++++++++++---------
10871 1 file changed, 10 insertions(+), 9 deletions(-)
10872
10873commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea
10874Author: Jia Tan <jiat0218@gmail.com>
10875Date:   2023-05-16 23:43:51 +0800
10876
10877    Translations: Update Ukrainian translation of man pages.
10878
10879 po4a/uk.po | 12 ++++++------
10880 1 file changed, 6 insertions(+), 6 deletions(-)
10881
10882commit c3e8fcbc2db4861f92ad15606c995bd255803c52
10883Author: Jia Tan <jiat0218@gmail.com>
10884Date:   2023-05-16 23:37:54 +0800
10885
10886    Translations: Update the Ukrainian translation.
10887
10888 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
10889 1 file changed, 159 insertions(+), 162 deletions(-)
10890
10891commit 27b81b84fcedbc55aa6e6b21004c44070b15b038
10892Author: Jia Tan <jiat0218@gmail.com>
10893Date:   2023-05-16 23:07:35 +0800
10894
10895    Translations: Update the Polish translation.
10896
10897 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
10898 1 file changed, 155 insertions(+), 161 deletions(-)
10899
10900commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed
10901Author: Jia Tan <jiat0218@gmail.com>
10902Date:   2023-05-16 22:52:14 +0800
10903
10904    Translations: Update the Swedish translation.
10905
10906 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
10907 1 file changed, 158 insertions(+), 161 deletions(-)
10908
10909commit 6699a29673f227c4664826db485ed9f7596320d2
10910Author: Jia Tan <jiat0218@gmail.com>
10911Date:   2023-05-16 21:21:38 +0800
10912
10913    Translations: Update the Esperanto translation.
10914
10915 po/eo.po | 34 +++++++++++++++++-----------------
10916 1 file changed, 17 insertions(+), 17 deletions(-)
10917
10918commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf
10919Author: Jia Tan <jiat0218@gmail.com>
10920Date:   2023-05-13 21:21:54 +0800
10921
10922    liblzma: Slightly rewords lzma_str_list_filters() documentation.
10923
10924    Reword "options required" to "supported options". The previous may have
10925    suggested that the options listed were all required anytime a filter is
10926    used for encoding or decoding. The reword makes this more clear that
10927    adjusting the options is optional.
10928
10929 src/liblzma/api/lzma/filter.h | 2 +-
10930 1 file changed, 1 insertion(+), 1 deletion(-)
10931
10932commit 3374a5359e52f1671d8f831d65827d5020fe2595
10933Author: Jia Tan <jiat0218@gmail.com>
10934Date:   2023-05-11 23:49:23 +0800
10935
10936    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
10937
10938    None of the liblzma functions may throw an exception, so this
10939    attribute should be applied to all liblzma API functions.
10940
10941 src/liblzma/api/lzma/container.h | 5 +++--
10942 1 file changed, 3 insertions(+), 2 deletions(-)
10943
10944commit 8f236574986e7c414c0ea059f441982d1387e6a4
10945Author: Jia Tan <jiat0218@gmail.com>
10946Date:   2023-05-09 20:20:06 +0800
10947
10948    liblzma: Exports lzma_mt_block_size() as an API function.
10949
10950    The lzma_mt_block_size() was previously just an internal function for
10951    the multithreaded .xz encoder. It is used to provide a recommended Block
10952    size for a given filter chain.
10953
10954    This function is helpful to determine the maximum Block size for the
10955    multithreaded .xz encoder when one wants to change the filters between
10956    blocks. Then, this determined Block size can be provided to
10957    lzma_stream_encoder_mt() in the lzma_mt options parameter when
10958    intializing the coder. This requires one to know all the filter chains
10959    they are using before starting to encode (or at least the filter chain
10960    that will need the largest Block size), but that isn't a bad limitation.
10961
10962 src/liblzma/api/lzma/container.h       | 28 ++++++++++++++++++++++++++++
10963 src/liblzma/common/filter_encoder.c    | 16 ++++++++++------
10964 src/liblzma/common/filter_encoder.h    |  6 +-----
10965 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++-----------
10966 src/liblzma/liblzma_generic.map        |  5 +++++
10967 src/liblzma/liblzma_linux.map          |  5 +++++
10968 src/liblzma/lzma/lzma2_encoder.c       |  3 +++
10969 7 files changed, 61 insertions(+), 22 deletions(-)
10970
10971commit d0f33d672a4da7985ebb5ba8d829f885de49c171
10972Author: Jia Tan <jiat0218@gmail.com>
10973Date:   2023-05-08 22:58:09 +0800
10974
10975    liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
10976
10977    This creates an internal liblzma macro to test if the dictionary size
10978    is valid for encoding.
10979
10980 src/liblzma/lz/lz_encoder.c | 4 +---
10981 src/liblzma/lz/lz_encoder.h | 8 ++++++++
10982 2 files changed, 9 insertions(+), 3 deletions(-)
10983
10984commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f
10985Author: Jia Tan <jiat0218@gmail.com>
10986Date:   2023-05-02 20:39:56 +0800
10987
10988    Add NEWS for 5.4.3.
10989
10990 NEWS | 10 ++++++++++
10991 1 file changed, 10 insertions(+)
10992
10993commit 77050b78364ffb6b0f129e742b7c31602d725c08
10994Author: Jia Tan <jiat0218@gmail.com>
10995Date:   2023-05-02 20:39:37 +0800
10996
10997    Add NEWS for 5.2.12.
10998
10999 NEWS | 14 ++++++++++++++
11000 1 file changed, 14 insertions(+)
11001
11002commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0
11003Author: Jia Tan <jiat0218@gmail.com>
11004Date:   2023-05-04 20:38:52 +0800
11005
11006    Translations: Update the Croatian translation.
11007
11008 po/hr.po | 6 +++---
11009 1 file changed, 3 insertions(+), 3 deletions(-)
11010
11011commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9
11012Author: Jia Tan <jiat0218@gmail.com>
11013Date:   2023-05-04 20:30:25 +0800
11014
11015    tuklib_integer.h: Reverts previous commit.
11016
11017    Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an
11018    error if the integer size was 32 bit.
11019
11020 src/common/tuklib_integer.h | 4 ++--
11021 1 file changed, 2 insertions(+), 2 deletions(-)
11022
11023commit 6be460dde07113fe3f08f814b61ddc3264125a96
11024Author: Jia Tan <jiat0218@gmail.com>
11025Date:   2023-05-04 19:25:20 +0800
11026
11027    tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=.
11028
11029 src/common/tuklib_integer.h | 4 ++--
11030 1 file changed, 2 insertions(+), 2 deletions(-)
11031
11032commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878
11033Author: Lasse Collin <lasse.collin@tukaani.org>
11034Date:   2023-05-03 22:46:42 +0300
11035
11036    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
11037
11038    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
11039    Also, this has >= instead of == since ints larger than 32 bits would
11040    work too even if not relevant in practice.
11041
11042 src/common/tuklib_integer.h | 4 ++--
11043 1 file changed, 2 insertions(+), 2 deletions(-)
11044
11045commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68
11046Author: Jia Tan <jiat0218@gmail.com>
11047Date:   2023-04-25 20:06:15 +0800
11048
11049    CI: Adds a build and test for small configuration.
11050
11051 .github/workflows/ci.yml | 5 +++++
11052 1 file changed, 5 insertions(+)
11053
11054commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43
11055Author: Jia Tan <jiat0218@gmail.com>
11056Date:   2023-04-25 20:05:26 +0800
11057
11058    CI: ci_build.sh allows configuring small build.
11059
11060 build-aux/ci_build.sh | 7 ++++++-
11061 1 file changed, 6 insertions(+), 1 deletion(-)
11062
11063commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d
11064Author: Jia Tan <jiat0218@gmail.com>
11065Date:   2023-04-20 20:15:00 +0800
11066
11067    Update THANKS.
11068
11069 THANKS | 1 +
11070 1 file changed, 1 insertion(+)
11071
11072commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
11073Author: Jia Tan <jiat0218@gmail.com>
11074Date:   2023-04-19 22:22:16 +0800
11075
11076    Windows: Include <intrin.h> when needed.
11077
11078    Legacy Windows did not need to #include <intrin.h> to use the MSVC
11079    intrinsics. Newer versions likely just issue a warning, but the MSVC
11080    documentation says to include the header file for the intrinsics we use.
11081
11082    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
11083    needed in tuklib_integer.h to only include <intrin.h> when it will is
11084    actually needed.
11085
11086 src/common/tuklib_integer.h    |  6 ++++++
11087 src/liblzma/common/memcmplen.h | 10 ++++++++++
11088 2 files changed, 16 insertions(+)
11089
11090commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7
11091Author: Jia Tan <jiat0218@gmail.com>
11092Date:   2023-04-19 21:59:03 +0800
11093
11094    tuklib_integer: Use __builtin_clz() with Clang.
11095
11096    Clang has support for __builtin_clz(), but previously Clang would
11097    fallback to either the MSVC intrinsic or the regular C code. This was
11098    discovered due to a bug where a new version of Clang required the
11099    <intrin.h> header file in order to use the MSVC intrinsics.
11100
11101    Thanks to Anton Kochkov for notifying us about the bug.
11102
11103 src/common/tuklib_integer.h | 6 +++---
11104 1 file changed, 3 insertions(+), 3 deletions(-)
11105
11106commit 3938718ce3773c90755785c0df8777f133b7ae29
11107Author: Lasse Collin <lasse.collin@tukaani.org>
11108Date:   2023-04-14 18:42:33 +0300
11109
11110    liblzma: Update project maintainers in lzma.h.
11111
11112    AUTHORS was updated earlier, lzma.h was simply forgotten.
11113
11114 src/liblzma/api/lzma.h | 2 +-
11115 1 file changed, 1 insertion(+), 1 deletion(-)
11116
11117commit 2a89670ab295e377f8b44f5bda6d198deb8ea285
11118Author: Jia Tan <jiat0218@gmail.com>
11119Date:   2023-04-13 20:45:19 +0800
11120
11121    liblzma: Cleans up old commented out code.
11122
11123 src/liblzma/common/alone_encoder.c | 11 -----------
11124 1 file changed, 11 deletions(-)
11125
11126commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81
11127Author: Jia Tan <jiat0218@gmail.com>
11128Date:   2023-04-07 20:46:41 +0800
11129
11130    Docs: Add missing word to SECURITY.md.
11131
11132 .github/SECURITY.md | 2 +-
11133 1 file changed, 1 insertion(+), 1 deletion(-)
11134
11135commit fb9c50f38a17bf37581de4034b36c8df8ec90a87
11136Author: Jia Tan <jiat0218@gmail.com>
11137Date:   2023-04-07 20:43:22 +0800
11138
11139    Update THANKS.
11140
11141 THANKS | 1 +
11142 1 file changed, 1 insertion(+)
11143
11144commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
11145Author: Jia Tan <jiat0218@gmail.com>
11146Date:   2023-04-07 20:42:12 +0800
11147
11148    Docs: Minor edits to SECURITY.md.
11149
11150 .github/SECURITY.md | 25 ++++++++++++++++++++-----
11151 1 file changed, 20 insertions(+), 5 deletions(-)
11152
11153commit 6549df8dd53f358345957e232648fdb699930074
11154Author: Gabriela Gutierrez <gabigutierrez@google.com>
11155Date:   2023-04-07 12:08:30 +0000
11156
11157    Docs: Create SECURITY.md
11158
11159    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
11160
11161 .github/SECURITY.md | 14 ++++++++++++++
11162 1 file changed, 14 insertions(+)
11163
11164commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
11165Author: Jia Tan <jiat0218@gmail.com>
11166Date:   2023-03-28 22:48:24 +0800
11167
11168    CI: Tests for disabling threading on CMake builds.
11169
11170 .github/workflows/ci.yml | 3 ---
11171 build-aux/ci_build.sh    | 4 ++--
11172 2 files changed, 2 insertions(+), 5 deletions(-)
11173
11174commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d
11175Author: Jia Tan <jiat0218@gmail.com>
11176Date:   2023-03-28 22:45:42 +0800
11177
11178    CI: Removes CMakeCache.txt between builds.
11179
11180    If the cache file is not removed, CMake will not reset configurations
11181    back to their default values. In order to make the tests independent, it
11182    is simplest to purge the cache. Unfortunatly, this will slow down the
11183    tests a little and repeat some checks.
11184
11185 build-aux/ci_build.sh | 2 ++
11186 1 file changed, 2 insertions(+)
11187
11188commit 2cb6028fc31de082b7f927632363bb1426b61aaa
11189Author: Jia Tan <jiat0218@gmail.com>
11190Date:   2023-03-28 22:32:40 +0800
11191
11192    CMake: Update liblzma-config.cmake generation.
11193
11194    Now that the threading is configurable, the liblzma CMake package only
11195    needs the threading library when using POSIX threads.
11196
11197 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
11198 1 file changed, 22 insertions(+), 11 deletions(-)
11199
11200commit 4d7fac0b07cc722825ba8d7838c558827e635611
11201Author: Jia Tan <jiat0218@gmail.com>
11202Date:   2023-03-28 22:25:33 +0800
11203
11204    CMake: Allows setting thread method.
11205
11206    The thread method is now configurable for the CMake build. It matches
11207    the Autotools build by allowing ON (pick the best threading method),
11208    OFF (no threading), posix, win95, and vista. If both Windows and
11209    posix threading are both available, then ON will choose Windows
11210    threading. Windows threading will also not use:
11211
11212    target_link_libraries(liblzma Threads::Threads)
11213
11214    since on systems like MinGW-w64 it would link the posix threads
11215    without purpose.
11216
11217 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
11218 1 file changed, 104 insertions(+), 40 deletions(-)
11219
11220commit 20cd905d898c1494dee42b78530769bb9c9f8076
11221Author: Jia Tan <jiat0218@gmail.com>
11222Date:   2023-03-24 23:05:48 +0800
11223
11224    CI: Runs CMake feature tests.
11225
11226    Now, CMake will run similar feature disable tests that the Autotools
11227    version did before. In order to do this without repeating lines in
11228    ci.yml, it now makes sense to use the GitHub Workflow matrix to create
11229    a loop.
11230
11231 .github/workflows/ci.yml | 169 +++++++++++++++--------------------------------
11232 1 file changed, 55 insertions(+), 114 deletions(-)
11233
11234commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229
11235Author: Jia Tan <jiat0218@gmail.com>
11236Date:   2023-03-24 20:35:11 +0800
11237
11238    CI: ci_build.sh allows CMake features to be configured.
11239
11240    Also included various clean ups for style and helper functions for
11241    repeated work.
11242
11243 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++-------------------
11244 1 file changed, 143 insertions(+), 90 deletions(-)
11245
11246commit cf3d1f130e50cf63da4bb1031771605f6f443b6a
11247Author: Jia Tan <jiat0218@gmail.com>
11248Date:   2023-03-24 20:06:33 +0800
11249
11250    CI: Change ci_build.sh to use bash instead of sh.
11251
11252    This script is only meant to be run as part of the CI build/test process
11253    on machines that are known to have bash (Ubuntu and MacOS). If this
11254    assumption changes in the future, then the bash specific commands will
11255    need to be replaced with a more portable option. For now, it is
11256    convenient to use bash commands.
11257
11258 build-aux/ci_build.sh | 2 +-
11259 1 file changed, 1 insertion(+), 1 deletion(-)
11260
11261commit ddfe164368e779c40d061aa4ccc376129e92f8e1
11262Author: Jia Tan <jiat0218@gmail.com>
11263Date:   2023-03-24 20:05:59 +0800
11264
11265    CMake: Only build xzdec if decoders are enabled.
11266
11267 CMakeLists.txt | 2 +-
11268 1 file changed, 1 insertion(+), 1 deletion(-)
11269
11270commit 116e81f002c503d3c3cd12726db8f9116e58ef25
11271Author: Jia Tan <jiat0218@gmail.com>
11272Date:   2023-03-22 15:42:04 +0800
11273
11274    Build: Removes redundant check for LZMA1 filter support.
11275
11276 src/liblzma/lzma/Makefile.inc | 5 +----
11277 1 file changed, 1 insertion(+), 4 deletions(-)
11278
11279commit 0ba234f692772595329d225462d391fe2c199d0a
11280Author: Lasse Collin <lasse.collin@tukaani.org>
11281Date:   2023-03-23 15:14:29 +0200
11282
11283    CMake: Bump maximum policy version to 3.26.
11284
11285    It adds only one new policy related to FOLDERS which we don't use.
11286    This makes it clear that the code is compatible with the policies
11287    up to 3.26.
11288
11289 CMakeLists.txt | 2 +-
11290 1 file changed, 1 insertion(+), 1 deletion(-)
11291
11292commit b0891684b4436aed31510fddcbb218d513bd5489
11293Author: Jia Tan <jiat0218@gmail.com>
11294Date:   2023-03-21 23:36:00 +0800
11295
11296    CMake: Conditionally build xz list.* files if decoders are enabled.
11297
11298 CMakeLists.txt | 9 +++++++--
11299 1 file changed, 7 insertions(+), 2 deletions(-)
11300
11301commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227
11302Author: Jia Tan <jiat0218@gmail.com>
11303Date:   2023-02-25 11:46:50 +0800
11304
11305    CMake: Allow configuring features as cache variables.
11306
11307    This allows users to change the features they build either in
11308    CMakeCache.txt or by using a CMake GUI. The sources built for
11309    liblzma are affected by this too, so only the necessary files
11310    will be compiled.
11311
11312 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
11313 1 file changed, 391 insertions(+), 137 deletions(-)
11314
11315commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff
11316Author: Lasse Collin <lasse.collin@tukaani.org>
11317Date:   2023-03-21 14:07:51 +0200
11318
11319    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
11320
11321    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
11322    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
11323
11324 configure.ac | 3 +++
11325 1 file changed, 3 insertions(+)
11326
11327commit 53cc475f2652d9e390ca002018dfd0af0626ef80
11328Author: Lasse Collin <lasse.collin@tukaani.org>
11329Date:   2023-03-21 14:04:37 +0200
11330
11331    Build: configure.ac: Use AS_IF and AS_CASE where required.
11332
11333    This makes no functional difference in the generated configure
11334    (at least with the Autotools versions I have installed) but this
11335    change might prevent future bugs like the one that was just
11336    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
11337
11338 configure.ac | 30 +++++++++++++++---------------
11339 1 file changed, 15 insertions(+), 15 deletions(-)
11340
11341commit 3b8890a40233b6c783bb101ec14405e786871775
11342Author: Lasse Collin <lasse.collin@tukaani.org>
11343Date:   2023-03-21 13:12:03 +0200
11344
11345    Update THANKS.
11346
11347 THANKS | 1 +
11348 1 file changed, 1 insertion(+)
11349
11350commit 5a5bd7f871818029d5ccbe189f087f591258c294
11351Author: Lasse Collin <lasse.collin@tukaani.org>
11352Date:   2023-03-21 13:11:49 +0200
11353
11354    Build: Fix --disable-threads breaking the building of shared libs.
11355
11356    This is broken in the releases 5.2.6 to 5.4.2. A workaround
11357    for these releases is to pass EGREP='grep -E' as an argument
11358    to configure in addition to --disable-threads.
11359
11360    The problem appeared when m4/ax_pthread.m4 was updated in
11361    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
11362    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
11363    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
11364    but this was only executed if POSIX threads were enabled.
11365    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
11366    omits it as AC_PROG_EGREP has already been required earlier.
11367    Thus, if not using POSIX threads, the shell variable EGREP
11368    would be undefined in the Libtool code in configure.
11369
11370    ax_pthread.m4 is fine. The bug was in configure.ac which called
11371    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
11372    ensures that all AC_REQUIREs get always run.
11373
11374    Thanks to Frank Busse for reporting the bug.
11375    Fixes: https://github.com/tukaani-project/xz/issues/45
11376
11377 configure.ac | 16 ++++++++--------
11378 1 file changed, 8 insertions(+), 8 deletions(-)
11379
11380commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06
11381Author: Lasse Collin <lasse.collin@tukaani.org>
11382Date:   2023-03-19 22:45:59 +0200
11383
11384    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
11385
11386    Thanks to Christian Hesse for reporting the issue.
11387    Fixes: https://github.com/tukaani-project/xz/issues/44
11388
11389 src/liblzma/common/memcmplen.h | 3 ++-
11390 1 file changed, 2 insertions(+), 1 deletion(-)
11391
11392commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce
11393Author: Jia Tan <jiat0218@gmail.com>
11394Date:   2023-03-18 22:10:57 +0800
11395
11396    Add NEWS for 5.4.2.
11397
11398 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
11399 1 file changed, 48 insertions(+)
11400
11401commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6
11402Author: Jia Tan <jiat0218@gmail.com>
11403Date:   2023-03-18 22:10:12 +0800
11404
11405    Add NEWS for 5.2.11.
11406
11407 NEWS | 27 +++++++++++++++++++++++++++
11408 1 file changed, 27 insertions(+)
11409
11410commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40
11411Author: Lasse Collin <lasse.collin@tukaani.org>
11412Date:   2023-03-18 16:00:54 +0200
11413
11414    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
11415
11416 COPYING.GPLv3 | 8 ++++----
11417 1 file changed, 4 insertions(+), 4 deletions(-)
11418
11419commit b473a92891f7e991398a3b5eff305f6f2b6d7293
11420Author: Lasse Collin <lasse.collin@tukaani.org>
11421Date:   2023-03-18 15:51:57 +0200
11422
11423    Change a few HTTP URLs to HTTPS.
11424
11425    The xz man page timestamp was intentionally left unchanged.
11426
11427 INSTALL                    |  2 +-
11428 README                     |  8 ++++----
11429 configure.ac               |  2 +-
11430 dos/INSTALL.txt            |  4 ++--
11431 src/liblzma/api/lzma.h     |  8 ++++----
11432 src/liblzma/check/sha256.c |  2 +-
11433 src/xz/xz.1                |  2 +-
11434 windows/INSTALL-MinGW.txt  | 10 +++++-----
11435 8 files changed, 19 insertions(+), 19 deletions(-)
11436
11437commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8
11438Author: Jia Tan <jiat0218@gmail.com>
11439Date:   2023-03-18 00:40:28 +0800
11440
11441    CMake: Fix typo in a comment.
11442
11443 CMakeLists.txt | 2 +-
11444 1 file changed, 1 insertion(+), 1 deletion(-)
11445
11446commit 76e2315e14c399c15cc90e7930fd4d3d086b0227
11447Author: Lasse Collin <lasse.collin@tukaani.org>
11448Date:   2023-03-17 18:36:22 +0200
11449
11450    Windows: build.bash: Copy liblzma API docs to the output package.
11451
11452 windows/build.bash | 3 ++-
11453 1 file changed, 2 insertions(+), 1 deletion(-)
11454
11455commit 133cf55edc5ce92952d2709abd992e48ef1f45ee
11456Author: Lasse Collin <lasse.collin@tukaani.org>
11457Date:   2023-03-17 08:53:38 +0200
11458
11459    Windows: Add microlzma_*.c to the VS project files.
11460
11461    These should have been included in 5.3.2alpha already.
11462
11463 windows/vs2013/liblzma.vcxproj     | 2 ++
11464 windows/vs2013/liblzma_dll.vcxproj | 2 ++
11465 windows/vs2017/liblzma.vcxproj     | 2 ++
11466 windows/vs2017/liblzma_dll.vcxproj | 2 ++
11467 windows/vs2019/liblzma.vcxproj     | 2 ++
11468 windows/vs2019/liblzma_dll.vcxproj | 2 ++
11469 6 files changed, 12 insertions(+)
11470
11471commit 75c9ca450fab6982fda9286b168081c9d54126cd
11472Author: Lasse Collin <lasse.collin@tukaani.org>
11473Date:   2023-03-17 08:43:51 +0200
11474
11475    CMake: Add microlzma_*.c to the build.
11476
11477    These should have been included in 5.3.2alpha already.
11478
11479 CMakeLists.txt | 2 ++
11480 1 file changed, 2 insertions(+)
11481
11482commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b
11483Author: Lasse Collin <lasse.collin@tukaani.org>
11484Date:   2023-03-17 08:41:36 +0200
11485
11486    Build: Update comments about unaligned access to mention 64-bit.
11487
11488 cmake/tuklib_integer.cmake | 7 +++----
11489 m4/tuklib_integer.m4       | 4 ++--
11490 2 files changed, 5 insertions(+), 6 deletions(-)
11491
11492commit 5e57e3301319f20c35f8111dea73fa58403b96b1
11493Author: Lasse Collin <lasse.collin@tukaani.org>
11494Date:   2023-03-17 00:02:30 +0200
11495
11496    Tests: Update .gitignore.
11497
11498 .gitignore | 3 ++-
11499 1 file changed, 2 insertions(+), 1 deletion(-)
11500
11501commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac
11502Author: Lasse Collin <lasse.collin@tukaani.org>
11503Date:   2023-03-14 20:04:03 +0200
11504
11505    po4a/update-po: Display the script name consistently in error messages.
11506
11507 po4a/update-po | 2 +-
11508 1 file changed, 1 insertion(+), 1 deletion(-)
11509
11510commit 509157c80c500426ec853bd992d684ebafc8500c
11511Author: Jia Tan <jiat0218@gmail.com>
11512Date:   2023-03-17 01:30:36 +0800
11513
11514    Doc: Rename Doxygen HTML doc directory name liblzma => api.
11515
11516    When the docs are installed, calling the directory "liblzma" is
11517    confusing since multiple other files in the doc directory are for
11518    liblzma. This should also make it more natural for distros when they
11519    package the documentation.
11520
11521 .gitignore             |  2 +-
11522 Makefile.am            | 18 +++++++++---------
11523 PACKAGERS              |  4 ++--
11524 doxygen/Doxyfile       |  2 +-
11525 doxygen/update-doxygen | 18 +++++++++---------
11526 5 files changed, 22 insertions(+), 22 deletions(-)
11527
11528commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3
11529Author: Jia Tan <jiat0218@gmail.com>
11530Date:   2023-03-16 22:07:15 +0800
11531
11532    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
11533
11534    This was left in by mistake since an early version of the ARM64 filter
11535    used a different struct for its options.
11536
11537 src/liblzma/api/lzma/bcj.h | 2 +-
11538 1 file changed, 1 insertion(+), 1 deletion(-)
11539
11540commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d
11541Author: Jia Tan <jiat0218@gmail.com>
11542Date:   2023-03-16 21:44:02 +0800
11543
11544    CI: Add doxygen as a dependency.
11545
11546    Autogen now requires --no-doxygen or having doxygen installed to run
11547    without errors.
11548
11549 .github/workflows/ci.yml | 5 ++---
11550 1 file changed, 2 insertions(+), 3 deletions(-)
11551
11552commit f68f4b27f62f53fdac570885a1f4f23367ce6599
11553Author: Lasse Collin <lasse.collin@tukaani.org>
11554Date:   2023-03-15 19:19:13 +0200
11555
11556    COPYING: Add a note about the included Doxygen-generated HTML.
11557
11558 COPYING | 11 +++++++++++
11559 1 file changed, 11 insertions(+)
11560
11561commit 8979308528c1f45cb9ee52d511f05232b4ad90a1
11562Author: Jia Tan <jiat0218@gmail.com>
11563Date:   2023-03-16 21:41:09 +0800
11564
11565    Doc: Update PACKAGERS with details about liblzma API docs install.
11566
11567 PACKAGERS | 22 ++++++++++++++++------
11568 1 file changed, 16 insertions(+), 6 deletions(-)
11569
11570commit 55ba6e93004842ae0a0792214a23504267ad8f43
11571Author: Jia Tan <jiat0218@gmail.com>
11572Date:   2023-03-16 21:38:32 +0800
11573
11574    liblzma: Add set lzma.h as the main page for Doxygen documentation.
11575
11576    The \mainpage command is used in the first block of comments in lzma.h.
11577    This changes the previously nearly empty index.html to use the first
11578    comment block in lzma.h for its contents.
11579
11580    lzma.h is no longer documented separately, but this is for the better
11581    since lzma.h only defined a few macros that users do not need to use.
11582    The individual API header files all have a disclaimer that they should
11583    not be #included directly, so there should be no confusion on the fact
11584    that lzma.h should be the only header used by applications.
11585
11586    Additionally, the note "See ../lzma.h for information about liblzma as
11587    a whole." was removed since lzma.h is now the main page of the
11588    generated HTML and does not have its own page anymore. So it would be
11589    confusing in the HTML version and was only a "nice to have" when
11590    browsing the source files.
11591
11592 src/liblzma/api/lzma.h              | 1 +
11593 src/liblzma/api/lzma/base.h         | 2 --
11594 src/liblzma/api/lzma/bcj.h          | 2 --
11595 src/liblzma/api/lzma/block.h        | 2 --
11596 src/liblzma/api/lzma/check.h        | 2 --
11597 src/liblzma/api/lzma/container.h    | 2 --
11598 src/liblzma/api/lzma/delta.h        | 2 --
11599 src/liblzma/api/lzma/filter.h       | 2 --
11600 src/liblzma/api/lzma/hardware.h     | 2 --
11601 src/liblzma/api/lzma/index.h        | 2 --
11602 src/liblzma/api/lzma/index_hash.h   | 4 +---
11603 src/liblzma/api/lzma/lzma12.h       | 2 --
11604 src/liblzma/api/lzma/stream_flags.h | 2 --
11605 src/liblzma/api/lzma/version.h      | 2 --
11606 src/liblzma/api/lzma/vli.h          | 2 --
11607 15 files changed, 2 insertions(+), 29 deletions(-)
11608
11609commit 16f21255597f6a57e5692780f962cdc090f62b8c
11610Author: Jia Tan <jiat0218@gmail.com>
11611Date:   2023-03-16 21:37:32 +0800
11612
11613    Build: Generate doxygen documentation in autogen.sh.
11614
11615    Another command line option (--no-doxygen) was added to disable
11616    creating the doxygen documenation in cases where it not wanted or
11617    if the doxygen tool is not installed.
11618
11619 autogen.sh | 35 +++++++++++++++++++++++++++++------
11620 1 file changed, 29 insertions(+), 6 deletions(-)
11621
11622commit 1321852a3be7196bd7fcfd146221a5669e46407c
11623Author: Jia Tan <jiat0218@gmail.com>
11624Date:   2023-03-16 21:35:55 +0800
11625
11626    Build: Create doxygen/update-doxygen script.
11627
11628    This is a helper script to generate the Doxygen documentation. It can be
11629    run in 'liblzma' or 'internal' mode by setting the first argument. It
11630    will default to 'liblzma' mode and only generate documentation for the
11631    liblzma API header files.
11632
11633    The helper script will be run during the custom mydist hook when we
11634    create releases. This hook already alters the source directory, so its
11635    fine to do it here too. This way, we can include the Doxygen generated
11636    files in the distrubtion and when installing.
11637
11638    In 'liblzma' mode, the JavaScript is stripped from the .html files and
11639    the .js files are removed. This avoids license hassle from jQuery and
11640    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
11641
11642 Makefile.am            |   1 +
11643 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
11644 2 files changed, 112 insertions(+)
11645
11646commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b
11647Author: Jia Tan <jiat0218@gmail.com>
11648Date:   2023-03-16 21:34:36 +0800
11649
11650    Build: Install Doxygen docs and include in distribution if generated.
11651
11652    Added a install-data-local target to install the Doxygen documentation
11653    only when it has been generated. In order to correctly remove the docs,
11654    a corresponding uninstall-local target was added.
11655
11656    If the doxygen docs exist in the source tree, they will also be included
11657    in the distribution now too.
11658
11659 Makefile.am | 18 ++++++++++++++++++
11660 1 file changed, 18 insertions(+)
11661
11662commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73
11663Author: Lasse Collin <lasse.collin@tukaani.org>
11664Date:   2023-03-16 21:23:48 +0800
11665
11666    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
11667
11668    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
11669    can have the tags that need to be configured piped into the doxygen
11670    command through stdin with the overrides after Doxyfile's contents.
11671
11672    Going forward, the documentation should be generated in two different
11673    modes: liblzma or internal.
11674
11675    liblzma is useful for most users. It is the documentation for just
11676    the liblzma API header files. This is the default.
11677
11678    internal is for people who want to understand how xz and liblzma work.
11679    It might be useful for people who want to contribute to the project.
11680
11681 .gitignore                      |   3 +-
11682 Makefile.am                     |   1 -
11683 configure.ac                    |  40 ---
11684 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++---------------
11685 4 files changed, 456 insertions(+), 309 deletions(-)
11686
11687commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f
11688Author: Jia Tan <jiat0218@gmail.com>
11689Date:   2023-02-28 23:22:36 +0800
11690
11691    Tests: Remove unused macros and functions.
11692
11693 tests/tests.h | 75 -----------------------------------------------------------
11694 1 file changed, 75 deletions(-)
11695
11696commit af55191102f01e76de658c881299f0909ca0feda
11697Author: Jia Tan <jiat0218@gmail.com>
11698Date:   2022-12-29 21:52:15 +0800
11699
11700    liblzma: Defines masks for return values from lzma_index_checks().
11701
11702 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++
11703 tests/test_index.c           | 22 +++++++++++-----------
11704 2 files changed, 34 insertions(+), 11 deletions(-)
11705
11706commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73
11707Author: Jia Tan <jiat0218@gmail.com>
11708Date:   2023-01-12 22:29:07 +0800
11709
11710    Tests: Refactors existing lzma_index tests.
11711
11712    Converts the existing lzma_index tests into tuktests and covers every
11713    API function from index.h except for lzma_file_info_decoder, which can
11714    be tested in the future.
11715
11716 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
11717 1 file changed, 1492 insertions(+), 544 deletions(-)
11718
11719commit 717aa3651ce582807f379d8654c2516e1594df77
11720Author: Lasse Collin <lasse.collin@tukaani.org>
11721Date:   2023-03-11 18:42:08 +0200
11722
11723    xz: Simplify the error-label in Capsicum sandbox code.
11724
11725    Also remove unneeded "sandbox_allowed = false;" as this code
11726    will never be run more than once (making it work with multiple
11727    input files isn't trivial).
11728
11729 src/xz/file_io.c | 27 ++++++++++++---------------
11730 1 file changed, 12 insertions(+), 15 deletions(-)
11731
11732commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75
11733Author: Lasse Collin <lasse.collin@tukaani.org>
11734Date:   2023-03-07 19:59:23 +0200
11735
11736    xz: Make Capsicum sandbox more strict with stdin and stdout.
11737
11738 src/xz/file_io.c | 8 ++++++++
11739 1 file changed, 8 insertions(+)
11740
11741commit 916448d624aaf55cef0fc3e53754affb8c4f309d
11742Author: Jia Tan <jiat0218@gmail.com>
11743Date:   2023-03-08 23:08:46 +0800
11744
11745    Revert: "Add warning if Capsicum sandbox system calls are unsupported."
11746
11747    The warning causes the exit status to be 2, so this will cause problems
11748    for many scripted use cases for xz. The sandbox usage is already very
11749    limited already, so silently disabling this allows it to be more usable.
11750
11751 src/xz/file_io.c | 10 ++++------
11752 1 file changed, 4 insertions(+), 6 deletions(-)
11753
11754commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f
11755Author: Jia Tan <jiat0218@gmail.com>
11756Date:   2023-03-07 20:02:22 +0800
11757
11758    xz: Fix -Wunused-label in io_sandbox_enter().
11759
11760    Thanks to Xin Li for recommending the fix.
11761
11762 src/xz/file_io.c | 4 ++--
11763 1 file changed, 2 insertions(+), 2 deletions(-)
11764
11765commit 5fb936786601a1cd013a5d436adde65982b1e13c
11766Author: Jia Tan <jiat0218@gmail.com>
11767Date:   2023-03-06 21:37:45 +0800
11768
11769    xz: Add warning if Capsicum sandbox system calls are unsupported.
11770
11771    The warning is only used when errno == ENOSYS. Otherwise, xz still
11772    issues a fatal error.
11773
11774 src/xz/file_io.c | 2 ++
11775 1 file changed, 2 insertions(+)
11776
11777commit 61ee82cb1232a402c82282bbae42821f2b952b0d
11778Author: Jia Tan <jiat0218@gmail.com>
11779Date:   2023-03-06 21:27:53 +0800
11780
11781    xz: Skip Capsicum sandbox system calls when they are unsupported.
11782
11783    If a system has the Capsicum header files but does not actually
11784    implement the system calls, then this would render xz unusable. Instead,
11785    we can check if errno == ENOSYS and not issue a fatal error.
11786
11787 src/xz/file_io.c | 22 +++++++++++++++++-----
11788 1 file changed, 17 insertions(+), 5 deletions(-)
11789
11790commit f070722b57ba975a0dff36492d766f03026b1d21
11791Author: Jia Tan <jiat0218@gmail.com>
11792Date:   2023-03-06 21:08:26 +0800
11793
11794    xz: Reorder cap_enter() to beginning of capsicum sandbox code.
11795
11796    cap_enter() puts the process into the sandbox. If later calls to
11797    cap_rights_limit() fail, then the process can still have some extra
11798    protections.
11799
11800 src/xz/file_io.c | 6 +++---
11801 1 file changed, 3 insertions(+), 3 deletions(-)
11802
11803commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f
11804Author: Jia Tan <jiat0218@gmail.com>
11805Date:   2023-02-24 23:46:23 +0800
11806
11807    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
11808
11809    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
11810    usable in an encoder even if it returns false (success). If liblzma
11811    is built with default configurations, then the options will always be
11812    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
11813    the options may not be usable depending on the preset level requested.
11814
11815    The documentation was updated to reflect this complexity, since this
11816    behavior was unclear before.
11817
11818 src/liblzma/api/lzma/lzma12.h | 5 +++++
11819 1 file changed, 5 insertions(+)
11820
11821commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99
11822Author: Lasse Collin <lasse.collin@tukaani.org>
11823Date:   2023-02-27 18:38:35 +0200
11824
11825    CMake: Require that the C compiler supports C99 or a newer standard.
11826
11827    Thanks to autoantwort for reporting the issue and suggesting
11828    a different patch:
11829    https://github.com/tukaani-project/xz/pull/42
11830
11831 CMakeLists.txt | 8 ++++++++
11832 1 file changed, 8 insertions(+)
11833
11834commit 9aa7fdeb04c486d2700967090956af88fdccab7e
11835Author: Jia Tan <jiat0218@gmail.com>
11836Date:   2023-02-24 18:10:37 +0800
11837
11838    Tests: Small tweak to test-vli.c.
11839
11840    The static global variables can be disabled if encoders and decoders
11841    are not built. If they are not disabled and -Werror is used, it will
11842    cause an usused warning as an error.
11843
11844 tests/test_vli.c | 2 ++
11845 1 file changed, 2 insertions(+)
11846
11847commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9
11848Author: Jia Tan <jiat0218@gmail.com>
11849Date:   2023-02-06 21:46:43 +0800
11850
11851    liblzma: Replace '\n' -> newline in filter.h documentation.
11852
11853    The '\n' renders as a newline when the comments are converted to html
11854    by Doxygen.
11855
11856 src/liblzma/api/lzma/filter.h | 2 +-
11857 1 file changed, 1 insertion(+), 1 deletion(-)
11858
11859commit 002006be62d77c706565fa6ec828bea64be302da
11860Author: Jia Tan <jiat0218@gmail.com>
11861Date:   2023-02-06 21:45:37 +0800
11862
11863    liblzma: Shorten return description for two functions in filter.h.
11864
11865    Shorten the description for lzma_raw_encoder_memusage() and
11866    lzma_raw_decoder_memusage().
11867
11868 src/liblzma/api/lzma/filter.h | 8 ++------
11869 1 file changed, 2 insertions(+), 6 deletions(-)
11870
11871commit 463d9359b8595f01d44ada1739d75aeb87f36524
11872Author: Jia Tan <jiat0218@gmail.com>
11873Date:   2023-02-06 21:44:45 +0800
11874
11875    liblzma: Reword a few lines in filter.h
11876
11877 src/liblzma/api/lzma/filter.h | 10 +++++-----
11878 1 file changed, 5 insertions(+), 5 deletions(-)
11879
11880commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0
11881Author: Jia Tan <jiat0218@gmail.com>
11882Date:   2023-02-06 21:35:06 +0800
11883
11884    liblzma: Improve documentation in filter.h.
11885
11886    All functions now explicitly specify parameter and return values.
11887    The notes and code annotations were moved before the parameter and
11888    return value descriptions for consistency.
11889
11890    Also, the description above lzma_filter_encoder_is_supported() about
11891    not being able to list available filters was removed since
11892    lzma_str_list_filters() will do this.
11893
11894 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
11895 1 file changed, 143 insertions(+), 83 deletions(-)
11896
11897commit 805b45cd60bfd5da3d3d89077de3789df179b324
11898Author: Lasse Collin <lasse.collin@tukaani.org>
11899Date:   2023-02-23 20:46:16 +0200
11900
11901    Update THANKS.
11902
11903 THANKS | 1 +
11904 1 file changed, 1 insertion(+)
11905
11906commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
11907Author: Lasse Collin <lasse.collin@tukaani.org>
11908Date:   2023-02-21 22:57:10 +0200
11909
11910    liblzma: Avoid null pointer + 0 (undefined behavior in C).
11911
11912    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
11913    adding 0 to a null pointer is undefined behavior. As of writing,
11914    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
11915    I'm not aware of any compiler that would take advantage of this
11916    when optimizing (Clang 15 included). It's good to avoid this anyway
11917    since compilers might some day infer that pointer arithmetic implies
11918    that the pointer is not NULL. That is, the following foo() would then
11919    unconditionally return 0, even for foo(NULL, 0):
11920
11921        void bar(char *a, char *b);
11922
11923        int foo(char *a, size_t n)
11924        {
11925            bar(a, a + n);
11926            return a == NULL;
11927        }
11928
11929    In contrast to C, C++ explicitly allows null pointer + 0. So if
11930    the above is compiled as C++ then there is no undefined behavior
11931    in the foo(NULL, 0) call.
11932
11933    To me it seems that changing the C standard would be the sane
11934    thing to do (just add one sentence) as it would ensure that a huge
11935    amount of old code won't break in the future. Based on web searches
11936    it seems that a large number of codebases (where null pointer + 0
11937    occurs) are being fixed instead to be future-proof in case compilers
11938    will some day optimize based on it (like making the above foo(NULL, 0)
11939    return 0) which in the worst case will cause security bugs.
11940
11941    Some projects don't plan to change it. For example, gnulib and thus
11942    many GNU tools currently require that null pointer + 0 is defined:
11943
11944        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
11945
11946        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
11947
11948    In XZ Utils null pointer + 0 issue should be fixed after this
11949    commit. This adds a few if-statements and thus branches to avoid
11950    null pointer + 0. These check for size > 0 instead of ptr != NULL
11951    because this way bugs where size > 0 && ptr == NULL will likely
11952    get caught quickly. None of them are in hot spots so it shouldn't
11953    matter for performance.
11954
11955    A little less readable version would be replacing
11956
11957        ptr + offset
11958
11959    with
11960
11961        offset != 0 ? ptr + offset : ptr
11962
11963    or creating a macro for it:
11964
11965        #define my_ptr_add(ptr, offset) \
11966                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
11967
11968    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
11969    Clang >= 7, and Clang-based ICX to optimize it to the very same code
11970    as ptr + offset. That is, it won't create a branch. So for hot code
11971    this could be a good solution to avoid null pointer + 0. Unfortunately
11972    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
11973    branch from my_ptr_add().
11974
11975    Thanks to Marcin Kowalczyk for reporting the problem:
11976    https://github.com/tukaani-project/xz/issues/36
11977
11978 src/liblzma/common/block_decoder.c |  5 ++++-
11979 src/liblzma/common/block_encoder.c |  7 +++++--
11980 src/liblzma/common/common.c        | 20 ++++++++++++++------
11981 src/liblzma/common/index_decoder.c | 13 ++++++++++---
11982 src/liblzma/common/index_encoder.c | 11 +++++++++--
11983 src/liblzma/common/index_hash.c    | 13 ++++++++++---
11984 src/liblzma/common/lzip_decoder.c  |  6 +++++-
11985 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
11986 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
11987 src/liblzma/simple/simple_coder.c  |  6 ++++--
11988 10 files changed, 77 insertions(+), 23 deletions(-)
11989
11990commit fa9065fac54194fe0407fc7f0cc9633fdce13c21
11991Author: Jia Tan <jiat0218@gmail.com>
11992Date:   2023-02-07 00:00:44 +0800
11993
11994    liblzma: Adjust container.h for consistency with filter.h.
11995
11996 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
11997 1 file changed, 9 insertions(+), 11 deletions(-)
11998
11999commit 00a721b63d82dfb658dca8d8cb599d8a245c663f
12000Author: Jia Tan <jiat0218@gmail.com>
12001Date:   2023-02-07 00:00:09 +0800
12002
12003    liblzma: Fix small typos and reword a few things in filter.h.
12004
12005 src/liblzma/api/lzma/container.h | 13 ++++++-------
12006 1 file changed, 6 insertions(+), 7 deletions(-)
12007
12008commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39
12009Author: Jia Tan <jiat0218@gmail.com>
12010Date:   2023-02-06 23:42:08 +0800
12011
12012    liblzma: Convert list of flags in lzma_mt to bulleted list.
12013
12014 src/liblzma/api/lzma/container.h | 9 ++++++---
12015 1 file changed, 6 insertions(+), 3 deletions(-)
12016
12017commit dbd47622eb99fefb3538a22baec3def002aa56f5
12018Author: Jia Tan <jiat0218@gmail.com>
12019Date:   2023-01-26 23:17:41 +0800
12020
12021    liblzma: Fix typo in documentation in container.h
12022
12023    lzma_microlzma_decoder -> lzma_microlzma_encoder
12024
12025 src/liblzma/api/lzma/container.h | 2 +-
12026 1 file changed, 1 insertion(+), 1 deletion(-)
12027
12028commit 14cd30806d69e55906073745bcce3ee50e0ec942
12029Author: Jia Tan <jiat0218@gmail.com>
12030Date:   2023-01-26 23:16:34 +0800
12031
12032    liblzma: Improve documentation for container.h
12033
12034    Standardizing each function to always specify parameters and return
12035    values. Also moved the parameters and return values to the end of each
12036    function description.
12037
12038 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
12039 1 file changed, 93 insertions(+), 53 deletions(-)
12040
12041commit c9c8bfae3502842dcead85eeb2b951b437c2cd88
12042Author: Jia Tan <jiat0218@gmail.com>
12043Date:   2023-02-22 20:59:41 +0800
12044
12045    CMake: Add LZIP decoder test to list of tests.
12046
12047 CMakeLists.txt | 1 +
12048 1 file changed, 1 insertion(+)
12049
12050commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a
12051Author: Lasse Collin <lasse.collin@tukaani.org>
12052Date:   2023-02-17 20:56:49 +0200
12053
12054    Update THANKS.
12055
12056 THANKS | 1 +
12057 1 file changed, 1 insertion(+)
12058
12059commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
12060Author: Lasse Collin <lasse.collin@tukaani.org>
12061Date:   2023-02-17 20:48:28 +0200
12062
12063    Build: Use only the generic symbol versioning on MicroBlaze.
12064
12065    On MicroBlaze, GCC 12 is broken in sense that
12066    __has_attribute(__symver__) returns true but it still doesn't
12067    support the __symver__ attribute even though the platform is ELF
12068    and symbol versioning is supported if using the traditional
12069    __asm__(".symver ...") method. Avoiding the traditional method is
12070    good because it breaks LTO (-flto) builds with GCC.
12071
12072    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
12073
12074    For now the only extra symbols in liblzma_linux.map are the
12075    compatibility symbols with the patch that spread from RHEL/CentOS 7.
12076    These require the use of __symver__ attribute or __asm__(".symver ...")
12077    in the C code. Compatibility with the patch from CentOS 7 doesn't
12078    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
12079    instead. It doesn't require anything special in the C code and thus
12080    no LTO issues either.
12081
12082    An alternative would be to detect support for __symver__
12083    attribute in configure.ac and CMakeLists.txt and fall back
12084    to __asm__(".symver ...") but then LTO would be silently broken
12085    on MicroBlaze. It sounds likely that MicroBlaze is a special
12086    case so let's treat it as a such because that is simpler. If
12087    a similar issue exists on some other platform too then hopefully
12088    someone will report it and this can be reconsidered.
12089
12090    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
12091    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
12092    The problem breaks the build so it's easy to notice and can be fixed
12093    later.)
12094
12095    Thanks to Vincent Fazio for reporting the problem and proposing
12096    a patch (in the end that solution wasn't used):
12097    https://github.com/tukaani-project/xz/pull/32
12098
12099 configure.ac | 12 ++++++++++--
12100 1 file changed, 10 insertions(+), 2 deletions(-)
12101
12102commit d831072cceca458d94d2d5da201862f6d43a417b
12103Author: Lasse Collin <lasse.collin@tukaani.org>
12104Date:   2023-02-16 21:09:00 +0200
12105
12106    liblzma: Very minor API doc tweaks.
12107
12108    Use "member" to refer to struct members as that's the term used
12109    by the C standard.
12110
12111    Use lzma_options_delta.dist and such in docs so that in Doxygen's
12112    HTML output they will link to the doc of the struct member.
12113
12114    Clean up a few trailing white spaces too.
12115
12116 src/liblzma/api/lzma/block.h        |  6 +++---
12117 src/liblzma/api/lzma/delta.h        |  6 +++---
12118 src/liblzma/api/lzma/index.h        | 10 +++++-----
12119 src/liblzma/api/lzma/stream_flags.h |  6 +++---
12120 4 files changed, 14 insertions(+), 14 deletions(-)
12121
12122commit f029daea39c215fd7d5cb6b6798818b055cf5b22
12123Author: Jia Tan <jiat0218@gmail.com>
12124Date:   2023-02-17 00:54:33 +0800
12125
12126    liblzma: Adjust spacing in doc headers in bcj.h.
12127
12128 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
12129 1 file changed, 7 insertions(+), 7 deletions(-)
12130
12131commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c
12132Author: Jia Tan <jiat0218@gmail.com>
12133Date:   2023-02-17 00:44:44 +0800
12134
12135    liblzma: Adjust documentation in bcj.h for consistent style.
12136
12137 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
12138 1 file changed, 22 insertions(+), 21 deletions(-)
12139
12140commit efa498c13b883810497e0ea8a169efd6f48f5026
12141Author: Jia Tan <jiat0218@gmail.com>
12142Date:   2023-02-17 00:36:05 +0800
12143
12144    liblzma: Rename field => member in documentation.
12145
12146    Also adjusted preset value => preset level.
12147
12148 src/liblzma/api/lzma/base.h         | 18 +++++++--------
12149 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
12150 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
12151 src/liblzma/api/lzma/delta.h        | 12 +++++-----
12152 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
12153 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
12154 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
12155 7 files changed, 95 insertions(+), 95 deletions(-)
12156
12157commit 718b22a6c5e3ee5de123323ea798872381f9320e
12158Author: Lasse Collin <lasse.collin@tukaani.org>
12159Date:   2023-02-16 17:59:50 +0200
12160
12161    liblzma: Silence a warning from MSVC.
12162
12163    It gives C4146 here since unary minus with unsigned integer
12164    is still unsigned (which is the intention here). Doing it
12165    with substraction makes it clearer and avoids the warning.
12166
12167    Thanks to Nathan Moinvaziri for reporting this.
12168
12169 src/liblzma/check/crc64_fast.c | 2 +-
12170 1 file changed, 1 insertion(+), 1 deletion(-)
12171
12172commit 87c53553fa7d50f777b4edfa99f2083628f590fe
12173Author: Jia Tan <jiat0218@gmail.com>
12174Date:   2023-02-16 21:04:54 +0800
12175
12176     liblzma: Improve documentation for stream_flags.h
12177
12178    Standardizing each function to always specify parameters and return
12179    values. Also moved the parameters and return values to the end of each
12180    function description.
12181
12182    A few small things were reworded and long sentences broken up.
12183
12184 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
12185 1 file changed, 46 insertions(+), 30 deletions(-)
12186
12187commit 13d99e75a543e9e5f8633cc241eae55b91a3b242
12188Author: Jia Tan <jiat0218@gmail.com>
12189Date:   2023-02-14 21:50:16 +0800
12190
12191    liblzma: Improve documentation in lzma12.h.
12192
12193    All functions now explicitly specify parameter and return values.
12194
12195 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
12196 1 file changed, 23 insertions(+), 9 deletions(-)
12197
12198commit 43ec344c868f930e96879eb9e49212cce92a9884
12199Author: Jia Tan <jiat0218@gmail.com>
12200Date:   2023-01-27 22:44:06 +0800
12201
12202    liblzma: Improve documentation in check.h.
12203
12204    All functions now explicitly specify parameter and return values.
12205    Also moved the note about SHA-256 functions not being exported to the
12206    top of the file.
12207
12208 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
12209 1 file changed, 28 insertions(+), 13 deletions(-)
12210
12211commit 9c71db4e884fd49aea3d1e711036bff45ca66487
12212Author: Jia Tan <jiat0218@gmail.com>
12213Date:   2023-02-08 21:33:52 +0800
12214
12215    liblzma: Improve documentation in index.h
12216
12217    All functions now explicitly specify parameter and return values.
12218
12219 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
12220 1 file changed, 126 insertions(+), 51 deletions(-)
12221
12222commit 421f2f2e160720f6009e3b6a125cafe2feaa9419
12223Author: Jia Tan <jiat0218@gmail.com>
12224Date:   2023-02-08 20:35:32 +0800
12225
12226    liblzma: Reword a comment in index.h.
12227
12228 src/liblzma/api/lzma/index.h | 4 ++--
12229 1 file changed, 2 insertions(+), 2 deletions(-)
12230
12231commit b67539484981351d501b68de5e925425e50c59b1
12232Author: Jia Tan <jiat0218@gmail.com>
12233Date:   2023-02-08 20:30:23 +0800
12234
12235    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
12236
12237    Add \private above this field and its sub-fields since it is not meant
12238    to be modified by users.
12239
12240 src/liblzma/api/lzma/index.h | 9 ++++++++-
12241 1 file changed, 8 insertions(+), 1 deletion(-)
12242
12243commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96
12244Author: Jia Tan <jiat0218@gmail.com>
12245Date:   2023-01-21 21:32:03 +0800
12246
12247    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
12248
12249    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
12250    documentation after a member.
12251
12252 src/liblzma/api/lzma/base.h | 2 +-
12253 1 file changed, 1 insertion(+), 1 deletion(-)
12254
12255commit 816fec125aa74bcef46512c73acc6d9e5a700d15
12256Author: Jia Tan <jiat0218@gmail.com>
12257Date:   2023-01-21 00:29:38 +0800
12258
12259    liblzma: Improve documentation for base.h.
12260
12261    Standardizing each function to always specify params and return values.
12262    Also fixed a small grammar mistake.
12263
12264 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
12265 1 file changed, 25 insertions(+), 5 deletions(-)
12266
12267commit 862dacef1a4e7e1b28d465956fa4244ed01df154
12268Author: Jia Tan <jiat0218@gmail.com>
12269Date:   2023-02-14 00:12:34 +0800
12270
12271    liblzma: Add one more missing [out] annotation in vli.h
12272
12273 src/liblzma/api/lzma/vli.h | 2 +-
12274 1 file changed, 1 insertion(+), 1 deletion(-)
12275
12276commit 867b08ae4254bf55dd1f7fd502cc618231b92f75
12277Author: Jia Tan <jiat0218@gmail.com>
12278Date:   2023-02-14 00:08:33 +0800
12279
12280    liblzma: Minor improvements to vli.h.
12281
12282    Added [out] annotations to parameters that are pointers and can have
12283    their value changed. Also added a clarification to lzma_vli_is_valid.
12284
12285 src/liblzma/api/lzma/vli.h | 13 +++++++------
12286 1 file changed, 7 insertions(+), 6 deletions(-)
12287
12288commit 90d0e628ff11e5030bcc4fc000bca056adda6603
12289Author: Jia Tan <jiat0218@gmail.com>
12290Date:   2023-02-10 21:38:02 +0800
12291
12292    liblzma: Add comments for macros in delta.h.
12293
12294    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
12295    and to avoid Doxygen warnings.
12296
12297 src/liblzma/api/lzma/delta.h | 8 ++++++++
12298 1 file changed, 8 insertions(+)
12299
12300commit 9255fffdb13e59874bf7f95c370c410ad3a7e114
12301Author: Jia Tan <jiat0218@gmail.com>
12302Date:   2023-02-10 21:35:23 +0800
12303
12304    liblzma: Improve documentation in index_hash.h.
12305
12306    All functions now explicitly specify parameter and return values.
12307    Also reworded the description of lzma_index_hash_init() for readability.
12308
12309 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
12310 1 file changed, 27 insertions(+), 9 deletions(-)
12311
12312commit 1dbe12b90cff79bb51923733ac0840747b4b4131
12313Author: Lasse Collin <lasse.collin@tukaani.org>
12314Date:   2023-02-07 19:07:45 +0200
12315
12316    xz: Improve the comment about start_time in mytime.c.
12317
12318    start_time is relative to an arbitary point in time, it's not
12319    time of day, so using it for anything else than time differences
12320    wouldn't make sense.
12321
12322 src/xz/mytime.c | 15 ++++++++++-----
12323 1 file changed, 10 insertions(+), 5 deletions(-)
12324
12325commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56
12326Author: Jia Tan <jiat0218@gmail.com>
12327Date:   2023-02-04 21:06:35 +0800
12328
12329    Build: Adjust CMake version search regex.
12330
12331    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
12332    macros do not need to be on consecutive lines in version.h. They can be
12333    separated by more whitespace, comments, or even other content, as long
12334    as they appear in the proper order (major, minor, patch).
12335
12336 CMakeLists.txt | 2 ++
12337 1 file changed, 2 insertions(+)
12338
12339commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac
12340Author: Jia Tan <jiat0218@gmail.com>
12341Date:   2023-02-04 12:01:23 +0800
12342
12343    xz: Add a comment clarifying the use of start_time in mytime.c.
12344
12345 src/xz/mytime.c | 5 +++++
12346 1 file changed, 5 insertions(+)
12347
12348commit 912af91b10a18fb9bb3167247ecaaefca8248ee9
12349Author: Jia Tan <jiat0218@gmail.com>
12350Date:   2023-01-26 09:50:21 +0800
12351
12352    liblzma: Improve documentation for version.h.
12353
12354    Specified parameter and return values for API functions and documented
12355    a few more of the macros.
12356
12357 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
12358 1 file changed, 22 insertions(+), 7 deletions(-)
12359
12360commit 850adec171203cd22b57d016084d713f72ae5307
12361Author: Jia Tan <jiat0218@gmail.com>
12362Date:   2023-02-03 22:52:55 +0800
12363
12364    Docs: Omit SIGTSTP not handled from TODO.
12365
12366 TODO | 4 ----
12367 1 file changed, 4 deletions(-)
12368
12369commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3
12370Author: Jia Tan <jiat0218@gmail.com>
12371Date:   2023-02-03 00:33:32 +0800
12372
12373    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
12374
12375    The bug is only a problem in applications that do not properly terminate
12376    the filters[] array with LZMA_VLI_UNKNOWN or have more than
12377    LZMA_FILTERS_MAX filters. This bug does not affect xz.
12378
12379 src/liblzma/common/string_conversion.c | 7 +++++++
12380 1 file changed, 7 insertions(+)
12381
12382commit e01f01b9af1c074463b92694a16ecc16a31907c0
12383Author: Jia Tan <jiat0218@gmail.com>
12384Date:   2023-02-03 00:32:47 +0800
12385
12386    Tests: Create test_filter_str.c.
12387
12388    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
12389    lzma_str_list_filters() API functions.
12390
12391 CMakeLists.txt          |   1 +
12392 tests/Makefile.am       |   2 +
12393 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
12394 3 files changed, 596 insertions(+)
12395
12396commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26
12397Author: Jia Tan <jiat0218@gmail.com>
12398Date:   2023-01-22 08:49:00 +0800
12399
12400    liblzma: Fix typos in comments in string_conversion.c.
12401
12402 src/liblzma/common/string_conversion.c | 4 ++--
12403 1 file changed, 2 insertions(+), 2 deletions(-)
12404
12405commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6
12406Author: Jia Tan <jiat0218@gmail.com>
12407Date:   2023-02-03 00:20:20 +0800
12408
12409    liblzma: Clarify block encoder and decoder documentation.
12410
12411    Added a few sentences to the description for lzma_block_encoder() and
12412    lzma_block_decoder() to highlight that the Block Header must be coded
12413    before calling these functions.
12414
12415 src/liblzma/api/lzma/block.h | 15 +++++++++++----
12416 1 file changed, 11 insertions(+), 4 deletions(-)
12417
12418commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f
12419Author: Jia Tan <jiat0218@gmail.com>
12420Date:   2023-02-03 00:12:24 +0800
12421
12422    Update lzma_block documentation for lzma_block_uncomp_encode().
12423
12424 src/liblzma/api/lzma/block.h | 3 +++
12425 1 file changed, 3 insertions(+)
12426
12427commit 504cf4af895fd45aad0c56eb3b49d90acd54465b
12428Author: Jia Tan <jiat0218@gmail.com>
12429Date:   2023-02-03 00:11:37 +0800
12430
12431    liblzma: Minor edits to lzma_block header_size documentation.
12432
12433 src/liblzma/api/lzma/block.h | 3 ++-
12434 1 file changed, 2 insertions(+), 1 deletion(-)
12435
12436commit 115b720fb521f99aa832d06b2c12b7f8c6c50680
12437Author: Jia Tan <jiat0218@gmail.com>
12438Date:   2023-02-03 00:11:07 +0800
12439
12440    liblzma: Enumerate functions that read version in lzma_block.
12441
12442 src/liblzma/api/lzma/block.h | 13 +++++++++++--
12443 1 file changed, 11 insertions(+), 2 deletions(-)
12444
12445commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1
12446Author: Jia Tan <jiat0218@gmail.com>
12447Date:   2023-02-03 00:10:34 +0800
12448
12449    liblzma: Clarify comment in block.h.
12450
12451 src/liblzma/api/lzma/block.h | 3 ++-
12452 1 file changed, 2 insertions(+), 1 deletion(-)
12453
12454commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8
12455Author: Jia Tan <jiat0218@gmail.com>
12456Date:   2023-02-03 00:07:23 +0800
12457
12458    liblzma: Improve documentation for block.h.
12459
12460    Standardizing each function to always specify params and return values.
12461    Output pointer parameters are also marked with doxygen style [out] to
12462    make it clear. Any note sections were also moved above the parameter and
12463    return sections for consistency.
12464
12465 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
12466 1 file changed, 75 insertions(+), 21 deletions(-)
12467
12468commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3
12469Author: Jia Tan <jiat0218@gmail.com>
12470Date:   2023-02-01 23:38:30 +0800
12471
12472    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
12473
12474    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
12475    about the treatment for filters than cannot be used with .xz format
12476    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
12477    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
12478
12479 src/liblzma/api/lzma/filter.h | 5 +++--
12480 1 file changed, 3 insertions(+), 2 deletions(-)
12481
12482commit 315c64c7e18acc59a745b68148188a73e998252b
12483Author: Jia Tan <jiat0218@gmail.com>
12484Date:   2023-02-01 21:43:33 +0800
12485
12486    CI: Update .gitignore for artifacts directory in build-aux.
12487
12488    The workflow action for our CI pipeline can only reference artifacts in
12489    the source directory, so we should ignore these files if the ci_build.sh
12490    is run locally.
12491
12492 .gitignore | 1 +
12493 1 file changed, 1 insertion(+)
12494
12495commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f
12496Author: Jia Tan <jiat0218@gmail.com>
12497Date:   2023-02-01 21:36:46 +0800
12498
12499    CI: Add quotes around variables in a few places.
12500
12501 build-aux/ci_build.sh | 6 +++---
12502 1 file changed, 3 insertions(+), 3 deletions(-)
12503
12504commit 3a401b0e0c7a2658af7801dd0690256ef24149e0
12505Author: Jia Tan <jiat0218@gmail.com>
12506Date:   2023-02-01 21:36:22 +0800
12507
12508    CI: Upload test logs as artifacts if a test fails.
12509
12510 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++--------------
12511 build-aux/ci_build.sh    | 31 ++++++++++++++++++++-----
12512 2 files changed, 68 insertions(+), 23 deletions(-)
12513
12514commit 610dde15a88f12cc540424eb3eb3ed61f3876f74
12515Author: Lasse Collin <lasse.collin@tukaani.org>
12516Date:   2023-01-27 20:02:49 +0200
12517
12518    xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
12519
12520    mythread.h and thus liblzma already does it.
12521
12522 src/xz/mytime.c  | 11 ++++++++---
12523 src/xz/private.h |  3 +--
12524 2 files changed, 9 insertions(+), 5 deletions(-)
12525
12526commit 2e02877288f6576cd4595e9ac7684f867cd47d68
12527Author: Lasse Collin <lasse.collin@tukaani.org>
12528Date:   2023-01-27 19:41:19 +0200
12529
12530    po4a/po4a.conf: Sort the language identifiers in alphabetical order.
12531
12532 po4a/po4a.conf | 2 +-
12533 1 file changed, 1 insertion(+), 1 deletion(-)
12534
12535commit ff592c616eda274215b485cf1b8d34f060c9f3be
12536Author: Lasse Collin <lasse.collin@tukaani.org>
12537Date:   2023-01-26 18:29:17 +0200
12538
12539    xz: Add SIGTSTP handler for progress indicator time keeping.
12540
12541    This way, if xz is stopped the elapsed time and estimated time
12542    remaining won't get confused by the amount of time spent in
12543    the stopped state.
12544
12545    This raises SIGSTOP. It's not clear to me if this is the correct way.
12546    POSIX and glibc docs say that SIGTSTP shouldn't stop the process if
12547    it is orphaned but this commit doesn't attempt to handle that.
12548
12549    Search for SIGTSTP in section 2.4.3:
12550
12551    https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
12552
12553 src/xz/mytime.c  | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
12554 src/xz/mytime.h  |  6 ++++++
12555 src/xz/private.h | 12 ++++++++++++
12556 src/xz/signals.c | 17 ++++++++++++++++-
12557 4 files changed, 89 insertions(+), 2 deletions(-)
12558
12559commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76
12560Author: Jia Tan <jiat0218@gmail.com>
12561Date:   2023-01-27 20:14:51 +0800
12562
12563    Translations: Add Brazilian Portuguese translation of man pages.
12564
12565    Thanks to Rafael Fontenelle.
12566
12567 po4a/po4a.conf |    2 +-
12568 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12569 2 files changed, 3678 insertions(+), 1 deletion(-)
12570
12571commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc
12572Author: Lasse Collin <lasse.collin@tukaani.org>
12573Date:   2023-01-26 17:51:06 +0200
12574
12575    Build: Avoid different quoting style in --enable-doxygen doc.
12576
12577 configure.ac | 10 +++++-----
12578 1 file changed, 5 insertions(+), 5 deletions(-)
12579
12580commit af5a4bd5afc089d9697756dded38feafaa987ae4
12581Author: Lasse Collin <lasse.collin@tukaani.org>
12582Date:   2023-01-26 17:39:46 +0200
12583
12584    tuklib_physmem: Check for __has_warning before GCC version.
12585
12586    Clang can be configured to fake a too high GCC version so
12587    this way it's more robust.
12588
12589 src/common/tuklib_physmem.c | 6 +++---
12590 1 file changed, 3 insertions(+), 3 deletions(-)
12591
12592commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4
12593Author: Jia Tan <jiat0218@gmail.com>
12594Date:   2023-01-24 20:48:50 +0800
12595
12596    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
12597
12598    The previous documentation for lzma_str_to_filters() was technically
12599    correct, but misleading. lzma_str_to_filters() returns NULL on success,
12600    which is in practice always defined to 0. This is the same value as
12601    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
12602    be more clear.
12603
12604 src/liblzma/api/lzma/filter.h | 2 +-
12605 1 file changed, 1 insertion(+), 1 deletion(-)
12606
12607commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2
12608Author: Lasse Collin <lasse.collin@tukaani.org>
12609Date:   2023-01-23 23:44:58 +0200
12610
12611    Revert "tuklib_common: Define __has_warning if it is not defined."
12612
12613    This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766.
12614
12615    Macros in the reserved namespace (_foo or __foo) shouldn't be #defined
12616    without a very good reason. Here the alternative would have been
12617    to #define tuklib_has_warning(str) to an approriate value.
12618
12619    Also the tuklib_* files should stay namespace clean if possible.
12620
12621 src/common/tuklib_common.h | 7 -------
12622 1 file changed, 7 deletions(-)
12623
12624commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575
12625Author: Lasse Collin <lasse.collin@tukaani.org>
12626Date:   2023-01-23 23:38:34 +0200
12627
12628    tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows.
12629
12630    __has_warning and other __has_foo macros are meant to become
12631    compiler-agnostic so it's not good to check for __clang__ with it.
12632
12633    This also relied on tuklib_common.h for #defining __has_warning
12634    which was confusing as #defining reserved macros is generally
12635    not a good idea.
12636
12637 src/common/tuklib_physmem.c | 17 +++++++++++++----
12638 1 file changed, 13 insertions(+), 4 deletions(-)
12639
12640commit 683a3c7e2fcd922200c31078e5c9dd1348e90941
12641Author: Lasse Collin <lasse.collin@tukaani.org>
12642Date:   2023-01-24 00:05:38 +0200
12643
12644    xz: Flip the return value of suffix_is_set to match the documentation.
12645
12646    Also edit style to match the existing coding style in the project.
12647
12648 src/xz/args.c   | 6 +++---
12649 src/xz/suffix.c | 2 +-
12650 src/xz/suffix.h | 1 +
12651 3 files changed, 5 insertions(+), 4 deletions(-)
12652
12653commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0
12654Author: Jia Tan <jiat0218@gmail.com>
12655Date:   2023-01-07 21:55:06 +0800
12656
12657    xz: Refactor duplicated check for custom suffix when using --format=raw
12658
12659 src/xz/args.c   |  8 ++++++++
12660 src/xz/suffix.c | 26 ++++++++------------------
12661 src/xz/suffix.h |  7 +++++++
12662 3 files changed, 23 insertions(+), 18 deletions(-)
12663
12664commit 9663141274e01592a281a7f2df5d7a31a1dac8bf
12665Author: Jia Tan <jiat0218@gmail.com>
12666Date:   2023-01-20 21:53:14 +0800
12667
12668    liblzma: Set documentation on all reserved fields to private.
12669
12670    This prevents the reserved fields from being part of the generated
12671    Doxygen documentation.
12672
12673 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
12674 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
12675 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
12676 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
12677 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
12678 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
12679 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
12680 7 files changed, 173 insertions(+)
12681
12682commit 6327a045f34d48fc5afc58ba0d32a82c94403049
12683Author: Jia Tan <jiat0218@gmail.com>
12684Date:   2022-12-20 21:39:59 +0800
12685
12686    Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17.
12687
12688    A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released
12689    in 2019, so this should be compatible with resonable modern distros.
12690    The purpose of Doxygen these days is for docs on the website, so it
12691    doesn't necessarily have to work for everyone. Just when the maintainers
12692    want to update the docs.
12693
12694 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++---------------
12695 1 file changed, 1893 insertions(+), 630 deletions(-)
12696
12697commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad
12698Author: Jia Tan <jiat0218@gmail.com>
12699Date:   2023-01-03 20:37:30 +0800
12700
12701    Doxygen: Make Doxygen only produce liblzma API documentation by default.
12702
12703    Doxygen is now configurable in autotools only with
12704    --enable-doxygen=[api|all]. The default is "api", which will only
12705    generate HTML output for liblzma API functions. The LaTex documentation
12706    output was also disabled.
12707
12708 Doxyfile.in  | 18 +++++++++---------
12709 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
12710 2 files changed, 48 insertions(+), 9 deletions(-)
12711
12712commit 6fcf4671b6047113c583a0919fc850987a4ec5f4
12713Author: Jia Tan <jiat0218@gmail.com>
12714Date:   2022-12-21 23:59:43 +0800
12715
12716    liblzma: Highlight liblzma API headers should not be included directly.
12717
12718    This improves the generated Doxygen HTML files to better highlight
12719    how to properly use the liblzma API header files.
12720
12721 src/liblzma/api/lzma/base.h         | 5 +++--
12722 src/liblzma/api/lzma/bcj.h          | 5 +++--
12723 src/liblzma/api/lzma/block.h        | 5 +++--
12724 src/liblzma/api/lzma/check.h        | 5 +++--
12725 src/liblzma/api/lzma/container.h    | 5 +++--
12726 src/liblzma/api/lzma/delta.h        | 5 +++--
12727 src/liblzma/api/lzma/filter.h       | 5 +++--
12728 src/liblzma/api/lzma/hardware.h     | 5 +++--
12729 src/liblzma/api/lzma/index.h        | 5 +++--
12730 src/liblzma/api/lzma/index_hash.h   | 5 +++--
12731 src/liblzma/api/lzma/lzma12.h       | 5 +++--
12732 src/liblzma/api/lzma/stream_flags.h | 5 +++--
12733 src/liblzma/api/lzma/version.h      | 5 +++--
12734 src/liblzma/api/lzma/vli.h          | 5 +++--
12735 14 files changed, 42 insertions(+), 28 deletions(-)
12736
12737commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4
12738Author: Jia Tan <jiat0218@gmail.com>
12739Date:   2023-01-19 20:35:09 +0800
12740
12741    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
12742
12743    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
12744    to retrieve a function address. The proper way to do this is to cast the
12745    return value to the type of function pointer retrieved. Unfortunately,
12746    this causes a cast-function-type warning, so the best solution is to
12747    simply ignore the warning.
12748
12749 src/common/tuklib_physmem.c | 9 +++++++++
12750 1 file changed, 9 insertions(+)
12751
12752commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766
12753Author: Jia Tan <jiat0218@gmail.com>
12754Date:   2023-01-19 20:32:40 +0800
12755
12756    tuklib_common: Define __has_warning if it is not defined.
12757
12758    clang supports the __has_warning macro to determine if the version of
12759    clang compiling the code supports a given warning. If we do not define
12760    it for other compilers, it may cause a preprocessor error.
12761
12762 src/common/tuklib_common.h | 7 +++++++
12763 1 file changed, 7 insertions(+)
12764
12765commit b2ba1a489df451cdcd93b2334e319dd06778de19
12766Author: Jia Tan <jiat0218@gmail.com>
12767Date:   2023-01-18 22:11:05 +0800
12768
12769    CI: Reorder 32-bit build first for Linux autotool builds.
12770
12771    The 32-bit build needs to be first so the configure cache only needs to
12772    be reset one time. The 32-bit build sets the CFLAGS env variable, so any
12773    build using that flag after will fail unless the cache is reset.
12774
12775 .github/workflows/ci.yml | 17 ++++++++++++-----
12776 1 file changed, 12 insertions(+), 5 deletions(-)
12777
12778commit dd1c1135741057c91e8d018be9ec4d43968b0e64
12779Author: Jia Tan <jiat0218@gmail.com>
12780Date:   2023-01-18 21:51:43 +0800
12781
12782    CI: Enable --config-cache in autotool builds.
12783
12784    If CFLAGS are set in a build, the cache must be cleared with
12785    "make distclean", or by deleting the cache file.
12786
12787 build-aux/ci_build.sh | 2 +-
12788 1 file changed, 1 insertion(+), 1 deletion(-)
12789
12790commit d3e11477053764c003eec2daa5198c747d70ff69
12791Author: Jia Tan <jiat0218@gmail.com>
12792Date:   2023-01-16 21:35:45 +0800
12793
12794    xz: Add missing comment for coder_set_compression_settings()
12795
12796 src/xz/coder.h | 3 ++-
12797 1 file changed, 2 insertions(+), 1 deletion(-)
12798
12799commit 123255b6ed15f4428b2aa92e4962015a5362f6bf
12800Author: Jia Tan <jiat0218@gmail.com>
12801Date:   2023-01-16 20:55:10 +0800
12802
12803    xz: Do not set compression settings with raw format in list mode.
12804
12805    Calling coder_set_compression_settings() in list mode with verbose mode
12806    on caused the filter chain and memory requirements to print. This was
12807    unnecessary since the command results in an error and not consistent
12808    with other formats like lzma and alone.
12809
12810 src/xz/args.c | 3 ++-
12811 1 file changed, 2 insertions(+), 1 deletion(-)
12812
12813commit 571919c47b9ff5171ede84378620ed0a9aeb98c0
12814Author: Jia Tan <jiat0218@gmail.com>
12815Date:   2023-01-13 20:37:06 +0800
12816
12817    Translations: Update the Brazilian Portuguese translation.
12818
12819 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
12820 1 file changed, 344 insertions(+), 259 deletions(-)
12821
12822commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf
12823Author: Jia Tan <jiat0218@gmail.com>
12824Date:   2023-01-12 23:43:06 +0800
12825
12826    CI: Disable shared and nls from various jobs in autotool runners.
12827
12828    Disabling shared library generation and linking should help speed up the
12829    runners. The shared library is still being tested in the 32 bit build
12830    and the full feature.
12831
12832    Disabling nls is to check for any unexpected warnings or errors.
12833
12834 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------
12835 1 file changed, 28 insertions(+), 28 deletions(-)
12836
12837commit 58a052198a7bcaf6e958f87fad72e69e19a2579b
12838Author: Jia Tan <jiat0218@gmail.com>
12839Date:   2023-01-12 23:39:19 +0800
12840
12841    CI: Reorder the 32-bit job in the Ubuntu runner.
12842
12843    Run the 32 bit job sooner since this is a more interesting test than
12844    some of the later jobs.
12845
12846 .github/workflows/ci.yml | 10 +++++-----
12847 1 file changed, 5 insertions(+), 5 deletions(-)
12848
12849commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797
12850Author: Jia Tan <jiat0218@gmail.com>
12851Date:   2023-01-12 23:09:03 +0800
12852
12853    CI: Allow disabling Native Language Support.
12854
12855 build-aux/ci_build.sh | 9 ++++++++-
12856 1 file changed, 8 insertions(+), 1 deletion(-)
12857
12858commit 0dec634e705b5bf89a37c5d62d71e8511d480058
12859Author: Jia Tan <jiat0218@gmail.com>
12860Date:   2023-01-12 23:02:20 +0800
12861
12862    CI: Only run autogen.sh if it has not already run.
12863
12864 build-aux/ci_build.sh | 11 ++++++++---
12865 1 file changed, 8 insertions(+), 3 deletions(-)
12866
12867commit 32287dc8def94df4546e903495d14c132bd54cc4
12868Author: Jia Tan <jiat0218@gmail.com>
12869Date:   2023-01-12 22:58:36 +0800
12870
12871    CI: Allow disabling shared library in autotools builds.
12872
12873 build-aux/ci_build.sh | 9 ++++++++-
12874 1 file changed, 8 insertions(+), 1 deletion(-)
12875
12876commit 77d1ebcc99ddd82a300d1838f608150221931dcd
12877Author: Jia Tan <jiat0218@gmail.com>
12878Date:   2023-01-12 22:44:18 +0800
12879
12880    CI: Improve Usage readability and add -h option.
12881
12882 build-aux/ci_build.sh | 15 +++++++++++++--
12883 1 file changed, 13 insertions(+), 2 deletions(-)
12884
12885commit a8bb8358d10b059274f3cf993d9b8f490bafb268
12886Author: Lasse Collin <lasse.collin@tukaani.org>
12887Date:   2023-01-12 13:04:05 +0200
12888
12889    Build: Omit -Wmissing-noreturn from the default warnings.
12890
12891    It's not that important. It can be annoying in builds that
12892    disable many features since in those cases the tests programs
12893    will correctly trigger this warning with Clang.
12894
12895 configure.ac | 1 -
12896 1 file changed, 1 deletion(-)
12897
12898commit 52dc033d0bde0d19e3912303c6c74bae559d6498
12899Author: Lasse Collin <lasse.collin@tukaani.org>
12900Date:   2023-01-12 06:05:58 +0200
12901
12902    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
12903
12904    It makes no difference here as the return value fits into an int
12905    too and it then gets ignored but this looks better.
12906
12907 src/xz/file_io.c | 2 +-
12908 1 file changed, 1 insertion(+), 1 deletion(-)
12909
12910commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3
12911Author: Lasse Collin <lasse.collin@tukaani.org>
12912Date:   2023-01-12 06:01:12 +0200
12913
12914    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
12915
12916 src/common/tuklib_mbstr_fw.c | 2 +-
12917 src/xz/list.c                | 4 ++--
12918 2 files changed, 3 insertions(+), 3 deletions(-)
12919
12920commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339
12921Author: Lasse Collin <lasse.collin@tukaani.org>
12922Date:   2023-01-12 05:38:48 +0200
12923
12924    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
12925
12926    It doesn't warn on a 64-bit system because truncating
12927    a ptrdiff_t (signed long) to uint32_t is diagnosed under
12928    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
12929
12930 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
12931 1 file changed, 4 insertions(+), 3 deletions(-)
12932
12933commit 37fbdfb7263522c11c7ad2685413d6295532581d
12934Author: Lasse Collin <lasse.collin@tukaani.org>
12935Date:   2023-01-12 04:46:45 +0200
12936
12937    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
12938
12939 src/common/mythread.h | 4 ++--
12940 1 file changed, 2 insertions(+), 2 deletions(-)
12941
12942commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008
12943Author: Lasse Collin <lasse.collin@tukaani.org>
12944Date:   2023-01-12 04:17:24 +0200
12945
12946    Build: Make configure add more warning flags for GCC and Clang.
12947
12948    -Wstrict-aliasing was removed from the list since it is enabled
12949    by -Wall already.
12950
12951    A normal build is clean with these on GNU/Linux x86-64 with
12952    GCC 12.2.0 and Clang 14.0.6.
12953
12954 configure.ac | 36 +++++++++++++++++++++++++++++++-----
12955 1 file changed, 31 insertions(+), 5 deletions(-)
12956
12957commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c
12958Author: Lasse Collin <lasse.collin@tukaani.org>
12959Date:   2023-01-12 04:14:18 +0200
12960
12961    Tests: Fix warnings from clang --Wassign-enum.
12962
12963    Explicitly casting the integer to lzma_check silences the warning.
12964    Since such an invalid value is needed in multiple tests, a constant
12965    INVALID_LZMA_CHECK_ID was added to tests.h.
12966
12967    The use of 0x1000 for lzma_block.check wasn't optimal as if
12968    the underlying type is a char then 0x1000 will be truncated to 0.
12969    However, in these test cases the value is ignored, thus even with
12970    such truncation the test would have passed.
12971
12972 tests/test_block_header.c | 6 +++---
12973 tests/test_check.c        | 2 +-
12974 tests/test_stream_flags.c | 8 ++++----
12975 tests/tests.h             | 9 +++++++++
12976 4 files changed, 17 insertions(+), 8 deletions(-)
12977
12978commit 49245bb31e215ad455a1ab85e4ed6783152dc522
12979Author: Lasse Collin <lasse.collin@tukaani.org>
12980Date:   2023-01-12 03:51:07 +0200
12981
12982    Tests: Silence warnings from -Wsign-conversion.
12983
12984    Note that assigning an unsigned int to lzma_check doesn't warn
12985    on GNU/Linux x86-64 since the enum type is unsigned on that
12986    platform. The enum can be signed on some other platform though
12987    so it's best to use enumeration type lzma_check in these situations.
12988
12989 tests/test_check.c        |  6 +++---
12990 tests/test_stream_flags.c | 10 +++++-----
12991 2 files changed, 8 insertions(+), 8 deletions(-)
12992
12993commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571
12994Author: Lasse Collin <lasse.collin@tukaani.org>
12995Date:   2023-01-12 03:19:59 +0200
12996
12997    liblzma: Silence warnings from clang -Wconditional-uninitialized.
12998
12999    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
13000    The actual initialization of the variables is done inside
13001    mythread_sync() macro. Clang doesn't seem to see that
13002    the initialization code inside the macro is always executed.
13003
13004 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
13005 src/liblzma/common/stream_encoder_mt.c | 2 +-
13006 2 files changed, 6 insertions(+), 4 deletions(-)
13007
13008commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6
13009Author: Lasse Collin <lasse.collin@tukaani.org>
13010Date:   2023-01-12 03:11:40 +0200
13011
13012    Fix warnings from clang -Wdocumentation.
13013
13014 src/liblzma/check/check.h      | 4 ----
13015 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
13016 src/xz/options.c               | 4 ++--
13017 3 files changed, 4 insertions(+), 8 deletions(-)
13018
13019commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba
13020Author: Lasse Collin <lasse.collin@tukaani.org>
13021Date:   2023-01-12 03:04:28 +0200
13022
13023    Tests: test_lzip_decoder: Remove trailing white-space.
13024
13025 tests/test_lzip_decoder.c | 4 ++--
13026 1 file changed, 2 insertions(+), 2 deletions(-)
13027
13028commit c0f8d6782f29e219fd496dd23f6a033270509d5c
13029Author: Lasse Collin <lasse.collin@tukaani.org>
13030Date:   2023-01-12 03:03:55 +0200
13031
13032    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
13033
13034 tests/test_lzip_decoder.c | 13 +++++++------
13035 1 file changed, 7 insertions(+), 6 deletions(-)
13036
13037commit 62efd48a825e8f439e84c85e165d8774ddc68fd2
13038Author: Jia Tan <jiat0218@gmail.com>
13039Date:   2023-01-11 23:58:16 +0800
13040
13041    Add NEWS for 5.4.1.
13042
13043 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13044 1 file changed, 70 insertions(+)
13045
13046commit d1561c47ec8cd3844a785d3741dc932f9b9c5790
13047Author: Jia Tan <jiat0218@gmail.com>
13048Date:   2023-01-11 22:46:48 +0800
13049
13050    xz: Fix warning -Wformat-nonliteral on clang in message.c.
13051
13052    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
13053    allow a non-literal format string as long as the function takes its
13054    format arguments as a va_list.
13055
13056 src/xz/message.c | 9 +++++++++
13057 1 file changed, 9 insertions(+)
13058
13059commit 8c0f115cc489331c48df77beca92fe378039d919
13060Author: Jia Tan <jiat0218@gmail.com>
13061Date:   2023-01-11 20:58:31 +0800
13062
13063    Tests: Fix test_filter_flags copy/paste error.
13064
13065 tests/test_filter_flags.c | 4 ++--
13066 1 file changed, 2 insertions(+), 2 deletions(-)
13067
13068commit 25035813d1d596fde692addc33e7f715f1fe55eb
13069Author: Jia Tan <jiat0218@gmail.com>
13070Date:   2023-01-11 20:42:29 +0800
13071
13072    Tests: Fix type-limits warning in test_filter_flags.
13073
13074    This only occurs in test_filter_flags when the BCJ filters are not
13075    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
13076    type-limits warning with the loop variable since an unsigned number will
13077    always be >= 0.
13078
13079 tests/test_filter_flags.c | 13 ++++++++++---
13080 1 file changed, 10 insertions(+), 3 deletions(-)
13081
13082commit 0b8fa310cf56fec55663f62340e49e8e1441594f
13083Author: Lasse Collin <lasse.collin@tukaani.org>
13084Date:   2023-01-10 22:14:03 +0200
13085
13086    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
13087
13088    This affects only 32-bit x86 builds. x86-64 is OK as is.
13089
13090    I still cannot easily test this myself. The reporter has tested
13091    this and it passes the tests included in the CMake build and
13092    performance is good: raw CRC64 is 2-3 times faster than the
13093    C version of the slice-by-four method. (Note that liblzma doesn't
13094    include a MSVC-compatible version of the 32-bit x86 assembly code
13095    for the slice-by-four method.)
13096
13097    Thanks to Iouri Kharon for figuring out a fix, testing, and
13098    benchmarking.
13099
13100 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
13101 1 file changed, 18 insertions(+)
13102
13103commit 765354b50c2886fc0d294d6be3b207f7ae2ada70
13104Author: Jia Tan <jiat0218@gmail.com>
13105Date:   2023-01-11 01:18:50 +0800
13106
13107    Tests: Fix unused function warning in test_block_header.
13108
13109    One of the global arrays of filters was only used in a test that
13110    required both encoders and decoders to be configured in the build.
13111
13112 tests/test_block_header.c | 4 ++++
13113 1 file changed, 4 insertions(+)
13114
13115commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa
13116Author: Jia Tan <jiat0218@gmail.com>
13117Date:   2023-01-11 01:08:03 +0800
13118
13119    Tests: Fix unused function warning in test_index_hash.
13120
13121    test_index_hash does not use fill_index_hash() unless both encoders
13122    and decoders are configured in the build.
13123
13124 tests/test_index_hash.c | 4 +---
13125 1 file changed, 1 insertion(+), 3 deletions(-)
13126
13127commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6
13128Author: Jia Tan <jiat0218@gmail.com>
13129Date:   2023-01-11 00:54:45 +0800
13130
13131    CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner.
13132
13133    If all goes well, Mac autotools and Linux and Mac CMake will be added
13134    later for 32-bit builds.
13135
13136 .github/workflows/ci.yml | 7 ++++++-
13137 1 file changed, 6 insertions(+), 1 deletion(-)
13138
13139commit 923eb689a4b863b6cca8df6360d4962aae994edf
13140Author: Jia Tan <jiat0218@gmail.com>
13141Date:   2023-01-11 00:51:01 +0800
13142
13143    CI/CD: Enables warnings as errors in autotool build.
13144
13145    This will help us catch warnings and potential bugs in builds that are
13146    not often tested by us.
13147
13148 build-aux/ci_build.sh | 2 +-
13149 1 file changed, 1 insertion(+), 1 deletion(-)
13150
13151commit feae5528a30c006b6e2f96a95116e20b983703fc
13152Author: Jia Tan <jiat0218@gmail.com>
13153Date:   2023-01-11 00:48:35 +0800
13154
13155    CI/CD: Add -f argument to set CFLAGS in ci_build.sh.
13156
13157    For now, the suggested option is for -m32 only, but this can be updated
13158    later if other flags are deemed useful.
13159
13160 build-aux/ci_build.sh | 8 ++++++--
13161 1 file changed, 6 insertions(+), 2 deletions(-)
13162
13163commit cfabb62a4874c146e7d6f30445637602545bc054
13164Author: Lasse Collin <lasse.collin@tukaani.org>
13165Date:   2023-01-10 12:47:16 +0200
13166
13167    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
13168
13169    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
13170
13171    It was reported that it wasn't a good enough fix and MSVC
13172    still produced (different kind of) bad code when building
13173    for 32-bit x86 if optimizations are enabled.
13174
13175    Thanks to Iouri Kharon.
13176
13177 src/liblzma/check/crc64_fast.c | 6 ------
13178 1 file changed, 6 deletions(-)
13179
13180commit 0b64215170dd3562f207ef26f794755bcd600526
13181Author: Lasse Collin <lasse.collin@tukaani.org>
13182Date:   2023-01-10 11:56:11 +0200
13183
13184    sysdefs.h: Don't include strings.h anymore.
13185
13186    On some platforms src/xz/suffix.c may need <strings.h> for
13187    strcasecmp() but suffix.c includes the header when it needs it.
13188
13189    Unless there is an old system that otherwise supports enough C99
13190    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
13191    there should be no need to include <strings.h> in sysdefs.h.
13192
13193 src/common/sysdefs.h | 6 ------
13194 1 file changed, 6 deletions(-)
13195
13196commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
13197Author: Lasse Collin <lasse.collin@tukaani.org>
13198Date:   2023-01-10 11:23:41 +0200
13199
13200    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
13201
13202    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
13203    Of these, strcasecmp() is used on some platforms in suffix.c.
13204    Nothing else in the project needs <strings.h> (at least if
13205    building on a modern system).
13206
13207    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
13208    defined and suffix.c relied on this.
13209
13210    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
13211    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
13212    is also in <string.h> in DJGPP.
13213
13214 src/xz/suffix.c | 3 +++
13215 1 file changed, 3 insertions(+)
13216
13217commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
13218Author: Lasse Collin <lasse.collin@tukaani.org>
13219Date:   2023-01-10 10:05:13 +0200
13220
13221    sysdefs.h: Fix a comment.
13222
13223 src/common/sysdefs.h | 2 +-
13224 1 file changed, 1 insertion(+), 1 deletion(-)
13225
13226commit 194a5fab69277d9e804a6113b5f676b8666b3a61
13227Author: Lasse Collin <lasse.collin@tukaani.org>
13228Date:   2023-01-10 10:04:06 +0200
13229
13230    sysdefs.h: Don't include memory.h anymore even if it were available.
13231
13232    It quite probably was never needed, that is, any system where memory.h
13233    was required likely couldn't compile XZ Utils for other reasons anyway.
13234
13235    XZ Utils 5.2.6 and later source packages were generated using
13236    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
13237    being removed is no longer used anyway.
13238
13239 src/common/sysdefs.h | 8 ++------
13240 1 file changed, 2 insertions(+), 6 deletions(-)
13241
13242commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0
13243Author: Lasse Collin <lasse.collin@tukaani.org>
13244Date:   2023-01-10 08:29:32 +0200
13245
13246    CMake: Fix appending to CMAKE_RC_FLAGS.
13247
13248    It's a string, not a list. It only worked when the variable was empty.
13249
13250    Thanks to Iouri Kharon.
13251
13252 CMakeLists.txt | 2 +-
13253 1 file changed, 1 insertion(+), 1 deletion(-)
13254
13255commit 6e652ceb18c615c578c869db300fa0756788b4e0
13256Author: Lasse Collin <lasse.collin@tukaani.org>
13257Date:   2023-01-10 00:33:14 +0200
13258
13259    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
13260
13261 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
13262 1 file changed, 12 insertions(+), 7 deletions(-)
13263
13264commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47
13265Author: Lasse Collin <lasse.collin@tukaani.org>
13266Date:   2023-01-09 23:41:25 +0200
13267
13268    CMake: Fix windres issues again.
13269
13270    At least on some systems, GNU windres needs --use-temp-file
13271    in addition to the \x20 hack to avoid spaces in the command line
13272    argument. Hovever, that \x20 syntax is broken with llvm-windres
13273    version 15.0.0 (results in "XZx20Utils") but luckily it works
13274    with a regular space. Thus it is best to limit the workarounds
13275    to GNU toolchain on Windows.
13276
13277 CMakeLists.txt | 35 +++++++++++++++++++++++------------
13278 1 file changed, 23 insertions(+), 12 deletions(-)
13279
13280commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935
13281Author: Lasse Collin <lasse.collin@tukaani.org>
13282Date:   2023-01-06 22:53:38 +0200
13283
13284    Tests: test_filter_flags: Clean up minor issues.
13285
13286    Here are the list of the most significant issues addressed:
13287    - Avoid using internal common.h header. It's not good to copy the
13288    constants like this but common.h cannot be included for use outside
13289    of liblzma. This is the quickest thing to do that could be fixed later.
13290
13291    - Omit the INIT_FILTER macro. Initialization should be done with just
13292    regular designated initializers.
13293
13294    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
13295    Flags encoder and decoder don't validate the options thoroughly.
13296    257 is valid only for the x86 filter. This is a bit silly but
13297    not a significant problem in practice because the encoder and
13298    decoder initialization functions will catch bad alignment still.
13299    Perhaps this should be fixed but it's not urgent and doesn't need
13300    to be in 5.4.x.
13301
13302    - Various tweaks to comments such as filter id -> Filter ID
13303
13304 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
13305 1 file changed, 78 insertions(+), 75 deletions(-)
13306
13307commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865
13308Author: Jia Tan <jiat0218@gmail.com>
13309Date:   2022-12-29 23:33:33 +0800
13310
13311    Tests: Refactors existing filter flags tests.
13312
13313    Converts the existing filter flags tests into tuktests.
13314
13315 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
13316 1 file changed, 457 insertions(+), 198 deletions(-)
13317
13318commit 36edc65ab4cf10a131f239acbd423b4510ba52d5
13319Author: Lasse Collin <lasse.collin@tukaani.org>
13320Date:   2023-01-09 12:22:05 +0200
13321
13322    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
13323
13324    I haven't tested with MSVC myself and there doesn't seem to be
13325    information about the problem online, so I'm relying on the bug report.
13326
13327    Thanks to Iouri Kharon for the bug report and the patch.
13328
13329 src/liblzma/check/crc64_fast.c | 6 ++++++
13330 1 file changed, 6 insertions(+)
13331
13332commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d
13333Author: Lasse Collin <lasse.collin@tukaani.org>
13334Date:   2023-01-09 11:27:24 +0200
13335
13336    CMake: Fix a copypaste error in xzdec Windows resource file handling.
13337
13338    It was my mistake. Thanks to Iouri Kharon for the bug report.
13339
13340 CMakeLists.txt | 4 ++--
13341 1 file changed, 2 insertions(+), 2 deletions(-)
13342
13343commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848
13344Author: Lasse Collin <lasse.collin@tukaani.org>
13345Date:   2023-01-08 00:32:29 +0200
13346
13347    Tests: tuktest.h: Support tuktest_malloc(0).
13348
13349    It's not needed in XZ Utils at least for now. It's good to support
13350    it still because if such use is needed later, it wouldn't be
13351    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
13352
13353 tests/tuktest.h | 4 ++--
13354 1 file changed, 2 insertions(+), 2 deletions(-)
13355
13356commit 69d5d78c6904668eb09a131da86276beec3281f8
13357Author: Lasse Collin <lasse.collin@tukaani.org>
13358Date:   2023-01-08 00:24:23 +0200
13359
13360    Update THANKS.
13361
13362 THANKS | 1 +
13363 1 file changed, 1 insertion(+)
13364
13365commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
13366Author: Lasse Collin <lasse.collin@tukaani.org>
13367Date:   2023-01-07 21:57:11 +0200
13368
13369    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
13370
13371    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
13372    shouldn't affect this project.
13373
13374 CMakeLists.txt | 2 +-
13375 1 file changed, 1 insertion(+), 1 deletion(-)
13376
13377commit a890a637bee9193d5b690aefa9a59eba5b8532ae
13378Author: Lasse Collin <lasse.collin@tukaani.org>
13379Date:   2023-01-07 19:50:35 +0200
13380
13381    Update THANKS.
13382
13383 THANKS | 1 +
13384 1 file changed, 1 insertion(+)
13385
13386commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
13387Author: Lasse Collin <lasse.collin@tukaani.org>
13388Date:   2023-01-07 19:50:03 +0200
13389
13390    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
13391
13392    The command line tools cannot be built with MSVC for now but
13393    they can be built with MinGW-w64.
13394
13395    Thanks to Iouri Kharon for the bug report and the original patch.
13396
13397 CMakeLists.txt | 16 ++++++++++++++++
13398 1 file changed, 16 insertions(+)
13399
13400commit 443dfebced041adc88f10d824188eeef5b5821a9
13401Author: Lasse Collin <lasse.collin@tukaani.org>
13402Date:   2023-01-07 19:48:52 +0200
13403
13404    CMake/Windows: Add a workaround for windres from GNU binutils.
13405
13406    Thanks to Iouri Kharon for the bug report and the original patch.
13407
13408 CMakeLists.txt | 21 ++++++++++++++++++++-
13409 1 file changed, 20 insertions(+), 1 deletion(-)
13410
13411commit ceb805011747d04a915f3f39e4bed9eed151c634
13412Author: Lasse Collin <lasse.collin@tukaani.org>
13413Date:   2023-01-07 19:31:15 +0200
13414
13415    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
13416
13417    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
13418    disabled with VS2013.
13419
13420    Thanks to Iouri Kharon for the bug report.
13421
13422 CMakeLists.txt | 3 ++-
13423 configure.ac   | 8 ++++++--
13424 2 files changed, 8 insertions(+), 3 deletions(-)
13425
13426commit 8d372bd94066b1a5b0570b2550f83c2868486adf
13427Author: Jia Tan <jiat0218@gmail.com>
13428Date:   2023-01-07 21:05:15 +0800
13429
13430    CI/CD: Split CMake Linux and MacOS build phase to build and test.
13431
13432    The phase split was only done for Autotools before, so should also
13433    apply to CMake.
13434
13435 .github/workflows/ci.yml | 8 ++++++--
13436 1 file changed, 6 insertions(+), 2 deletions(-)
13437
13438commit 747c7f2b34bd498f6702c6875500a26b06201772
13439Author: Jia Tan <jiat0218@gmail.com>
13440Date:   2023-01-07 11:16:55 +0800
13441
13442    CI/CD: Reduce job runners to 4 instead of using matrix strategy.
13443
13444    The old version used too many runners that resulted in unnecessary
13445    dependency downloads. Now, the runners are reused for the different
13446    configurations for each OS and build system.
13447
13448 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------
13449 1 file changed, 83 insertions(+), 12 deletions(-)
13450
13451commit 4de35fd6b58d46fc887c78faf163f6a37b790c45
13452Author: Jia Tan <jiat0218@gmail.com>
13453Date:   2023-01-07 10:07:20 +0800
13454
13455    CI/CD: Add new -p (PHASE) argument to ci_build.sh
13456
13457    The new PHASE argument can be build, test, or all. all is the default.
13458    This way, the CI/CD script can differentiate between the build and test
13459    phases to make it easier to track down errors when they happen.
13460
13461 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++-----------------------
13462 1 file changed, 76 insertions(+), 64 deletions(-)
13463
13464commit 6fd39664de47801e670a16617863196bfbde4755
13465Merge: 78e0561d fc0c7884
13466Author: Jia Tan <jiat0218@gmail.com>
13467Date:   2023-01-07 00:10:50 +0800
13468
13469    Merge pull request #7 from tukaani-project/tuktest_index_hash
13470
13471    Tuktest index hash
13472
13473commit fc0c788469159f634f09ff23c8cef6925c91da57
13474Author: Lasse Collin <lasse.collin@tukaani.org>
13475Date:   2023-01-06 17:58:48 +0200
13476
13477    Tests: test_index_hash: Add an assert_uint_eq().
13478
13479 tests/test_index_hash.c | 3 +++
13480 1 file changed, 3 insertions(+)
13481
13482commit d550304f5343b3a082da265107cd820e0d81dc71
13483Author: Lasse Collin <lasse.collin@tukaani.org>
13484Date:   2023-01-06 17:55:06 +0200
13485
13486    Tests: test_index_hash: Fix a memory leak.
13487
13488 tests/test_index_hash.c | 2 ++
13489 1 file changed, 2 insertions(+)
13490
13491commit 02608f74ea1f2d2d56585711ff241c34b4ad0937
13492Author: Lasse Collin <lasse.collin@tukaani.org>
13493Date:   2023-01-06 17:53:03 +0200
13494
13495    Tests: test_index_hash: Don't treat pointers as booleans.
13496
13497 tests/test_index_hash.c | 6 +++---
13498 1 file changed, 3 insertions(+), 3 deletions(-)
13499
13500commit 056766c8601a3808bea1761f6cc833197a35a3e0
13501Author: Lasse Collin <lasse.collin@tukaani.org>
13502Date:   2023-01-06 17:51:41 +0200
13503
13504    Tests: test_index_hash: Fix a typo in a comment.
13505
13506 tests/test_index_hash.c | 2 +-
13507 1 file changed, 1 insertion(+), 1 deletion(-)
13508
13509commit 873e684028ba9738f071c5236db7d452ed797b4c
13510Author: Lasse Collin <lasse.collin@tukaani.org>
13511Date:   2023-01-06 17:44:29 +0200
13512
13513    Tests: test_index_hash: Avoid the variable name "index".
13514
13515    It can trigger warnings from -Wshadow on some systems.
13516
13517 tests/test_index_hash.c | 16 ++++++++--------
13518 1 file changed, 8 insertions(+), 8 deletions(-)
13519
13520commit d1f24c35874eeba8432d75aa77b06c50375ed937
13521Author: Lasse Collin <lasse.collin@tukaani.org>
13522Date:   2023-01-06 17:35:50 +0200
13523
13524    Tests: test_index_hash: Use the word "Record" instead of "entry".
13525
13526 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------
13527 1 file changed, 51 insertions(+), 51 deletions(-)
13528
13529commit b93f7c5cbb02b42024ac866fc0af541de3d816e2
13530Author: Lasse Collin <lasse.collin@tukaani.org>
13531Date:   2023-01-06 17:35:05 +0200
13532
13533    Tests: test_index_hash: Tweak comments and style.
13534
13535    The words defined in the .xz file format specification
13536    begin with capital letter to emphasize that they have
13537    a specific meaning.
13538
13539 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++-----------------------
13540 1 file changed, 33 insertions(+), 29 deletions(-)
13541
13542commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036
13543Author: Lasse Collin <lasse.collin@tukaani.org>
13544Date:   2023-01-06 17:17:37 +0200
13545
13546    Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.
13547
13548 tests/test_index_hash.c | 2 +-
13549 1 file changed, 1 insertion(+), 1 deletion(-)
13550
13551commit 78e0561dfebaa9d5e34558de537efcda890e0629
13552Author: Jia Tan <jiat0218@gmail.com>
13553Date:   2023-01-06 20:43:31 +0800
13554
13555    Style: Change #if !defined() to #ifndef in mythread.h.
13556
13557 src/common/mythread.h | 2 +-
13558 1 file changed, 1 insertion(+), 1 deletion(-)
13559
13560commit e834e1e934ed0af673598d8c0c34afb2af56bee0
13561Author: Jia Tan <jiat0218@gmail.com>
13562Date:   2023-01-06 20:35:55 +0800
13563
13564    Build: Add missing stream_decoder_mt.c to .vcxproj files.
13565
13566    The line in the .vcxproj files for building with was missing in 5.4.0.
13567    Thank to Hajin Jang for reporting the issue.
13568
13569 windows/vs2013/liblzma.vcxproj     | 1 +
13570 windows/vs2013/liblzma_dll.vcxproj | 1 +
13571 windows/vs2017/liblzma.vcxproj     | 1 +
13572 windows/vs2017/liblzma_dll.vcxproj | 1 +
13573 windows/vs2019/liblzma.vcxproj     | 1 +
13574 windows/vs2019/liblzma_dll.vcxproj | 1 +
13575 6 files changed, 6 insertions(+)
13576
13577commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111
13578Author: Jia Tan <jiat0218@gmail.com>
13579Date:   2023-01-05 20:57:25 +0800
13580
13581    liblzma: Remove common.h include from common/index.h.
13582
13583    common/index.h is needed by liblzma internally and tests. common.h will
13584    include and define many things that are not needed by the tests. Also,
13585    this prevents include order problems because common.h will redefine
13586    LZMA_API resulting in a warning.
13587
13588 src/liblzma/common/index.c                 | 1 +
13589 src/liblzma/common/index.h                 | 9 +++++++--
13590 src/liblzma/common/index_decoder.h         | 1 +
13591 src/liblzma/common/stream_buffer_encoder.c | 1 +
13592 4 files changed, 10 insertions(+), 2 deletions(-)
13593
13594commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f
13595Author: Lasse Collin <lasse.collin@tukaani.org>
13596Date:   2023-01-04 22:40:54 +0200
13597
13598    Update THANKS.
13599
13600 THANKS | 1 +
13601 1 file changed, 1 insertion(+)
13602
13603commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
13604Author: Lasse Collin <lasse.collin@tukaani.org>
13605Date:   2023-01-04 18:40:28 +0200
13606
13607    Tests: Adjust style in test_compress.sh.
13608
13609 tests/test_compress.sh | 12 +++++++-----
13610 1 file changed, 7 insertions(+), 5 deletions(-)
13611
13612commit 52380678f42364daa4510f92f6d3b18ec98c3638
13613Author: Jia Tan <jiat0218@gmail.com>
13614Date:   2023-01-04 23:58:58 +0800
13615
13616    Tests: Replace non portable shell parameter expansion
13617
13618    The shell parameter expansion using # and ## is not supported in
13619    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
13620    portable, so we should avoid it.
13621
13622 tests/create_compress_files.c          |  2 +-
13623 tests/test_compress.sh                 | 20 +++++++++++++-------
13624 tests/test_compress_prepared_bcj_sparc |  2 +-
13625 tests/test_compress_prepared_bcj_x86   |  2 +-
13626 4 files changed, 16 insertions(+), 10 deletions(-)
13627
13628commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b
13629Author: Jia Tan <jiat0218@gmail.com>
13630Date:   2023-01-03 21:02:38 +0800
13631
13632    Translations: Add Korean translation of man pages.
13633
13634    Thanks to Seong-ho Cho
13635
13636 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13637 po4a/po4a.conf |    2 +-
13638 2 files changed, 5553 insertions(+), 1 deletion(-)
13639
13640commit c4145978d95ebf1690c778d354e15f7c2823d7a8
13641Author: Jia Tan <jiat0218@gmail.com>
13642Date:   2023-01-03 20:47:27 +0800
13643
13644    Translations: Update the Esperanto translation.
13645
13646 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
13647 1 file changed, 332 insertions(+), 288 deletions(-)
13648
13649commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c
13650Author: Lasse Collin <lasse.collin@tukaani.org>
13651Date:   2023-01-02 17:20:47 +0200
13652
13653    Bump version and soname for 5.5.0alpha.
13654
13655    5.5.0alpha won't be released, it's just to mark that
13656    the branch is not for stable 5.4.x.
13657
13658    Once again there is no API/ABI stability for new features
13659    in devel versions. The major soname won't be bumped even
13660    if API/ABI of new features breaks between devel releases.
13661
13662 src/liblzma/Makefile.am        | 2 +-
13663 src/liblzma/api/lzma/version.h | 4 ++--
13664 2 files changed, 3 insertions(+), 3 deletions(-)
13665
13666commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a
13667Author: Lasse Collin <lasse.collin@tukaani.org>
13668Date:   2023-01-02 17:05:07 +0200
13669
13670    Build: Fix config.h comments.
13671
13672 configure.ac          | 2 +-
13673 m4/tuklib_progname.m4 | 2 +-
13674 2 files changed, 2 insertions(+), 2 deletions(-)
13675
13676commit bb740e3b117f1a3c65152d01e5755523a908ecb1
13677Author: Jia Tan <jiat0218@gmail.com>
13678Date:   2023-01-02 22:33:48 +0800
13679
13680    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
13681
13682    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
13683    HAVE_PROGRAM_INVOCATION_NAME. Previously,
13684    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
13685    building with autotools. CMake would only set this when it was 1, and the
13686    dos/config.h did not define it. The new macro definition is consistent
13687    across build systems.
13688
13689 cmake/tuklib_progname.cmake  | 5 ++---
13690 m4/tuklib_progname.m4        | 5 ++++-
13691 src/common/tuklib_progname.c | 2 +-
13692 src/common/tuklib_progname.h | 2 +-
13693 4 files changed, 8 insertions(+), 6 deletions(-)
13694
13695commit 064cd385a716abc78d93a3612411a82d69ceb221
13696Author: Jia Tan <jiat0218@gmail.com>
13697Date:   2022-12-29 00:30:52 +0800
13698
13699    Adds test_index_hash to .gitignore.
13700
13701 .gitignore | 1 +
13702 1 file changed, 1 insertion(+)
13703
13704commit 3959162baec074511d83ba0fec1284c3ed724799
13705Author: Jia Tan <jiat0218@gmail.com>
13706Date:   2022-12-29 00:25:18 +0800
13707
13708    Tests: Creates test_index_hash.c
13709
13710    Tests all API functions exported from index_hash.h. Does not have a
13711    dedicated test for lzma_index_hash_end.
13712
13713 CMakeLists.txt          |   2 +
13714 tests/Makefile.am       |   3 +
13715 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++
13716 3 files changed, 384 insertions(+)
13717
13718commit f16e12d5e755d371247202fcccbcccd1ec16b2cf
13719Author: Jia Tan <jiat0218@gmail.com>
13720Date:   2022-08-17 20:20:16 +0800
13721
13722    liblzma: Add NULL check to lzma_index_hash_append.
13723
13724    This is for consistency with lzma_index_append.
13725
13726 src/liblzma/common/index_hash.c | 2 +-
13727 1 file changed, 1 insertion(+), 1 deletion(-)
13728
13729commit 203b008eb220208981902e0db541c02d1c1c9f5e
13730Author: Jia Tan <jiat0218@gmail.com>
13731Date:   2022-08-17 17:59:51 +0800
13732
13733    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
13734
13735 src/liblzma/common/index.h             | 3 +++
13736 src/liblzma/common/index_decoder.c     | 2 +-
13737 src/liblzma/common/index_encoder.c     | 2 +-
13738 src/liblzma/common/index_hash.c        | 2 +-
13739 src/liblzma/common/stream_decoder.c    | 3 ++-
13740 src/liblzma/common/stream_decoder_mt.c | 2 +-
13741 6 files changed, 9 insertions(+), 5 deletions(-)
13742
13743commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0
13744Author: Lasse Collin <lasse.collin@tukaani.org>
13745Date:   2022-12-30 20:10:08 +0200
13746
13747    Tests: test_check: Test corner cases of CLMUL CRC64.
13748
13749 tests/test_check.c | 27 +++++++++++++++++++++++++++
13750 1 file changed, 27 insertions(+)
13751
13752commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7
13753Author: Lasse Collin <lasse.collin@tukaani.org>
13754Date:   2022-12-30 19:36:49 +0200
13755
13756    Tests: Clarify a comment in test_lzip_decoder.c.
13757
13758 tests/test_lzip_decoder.c | 8 ++++++--
13759 1 file changed, 6 insertions(+), 2 deletions(-)
13760
13761commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8
13762Author: Jia Tan <jiat0218@gmail.com>
13763Date:   2022-12-29 01:55:19 +0800
13764
13765    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
13766
13767    Previously, mytime.c depended on mythread.h for <time.h> to be included.
13768
13769 src/xz/mytime.c | 4 +++-
13770 1 file changed, 3 insertions(+), 1 deletion(-)
13771
13772commit f82294c8318a7a0990583d51ac5c7de682ad36ef
13773Author: Jia Tan <jiat0218@gmail.com>
13774Date:   2022-12-29 01:15:27 +0800
13775
13776    liblzma: Includes sys/time.h conditionally in mythread
13777
13778    Previously, <sys/time.h> was always included, even if mythread only used
13779    clock_gettime. <time.h> is still needed even if clock_gettime is not used
13780    though because struct timespec is needed for mythread_condtime.
13781
13782 src/common/mythread.h | 8 +++++++-
13783 1 file changed, 7 insertions(+), 1 deletion(-)
13784
13785commit 74dae7d30091e906d6a92a57952dea4354473f9b
13786Author: Jia Tan <jiat0218@gmail.com>
13787Date:   2022-12-29 01:10:53 +0800
13788
13789    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
13790
13791    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
13792    be set to 0 or 1. However, this macro was needed in xz so if xz was not
13793    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
13794    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
13795    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
13796    will only be set if it is 1.
13797
13798 CMakeLists.txt        | 8 +++-----
13799 configure.ac          | 5 ++++-
13800 src/common/mythread.h | 4 ++--
13801 src/xz/mytime.c       | 5 ++---
13802 4 files changed, 11 insertions(+), 11 deletions(-)
13803
13804commit 7339e39dc060df6eda74a2c5b69961befc3d5d24
13805Author: Jia Tan <jiat0218@gmail.com>
13806Date:   2022-12-28 01:14:07 +0800
13807
13808    Translations: Add Ukrainian translations of man pages.
13809
13810    Thanks to Yuri Chornoivan
13811
13812 po4a/po4a.conf |    2 +-
13813 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13814 2 files changed, 3677 insertions(+), 1 deletion(-)
13815
13816commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e
13817Author: Jia Tan <jiat0218@gmail.com>
13818Date:   2022-12-23 00:34:48 +0800
13819
13820    CI/CD: Create initial version of CI/CD workflow.
13821
13822    The CI/CD workflow will only execute on Ubuntu and MacOS latest version.
13823    The workflow will attempt to build with autotools and CMake and execute
13824    the tests. The workflow will run for all pull requests and pushes done
13825    to the master branch.
13826
13827 .github/workflows/ci.yml |  72 ++++++++++++++++++++++++
13828 build-aux/ci_build.sh    | 141 +++++++++++++++++++++++++++++++++++++++++++++++
13829 2 files changed, 213 insertions(+)
13830
13831commit 1275ebfba74230dbd028049141423c79c8b83b8f
13832Author: Jia Tan <jiat0218@gmail.com>
13833Date:   2022-12-22 23:14:53 +0800
13834
13835    liblzma: Update documentation for lzma_filter_encoder.
13836
13837 src/liblzma/common/filter_encoder.c | 7 +++++--
13838 1 file changed, 5 insertions(+), 2 deletions(-)
13839
13840commit 7c9ff5f1667a16733163b75dfd4b509662c387f4
13841Author: Jia Tan <jiat0218@gmail.com>
13842Date:   2022-12-21 21:12:03 +0800
13843
13844    Tests: Adds lzip decoder tests
13845
13846 .gitignore                |   1 +
13847 tests/Makefile.am         |   2 +
13848 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
13849 3 files changed, 474 insertions(+)
13850
13851commit 799ead162de63b8400733603d3abcd2e1977bdca
13852Author: Jia Cheong Tan <jiat0218@gmail.com>
13853Date:   2022-12-20 22:05:21 +0800
13854
13855    Doxygen: Update .gitignore for generating docs for in source build.
13856
13857    In source builds are not recommended, but we should still ignore
13858    the generated artifacts.
13859
13860 .gitignore | 2 ++
13861 1 file changed, 2 insertions(+)
13862
13863commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e
13864Author: Jia Tan <jiat0218@gmail.com>
13865Date:   2022-12-20 20:46:44 +0800
13866
13867    liblzma: Fix lzma_microlzma_encoder() return value.
13868
13869    Using return_if_error on lzma_lzma_lclppb_encode was improper because
13870    return_if_error is expecting an lzma_ret value, but
13871    lzma_lzma_lclppb_encode returns a boolean. This could result in
13872    lzma_microlzma_encoder, which would be misleading for applications.
13873
13874 src/liblzma/common/microlzma_encoder.c | 3 ++-
13875 1 file changed, 2 insertions(+), 1 deletion(-)
13876
13877commit 8ace358d65059152d9a1f43f4770170d29d35754
13878Author: Jia Tan <jiat0218@gmail.com>
13879Date:   2022-12-16 20:58:55 +0800
13880
13881    CMake: Update .gitignore for CMake artifacts from in source build.
13882
13883    In source builds are not recommended, but we can make it easier
13884    by ignoring the generated artifacts from CMake.
13885
13886 .gitignore | 23 +++++++++++++++++++++++
13887 1 file changed, 23 insertions(+)
13888
13889commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad
13890Author: Lasse Collin <lasse.collin@tukaani.org>
13891Date:   2022-12-16 18:30:02 +0200
13892
13893    liblzma: Update authors list in arm64.c.
13894
13895 src/liblzma/simple/arm64.c | 1 +
13896 1 file changed, 1 insertion(+)
13897
13898commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
13899Author: Lasse Collin <lasse.collin@tukaani.org>
13900Date:   2022-12-13 20:37:17 +0200
13901
13902    Bump version to 5.4.0 and soname to 5.4.0.
13903
13904 src/liblzma/Makefile.am         | 2 +-
13905 src/liblzma/api/lzma/version.h  | 6 +++---
13906 src/liblzma/liblzma_generic.map | 2 +-
13907 src/liblzma/liblzma_linux.map   | 2 +-
13908 4 files changed, 6 insertions(+), 6 deletions(-)
13909