xref: /src/contrib/xz/ChangeLog (revision ae12432049e7873ab3912643ae5d08297b8cbc49)
1commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86
2Author: Lasse Collin <lasse.collin@tukaani.org>
3Date:   2025-12-17 13:36:42 +0200
4
5    Bump version and soname for 5.8.2
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 fb14afd5c9bf14d8c67ee11e4139885072071ddd
12Author: Lasse Collin <lasse.collin@tukaani.org>
13Date:   2025-12-17 13:36:35 +0200
14
15    Add NEWS for 5.8.2
16
17 NEWS | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18 1 file changed, 72 insertions(+)
19
20commit 590f4713b29f0236ab944487f40069355a515dbc
21Author: Lasse Collin <lasse.collin@tukaani.org>
22Date:   2025-12-16 11:30:35 +0200
23
24    CMake: Bump maximum policy version to 4.2
25
26    CMP0186 is curious but we aren't affected.
27
28 CMakeLists.txt | 2 +-
29 1 file changed, 1 insertion(+), 1 deletion(-)
30
31commit 26d22ed16b6e38ce8ed45cb29076f454cd488762
32Author: Lasse Collin <lasse.collin@tukaani.org>
33Date:   2025-12-10 19:20:05 +0200
34
35    tuklib_integer/CMake: Log a message about unaligned access check
36
37 cmake/tuklib_integer.cmake | 8 ++++++++
38 1 file changed, 8 insertions(+)
39
40commit f7381cf927576164c17be4e4c1edeec3cdaca7cf
41Author: Lasse Collin <lasse.collin@tukaani.org>
42Date:   2025-12-10 19:11:27 +0200
43
44    tuklib_integer/CMake: Don't run unaligned access checks unnecessarily
45
46    If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set,
47    the autodetection result isn't needed because the option() command
48    does nothing when the cache variable is already set.
49
50    This is largely white space change to indent the if...endif block.
51
52 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++----------------------
53 1 file changed, 117 insertions(+), 109 deletions(-)
54
55commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb
56Author: Lasse Collin <lasse.collin@tukaani.org>
57Date:   2025-12-10 16:49:55 +0200
58
59    tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available
60
61    CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many
62    platforms. The list of possible values are documented. Use this
63    variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR
64    is still used, thus the regexes have to include values like ^amd64 still.
65
66    With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID
67    is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might
68    not match the target architecture.
69
70 cmake/tuklib_integer.cmake | 13 ++++++++++++-
71 1 file changed, 12 insertions(+), 1 deletion(-)
72
73commit c690101dddd784b75224a8935f56cd163d3e90a3
74Author: Lasse Collin <lasse.collin@tukaani.org>
75Date:   2025-12-10 16:49:55 +0200
76
77    tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64
78
79    On ARM64, support for fast unaligned memory access was autodetected by
80    checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC
81    versions up to 15.2.0 define the macro even when -mstrict-align has
82    been specified. Thus, autodetection with GCC doesn't work correctly,
83    and binaries built using -mstrict-align can be much slower than they
84    need to be, unless the user also passes --disable-unaligned-access
85    to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake.
86
87    See the GCC bug:
88
89        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555
90
91    Workaround the issue by using heuristics with GCC on ARM64.
92
93    With Clang, the detection using __ARM_FEATURE_UNALIGNED works.
94    It also works with GCC on 32-bit ARM.
95
96    Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.")
97
98 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++-------
99 m4/tuklib_integer.m4       | 78 +++++++++++++++++++++++++++++++++++-----------
100 2 files changed, 110 insertions(+), 31 deletions(-)
101
102commit d9b318f5b8a3524e90ac17471e79db7de012caf5
103Author: Lasse Collin <lasse.collin@tukaani.org>
104Date:   2025-12-09 18:02:23 +0200
105
106    CI: Update MSYS2
107
108 .github/workflows/msys2.yml | 4 ++--
109 1 file changed, 2 insertions(+), 2 deletions(-)
110
111commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5
112Author: Lasse Collin <lasse.collin@tukaani.org>
113Date:   2025-12-09 18:02:05 +0200
114
115    CI: Update DragonFly BSD
116
117 .github/workflows/dragonflybsd.yml | 2 +-
118 1 file changed, 1 insertion(+), 1 deletion(-)
119
120commit a7b749389c64dfbee1c29d88e61e71186b472784
121Author: Lasse Collin <lasse.collin@tukaani.org>
122Date:   2025-12-09 17:58:52 +0200
123
124    CI: Update Solaris
125
126 .github/workflows/solaris.yml | 2 +-
127 1 file changed, 1 insertion(+), 1 deletion(-)
128
129commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d
130Author: Lasse Collin <lasse.collin@tukaani.org>
131Date:   2025-12-09 17:56:58 +0200
132
133    CI: Update NetBSD
134
135 .github/workflows/netbsd.yml | 2 +-
136 1 file changed, 1 insertion(+), 1 deletion(-)
137
138commit fbc1046248cfe3c730437ba7d98dde89b0eced3e
139Author: Lasse Collin <lasse.collin@tukaani.org>
140Date:   2025-12-09 17:54:54 +0200
141
142    CI: Update OpenBSD
143
144 .github/workflows/openbsd.yml | 2 +-
145 1 file changed, 1 insertion(+), 1 deletion(-)
146
147commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476
148Author: Lasse Collin <lasse.collin@tukaani.org>
149Date:   2025-12-09 17:52:01 +0200
150
151    CI: Update FreeBSD
152
153 .github/workflows/freebsd.yml | 4 +++-
154 1 file changed, 3 insertions(+), 1 deletion(-)
155
156commit f8424b0416266c393c84a315e3bdedbc19efa0a8
157Author: Lasse Collin <lasse.collin@tukaani.org>
158Date:   2025-12-09 17:40:05 +0200
159
160    Update THANKS
161
162 THANKS | 1 +
163 1 file changed, 1 insertion(+)
164
165commit c4340692d4490ff80e897d4840fadc033c46d81a
166Author: Lasse Collin <lasse.collin@tukaani.org>
167Date:   2025-12-09 13:01:36 +0200
168
169    Translations: Add src/xz/sandbox.c to POTFILES.in
170
171    There are no strings to translate in that file now, but it's good to
172    list it anyway in case translatable strings are added in the future.
173
174    Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.")
175
176 po/POTFILES.in | 1 +
177 1 file changed, 1 insertion(+)
178
179commit b8af36920b0857c0329f61414df5989093386db1
180Author: Lasse Collin <lasse.collin@tukaani.org>
181Date:   2025-12-09 12:55:45 +0200
182
183    xz: Never translate "Failed to enable the sandbox"
184
185    This was already the case in practice because I had forgotten to list
186    src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never
187    translate this particular error message. It should almost never occur
188    and if it does, an untranslated message is should make it easier to
189    find bug reports about it.
190
191 src/xz/sandbox.c | 24 +++++++++++++++---------
192 1 file changed, 15 insertions(+), 9 deletions(-)
193
194commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c
195Author: Lasse Collin <lasse.collin@tukaani.org>
196Date:   2025-12-09 12:27:15 +0200
197
198    Translations: Update the Swedish man page translations
199
200 po4a/sv.po | 15 +++++----------
201 1 file changed, 5 insertions(+), 10 deletions(-)
202
203commit 88531e5463d9f028387a11b78d53c9c269e6a3a0
204Author: Lasse Collin <lasse.collin@tukaani.org>
205Date:   2025-12-09 12:26:24 +0200
206
207    Translations: Update the Romanian man page translations
208
209 po4a/ro.po | 18 +++++++-----------
210 1 file changed, 7 insertions(+), 11 deletions(-)
211
212commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa
213Author: Lasse Collin <lasse.collin@tukaani.org>
214Date:   2025-12-09 12:13:36 +0200
215
216    Update THANKS
217
218 THANKS | 1 +
219 1 file changed, 1 insertion(+)
220
221commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5
222Author: Lasse Collin <lasse.collin@tukaani.org>
223Date:   2025-12-09 12:13:36 +0200
224
225    CMake: Autodetect unaligned access support on LoongArch
226
227    This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more
228    CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in
229    a more defined manner, but 4.1 is too new to require for now.
230
231    Thanks-to: Li Chenggang <lichenggang@deepin.org>
232    Closes: https://github.com/tukaani-project/xz/pull/186
233
234 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++
235 1 file changed, 81 insertions(+)
236
237commit 7971566247914ec1854b125ff99c2a617f5c1e3a
238Author: Lasse Collin <lasse.collin@tukaani.org>
239Date:   2025-12-09 12:13:36 +0200
240
241    Autotools: Autodetect unaligned access support on LoongArch
242
243    According to [1] sections 7.4, 8.1, and 8.2, desktop and server
244    processors support fast unaligned access, but embedded systems likely
245    don't.
246
247    It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when
248    -mstrict-align is in use because it will result in slower binaries
249    even if running on a processor that supports fast unaligned access.
250    It's because compilers will translate multibyte memcpy() to multiple
251    byte-by-byte instructions instead of wider loads and stores. The
252    compression times from [2] show this well:
253
254        Unaligned access    CFLAGS                     Compression time
255            enabled         -O2 -mno-strict-align          66.1 s
256            disabled        -O2 -mno-strict-align          79.5 s
257            disabled        -O2 -mstrict-align             79.9 s
258            enabled         -O2 -mstrict-align            129.1 s
259
260    There currently (GCC 15.2) is no preprocessor macro on LoongArch
261    to detect if -mstrict-align or -mno-strict-align is in effect (the
262    default is -mno-strict-align). Use heuristics to detect which of the
263    flags is in effect.
264
265    [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc
266    [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304
267
268    Thanks-to: Li Chenggang <lichenggang@deepin.org>
269    Thanks-to: Xi Ruoyao
270    See: https://github.com/tukaani-project/xz/pull/186
271
272 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++
273 1 file changed, 68 insertions(+)
274
275commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd
276Author: Lasse Collin <lasse.collin@tukaani.org>
277Date:   2025-11-26 13:50:57 +0200
278
279    xz: Silence clang -Wunreachable-code-break
280
281    Fixes: a165d7df1964 ("xz: Add a new --filters-help option.")
282
283 src/xz/args.c | 1 -
284 1 file changed, 1 deletion(-)
285
286commit 723cee44d076281bce9c3d7bd2c17b0680bd8884
287Author: Lasse Collin <lasse.collin@tukaani.org>
288Date:   2025-11-26 13:50:57 +0200
289
290    liblzma: Remove unwanted semicolons
291
292    These didn't affect control flow.
293
294 src/liblzma/common/vli_decoder.c       | 2 +-
295 src/liblzma/lzma/lzma_common.h         | 4 ++--
296 src/liblzma/rangecoder/range_decoder.h | 6 +++---
297 3 files changed, 6 insertions(+), 6 deletions(-)
298
299commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735
300Author: Lasse Collin <lasse.collin@tukaani.org>
301Date:   2025-11-26 13:50:57 +0200
302
303    Tests: Remove an unwanted semicolon from a macro definition
304
305    It didn't affect control flow.
306
307    Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.")
308
309 tests/test_block_header.c | 2 +-
310 1 file changed, 1 insertion(+), 1 deletion(-)
311
312commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549
313Author: Lasse Collin <lasse.collin@tukaani.org>
314Date:   2025-11-26 13:50:57 +0200
315
316    Build: Use -Wextra-semi-stmt when supported
317
318 CMakeLists.txt | 1 +
319 configure.ac   | 1 +
320 2 files changed, 2 insertions(+)
321
322commit 91170c8cab72b94a697f5228f4df13483ef5be91
323Author: Lasse Collin <lasse.collin@tukaani.org>
324Date:   2025-11-26 13:50:57 +0200
325
326    CI: Add clang-cl
327
328    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136
329
330 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++
331 1 file changed, 46 insertions(+)
332
333commit a3c6cb09113de978b971cbdacf5c4890d4237c28
334Author: Lasse Collin <lasse.collin@tukaani.org>
335Date:   2025-11-26 13:50:57 +0200
336
337    xz/Windows: Add a missing #include to fix the build with clang-cl
338
339    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734
340    Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136
341
342 src/xz/util.c | 4 ++++
343 1 file changed, 4 insertions(+)
344
345commit c410ccc62511ec95b20639defb10650ef9b75e8c
346Author: Lasse Collin <lasse.collin@tukaani.org>
347Date:   2025-11-25 21:05:37 +0200
348
349    xz: Check return value of sigaction() before calling raise()
350
351    Fixes: Coverity CID 456022
352
353 src/xz/signals.c | 10 ++++++++--
354 1 file changed, 8 insertions(+), 2 deletions(-)
355
356commit 6cc2da0a4b180b71cb6e781c897052def103ad3e
357Author: Lasse Collin <lasse.collin@tukaani.org>
358Date:   2025-11-02 12:57:00 +0200
359
360    liblzma: Refactor a loop in lzma_filters_copy()
361
362    Arguably it's nicer if i doesn't wrap around when the loop terminates.
363
364    Fixes: Coverity CID 464589
365    Fixes: 6d118a0b9def ("Add lzma_filters_copy().")
366
367 src/liblzma/common/filter_common.c | 4 ++--
368 1 file changed, 2 insertions(+), 2 deletions(-)
369
370commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf
371Author: Lasse Collin <lasse.collin@tukaani.org>
372Date:   2025-11-02 12:17:50 +0200
373
374    liblzma: Silence two Coverity warnings
375
376    lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't
377    valid. alone_decoder.c and lzip_decoder.c didn't check the return
378    value because in both it is known that lc/lp/pb are valid. Make them
379    call the _nocheck() variant instead which skips the validation (it
380    already existed for LZMA2's internal use).
381
382    Fixes: Coverity CID 464658
383    Fixes: Coverity CID 897069
384
385 src/liblzma/common/alone_decoder.c |  6 ++++--
386 src/liblzma/common/lzip_decoder.c  |  3 ++-
387 src/liblzma/lzma/lzma_decoder.h    | 11 ++++++-----
388 3 files changed, 12 insertions(+), 8 deletions(-)
389
390commit be365b701024b9acbfef4035c6433a0fbb4be823
391Author: Lasse Collin <lasse.collin@tukaani.org>
392Date:   2025-11-02 12:17:50 +0200
393
394    liblzma: Fix a harmless read of shared variable without mutex
395
396    The partial_update_mode enumeration had three states, _DISABLED,
397    _START, and _ENABLED. Main thread changed it from _DISABLED to _START
398    while holding a mutex. Once set to _START, worker thread changed it
399    to _ENABLED without a mutex. Later main thread read it without a mutex,
400    so it could see either _START or _ENABLED. However, it made no
401    difference because the main thread checked for != _DISABLED, so
402    it didn't matter if it saw _START or _ENABLED.
403
404    Nevertheless, such things must not be done. It's clear it was a mistake
405    because there were two comments that directly contradicted each
406    other about how the variable was accessed.
407
408    Split the enumeration into two booleans:
409
410      - partial_update_enabled: A worker thread locks the mutex to read
411        this variable and the main thread locks the mutex to change the
412        value. Because only the main thread modifies the variable, the
413        main thread can read the value without locking the mutex.
414        This variable replaces the _DISABLED -> _START transition.
415
416      - partial_update_started is for worker thread's internal use and thus
417        needs no mutex. This replaces the _START -> _ENABLED transition.
418
419    Fixes: Coverity CID 456025
420    Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.")
421
422 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++-------------------
423 1 file changed, 34 insertions(+), 45 deletions(-)
424
425commit 2686554da0103580a472919220931c397b1d1f7a
426Author: Lasse Collin <lasse.collin@tukaani.org>
427Date:   2025-11-02 12:17:50 +0200
428
429    CI: Add Coverity Scan
430
431    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
432    Fixes: https://github.com/tukaani-project/xz/issues/198
433
434 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++
435 1 file changed, 38 insertions(+)
436
437commit 1b30734c9c08a3f628574d172f1a6034277a2163
438Author: Lasse Collin <lasse.collin@tukaani.org>
439Date:   2025-11-25 13:55:35 +0200
440
441    Change the sorting order in THANKS
442
443    In short, sort the names with this command (-k1,1 isn't needed because
444    the lines with names start with "  -"):
445
446        LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5
447
448    When THANKS was created, I wrote the names as "First Last" and attempted
449    to keep them sorted by last name / surname / family name. This works
450    with many names in THANKS, but it becomes complicated with names that
451    don't fit that pattern. For example, names that are written as
452    "Last First" can be manually sorted by family name, but only if one
453    knows which part of the name is the family name.[*] And of course,
454    the concept of first/last name doesn't apply to all names.
455
456    [*] xz had a co-maintainer who could help me with such names,
457        but fortunately he isn't working on the project anymore.
458
459    Adding the names in chronological order could have worked too, although
460    if something is contributed by multiple people, one would still have to
461    decide how to sort the names within the batch. Another downside would
462    be that if THANKS is updated in more than one work-in-progress branch,
463    merge conflicts would occur more often.
464
465    Don't attempt to sort by last name. Let's be happy that people tend to
466    provide names that can be expressed in a reasonable number of printable
467    Unicode characters. In practice, people have been even nicer: if the
468    native language doesn't use a Latin script alphabet, people often provide
469    a transliterated name (only or in addition to the original spelling),
470    which is very much appreciated by those who don't know the native script.
471
472    Treat the names as opaque strings or space-separated strings for sorting
473    purposes. This means that most names will now be sorted by first name.
474    There still are many choices how to sort:
475
476    (1) LC_ALL=en_US.UTF-8 sort
477
478        The project is in English, so this may sound like a logical choice.
479        However, spaces have a lower weight than letters, which results in
480        this order:
481
482            - A Ba
483            - Ab C
484            - A Bc
485            - A Bd
486
487    (2) LC_ALL=en_US.UTF-8 sort -k2,2
488
489        This first sorts by the first word and then by the rest of the
490        string. It's -k2,2 instead of -k1,1 to skip the leading dash.
491
492            - A Ba
493            - A Bc
494            - A Bd
495            - Ab C
496
497        I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too.
498        With current THANKS it makes no difference but it might some day.
499
500        NOTE: The ordering in en_US.UTF-8 can differ between libc versions
501        and operating systems. Luckily it's not a big deal in THANKS.
502
503    (3) LC_ALL=en_US.UTF-8 sort -f -k2,2
504
505        Passing -f (--ignore-case) to sort affects sorting of single-byte
506        characters but not multibyte characters (GNU coreutils 9.9):
507
508            No -f       With -f     LC_ALL=C
509            Aa          A.A         A.A
510            A.A         Aa          Aa
511            Ää          Ää          Ä.Ä
512            Ä.Ä         Ä.Ä         Ää
513
514        In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1".
515        There is also a basic check that the en_US.UTF-8 locale is
516        behaving as expected.
517
518    (4) LC_ALL=C sort
519
520        This sorts by byte order which in UTF-8 is the same as Unicode
521        code point order. With the strings in (1) and (2), this produces
522        the same result as in (2). The difference in (3) can be seen above.
523
524        The results differ from en_US.UTF-8 when a name component starts
525        with a lower case ASCII letter (like "von" or "de"). Worse, any
526        non-ASCII characters sort after ASCII chars. These properties might
527        look weird in English language text, although it's good to remember
528        that en_US.UTF-8 sorting can appear weird too if one's native
529        language isn't English.
530
531    The choice between (2) and (4) was difficult but I went with (2).
532
533    ;-)
534
535 THANKS | 414 ++++++++++++++++++++++++++++++++---------------------------------
536 1 file changed, 207 insertions(+), 207 deletions(-)
537
538commit 8bb516887c1912106a72db96216cab46954e6190
539Author: Lasse Collin <lasse.collin@tukaani.org>
540Date:   2025-11-23 20:39:28 +0200
541
542    Landlock: Add missing #ifdefs
543
544    The build was broken on distros that have an old <sys/landlock.h>.
545
546    Fixes: 2b2652e914b1 ("Landlock: Workaround a bug in RHEL 9 kernel")
547
548 src/common/my_landlock.h | 6 ++++++
549 1 file changed, 6 insertions(+)
550
551commit 23c95c6a7c374962103dbd35cb79fdd5a6fe8b52
552Author: Lasse Collin <lasse.collin@tukaani.org>
553Date:   2025-11-23 20:13:50 +0200
554
555    Update THANKS
556
557 THANKS | 2 ++
558 1 file changed, 2 insertions(+)
559
560commit 2b2652e914b1c38d4c009a8dcac11dfee9c7e008
561Author: Lasse Collin <lasse.collin@tukaani.org>
562Date:   2025-11-23 20:13:49 +0200
563
564    Landlock: Workaround a bug in RHEL 9 kernel
565
566    If one runs xz 5.8.0 or 5.8.1 from some other distribution in a container
567    on RHEL 9, xz will fail with the message "Failed to enable the sandbox".
568
569    RHEL 9 kernel since 5.14.0-603.el9 (2025-07-30) claims to support
570    Landlock ABI version 6, but it lacks support for LANDLOCK_SCOPE_SIGNAL.
571    The issue is still present in 5.14.0-643.el9 (2025-11-22). Red Hat is
572    aware of the issue, but I don't know when it will be fixed.
573
574    The sandbox is meant to be transparent to users, thus there isn't and
575    won't be a command line option to disable it. Instead, add a workaround
576    to keep xz working on the buggy RHEL 9 kernels.
577
578    Reported-by: Richard W.M. Jones
579    Thanks-to: Pavel Raiskup
580    Tested-by: Orgad Shaneh
581    Tested-by: Richard W.M. Jones
582    Fixes: https://github.com/tukaani-project/xz/issues/199
583    Link: https://issues.redhat.com/browse/RHEL-125143
584    Link: https://bugzilla.redhat.com/show_bug.cgi?id=2407105
585    Link: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/65BDSY56R5ZJRTUC4B6CIVCVLY4LG4ME/
586
587 src/common/my_landlock.h | 27 ++++++++++++++++++++++++++-
588 1 file changed, 26 insertions(+), 1 deletion(-)
589
590commit ee75c76958dd891906745125590563ab64e85995
591Author: Lasse Collin <lasse.collin@tukaani.org>
592Date:   2025-11-23 20:13:37 +0200
593
594    Landlock: Cache the ABI version
595
596    In xz it can avoid up to two syscalls that query the ABI version.
597
598 src/common/my_landlock.h | 14 +++++++++++++-
599 1 file changed, 13 insertions(+), 1 deletion(-)
600
601commit f57b1716cd0853474980c90a892204dee9bdea1a
602Author: Lasse Collin <lasse.collin@tukaani.org>
603Date:   2025-11-03 14:52:45 +0200
604
605    Update THANKS
606
607 THANKS | 1 +
608 1 file changed, 1 insertion(+)
609
610commit 211cde09236165dbd379644753337be1de64b151
611Author: Lasse Collin <lasse.collin@tukaani.org>
612Date:   2025-11-03 12:41:31 +0200
613
614    mythread.h: Fix the build on Emscripten when threading is disabled
615
616    To make a non-threaded liblzma-only build work with WASI SDK, <signal.h>
617    and mythread_sigmask() were omitted from mythread.h in the commit
618    81db3b889830. This broke non-threaded full build with Emscripten because
619    src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine).
620
621    If __wasm__ is defined, omit <signal.h> and mythread_sigmask() in
622    non-threaded builds only when __EMSCRIPTEN__ isn't defined.
623
624    Reported-by: Marcus Tillmanns
625    Thanks-to: ChanTsune
626    Fixes: https://github.com/tukaani-project/xz/issues/161
627    Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.")
628
629 src/common/mythread.h | 3 ++-
630 1 file changed, 2 insertions(+), 1 deletion(-)
631
632commit cbf50a99e3f0c2735fd573e166baf37df063b37b
633Author: Lasse Collin <lasse.collin@tukaani.org>
634Date:   2025-11-03 11:56:32 +0200
635
636    Translations: Update the Serbian man page translations
637
638    The earlier bug fixes are now included in the Translation Project.
639
640 po4a/sr.po | 4 ++--
641 1 file changed, 2 insertions(+), 2 deletions(-)
642
643commit 68d1591187512d8872615c8a904d43073440d93f
644Author: Lasse Collin <lasse.collin@tukaani.org>
645Date:   2025-11-02 19:40:55 +0200
646
647    xz: Silence a compiler warning when signals_block_count is unused
648
649    Move the static variable signals_block_count to the #ifndef block
650    that already has the functions that need the variable.
651
652 src/xz/signals.c | 7 ++++---
653 1 file changed, 4 insertions(+), 3 deletions(-)
654
655commit beca015891fbd22657663ec23809184dda0677cd
656Author: Lasse Collin <lasse.collin@tukaani.org>
657Date:   2025-11-02 17:45:20 +0200
658
659    xz: Silence a warning from Clang on glibc systems
660
661    Fixes: e8838b2f5922 ("xz: Look at resource limits when determining the default memlimit")
662
663 src/xz/hardware.c | 13 +++++++++++++
664 1 file changed, 13 insertions(+)
665
666commit 3e394278ed537575b5db43c09989c6ca99f762de
667Author: Lasse Collin <lasse.collin@tukaani.org>
668Date:   2025-11-02 14:37:52 +0200
669
670    Translations: Update the Serbian man page translations
671
672    Preserve the bug fixes made in 71ad5e82888f and 4f52e7387012 because
673    upstream hasn't included them.
674
675 po4a/sr.po | 17 ++++++-----------
676 1 file changed, 6 insertions(+), 11 deletions(-)
677
678commit ace28e35732fc43f58ea1aac146fdb73084f2548
679Author: Lasse Collin <lasse.collin@tukaani.org>
680Date:   2025-11-02 14:27:10 +0200
681
682    Translations: Update the Korean man page translations
683
684 po4a/ko.po | 17 ++++++-----------
685 1 file changed, 6 insertions(+), 11 deletions(-)
686
687commit ffd14a099f0d8c92d4f74018d3a52bd2327df4db
688Author: Lasse Collin <lasse.collin@tukaani.org>
689Date:   2025-11-02 14:24:43 +0200
690
691    Translations: Update the Italian man page translations
692
693 po4a/it.po | 15 +++++----------
694 1 file changed, 5 insertions(+), 10 deletions(-)
695
696commit 6f3152874ee375b581aa858fccab7865dcbf6403
697Author: Lasse Collin <lasse.collin@tukaani.org>
698Date:   2025-11-02 14:12:23 +0200
699
700    Translations: Update the Ukrainian man page translations
701
702 po4a/uk.po | 15 +++++----------
703 1 file changed, 5 insertions(+), 10 deletions(-)
704
705commit ef67e051d71938a23713d9782a3f0c470ac51b1e
706Author: Lasse Collin <lasse.collin@tukaani.org>
707Date:   2025-09-28 18:32:05 +0300
708
709    liblzma: Fix build on old Linux/glibc on ARM64
710
711    getauxval() can be available even if HWCAP_CRC32 isn't #defined, so
712    both have to be checked. HWCAP_CRC32 was added in glibc 2.24 (2016).
713
714    Fixes: https://github.com/tukaani-project/xz/issues/190
715
716 CMakeLists.txt                  | 7 +++++++
717 configure.ac                    | 6 +++++-
718 src/liblzma/check/crc32_arm64.h | 5 +++--
719 src/liblzma/check/crc_common.h  | 3 ++-
720 4 files changed, 17 insertions(+), 4 deletions(-)
721
722commit 71c2ede383f6dc6661b8a9d844f4bcf81c563643
723Author: Lasse Collin <lasse.collin@tukaani.org>
724Date:   2025-10-31 14:36:26 +0200
725
726    CI: Update Solaris
727
728 .github/workflows/solaris.yml | 2 +-
729 1 file changed, 1 insertion(+), 1 deletion(-)
730
731commit 02da8de0edddd31a3e9818c2200b97c446d6eb5b
732Author: Lasse Collin <lasse.collin@tukaani.org>
733Date:   2025-10-31 14:32:47 +0200
734
735    CI: Update DragonFly BSD
736
737 .github/workflows/dragonflybsd.yml | 8 ++++----
738 1 file changed, 4 insertions(+), 4 deletions(-)
739
740commit 75b18d325f6a993eac2d5f44c7aad941aa20df94
741Author: Lasse Collin <lasse.collin@tukaani.org>
742Date:   2025-10-31 14:30:24 +0200
743
744    CI: Update NetBSD
745
746 .github/workflows/netbsd.yml | 2 +-
747 1 file changed, 1 insertion(+), 1 deletion(-)
748
749commit 0102072915f38e747ee55aa9c52351dfe81b8c14
750Author: Lasse Collin <lasse.collin@tukaani.org>
751Date:   2025-10-31 14:21:37 +0200
752
753    CI: Update FreeBSD
754
755 .github/workflows/freebsd.yml | 2 +-
756 1 file changed, 1 insertion(+), 1 deletion(-)
757
758commit 83419783a67a6097c7d5ed5663734c04eb8c8b55
759Author: Lasse Collin <lasse.collin@tukaani.org>
760Date:   2025-10-31 14:17:30 +0200
761
762    CI: Update OpenBSD
763
764 .github/workflows/openbsd.yml | 6 +++---
765 1 file changed, 3 insertions(+), 3 deletions(-)
766
767commit 3b5f5af9bcd9b5752608a099fcfab331c0c613b3
768Author: Lasse Collin <lasse.collin@tukaani.org>
769Date:   2025-10-26 12:07:34 +0200
770
771    Update THANKS
772
773 THANKS | 2 ++
774 1 file changed, 2 insertions(+)
775
776commit e8838b2f59221f46bf34c79431d286e8ac34fb8b
777Author: Kirill A. Korinsky <kirill@korins.ky>
778Date:   2025-10-26 12:07:34 +0200
779
780    xz: Look at resource limits when determining the default memlimit
781
782    When no memory usage limits have been set by the user, the default
783    for multithreaded mode has been 1/4 of total RAM. If this limit is
784    too high and memory allocation fails, liblzma (and xz) fail. Perhaps
785    liblzma should handle it better by reducing the number of threads
786    and continuing with the amount of memory it can allocate, but currently
787    that isn't the case.
788
789    If resource limits were set to about 1/4 of RAM or lower, then xz
790    could fail for the above reason. This commit makes xz look at
791    RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM when they are available,
792    and set the limit 64 MiB below the lowest of those limits. This is
793    more or less a hack just like the 1/4-of-RAM method is, but this is
794    simple and quick to implement.
795
796    On Linux, there are other limits like cgroup v2 memory.max which
797    can still make xz fail. The same is likely possible with FreeBSD's
798    rctl(8).
799
800    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
801    Thanks-to: Fangrui Song
802    Fixes: https://github.com/tukaani-project/xz/issues/195
803    Closes: https://github.com/tukaani-project/xz/pull/196
804
805 CMakeLists.txt    |  3 +++
806 configure.ac      |  4 ++--
807 src/xz/hardware.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
808 3 files changed, 64 insertions(+), 2 deletions(-)
809
810commit 8d26b72915e0d373f898b55935505857c30dbdb3
811Author: Lasse Collin <lasse.collin@tukaani.org>
812Date:   2025-10-01 12:46:26 +0300
813
814    CI: Remove windows-2019 (which had VS 2019)
815
816    GitHub has removed the runner image.
817
818    A breakage with CLMUL CRC code occurred with VS 2019 but not 2022,
819    see b5a5d9e3f702. MS supports VS 2019 for a few more years, so it's
820    unfortunate that it can no longer be tested on GitHub.
821
822 .github/workflows/msvc.yml | 2 +-
823 1 file changed, 1 insertion(+), 1 deletion(-)
824
825commit 32412bd2a42fda639765c3046e91f964e286b6d9
826Author: Lasse Collin <lasse.collin@tukaani.org>
827Date:   2025-09-29 19:34:58 +0300
828
829    Update THANKS
830
831 THANKS | 3 +++
832 1 file changed, 3 insertions(+)
833
834commit eaa150df9803c982adf28d4533c7a4264ea17757
835Author: Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com>
836Date:   2025-07-17 23:27:06 -0500
837
838    xz: Don't fsync() directories on AIX
839
840    It fails with EBADF.
841
842    Fixes: https://github.com/tukaani-project/xz/issues/188
843    Closes: https://github.com/tukaani-project/xz/pull/189
844
845 src/xz/file_io.c | 3 ++-
846 1 file changed, 2 insertions(+), 1 deletion(-)
847
848commit 61b114e92f53b7977aad69f8a7130fc25d8a80e5
849Author: Lasse Collin <lasse.collin@tukaani.org>
850Date:   2025-09-29 18:37:19 +0300
851
852    liblzma: Document that lzma_allocator.free(opaque, NULL) is possible
853
854    It feels better to fix the docs than change the code because this
855    way newly-written applications will be forced to be compatible with
856    the lzma_allocator behavior of old liblzma versions. It can matter
857    if someone builds the application against an older liblzma version.
858
859    Fixes: https://github.com/tukaani-project/xz/issues/183
860
861 src/liblzma/api/lzma/base.h | 4 +++-
862 1 file changed, 3 insertions(+), 1 deletion(-)
863
864commit 6d287a3ae90e1b990294f3d5264003d81e853c5e
865Author: Simon Josefsson <simon@josefsson.org>
866Date:   2025-08-26 09:41:02 +0200
867
868    Update GPLv2 and LGPLv2.1 copies from gnu.org
869
870    Closes: https://github.com/tukaani-project/xz/pull/194
871
872 COPYING.GPLv2    | 9 ++++-----
873 COPYING.LGPLv2.1 | 9 ++++-----
874 2 files changed, 8 insertions(+), 10 deletions(-)
875
876commit 41a421dbadf13af2a59aaafa43836026b83340a7
877Author: Lasse Collin <lasse.collin@tukaani.org>
878Date:   2025-05-24 12:07:13 +0300
879
880    tests/test_suffix.sh: Avoid variables in printf format string
881
882 tests/test_suffix.sh | 4 ++--
883 1 file changed, 2 insertions(+), 2 deletions(-)
884
885commit a2c6aa8764a2e5248572d461305bd05c5950bf94
886Author: Lasse Collin <lasse.collin@tukaani.org>
887Date:   2025-05-24 12:02:09 +0300
888
889    build-aux/manconv.sh: Add quotes
890
891 build-aux/manconv.sh | 8 ++++----
892 1 file changed, 4 insertions(+), 4 deletions(-)
893
894commit 8e4153253eea2b5a9466467b2ce0249e56277c9a
895Author: Lasse Collin <lasse.collin@tukaani.org>
896Date:   2025-05-24 12:01:35 +0300
897
898    windows/build.bash: Add quotes
899
900    In this case they aren't needed but it's better style.
901
902 windows/build.bash | 4 ++--
903 1 file changed, 2 insertions(+), 2 deletions(-)
904
905commit 37a57a926dd1ae6cde1544d8487e27982d2db4a4
906Author: Lasse Collin <lasse.collin@tukaani.org>
907Date:   2025-05-24 12:00:13 +0300
908
909    po4a/update-po: Ensure that a glob won't expand to a command line option
910
911 po4a/update-po | 2 +-
912 1 file changed, 1 insertion(+), 1 deletion(-)
913
914commit e3ba73034a3f8e414882af39d62f479e9717e061
915Author: Lasse Collin <lasse.collin@tukaani.org>
916Date:   2025-05-24 11:57:23 +0300
917
918    liblzma: validate_map.sh: Catch some unlikely errors
919
920 src/liblzma/validate_map.sh | 4 ++--
921 1 file changed, 2 insertions(+), 2 deletions(-)
922
923commit 067cecdea69067973e44dc1afb9be763faccecb2
924Author: Lasse Collin <lasse.collin@tukaani.org>
925Date:   2025-05-24 11:55:59 +0300
926
927    CI: Catch unsupported arguments in ci_build.bash
928
929 build-aux/ci_build.bash | 4 ++++
930 1 file changed, 4 insertions(+)
931
932commit 4fc6208abebfe6b8c8348c412b4bcc594ae11c88
933Author: Lasse Collin <lasse.collin@tukaani.org>
934Date:   2025-05-13 20:42:26 +0300
935
936    Scripts: Add shellcheck directives to silence warnings
937
938    Set also shell because the xz*.in files start with '#!@POSIX_SHELL@'.
939
940    SC1003 and SC2016 are only info messages, not warnings. Several other
941    shellcheck info messages remain. They are safe to ignore, but I didn't
942    want to disable them now.
943
944    Partially-fixes: https://github.com/tukaani-project/xz/issues/174
945
946 src/scripts/xzdiff.in | 4 ++++
947 src/scripts/xzgrep.in | 2 ++
948 src/scripts/xzless.in | 2 ++
949 src/scripts/xzmore.in | 2 ++
950 4 files changed, 10 insertions(+)
951
952commit 7844aff1a838362403b332c3a68d5732a192923a
953Author: Lasse Collin <lasse.collin@tukaani.org>
954Date:   2025-05-03 22:45:15 +0300
955
956    Scripts: Silence two shellcheck warnings
957
958 src/scripts/xzdiff.in | 2 +-
959 src/scripts/xzmore.in | 2 +-
960 2 files changed, 2 insertions(+), 2 deletions(-)
961
962commit 4d439aaeed5c991fbc1ff78d7616e179c30fca1d
963Author: Lasse Collin <lasse.collin@tukaani.org>
964Date:   2025-09-29 17:29:23 +0300
965
966    Translations: Add Swedish man page translations
967
968 po4a/po4a.conf |    2 +-
969 po4a/sv.po     | 3909 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
970 2 files changed, 3910 insertions(+), 1 deletion(-)
971
972commit dd4a1b259936880e04669b43e778828b60619860
973Author: Lasse Collin <lasse.collin@tukaani.org>
974Date:   2025-05-23 13:09:14 +0300
975
976    CI: Add timeout-minutes
977
978    Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck
979    and the default timeout is six hours. While at it, set a sensible
980    timeout for all workflows.
981
982 .github/workflows/ci.yml           | 1 +
983 .github/workflows/cifuzz.yml       | 1 +
984 .github/workflows/dragonflybsd.yml | 1 +
985 .github/workflows/freebsd.yml      | 1 +
986 .github/workflows/msvc.yml         | 1 +
987 .github/workflows/msys2.yml        | 1 +
988 .github/workflows/netbsd.yml       | 1 +
989 .github/workflows/openbsd.yml      | 1 +
990 .github/workflows/solaris.yml      | 1 +
991 9 files changed, 9 insertions(+)
992
993commit d660fe5d56a804b0ef3eea550fdcd51dbe17e45b
994Author: Lasse Collin <lasse.collin@tukaani.org>
995Date:   2025-05-23 12:25:36 +0300
996
997    liblzma: Fix grammar in API docs
998
999    Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).")
1000
1001 src/liblzma/api/lzma/base.h | 2 +-
1002 1 file changed, 1 insertion(+), 1 deletion(-)
1003
1004commit ab45bdf4322879dc2859b1f66f1f8cf89cdebe2c
1005Author: Lasse Collin <lasse.collin@tukaani.org>
1006Date:   2025-05-21 16:07:01 +0300
1007
1008    Update THANKS
1009
1010 THANKS | 1 +
1011 1 file changed, 1 insertion(+)
1012
1013commit f0239936532d40be05e75384c37fb8d6c1bb4ff6
1014Author: Lasse Collin <lasse.collin@tukaani.org>
1015Date:   2025-05-21 16:07:01 +0300
1016
1017    CMake: With symbol versioning, try to pass --undefined-version to linker
1018
1019    Fixes: https://github.com/tukaani-project/xz/issues/180
1020    Fixes: https://bugs.gentoo.org/956119
1021
1022 CMakeLists.txt | 22 ++++++++++++++++++++++
1023 1 file changed, 22 insertions(+)
1024
1025commit 377be0ea7a1d0ec3572a7f9a5f9ed42adeaa4503
1026Author: Lasse Collin <lasse.collin@tukaani.org>
1027Date:   2025-05-21 16:07:01 +0300
1028
1029    Build: With symbol versioning, try to pass --undefined-version to linker
1030
1031    Fixes: https://github.com/tukaani-project/xz/issues/180
1032    Fixes: https://bugs.gentoo.org/956119
1033
1034 configure.ac            | 23 +++++++++++++++++++++++
1035 src/liblzma/Makefile.am |  2 ++
1036 2 files changed, 25 insertions(+)
1037
1038commit ff49c82176ca53646a1cbbbb4efc35a542745812
1039Author: Lasse Collin <lasse.collin@tukaani.org>
1040Date:   2025-05-21 14:48:18 +0300
1041
1042    CMake: Fix comments
1043
1044 CMakeLists.txt | 4 ++--
1045 1 file changed, 2 insertions(+), 2 deletions(-)
1046
1047commit 71ad5e82888fdfa0fe11defa4f46cb0fc90dc326
1048Author: Lasse Collin <lasse.collin@tukaani.org>
1049Date:   2025-05-21 13:14:04 +0300
1050
1051    Translations: Update Serbian man page translations
1052
1053    Compared to the file in the Translation Project, I still had to apply
1054    a few fixes that were needed with the previous (5.7.1-dev1) version too:
1055
1056      - Remove two extra '<' characters that break the build with po4a.
1057
1058      - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names.
1059
1060 po4a/sr.po | 70 ++++++++++++++++++++------------------------------------------
1061 1 file changed, 22 insertions(+), 48 deletions(-)
1062
1063commit 31a983ad4774054074b300f55ff519484ff182c2
1064Author: Lasse Collin <lasse.collin@tukaani.org>
1065Date:   2025-05-21 12:55:28 +0300
1066
1067    Update po/.gitignore
1068
1069 po/.gitignore | 1 +
1070 1 file changed, 1 insertion(+)
1071
1072commit d9e70da25ac761544146bc2fbab6443e1a080bf4
1073Author: Lasse Collin <lasse.collin@tukaani.org>
1074Date:   2025-05-21 12:54:42 +0300
1075
1076    Translations: Update the Spanish translation
1077
1078 po/es.po | 10 +++++-----
1079 1 file changed, 5 insertions(+), 5 deletions(-)
1080
1081commit dbfb925c8198087afb3527e6c57b66fae1a980bb
1082Author: Lasse Collin <lasse.collin@tukaani.org>
1083Date:   2025-05-03 12:37:28 +0300
1084
1085    Tests: Silence a warning from GCC 15.1
1086
1087    It was (probably) intentionally without the null terminator, but the test
1088    works with null terminator too (the test still fails with xz <= 5.0.3),
1089    so simply omit one character to silence the warning.
1090
1091    tests/test_bcj_exact_size.c:30:32: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization]
1092       30 |         const uint8_t in[16] = "0123456789ABCDEF";
1093          |                                ^~~~~~~~~~~~~~~~~~
1094
1095    Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.")
1096    Fixes: https://github.com/tukaani-project/xz/issues/176
1097
1098 tests/test_bcj_exact_size.c | 2 +-
1099 1 file changed, 1 insertion(+), 1 deletion(-)
1100
1101commit 7c12726c51b2b7d77329dd72a29ecb1ec262b918
1102Author: Lasse Collin <lasse.collin@tukaani.org>
1103Date:   2025-04-28 18:16:14 +0300
1104
1105    Update THANKS
1106
1107 THANKS | 2 ++
1108 1 file changed, 2 insertions(+)
1109
1110commit 1bd7361a043bd652ee5d0ebafd23459c57f57993
1111Author: Lasse Collin <lasse.collin@tukaani.org>
1112Date:   2025-04-25 17:32:03 +0300
1113
1114    Update THANKS
1115
1116 THANKS | 1 +
1117 1 file changed, 1 insertion(+)
1118
1119commit 5cc2e479eb447a444f5ab005fc36b7f275c75eb5
1120Author: Guillaume Outters <guillaume-installs@outters.eu>
1121Date:   2025-04-25 02:55:08 +0200
1122
1123    xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear()
1124
1125    cap_rights_clear() with no additional arguments acts as a no-op, so
1126    instead of removing all capability rights from STDIN_FILENO, the same
1127    rights were allowed for STDIN_FILENO as were allowed for src_fd.
1128
1129    Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.")
1130    (The commit message says "stdout". It should have said "stderr".)
1131
1132 src/xz/sandbox.c  | 2 +-
1133 src/xzdec/xzdec.c | 2 +-
1134 2 files changed, 2 insertions(+), 2 deletions(-)
1135
1136commit 56aa9a07968a6a73fada6f9b96122c5165829f3b
1137Author: Lasse Collin <lasse.collin@tukaani.org>
1138Date:   2025-04-22 21:12:50 +0300
1139
1140    CI: Valgrind: Improve the skipping of traced child processes
1141
1142    Use --trace-children-skip instead of --trace-children-skip-by-arg
1143    so that the skipping is only done based on the executable names.
1144    (--trace-children-skip-by-arg can match other args than argv[0].)
1145
1146    Update the list of executables to skip to match what the scripts run.
1147
1148    Do not skip bash or sh. If Valgrind didn't trace the shell, then the
1149    xz and xzdec programs run by the shell wouldn't be analyzed either.
1150
1151    Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...")
1152
1153 .github/workflows/ci.yml | 2 +-
1154 1 file changed, 1 insertion(+), 1 deletion(-)
1155
1156commit f33da20b75a45caad25c9a4daf7906e4f056ce91
1157Author: Lasse Collin <lasse.collin@tukaani.org>
1158Date:   2025-04-22 21:12:50 +0300
1159
1160    CI: Valgrind: Test with static liblzma
1161
1162    If shared liblzma is built, tests/test_* and src/xz/xz are wrapper
1163    scripts created by Libtool. The wrappers set library search path
1164    so that the freshly-built shared library is found.
1165
1166    With a static liblzma, no wrapper scripts are needed, and Libtool
1167    places the real executables to the aforementioned locations. This
1168    speeds up the tests under Valgrind dramatically.
1169
1170    Fixes: 6c095a98fbec ("ci: test Valgrind")
1171
1172 .github/workflows/ci.yml | 2 +-
1173 1 file changed, 1 insertion(+), 1 deletion(-)
1174
1175commit 5606fa89f91ca1d0d53e339d88f574fc731049c1
1176Author: Lasse Collin <lasse.collin@tukaani.org>
1177Date:   2025-04-22 21:12:50 +0300
1178
1179    CI: Add Ubuntu on ARM64
1180
1181 .github/workflows/ci.yml | 27 ++++++++++++++++-----------
1182 1 file changed, 16 insertions(+), 11 deletions(-)
1183
1184commit ec047a65a068087cc6f71133df414858f6886121
1185Author: Lasse Collin <lasse.collin@tukaani.org>
1186Date:   2025-04-22 16:21:50 +0300
1187
1188    Doxygen: Update the comment about tested versions
1189
1190 doxygen/Doxyfile | 2 +-
1191 1 file changed, 1 insertion(+), 1 deletion(-)
1192
1193commit 4f86e77bef8918b0c64183590609357a275558d8
1194Author: Lasse Collin <lasse.collin@tukaani.org>
1195Date:   2025-04-22 16:21:50 +0300
1196
1197    Doxygen: Set HAVE_DOT = NO
1198
1199    Debian and Ubuntu have a patch that changes the upstream default to
1200    HAVE_DOT = YES. Undo it to have more consistent results across distros.
1201
1202    This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot"
1203    but that failed due to "dot" not being installed. "doxygen" still
1204    finished with exit status 0 until the commit that turned warnings to
1205    errors with WARN_AS_ERROR = FAIL_ON_WARNINGS.
1206
1207 doxygen/Doxyfile | 4 ++++
1208 1 file changed, 4 insertions(+)
1209
1210commit ff96542d1c78f744d992be5890c95d90b2d19047
1211Author: Lasse Collin <lasse.collin@tukaani.org>
1212Date:   2025-04-22 16:21:50 +0300
1213
1214    Doxygen: Treat warnings as errors
1215
1216    Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have
1217    a few things that won't have their own docs.
1218
1219 doxygen/Doxyfile | 2 ++
1220 1 file changed, 2 insertions(+)
1221
1222commit a6711d1c4ad681aad985372d01a7deb21b4a1b8b
1223Author: Lasse Collin <lasse.collin@tukaani.org>
1224Date:   2025-04-22 16:21:50 +0300
1225
1226    Doxygen: Fix errors and some warnings in internal docs
1227
1228 src/liblzma/check/crc32_fast.c | 2 +-
1229 src/liblzma/check/crc64_fast.c | 2 +-
1230 src/liblzma/common/outqueue.h  | 1 +
1231 src/xz/list.c                  | 2 ++
1232 src/xz/message.h               | 4 ++++
1233 5 files changed, 9 insertions(+), 2 deletions(-)
1234
1235commit 8efd80adfcd65dfea086c1008452c6424b30b78c
1236Author: Lasse Collin <lasse.collin@tukaani.org>
1237Date:   2025-04-22 16:21:50 +0300
1238
1239    CI: Use --disable-sandbox instead of --enable-sandbox=no
1240
1241    It's the same thing, just a style difference.
1242
1243 build-aux/ci_build.bash | 2 +-
1244 1 file changed, 1 insertion(+), 1 deletion(-)
1245
1246commit a2e47c7a59d835ba80beef53b986d45e99ecd94a
1247Author: Lasse Collin <lasse.collin@tukaani.org>
1248Date:   2025-04-22 16:21:50 +0300
1249
1250    CI: Support Doxygen in ci_build.bash
1251
1252 build-aux/ci_build.bash | 4 ++++
1253 1 file changed, 4 insertions(+)
1254
1255commit 9048e724945a3dfbf86d7f97437113f27ea41c63
1256Author: Lasse Collin <lasse.collin@tukaani.org>
1257Date:   2025-04-22 16:21:50 +0300
1258
1259    CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS
1260
1261 .github/workflows/ci.yml | 4 ++--
1262 1 file changed, 2 insertions(+), 2 deletions(-)
1263
1264commit d8e9dc63a6124336e72a849b8104ba60720f0fe2
1265Author: Lasse Collin <lasse.collin@tukaani.org>
1266Date:   2025-04-22 16:21:50 +0300
1267
1268    CI: Support XZ_NLS=OFF with CMake
1269
1270 build-aux/ci_build.bash | 1 +
1271 1 file changed, 1 insertion(+)
1272
1273commit ffa9fadecc85d21308aebac7b070fb5be791190f
1274Author: Lasse Collin <lasse.collin@tukaani.org>
1275Date:   2025-04-22 16:21:50 +0300
1276
1277    CI: Revise MSYS2
1278
1279    Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64
1280    to slightly reduce the number of runner VMs needed.
1281
1282    Install the required packages using the setup-msys2 action instead
1283    of running the commands separately.
1284
1285    Test Autotools and CMake in the same job to reduce the number of VMs.
1286    This doesn't slow it down too much because the msys2-setup step is
1287    needed by both. However, do only the full builds on ARM64 because
1288    those runners seem to be slower.
1289
1290    Test fewer build configurations. The point of testing on MSYS2 is to
1291    catch Windows-related issues. It should be enough that the more unusual
1292    build configurations are tested in ci.yml.
1293
1294    Run the build commands directly instead of using ci_build.bash. This
1295    makes it easier to see what commands are run even if it is a little
1296    more verbose now.
1297
1298    Run the workflow automatically when commit are pushed to master.
1299    With the fewer build variants it's not too slow.
1300
1301 .github/workflows/msys2.yml | 197 +++++++++++++++++++++++++-------------------
1302 1 file changed, 110 insertions(+), 87 deletions(-)
1303
1304commit 6f2aaa77daef7b408dc0d9c9a534373a30da7a50
1305Author: Lasse Collin <lasse.collin@tukaani.org>
1306Date:   2025-04-22 16:21:50 +0300
1307
1308    CI: Rename the MSYS2 workflow file
1309
1310 .github/workflows/{windows-ci.yml => msys2.yml} | 0
1311 1 file changed, 0 insertions(+), 0 deletions(-)
1312
1313commit 09110ad4c74f3ee1b4b0355d92b703525eddd3ff
1314Author: Lasse Collin <lasse.collin@tukaani.org>
1315Date:   2025-04-22 16:21:50 +0300
1316
1317    CI: Enable assertions on NetBSD + CMake
1318
1319 .github/workflows/netbsd.yml | 2 +-
1320 1 file changed, 1 insertion(+), 1 deletion(-)
1321
1322commit 516b90f6e1beb243dd76adc82da0ee47e525f863
1323Author: Lasse Collin <lasse.collin@tukaani.org>
1324Date:   2025-04-21 12:23:37 +0300
1325
1326    liblzma: Update lzma_lzip_decoder() docs about trailing data
1327
1328    Don't say that the .lz format allows trailing data. According to the
1329    lzip 1.25 manual, trailing data isn't part of the file format at all.
1330    However, tools are still expected to behave as usefully as possible
1331    when there is trailing data.
1332
1333    Fix the description of lzip >= 1.20 behavior when some of the first
1334    bytes of trailing data match the magic bytes. While the lzip 1.25 manual
1335    recommends that none of the first four bytes in trailing data should
1336    match the magic bytes, the default behavior of lzip 1.25 treats
1337    trailing data as a corrupt member header only if two or three bytes
1338    match the magic bytes; one matching byte isn't enough.
1339
1340    Reported-by: Antonio Diaz Diaz
1341    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html
1342
1343 src/liblzma/api/lzma/container.h | 23 +++++++++++------------
1344 1 file changed, 11 insertions(+), 12 deletions(-)
1345
1346commit c330220d47dc09a5bab805d22654c8c0a73d21a9
1347Author: Lasse Collin <lasse.collin@tukaani.org>
1348Date:   2025-04-21 11:21:08 +0300
1349
1350    Update THANKS
1351
1352 THANKS | 1 +
1353 1 file changed, 1 insertion(+)
1354
1355commit 6cc7672c2238e7fc66bba33cff50cecd30411063
1356Author: Lasse Collin <lasse.collin@tukaani.org>
1357Date:   2025-04-17 20:36:33 +0300
1358
1359    CI: Add DragonflyBSD
1360
1361 .github/workflows/dragonflybsd.yml | 39 ++++++++++++++++++++++++++++++++++++++
1362 1 file changed, 39 insertions(+)
1363
1364commit 07dc50913725496bd89178539190292a66e18710
1365Author: Lasse Collin <lasse.collin@tukaani.org>
1366Date:   2025-04-17 20:36:33 +0300
1367
1368    CI: Update Solaris
1369
1370 .github/workflows/solaris.yml | 37 +++++++++++++++++++------------------
1371 1 file changed, 19 insertions(+), 18 deletions(-)
1372
1373commit cfcaae1945c0c33df86477138746e68428972a53
1374Author: Lasse Collin <lasse.collin@tukaani.org>
1375Date:   2025-04-17 20:36:33 +0300
1376
1377    CI: Update OpenBSD
1378
1379    Use --disable-nls --enable-external-sha256 because those are used
1380    in the xz Makefile in the OpenBSD ports tree.
1381
1382 .github/workflows/openbsd.yml | 46 +++++++++++++++++++++++--------------------
1383 1 file changed, 25 insertions(+), 21 deletions(-)
1384
1385commit 5240fcfee3b1386029a26629d75f1465b9e85ca3
1386Author: Lasse Collin <lasse.collin@tukaani.org>
1387Date:   2025-04-17 20:36:33 +0300
1388
1389    CI: Update NetBSD
1390
1391    For variety, use CMake and Ninja.
1392
1393 .github/workflows/netbsd.yml | 43 +++++++++++++++++++++++++------------------
1394 1 file changed, 25 insertions(+), 18 deletions(-)
1395
1396commit 85ff0cf0ce11b017af21c040330f6a0c09ef7f77
1397Author: Lasse Collin <lasse.collin@tukaani.org>
1398Date:   2025-04-17 20:36:33 +0300
1399
1400    CI: Update FreeBSD
1401
1402    ARM64 was left commented out because it's slow under both
1403    ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts.
1404
1405 .github/workflows/freebsd.yml | 61 +++++++++++++++++++++++++++++--------------
1406 1 file changed, 42 insertions(+), 19 deletions(-)
1407
1408commit 907ac2215db1613312dc292219bac798d76394f4
1409Author: Lasse Collin <lasse.collin@tukaani.org>
1410Date:   2025-04-11 17:25:53 +0300
1411
1412    CI: Specify only the main version of the standard GH actions
1413
1414 .github/workflows/ci.yml   | 4 ++--
1415 .github/workflows/msvc.yml | 2 +-
1416 2 files changed, 3 insertions(+), 3 deletions(-)
1417
1418commit b0d0e624740b92415f78274702b5b5bfbffe4543
1419Author: Lasse Collin <lasse.collin@tukaani.org>
1420Date:   2025-04-11 17:15:08 +0300
1421
1422    CI: Add 'permissions' to ci.yml and msvc.yml
1423
1424 .github/workflows/ci.yml   | 2 ++
1425 .github/workflows/msvc.yml | 2 ++
1426 2 files changed, 4 insertions(+)
1427
1428commit 1edc14e8ca4fc1f25ee43f17f290c045df7f49e0
1429Author: Sam James <sam@gentoo.org>
1430Date:   2025-04-10 23:15:31 +0300
1431
1432    CI: Add CIFuzz
1433
1434    xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0]
1435    its 'CIFuzz' service to test individual commits.
1436
1437    [0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/
1438
1439    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
1440
1441 .github/workflows/cifuzz.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++
1442 1 file changed, 54 insertions(+)
1443
1444commit 35e06c4c426c6cc3866a9003e87a122eb78bccf2
1445Author: Lasse Collin <lasse.collin@tukaani.org>
1446Date:   2025-04-12 15:31:01 +0300
1447
1448    CMake: Don't check for optreset if using replacement getopt_long
1449
1450    If <getopt.h> had optreset but not getopt_long, xz used optreset while
1451    the replacement getopt_long doesn't support optreset. I'm not aware of
1452    any relevant system where bug is possible. Autotools build didn't have
1453    this bug.
1454
1455    Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).")
1456
1457 CMakeLists.txt | 6 ++++--
1458 1 file changed, 4 insertions(+), 2 deletions(-)
1459
1460commit 99f4b9db9dfc3dabad330df6242e4632c42393c6
1461Author: Lasse Collin <lasse.collin@tukaani.org>
1462Date:   2025-04-17 18:33:10 +0300
1463
1464    Update THANKS
1465
1466 THANKS | 1 +
1467 1 file changed, 1 insertion(+)
1468
1469commit dd006a67e593cb5d3dec5180face7e3010fe78da
1470Author: Lasse Collin <lasse.collin@tukaani.org>
1471Date:   2025-04-17 18:30:26 +0300
1472
1473    liblzma: Update the lzma_lzip_decoder() docs about sync flush marker
1474
1475 src/liblzma/api/lzma/container.h | 15 +++++++--------
1476 1 file changed, 7 insertions(+), 8 deletions(-)
1477
1478commit f59c5859600b5dfeaa618fcc04e9e3bb2b005f5c
1479Author: Lasse Collin <lasse.collin@tukaani.org>
1480Date:   2025-04-17 18:16:40 +0300
1481
1482    xz: Don't mention lzip's sync flush marker on the man page
1483
1484    The sync flush marker isn't valid in .lz files. The sync flush marker
1485    may be used by lzlib, but the resulting streams are only meant to be
1486    decoded by lzlib itself. lzlib's docs make this clear.
1487
1488    Reported-by: Antonio Diaz Diaz
1489    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html
1490    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html
1491
1492 src/xz/xz.1 | 9 +--------
1493 1 file changed, 1 insertion(+), 8 deletions(-)
1494
1495commit 49258439b4ead6866798c1ebf8a083ec9ec04520
1496Author: Lasse Collin <lasse.collin@tukaani.org>
1497Date:   2025-04-17 18:15:48 +0300
1498
1499    Update THANKS
1500
1501 THANKS | 1 +
1502 1 file changed, 1 insertion(+)
1503
1504commit a69fbd3aaebc15dc5912e64724e5abfcef09bcdf
1505Author: Lasse Collin <lasse.collin@tukaani.org>
1506Date:   2025-04-10 20:13:07 +0300
1507
1508    CI: MSVC: Use fewer runners for the same number of tests
1509
1510    Using eight runners seems wasteful. Using only two runners isn't
1511    much slower due to the runner startup overhead.
1512
1513    Also add a comment about the test that fails without b5a5d9e3f702.
1514
1515 .github/workflows/msvc.yml | 66 ++++++++++++++++++++++++++++++++++++++--------
1516 1 file changed, 55 insertions(+), 11 deletions(-)
1517
1518commit 8a300d1c4fc644af482fb679044794c3e3f6f3e5
1519Author: Lasse Collin <lasse.collin@tukaani.org>
1520Date:   2025-04-10 20:10:31 +0300
1521
1522    Update THANKS
1523
1524 THANKS | 1 +
1525 1 file changed, 1 insertion(+)
1526
1527commit b5a5d9e3f7022e546cdfd4ddc42fe4cc56839c05
1528Author: Lasse Collin <lasse.collin@tukaani.org>
1529Date:   2025-04-07 22:36:58 +0300
1530
1531    liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86
1532
1533    On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in
1534    test failures. VS 2022 17.13 (MSVC 19.43.34808) works.
1535
1536    In xz 5.6.x there was a #pragma-based workaround for MSVC builds for
1537    32-bit x86. Another method was thought to work with the new rewritten
1538    CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC
1539    with any non-recent MSVC when building for 32-bit x86.
1540
1541    Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite")
1542    Fixes: https://github.com/tukaani-project/xz/issues/171
1543    Reported-by: Andrew Murray
1544
1545 src/liblzma/check/crc_common.h | 16 +++++++++++++---
1546 1 file changed, 13 insertions(+), 3 deletions(-)
1547
1548commit c5fd88dfc3d2b4178dc6da65b02a63a4ef9280c5
1549Author: Lasse Collin <lasse.collin@tukaani.org>
1550Date:   2025-04-07 22:36:58 +0300
1551
1552    liblzma: Remove MSVC hack from CLMUL CRC
1553
1554    It's not enough with MSVC 19.29 (VS 2019) even if the hack was also
1555    applied to the CRC32 code. The tests crash when built for 32-bit x86.
1556
1557 src/liblzma/check/crc64_fast.c | 8 --------
1558 1 file changed, 8 deletions(-)
1559
1560commit 49ba8c69ea7f928aded77bd856085c85a8d26156
1561Author: Lasse Collin <lasse.collin@tukaani.org>
1562Date:   2025-04-07 22:36:52 +0300
1563
1564    CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022
1565
1566 .github/workflows/msvc.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++
1567 1 file changed, 45 insertions(+)
1568
1569commit 1176a19df6b1585b51131b0e2570e03f1fc14f46
1570Author: Lasse Collin <lasse.collin@tukaani.org>
1571Date:   2025-04-04 20:08:37 +0300
1572
1573    Tests: Add fuzz_decode_stream_mt.options
1574
1575 tests/ossfuzz/config/fuzz_decode_stream_mt.options | 4 ++++
1576 1 file changed, 4 insertions(+)
1577
1578commit c3cb1e53a114ac944f559fe7cac45dbf48cca156
1579Author: Lasse Collin <lasse.collin@tukaani.org>
1580Date:   2025-04-03 15:06:07 +0300
1581
1582    doc/SHA256SUMS: Add 5.8.1
1583
1584 doc/SHA256SUMS | 7 +++++++
1585 1 file changed, 7 insertions(+)
1586
1587commit a522a226545730551f7e7c2685fab27cf567746c
1588Author: Lasse Collin <lasse.collin@tukaani.org>
1589Date:   2025-04-03 14:34:43 +0300
1590
1591    Bump version and soname for 5.8.1
1592
1593 src/liblzma/Makefile.am        | 2 +-
1594 src/liblzma/api/lzma/version.h | 2 +-
1595 2 files changed, 2 insertions(+), 2 deletions(-)
1596
1597commit 1c462c2ad86ff85766928638431029cd0b0dc995
1598Author: Lasse Collin <lasse.collin@tukaani.org>
1599Date:   2025-04-03 14:34:43 +0300
1600
1601    Add NEWS for 5.8.1
1602
1603 NEWS | 30 ++++++++++++++++++++++++++++++
1604 1 file changed, 30 insertions(+)
1605
1606commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0
1607Author: Lasse Collin <lasse.collin@tukaani.org>
1608Date:   2025-04-03 14:34:43 +0300
1609
1610    Tests: Call lzma_code() in smaller chunks in fuzz_common.h
1611
1612    This makes it easy to crash fuzz_decode_stream_mt when tested
1613    against the code from 5.8.0.
1614
1615    Obviously this might make it harder to reach some other code path now.
1616    The previous code has been in use since 2018 when fuzzing was added
1617    in 106d1a663d4b ("Tests: Add a fuzz test program and a config file
1618    for OSS-Fuzz.").
1619
1620 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++-------
1621 1 file changed, 24 insertions(+), 7 deletions(-)
1622
1623commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf
1624Author: Lasse Collin <lasse.collin@tukaani.org>
1625Date:   2025-04-03 14:34:43 +0300
1626
1627    Tests: Add a fuzzing target for the multithreaded .xz decoder
1628
1629    It doesn't seem possible to trigger the CVE-2025-31115 bug with this
1630    fuzzing target at the moment. It's because the code in fuzz_common.h
1631    passes the whole input buffer to lzma_code() at once.
1632
1633 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++
1634 1 file changed, 47 insertions(+)
1635
1636commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d
1637Author: Lasse Collin <lasse.collin@tukaani.org>
1638Date:   2025-04-03 14:34:42 +0300
1639
1640    liblzma: mt dec: Fix lack of parallelization in single-shot decoding
1641
1642    Single-shot decoding means calling lzma_code() by giving it the whole
1643    input at once and enough output buffer space to store the uncompressed
1644    data, and combining this with LZMA_FINISH and no timeout
1645    (lzma_mt.timeout = 0). This way the file is decoded with a single
1646    lzma_code() call if possible.
1647
1648    The bug prevented the decoder from starting more than one worker thread
1649    in single-shot mode. The issue was noticed when reviewing the code;
1650    there are no bug reports. Thus maybe few have tried this mode.
1651
1652    Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.")
1653
1654 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++--
1655 1 file changed, 9 insertions(+), 2 deletions(-)
1656
1657commit 8188048854e8d11071b8a50d093c74f4c030acc9
1658Author: Lasse Collin <lasse.collin@tukaani.org>
1659Date:   2025-04-03 14:34:42 +0300
1660
1661    liblzma: mt dec: Don't modify thr->in_size in the worker thread
1662
1663    Don't set thr->in_size = 0 when returning the thread to the stack of
1664    available threads. Not only is it useless, but the main thread may
1665    read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made
1666    no difference if the main thread saw the original value or 0. With
1667    invalid inputs (when worker thread stops early), thr->in_size was
1668    no longer modified after the previous commit with the security fix
1669    ("Don't free the input buffer too early").
1670
1671    So while the bug appears harmless now, it's important to fix it because
1672    the variable was being modified without proper locking. It's trivial
1673    to fix because there is no need to change the value. Only main thread
1674    needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new
1675    Block before the worker thread is activated.
1676
1677    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
1678    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1679    Thanks-to: Sam James <sam@gentoo.org>
1680
1681 src/liblzma/common/stream_decoder_mt.c | 6 ++++--
1682 1 file changed, 4 insertions(+), 2 deletions(-)
1683
1684commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480
1685Author: Lasse Collin <lasse.collin@tukaani.org>
1686Date:   2025-04-03 14:34:42 +0300
1687
1688    liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115)
1689
1690    The input buffer must be valid as long as the main thread is writing
1691    to the worker-specific input buffer. Fix it by making the worker
1692    thread not free the buffer on errors and not return the worker thread to
1693    the pool. The input buffer will be freed when threads_end() is called.
1694
1695    With invalid input, the bug could at least result in a crash. The
1696    effects include heap use after free and writing to an address based
1697    on the null pointer plus an offset.
1698
1699    The bug has been there since the first committed version of the threaded
1700    decoder and thus affects versions from 5.3.3alpha to 5.8.0.
1701
1702    As the commit message in 4cce3e27f529 says, I had made significant
1703    changes on top of Sebastian's patch. This bug was indeed introduced
1704    by my changes; it wasn't in Sebastian's version.
1705
1706    Thanks to Harri K. Koskinen for discovering and reporting this issue.
1707
1708    Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.")
1709    Reported-by: Harri K. Koskinen <x64nop@nannu.org>
1710    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1711    Thanks-to: Sam James <sam@gentoo.org>
1712
1713 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++---------
1714 1 file changed, 22 insertions(+), 9 deletions(-)
1715
1716commit c0c835964dfaeb2513a3c0bdb642105152fe9f34
1717Author: Lasse Collin <lasse.collin@tukaani.org>
1718Date:   2025-04-03 14:34:42 +0300
1719
1720    liblzma: mt dec: Simplify by removing the THR_STOP state
1721
1722    The main thread can directly set THR_IDLE in threads_stop() which is
1723    called when errors are detected. threads_stop() won't return the stopped
1724    threads to the pool or free the memory pointed by thr->in anymore, but
1725    it doesn't matter because the existing workers won't be reused after
1726    an error. The resources will be cleaned up when threads_end() is
1727    called (reinitializing the decoder always calls threads_end()).
1728
1729    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1730    Thanks-to: Sam James <sam@gentoo.org>
1731
1732 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++---------------------
1733 1 file changed, 29 insertions(+), 46 deletions(-)
1734
1735commit 831b55b971cf579ee16a854f177c36b20d3c6999
1736Author: Lasse Collin <lasse.collin@tukaani.org>
1737Date:   2025-04-03 14:34:42 +0300
1738
1739    liblzma: mt dec: Fix a comment
1740
1741    Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
1742    Thanks-to: Sam James <sam@gentoo.org>
1743
1744 src/liblzma/common/stream_decoder_mt.c | 2 +-
1745 1 file changed, 1 insertion(+), 1 deletion(-)
1746
1747commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a
1748Author: Lasse Collin <lasse.collin@tukaani.org>
1749Date:   2025-04-03 14:34:30 +0300
1750
1751    liblzma: Add assertions to lzma_bufcpy()
1752
1753 src/liblzma/common/common.c | 6 ++++++
1754 1 file changed, 6 insertions(+)
1755
1756commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae
1757Author: Lasse Collin <lasse.collin@tukaani.org>
1758Date:   2025-04-02 16:40:22 +0300
1759
1760    DOS: Update Makefile to fix the build
1761
1762 dos/Makefile | 2 ++
1763 1 file changed, 2 insertions(+)
1764
1765commit 307c02ed698a69763ef1c9c0df4ff24727442118
1766Author: Lasse Collin <lasse.collin@tukaani.org>
1767Date:   2025-03-29 12:41:32 +0200
1768
1769    sysdefs.h: Avoid <stdalign.h> even with C11 compilers
1770
1771    Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in
1772    __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing.
1773    We only need alignas, so define it to _Alignas with C11/C17 compilers.
1774    If something included <stdalign.h> later, it shouldn't cause problems.
1775
1776    Thanks to Ihsan Dogan for reporting the issue and testing the fix.
1777
1778    Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
1779
1780 src/common/sysdefs.h | 4 +++-
1781 1 file changed, 3 insertions(+), 1 deletion(-)
1782
1783commit 7ce38b318339d6c01378a77585e08169ca3a604e
1784Author: Lasse Collin <lasse.collin@tukaani.org>
1785Date:   2025-03-29 12:32:05 +0200
1786
1787    Update THANKS
1788
1789 THANKS | 1 +
1790 1 file changed, 1 insertion(+)
1791
1792commit 688e51bde4c987589717b2be1a1fde9576c604fc
1793Author: Lasse Collin <lasse.collin@tukaani.org>
1794Date:   2025-03-29 12:21:51 +0200
1795
1796    Translations: Update the Croatian translation
1797
1798 po/hr.po | 14 +++++++-------
1799 1 file changed, 7 insertions(+), 7 deletions(-)
1800
1801commit 173fb5c68b08a8c1369550267be258132b7760c6
1802Author: Lasse Collin <lasse.collin@tukaani.org>
1803Date:   2025-03-25 18:23:57 +0200
1804
1805    doc/SHA256SUMS: Add 5.8.0
1806
1807 doc/SHA256SUMS | 6 ++++++
1808 1 file changed, 6 insertions(+)
1809
1810commit db9258e828bc2cd96e3954f1ddcc9d3530589025
1811Author: Lasse Collin <lasse.collin@tukaani.org>
1812Date:   2025-03-25 15:18:32 +0200
1813
1814    Bump version and soname for 5.8.0
1815
1816    Also remove the LZMA_UNSTABLE macro.
1817
1818 src/liblzma/Makefile.am         | 2 +-
1819 src/liblzma/api/lzma/bcj.h      | 2 --
1820 src/liblzma/api/lzma/version.h  | 6 +++---
1821 src/liblzma/common/common.h     | 2 --
1822 src/liblzma/liblzma_generic.map | 2 +-
1823 src/liblzma/liblzma_linux.map   | 2 +-
1824 6 files changed, 6 insertions(+), 10 deletions(-)
1825
1826commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2
1827Author: Lasse Collin <lasse.collin@tukaani.org>
1828Date:   2025-03-25 15:18:32 +0200
1829
1830    Add NEWS for 5.8.0
1831
1832 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1833 1 file changed, 62 insertions(+)
1834
1835commit 6ccbb904da851eb0c174c8dbd43e84da31739720
1836Author: Lasse Collin <lasse.collin@tukaani.org>
1837Date:   2025-03-25 15:18:31 +0200
1838
1839    Translations: Run "make -C po update-po"
1840
1841    POT-Creation-Date is set to match the timestamp in 5.7.2beta which
1842    in the Translation Project is known as 5.8.0-pre1. The strings
1843    haven't changed since 5.7.1alpha but a few comments have.
1844
1845    This is a very noisy commit, but this helps keeping the PO files
1846    similar between the Git repository and stable release tarballs.
1847
1848 po/ca.po    | 964 ++++++++++++++++++++++++++++++++++++++++++++---------------
1849 po/cs.po    | 935 ++++++++++++++++++++++++++++++++++++++++++----------------
1850 po/da.po    | 663 ++++++++++++++++++++++++++++++-----------
1851 po/de.po    |   7 +-
1852 po/eo.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
1853 po/es.po    |   7 +-
1854 po/fi.po    |   2 +-
1855 po/fr.po    | 916 +++++++++++++++++++++++++++++++++++++++++---------------
1856 po/hu.po    | 966 +++++++++++++++++++++++++++++++++++++++++++++---------------
1857 po/ka.po    |   7 +-
1858 po/ko.po    |   7 +-
1859 po/nl.po    |   7 +-
1860 po/pl.po    |   7 +-
1861 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++---------------
1862 po/sr.po    |   2 +-
1863 po/sv.po    |   7 +-
1864 po/tr.po    |   7 +-
1865 po/uk.po    |   7 +-
1866 po/vi.po    | 948 +++++++++++++++++++++++++++++++++++++++++++---------------
1867 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++--------------
1868 po/zh_TW.po |   2 +-
1869 21 files changed, 6209 insertions(+), 2120 deletions(-)
1870
1871commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800
1872Author: Lasse Collin <lasse.collin@tukaani.org>
1873Date:   2025-03-25 15:18:31 +0200
1874
1875    Translations: Run po4a/update-po
1876
1877    Also remove the trivial obsolete messages like man page dates.
1878
1879    This is a noisy commit, but this helps keeping the PO files similar
1880    between the Git repository and stable release tarballs.
1881
1882 po4a/fr.po    | 82 +++++++++++++++++++++++++++++++++++++------------------
1883 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------
1884 po4a/sr.po    | 79 ++++++++++++++++++++++++++++++++++-------------------
1885 3 files changed, 167 insertions(+), 82 deletions(-)
1886
1887commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c
1888Author: Lasse Collin <lasse.collin@tukaani.org>
1889Date:   2025-03-25 15:18:31 +0200
1890
1891    Translations: Partially fix overtranslation in Serbian man pages
1892
1893    Names of environment variables and some other strings must be present
1894    in the original form. The translator couldn't be reached so I'm
1895    changing some of the strings myself. In the "Robot mode" section,
1896    occurrences in the middle of sentences weren't changed to reduce
1897    the chance of grammar breakage, but I kept the translated strings in
1898    parenthesis in the headings. It's not ideal, but now people shouldn't
1899    need to look at the English man page to find the English strings.
1900
1901 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++--------------------
1902 1 file changed, 45 insertions(+), 21 deletions(-)
1903
1904commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b
1905Author: Lasse Collin <lasse.collin@tukaani.org>
1906Date:   2025-03-25 15:18:31 +0200
1907
1908    liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage
1909
1910 src/liblzma/lz/lz_decoder.c | 3 ++-
1911 1 file changed, 2 insertions(+), 1 deletion(-)
1912
1913commit 943b012d09f717f7b44284c4e4976ea41264c731
1914Author: Lasse Collin <lasse.collin@tukaani.org>
1915Date:   2025-03-25 15:18:31 +0200
1916
1917    liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat()
1918
1919    SSE2 is supported on every x86-64 processor. The SSE2 code is used on
1920    32-bit x86 if compiler options permit unconditional use of SSE2.
1921
1922    dict_repeat() copies short random-sized unaligned buffers. At least
1923    on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is
1924    clearly faster than byte-by-byte copying in this use case. Compared
1925    to the memcpy() version, the new SSE2 version reduces decompression
1926    time by 0-5 % depending on the machine and libc. It should never be
1927    slower than the memcpy() version.
1928
1929    However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest.
1930    Compared to the memcpy() version:
1931
1932      - The byte-by-version takes 6-7 % less time to decompress.
1933      - The SSE2 version takes 16-18 % less time to decompress.
1934
1935    The numbers are from decompressing a Linux kernel source tarball in
1936    single-threaded mode on older AMD and Intel systems. The tarball
1937    compresses well, and thus dict_repeat() performance matters more
1938    than with some other files.
1939
1940 src/liblzma/lz/lz_decoder.c | 14 ++++++--
1941 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++-----
1942 2 files changed, 90 insertions(+), 11 deletions(-)
1943
1944commit bc14e4c94e788d42eeab984298391fc0ca46f969
1945Author: Lasse Collin <lasse.collin@tukaani.org>
1946Date:   2025-03-25 15:18:31 +0200
1947
1948    liblzma: Add "restrict" to a few functions in lz_decoder.h
1949
1950    This doesn't make any difference in practice because compilers can
1951    already see that writing through the dict->buf pointer cannot modify
1952    the contents of *dict itself: The LZMA decoder makes a local copy of
1953    the lzma_dict structure, and even if it didn't, the pointer to
1954    lzma_dict in the LZMA decoder is already "restrict".
1955
1956    It's nice to add "restrict" anyway. uint8_t is typically unsigned char
1957    which can alias anything. Without the above conditions or "restrict",
1958    compilers could need to assume that writing through dict->buf might
1959    modify *dict. This would matter in dict_repeat() because the loops
1960    refer to dict->buf and dict->pos instead of making local copies of
1961    those members for the duration of the loops. If compilers had to
1962    assume that writing through dict->buf can affect *dict, then compilers
1963    would need to emit code that reloads dict->buf and dict->pos after
1964    every write through dict->buf.
1965
1966 src/liblzma/lz/lz_decoder.h | 7 ++++---
1967 1 file changed, 4 insertions(+), 3 deletions(-)
1968
1969commit e82ee090c567e560f51a056775a17f534d159d65
1970Author: Lasse Collin <lasse.collin@tukaani.org>
1971Date:   2025-03-25 15:18:30 +0200
1972
1973    liblzma: Define LZ_DICT_INIT_POS for initial dictionary position
1974
1975    It's more readable.
1976
1977 src/liblzma/lz/lz_decoder.c | 4 ++--
1978 src/liblzma/lz/lz_decoder.h | 9 ++++++---
1979 2 files changed, 8 insertions(+), 5 deletions(-)
1980
1981commit 8e7cd0091e5239334437decbe1989662d45a2f47
1982Author: Lasse Collin <lasse.collin@tukaani.org>
1983Date:   2025-03-25 15:18:30 +0200
1984
1985    Windows: Update README-Windows.txt about UCRT
1986
1987 windows/README-Windows.txt | 3 ++-
1988 1 file changed, 2 insertions(+), 1 deletion(-)
1989
1990commit 2c24292d341e505e5579fccac3bce5bc71d839ef
1991Author: Lasse Collin <lasse.collin@tukaani.org>
1992Date:   2025-03-25 15:18:15 +0200
1993
1994    Update THANKS
1995
1996 THANKS | 1 +
1997 1 file changed, 1 insertion(+)
1998
1999commit 48053c90898fa191a216aefca01626520a7413f4
2000Author: Lasse Collin <lasse.collin@tukaani.org>
2001Date:   2025-03-17 15:33:25 +0200
2002
2003    Translations: Update the Italian translation
2004
2005 po/it.po | 32 ++++++++++++++++----------------
2006 1 file changed, 16 insertions(+), 16 deletions(-)
2007
2008commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58
2009Author: Lasse Collin <lasse.collin@tukaani.org>
2010Date:   2025-03-17 15:28:56 +0200
2011
2012    Translations: Update the Portuguese translation
2013
2014    The language tag in the Translation Project is pt, not pt_PT,
2015    thus I changed the "Language:" line to pt.
2016
2017 po/pt.po | 1045 +++++++++++++++++++++++++++++++-------------------------------
2018 1 file changed, 526 insertions(+), 519 deletions(-)
2019
2020commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c
2021Author: Lasse Collin <lasse.collin@tukaani.org>
2022Date:   2025-03-14 13:02:21 +0200
2023
2024    Translations: Update the Italian translation
2025
2026 po/it.po | 1020 +++++++++++++++++++++++++++++++-------------------------------
2027 1 file changed, 516 insertions(+), 504 deletions(-)
2028
2029commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf
2030Author: Lasse Collin <lasse.collin@tukaani.org>
2031Date:   2025-03-12 20:48:39 +0200
2032
2033    Translations: Update the Italian man page translations
2034
2035    Only trivial additions but this keeps the file in sync with the TP.
2036
2037 po4a/it.po | 4 ++--
2038 1 file changed, 2 insertions(+), 2 deletions(-)
2039
2040commit 515b6fc8557825e1335012b3b1c8cf71e2c38775
2041Author: Lasse Collin <lasse.collin@tukaani.org>
2042Date:   2025-03-12 19:38:54 +0200
2043
2044    Translations: Update the Italian man page translations
2045
2046 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++-------------------------
2047 1 file changed, 77 insertions(+), 52 deletions(-)
2048
2049commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218
2050Author: Lasse Collin <lasse.collin@tukaani.org>
2051Date:   2025-03-10 21:00:31 +0200
2052
2053    Translations: Update the Korean man page translations
2054
2055 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++--------------------------
2056 1 file changed, 80 insertions(+), 59 deletions(-)
2057
2058commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88
2059Author: Lasse Collin <lasse.collin@tukaani.org>
2060Date:   2025-03-10 20:56:57 +0200
2061
2062    Translations: Update the German man page translations
2063
2064 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++-----------------------
2065 1 file changed, 63 insertions(+), 39 deletions(-)
2066
2067commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d
2068Author: Lasse Collin <lasse.collin@tukaani.org>
2069Date:   2025-03-10 13:13:30 +0200
2070
2071    CMake: Fix tuklib_use_system_extensions
2072
2073    Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS)
2074    will affect the calling scope. I had forgotten that while CMake
2075    functions inherit the variables from the parent scope, the changes
2076    to them are local unless using set(... PARENT_SCOPE).
2077
2078    This also means that the commit message in 5bb77d0920dc is wrong. The
2079    commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H
2080    is only needed for specific check_c_source_compiles() calls.
2081
2082    Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
2083
2084 cmake/tuklib_common.cmake | 7 +++++--
2085 1 file changed, 5 insertions(+), 2 deletions(-)
2086
2087commit 80e48836024ec2d7cbd557575be6da3d1f055cba
2088Author: Lasse Collin <lasse.collin@tukaani.org>
2089Date:   2025-03-10 11:38:55 +0200
2090
2091    INSTALL: Document -bmaxdata on AIX
2092
2093    This is based on a pull request and AIX docs. I haven't tested the
2094    instructions myself.
2095
2096    Closes: https://github.com/tukaani-project/xz/pull/137
2097
2098 INSTALL | 5 +++++
2099 1 file changed, 5 insertions(+)
2100
2101commit ab319186b6d0454285ff4941a777ac95e580f60f
2102Author: Lasse Collin <lasse.collin@tukaani.org>
2103Date:   2025-03-10 11:37:19 +0200
2104
2105    Update THANKS
2106
2107 THANKS | 1 +
2108 1 file changed, 1 insertion(+)
2109
2110commit 4434671a04436038f88ab0feaa251cc8d7abb683
2111Author: Collin Funk <collin.funk1@gmail.com>
2112Date:   2025-03-09 19:14:31 -0700
2113
2114    tuklib_physmem: Silence -Wsign-conversion on AIX
2115
2116    Closes: https://github.com/tukaani-project/xz/pull/168
2117
2118 src/common/tuklib_physmem.c | 2 +-
2119 1 file changed, 1 insertion(+), 1 deletion(-)
2120
2121commit 18bcaa4fafc935d89ffde94301fa6427907306bf
2122Author: Lasse Collin <lasse.collin@tukaani.org>
2123Date:   2025-03-09 22:10:38 +0200
2124
2125    Translations: Update the Romanian man page translations
2126
2127 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++-------------------------
2128 1 file changed, 66 insertions(+), 44 deletions(-)
2129
2130commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363
2131Author: Lasse Collin <lasse.collin@tukaani.org>
2132Date:   2025-03-09 21:28:15 +0200
2133
2134    Translations: Update the Croatian translation
2135
2136 po/hr.po | 19 +++++++++++--------
2137 1 file changed, 11 insertions(+), 8 deletions(-)
2138
2139commit ff85e6130d5940896915cdbb99aa9ece9d41240b
2140Author: Lasse Collin <lasse.collin@tukaani.org>
2141Date:   2025-03-09 21:23:34 +0200
2142
2143    Translations: Update the Romanian translation
2144
2145 po/ro.po | 24 +++++++++++++-----------
2146 1 file changed, 13 insertions(+), 11 deletions(-)
2147
2148commit a5bfb33f30f77e656723d365db8b06e089d3de61
2149Author: Lasse Collin <lasse.collin@tukaani.org>
2150Date:   2025-03-09 21:11:34 +0200
2151
2152    Translations: Update the Ukrainian man page translations
2153
2154 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++-------------------------
2155 1 file changed, 64 insertions(+), 43 deletions(-)
2156
2157commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df
2158Author: Lasse Collin <lasse.collin@tukaani.org>
2159Date:   2025-03-09 14:43:07 +0200
2160
2161    CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem
2162
2163    Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't
2164    leak to the calling code.
2165
2166 cmake/tuklib_cpucores.cmake | 3 +++
2167 cmake/tuklib_physmem.cmake  | 4 +++-
2168 2 files changed, 6 insertions(+), 1 deletion(-)
2169
2170commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179
2171Author: Lasse Collin <lasse.collin@tukaani.org>
2172Date:   2025-03-09 14:06:35 +0200
2173
2174    CMake: Revise tuklib_use_system_extensions
2175
2176    Define NetBSD and Darwin/macOS feature test macros. Autoconf defines
2177    these too (and a few others).
2178
2179    Define the macros on Windows except with MSVC. The _GNU_SOURCE macro
2180    makes a difference with mingw-w64.
2181
2182    Use a function instead of a macro. Don't take the TARGET_OR_ALL argument
2183    because there's always global effect because the global variable
2184    CMAKE_REQUIRED_DEFINITIONS is modified.
2185
2186 CMakeLists.txt            |  2 +-
2187 cmake/tuklib_common.cmake | 27 +++++++++++++++------------
2188 2 files changed, 16 insertions(+), 13 deletions(-)
2189
2190commit 4243c45a48ef8c103d77b75d9f93d48adcb631db
2191Author: Lasse Collin <lasse.collin@tukaani.org>
2192Date:   2025-03-08 14:54:29 +0200
2193
2194    doc/SHA256SUMS: Add 5.7.2beta
2195
2196 doc/SHA256SUMS | 3 +++
2197 1 file changed, 3 insertions(+)
2198
2199commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b
2200Author: Lasse Collin <lasse.collin@tukaani.org>
2201Date:   2025-03-08 14:29:57 +0200
2202
2203    Bump version and soname for 5.7.2beta
2204
2205 src/liblzma/Makefile.am         | 2 +-
2206 src/liblzma/api/lzma/version.h  | 4 ++--
2207 src/liblzma/liblzma_generic.map | 2 +-
2208 src/liblzma/liblzma_linux.map   | 2 +-
2209 4 files changed, 5 insertions(+), 5 deletions(-)
2210
2211commit 62e44b36167de27541776dcf677ed04077c9fd19
2212Author: Lasse Collin <lasse.collin@tukaani.org>
2213Date:   2025-03-08 14:24:38 +0200
2214
2215    Add NEWS for 5.7.2beta
2216
2217 NEWS | 35 +++++++++++++++++++++++++++++++++++
2218 1 file changed, 35 insertions(+)
2219
2220commit 70f1f203789433b5d7b8b22e1655abc465d659f7
2221Author: Lasse Collin <lasse.collin@tukaani.org>
2222Date:   2025-03-08 14:23:00 +0200
2223
2224    COPYING: Remove the note about old releases
2225
2226 COPYING | 19 -------------------
2227 1 file changed, 19 deletions(-)
2228
2229commit db9827dc38ff79de747a6fc7a99619e961dbc5e6
2230Author: Lasse Collin <lasse.collin@tukaani.org>
2231Date:   2025-03-08 14:22:28 +0200
2232
2233    xz: Update the man page about the environment variables again
2234
2235 src/xz/xz.1 | 22 +++++++++++-----------
2236 1 file changed, 11 insertions(+), 11 deletions(-)
2237
2238commit 99c584891bd1d946561cebded2226df9b83f1efb
2239Author: Lasse Collin <lasse.collin@tukaani.org>
2240Date:   2025-03-06 19:26:09 +0200
2241
2242    liblzma: Edit spelling in a comment
2243
2244    It was found with codespell.
2245
2246 src/liblzma/api/lzma/container.h | 2 +-
2247 1 file changed, 1 insertion(+), 1 deletion(-)
2248
2249commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28
2250Author: Lasse Collin <lasse.collin@tukaani.org>
2251Date:   2025-03-06 19:14:23 +0200
2252
2253    xz: Update the man page about the environment variables
2254
2255 src/xz/xz.1 | 26 ++++++++++++++++++++++++--
2256 1 file changed, 24 insertions(+), 2 deletions(-)
2257
2258commit 808f05af3ef40730d40b3798666757bd866484f1
2259Author: Lasse Collin <lasse.collin@tukaani.org>
2260Date:   2025-03-06 17:37:39 +0200
2261
2262    Docs: Add a few TRANSLATORS comments to man pages
2263
2264    All translators know that --command-line-options must not be translated.
2265    With some other strings it's not obvious when the untranslated string
2266    must be preserved. These comments hopefully help.
2267
2268 src/scripts/xzmore.1 |  2 ++
2269 src/xz/xz.1          | 22 ++++++++++++++++++++++
2270 2 files changed, 24 insertions(+)
2271
2272commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b
2273Author: Lasse Collin <lasse.collin@tukaani.org>
2274Date:   2025-03-06 16:34:32 +0200
2275
2276    Scripts: Mark the LZMA Utils script aliases as deprecated
2277
2278    The deprecated aliases are lzcmp, lzdiff, lzless, lzmore,
2279    lzgrep, lzegrep, and lzfgrep. The commands that start with
2280    the xz prefix have identical behavior, for example, both
2281    lzgrep and xzgrep handle all supported file formats.
2282
2283    This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo.
2284    The last release of LZMA Utils was made in 2008, but the lzma
2285    compatibility alias for the gzip-like tool is still in common use.
2286    Deprecating it would cause unnecessary breakage.
2287
2288 src/scripts/xzdiff.1 | 5 ++++-
2289 src/scripts/xzgrep.1 | 6 +++++-
2290 src/scripts/xzless.1 | 4 +++-
2291 src/scripts/xzmore.1 | 4 +++-
2292 4 files changed, 15 insertions(+), 4 deletions(-)
2293
2294commit 4941ea454c02cf15a64d6434a0778fc2a81282fc
2295Author: Lasse Collin <lasse.collin@tukaani.org>
2296Date:   2025-03-02 21:13:04 +0200
2297
2298    Translations: Add Serbian man page translations
2299
2300 po4a/po4a.conf |    2 +-
2301 po4a/sr.po     | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2302 2 files changed, 3893 insertions(+), 1 deletion(-)
2303
2304commit d142d96f24daa451edaabfca8594e202932b3c0b
2305Author: Lasse Collin <lasse.collin@tukaani.org>
2306Date:   2025-03-02 20:42:14 +0200
2307
2308    Translations: Update Georgian translation
2309
2310 po/ka.po | 4 ++--
2311 1 file changed, 2 insertions(+), 2 deletions(-)
2312
2313commit 9b7e45d841195c8fd8d286e26f810df28c53dd16
2314Author: Lasse Collin <lasse.collin@tukaani.org>
2315Date:   2025-02-28 21:07:21 +0200
2316
2317    Update THANKS
2318
2319 THANKS | 1 +
2320 1 file changed, 1 insertion(+)
2321
2322commit 9351592710e0df3238b09d39c545a643c50ac88f
2323Author: Lasse Collin <lasse.collin@tukaani.org>
2324Date:   2025-02-22 16:04:58 +0200
2325
2326    Update THANKS
2327
2328 THANKS | 1 +
2329 1 file changed, 1 insertion(+)
2330
2331commit 9023be7831faca2f28def55e16c39e3a42e1e262
2332Author: Lasse Collin <lasse.collin@tukaani.org>
2333Date:   2025-02-19 16:33:52 +0200
2334
2335    Translations: Update the Croatian translation
2336
2337 po/hr.po | 6 +++---
2338 1 file changed, 3 insertions(+), 3 deletions(-)
2339
2340commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5
2341Author: Lasse Collin <lasse.collin@tukaani.org>
2342Date:   2025-02-17 21:46:15 +0200
2343
2344    Build: Fix out-of-tree builds when using the replacement getopt_long
2345
2346    Nowaways $(top_builddir)/lib/getopt.h depends on headers in
2347    $(top_srcdir)/lib, so both have to be in the include path.
2348    CMake-based build already did this.
2349
2350    Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca
2351
2352 src/lzmainfo/Makefile.am | 6 ++++--
2353 src/xz/Makefile.am       | 6 ++++--
2354 src/xzdec/Makefile.am    | 6 ++++--
2355 3 files changed, 12 insertions(+), 6 deletions(-)
2356
2357commit 41322b2c60cd2c67a1053cb40d27e573420185b7
2358Author: Lasse Collin <lasse.collin@tukaani.org>
2359Date:   2025-02-17 18:25:52 +0200
2360
2361    m4/getopt.m4: Remove an outdated comment
2362
2363 m4/getopt.m4 | 3 ---
2364 1 file changed, 3 deletions(-)
2365
2366commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489
2367Author: Lasse Collin <lasse.collin@tukaani.org>
2368Date:   2025-02-17 18:11:58 +0200
2369
2370    Build: Allow forcing the use of the replacement getopt_long
2371
2372    Now one can pass gl_replace_getopt=yes to configure to force the use
2373    of GNU getopt_long from the lib directory. This only checks that the
2374    value of gl_replace_getopt is non-empty, so one cannot force the
2375    replacement to be disabled.
2376
2377    Closes: https://github.com/tukaani-project/xz/pull/166
2378
2379 m4/getopt.m4 | 5 +++--
2380 1 file changed, 3 insertions(+), 2 deletions(-)
2381
2382commit c23b837d15960ecc0d537f0260f389904e1e7f02
2383Author: Lasse Collin <lasse.collin@tukaani.org>
2384Date:   2025-02-17 18:11:42 +0200
2385
2386    Update THANKS
2387
2388 THANKS | 1 +
2389 1 file changed, 1 insertion(+)
2390
2391commit 2672a38f1159babf9ba3cca429f644bb823a8bdd
2392Author: Lasse Collin <lasse.collin@tukaani.org>
2393Date:   2025-02-12 19:23:31 +0200
2394
2395    Update THANKS
2396
2397 THANKS | 2 ++
2398 1 file changed, 2 insertions(+)
2399
2400commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23
2401Author: Lasse Collin <lasse.collin@tukaani.org>
2402Date:   2025-02-11 12:13:41 +0200
2403
2404    Update THANKS
2405
2406 THANKS | 3 +++
2407 1 file changed, 3 insertions(+)
2408
2409commit 0d553568f1af9a35779ecac41392a6c871786930
2410Author: Lasse Collin <lasse.collin@tukaani.org>
2411Date:   2025-02-08 11:39:08 +0200
2412
2413    Translations: Update the Polish translation
2414
2415 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++---------------------------
2416 1 file changed, 464 insertions(+), 338 deletions(-)
2417
2418commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd
2419Author: Lasse Collin <lasse.collin@tukaani.org>
2420Date:   2025-02-07 19:12:03 +0200
2421
2422    Docs: Update TODO a little
2423
2424 TODO | 22 ++++------------------
2425 1 file changed, 4 insertions(+), 18 deletions(-)
2426
2427commit f5aa292c534f87b9dd588e667d1c65ed31e5f289
2428Author: Lasse Collin <lasse.collin@tukaani.org>
2429Date:   2025-02-07 18:50:56 +0200
2430
2431    Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS
2432
2433    These are specific phrases that were included in the advisories and
2434    NEWS. It's nice to have them in THANKS as well.
2435
2436 THANKS | 4 ++++
2437 1 file changed, 4 insertions(+)
2438
2439commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9
2440Author: Lasse Collin <lasse.collin@tukaani.org>
2441Date:   2025-02-07 18:43:00 +0200
2442
2443    Update THANKS
2444
2445 THANKS | 5 +++++
2446 1 file changed, 5 insertions(+)
2447
2448commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d
2449Author: Lasse Collin <lasse.collin@tukaani.org>
2450Date:   2025-02-04 14:12:46 +0200
2451
2452    Docs: Update the "Translations" section in README
2453
2454    Make it clearer that translations cannot be accepted if they don't
2455    come via the Translation Project.
2456
2457    Column headings have been handled automatically for years and now --help
2458    is autowrapped too, so the related instructions can be removed.
2459
2460 README | 107 ++++++++++++++++++++++++-----------------------------------------
2461 1 file changed, 39 insertions(+), 68 deletions(-)
2462
2463commit 2c7aee94936babf84b61b55420e503a0b2629ec1
2464Author: Lasse Collin <lasse.collin@tukaani.org>
2465Date:   2025-02-04 13:23:53 +0200
2466
2467    debug/translations.bash: Revise a little
2468
2469    Make it work for out-of-tree builds without requiring one to specify
2470    the location of the xz executable.
2471
2472    Add xz --filters-help.
2473
2474    Make the output shorter by reducing the number of xz -lvv test files.
2475
2476    Show the value of LANGUAGE environment variable.
2477
2478    Show the xz.git version using git describe --abbrev=8 instead of =4.
2479
2480 debug/translation.bash | 24 +++++++++++-------------
2481 1 file changed, 11 insertions(+), 13 deletions(-)
2482
2483commit c6b15e7045209002bbbf4979c48072af01c20d8d
2484Author: Lasse Collin <lasse.collin@tukaani.org>
2485Date:   2025-02-04 13:20:52 +0200
2486
2487    Build: Use "git describe --abbrev=8" in snapshot tarball names
2488
2489    8 is more likely to be reproducible than the old 4 without being
2490    excessively long for a small repository like this.
2491
2492 Makefile.am | 2 +-
2493 1 file changed, 1 insertion(+), 1 deletion(-)
2494
2495commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33
2496Author: Lasse Collin <lasse.collin@tukaani.org>
2497Date:   2025-02-04 19:37:17 +0200
2498
2499    Update THANKS
2500
2501 THANKS | 2 ++
2502 1 file changed, 2 insertions(+)
2503
2504commit 353c33355cb12e5016d49052fd1e90d15568aa37
2505Author: Lasse Collin <lasse.collin@tukaani.org>
2506Date:   2025-02-03 16:29:31 +0200
2507
2508    Translations: Update the Serbian translation
2509
2510 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++---------------------------
2511 1 file changed, 458 insertions(+), 347 deletions(-)
2512
2513commit 887dc281885052bced32b3aa309506ea58a2e78e
2514Author: Lasse Collin <lasse.collin@tukaani.org>
2515Date:   2025-02-03 16:15:38 +0200
2516
2517    Translations: Update Chinese (traditional) translation
2518
2519    Since there are no spaces between words, the unsophisticated automatic
2520    word wrapping code needs some help. Compared to the version in the
2521    Translation Project, I added a few \t characters which the word
2522    wrapping code interprets as zero width spaces (hopefully they are
2523    placed correctly). These edits can be seen with this command:
2524
2525        grep -v ^# po/zh_TW.po | grep --color -F '\t'
2526
2527 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++---------------------------
2528 1 file changed, 471 insertions(+), 372 deletions(-)
2529
2530commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f
2531Author: Lasse Collin <lasse.collin@tukaani.org>
2532Date:   2025-02-03 16:12:44 +0200
2533
2534    Update THANKS
2535
2536 THANKS | 2 ++
2537 1 file changed, 2 insertions(+)
2538
2539commit 23ea031820086d302a213be005a091df763b8a7b
2540Author: Lasse Collin <lasse.collin@tukaani.org>
2541Date:   2025-02-02 14:15:07 +0200
2542
2543    Build: Update posix-shell.m4 from Gnulib
2544
2545    Tabs have been converted to spaces and a "serial" number has been
2546    added. The previous version was from 2008/2009. There are no functional
2547    changes since then but now it's clearer that the copy in XZ Utils
2548    isn't outdated.
2549
2550    The new file was picked from the Gnulib commit
2551    81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds
2552    a warranty disclaimer to the license, which obviously is fine,
2553    but I didn't find a SPDX license identifier for the new license,
2554    so for simplicity I used the earlier commit.
2555
2556 m4/posix-shell.m4 | 31 ++++++++++++++++---------------
2557 1 file changed, 16 insertions(+), 15 deletions(-)
2558
2559commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b
2560Author: Lasse Collin <lasse.collin@tukaani.org>
2561Date:   2025-02-02 12:51:03 +0200
2562
2563    Build: Check for -fsanitize= also in $CC
2564
2565    People may put -fsanitize in CC instead of CFLAGS so check both.
2566    Landlock sandbox isn't compatible with sanitizers so it's nice
2567    to catch the incompatible options at configure time.
2568
2569    Don't attempt to do the same in CMakeLists.txt; the check for
2570    CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from
2571    the CC environment variable go into the undocumented internal variable
2572    CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable).
2573    Peeking the internal variable merely for improved diagnostics isn't
2574    worth it.
2575
2576    Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179
2577
2578 configure.ac | 5 +++--
2579 1 file changed, 3 insertions(+), 2 deletions(-)
2580
2581commit a7304ea4a7daede9789a8fe422b714e372737120
2582Author: Lasse Collin <lasse.collin@tukaani.org>
2583Date:   2023-09-26 19:11:20 +0300
2584
2585    Build: Remove the FIXME about -Werror checks
2586
2587 configure.ac | 7 -------
2588 1 file changed, 7 deletions(-)
2589
2590commit 1780bba74075da5e7764615bd323e95e19057dee
2591Author: Lasse Collin <lasse.collin@tukaani.org>
2592Date:   2023-09-26 19:10:51 +0300
2593
2594    Build: If using a GCC compatible compiler, ensure that -Werror works
2595
2596    The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure.
2597    It won't be documented anywhere else than in the error message.
2598
2599    Ways to test:
2600
2601        ./configure CC=gcc CFLAGS=-Wunused-macros
2602        ./configure CC=clang CFLAGS=-Weverything
2603        ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes
2604
2605 configure.ac | 26 ++++++++++++++++++++++++++
2606 1 file changed, 26 insertions(+)
2607
2608commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d
2609Author: Lasse Collin <lasse.collin@tukaani.org>
2610Date:   2025-02-02 14:30:15 +0200
2611
2612    Update THANKS
2613
2614 THANKS | 4 ++++
2615 1 file changed, 4 insertions(+)
2616
2617commit 186ff78ab40ceb07cde139506cab42a927ca99d2
2618Author: Lasse Collin <lasse.collin@tukaani.org>
2619Date:   2025-02-01 12:49:09 +0200
2620
2621    Translations: Update Romanian translation
2622
2623 po/ro.po | 12 ++++++------
2624 1 file changed, 6 insertions(+), 6 deletions(-)
2625
2626commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4
2627Author: Lasse Collin <lasse.collin@tukaani.org>
2628Date:   2025-01-30 18:16:43 +0200
2629
2630    Translations: Update Korean man page translations
2631
2632 po4a/ko.po | 146 ++++++++++++++++++++++++-------------------------------------
2633 1 file changed, 56 insertions(+), 90 deletions(-)
2634
2635commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72
2636Author: Lasse Collin <lasse.collin@tukaani.org>
2637Date:   2025-01-30 18:15:52 +0200
2638
2639    Translations: Add Italian man page translations
2640
2641 po4a/it.po     | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2642 po4a/po4a.conf |    2 +-
2643 2 files changed, 3877 insertions(+), 1 deletion(-)
2644
2645commit 9b9182e561787a811fc0178489589f28c3e0174c
2646Author: Lasse Collin <lasse.collin@tukaani.org>
2647Date:   2025-01-29 22:18:29 +0200
2648
2649    Translations: Update the Finnish translation
2650
2651 po/fi.po | 13 +++++++------
2652 1 file changed, 7 insertions(+), 6 deletions(-)
2653
2654commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f
2655Author: Lasse Collin <lasse.collin@tukaani.org>
2656Date:   2025-01-29 20:50:03 +0200
2657
2658    lzmainfo: Use tuklib_mbstr_wrap for --help text
2659
2660    Some languages have so long strings that they need to be wrapped.
2661
2662 CMakeLists.txt           |  4 ++++
2663 src/lzmainfo/Makefile.am |  2 ++
2664 src/lzmainfo/lzmainfo.c  | 36 ++++++++++++++++++++++++++----------
2665 3 files changed, 32 insertions(+), 10 deletions(-)
2666
2667commit c56eb4707627d700695813fccdddd1483eac4f21
2668Author: Lasse Collin <lasse.collin@tukaani.org>
2669Date:   2025-01-29 20:00:06 +0200
2670
2671    Translations: Update the Croatian translation
2672
2673 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++---------------------------
2674 1 file changed, 529 insertions(+), 397 deletions(-)
2675
2676commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc
2677Author: Lasse Collin <lasse.collin@tukaani.org>
2678Date:   2025-01-29 19:56:01 +0200
2679
2680    Translations: Update the Finnish translation
2681
2682 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------
2683 1 file changed, 483 insertions(+), 428 deletions(-)
2684
2685commit d49dde33cf5f488bb38b1f57e172c4e3343fb383
2686Author: Lasse Collin <lasse.collin@tukaani.org>
2687Date:   2025-01-29 19:55:27 +0200
2688
2689    Translations: Update the German man page translations
2690
2691 po4a/de.po | 147 +++++++++++++++++++++++--------------------------------------
2692 1 file changed, 55 insertions(+), 92 deletions(-)
2693
2694commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c
2695Author: Lasse Collin <lasse.collin@tukaani.org>
2696Date:   2025-01-29 19:55:17 +0200
2697
2698    Translations: Update the German translation
2699
2700 po/de.po | 825 +++++++++++++++++++++++++++++++++++----------------------------
2701 1 file changed, 460 insertions(+), 365 deletions(-)
2702
2703commit 7edab2bde0606b42229d9c04fe664069e38de3fb
2704Author: Lasse Collin <lasse.collin@tukaani.org>
2705Date:   2025-01-29 19:55:05 +0200
2706
2707    Translations: Update the Turkish translation
2708
2709 po/tr.po | 892 +++++++++++++++++++++++++++++++++++----------------------------
2710 1 file changed, 490 insertions(+), 402 deletions(-)
2711
2712commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5
2713Author: Lasse Collin <lasse.collin@tukaani.org>
2714Date:   2025-01-29 19:54:36 +0200
2715
2716    Translations: Add the Dutch translation
2717
2718 po/LINGUAS |    1 +
2719 po/nl.po   | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2720 2 files changed, 1269 insertions(+)
2721
2722commit abe5092f24b55dde9f7f78fac1bf810bce173273
2723Author: Lasse Collin <lasse.collin@tukaani.org>
2724Date:   2025-01-29 19:53:50 +0200
2725
2726    Translations: Update the Georgian translation
2727
2728 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++----------------
2729 1 file changed, 115 insertions(+), 38 deletions(-)
2730
2731commit b97b23c78d8100eec363c3e999c511560366d347
2732Author: Lasse Collin <lasse.collin@tukaani.org>
2733Date:   2025-01-29 19:53:21 +0200
2734
2735    Translations: Update the Spanish translation
2736
2737 po/es.po | 824 ++++++++++++++++++++++++++++++++++-----------------------------
2738 1 file changed, 450 insertions(+), 374 deletions(-)
2739
2740commit c68318cb49e0562bd22e88724ce85e76c6789a3a
2741Author: Lasse Collin <lasse.collin@tukaani.org>
2742Date:   2025-01-29 19:53:06 +0200
2743
2744    Translations: Update the Korean translation
2745
2746 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++--------------------------
2747 1 file changed, 460 insertions(+), 325 deletions(-)
2748
2749commit 153ee17f635962a474499f786ea1de1e1a2bb276
2750Author: Lasse Collin <lasse.collin@tukaani.org>
2751Date:   2025-01-29 19:52:42 +0200
2752
2753    Translations: Update the Romanian man page translations
2754
2755 po4a/ro.po | 141 +++++++++++++++++++++++--------------------------------------
2756 1 file changed, 54 insertions(+), 87 deletions(-)
2757
2758commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4
2759Author: Lasse Collin <lasse.collin@tukaani.org>
2760Date:   2025-01-29 19:51:59 +0200
2761
2762    Translations: Update the Romanian translation
2763
2764 po/ro.po | 818 +++++++++++++++++++++++++++++++++++----------------------------
2765 1 file changed, 461 insertions(+), 357 deletions(-)
2766
2767commit 06028803e19219f642aa9abddd3525c43594ec6c
2768Author: Lasse Collin <lasse.collin@tukaani.org>
2769Date:   2025-01-29 19:50:50 +0200
2770
2771    Translations: Update the Ukrainian man page translations
2772
2773 po4a/uk.po | 142 +++++++++++++++++++++++--------------------------------------
2774 1 file changed, 54 insertions(+), 88 deletions(-)
2775
2776commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df
2777Author: Lasse Collin <lasse.collin@tukaani.org>
2778Date:   2025-01-29 19:50:26 +0200
2779
2780    Translations: Update the Ukrainian translation
2781
2782 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++---------------------------
2783 1 file changed, 460 insertions(+), 353 deletions(-)
2784
2785commit 81c352907b8048b97d9868947026701a49f377ef
2786Author: Lasse Collin <lasse.collin@tukaani.org>
2787Date:   2025-01-29 19:48:43 +0200
2788
2789    Translations: Update the Swedish translation
2790
2791 po/sv.po | 847 ++++++++++++++++++++++++++++++++++-----------------------------
2792 1 file changed, 462 insertions(+), 385 deletions(-)
2793
2794commit 999ce263718a52ba74245c3e2a416ab11494d1b1
2795Author: Lasse Collin <lasse.collin@tukaani.org>
2796Date:   2025-01-28 16:33:32 +0200
2797
2798    tuklib_physmem: Clean up disabled code
2799
2800 src/common/tuklib_physmem.c | 9 +--------
2801 1 file changed, 1 insertion(+), 8 deletions(-)
2802
2803commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab
2804Author: Lasse Collin <lasse.collin@tukaani.org>
2805Date:   2025-01-28 16:28:18 +0200
2806
2807    Windows: Avoid an error message on broken pipe
2808
2809    Also make xz not process more input files after a broken pipe has
2810    been detected. This matches the behavior on POSIX. If all files
2811    are being written to standard output, trying with the next file is
2812    pointless when it's known that standard output won't accept more data.
2813
2814    xzdec already stopped after the first error. It does so with all
2815    errors, so it differs from xz:
2816
2817        $ xz -dc not_found_1 not_found_2
2818        xz: not_found_1: No such file or directory
2819        xz: not_found_2: No such file or directory
2820
2821        $ xzdec not_found_1 not_found_2
2822        xzdec: not_found_1: No such file or directory
2823
2824    Reported-by: Vincent Torri
2825
2826 src/xz/file_io.c  | 13 +++++++++++++
2827 src/xzdec/xzdec.c | 11 ++++++++++-
2828 2 files changed, 23 insertions(+), 1 deletion(-)
2829
2830commit 95b638480aa8203e547c709c651f421c22db1718
2831Author: Lasse Collin <lasse.collin@tukaani.org>
2832Date:   2025-01-23 19:59:17 +0200
2833
2834    doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha
2835
2836 doc/SHA256SUMS | 9 +++++++++
2837 1 file changed, 9 insertions(+)
2838
2839commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d
2840Author: Lasse Collin <lasse.collin@tukaani.org>
2841Date:   2025-01-23 11:50:42 +0200
2842
2843    Bump version and soname for 5.7.1alpha
2844
2845 src/liblzma/Makefile.am         | 2 +-
2846 src/liblzma/api/lzma/version.h  | 2 +-
2847 src/liblzma/liblzma_generic.map | 2 +-
2848 src/liblzma/liblzma_linux.map   | 2 +-
2849 4 files changed, 4 insertions(+), 4 deletions(-)
2850
2851commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322
2852Author: Lasse Collin <lasse.collin@tukaani.org>
2853Date:   2025-01-23 11:48:43 +0200
2854
2855    Translations: Run po4a/update-po
2856
2857 po4a/de.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
2858 po4a/fr.po    | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
2859 po4a/ko.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
2860 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++-----
2861 po4a/ro.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
2862 po4a/uk.po    | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----------
2863 6 files changed, 320 insertions(+), 50 deletions(-)
2864
2865commit ff0b825505e60e21b32e33c42f551c8f34ba393f
2866Author: Lasse Collin <lasse.collin@tukaani.org>
2867Date:   2025-01-23 11:40:46 +0200
2868
2869    Add NEWS for 5.7.1alpha
2870
2871 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2872 1 file changed, 107 insertions(+)
2873
2874commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf
2875Author: Lasse Collin <lasse.collin@tukaani.org>
2876Date:   2025-01-23 11:40:46 +0200
2877
2878    Add NEWS for 5.6.4
2879
2880 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++
2881 1 file changed, 45 insertions(+)
2882
2883commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228
2884Author: Lasse Collin <lasse.collin@tukaani.org>
2885Date:   2025-01-23 11:40:46 +0200
2886
2887    NEWS: The security fix in 5.6.3 is known as CVE-2024-47611
2888
2889 NEWS | 4 +++-
2890 1 file changed, 3 insertions(+), 1 deletion(-)
2891
2892commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29
2893Author: Lasse Collin <lasse.collin@tukaani.org>
2894Date:   2025-01-22 16:55:09 +0200
2895
2896    windows/build.bash: Fix error message
2897
2898    Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
2899
2900 windows/build.bash | 2 +-
2901 1 file changed, 1 insertion(+), 1 deletion(-)
2902
2903commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb
2904Author: Lasse Collin <lasse.collin@tukaani.org>
2905Date:   2025-01-22 15:03:55 +0200
2906
2907    Windows: Disable MinGW-w64's stdio functions in size-optimized builds
2908
2909    This only affects builds with UCRT. With legacy MSVCRT, the replacement
2910    functions are always enabled.
2911
2912    Omitting the MinGW-w64 replacements saves over 20 KiB per executable.
2913    The downside is that --enable-small or XZ_SMALL=ON disables thousand
2914    separator support in xz messages. If someone is OK with the slower
2915    speed of slightly smaller builds, lack of thousand separators won't
2916    matter.
2917
2918    Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via
2919    CPPFLAGS or such method).
2920
2921 src/common/sysdefs.h | 30 +++++++++++++++++++++---------
2922 src/xz/util.c        |  6 +++++-
2923 2 files changed, 26 insertions(+), 10 deletions(-)
2924
2925commit a831bc185bdd44c06847eae8df2d35cc281f65da
2926Author: Lasse Collin <lasse.collin@tukaani.org>
2927Date:   2025-01-20 16:44:27 +0200
2928
2929    liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs
2930
2931    Put them behind the LZMA_UNSTABLE macro for now.
2932
2933    These low-level special APIs might become useful in erofs-utils.
2934
2935 src/liblzma/api/lzma/bcj.h      | 99 +++++++++++++++++++++++++++++++++++++++++
2936 src/liblzma/common/common.h     |  2 +
2937 src/liblzma/liblzma_generic.map | 10 +++++
2938 src/liblzma/liblzma_linux.map   | 10 +++++
2939 src/liblzma/simple/arm64.c      | 18 ++++++++
2940 src/liblzma/simple/riscv.c      | 18 ++++++++
2941 src/liblzma/simple/x86.c        | 24 ++++++++++
2942 7 files changed, 181 insertions(+)
2943
2944commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c
2945Author: Lasse Collin <lasse.collin@tukaani.org>
2946Date:   2025-01-20 16:31:49 +0200
2947
2948    xz: Unify a few strings with liblzma
2949
2950    Avoid having both "%s: foo" and "foo" as translatable strings
2951    so that translators don't need to handle it twice.
2952
2953 src/xz/options.c | 11 ++++++-----
2954 src/xz/util.c    |  4 ++--
2955 2 files changed, 8 insertions(+), 7 deletions(-)
2956
2957commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb
2958Author: Lasse Collin <lasse.collin@tukaani.org>
2959Date:   2025-01-20 16:31:49 +0200
2960
2961    xz: Translate error messages from lzma_str_to_filters()
2962
2963    liblzma doesn't use gettext but the messages are included in xz.pot,
2964    so xz can translate the messages.
2965
2966 src/xz/coder.c | 9 +++------
2967 1 file changed, 3 insertions(+), 6 deletions(-)
2968
2969commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028
2970Author: Lasse Collin <lasse.collin@tukaani.org>
2971Date:   2025-01-20 16:31:49 +0200
2972
2973    liblzma: Mark string conversion messages as translatable
2974
2975 po/POTFILES.in                         |  1 +
2976 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++--------------
2977 2 files changed, 59 insertions(+), 38 deletions(-)
2978
2979commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9
2980Author: Lasse Collin <lasse.collin@tukaani.org>
2981Date:   2025-01-20 16:31:35 +0200
2982
2983    liblzma: Tweak a few error messages in lzma_str_to_filters()
2984
2985 src/liblzma/common/string_conversion.c | 9 +++++----
2986 1 file changed, 5 insertions(+), 4 deletions(-)
2987
2988commit da359c360e986b21cd8d7b888c6a80f56b9d49c7
2989Author: Lasse Collin <lasse.collin@tukaani.org>
2990Date:   2025-01-19 20:11:54 +0200
2991
2992    Update THANKS
2993
2994 THANKS | 1 +
2995 1 file changed, 1 insertion(+)
2996
2997commit f032373561cefaf07f92ffe3fbc471ec6770456e
2998Author: Lasse Collin <lasse.collin@tukaani.org>
2999Date:   2025-01-19 19:40:32 +0200
3000
3001    Update THANKS
3002
3003 THANKS | 1 +
3004 1 file changed, 1 insertion(+)
3005
3006commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615
3007Author: Lasse Collin <lasse.collin@tukaani.org>
3008Date:   2025-01-13 08:44:58 +0200
3009
3010    liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs
3011
3012    Previously it was enabled only on x86-64 and ARM64 when also support
3013    for unaligned access was detected or manually enabled at built time.
3014
3015    In the default build configuration, the 8-byte method is now enabled
3016    also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was
3017    reported that on big endian POWER9, encoding time may reduce 12-13 %.
3018
3019    This change only affects builds with GCC and Clang because the code
3020    uses __builtin_ctzll or __builtin_clzll.
3021
3022    Thanks to Marcus Comstedt for testing on POWER9.
3023
3024 src/liblzma/common/memcmplen.h | 3 +--
3025 1 file changed, 1 insertion(+), 2 deletions(-)
3026
3027commit 96336b0110d47756a9fd2a103fbf0a99e905fbed
3028Author: Lasse Collin <lasse.collin@tukaani.org>
3029Date:   2025-01-12 13:06:17 +0200
3030
3031    Update THANKS
3032
3033 THANKS | 1 +
3034 1 file changed, 1 insertion(+)
3035
3036commit 150356207c8d6a3e0af465b676430d19d62f884c
3037Author: Lasse Collin <lasse.collin@tukaani.org>
3038Date:   2025-01-12 12:59:20 +0200
3039
3040    liblzma: Fix the encoder breakage on big endian ARM64
3041
3042    When the 8-byte method was enabled for ARM64, a check for endianness
3043    wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it.
3044
3045    Fixes: cd64dd70d5665b6048829c45772d08606f44672e
3046    Co-authored-by: Marcus Comstedt <marcus@mc.pp.se>
3047
3048 src/liblzma/common/memcmplen.h | 9 +++++++--
3049 1 file changed, 7 insertions(+), 2 deletions(-)
3050
3051commit b01b0958025a2da284b53a583f313f8140636cb5
3052Author: Lasse Collin <lasse.collin@tukaani.org>
3053Date:   2025-01-12 11:04:27 +0200
3054
3055    Windows: Update manifest comments about long UTF-8 filenames
3056
3057 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++--------
3058 1 file changed, 15 insertions(+), 8 deletions(-)
3059
3060commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a
3061Author: Lasse Collin <lasse.collin@tukaani.org>
3062Date:   2025-01-12 10:47:58 +0200
3063
3064    Windows: Update build.bash and its README-Windows.txt to UCRT
3065
3066    While MSVCRT builds are possible, UCRT works better with UTF-8.
3067    A 32-bit build is included still but hopefully it's not actually
3068    needed anymore.
3069
3070 windows/README-Windows.txt | 17 ++++++++---------
3071 windows/build.bash         | 20 ++++++++++++++------
3072 2 files changed, 22 insertions(+), 15 deletions(-)
3073
3074commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2
3075Author: Lasse Collin <lasse.collin@tukaani.org>
3076Date:   2025-01-10 13:11:40 +0200
3077
3078    Translations: Update Serbian translation
3079
3080    I rewrapped a few overlong lines. Those edits aren't in the
3081    Translation Project. Automatic wrapping in the master branch
3082    means that these strings need to be updated soon anyway.
3083
3084 po/sr.po | 346 ++++++++++++++++++++++-----------------------------------------
3085 1 file changed, 121 insertions(+), 225 deletions(-)
3086
3087commit 950da11ce09c90412dcbca29689575037640667a
3088Author: Lasse Collin <lasse.collin@tukaani.org>
3089Date:   2025-01-08 19:26:29 +0200
3090
3091    Build: Use --sort=name in TAR_OPTIONS
3092
3093    Use also LC_COLLATE=C to make the sorting locale-independent.
3094    Sorting makes the file order reproducible.
3095
3096 Makefile.am | 3 ++-
3097 1 file changed, 2 insertions(+), 1 deletion(-)
3098
3099commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d
3100Author: Lasse Collin <lasse.collin@tukaani.org>
3101Date:   2025-01-08 19:08:08 +0200
3102
3103    xz: Workaround broken O_SEARCH in musl
3104
3105    Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result
3106    in a file descriptor that works with fsync() although it should work.
3107    See the added comment.
3108
3109    The same issue affected gzip --synchronous:
3110
3111        https://bugs.gnu.org/75405
3112
3113    Thanks to Paul Eggert.
3114
3115 src/xz/file_io.c | 11 +++++++++++
3116 1 file changed, 11 insertions(+)
3117
3118commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c
3119Author: Lasse Collin <lasse.collin@tukaani.org>
3120Date:   2025-01-07 21:34:33 +0200
3121
3122    Revert "xz: O_SEARCH cannot be used for fsync()"
3123
3124    This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f.
3125
3126    POSIX-conforming O_SEARCH should allow fsync().
3127
3128 src/xz/file_io.c | 21 +++++++++++----------
3129 1 file changed, 11 insertions(+), 10 deletions(-)
3130
3131commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f
3132Author: Lasse Collin <lasse.collin@tukaani.org>
3133Date:   2025-01-05 21:43:11 +0200
3134
3135    xz: O_SEARCH cannot be used for fsync()
3136
3137    Opening a directory with O_SEARCH results in a file descriptor that can
3138    be used with functions like openat(). Such a file descriptor cannot be
3139    used with fsync(). Use O_RDONLY instead.
3140
3141    In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor
3142    from O_PATH doesn't allow fsync().
3143
3144    Seems that it's not possible to fsync() a directory that has write
3145    and search permissions but not read permission.
3146
3147    Fixes: 2a9e91d796d091740489d951fa7780525e4275f1
3148
3149 src/xz/file_io.c | 21 ++++++++++-----------
3150 1 file changed, 10 insertions(+), 11 deletions(-)
3151
3152commit ad2b57cb477b753293c25a01fc24c7f84ee523c2
3153Author: Lasse Collin <lasse.collin@tukaani.org>
3154Date:   2025-01-05 20:48:28 +0200
3155
3156    CI: Make ctest show errors from failed tests
3157
3158 build-aux/ci_build.bash | 2 +-
3159 1 file changed, 1 insertion(+), 1 deletion(-)
3160
3161commit c405264c031aceaf68dfd1546d6337afcebd48e5
3162Author: Lasse Collin <lasse.collin@tukaani.org>
3163Date:   2025-01-05 20:14:49 +0200
3164
3165    tuklib_mbstr_nonprint: Preserve the value of errno
3166
3167    A typical use case is like this:
3168
3169        printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno));
3170
3171    tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify
3172    errno. If errno isn't preserved, the error message might be wrong if
3173    a compiler decides to call tuklib_mask_nonprint() before strerror().
3174
3175    Fixes: 40e573305535960574404d2eae848b248c95ea7e
3176
3177 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++---
3178 src/common/tuklib_mbstr_nonprint.h |  4 +++-
3179 2 files changed, 17 insertions(+), 4 deletions(-)
3180
3181commit 2a9e91d796d091740489d951fa7780525e4275f1
3182Author: Lasse Collin <lasse.collin@tukaani.org>
3183Date:   2025-01-05 20:14:49 +0200
3184
3185    xz: Use fsync() before deleting the input file, and add --no-sync
3186
3187    xz's default behavior is to delete the input file after successful
3188    compression or decompression (unless writing to standard output).
3189    If the system crashes soon after the deletion, it is possible that
3190    the newly written file has not yet hit the disk while the previous
3191    delete operation might have. In that case neither the original file
3192    nor the written file is available.
3193
3194    Call fsync() on the file. On POSIX systems, sync also the directory
3195    where the file was created.
3196
3197    Add a new option --no-sync which disables fsync() usage. It can avoid
3198    a (possibly significant) performance penalty when processing many
3199    small files. It's fine to use --no-sync when one knows that the files
3200    are easy to recreate or restore after a system crash.
3201
3202    Using fsync() after every flush initiated by --flush-timeout was
3203    considered. It wasn't implemented at least for now.
3204
3205      - --flush-timeout is typically used when writing to stdout. If stdout
3206        is a file, xz cannot (portably) sync the directory of the file.
3207        One would need to create the output file first, sync the directory,
3208        and then run xz with fsync() enabled.
3209
3210      - If xz --flush-timeout output goes to a file, it's possible to use
3211        a separate script to sync the file, for example, once per minute
3212        while telling xz to flush more frequently.
3213
3214      - Not supporting syncing with --flush-timeout was simpler.
3215
3216    Portability notes:
3217
3218      - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now
3219        fail if "dir" cannot be opened for reading. If "dir" still has
3220        write and search permissions (like d-wx------ in "ls -l"),
3221        previously xz would have been able to compress "dir/file" still.
3222        Now it only works if using --no-sync (or --keep or --stdout).
3223
3224      - <libgen.h> and dirname() should be available on all POSIX systems,
3225        and aren't needed on non-POSIX systems.
3226
3227      - fsync() is available on all POSIX systems. The directory syncing
3228        could be changed to fdatasync() although at least on ext4 it
3229        doesn't seem to make a performance difference in xz's usage.
3230        fdatasync() would need a build system check to support (old)
3231        special cases, for example, MINIX 3.3.0 doesn't have fdatasync()
3232        and Solaris 10 needs -lrt.
3233
3234      - On native Windows, _commit() is used to replace fsync(). Directory
3235        syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on
3236        directories is a no-op.)
3237
3238      - DJGPP has fsync() for files. ;-)
3239
3240    Using fsync() was considered somewhere around 2009 and again in 2016 but
3241    those times the idea was rejected. For comparison, GNU gzip 1.7 (2016)
3242    added the option --synchronous which enables fsync().
3243
3244    Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
3245    Fixes: https://bugs.debian.org/814089
3246    Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html
3247    Closes: https://github.com/tukaani-project/xz/pull/151
3248
3249 src/xz/args.c    |  14 ++++++
3250 src/xz/args.h    |   2 +-
3251 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
3252 src/xz/file_io.h |   6 +++
3253 src/xz/message.c |   3 ++
3254 src/xz/sandbox.c |   5 ++-
3255 src/xz/xz.1      |  24 ++++++++++-
3256 7 files changed, 177 insertions(+), 6 deletions(-)
3257
3258commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f
3259Author: Lasse Collin <lasse.collin@tukaani.org>
3260Date:   2024-12-27 09:15:50 +0200
3261
3262    xz: Use "goto" for error handling in io_open_dest_real()
3263
3264 src/xz/file_io.c | 20 +++++++++-----------
3265 1 file changed, 9 insertions(+), 11 deletions(-)
3266
3267commit 75107217670a97b7b772833669d88c3c2f188e37
3268Author: Lasse Collin <lasse.collin@tukaani.org>
3269Date:   2025-01-05 12:10:05 +0200
3270
3271    liblzma: Always validate the first digit of a preset string
3272
3273    lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The
3274    call from str_to_filters() detects the string type from the first
3275    character(s) and as a side-effect it validates the first digit of
3276    the preset string. So this change makes no difference there.
3277
3278    However, the call from parse_options() doesn't pre-validate the string.
3279    parse_lzma12_preset() will return an invalid value which is passed to
3280    lzma_lzma_preset() which safely rejects it. The bug still affects the
3281    the error message:
3282
3283        $ xz --filters=lzma2:preset=X
3284        xz: Error in --filters=FILTERS option:
3285        xz: lzma2:preset=X
3286        xz:               ^
3287        xz: Unsupported preset
3288
3289    After the fix:
3290
3291        $ xz --filters=lzma2:preset=X
3292        xz: Error in --filters=FILTERS option:
3293        xz: lzma2:preset=X
3294        xz:              ^
3295        xz: Unsupported preset
3296
3297    The ^ now correctly points to the X and not past it because the X itself
3298    is the problematic character.
3299
3300    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
3301
3302 src/liblzma/common/string_conversion.c | 4 ++++
3303 1 file changed, 4 insertions(+)
3304
3305commit 52ff32433734d03befd85a5bf00fba77d6501455
3306Author: Lasse Collin <lasse.collin@tukaani.org>
3307Date:   2025-01-05 11:40:34 +0200
3308
3309    xz: Fix getopt_long argument type in --filters*
3310
3311    Forgetting the argument (or not using = to separate the option from
3312    the argument) resulted in lzma_str_to_filters() being called with NULL
3313    as input string argument. The function handles it fine but xz passes
3314    the NULL to printf() too:
3315
3316        $ xz --filters
3317        xz: Error in --filters=FILTERS option:
3318        xz: (null)
3319        xz: ^
3320        xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters()
3321
3322    Now it's correct:
3323
3324        $ xz --filters
3325        xz: option '--filters' requires an argument
3326
3327    The --filters-help option doesn't take any arguments.
3328
3329    Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760
3330    Fixes: d6af7f347077b22403133239592e478931307759
3331    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
3332
3333 src/xz/args.c | 22 +++++++++++-----------
3334 1 file changed, 11 insertions(+), 11 deletions(-)
3335
3336commit 2655c81b5e92278b0fd51f6537c1116f8349b02a
3337Author: Lasse Collin <lasse.collin@tukaani.org>
3338Date:   2025-01-04 20:04:56 +0200
3339
3340    xzdec: Don't leave Landlock file descriptor open for no reason
3341
3342    This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427.
3343
3344    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
3345
3346 src/xzdec/xzdec.c | 2 ++
3347 1 file changed, 2 insertions(+)
3348
3349commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e
3350Author: Lasse Collin <lasse.collin@tukaani.org>
3351Date:   2025-01-04 20:02:18 +0200
3352
3353    xz: Make --single-stream imply --keep
3354
3355    Suggested by xx on #tukaani on 2024-04-12.
3356
3357 src/xz/args.c | 3 +++
3358 src/xz/xz.1   | 9 ++++++++-
3359 2 files changed, 11 insertions(+), 1 deletion(-)
3360
3361commit 6f412814a8019700248229ce972530159a0d9872
3362Author: Lasse Collin <lasse.collin@tukaani.org>
3363Date:   2025-01-04 19:57:07 +0200
3364
3365    Update AUTHORS
3366
3367    The contributions have been rewritten.
3368
3369 AUTHORS                         | 2 +-
3370 src/liblzma/check/crc32_arm64.h | 1 -
3371 src/liblzma/check/crc32_fast.c  | 1 -
3372 src/liblzma/check/crc_common.h  | 1 -
3373 4 files changed, 1 insertion(+), 4 deletions(-)
3374
3375commit 5651d153031a7ee2581cdba9bff658031826cb50
3376Author: Lasse Collin <lasse.collin@tukaani.org>
3377Date:   2025-01-04 15:02:16 +0200
3378
3379    xz: Avoid printf formats like %2$s
3380
3381    It's a POSIX feature that isn't in standard C. It's not available on
3382    Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support
3383    it even though it supports POSIX %'d for thousand separators.
3384
3385    Gettext's <libintl.h> provides overrides for printf and other functions
3386    which do support the %2$s formats. Translations use them. But xz should
3387    work on Windows without <libintl.h> too.
3388
3389    Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229
3390
3391 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++-------------------
3392 1 file changed, 32 insertions(+), 19 deletions(-)
3393
3394commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf
3395Author: Lasse Collin <lasse.collin@tukaani.org>
3396Date:   2025-01-04 14:41:37 +0200
3397
3398    tuklib_mbstr_wrap: Add printf format attribute
3399
3400    It's supported by GCC 3.x already.
3401
3402 src/common/tuklib_common.h     | 7 +++++++
3403 src/common/tuklib_mbstr_wrap.h | 1 +
3404 2 files changed, 8 insertions(+)
3405
3406commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b
3407Author: Lasse Collin <lasse.collin@tukaani.org>
3408Date:   2025-01-04 13:44:12 +0200
3409
3410    xz: Translate a Windows-specific string
3411
3412    Originally I thought that native Windows builds wouldn't be translated
3413    but nowadays at least MSYS2 ships such binaries.
3414
3415 src/xz/file_io.c | 2 +-
3416 1 file changed, 1 insertion(+), 1 deletion(-)
3417
3418commit 00eb6073c088be9e7516dfc00a13ef520827b57c
3419Author: Lasse Collin <lasse.collin@tukaani.org>
3420Date:   2025-01-02 15:32:10 +0200
3421
3422    xz: Use my_landlock.h
3423
3424    A slightly silly thing is that xz may now query the ABI version up to
3425    three times. We could call my_landlock_ruleset_attr_forbid_all() only
3426    once and cache the result but it didn't seem worth doing.
3427
3428 CMakeLists.txt   |  1 +
3429 src/xz/sandbox.c | 72 ++++++++++----------------------------------------------
3430 2 files changed, 13 insertions(+), 60 deletions(-)
3431
3432commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6
3433Author: Lasse Collin <lasse.collin@tukaani.org>
3434Date:   2025-01-02 15:32:10 +0200
3435
3436    xzdec: Use my_landlock.h
3437
3438 CMakeLists.txt    |  1 +
3439 src/xzdec/xzdec.c | 34 ++++++----------------------------
3440 2 files changed, 7 insertions(+), 28 deletions(-)
3441
3442commit 38cb8ec9fd70d25fca6b473de44cf61586238552
3443Author: Lasse Collin <lasse.collin@tukaani.org>
3444Date:   2025-01-02 15:32:10 +0200
3445
3446    Add my_landlock.h with helper functions to use Linux Landlock
3447
3448    This supports up to Landlock ABI version 6. The current code in
3449    xz and xzdec only support up to ABI version 4.
3450
3451 src/Makefile.am          |   1 +
3452 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++
3453 2 files changed, 142 insertions(+)
3454
3455commit 672da29bb3a209a727ae46c0df948d7eea69f2e2
3456Author: Lasse Collin <lasse.collin@tukaani.org>
3457Date:   2025-01-01 18:46:50 +0200
3458
3459    liblzma: Silence warnings from "clang -Wimplicit-fallthrough"
3460
3461 src/liblzma/lzma/lzma_decoder.c | 2 +-
3462 1 file changed, 1 insertion(+), 1 deletion(-)
3463
3464commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd
3465Author: Lasse Collin <lasse.collin@tukaani.org>
3466Date:   2025-01-01 15:34:51 +0200
3467
3468    Build: Use -Wimplicit-fallthrough=5 when supported
3469
3470    Now that we have the FALLTHROUGH macro, use the strictest mode with
3471    GCC so that comment-based fallthrough markings are no longer accepted.
3472
3473    In GCC, -Wextra includes -Wimplicit-fallthrough=3 and
3474    -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3.
3475    Thus, the strict mode requires specifying -Wimplicit-fallthrough=5.
3476
3477    Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra.
3478    Clang doesn't have a variant that takes an argument. Thus we need
3479    to check for -Wimplicit-fallthrough. Do it before checking for
3480    -Wimplicit-fallthrough=5 so that the latter overrides the former
3481    when using GCC.
3482
3483 CMakeLists.txt | 2 ++
3484 configure.ac   | 2 ++
3485 2 files changed, 4 insertions(+)
3486
3487commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22
3488Author: Lasse Collin <lasse.collin@tukaani.org>
3489Date:   2025-01-01 15:30:50 +0200
3490
3491    Replace "Fall through" comments with FALLTHROUGH
3492
3493 src/liblzma/common/alone_decoder.c     |  3 +--
3494 src/liblzma/common/auto_decoder.c      |  5 ++---
3495 src/liblzma/common/block_decoder.c     |  6 ++----
3496 src/liblzma/common/block_encoder.c     |  6 ++----
3497 src/liblzma/common/common.c            |  2 +-
3498 src/liblzma/common/file_info.c         | 22 +++++++++-------------
3499 src/liblzma/common/index_decoder.c     |  9 +++------
3500 src/liblzma/common/index_encoder.c     |  6 ++----
3501 src/liblzma/common/index_hash.c        |  7 +++----
3502 src/liblzma/common/lzip_decoder.c      | 14 +++++---------
3503 src/liblzma/common/stream_decoder.c    | 16 ++++++----------
3504 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++----------------
3505 src/liblzma/common/stream_encoder_mt.c | 10 ++++------
3506 src/liblzma/lzma/lzma2_encoder.c       |  9 +++------
3507 src/xz/args.c                          |  2 +-
3508 src/xz/list.c                          |  3 +--
3509 16 files changed, 54 insertions(+), 91 deletions(-)
3510
3511commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22
3512Author: Lasse Collin <lasse.collin@tukaani.org>
3513Date:   2025-01-01 15:08:51 +0200
3514
3515    sysdefs.h: Add FALLTHROUGH macro
3516
3517 src/common/sysdefs.h | 9 +++++++++
3518 1 file changed, 9 insertions(+)
3519
3520commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc
3521Author: Lasse Collin <lasse.collin@tukaani.org>
3522Date:   2025-01-01 15:06:15 +0200
3523
3524    xzdec: Fix language in a comment
3525
3526 src/xzdec/xzdec.c | 2 +-
3527 1 file changed, 1 insertion(+), 1 deletion(-)
3528
3529commit 16821252c504071f5c2012e415e59cbf5fb79820
3530Author: Lasse Collin <lasse.collin@tukaani.org>
3531Date:   2025-01-02 13:35:48 +0200
3532
3533    Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1
3534
3535    Also remove the recently-added workaround from tuklib_gettext.h.
3536    Requiring a new enough gettext-runtime is cleaner. I guess it's
3537    mostly MSYS2 where xz is built with translation support, so once
3538    MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem
3539    in practice.
3540
3541 CMakeLists.txt              | 29 ++++++++++++++++++++++++++
3542 configure.ac                | 29 ++++++++++++++++++++++++++
3543 src/common/tuklib_gettext.h | 51 ---------------------------------------------
3544 3 files changed, 58 insertions(+), 51 deletions(-)
3545
3546commit aa1807ed942579f700a08ab091b796cf04e31aec
3547Author: Lasse Collin <lasse.collin@tukaani.org>
3548Date:   2025-01-02 11:52:17 +0200
3549
3550    windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS
3551
3552    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
3553
3554 windows/build-with-cmake.bat | 2 +-
3555 1 file changed, 1 insertion(+), 1 deletion(-)
3556
3557commit ea21c76aa2406ba06ac154fe57741734c04f260f
3558Author: Lasse Collin <lasse.collin@tukaani.org>
3559Date:   2024-12-30 11:21:57 +0200
3560
3561    Build: Use git log --pretty=medium when creating ChangeLog
3562
3563    It's the default in git-log. Specifying it explicitly is good in case
3564    a user has set format.pretty to a different value.
3565
3566 Makefile.am | 4 ++--
3567 1 file changed, 2 insertions(+), 2 deletions(-)
3568
3569commit 08050c0788ce5bac0ffd572e9784a2749c4a13df
3570Author: Lasse Collin <lasse.collin@tukaani.org>
3571Date:   2024-12-30 10:51:33 +0200
3572
3573    Windows: Update MinGW-w64 + CMake instructions to recommend UCRT
3574
3575 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++-------------
3576 1 file changed, 23 insertions(+), 15 deletions(-)
3577
3578commit 653732bd6f06d8f465bf353bf6e1c16f1405b906
3579Author: Lasse Collin <lasse.collin@tukaani.org>
3580Date:   2024-12-30 10:51:26 +0200
3581
3582    xz man page: Describe the source file deletion in -z and -d options
3583
3584    The DESCRIPTION section always explained it, and the OPTIONS section
3585    only described the differences to the default behavior. However, new
3586    users in a hurry may skip reading DESCRIPTION. The default behavior
3587    is a bit dangerous, thus it's good to repeat in --compress and
3588    --decompress docs that source file is removed after successful operation.
3589
3590    Fixes: https://github.com/tukaani-project/xz/issues/150
3591
3592 src/xz/xz.1 | 17 ++++++++++++++++-
3593 1 file changed, 16 insertions(+), 1 deletion(-)
3594
3595commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf
3596Author: Lasse Collin <lasse.collin@tukaani.org>
3597Date:   2024-12-27 21:52:28 +0200
3598
3599    Build: Set libtool -version-info so that it matches with CMake
3600
3601    In the past, they haven't been in sync in development versions
3602    although they (of course) have been in stable releases.
3603
3604 src/liblzma/Makefile.am | 2 +-
3605 1 file changed, 1 insertion(+), 1 deletion(-)
3606
3607commit cf54f70e14c218faf5019ffa2fa769ed73772ee8
3608Author: Lasse Collin <lasse.collin@tukaani.org>
3609Date:   2024-12-28 18:28:56 +0200
3610
3611    CMake/macOS: Use GNU Libtool compatible shared library versioning
3612
3613    Because this increases the Mach-O compatibility_version, this commit
3614    shouldn't cause any ABI compatibility trouble for existing CMake users
3615    on macOS. This is assuming that they won't later downgrade to an older
3616    liblzma version that was built with CMake before this commit.
3617
3618    Meson allows customising the Mach-O versioning too. So the three
3619    build systems can be configured to be compatible.
3620
3621 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
3622 1 file changed, 48 insertions(+), 3 deletions(-)
3623
3624commit 94e17916689d38bc09bf35e602ed6f6276034b59
3625Author: Lasse Collin <lasse.collin@tukaani.org>
3626Date:   2024-12-28 14:49:45 +0200
3627
3628    CMake: Edit a comment
3629
3630 CMakeLists.txt | 2 +-
3631 1 file changed, 1 insertion(+), 1 deletion(-)
3632
3633commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b
3634Author: Lasse Collin <lasse.collin@tukaani.org>
3635Date:   2024-12-28 20:39:49 +0200
3636
3637    version.sh: Omit an unwanted dot from development versions
3638
3639    It printed 5.7.0.alpha instead of 5.7.0alpha.
3640
3641    Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae
3642
3643 build-aux/version.sh | 2 +-
3644 1 file changed, 1 insertion(+), 1 deletion(-)
3645
3646commit f7a248f56e94310a080051c4a709c08514fa48b1
3647Author: Lasse Collin <lasse.collin@tukaani.org>
3648Date:   2024-12-27 16:25:07 +0200
3649
3650    CMake: Remove a duplicate word from a comment
3651
3652 CMakeLists.txt | 4 ++--
3653 1 file changed, 2 insertions(+), 2 deletions(-)
3654
3655commit 8b7c55d148f4a9b3702207164e862437ddffad33
3656Author: Lasse Collin <lasse.collin@tukaani.org>
3657Date:   2024-12-27 16:23:12 +0200
3658
3659    INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION
3660
3661 INSTALL | 19 +++++++++++++++++++
3662 1 file changed, 19 insertions(+)
3663
3664commit 260d5d36203955a7148ae1ab05d0931c942028d5
3665Author: Lasse Collin <lasse.collin@tukaani.org>
3666Date:   2024-12-26 21:27:18 +0200
3667
3668    xz: Fix comments
3669
3670 src/xz/file_io.c | 4 ++--
3671 src/xz/file_io.h | 4 ++--
3672 2 files changed, 4 insertions(+), 4 deletions(-)
3673
3674commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11
3675Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
3676Date:   2024-12-22 13:44:03 +0100
3677
3678    CMake: Disable unity builds project-wide
3679
3680    liblzma and xz can't be compiled as a unity/jumbo build because of
3681    redeclarations and type name reuse. The CMake documentation recommends
3682    setting UNITY_BUILD to false in this case.
3683
3684    This is especially important if we're compiled as a subproject and the
3685    consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code
3686    base.
3687
3688    Closes: https://github.com/tukaani-project/xz/pull/158
3689
3690 CMakeLists.txt | 6 ++++++
3691 1 file changed, 6 insertions(+)
3692
3693commit f8c328eed1bf0a0168132025a52116b7735f894c
3694Author: Lasse Collin <lasse.collin@tukaani.org>
3695Date:   2024-12-20 08:51:18 +0200
3696
3697    Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale()
3698
3699    See the comment. In this package, locale is set at program startup and
3700    not changed later, so the point (2) in the comment isn't a problem.
3701
3702    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
3703
3704 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++
3705 1 file changed, 51 insertions(+)
3706
3707commit 03533906093529701ba91081907d8977991997de
3708Author: Lasse Collin <lasse.collin@tukaani.org>
3709Date:   2024-12-20 06:50:36 +0200
3710
3711    Revert "Windows: Use UTF-8 locale when active code page is UTF-8"
3712
3713    This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a.
3714
3715 src/common/tuklib_gettext.h | 32 ++------------------------------
3716 1 file changed, 2 insertions(+), 30 deletions(-)
3717
3718commit 4b319e05afef4eab2fbafb6223f25d128ec99fce
3719Author: Lasse Collin <lasse.collin@tukaani.org>
3720Date:   2024-12-19 18:31:09 +0200
3721
3722    xzdec: Use setlocale() instead of tuklib_gettext_setlocale()
3723
3724    xzdec isn't translated and doesn't need libintl on Windows even
3725    when NLS is enabled, thus libintl_setlocale() cannot interfere
3726    with the locale settings. Thus, standard setlocale() works perfectly.
3727
3728    In the commit 78868b6e, the explanation in the commit message is wrong.
3729
3730    Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
3731
3732 src/xzdec/xzdec.c | 9 +++------
3733 1 file changed, 3 insertions(+), 6 deletions(-)
3734
3735commit 34b80e282ea76ec793eaedaef58a36c3913dec78
3736Author: Lasse Collin <lasse.collin@tukaani.org>
3737Date:   2024-12-19 19:36:15 +0200
3738
3739    Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation
3740
3741    Only leave the FindFileFirstA() notes from 20dfca81, reverting
3742    the incorrect setlocale() notes. On Windows, Gettext's <libintl.h>
3743    overrides setlocale() with libintl_setlocale() wrapper. I hadn't
3744    noticed this, and thus my conclusions were wrong.
3745
3746    Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b
3747
3748 src/common/w32_application.manifest.comments.txt | 21 +--------------------
3749 1 file changed, 1 insertion(+), 20 deletions(-)
3750
3751commit 5794cda064ce980450eaa5a4e2c71bd317168ce4
3752Author: Lasse Collin <lasse.collin@tukaani.org>
3753Date:   2024-12-18 17:49:05 +0200
3754
3755    tuklib_mbstr_wrap: Silence a warning from Clang
3756
3757    Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634
3758
3759 src/common/tuklib_mbstr_wrap.c | 9 +++++++++
3760 1 file changed, 9 insertions(+)
3761
3762commit 16c9796ef970ae349c54fef9a346e394d7cc4c75
3763Author: Lasse Collin <lasse.collin@tukaani.org>
3764Date:   2024-12-18 14:00:09 +0200
3765
3766    Update THANKS
3767
3768 THANKS | 2 ++
3769 1 file changed, 2 insertions(+)
3770
3771commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053
3772Author: Lasse Collin <lasse.collin@tukaani.org>
3773Date:   2024-12-18 14:00:09 +0200
3774
3775    Update TODO
3776
3777    Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947
3778
3779 TODO | 3 ---
3780 1 file changed, 3 deletions(-)
3781
3782commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e
3783Author: Lasse Collin <lasse.collin@tukaani.org>
3784Date:   2024-12-18 14:00:09 +0200
3785
3786    lzmainfo: Use tuklib_mbstr_nonprint
3787
3788 CMakeLists.txt           |  3 +++
3789 src/lzmainfo/Makefile.am |  1 +
3790 src/lzmainfo/lzmainfo.c  | 16 ++++++++++------
3791 3 files changed, 14 insertions(+), 6 deletions(-)
3792
3793commit 03111595ee713e0f94fb4f4a19a15594d5149347
3794Author: Lasse Collin <lasse.collin@tukaani.org>
3795Date:   2024-12-18 14:00:09 +0200
3796
3797    xzdec: Use tuklib_mbstr_nonprint
3798
3799 CMakeLists.txt        |  3 +++
3800 src/xzdec/Makefile.am |  2 ++
3801 src/xzdec/xzdec.c     | 15 +++++++++++----
3802 3 files changed, 16 insertions(+), 4 deletions(-)
3803
3804commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122
3805Author: Lasse Collin <lasse.collin@tukaani.org>
3806Date:   2024-12-18 14:00:09 +0200
3807
3808    xz: Use tuklib_mbstr_nonprint
3809
3810    Call tuklib_mask_nonprint() on filenames and also on a few other
3811    strings from the command line too.
3812
3813    The filename printed by "xz --robot --list" (in list.c) is also masked.
3814    It's good to get rid of tabs and newlines which would desync the output
3815    but masking other chars wouldn't be strictly necessary. It might matter
3816    with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject
3817    non-ASCII chars) and a script wants to read a filename from xz's output.
3818    Hopefully it's an unusual enough corner case to not be a real problem.
3819
3820 CMakeLists.txt     |  2 ++
3821 src/xz/Makefile.am |  1 +
3822 src/xz/coder.c     | 19 ++++++++-----
3823 src/xz/file_io.c   | 81 ++++++++++++++++++++++++++++++++++--------------------
3824 src/xz/list.c      | 32 +++++++++++++--------
3825 src/xz/main.c      | 10 +++++--
3826 src/xz/message.c   |  8 ++++--
3827 src/xz/options.c   | 10 ++++---
3828 src/xz/private.h   |  1 +
3829 src/xz/suffix.c    | 12 ++++----
3830 10 files changed, 113 insertions(+), 63 deletions(-)
3831
3832commit 40e573305535960574404d2eae848b248c95ea7e
3833Author: Lasse Collin <lasse.collin@tukaani.org>
3834Date:   2024-12-18 14:00:09 +0200
3835
3836    Add tuklib_mbstr_nonprint to mask non-printable characters
3837
3838    Malicious filenames or other untrusted strings may affect the state of
3839    the terminal when such strings are printed as part of (error) messages.
3840    Add functions that mask such characters.
3841
3842    It's not enough to handle only single-byte control characters.
3843    In multibyte locales, some control characters are multibyte too, for
3844    example, terminals interpret C1 control characters (U+0080 to U+009F)
3845    that are two bytes as UTF-8.
3846
3847    Instead of checking for control characters with iswcntrl(), this
3848    uses iswprint() to detect printable characters. This is much stricter.
3849    On Windows it's actually too strict as it rejects some characters that
3850    definitely are printable.
3851
3852    Gnulib's quotearg would do a lot more but I hope this simpler method
3853    is good enough here.
3854
3855    Thanks to Ryan Colyer for the discussion about the problems of
3856    the earlier single-byte-only method.
3857
3858    Thanks to Christian Weisgerber for reporting a bug in an earlier
3859    version of this code.
3860
3861    Thanks to Jeroen Roovers for a typo fix.
3862
3863    Closes: https://github.com/tukaani-project/xz/pull/118
3864
3865 src/Makefile.am                    |   2 +
3866 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++
3867 src/common/tuklib_mbstr_nonprint.h |  69 +++++++++++++++++
3868 3 files changed, 222 insertions(+)
3869
3870commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402
3871Author: Lasse Collin <lasse.collin@tukaani.org>
3872Date:   2024-12-18 11:33:09 +0200
3873
3874    Translations: Add preliminary Georgian translation
3875
3876    Most of the auto-wrapped strings are translated already. A few
3877    strings have changed since this was created though. This file
3878    isn't in the Translation Project *yet* because these strings
3879    are still very new.
3880
3881    Closes: https://github.com/tukaani-project/xz/pull/145
3882
3883 po/LINGUAS |    1 +
3884 po/ka.po   | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3885 2 files changed, 1187 insertions(+)
3886
3887commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e
3888Author: Lasse Collin <lasse.collin@tukaani.org>
3889Date:   2024-10-30 20:50:20 +0200
3890
3891    xz: Make one string simpler for translators
3892
3893    Leading spaces in the string can get miscounted by translators.
3894
3895 src/xz/list.c | 4 ++--
3896 1 file changed, 2 insertions(+), 2 deletions(-)
3897
3898commit 3fcf547e926f6c0414b23459f7b43164f7e8c378
3899Author: Lasse Collin <lasse.collin@tukaani.org>
3900Date:   2024-12-17 10:26:10 +0200
3901
3902    lzmainfo: Sync the translatable strings with xz
3903
3904 src/lzmainfo/lzmainfo.c | 20 ++++++++++++--------
3905 1 file changed, 12 insertions(+), 8 deletions(-)
3906
3907commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229
3908Author: Lasse Collin <lasse.collin@tukaani.org>
3909Date:   2024-12-17 10:26:10 +0200
3910
3911    xz: Use automatic word wrapping for help texts
3912
3913    --long-help is now one line longer because --lzma1 is now on its
3914    own line.
3915
3916 CMakeLists.txt     |   2 +
3917 src/xz/Makefile.am |   3 +-
3918 src/xz/message.c   | 482 ++++++++++++++++++++++++++++++++++-------------------
3919 3 files changed, 313 insertions(+), 174 deletions(-)
3920
3921commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d
3922Author: Lasse Collin <lasse.collin@tukaani.org>
3923Date:   2024-12-16 18:46:45 +0200
3924
3925    po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS
3926
3927    The text was copied from tuklib_gettext.h.
3928
3929    Also rearrange the --keyword options to be last on the line.
3930
3931 po/Makevars | 2 +-
3932 1 file changed, 1 insertion(+), 1 deletion(-)
3933
3934commit ca529c3f41a4a19a59e2e252e6dd9255f130c634
3935Author: Lasse Collin <lasse.collin@tukaani.org>
3936Date:   2024-12-16 18:43:52 +0200
3937
3938    Add tuklib_mbstr_wrap for automatic word wrapping
3939
3940    Automatic word wrapping makes translators' work easier and reduces
3941    errors like misaligned columns or overlong lines. Right-to-left
3942    languages and languages that don't use spaces between words will
3943    still need extra effort. (xz hasn't been translated to any RTL
3944    language so far.)
3945
3946 cmake/tuklib_mbstr.cmake       |   4 +
3947 m4/tuklib_mbstr.m4             |   2 +-
3948 src/Makefile.am                |   2 +
3949 src/common/tuklib_gettext.h    |  11 ++
3950 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++
3951 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++
3952 6 files changed, 506 insertions(+), 1 deletion(-)
3953
3954commit 314b83cebad0244a0015a8abc6d8d086b581c215
3955Author: Lasse Collin <lasse.collin@tukaani.org>
3956Date:   2024-12-17 17:57:18 +0200
3957
3958    Build: Sort filenames to ASCII order in Makefile.am
3959
3960 src/Makefile.am | 2 +-
3961 1 file changed, 1 insertion(+), 1 deletion(-)
3962
3963commit df399c52554dfdf60259ca2cce97adbcfff39dc0
3964Author: Lasse Collin <lasse.collin@tukaani.org>
3965Date:   2024-10-21 18:51:24 +0300
3966
3967    tuklib_mbstr_width: Add tuklib_mbstr_width_mem()
3968
3969    It's a new function split from tuklib_mbstr_width().
3970    It's useful with partial strings that aren't terminated with \0.
3971
3972 src/common/tuklib_mbstr.h       | 17 +++++++++++++++++
3973 src/common/tuklib_mbstr_width.c |  8 ++++++++
3974 2 files changed, 25 insertions(+)
3975
3976commit 51081efae4c52c226e96da95313916eba99f885f
3977Author: Lasse Collin <lasse.collin@tukaani.org>
3978Date:   2024-12-16 20:08:27 +0200
3979
3980    tuklib_mbstr_width: Update a comment about shift states
3981
3982 src/common/tuklib_mbstr_width.c | 11 ++++++++---
3983 1 file changed, 8 insertions(+), 3 deletions(-)
3984
3985commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b
3986Author: Lasse Collin <lasse.collin@tukaani.org>
3987Date:   2024-10-21 18:47:56 +0300
3988
3989    tuklib_mbstr_width: Don't mention shift states in the API docs
3990
3991    It is assumed that this code won't be used with charsets that use
3992    locking shift states.
3993
3994 src/common/tuklib_mbstr.h | 8 ++------
3995 1 file changed, 2 insertions(+), 6 deletions(-)
3996
3997commit 3c16105936320e4095dbe84fa9a33a4a6d46a597
3998Author: Lasse Collin <lasse.collin@tukaani.org>
3999Date:   2024-10-21 18:41:41 +0300
4000
4001    tuklib_mbstr_width: Use stricter return value checking
4002
4003    This should make no difference in practice (at least if mbrtowc()
4004    isn't broken).
4005
4006 src/common/tuklib_mbstr_width.c | 2 +-
4007 1 file changed, 1 insertion(+), 1 deletion(-)
4008
4009commit b797c44c42ea54fe1c52722a2fca0c9618575598
4010Author: Lasse Collin <lasse.collin@tukaani.org>
4011Date:   2024-12-16 20:06:07 +0200
4012
4013    tuklib_mbstr_width: Change the behavior when wcwidth() is not available
4014
4015    If wcwidth() isn't available (Windows), previously it was assumed
4016    that one byte == one column in the terminal. Now it is assumed that
4017    one multibyte character == one column. This works better with UTF-8.
4018    Languages that only use single-width characters without any combining
4019    characters should work correctly with this.
4020
4021    In xz, none of po/*.po contain combining characters and only ko.po,
4022    zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only"
4023    those three translations in xz are broken on Windows with the
4024    UTF-8 code page. Broken means that column headings in xz -lvv and
4025    (only in the master branch) strings in --long-help are misaligned,
4026    so it's not a huge problem. I don't know if those three languages
4027    displayed perfectly before the UTF-8 change because I hadn't tested
4028    translations with native Windows builds before.
4029
4030    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
4031
4032 src/common/tuklib_mbstr_width.c | 13 +++++++++++--
4033 1 file changed, 11 insertions(+), 2 deletions(-)
4034
4035commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db
4036Author: Lasse Collin <lasse.collin@tukaani.org>
4037Date:   2024-12-18 14:23:13 +0200
4038
4039    xzdec: Use setlocale() via tuklib_gettext_setlocale()
4040
4041    xzdec isn't translated and didn't have locale-specific behavior
4042    in the past. On Windows with UTF-8 in the application manifest,
4043    setting the locale makes a difference though:
4044
4045      - Without any setlocale() call, non-ASCII filenames don't display
4046        properly in Command Prompt unless one first uses "chcp 65001"
4047        to set the console code page to UTF-8.
4048
4049      - setlocale(LC_ALL, "") is enough to make non-ASCII filenames
4050        print correctly in Command Prompt without using "chcp 65001",
4051        assuming that the non-UTF-8 code page (like 850) supports
4052        those non-ASCII characters.
4053
4054      - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and
4055        such functions use an UTF-8 locale instead of a legacy code page.
4056        The tuklib_gettext_setlocale() macro takes care of this (without
4057        enabling any translations).
4058
4059    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
4060
4061 src/xzdec/xzdec.c | 12 ++++++++++++
4062 1 file changed, 12 insertions(+)
4063
4064commit 0d0b574cc45045d6150d397776340c068df59e2a
4065Author: Lasse Collin <lasse.collin@tukaani.org>
4066Date:   2024-12-17 14:59:37 +0200
4067
4068    Windows: Use UTF-8 locale when active code page is UTF-8
4069
4070    XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611.
4071    This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus
4072    non-ASCII characters from translations became mojibake.
4073
4074    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
4075
4076 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++--
4077 1 file changed, 30 insertions(+), 2 deletions(-)
4078
4079commit 20dfca8171dad4c64785ac61d5b68972c444877b
4080Author: Lasse Collin <lasse.collin@tukaani.org>
4081Date:   2024-12-17 15:01:29 +0200
4082
4083    Windows: Document the need for setlocale(LC_ALL, ".UTF8")
4084
4085    Also warn about unpaired surrogates and (somewhat UTF-8-specific)
4086    MAX_PATH issue in FindFirstFileA().
4087
4088    Fixes: 46ee0061629fb075d61d83839e14dd193337af59
4089
4090 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++-
4091 1 file changed, 27 insertions(+), 1 deletion(-)
4092
4093commit 4e936f234056e5831013ed922145b666b04bb1e3
4094Author: Lasse Collin <lasse.collin@tukaani.org>
4095Date:   2024-12-18 14:12:22 +0200
4096
4097    xzdec: Call tuklib_progname_init() early enough
4098
4099    If the early pledge() call on OpenBSD fails, it calls my_errorf()
4100    which requires the "progname" variable.
4101
4102    Fixes: d74fb5f060b76db709b50f5fd37490394e52f975
4103
4104 src/xzdec/xzdec.c | 6 +++---
4105 1 file changed, 3 insertions(+), 3 deletions(-)
4106
4107commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8
4108Author: Lasse Collin <lasse.collin@tukaani.org>
4109Date:   2024-12-15 19:08:32 +0200
4110
4111    CMake: Bump maximum policy version to 3.31
4112
4113    With CMake 3.31, there were a few warnings from
4114    CMP0177 "install() DESTINATION paths are normalized".
4115    These occurred because the install(FILES) command in
4116    my_install_man_lang() is called with a DESTINATION path
4117    that contains two consecutive slashes, for example,
4118    "share/man//man1". Such a path is for the English man pages.
4119    With translated man pages, the language code goes between
4120    the slashes. The warning was probably triggered because the
4121    extra slash gets removed by the normalization.
4122
4123 CMakeLists.txt | 2 +-
4124 1 file changed, 1 insertion(+), 1 deletion(-)
4125
4126commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18
4127Author: Lasse Collin <lasse.collin@tukaani.org>
4128Date:   2024-12-15 18:35:27 +0200
4129
4130    Update THANKS
4131
4132 THANKS | 1 +
4133 1 file changed, 1 insertion(+)
4134
4135commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27
4136Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com>
4137Date:   2024-12-08 18:24:29 +0100
4138
4139    liblzma: Fix incorrect macro name in a comment
4140
4141    Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559
4142    Closes: https://github.com/tukaani-project/xz/pull/155
4143
4144 src/liblzma/api/lzma/lzma12.h | 2 +-
4145 1 file changed, 1 insertion(+), 1 deletion(-)
4146
4147commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a
4148Author: Lasse Collin <lasse.collin@tukaani.org>
4149Date:   2024-12-17 10:36:43 +0200
4150
4151    license-check.sh: Add an exception for doc/SHA256SUMS
4152
4153    Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
4154
4155 build-aux/license-check.sh | 1 +
4156 1 file changed, 1 insertion(+)
4157
4158commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a
4159Author: Lasse Collin <lasse.collin@tukaani.org>
4160Date:   2024-12-01 21:38:17 +0200
4161
4162    doc/SHA256SUMS: Add the list of SHA-256 hashes of release files
4163
4164    The release files are signed but verifying the signatures cannot
4165    catch certain types of attacks:
4166
4167    1. A malicious maintainer could make more than one variant of
4168       a package. One could be for general distribution. Another
4169       with malicious content could be targeted to specific users,
4170       for example, distributing the malicious version on a mirror
4171       controlled by the attacker.
4172
4173    2. If the signing key of an honest maintainer was compromised
4174       without being detected, a similar situation as described
4175       above could occur.
4176
4177    SHA256SUMS could be put on the project website but having it in
4178    the Git repository makes it obvious that old lines aren't modified
4179    when the file is updated.
4180
4181    Hashes of uncompressed files are included too. This way tarballs
4182    can be recompressed and the hashes can still be verified.
4183
4184 .gitattributes |   1 +
4185 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4186 2 files changed, 219 insertions(+)
4187
4188commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42
4189Author: Lasse Collin <lasse.collin@tukaani.org>
4190Date:   2024-11-30 12:05:59 +0200
4191
4192    Docs: Remove .github/SECURITY.md
4193
4194    One of the reasons to have this file in the xz repository was to
4195    show vulnerability reporting info in the Security section on GitHub.
4196    On 2024-11-25, I added SECURITY.md to the tukaani-project organization
4197    on GitHub:
4198
4199        https://github.com/tukaani-project/.github/blob/main/SECURITY.md
4200
4201    GitHub shows that file in all projects in the organization unless
4202    overridden by a project-specific SECURITY.md. Thus, removing
4203    the file from the xz repo makes GitHub show the organization-wide
4204    text instead.
4205
4206    Maintaining a single copy for the whole GitHub organization makes
4207    things simpler. It's also nicer to have fewer GitHub-specific files
4208    in the xz repo. Information how to report bugs (including security
4209    issues) is available in README and on the home page too.
4210
4211    The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the
4212    xz repository. There was a suggestion to move the file to the top-level
4213    directory where Scorecard should find it. However, Scorecard does find
4214    the organization-wide SECURITY.md. Thus, the file isn't needed in the
4215    xz repository to score points in the Scorecard game:
4216
4217        https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz
4218
4219    Closes: https://github.com/tukaani-project/xz/issues/148
4220    Closes: https://github.com/tukaani-project/xz/pull/149
4221
4222 .github/SECURITY.md | 14 --------------
4223 1 file changed, 14 deletions(-)
4224
4225commit b36177273602ebc83e9cc58517f63a7b6af33f70
4226Author: Lasse Collin <lasse.collin@tukaani.org>
4227Date:   2024-11-30 10:27:14 +0200
4228
4229    Translations: Update the Chinese (traditional) translation
4230
4231 po/zh_TW.po | 201 +++++++++++++++++++++++++-----------------------------------
4232 1 file changed, 84 insertions(+), 117 deletions(-)
4233
4234commit c15115f7ede492f20c91b08ba485f9426f60233f
4235Author: Lasse Collin <lasse.collin@tukaani.org>
4236Date:   2024-10-30 19:54:34 +0200
4237
4238    liblzma: Optimize the loop conditions in BCJ filters
4239
4240    Compilers cannot optimize the addition "i + 4" away since theoretically
4241    it could overflow.
4242
4243 src/liblzma/simple/arm.c      | 4 +++-
4244 src/liblzma/simple/arm64.c    | 4 +++-
4245 src/liblzma/simple/armthumb.c | 7 ++++++-
4246 src/liblzma/simple/ia64.c     | 4 +++-
4247 src/liblzma/simple/powerpc.c  | 4 +++-
4248 src/liblzma/simple/sparc.c    | 5 +++--
4249 6 files changed, 21 insertions(+), 7 deletions(-)
4250
4251commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5
4252Author: Lasse Collin <lasse.collin@tukaani.org>
4253Date:   2024-11-25 16:26:54 +0200
4254
4255    Update THANKS
4256
4257 THANKS | 1 +
4258 1 file changed, 1 insertion(+)
4259
4260commit 48ff3f06521ca326996ab9a04d1b342098960427
4261Author: Mark Wielaard <mark@klomp.org>
4262Date:   2024-11-25 12:28:44 +0200
4263
4264    xz: Landlock: Fix a file descriptor leak
4265
4266 src/xz/sandbox.c | 1 +
4267 1 file changed, 1 insertion(+)
4268
4269commit dbca3d078ec581600600abebbb18769d3d713914
4270Author: Sam James <sam@gentoo.org>
4271Date:   2024-10-02 03:04:03 +0100
4272
4273    CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions
4274
4275    Checked the changes and they're all innocuous. This should hopefully
4276    fix the "externally managed" pip error in these jobs that started
4277    recently.
4278
4279 .github/workflows/freebsd.yml | 2 +-
4280 .github/workflows/netbsd.yml  | 2 +-
4281 .github/workflows/openbsd.yml | 2 +-
4282 .github/workflows/solaris.yml | 2 +-
4283 4 files changed, 4 insertions(+), 4 deletions(-)
4284
4285commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f
4286Author: Lasse Collin <lasse.collin@tukaani.org>
4287Date:   2024-10-01 12:17:39 +0300
4288
4289    Add NEWS for 5.6.3
4290
4291 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4292 1 file changed, 125 insertions(+)
4293
4294commit be4bf94446b6286a5dffdde85fc1d21448f4edff
4295Author: Lasse Collin <lasse.collin@tukaani.org>
4296Date:   2024-10-01 14:49:41 +0300
4297
4298    cmake/tuklib_large_file_support.cmake: Add a missing include
4299
4300    v5.2 didn't build with CMake. Other branches had
4301    include(CMakePushCheckState) in top-level CMakeLists.txt
4302    which made the build work.
4303
4304    Fixes: 597f49b61475438a43a417236989b2acc968a686
4305
4306 cmake/tuklib_large_file_support.cmake | 1 +
4307 1 file changed, 1 insertion(+)
4308
4309commit 1ebbe915d4e0d877154261b5f8103719a6722975
4310Author: Lasse Collin <lasse.collin@tukaani.org>
4311Date:   2024-10-01 12:10:23 +0300
4312
4313    Update THANKS
4314
4315 THANKS | 2 ++
4316 1 file changed, 2 insertions(+)
4317
4318commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0
4319Author: Lasse Collin <lasse.collin@tukaani.org>
4320Date:   2024-10-01 12:10:23 +0300
4321
4322    Tests/Windows: Add the application manifest to the test programs
4323
4324    This ensures that the test programs get executed the same way as
4325    the binaries that are installed.
4326
4327 CMakeLists.txt        | 14 ++++++++++----
4328 tests/Makefile.am     | 10 ++++++++++
4329 tests/tests.cmake     | 33 ++++++++++++++++++++++++++++++++-
4330 tests/tests_w32res.rc | 18 ++++++++++++++++++
4331 4 files changed, 70 insertions(+), 5 deletions(-)
4332
4333commit 7ddf2273e0e4654582ee65db19d44431bfdb5791
4334Author: Lasse Collin <lasse.collin@tukaani.org>
4335Date:   2024-10-01 12:10:23 +0300
4336
4337    license-check.sh: Add an exception for w32_application.manifest
4338
4339    The file gets embedded as is into executables, thus it cannot
4340    hold a license identifier.
4341
4342 build-aux/license-check.sh | 1 +
4343 1 file changed, 1 insertion(+)
4344
4345commit 46ee0061629fb075d61d83839e14dd193337af59
4346Author: Lasse Collin <lasse.collin@tukaani.org>
4347Date:   2024-10-01 12:10:23 +0300
4348
4349    Windows: Embed an application manifest in the EXE files
4350
4351    IMPORTANT: This includes a security fix to command line tool
4352               argument handling.
4353
4354    Some toolchains embed an application manifest by default to declare
4355    UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11
4356    to let the app access features newer than those of Vista.
4357
4358    We want all the above but also two more things:
4359
4360      - Declare that the app is long path aware to support paths longer
4361        than 259 characters (this may also require a registry change).
4362
4363      - Force the code page to UTF-8. This allows the command line tools
4364        to access files whose names contain characters that don't exist
4365        in the current legacy code page (except unpaired surrogates).
4366        The UTF-8 code page also fixes security issues in command line
4367        argument handling which can be exploited with malicious filenames.
4368        See the new file w32_application.manifest.comments.txt.
4369
4370    Thanks to Orange Tsai and splitline from DEVCORE Research Team
4371    for discovering this issue.
4372
4373    Thanks to Vijay Sarvepalli for reporting the issue to me.
4374
4375    Thanks to Kelvin Lee for testing with MSVC and helping with
4376    the required build system fixes.
4377
4378 CMakeLists.txt                                   |  18 +++
4379 src/Makefile.am                                  |   4 +-
4380 src/common/common_w32res.rc                      |   5 +
4381 src/common/w32_application.manifest              |  28 ++++
4382 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++
4383 5 files changed, 232 insertions(+), 1 deletion(-)
4384
4385commit dad153091552b52a41b95ec4981c6951f1cae487
4386Author: Lasse Collin <lasse.collin@tukaani.org>
4387Date:   2024-09-29 14:46:52 +0300
4388
4389    Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2
4390
4391    Now the information in the "Details" tab in the file properties
4392    dialog matches the naming convention of Cygwin and MSYS2. This
4393    is only a cosmetic change.
4394
4395 src/liblzma/liblzma_w32res.rc | 10 +++++++++-
4396 1 file changed, 9 insertions(+), 1 deletion(-)
4397
4398commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904
4399Author: Lasse Collin <lasse.collin@tukaani.org>
4400Date:   2024-09-25 15:47:55 +0300
4401
4402    common_w32res.rc: White space edits
4403
4404    LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line
4405    between them.
4406
4407 src/common/common_w32res.rc | 15 ++++++++-------
4408 1 file changed, 8 insertions(+), 7 deletions(-)
4409
4410commit c3b9dad07d3fd9319f88386b7095019bcea45ce1
4411Author: Lasse Collin <lasse.collin@tukaani.org>
4412Date:   2024-09-28 20:09:50 +0300
4413
4414    CMake: Add the resource files to the Cygwin and MSYS2 builds
4415
4416    Autotools-based build has always done this so this is for consistency.
4417
4418    However, the CMake build won't create the DEF file when building
4419    for Cygwin or MSYS2 because in that context it should be useless.
4420    (If Cygwin or MSYS2 is used to host building of normal Windows
4421    binaries then the DEF file is still created.)
4422
4423 CMakeLists.txt | 16 ++++++++++------
4424 1 file changed, 10 insertions(+), 6 deletions(-)
4425
4426commit da4f275bd1c18b897e5c2dd0043546de3accce0a
4427Author: Lasse Collin <lasse.collin@tukaani.org>
4428Date:   2024-09-28 15:19:14 +0300
4429
4430    CMake: Fix Windows resource file dependencies
4431
4432    If common_w32res.rc is modified, the resource files need to be rebuilt.
4433    In contrast, the liblzma*.map files truly are link dependencies.
4434
4435 CMakeLists.txt | 17 +++++++++--------
4436 1 file changed, 9 insertions(+), 8 deletions(-)
4437
4438commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47
4439Author: Lasse Collin <lasse.collin@tukaani.org>
4440Date:   2024-09-29 01:20:03 +0300
4441
4442    CMake: Checking for CYGWIN covers MSYS2 too
4443
4444    On MSYS2, both CYGWIN and MSYS are set.
4445
4446 CMakeLists.txt | 2 +-
4447 1 file changed, 1 insertion(+), 1 deletion(-)
4448
4449commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521
4450Author: Lasse Collin <lasse.collin@tukaani.org>
4451Date:   2024-09-28 09:37:30 +0300
4452
4453    Translations: Add the SPDX license identifier to pt_BR.po
4454
4455 po/pt_BR.po | 2 ++
4456 1 file changed, 2 insertions(+)
4457
4458commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb
4459Author: Lasse Collin <lasse.collin@tukaani.org>
4460Date:   2024-09-25 16:41:37 +0300
4461
4462    Windows/CMake: Use the correct resource file for lzmadec.exe
4463
4464    CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec.
4465
4466    Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe
4467
4468 CMakeLists.txt | 2 +-
4469 1 file changed, 1 insertion(+), 1 deletion(-)
4470
4471commit b834ae5f80911a3819d6cdb484f61b257174c544
4472Author: Lasse Collin <lasse.collin@tukaani.org>
4473Date:   2024-09-25 21:29:59 +0300
4474
4475    Translations: Update the Brazilian Portuguese translation
4476
4477 po/pt_BR.po | 144 ++++++++++++++++++++++--------------------------------------
4478 1 file changed, 53 insertions(+), 91 deletions(-)
4479
4480commit eceb023d4c129fd63ee881a2d8696eaf52ad1532
4481Author: Lasse Collin <lasse.collin@tukaani.org>
4482Date:   2024-09-17 01:21:15 +0300
4483
4484    Update THANKS
4485
4486 THANKS | 1 +
4487 1 file changed, 1 insertion(+)
4488
4489commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f
4490Author: Tobias Stoeckmann <tobias@stoeckmann.org>
4491Date:   2024-09-16 23:19:46 +0200
4492
4493    lzmainfo: Avoid integer overflow
4494
4495    The MB output can overflow with huge numbers. Most likely these are
4496    invalid .lzma files anyway, but let's avoid garbage output.
4497
4498    lzmadec was adapted from LZMA Utils. The original code with this bug
4499    was written in 2005, over 19 years ago.
4500
4501    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
4502    Closes: https://github.com/tukaani-project/xz/pull/144
4503
4504 src/lzmainfo/lzmainfo.c | 5 ++---
4505 1 file changed, 2 insertions(+), 3 deletions(-)
4506
4507commit 78355aebb7fb654302e5e33692ba109909dacaff
4508Author: Tobias Stoeckmann <tobias@stoeckmann.org>
4509Date:   2024-09-16 22:04:40 +0200
4510
4511    xzdec: Remove unused short option -M
4512
4513    "xzdec -M123" exited with exit status 1 without printing
4514    any messages. The "M:" entry should have been removed when
4515    the memory usage limiter support was removed from xzdec.
4516
4517    Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae
4518    Closes: https://github.com/tukaani-project/xz/pull/143
4519    [ Lasse: Commit message edits ]
4520
4521 src/xzdec/xzdec.c | 2 +-
4522 1 file changed, 1 insertion(+), 1 deletion(-)
4523
4524commit e5758db7bd75587a2499e0771907521a4aa86908
4525Author: Lasse Collin <lasse.collin@tukaani.org>
4526Date:   2024-09-10 13:54:47 +0300
4527
4528    Update THANKS
4529
4530 THANKS | 1 +
4531 1 file changed, 1 insertion(+)
4532
4533commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c
4534Author: Firas Khalil Khana <firasuke@gmail.com>
4535Date:   2024-09-10 12:30:32 +0300
4536
4537    Build: Fix a typo in autogen.sh
4538
4539    Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310
4540    Closes: https://github.com/tukaani-project/xz/pull/141
4541
4542 autogen.sh | 2 +-
4543 1 file changed, 1 insertion(+), 1 deletion(-)
4544
4545commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2
4546Author: Lasse Collin <lasse.collin@tukaani.org>
4547Date:   2024-09-02 20:08:40 +0300
4548
4549    Translations: Update Chinese (simplified) translation
4550
4551    Differences to the zh_CN.po file from the Translation Project:
4552
4553      - Two uses of \v were fixed.
4554
4555      - Missing "OPTS" translation in --riscv[=OPTS] was copied from
4556        previous lines.
4557
4558      - "make update-po" was run to remove line numbers from comments.
4559
4560 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------
4561 1 file changed, 40 insertions(+), 62 deletions(-)
4562
4563commit 2230692aa1bcebb586100183831e3daf1714d60a
4564Author: Lasse Collin <lasse.collin@tukaani.org>
4565Date:   2024-09-02 19:40:50 +0300
4566
4567    Translations: Update the Catalan translation
4568
4569    Differences to the ca.po file from the Translation Project:
4570
4571      - An overlong line translating --filters-help was wrapped.
4572
4573      - "make update-po" was used to remove line numbers from the comments
4574        to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637
4575        and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP
4576        is older than these commits.
4577
4578 po/ca.po | 171 ++++++++++++++++++++++++++-------------------------------------
4579 1 file changed, 69 insertions(+), 102 deletions(-)
4580
4581commit 3e7723ce26f74c71919984a6180504b4548cbb7e
4582Author: Lasse Collin <lasse.collin@tukaani.org>
4583Date:   2024-08-22 14:06:16 +0300
4584
4585    Update THANKS
4586
4587 THANKS | 1 +
4588 1 file changed, 1 insertion(+)
4589
4590commit d3e0e679b2b8b428598bb8ba56a17715190814db
4591Author: Lasse Collin <lasse.collin@tukaani.org>
4592Date:   2024-08-22 14:06:16 +0300
4593
4594    CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF
4595
4596    Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
4597    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
4598    Closes: https://github.com/tukaani-project/xz/pull/134
4599
4600 CMakeLists.txt | 12 ++++++++++--
4601 1 file changed, 10 insertions(+), 2 deletions(-)
4602
4603commit acdf21033abe347d9a279e9fe757f90ed16c1dbb
4604Author: Lasse Collin <lasse.collin@tukaani.org>
4605Date:   2024-08-22 14:06:16 +0300
4606
4607    CMake: Fix the build when XZ_TOOL_LZMADEC=OFF
4608
4609    Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com>
4610    Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
4611    Fixes: https://github.com/tukaani-project/xz/pull/134
4612
4613 CMakeLists.txt | 6 ++++--
4614 1 file changed, 4 insertions(+), 2 deletions(-)
4615
4616commit 5e375987509fab484b7bef0b90be92f241c58c91
4617Author: Lasse Collin <lasse.collin@tukaani.org>
4618Date:   2024-08-22 11:01:07 +0300
4619
4620    Update THANKS
4621
4622 THANKS | 1 +
4623 1 file changed, 1 insertion(+)
4624
4625commit 6cd7c8607843c337edfe2c472aa316602a393754
4626Author: Yifeng Li <tomli@tomli.me>
4627Date:   2024-08-22 02:18:49 +0000
4628
4629    liblzma: Fix x86-64 movzw compatibility in range_decoder.h
4630
4631    Support for instruction "movzw" without suffix in "GNU as" was
4632    added in commit [1] and stabilized in binutils 2.27, released
4633    in August 2016. Earlier systems don't accept this instruction
4634    without a suffix, making range_decoder.h's inline assembly
4635    unable to build on old systems such as Ubuntu 16.04, creating
4636    error messages like:
4637
4638        lzma_decoder.c: Assembler messages:
4639        lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi'
4640        lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi'
4641        lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx'
4642        lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi'
4643
4644    Change "movzw" to "movzwl" for compatibility.
4645
4646    [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2
4647
4648    Suggested-by: Lasse Collin <lasse.collin@tukaani.org>
4649    Tested-by: Yifeng Li <tomli@tomli.me>
4650    Signed-off-by: Yifeng Li <tomli@tomli.me>
4651    Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158
4652    Fixes: https://github.com/tukaani-project/xz/issues/121
4653    Closes: https://github.com/tukaani-project/xz/pull/136
4654
4655 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------
4656 1 file changed, 12 insertions(+), 12 deletions(-)
4657
4658commit bf901dee5d4c46609645e50311c0cb2dfdcf9738
4659Author: Lasse Collin <lasse.collin@tukaani.org>
4660Date:   2024-07-19 20:02:43 +0300
4661
4662    Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6
4663
4664 CMakeLists.txt |  2 +-
4665 configure.ac   | 17 +++++++++++------
4666 2 files changed, 12 insertions(+), 7 deletions(-)
4667
4668commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd
4669Author: Lasse Collin <lasse.collin@tukaani.org>
4670Date:   2024-07-19 19:42:26 +0300
4671
4672    Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD"
4673
4674    This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599.
4675
4676    OpenBSD 7.6 will support elf_aux_info(3), and the detection code used
4677    on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop
4678    the OpenBSD-specific sysctl() method.
4679
4680    Thanks to Christian Weisgerber.
4681
4682 CMakeLists.txt                  |  6 ------
4683 configure.ac                    |  9 ---------
4684 src/liblzma/check/crc32_arm64.h | 15 ---------------
4685 src/liblzma/check/crc_common.h  |  1 -
4686 4 files changed, 31 deletions(-)
4687
4688commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede
4689Author: Lasse Collin <lasse.collin@tukaani.org>
4690Date:   2024-07-13 22:10:37 +0300
4691
4692    liblzma: Tweak a comment
4693
4694 src/liblzma/simple/arm64.c | 4 ++--
4695 1 file changed, 2 insertions(+), 2 deletions(-)
4696
4697commit 6408edac5529d6ec0abf52794074f229c8362303
4698Author: Lasse Collin <lasse.collin@tukaani.org>
4699Date:   2024-07-11 22:17:56 +0300
4700
4701    CMake: Bump maximum policy version to 3.30
4702
4703 CMakeLists.txt | 2 +-
4704 1 file changed, 1 insertion(+), 1 deletion(-)
4705
4706commit 9231c39ffb518196d6664a86e5325e744621a21b
4707Author: Lasse Collin <lasse.collin@tukaani.org>
4708Date:   2024-07-06 15:13:19 +0300
4709
4710    CMake: Require CMake 3.20 or later
4711
4712    This allows a few cleanups.
4713
4714 CMakeLists.txt | 78 ++++++++++++++++++++--------------------------------------
4715 1 file changed, 27 insertions(+), 51 deletions(-)
4716
4717commit 028185dd4889e3d6235ff13560160ebca6985021
4718Author: Lasse Collin <lasse.collin@tukaani.org>
4719Date:   2024-07-09 14:27:51 +0300
4720
4721    Update THANKS
4722
4723 THANKS | 1 +
4724 1 file changed, 1 insertion(+)
4725
4726commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747
4727Author: Lasse Collin <lasse.collin@tukaani.org>
4728Date:   2024-07-06 14:04:48 +0300
4729
4730    xz: Remove the TODO comment about --recursive
4731
4732    It won't be implemented. find + xargs is more flexible, for example,
4733    it allows compressing small files in parallel. An example for that
4734    has been included in the xz man page since 2010.
4735
4736 src/xz/args.c | 1 -
4737 1 file changed, 1 deletion(-)
4738
4739commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8
4740Author: Lasse Collin <lasse.collin@tukaani.org>
4741Date:   2024-07-06 14:04:16 +0300
4742
4743    Document --disable-loongarch-crc32 in INSTALL
4744
4745 INSTALL | 8 ++++++++
4746 1 file changed, 8 insertions(+)
4747
4748commit b3e53122f42796aaebd767bab920cf7bedf69966
4749Author: Lasse Collin <lasse.collin@tukaani.org>
4750Date:   2024-07-03 20:45:48 +0300
4751
4752    CMake: Link xz against Threads::Threads if using pthreads
4753
4754    The liblzma target was recently changed to link against Threads::Threads
4755    with the PRIVATE keyword. I had forgotten that xz itself depends on
4756    pthreads too due to pthread_sigmask(). Thus, the build broke when
4757    building shared liblzma and pthread_sigmask() wasn't in libc.
4758
4759    Thanks to Peter Seiderer for the bug report.
4760
4761    Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
4762    Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994
4763
4764 CMakeLists.txt | 13 +++++++++++++
4765 1 file changed, 13 insertions(+)
4766
4767commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374
4768Author: Lasse Collin <lasse.collin@tukaani.org>
4769Date:   2024-07-02 22:49:33 +0300
4770
4771    Update THANKS
4772
4773 THANKS | 1 +
4774 1 file changed, 1 insertion(+)
4775
4776commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a
4777Author: Lasse Collin <lasse.collin@tukaani.org>
4778Date:   2024-07-02 20:23:35 +0300
4779
4780    CMake: Improve NLS error messages
4781
4782 CMakeLists.txt | 11 +++++++----
4783 1 file changed, 7 insertions(+), 4 deletions(-)
4784
4785commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909
4786Author: Lasse Collin <lasse.collin@tukaani.org>
4787Date:   2024-07-02 20:19:47 +0300
4788
4789    CMake: Update the comment at the top of CMakeLists.txt
4790
4791    While po/*.gmo files won't be used from the release tarball,
4792    the generated translated man pages will be used still. Those
4793    are text files and po4a has slightly more dependencies than
4794    gettext tools so installing po4a might be a bit more challenging
4795    in some situations.
4796
4797 CMakeLists.txt | 17 +++++++----------
4798 1 file changed, 7 insertions(+), 10 deletions(-)
4799
4800commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507
4801Author: Lasse Collin <lasse.collin@tukaani.org>
4802Date:   2024-07-02 20:12:40 +0300
4803
4804    CMake: Drop support for pre-generated po/*.gmo files
4805
4806    When a release tarball is created using Autotools, the tarball includes
4807    po/*.gmo files which are binary files generated from po/*.po. Other
4808    tarball creation methods don't and won't create the .gmo files.
4809
4810    It feels clearer if CMake will never install pre-generated binary files
4811    from the source package. If people are able to install CMake, they
4812    likely are able to install gettext tools as well (assuming they want
4813    translations).
4814
4815 CMakeLists.txt | 66 +++++++++++++++++++---------------------------------------
4816 1 file changed, 21 insertions(+), 45 deletions(-)
4817
4818commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a
4819Author: Lasse Collin <lasse.collin@tukaani.org>
4820Date:   2024-07-02 19:14:50 +0300
4821
4822    CMake: Make XZ_NLS handling more robust
4823
4824    If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version
4825    wasn't at least 3.20, the configuration would fail in a cryptic way.
4826
4827    If XZ_NLS is enabled, require that CMake is new enough and that either
4828    gettext tools or pre-generated .gmo files are available. Otherwise fail
4829    the configuration. Previously missing gettext tools and .gmo files would
4830    only result in a warning.
4831
4832    Missing man page translations are still only a warning.
4833
4834    Thanks to Peter Seiderer for the bug report.
4835
4836    Fixes: https://github.com/tukaani-project/xz/issues/129
4837    Closes: https://github.com/tukaani-project/xz/pull/130
4838
4839 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++--------------------------
4840 1 file changed, 46 insertions(+), 36 deletions(-)
4841
4842commit ec6157570ea8a8e38158894e530d35416ff6a0f8
4843Author: Lasse Collin <lasse.collin@tukaani.org>
4844Date:   2024-07-02 19:39:05 +0300
4845
4846    CI: Add gettext as a dependency to CMake builds
4847
4848 .github/workflows/ci.yml | 4 ++--
4849 1 file changed, 2 insertions(+), 2 deletions(-)
4850
4851commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac
4852Author: Lasse Collin <lasse.collin@tukaani.org>
4853Date:   2024-07-02 18:43:56 +0300
4854
4855    CMake: Fix ENABLE_NLS comment too
4856
4857    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
4858
4859 CMakeLists.txt | 2 +-
4860 1 file changed, 1 insertion(+), 1 deletion(-)
4861
4862commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb
4863Author: Lasse Collin <lasse.collin@tukaani.org>
4864Date:   2024-07-02 18:02:50 +0300
4865
4866    CMake: The compile definition is ENABLE_NLS, not XZ_NLS
4867
4868    The CMake variables were renamed and accidentally also
4869    the compile definition was renamed. As a result, translation
4870    support wasn't actually enabled in the executables.
4871
4872    Fixes: 29f77c7b707f2458fb047e77497354b195e05b14
4873
4874 CMakeLists.txt | 4 ++--
4875 1 file changed, 2 insertions(+), 2 deletions(-)
4876
4877commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b
4878Author: Lasse Collin <lasse.collin@tukaani.org>
4879Date:   2024-07-01 17:33:20 +0300
4880
4881    Update AUTHORS and THANKS
4882
4883 AUTHORS | 2 +-
4884 THANKS  | 1 +
4885 2 files changed, 2 insertions(+), 1 deletion(-)
4886
4887commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e
4888Author: Xi Ruoyao <xry111@xry111.site>
4889Date:   2024-06-28 13:36:43 +0300
4890
4891    liblzma: Speed up CRC32 calculation on 64-bit LoongArch
4892
4893    The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32
4894    result for 1/2/4/8 bytes in a single operation. Using these is much
4895    faster compared to the generic method.
4896
4897    Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because
4898    the LoongArch specification says that CRC32 instructions shall be
4899    implemented for 64-bit processors. Optimized CRC32 isn't enabled for
4900    32-bit LoongArch processors because not enough information is available
4901    about them.
4902
4903    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
4904
4905    Closes: https://github.com/tukaani-project/xz/pull/86
4906
4907 CMakeLists.txt                      | 25 ++++++++++++++
4908 configure.ac                        | 40 +++++++++++++++++++++++
4909 src/liblzma/check/Makefile.inc      |  3 +-
4910 src/liblzma/check/crc32_fast.c      |  2 ++
4911 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++
4912 src/liblzma/check/crc_common.h      | 15 +++++++++
4913 6 files changed, 149 insertions(+), 1 deletion(-)
4914
4915commit 0ed893668554fb0758003289f8a6af9bd08b89d1
4916Author: Lasse Collin <lasse.collin@tukaani.org>
4917Date:   2024-06-28 14:20:49 +0300
4918
4919    liblzma: ARM64 CRC32: Align the buffer faster
4920
4921    Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions.
4922
4923 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++-----------
4924 1 file changed, 40 insertions(+), 14 deletions(-)
4925
4926commit 7e99856f66c07852c4e0de7aa01951e9147d86b0
4927Author: Sam James <sam@gentoo.org>
4928Date:   2024-06-28 14:18:35 +0300
4929
4930    CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...
4931
4932    This addresses the issue I mentioned in
4933    6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind
4934    job a bit, because non-xz tools aren't run unnecessarily with
4935    Valgrind by the script tests.
4936
4937 .github/workflows/ci.yml | 2 +-
4938 1 file changed, 1 insertion(+), 1 deletion(-)
4939
4940commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098
4941Author: Lasse Collin <lasse.collin@tukaani.org>
4942Date:   2024-06-25 16:00:22 +0300
4943
4944    Build: Prepend, not append, PTHREAD_CFLAGS to LIBS
4945
4946    It shouldn't make any difference because LIBS should be empty
4947    at that point in configure. But prepending is the correct way
4948    because in general the libraries being added might require other
4949    libraries that come later on the command line.
4950
4951 configure.ac | 2 +-
4952 1 file changed, 1 insertion(+), 1 deletion(-)
4953
4954commit 7bb46f2b7b3989c1b589a247a251470f65e91cda
4955Author: Lasse Collin <lasse.collin@tukaani.org>
4956Date:   2024-06-25 14:24:29 +0300
4957
4958    Build: Use AC_LINK_IFELSE to handle implicit function declarations
4959
4960    It's more robust in case the compiler allows pre-C99 implicit function
4961    declarations. If an x86 intrinsic is missing and gets treated as
4962    implicit function, the linking step will very probably fail. This
4963    isn't the only way to workaround implicit function declarations but
4964    it might be the simplest and cleanest.
4965
4966    The problem hasn't been observed in the wild.
4967
4968    There are a couple more AC_COMPILE_IFELSE uses in configure.ac.
4969    Of these, Landlock check calls prctl() and in theory could have
4970    the same problem. In practice it doesn't as the check program
4971    looks for several other things too. However, it was changed to
4972    AC_LINK_IFELSE still to look more correct.
4973
4974    Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were
4975    updated although they haven't given any trouble either. They
4976    have worked all these years because those check programs rely
4977    on specific headers and types: if headers or types are missing,
4978    compilation will fail. Using the linker makes these checks more
4979    similar to the ones in cmake/tuklib_*.cmake which always link.
4980
4981 configure.ac          |  8 ++++++--
4982 m4/tuklib_cpucores.m4 |  8 ++++----
4983 m4/tuklib_physmem.m4  | 17 +++++++++++------
4984 3 files changed, 21 insertions(+), 12 deletions(-)
4985
4986commit 35eb57355ad1c415a838d26192d5af84abb7cf39
4987Author: Lasse Collin <lasse.collin@tukaani.org>
4988Date:   2024-06-24 23:35:59 +0300
4989
4990    Build: Use AC_LINK_IFELSE instead of -Werror
4991
4992    AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely
4993    warn about the unsupported attribute and implicit function declaration.
4994    Changing to AC_LINK_IFELSE handles the implicit declaration because
4995    the symbol __crc32d is unlikely to exist in libc.
4996
4997    Note that the other part of the check is that #include <arm_acle.h>
4998    must work. If the header is missing, most compilers give an error
4999    and the linking step won't be attempted.
5000
5001    Avoiding -Werror makes the check more robust in case CFLAGS contains
5002    warning flags that break -Werror anyway (but this isn't the only check
5003    in configure.ac that has this problem). Using AC_LINK_IFELSE also makes
5004    the check more similar to how it is done in CMakeLists.txt.
5005
5006 configure.ac | 12 +-----------
5007 1 file changed, 1 insertion(+), 11 deletions(-)
5008
5009commit 5a728813c378cc3c4c9c95793762452418d08f1b
5010Author: Lasse Collin <lasse.collin@tukaani.org>
5011Date:   2024-06-24 23:34:34 +0300
5012
5013    Build: Sync the compile check changes from CMakeLists.txt
5014
5015    It's nice to keep these in sync. The use of main() will later allow
5016    AC_LINK_IFELSE usage too which may avoid the more fragile -Werror.
5017
5018 configure.ac | 15 ++++++++-------
5019 1 file changed, 8 insertions(+), 7 deletions(-)
5020
5021commit 5279828635a95abdef82e691fc4979d362780e63
5022Author: Lasse Collin <lasse.collin@tukaani.org>
5023Date:   2024-06-24 20:14:43 +0300
5024
5025    CMake: Not experimental anymore
5026
5027    While the CMake support has gotten a lot less testing than
5028    the Autotools-based build, the supported features should now
5029    be equal. The output may differ slightly, for example,
5030    liblzma.pc may have
5031
5032        Libs.private: -pthread -lpthread
5033
5034    with Autotools on GNU/Linux. CMake doesn't put any options
5035    in Libs.private because on modern glibc the pthread functions
5036    are in libc. The options options aren't required to link static
5037    liblzma into an application.
5038
5039    Autotools-based build doesn't generate or install
5040    lib/cmake/liblzma-*.cmake files. This means that on most
5041    platforms one cannot rely on
5042
5043        find_package(liblzma 5.2.5 REQUIRED CONFIG)
5044
5045    or such finding those files.
5046
5047 CMakeLists.txt | 9 ++++++---
5048 1 file changed, 6 insertions(+), 3 deletions(-)
5049
5050commit de215a0517645d16343f3a5336d3df884a4f665f
5051Author: Lasse Collin <lasse.collin@tukaani.org>
5052Date:   2024-06-25 16:11:13 +0300
5053
5054    CMake: Use configure_file() to copy a file
5055
5056    I had missed this simpler method before. It does create a dependency
5057    so that if .in.h changes the copying is done again.
5058
5059 CMakeLists.txt | 17 +++++++----------
5060 1 file changed, 7 insertions(+), 10 deletions(-)
5061
5062commit e620f35097c0ad20cd76d8258750aa706758ced9
5063Author: Lasse Collin <lasse.collin@tukaani.org>
5064Date:   2024-06-25 15:51:48 +0300
5065
5066    CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES
5067
5068    It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES
5069    only if CLOCK_MONOTONIC is available. Alternative would be to remove
5070    the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for
5071    pthread_condattr_setclock() but keeping the libs should be fine too.
5072    Then it's ready in case more pthread functions were wanted some day.
5073
5074 CMakeLists.txt | 6 ++++--
5075 1 file changed, 4 insertions(+), 2 deletions(-)
5076
5077commit 068a70e54932ca32ca2922aff5a67a62615c650b
5078Author: Sam James <sam@gentoo.org>
5079Date:   2024-06-24 19:25:30 +0100
5080
5081    CMake: Tweak comments
5082
5083    Co-authored-by: Lasse Collin <lasse.collin@tukaani.org>
5084
5085 CMakeLists.txt | 15 +++++++--------
5086 1 file changed, 7 insertions(+), 8 deletions(-)
5087
5088commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa
5089Author: Lasse Collin <lasse.collin@tukaani.org>
5090Date:   2024-06-24 22:42:01 +0300
5091
5092    CMake: Edit white space for consistency
5093
5094 CMakeLists.txt | 26 +++++++++++++-------------
5095 1 file changed, 13 insertions(+), 13 deletions(-)
5096
5097commit 114cba69dbb96003e676c8c87a2e9943b12d065f
5098Author: Lasse Collin <lasse.collin@tukaani.org>
5099Date:   2024-06-24 22:41:10 +0300
5100
5101    CMake: Fix three checks if building with -flto
5102
5103    In CMake, check_c_source_compiles() always links too. With
5104    link-time optimization, unused functions may get omitted if
5105    main() doesn't depend on them. Consider the following which
5106    tries to check if somefunction() is available when <someheader.h>
5107    has been included:
5108
5109        #include <someheader.h>
5110        int foo(void) { return somefunction(); }
5111        int main(void) { return 0; }
5112
5113    LTO may omit foo() completely because the program as a whole doesn't
5114    need it and then the program will link even if the symbol somefunction
5115    isn't available in libc or other library being linked in, and then
5116    the test may pass when it shouldn't.
5117
5118    What happens if <someheader.h> doesn't declare somefunction()?
5119    Shouldn't the test fail in the compilation phase already? It should
5120    but many compilers don't follow the C99 and later standards that
5121    prohibit implicit function declarations. Instead such compilers
5122    assume that somefunction() exists, compilation succeeds (with a
5123    warning), and then linker with LTO omits the call to somefunction().
5124
5125    Change the tests so that they are part of main(). If compiler accepts
5126    implicitly declared functions, LTO cannot omit them because it has to
5127    assume that they might have side effects and thus linking will fail.
5128    On the other hand, if the functions/intrinsics being used are supported,
5129    they might get optimized away but in that case it's fine because they
5130    really are supported.
5131
5132    It is fine to use __attribute__((target(...))) for main(). At least
5133    it works with GCC 4.9 to 14.1 on x86-64.
5134
5135    Reported-by: Sam James <sam@gentoo.org>
5136
5137 CMakeLists.txt | 19 ++++++++-----------
5138 1 file changed, 8 insertions(+), 11 deletions(-)
5139
5140commit 78e882205e1f1e91df2af2cb7da00fe205dede99
5141Author: Lasse Collin <lasse.collin@tukaani.org>
5142Date:   2024-06-24 21:19:14 +0300
5143
5144    CMake: Use MATCHES instead of multiple STREQUAL
5145
5146 CMakeLists.txt | 11 ++++-------
5147 1 file changed, 4 insertions(+), 7 deletions(-)
5148
5149commit d3f20382fc1bd865eb70a65455d5022ed05caac8
5150Author: Lasse Collin <lasse.collin@tukaani.org>
5151Date:   2024-06-24 21:06:18 +0300
5152
5153    CMake: Improve the comment about LIBS
5154
5155 CMakeLists.txt | 6 ++++++
5156 1 file changed, 6 insertions(+)
5157
5158commit 33ec377729a3889e58d98934b2777b2754a3e045
5159Author: Lasse Collin <lasse.collin@tukaani.org>
5160Date:   2024-06-24 20:01:25 +0300
5161
5162    CMake: Fix a typo in a message
5163
5164    It was spotted with codespell.
5165
5166 CMakeLists.txt | 2 +-
5167 1 file changed, 1 insertion(+), 1 deletion(-)
5168
5169commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f
5170Author: Lasse Collin <lasse.collin@tukaani.org>
5171Date:   2024-06-24 19:58:54 +0300
5172
5173    Document CMake options in INSTALL
5174
5175 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
5176 1 file changed, 106 insertions(+), 9 deletions(-)
5177
5178commit 3faf4e8079a46bd46e05cd1234365724a6a33802
5179Author: Lasse Collin <lasse.collin@tukaani.org>
5180Date:   2024-06-24 17:18:44 +0300
5181
5182    CI: Don't omit crc32 from the list with CMake anymore
5183
5184    XZ_CHECKS accepts it but works without too.
5185
5186 build-aux/ci_build.bash | 10 +---------
5187 1 file changed, 1 insertion(+), 9 deletions(-)
5188
5189commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a
5190Author: Lasse Collin <lasse.collin@tukaani.org>
5191Date:   2024-06-24 17:39:54 +0300
5192
5193    CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS
5194
5195    Check for the wrong triplet from config.guess and override it with
5196    the --build option on the configure command line. Then i386 assembly
5197    autodetection will work.
5198
5199    These Ubuntu versions (and as of writing, also Debian unstable)
5200    ship config.guess version 2022-01-09 which contains a bug that
5201    was fixed in version 2022-05-08. It results in a wrong configure
5202    triplet when using CC="gcc -m32" to build i386 binaries.
5203
5204    Upstream fix:
5205    https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329
5206
5207    More information:
5208    https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html
5209
5210 build-aux/ci_build.bash | 9 +++++++++
5211 1 file changed, 9 insertions(+)
5212
5213commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679
5214Author: Lasse Collin <lasse.collin@tukaani.org>
5215Date:   2024-06-24 15:24:52 +0300
5216
5217    CI: Use CC="gcc -m32" to get i386 compiler on x86-64
5218
5219    The old method put it in CFLAGS which is a wrong place because
5220    config.guess doesn't read CFLAGS.
5221
5222 .github/workflows/ci.yml | 4 ++--
5223 1 file changed, 2 insertions(+), 2 deletions(-)
5224
5225commit 0c1e6d900bac127464fb30a854776e1810ab5f16
5226Author: Lasse Collin <lasse.collin@tukaani.org>
5227Date:   2024-06-24 14:54:17 +0300
5228
5229    CI: Let CMake use the CC environment variable
5230
5231    CC from environment is used to initialize CMAKE_C_COMPILER so
5232    setting CMAKE_C_COMPILER explicitly isn't needed.
5233
5234    The syntax in ci_build.bash was broken in case one wished to put
5235    spaces in CC.
5236
5237 build-aux/ci_build.bash | 4 ----
5238 1 file changed, 4 deletions(-)
5239
5240commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075
5241Author: Lasse Collin <lasse.collin@tukaani.org>
5242Date:   2024-06-20 23:25:42 +0300
5243
5244    CMake: Add autodetection for 32-bit x86 CRC assembly usage
5245
5246 CMakeLists.txt | 33 ++++++++++++++++++---------------
5247 1 file changed, 18 insertions(+), 15 deletions(-)
5248
5249commit dbc14f213e5cf866f1f42b7c6381a91e1189908c
5250Author: Lasse Collin <lasse.collin@tukaani.org>
5251Date:   2024-06-20 23:00:59 +0300
5252
5253    CMake: Move option(XZ_ASM_I386) downwards a few lines
5254
5255 CMakeLists.txt | 16 ++++++++--------
5256 1 file changed, 8 insertions(+), 8 deletions(-)
5257
5258commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a
5259Author: Lasse Collin <lasse.collin@tukaani.org>
5260Date:   2024-06-20 18:45:41 +0300
5261
5262    DOS: Update Makefile and config.h for the CRC changes
5263
5264 dos/Makefile | 4 ++--
5265 dos/config.h | 3 +++
5266 2 files changed, 5 insertions(+), 2 deletions(-)
5267
5268commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88
5269Author: Lasse Collin <lasse.collin@tukaani.org>
5270Date:   2024-06-23 15:35:35 +0300
5271
5272    liblzma: Tidy up crc_common.h
5273
5274    Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with
5275    the other ARM64-specific lines. That macro isn't used outside this
5276    file.
5277
5278    ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL
5279    isn't used anywhere yet.
5280
5281    It's not ideal that the single-letter CRC utility macros are here
5282    as they pollute the namespace of the LZ encoder files. Those could
5283    be moved their own crc_macros.h like they were in 5.2.x but in practice
5284    this is fine enough already.
5285
5286 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++--------------
5287 1 file changed, 42 insertions(+), 20 deletions(-)
5288
5289commit 7484d375384f551d475ff44a93590a225e0cb8f6
5290Author: Lasse Collin <lasse.collin@tukaani.org>
5291Date:   2024-06-23 14:22:08 +0300
5292
5293    liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h
5294
5295    LZ encoder needs lzma_crc32_table[0] but otherwise those tables
5296    are private to the CRC code. In contrast, the other things in
5297    check.h are needed in several places.
5298
5299 src/liblzma/check/check.h        | 18 ------------------
5300 src/liblzma/check/crc32_small.c  |  3 +++
5301 src/liblzma/check/crc_common.h   | 18 ++++++++++++++++++
5302 src/liblzma/lz/lz_encoder_hash.h |  4 ++--
5303 4 files changed, 23 insertions(+), 20 deletions(-)
5304
5305commit 85b081f5d4598342b8c155a2c08697fb2adc372c
5306Author: Lasse Collin <lasse.collin@tukaani.org>
5307Date:   2024-06-19 18:38:22 +0300
5308
5309    liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL
5310
5311    Now runtime detection of CLMUL support can pick between the CLMUL and
5312    the generic assembly implementations. Whatever overhead this has for
5313    builds that omit CLMUL completely isn't important because builds for
5314    any non-ancient system is likely to include the CLMUL code too.
5315
5316    Handle the CRC tables in crcXX_fast.c files because now these files
5317    are built even when assembly code is used.
5318
5319    If 32-bit x86 assembly is enabled then it will always be built even
5320    if compiler flags were such that CLMUL would be allowed unconditionally.
5321    That is, runtime detection will be used anyway. This keeps the build
5322    rules simpler.
5323
5324    In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC
5325    is used without runtime detection. Previously this wasn't needed
5326    because crc32_table.c included the lzma_crc32_table[][] in the build
5327    unless encoder support had been disabled. Including an 8 KiB table
5328    was silly when only 1 KiB is actually used. So now liblzma is 7 KiB
5329    smaller if CLMUL is enabled without runtime detection.
5330
5331 CMakeLists.txt                    |  8 ++------
5332 src/liblzma/check/Makefile.inc    |  8 ++------
5333 src/liblzma/check/crc32_fast.c    | 14 ++++++++++++-
5334 src/liblzma/check/crc32_table.c   | 42 ---------------------------------------
5335 src/liblzma/check/crc32_x86.S     | 14 +++++--------
5336 src/liblzma/check/crc64_fast.c    | 18 +++++++++++++----
5337 src/liblzma/check/crc64_table.c   | 37 ----------------------------------
5338 src/liblzma/check/crc64_x86.S     | 14 +++++--------
5339 src/liblzma/check/crc_common.h    | 18 +++++++++--------
5340 src/liblzma/check/crc_x86_clmul.h |  5 -----
5341 src/liblzma/lz/lz_encoder.c       |  2 +-
5342 src/liblzma/lz/lz_encoder_hash.h  | 30 ++++++++++++++++++++--------
5343 12 files changed, 74 insertions(+), 136 deletions(-)
5344
5345commit 6667d503b5dc9826654e3d9ad505e1883ff6c388
5346Author: Lasse Collin <lasse.collin@tukaani.org>
5347Date:   2024-06-19 17:44:41 +0300
5348
5349    liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic
5350
5351    This prepares for the possibility that lzma_crc32_generic and
5352    lzma_crc64_generic are extern functions.
5353
5354 src/liblzma/check/crc32_fast.c | 6 +++---
5355 src/liblzma/check/crc64_fast.c | 6 +++---
5356 2 files changed, 6 insertions(+), 6 deletions(-)
5357
5358commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845
5359Author: Lasse Collin <lasse.collin@tukaani.org>
5360Date:   2024-06-20 22:55:22 +0300
5361
5362    CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
5363
5364 CMakeLists.txt | 3 +++
5365 1 file changed, 3 insertions(+)
5366
5367commit f76837acb65676e541d8ee79cd62dbbf27280a62
5368Author: Lasse Collin <lasse.collin@tukaani.org>
5369Date:   2024-05-10 16:00:26 +0300
5370
5371    Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used
5372
5373    This makes it easier to determine when the CRC tables are needed.
5374
5375 configure.ac | 9 +++++++--
5376 1 file changed, 7 insertions(+), 2 deletions(-)
5377
5378commit 9ce0866b070850da4dc837741ff055faa218bdd6
5379Author: Lasse Collin <lasse.collin@tukaani.org>
5380Date:   2024-06-21 00:46:09 +0300
5381
5382    CI: Update to the new renamed options in CMakeLists.txt
5383
5384 build-aux/ci_build.bash | 10 +++++-----
5385 1 file changed, 5 insertions(+), 5 deletions(-)
5386
5387commit 0232e66d5bc5b01a25a447c657e51747626488ab
5388Author: Lasse Collin <lasse.collin@tukaani.org>
5389Date:   2024-06-20 18:12:22 +0300
5390
5391    CMake: Add XZ_EXTERNAL_SHA256
5392
5393 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
5394 1 file changed, 116 insertions(+), 5 deletions(-)
5395
5396commit 4535b80caead82a7ddf7feb988b8fbc773152522
5397Author: Lasse Collin <lasse.collin@tukaani.org>
5398Date:   2024-06-20 18:12:21 +0300
5399
5400    CMake: Move threading detection a few lines up
5401
5402    It feels clearer this way, and when support for external SHA-256
5403    is added, this will keep the order of the library detection the
5404    same as in configure.ac (check for pthreads before libmd) although
5405    it shouldn't matter in practice.
5406
5407 CMakeLists.txt | 176 ++++++++++++++++++++++++++++-----------------------------
5408 1 file changed, 88 insertions(+), 88 deletions(-)
5409
5410commit 94d062dbac34d366eb26625034200cc3457e6645
5411Author: Lasse Collin <lasse.collin@tukaani.org>
5412Date:   2024-06-20 18:12:21 +0300
5413
5414    CMake: Move the sandbox code out of the liblzma section
5415
5416    Sandboxing is for the command line tools, not liblzma.
5417    No functional changes.
5418
5419 CMakeLists.txt | 214 ++++++++++++++++++++++++++++-----------------------------
5420 1 file changed, 107 insertions(+), 107 deletions(-)
5421
5422commit 75ce4797d49621710e6da95d8cb91541028c6d68
5423Author: Lasse Collin <lasse.collin@tukaani.org>
5424Date:   2024-06-20 18:12:21 +0300
5425
5426    CMake: Keep existing options in LIBS when adding -lrt
5427
5428    This makes no difference yet because -lrt is currently the only option
5429    that might be added to LIBS.
5430
5431 CMakeLists.txt | 2 +-
5432 1 file changed, 1 insertion(+), 1 deletion(-)
5433
5434commit 47aaa92516fd9609821d04e5e94ca6558e56d62b
5435Author: Lasse Collin <lasse.collin@tukaani.org>
5436Date:   2024-06-15 18:07:04 +0300
5437
5438    CMake: Don't install scripts if the xz tool isn't built
5439
5440    The scripts need the xz tool.
5441
5442 CMakeLists.txt    | 11 +++++++++--
5443 tests/tests.cmake |  2 +-
5444 2 files changed, 10 insertions(+), 3 deletions(-)
5445
5446commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d
5447Author: Lasse Collin <lasse.collin@tukaani.org>
5448Date:   2024-06-15 18:07:04 +0300
5449
5450    CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC
5451
5452 CMakeLists.txt | 15 ++++++++++++++-
5453 1 file changed, 14 insertions(+), 1 deletion(-)
5454
5455commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34
5456Author: Lasse Collin <lasse.collin@tukaani.org>
5457Date:   2024-06-15 18:07:04 +0300
5458
5459    CMake: Add XZ_TOOL_LZMAINFO
5460
5461 CMakeLists.txt | 4 +++-
5462 1 file changed, 3 insertions(+), 1 deletion(-)
5463
5464commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0
5465Author: Lasse Collin <lasse.collin@tukaani.org>
5466Date:   2024-06-15 18:07:04 +0300
5467
5468    CMake: Add XZ_TOOL_XZ
5469
5470 CMakeLists.txt | 4 +++-
5471 1 file changed, 3 insertions(+), 1 deletion(-)
5472
5473commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f
5474Author: Lasse Collin <lasse.collin@tukaani.org>
5475Date:   2024-06-15 18:07:04 +0300
5476
5477    Windows: Drop Visual Studio 2013 support
5478
5479    This simplifies things a little. Building liblzma with VS2013 probably
5480    still worked but building the command line tools was not supported.
5481
5482    Microsoft ended support for VS2013 on 2024-04.
5483
5484 CMakeLists.txt           | 9 +++++++--
5485 src/common/sysdefs.h     | 6 +-----
5486 windows/INSTALL-MSVC.txt | 8 ++------
5487 3 files changed, 10 insertions(+), 13 deletions(-)
5488
5489commit 5d5c92b26246936461a635dda1f95740d7de2058
5490Author: Lasse Collin <lasse.collin@tukaani.org>
5491Date:   2024-06-15 18:07:04 +0300
5492
5493    CMake: Add XZ_TOOL_SCRIPTS
5494
5495 CMakeLists.txt | 44 +++++++++++++++++++++++++++++---------------
5496 1 file changed, 29 insertions(+), 15 deletions(-)
5497
5498commit d274a2bc00d235f07e96aaf82c149794cfe82b12
5499Author: Lasse Collin <lasse.collin@tukaani.org>
5500Date:   2024-06-15 18:07:04 +0300
5501
5502    CMake: Add XZ_DOC
5503
5504 CMakeLists.txt | 45 ++++++++++++++++++++++++---------------------
5505 1 file changed, 24 insertions(+), 21 deletions(-)
5506
5507commit 188143a50ade67253ed256608f50f78aa1380403
5508Author: Lasse Collin <lasse.collin@tukaani.org>
5509Date:   2024-06-20 21:53:03 +0300
5510
5511    CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac
5512
5513    Make the available options and their behavior match
5514    --enable-symbol-versions in configure.ac.
5515
5516    Don't enable symbol versions on Linux if not using glibc. Previously
5517    the generic variant was selected on Microblaze or if using NVHPC
5518    without checking that libc is glibc.
5519
5520    Leave the cache variable to "auto" or "yes" if that was specified
5521    instead of setting it to the autodetected value by default. A downside
5522    is that one cannot easily see which variant the autodetection code
5523    has selected. The same applies to XZ_SANDBOX and XZ_THREADS though.
5524
5525 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++-----------------------
5526 1 file changed, 75 insertions(+), 50 deletions(-)
5527
5528commit cc52ef8ed3b75a581262c587f6c06c213a550f86
5529Author: Lasse Collin <lasse.collin@tukaani.org>
5530Date:   2024-06-15 18:07:04 +0300
5531
5532    CMake: Use the same option list for XZ_THREADS as in configure.ac
5533
5534    Also clarify that "yes" will fail if no threading support is found.
5535    If no threading is wanted, it has to be disabled manually.
5536
5537    configure.ac doesn't behave this way at the moment. Instead it
5538    assumes pthreads to be present if not targeting Windows. If pthreads
5539    actually are missing, the build fails later.
5540
5541 CMakeLists.txt | 18 ++++++++++--------
5542 1 file changed, 10 insertions(+), 8 deletions(-)
5543
5544commit 37f7af3452bab0a34ce320c2ad532835f18752d9
5545Author: Lasse Collin <lasse.collin@tukaani.org>
5546Date:   2024-06-15 18:07:04 +0300
5547
5548    CMake: Use the same option list for XZ_SANDBOX as in configure.ac
5549
5550    It's simpler to document this way.
5551
5552 CMakeLists.txt | 20 ++++++++++----------
5553 1 file changed, 10 insertions(+), 10 deletions(-)
5554
5555commit c715dec8e800b65145918cfb0ee9bbc90faa8aad
5556Author: Lasse Collin <lasse.collin@tukaani.org>
5557Date:   2024-06-15 18:07:04 +0300
5558
5559    CMake: Fix indentation
5560
5561 CMakeLists.txt | 2 +-
5562 1 file changed, 1 insertion(+), 1 deletion(-)
5563
5564commit ea379f2f180befabd2039342db8eaeb757fdd2b7
5565Author: Lasse Collin <lasse.collin@tukaani.org>
5566Date:   2024-06-15 18:07:04 +0300
5567
5568    CMake: Add warning options for GCC and Clang
5569
5570    The list was copied from configure.ac and should be kept in sync.
5571    (Pretend that the deleted comment in CMakeLists.txt didn't exist.)
5572
5573    There is no need to add equivalent of --enable-werror as CMake >= 3.24
5574    supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON.
5575
5576 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
5577 1 file changed, 59 insertions(+), 5 deletions(-)
5578
5579commit 74223338197b7dfcd69f56df78b6502805a75f23
5580Author: Lasse Collin <lasse.collin@tukaani.org>
5581Date:   2024-06-15 18:07:04 +0300
5582
5583    CMake: Use \040 instead of \x20 for a space
5584
5585    This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
5586    where \040 has to be used because \0x20F gets interpret at three hex
5587    digits. Octals escapes are never longer than three digits.
5588
5589 CMakeLists.txt | 2 +-
5590 1 file changed, 1 insertion(+), 1 deletion(-)
5591
5592commit e8854b6bdc956c46dc4232bd07c17163034a00f2
5593Author: Lasse Collin <lasse.collin@tukaani.org>
5594Date:   2024-06-15 18:07:04 +0300
5595
5596    CMake: Add XZ_ASSUME_RAM
5597
5598 CMakeLists.txt | 4 +++-
5599 1 file changed, 3 insertions(+), 1 deletion(-)
5600
5601commit e1127e75cb82e0385f02c995771d6fe1420f43c5
5602Author: Lasse Collin <lasse.collin@tukaani.org>
5603Date:   2024-06-15 18:07:04 +0300
5604
5605    CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR
5606
5607 CMakeLists.txt | 6 +++---
5608 1 file changed, 3 insertions(+), 3 deletions(-)
5609
5610commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff
5611Author: Lasse Collin <lasse.collin@tukaani.org>
5612Date:   2024-06-15 18:07:04 +0300
5613
5614    CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS
5615
5616    Now "crc32" is in the list too for completeness but it doesn't
5617    actually have any effect. The description of the cache variable
5618    says that "crc32 is always built" so it should be clear enough.
5619
5620 CMakeLists.txt    | 14 +++++++-------
5621 tests/tests.cmake | 17 ++++++++---------
5622 2 files changed, 15 insertions(+), 16 deletions(-)
5623
5624commit 679500ffe00ecb4f02292129e7529ab7392f3943
5625Author: Lasse Collin <lasse.collin@tukaani.org>
5626Date:   2024-06-15 18:07:04 +0300
5627
5628    CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL
5629
5630    We still need the variable POSIX_SHELL for configure_file()
5631    but it doesn't need to be a cache variable.
5632
5633 CMakeLists.txt | 7 ++++---
5634 1 file changed, 4 insertions(+), 3 deletions(-)
5635
5636commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef
5637Author: Lasse Collin <lasse.collin@tukaani.org>
5638Date:   2024-06-15 18:07:04 +0300
5639
5640    CMake: Rename ENCODERS and DECODERS to use XZ_ prefix
5641
5642 CMakeLists.txt    | 34 +++++++++++++++++-----------------
5643 tests/tests.cmake |  4 ++--
5644 2 files changed, 19 insertions(+), 19 deletions(-)
5645
5646commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154
5647Author: Lasse Collin <lasse.collin@tukaani.org>
5648Date:   2024-06-15 18:07:04 +0300
5649
5650    CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS
5651
5652 CMakeLists.txt | 6 +++---
5653 1 file changed, 3 insertions(+), 3 deletions(-)
5654
5655commit 63294806b488a27a28a0960f6a257695dd2b569a
5656Author: Lasse Collin <lasse.collin@tukaani.org>
5657Date:   2024-06-15 18:07:04 +0300
5658
5659    CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING
5660
5661 CMakeLists.txt | 9 +++++----
5662 1 file changed, 5 insertions(+), 4 deletions(-)
5663
5664commit ad245b133675d285bca5d48123062e9d1e3f747e
5665Author: Lasse Collin <lasse.collin@tukaani.org>
5666Date:   2024-06-15 18:07:04 +0300
5667
5668    CMake: Rename ENABLE_THREADS to XZ_THREADS
5669
5670 CMakeLists.txt | 24 +++++++++++-------------
5671 1 file changed, 11 insertions(+), 13 deletions(-)
5672
5673commit 4250d4de32e66e558cc2ebe73b05255633c933ed
5674Author: Lasse Collin <lasse.collin@tukaani.org>
5675Date:   2024-06-15 18:07:04 +0300
5676
5677    CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX
5678
5679 CMakeLists.txt | 23 +++++++++++------------
5680 1 file changed, 11 insertions(+), 12 deletions(-)
5681
5682commit 0fdcd0c582f1a38542cd647dde449d9447d5888d
5683Author: Lasse Collin <lasse.collin@tukaani.org>
5684Date:   2024-06-15 18:07:04 +0300
5685
5686    CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386
5687
5688 CMakeLists.txt | 10 +++++-----
5689 1 file changed, 5 insertions(+), 5 deletions(-)
5690
5691commit e017d5526e316003fdb2a3f76acbb83443f14ddf
5692Author: Lasse Collin <lasse.collin@tukaani.org>
5693Date:   2024-06-15 18:07:04 +0300
5694
5695    CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS
5696
5697    This only affects the names unxz and xzcat. The xz-prefixed script
5698    symlinks (xzfgrep and such) are always created if scripts are enabled.
5699
5700 CMakeLists.txt | 4 ++--
5701 1 file changed, 2 insertions(+), 2 deletions(-)
5702
5703commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c
5704Author: Lasse Collin <lasse.collin@tukaani.org>
5705Date:   2024-06-15 18:07:04 +0300
5706
5707    CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS
5708
5709    Update the description too.
5710
5711    It affects creation of not only the legacy lzma, unlzma, lzcat symlinks
5712    but also lzgrep and other legacy names for the scripts. The last
5713    LZMA Utils release was made in 2008 but these names are still used
5714    in some places to handle .lzma files.
5715
5716 CMakeLists.txt | 7 ++++---
5717 1 file changed, 4 insertions(+), 3 deletions(-)
5718
5719commit 612ccebf884eb1a9b6848e230c24f97a03fe917a
5720Author: Lasse Collin <lasse.collin@tukaani.org>
5721Date:   2024-06-15 18:07:04 +0300
5722
5723    CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32
5724
5725    Update description too.
5726
5727 CMakeLists.txt | 6 +++---
5728 1 file changed, 3 insertions(+), 3 deletions(-)
5729
5730commit 3dcc12290d6dffbe7f10f501c141d325bad65901
5731Author: Lasse Collin <lasse.collin@tukaani.org>
5732Date:   2024-06-15 18:07:04 +0300
5733
5734    CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC
5735
5736    Update description too.
5737
5738 CMakeLists.txt | 6 +++---
5739 1 file changed, 3 insertions(+), 3 deletions(-)
5740
5741commit 4b8faa72442da9aa1a356f5848aae798d8588a7d
5742Author: Lasse Collin <lasse.collin@tukaani.org>
5743Date:   2024-06-15 18:07:04 +0300
5744
5745    CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN
5746
5747 CMakeLists.txt | 4 ++--
5748 1 file changed, 2 insertions(+), 2 deletions(-)
5749
5750commit b56273ae575bac350e50b0c689269dcab04b04b3
5751Author: Lasse Collin <lasse.collin@tukaani.org>
5752Date:   2024-06-15 18:07:04 +0300
5753
5754    CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER
5755
5756 CMakeLists.txt    | 4 ++--
5757 tests/tests.cmake | 2 +-
5758 2 files changed, 3 insertions(+), 3 deletions(-)
5759
5760commit 2343992fcbe8b436da6df888be37713cccaff0ab
5761Author: Lasse Collin <lasse.collin@tukaani.org>
5762Date:   2024-06-15 18:07:04 +0300
5763
5764    CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER
5765
5766 CMakeLists.txt    | 8 ++++----
5767 tests/tests.cmake | 2 +-
5768 2 files changed, 5 insertions(+), 5 deletions(-)
5769
5770commit 96f0a6632cc0598a26d93255b0c444df18dc7891
5771Author: Lasse Collin <lasse.collin@tukaani.org>
5772Date:   2024-06-15 18:07:04 +0300
5773
5774    CMake: Rename ENABLE_SMALL to XZ_SMALL
5775
5776 CMakeLists.txt | 14 +++++++-------
5777 1 file changed, 7 insertions(+), 7 deletions(-)
5778
5779commit 29f77c7b707f2458fb047e77497354b195e05b14
5780Author: Lasse Collin <lasse.collin@tukaani.org>
5781Date:   2024-06-15 18:07:04 +0300
5782
5783    CMake: Rename ENABLE_NLS to XZ_NLS
5784
5785    Also update the description to mention that this affects installation
5786    of translated man pages too.
5787
5788    Prefixing the cache variables with the project name helps if
5789    the package is used as a subproject in another package.
5790    It also makes the package-specific options group more nicely
5791    in ccmake and cmake-gui.
5792
5793 CMakeLists.txt | 28 +++++++++++++++-------------
5794 1 file changed, 15 insertions(+), 13 deletions(-)
5795
5796commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c
5797Author: Lasse Collin <lasse.collin@tukaani.org>
5798Date:   2024-06-15 23:34:29 +0300
5799
5800    CMake: Link Threads::Threads as PRIVATE to liblzma
5801
5802    This way pthread options aren't passed to the linker when linking
5803    against shared liblzma but they are still passed when linking against
5804    static liblzma. (Also, one never needs the include path of the
5805    threading library to use liblzma since liblzma's API headers
5806    don't #include <pthread.h>. But <pthread.h> tends to be in the
5807    default include path so here this change makes no difference.)
5808
5809    One cannot mix target_link_libraries() calls that use the scope
5810    (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it.
5811    The calls without the keyword are like PUBLIC except perhaps when
5812    they aren't, or something like that... It seems best to always
5813    specify a scope keyword as the meanings of those three keywords
5814    at least are clear.
5815
5816 CMakeLists.txt | 2 +-
5817 1 file changed, 1 insertion(+), 1 deletion(-)
5818
5819commit 82986d8c691a294c78b48d8391303e5c428b5437
5820Author: Lasse Collin <lasse.collin@tukaani.org>
5821Date:   2024-06-16 19:39:32 +0300
5822
5823    CMake: Add empty lines
5824
5825 CMakeLists.txt | 2 ++
5826 1 file changed, 2 insertions(+)
5827
5828commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2
5829Author: Lasse Collin <lasse.collin@tukaani.org>
5830Date:   2024-06-16 19:37:36 +0300
5831
5832    CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads
5833
5834    This shouldn't make much difference in practice as on Windows
5835    no flags are needed anyway and unitialized variable (when threading
5836    is disabled) expands to empty. But it's clearer this way.
5837
5838 CMakeLists.txt | 8 +++++++-
5839 1 file changed, 7 insertions(+), 1 deletion(-)
5840
5841commit 664918bd3635ea8e773f06022286ecb0c485166c
5842Author: Lasse Collin <lasse.collin@tukaani.org>
5843Date:   2024-06-17 18:20:14 +0300
5844
5845    Update THANKS
5846
5847 THANKS | 3 +++
5848 1 file changed, 3 insertions(+)
5849
5850commit 5ca96a93488d0f5a530c78b274cac317453807ff
5851Author: Lasse Collin <lasse.collin@tukaani.org>
5852Date:   2024-06-16 19:25:07 +0300
5853
5854    CMake: Use native newlines in liblzma.pc
5855
5856    vcpkg doesn't specify the newline type so it should be fine to
5857    use native newlines in liblzma.pc on Windows.
5858
5859 CMakeLists.txt | 4 +---
5860 1 file changed, 1 insertion(+), 3 deletions(-)
5861
5862commit ebd155c3a1b87411edae06d3bdaa9659ec057522
5863Author: Lasse Collin <lasse.collin@tukaani.org>
5864Date:   2024-06-16 19:18:56 +0300
5865
5866    CMake: Use relative paths in liblzma.pc if possible
5867
5868    Now liblzma.pc can be relocatable only if using CMake >= 3.20
5869    but that should be OK as now we shouldn't get broken liblzma.pc
5870    if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an
5871    absolute path.
5872
5873    Thanks to Eli Schwartz.
5874
5875 CMakeLists.txt | 18 ++++++++++++++----
5876 1 file changed, 14 insertions(+), 4 deletions(-)
5877
5878commit 7a366d93cfd74ce10201db400be8836199944e36
5879Author: Lasse Collin <lasse.collin@tukaani.org>
5880Date:   2024-06-16 18:33:08 +0300
5881
5882    Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc"
5883
5884    This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69.
5885
5886    While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need
5887    to be. Thus the commit was broken. A fancier method is required.
5888
5889    Thanks to Eli Schwartz for the bug report and explanation.
5890
5891 CMakeLists.txt | 6 +++---
5892 1 file changed, 3 insertions(+), 3 deletions(-)
5893
5894commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f
5895Author: Lasse Collin <lasse.collin@tukaani.org>
5896Date:   2024-06-16 13:39:37 +0300
5897
5898    liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed
5899
5900    On E2K the function compiles only due to compiler emulation but the
5901    function is never used. It's cleaner to omit the function when it's
5902    not needed even though it's a "static inline" function.
5903
5904    Thanks to Ilya Kurdyukov.
5905
5906 src/liblzma/check/crc_x86_clmul.h | 4 ++++
5907 1 file changed, 4 insertions(+)
5908
5909commit 54eaea5ea49bb8bca4286d4412f19ac73187489e
5910Author: Lasse Collin <lasse.collin@tukaani.org>
5911Date:   2024-06-16 13:21:34 +0300
5912
5913    liblzma: x86 CLMUL CRC: Rewrite
5914
5915    It's faster with both tiny and large buffers and doesn't require
5916    disabling any sanitizers. With large buffers the extra speed is
5917    from folding four 16-byte chunks in parallel.
5918
5919    The 32-bit x86 with MSVC reportedly still needs a workaround.
5920    Now the simpler "__asm mov ebx, ebx" trick is enough but it
5921    needs to be in lzma_crc64() instead of crc64_arch_optimized().
5922    Thanks to Iouri Kharon for testing and the fix.
5923
5924    Thanks to Ilya Kurdyukov for testing the speed with aligned and
5925    unaligned buffers on a few x86 processors and on E2K v6.
5926
5927    Thanks to Sam James for general feedback.
5928
5929    Fixes: https://github.com/tukaani-project/xz/issues/112
5930    Fixes: https://github.com/tukaani-project/xz/issues/122
5931
5932 src/liblzma/check/crc64_fast.c    |   8 +
5933 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------
5934 2 files changed, 237 insertions(+), 208 deletions(-)
5935
5936commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38
5937Author: Lasse Collin <lasse.collin@tukaani.org>
5938Date:   2024-06-01 14:44:04 +0300
5939
5940    sysdefs.h: Add alignas
5941
5942 src/common/sysdefs.h | 11 +++++++++++
5943 1 file changed, 11 insertions(+)
5944
5945commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf
5946Author: Lasse Collin <lasse.collin@tukaani.org>
5947Date:   2024-06-11 12:47:59 +0300
5948
5949    liblzma: Use a single macro to select CLMUL CRC to build
5950
5951    This way it's clearer that two things cannot be selected
5952    at the same time.
5953
5954 src/liblzma/check/crc32_fast.c    |  2 +-
5955 src/liblzma/check/crc64_fast.c    |  2 +-
5956 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++--------
5957 3 files changed, 12 insertions(+), 10 deletions(-)
5958
5959commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441
5960Author: Lasse Collin <lasse.collin@tukaani.org>
5961Date:   2024-06-10 15:31:01 +0300
5962
5963    liblzma: CRC32 CLMUL: Refactor the constants and simplify
5964
5965    By using modulus scaled constants, the final reduction can
5966    be simplified.
5967
5968 src/liblzma/check/crc_x86_clmul.h | 52 +++++++--------------------------------
5969 1 file changed, 9 insertions(+), 43 deletions(-)
5970
5971commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2
5972Author: Lasse Collin <lasse.collin@tukaani.org>
5973Date:   2024-06-10 15:12:48 +0300
5974
5975    liblzma: CRC64 CLMUL: Refactor the constants
5976
5977    Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p
5978    and the p no longer has the lowest bit set (it makes no difference
5979    as the output bits it affects are ignored).
5980
5981 src/liblzma/check/crc_x86_clmul.h | 43 +++++++--------------------------------
5982 1 file changed, 7 insertions(+), 36 deletions(-)
5983
5984commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac
5985Author: Lasse Collin <lasse.collin@tukaani.org>
5986Date:   2024-06-10 14:45:44 +0300
5987
5988    liblzma: Add crc_clmul_consts_gen.c
5989
5990    It's a standalone program that prints the required constants.
5991    It's won't be a part of the normal build of the package.
5992
5993 src/liblzma/check/Makefile.inc           |   1 +
5994 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++
5995 2 files changed, 161 insertions(+)
5996
5997commit 71b147aab7fe4a60ed57b697d5bb490f099894be
5998Author: Lasse Collin <lasse.collin@tukaani.org>
5999Date:   2024-05-09 21:44:03 +0300
6000
6001    liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS
6002
6003    It was already commented out.
6004
6005 src/liblzma/check/crc32_fast.c    | 21 ---------------------
6006 src/liblzma/check/crc64_fast.c    |  5 -----
6007 src/liblzma/check/crc_common.h    | 14 --------------
6008 src/liblzma/check/crc_x86_clmul.h |  9 +--------
6009 4 files changed, 1 insertion(+), 48 deletions(-)
6010
6011commit f99a7be40645f86959a5b180dfae948dd165e07c
6012Author: Lasse Collin <lasse.collin@tukaani.org>
6013Date:   2024-05-09 21:03:39 +0300
6014
6015    liblzma: Remove crc_attr_no_sanitize_address
6016
6017    It's not enough to silence the address sanitizer. Also memory and
6018    thread sanitizers would need to be silenced. They, at least currently,
6019    aren't smart enough to see that the extra bytes are discarded from
6020    the xmm registers by later instructions.
6021
6022    Valgrind is smarter, possibly because this kind of code isn't weird
6023    to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions
6024    this idea of doing an aligned read and then discarding the extra
6025    bytes. The sanitizers don't instrument assembly code but Valgrind
6026    checks all code.
6027
6028    It's better to change the implementation to avoid the sanitization
6029    attributes which also look scary in the code. (Somehow they can look
6030    more scary than __asm__ which is implictly unsanitized.)
6031
6032    See also:
6033    https://github.com/tukaani-project/xz/issues/112
6034    https://github.com/tukaani-project/xz/issues/122
6035
6036 src/liblzma/check/crc_common.h    | 9 ---------
6037 src/liblzma/check/crc_x86_clmul.h | 3 ---
6038 2 files changed, 12 deletions(-)
6039
6040commit ead4d151996f8a18bf9b07eb1e175c0a1590e562
6041Author: Lasse Collin <lasse.collin@tukaani.org>
6042Date:   2024-06-10 15:37:49 +0300
6043
6044    Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz"
6045
6046    This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199.
6047
6048 configure.ac | 4 +---
6049 1 file changed, 1 insertion(+), 3 deletions(-)
6050
6051commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92
6052Author: Lasse Collin <lasse.collin@tukaani.org>
6053Date:   2024-06-12 14:26:44 +0300
6054
6055    CMake: Prefer C11 with a fallback to C99
6056
6057    There is no need to make a similar change in configure.ac.
6058    With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99
6059    is an alias for AC_PROG_CC which prefers a C11 compiler.
6060
6061 CMakeLists.txt | 17 +++++++++++------
6062 1 file changed, 11 insertions(+), 6 deletions(-)
6063
6064commit c97e9c12fef4d1093ee2a75236742481361f50f5
6065Author: Lasse Collin <lasse.collin@tukaani.org>
6066Date:   2024-06-12 14:20:21 +0300
6067
6068    Update THANKS
6069
6070 THANKS | 4 ++++
6071 1 file changed, 4 insertions(+)
6072
6073commit 89e9f12e03324b8a186e807b268f34f92d1b2f41
6074Author: Lasse Collin <lasse.collin@tukaani.org>
6075Date:   2024-06-11 11:15:49 +0300
6076
6077    Tests: Improve the CRC32 test
6078
6079    A similar one was already there for CRC64 but nowadays also CRC32
6080    has a CLMUL implementation, so it's good to test it better too.
6081
6082 tests/test_check.c | 17 +++++++++++++----
6083 1 file changed, 13 insertions(+), 4 deletions(-)
6084
6085commit c7164b1927e3fe7cdba70ee4687e1a590a81043b
6086Author: Lasse Collin <lasse.collin@tukaani.org>
6087Date:   2024-06-11 22:42:26 +0300
6088
6089    xz: Fix white space
6090
6091 src/xz/list.c | 6 +++---
6092 1 file changed, 3 insertions(+), 3 deletions(-)
6093
6094commit 0a32d2072c598de281058b26dc08920fbf0cd2a1
6095Author: Lasse Collin <lasse.collin@tukaani.org>
6096Date:   2024-06-11 21:59:09 +0300
6097
6098    liblzma: Fix a typo in a comment
6099
6100    Thanks to Sam James for spotting it.
6101
6102    Fixes: f644473a211394447824ea00518d0a214ff3f7f2
6103
6104 src/liblzma/check/crc_x86_clmul.h | 2 +-
6105 1 file changed, 1 insertion(+), 1 deletion(-)
6106
6107commit afd9b4d282a10186808c3331dad4caf79c02d55f
6108Author: Lasse Collin <lasse.collin@tukaani.org>
6109Date:   2024-05-10 15:52:26 +0300
6110
6111    liblzma: Fix a comment indentation
6112
6113 src/liblzma/check/crc_common.h | 6 +++---
6114 1 file changed, 3 insertions(+), 3 deletions(-)
6115
6116commit 50e6bff274568c568930e15094da8217e7d47d28
6117Author: Lasse Collin <lasse.collin@tukaani.org>
6118Date:   2024-05-09 22:09:12 +0300
6119
6120    liblzma: Fix white space
6121
6122 src/liblzma/check/crc32_table.c   | 10 +++++-----
6123 src/liblzma/check/crc_x86_clmul.h |  6 +++---
6124 src/liblzma/check/sha256.c        |  2 +-
6125 3 files changed, 9 insertions(+), 9 deletions(-)
6126
6127commit caea7844d3824755d053b4743c4913d73ac2db3d
6128Author: Lasse Collin <lasse.collin@tukaani.org>
6129Date:   2024-06-01 14:25:29 +0300
6130
6131    tuklib: __STDC_VERSION__ in C23 is 202311
6132
6133 src/common/tuklib_common.h | 4 +---
6134 1 file changed, 1 insertion(+), 3 deletions(-)
6135
6136commit 9e73918a4f14be754a23f74dda45ca431939a4a0
6137Author: RainRat <rainrat78@yahoo.ca>
6138Date:   2024-06-05 15:21:49 -0700
6139
6140    Fix typos
6141
6142    Closes: https://github.com/tukaani-project/xz/pull/124
6143
6144 INSTALL                           | 2 +-
6145 doc/examples/03_compress_custom.c | 2 +-
6146 src/common/tuklib_integer.h       | 2 +-
6147 src/liblzma/api/lzma/container.h  | 2 +-
6148 src/xz/mytime.c                   | 2 +-
6149 tests/test_filter_str.c           | 2 +-
6150 6 files changed, 6 insertions(+), 6 deletions(-)
6151
6152commit 04b23addf3733873667675df2439725f076c2f36
6153Author: Lasse Collin <lasse.collin@tukaani.org>
6154Date:   2024-06-07 15:47:20 +0300
6155
6156    tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2
6157
6158    GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h
6159    tries to use OS-specific byte swap methods instead. On OpenBSD those
6160    macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs
6161    and Darwin.
6162
6163    An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it
6164    is a macro. But since OpenBSD seems to be a special case under this
6165    special case of "*BSDs and Darwin", checking for __OpenBSD__ seems
6166    the more conservative choice now.
6167
6168    Thanks to Christian Weisgerber and Brad Smith who both submitted
6169    the same patch a few hours apart.
6170
6171    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
6172    Co-authored-by: Brad Smith <brad@comstyle.com>
6173    Closes: https://github.com/tukaani-project/xz/pull/126
6174
6175 src/common/tuklib_integer.h | 12 +++++++++---
6176 1 file changed, 9 insertions(+), 3 deletions(-)
6177
6178commit dc03f6290f5b9bd3d50c7e12e58dee870889d599
6179Author: Lasse Collin <lasse.collin@tukaani.org>
6180Date:   2024-06-07 15:06:59 +0300
6181
6182    liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD
6183
6184    The C code is from Christian Weisgerber, I merely reordered the OSes.
6185    Then I added the build system checks without testing them.
6186
6187    Also thanks to Brad Smith who submitted a similar patch on GitHub
6188    a few hours after Christian had sent his via email.
6189
6190    Co-authored-by: Christian Weisgerber <naddy@mips.inka.de>
6191    Closes: https://github.com/tukaani-project/xz/pull/125
6192
6193 CMakeLists.txt                  |  6 ++++++
6194 configure.ac                    |  9 +++++++++
6195 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++
6196 src/liblzma/check/crc_common.h  |  1 +
6197 4 files changed, 31 insertions(+)
6198
6199commit f5c2ae58ec68c665e62c790b842657afcb31474c
6200Author: Lasse Collin <lasse.collin@tukaani.org>
6201Date:   2024-06-05 13:55:43 +0300
6202
6203    Update THANKS
6204
6205 THANKS | 2 ++
6206 1 file changed, 2 insertions(+)
6207
6208commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418
6209Author: Lasse Collin <lasse.collin@tukaani.org>
6210Date:   2024-06-05 13:42:47 +0300
6211
6212    CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION
6213
6214    This way the version string gets into xzgrep and other scripts
6215    in full and also into liblzma.pc.
6216
6217    For the project() command, a suffixless string is required though.
6218
6219 CMakeLists.txt | 16 +++++++++++++---
6220 1 file changed, 13 insertions(+), 3 deletions(-)
6221
6222commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0
6223Author: Lasse Collin <lasse.collin@tukaani.org>
6224Date:   2024-06-05 13:30:28 +0300
6225
6226    CMake: Fix wrong version variable
6227
6228    liblzma_VERSION has never existed in the repository. xz_VERSION from
6229    the project() command was used for liblzma SOVERSION so use xz_VERSION
6230    here too.
6231
6232    The wrong variable did no harm in practice as PROJECT_VERSION
6233    was used as the fallback. It has the same value as xz_VERSION.
6234
6235    Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6
6236
6237 CMakeLists.txt | 2 +-
6238 1 file changed, 1 insertion(+), 1 deletion(-)
6239
6240commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69
6241Author: Lasse Collin <lasse.collin@tukaani.org>
6242Date:   2024-06-05 12:59:59 +0300
6243
6244    CMake: Set only "prefix" as an absolute path in liblzma.pc
6245
6246    CMake provides variables that are relative to CMAKE_INSTALL_PREFIX
6247    so use them instead of repeating the full path.
6248
6249 CMakeLists.txt | 6 +++---
6250 1 file changed, 3 insertions(+), 3 deletions(-)
6251
6252commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7
6253Author: Lasse Collin <lasse.collin@tukaani.org>
6254Date:   2024-06-04 23:59:29 +0300
6255
6256    CMake: Fix liblzma filename in Windows environments
6257
6258    This is a mess because liblzma DLL outside Cygwin and MSYS2
6259    is liblzma.dll instead of lzma.dll to avoid a conflict with
6260    lzma.dll from LZMA SDK.
6261
6262    On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll"
6263    would have been correct (and match what Libtool produces).
6264    MSYS2 likely was broken too as it uses the "msys-" prefix.
6265
6266    This change has no effect with MinGW-w64 because with that
6267    the "lib" prefix was correct already.
6268
6269    With MSVC builds this is a small breaking change that requires developers
6270    to adjust the library name when linking against liblzma. The liblzma.dll
6271    name is kept as is but the import library and static library are now
6272    lzma.lib instead of liblzma.lib. This is helpful when using pkgconf
6273    because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib"
6274    (it's converted from "-llzma" in liblzma.pc). It would be easy to
6275    keep the liblzma.lib naming but the pkgconf compatibility seems worth
6276    it in the long run. The lzma.lib name is compatible with MinGW-w64
6277    too as -llzma will find also lzma.lib.
6278
6279    vcpkg had been patching CMakeLists.txt this way since 2022 but I
6280    learned this only recently. The reasoning for the patch makes sense,
6281    and while this is a small breaking change with MSVC, it seems like
6282    a decent compromise as it keeps the DLL name the same.
6283
6284    2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch
6285    See the discussion: https://github.com/microsoft/vcpkg/pull/39024
6286
6287    Thanks to Vincent Torri for confirming the naming issue on Cygwin.
6288
6289 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++----
6290 1 file changed, 30 insertions(+), 4 deletions(-)
6291
6292commit e7a42cda7c827e016619e8cab15e2faf5d4181ae
6293Author: Lasse Collin <lasse.collin@tukaani.org>
6294Date:   2024-06-03 16:55:03 +0300
6295
6296    Fix version.sh compatiblity with Solaris
6297
6298    The ancient /bin/tr on Solaris doesn't support '\n'.
6299    With /usr/xpg4/bin/tr it works but it might not be in PATH.
6300
6301    Another problem was that sed was given input that didn't have a newline
6302    at the end. Text files must end with a newline to be portable.
6303
6304    Fix both problems:
6305
6306      - Handle multiline input within sed itself to avoid one tr invocation.
6307        The default sed even on Solaris does understand \n.
6308
6309      - Use octals in tr -d. \012 works for ASCII "line feed", it's even
6310        used as an example in the Solaris man page. But we must strip
6311        also ASCII "carriage return" \015 and EBCDIC "next line" \025.
6312        The EBCDIC case got handled with \n previously. Stripping \012
6313        and \015 on EBCDIC system won't matter as those control chars
6314        won't be present in the string in the first place.
6315
6316    An awk-based solution could be an alternative but it might need
6317    special casing on Solaris to used nawk instead of awk. The changes
6318    in this commit are smaller and should have a smaller risk for
6319    regressions. It's also possible that version.sh will be dropped
6320    entirely at some point.
6321
6322 build-aux/version.sh | 5 ++---
6323 1 file changed, 2 insertions(+), 3 deletions(-)
6324
6325commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9
6326Author: Lasse Collin <lasse.collin@tukaani.org>
6327Date:   2024-06-03 17:07:11 +0300
6328
6329    CI: Don't require po4a on Solaris
6330
6331 .github/workflows/solaris.yml | 2 +-
6332 1 file changed, 1 insertion(+), 1 deletion(-)
6333
6334commit 5229bdf5335ce18ed54beb7e646e39927663be86
6335Author: Lasse Collin <lasse.collin@tukaani.org>
6336Date:   2024-06-03 15:08:15 +0300
6337
6338    CI: Use set -e on Solaris too
6339
6340 .github/workflows/solaris.yml | 1 +
6341 1 file changed, 1 insertion(+)
6342
6343commit afa938e429c1ce07d26d02999352fb014b62ff3d
6344Author: Lasse Collin <lasse.collin@tukaani.org>
6345Date:   2024-06-03 17:44:50 +0300
6346
6347    CMake: Install liblzma.pc even with MSVC
6348
6349    I had misunderstood that it wouldn't be useful with MSVC.
6350    vcpkg had been installing liblzma.pc with custom rules since 2020,
6351    years before liblzma.pc support was added to CMakeLists.txt.
6352
6353    See:
6354    https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake
6355    https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670
6356
6357 CMakeLists.txt | 8 +++-----
6358 1 file changed, 3 insertions(+), 5 deletions(-)
6359
6360commit 35f8649f08341639a627fd06350e938124ca3622
6361Author: Sam James <sam@gentoo.org>
6362Date:   2024-06-03 06:16:23 +0100
6363
6364    ci: don't pin official GH actions via commit, just tag
6365
6366    There's no real value in doing it via commit for official GH actions. We
6367    can keep using pinned commits for unofficial actions. It's hassle for no
6368    gain.
6369
6370    Maybe going forward we can limit this further by only being paranoid
6371    for the jobs with any access to tokens.
6372
6373 .github/workflows/ci.yml         | 4 ++--
6374 .github/workflows/freebsd.yml    | 2 +-
6375 .github/workflows/netbsd.yml     | 2 +-
6376 .github/workflows/openbsd.yml    | 2 +-
6377 .github/workflows/solaris.yml    | 2 +-
6378 .github/workflows/windows-ci.yml | 4 ++--
6379 6 files changed, 8 insertions(+), 8 deletions(-)
6380
6381commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2
6382Author: Christoph Junghans <christoph.junghans@gmail.com>
6383Date:   2024-04-30 07:49:26 -0600
6384
6385    ci: set -e on openbsd
6386
6387    Closes: https://github.com/tukaani-project/xz/pull/116
6388
6389 .github/workflows/openbsd.yml | 1 +
6390 1 file changed, 1 insertion(+)
6391
6392commit 21b02dd128cf9e8c76325ec124f70381862dcf19
6393Author: Christoph Junghans <christoph.junghans@gmail.com>
6394Date:   2024-04-30 07:48:58 -0600
6395
6396    ci: set -e on netbsd
6397
6398 .github/workflows/netbsd.yml | 1 +
6399 1 file changed, 1 insertion(+)
6400
6401commit 8641f0c24c041136670c975b23408184b45431bc
6402Author: Christoph Junghans <christoph.junghans@gmail.com>
6403Date:   2024-04-25 14:56:06 -0700
6404
6405    ci: actually fail on FreeBSD
6406
6407    Without "set -e" the job will always be successful.
6408
6409    See vmactions/freebsd-vm#72
6410
6411 .github/workflows/freebsd.yml | 1 +
6412 1 file changed, 1 insertion(+)
6413
6414commit ef616683ef11f11ffdfbe0624da33905e28a70f9
6415Author: Andrew Murray <radarhere@users.noreply.github.com>
6416Date:   2024-04-25 09:24:46 +1000
6417
6418    Updated actions
6419
6420    Closes: https://github.com/tukaani-project/xz/pull/115
6421
6422 .github/workflows/ci.yml         | 4 ++--
6423 .github/workflows/windows-ci.yml | 6 +++---
6424 2 files changed, 5 insertions(+), 5 deletions(-)
6425
6426commit 57b440d316da9ac9cb312ee7e6890f5382556f10
6427Author: Sam James <sam@gentoo.org>
6428Date:   2024-06-03 02:49:40 +0100
6429
6430    ci: add po4a
6431
6432 .github/workflows/netbsd.yml  | 2 +-
6433 .github/workflows/openbsd.yml | 3 ++-
6434 2 files changed, 3 insertions(+), 2 deletions(-)
6435
6436commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95
6437Author: Sam James <sam@gentoo.org>
6438Date:   2024-04-13 21:02:04 +0100
6439
6440    ci: add Solaris
6441
6442    Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94.
6443
6444    It runs on Solaris 5.11 via a VirtualBox VM.
6445
6446 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++
6447 1 file changed, 31 insertions(+)
6448
6449commit b69768c8bd1a34fde311935c551d061ba52d9a3f
6450Author: Sam James <sam@gentoo.org>
6451Date:   2024-04-14 08:08:00 +0100
6452
6453    xz: list: suppress -Wformat-nonliteral for Solaris
6454
6455    Solaris' GCC can't understand that our use is fine, unlike modern compilers:
6456    ```
6457    list.c: In function 'print_totals_basic':
6458    list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
6459      uint64_to_str(totals.files, 0));
6460      ^~~~~~~~~~~~~
6461    cc1: all warnings being treated as errors
6462    ```
6463
6464    It's presumably because of older gettext missing format attributes.
6465
6466    This is with `gcc (GCC) 7.3.0`.
6467
6468 src/xz/list.c | 7 +++++++
6469 1 file changed, 7 insertions(+)
6470
6471commit bb90e1f66d9beb490c4c99763e79519045968710
6472Author: Lasse Collin <lasse.collin@tukaani.org>
6473Date:   2024-06-03 11:44:28 +0300
6474
6475    license-check.sh: Fix reporting of unclear license info
6476
6477    The main feature was broken because an old variable name hadn't
6478    been updated to match the rest of the script.
6479
6480 build-aux/license-check.sh | 4 ++--
6481 1 file changed, 2 insertions(+), 2 deletions(-)
6482
6483commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2
6484Author: Lasse Collin <lasse.collin@tukaani.org>
6485Date:   2024-05-31 21:36:26 +0300
6486
6487    Update THANKS
6488
6489 THANKS | 3 +++
6490 1 file changed, 3 insertions(+)
6491
6492commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de
6493Author: Lasse Collin <lasse.collin@tukaani.org>
6494Date:   2024-05-29 17:47:13 +0300
6495
6496    Translations: Run po4a/update-po
6497
6498    Now the files are in the new formatting without source file
6499    line numbers. Future updates should keep the diffs much smaller.
6500
6501 po4a/de.po    | 1592 ++++++++++---------
6502 po4a/fr.po    | 4450 +++++++++++++++++-----------------------------------
6503 po4a/ko.po    | 1592 ++++++++++---------
6504 po4a/pt_BR.po | 4817 ++++++++++++++++++---------------------------------------
6505 po4a/ro.po    | 1592 ++++++++++---------
6506 po4a/uk.po    | 1592 ++++++++++---------
6507 6 files changed, 6114 insertions(+), 9521 deletions(-)
6508
6509commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe
6510Author: Lasse Collin <lasse.collin@tukaani.org>
6511Date:   2024-05-29 17:44:53 +0300
6512
6513    Translations: Run "make -C po update-po"
6514
6515    In the past this wasn't done before releases; the Git repository
6516    just contained the files from the Translation Project. But this
6517    way it is clearer when comparing release tarballs against the
6518    Git repository. In future releases this might no longer be necessary
6519    within a stable branch as the .po files won't change so easily anymore
6520    when creating a tarball.
6521
6522 po/ca.po    | 567 +++++++++++++++++++++++++---------------
6523 po/cs.po    | 821 +++++++++++++++++++++++++++++++++++++--------------------
6524 po/da.po    | 809 +++++++++++++++++++++++++++++++++++---------------------
6525 po/de.po    | 403 ++++++++++++++--------------
6526 po/eo.po    | 403 ++++++++++++++--------------
6527 po/es.po    | 403 ++++++++++++++--------------
6528 po/fi.po    | 578 +++++++++++++++++++++++++---------------
6529 po/fr.po    | 538 +++++++++++++++++++++++---------------
6530 po/hr.po    | 403 ++++++++++++++--------------
6531 po/hu.po    | 403 ++++++++++++++--------------
6532 po/it.po    | 854 +++++++++++++++++++++++++++++++++++++++---------------------
6533 po/ko.po    | 403 ++++++++++++++--------------
6534 po/pl.po    | 403 ++++++++++++++--------------
6535 po/pt.po    | 842 +++++++++++++++++++++++++++++++++++++++--------------------
6536 po/pt_BR.po | 567 +++++++++++++++++++++++++---------------
6537 po/ro.po    | 403 ++++++++++++++--------------
6538 po/sr.po    | 838 ++++++++++++++++++++++++++++++++++++++--------------------
6539 po/sv.po    | 403 ++++++++++++++--------------
6540 po/tr.po    | 567 +++++++++++++++++++++++++---------------
6541 po/uk.po    | 403 ++++++++++++++--------------
6542 po/vi.po    | 403 ++++++++++++++--------------
6543 po/zh_CN.po | 417 +++++++++++++++--------------
6544 po/zh_TW.po | 558 ++++++++++++++++++++++++---------------
6545 23 files changed, 7257 insertions(+), 5132 deletions(-)
6546
6547commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6
6548Author: Lasse Collin <lasse.collin@tukaani.org>
6549Date:   2024-05-29 18:03:04 +0300
6550
6551    Add NEWS for 5.6.2
6552
6553 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6554 1 file changed, 130 insertions(+)
6555
6556commit a0eeb5f9369c43508610dcf00140edb8e2be92a6
6557Author: Lasse Collin <lasse.collin@tukaani.org>
6558Date:   2024-05-29 18:03:04 +0300
6559
6560    Add NEWS for 5.4.7
6561
6562 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6563 1 file changed, 89 insertions(+)
6564
6565commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162
6566Author: Lasse Collin <lasse.collin@tukaani.org>
6567Date:   2024-05-29 18:03:04 +0300
6568
6569    Add NEWS for 5.2.13
6570
6571 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6572 1 file changed, 115 insertions(+)
6573
6574commit 9284f1aea31f0eb23e2ea72f7218b271e2234762
6575Author: Lasse Collin <lasse.collin@tukaani.org>
6576Date:   2024-05-29 16:33:24 +0300
6577
6578    Build: Update po/*.po files only when needed
6579
6580    When po/xz.pot doesn't exist, running "make" or "make dist" will
6581    create it. Then the .po files will be updated but only if they
6582    actually would change more than the POT-Creation-Date line.
6583    Then the .gmo files would be generated from the .po files.
6584    This is the case before and after this commit.
6585
6586    However, "make dist" and thus "make mydist" did a forced update
6587    to the files, updating them even if the only change was the
6588    POT-Creation-Date line. This had pros and cons: It made it clear
6589    that the .po file really is in sync with the recent strings in
6590    the package. On the other hand, it added noise in form of changed
6591    files in the source tree and distribution tarballs. It can be
6592    ignored with something like "diff -I'^"POT-Creation-Date: '" but
6593    it's still a minor annoyance *if* there's not enough value in
6594    having the most recent timestamp.
6595
6596    Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
6597    update won't happen in "make dist" anymore. However, the "mydist"
6598    target will use xz.pot-update target which is the same target that
6599    is run when xz.pot doesn't exist at all yet. Thus "mydist" will
6600    ensure that the translations are up to date, without noise from
6601    changes that would affect only the POT-Creation-Date line.
6602
6603    Note that po4a always uses msgmerge with --update, so POT-Creation-Date
6604    in the man page translations is never the only change in .po files.
6605    In that sense this commit makes the message translations behave more
6606    similarly to the man page translations.
6607
6608    Distribution tarballs will still have non-reproducible POT-Creation-Date
6609    in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
6610    could be made reproducible from a Git timestamp if desired.
6611
6612 Makefile.am | 3 ++-
6613 po/Makevars | 6 +++++-
6614 2 files changed, 7 insertions(+), 2 deletions(-)
6615
6616commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599
6617Author: Lasse Collin <lasse.collin@tukaani.org>
6618Date:   2024-05-28 21:10:33 +0300
6619
6620    po4a/update-po: Disable wrapping in .pot and .po files
6621
6622    The .po files from the Translation Project come with unwrapped
6623    strings so this matches it.
6624
6625    This may reduce the noise in diffs too. When the beginning of
6626    a paragraph had changed, the rest of the lines got rewrapped
6627    in msgsid. Now it's just one very long line that changes when
6628    a paragraph has been edited.
6629
6630    The --add-location=file option was removed as redundant. The line
6631    numbers don't exist in the .pot file due to --porefs file and thus
6632    they cannot get copied to the .po files either.
6633
6634 po4a/update-po | 15 +++++++++++----
6635 1 file changed, 11 insertions(+), 4 deletions(-)
6636
6637commit b14c130a58a649f9a73392eeb122cb252327c569
6638Author: Lasse Collin <lasse.collin@tukaani.org>
6639Date:   2024-05-28 18:36:53 +0300
6640
6641    Update contact info in README
6642
6643 README | 12 +++++++++---
6644 1 file changed, 9 insertions(+), 3 deletions(-)
6645
6646commit 75f5f2e014b0ee646963f36bc6a9c840fb272353
6647Author: Lasse Collin <lasse.collin@tukaani.org>
6648Date:   2024-05-28 13:25:07 +0300
6649
6650    Translations: Use --package-name=xz-man with po4a
6651
6652    This is to match reality. See the added comment.
6653
6654 po4a/update-po | 9 ++++++++-
6655 1 file changed, 8 insertions(+), 1 deletion(-)
6656
6657commit eb217d016cfbbba1babc19a61095b3ea25898af6
6658Author: Lasse Collin <lasse.collin@tukaani.org>
6659Date:   2024-05-28 13:03:40 +0300
6660
6661    Translations: Omit --package-name from po/Makevars
6662
6663    This is closer to the reality in the po/*.po files.
6664
6665 po/Makevars | 3 +--
6666 1 file changed, 1 insertion(+), 2 deletions(-)
6667
6668commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06
6669Author: Lasse Collin <lasse.collin@tukaani.org>
6670Date:   2024-05-27 17:45:51 +0300
6671
6672    license-check.sh: Use '--' with slightly untrusted filenames
6673
6674    Names from git ls-files should be safe but if one runs it on
6675    a tree without the .git dir and there are extra files, it's
6676    safer to have the end of arguments marked with '--'.
6677
6678 build-aux/license-check.sh | 6 +++---
6679 1 file changed, 3 insertions(+), 3 deletions(-)
6680
6681commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5
6682Author: Lasse Collin <lasse.collin@tukaani.org>
6683Date:   2024-05-27 17:41:37 +0300
6684
6685    license-check.sh: Use xargs -0 instead of -d
6686
6687    Neither are in POSIX but -0 is much more portable in practice.
6688
6689    Despite the old comment, the grep usage should be portable already.
6690
6691 build-aux/license-check.sh | 11 ++++++-----
6692 1 file changed, 6 insertions(+), 5 deletions(-)
6693
6694commit 9114267038deaecf4832a5cacb5acbe6591ac839
6695Author: Lasse Collin <lasse.collin@tukaani.org>
6696Date:   2024-05-28 01:17:45 +0300
6697
6698    Translations: Omit man page line numbers from .pot and .po files
6699
6700 po4a/update-po | 5 +++++
6701 1 file changed, 5 insertions(+)
6702
6703commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6
6704Author: Lasse Collin <lasse.collin@tukaani.org>
6705Date:   2024-05-28 01:06:30 +0300
6706
6707    Translations: Use the xgettext option --add-location=file
6708
6709 po/Makevars | 3 ++-
6710 1 file changed, 2 insertions(+), 1 deletion(-)
6711
6712commit fccebe2b4fd513488fc920e4dac32562ed3c7637
6713Author: Lasse Collin <lasse.collin@tukaani.org>
6714Date:   2024-05-28 00:43:53 +0300
6715
6716    Translations: Use the msgmerge option --add-location=file
6717
6718    This way the PO file diffs are less noisy but the locations of the
6719    strings are still present at file level, just without line numbers.
6720
6721    The option is available since gettext 0.19 (2014).
6722    configure.ac requires 0.19.6.
6723
6724 po/Makevars | 2 +-
6725 1 file changed, 1 insertion(+), 1 deletion(-)
6726
6727commit f361d9ae85707a87eb28db400eb7229cec103d58
6728Author: Lasse Collin <lasse.collin@tukaani.org>
6729Date:   2024-05-27 12:22:08 +0300
6730
6731    Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
6732
6733 Makefile.am | 14 +++++++-------
6734 1 file changed, 7 insertions(+), 7 deletions(-)
6735
6736commit a26dece34793a09aac2476f954d162d03e9cf62b
6737Author: Lasse Collin <lasse.collin@tukaani.org>
6738Date:   2024-05-23 17:25:13 +0300
6739
6740    Translations: Change the home page URLs in man page translations
6741
6742    Since the source strings have changed, these would get marked as
6743    fuzzy and the original string would be used instead. The original
6744    and translated strings are identical in this case so it wouldn't
6745    matter. But patching the translations helps still because then
6746    po4a will show the correct translation percentage.
6747
6748 po4a/de.po    | 8 ++++----
6749 po4a/fr.po    | 4 ++--
6750 po4a/ko.po    | 4 ++--
6751 po4a/pt_BR.po | 4 ++--
6752 po4a/ro.po    | 8 ++++----
6753 po4a/uk.po    | 8 ++++----
6754 6 files changed, 18 insertions(+), 18 deletions(-)
6755
6756commit 24387c234b4eed1ef9a7eaa107391740b4095568
6757Author: Lasse Collin <lasse.collin@tukaani.org>
6758Date:   2024-05-23 15:15:18 +0300
6759
6760    CMake: Add manual support for 32-bit x86 assembly files
6761
6762    One has to pass -DENABLE_X86_ASM=ON to cmake to enable the
6763    CRC assembly code. Autodetection isn't done. Looking at
6764    CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname
6765    unless cross-compilation is done using a CMake toolchain file.
6766
6767    On top of this, if the code is run on modern processors that support
6768    the CLMUL instruction, then the C code should be faster (but then
6769    one should also be using a x86-64 build if possible).
6770
6771 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++---
6772 1 file changed, 31 insertions(+), 3 deletions(-)
6773
6774commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d
6775Author: Lasse Collin <lasse.collin@tukaani.org>
6776Date:   2024-05-23 14:26:45 +0300
6777
6778    CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN
6779
6780    It's more consistent with the other option() uses.
6781
6782 CMakeLists.txt | 4 ++--
6783 1 file changed, 2 insertions(+), 2 deletions(-)
6784
6785commit 6bbec3bda02bf87d24fa095074456e723589921f
6786Author: Lasse Collin <lasse.collin@tukaani.org>
6787Date:   2024-05-22 15:21:53 +0300
6788
6789    Mention license-check.sh in COPYING
6790
6791 COPYING | 6 ++++++
6792 1 file changed, 6 insertions(+)
6793
6794commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a
6795Author: Lasse Collin <lasse.collin@tukaani.org>
6796Date:   2024-05-22 15:21:53 +0300
6797
6798    Use more confident language in COPYING
6799
6800 COPYING | 8 ++++----
6801 1 file changed, 4 insertions(+), 4 deletions(-)
6802
6803commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff
6804Author: Lasse Collin <lasse.collin@tukaani.org>
6805Date:   2024-05-22 15:21:53 +0300
6806
6807    Build: Run license-check.sh in "mydist" and "dist-hook"
6808
6809    In mydist the point is to check using the file list from the Git
6810    repository. In dist-hook it is to check that the TARBALL_IGNORE
6811    patterns work when the .git dir or the "git" command aren't available.
6812
6813    Refuse to create a distribution tarball if license issues are found.
6814
6815 Makefile.am | 2 ++
6816 1 file changed, 2 insertions(+)
6817
6818commit f3434ecfcb45154508752986f4fc670b8f0555dc
6819Author: Lasse Collin <lasse.collin@tukaani.org>
6820Date:   2024-05-22 15:21:53 +0300
6821
6822    Add build-aux/license-check.sh
6823
6824    This helps in spotting files that lack SPDX license identifier
6825    and which haven't been explicitly white listed either. The script
6826    requires the .git directory to be present as only the files that
6827    are in the Git repository are checked.
6828
6829    XZ Utils isn't FSFE REUSE compliant for now.
6830
6831 Makefile.am                |   1 +
6832 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++
6833 2 files changed, 175 insertions(+)
6834
6835commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde
6836Author: Lasse Collin <lasse.collin@tukaani.org>
6837Date:   2024-04-29 17:16:38 +0300
6838
6839    Add SPDX license identifiers to files under tests/ossfuzz
6840
6841 tests/ossfuzz/Makefile                          | 2 ++
6842 tests/ossfuzz/config/fuzz_decode_alone.options  | 2 ++
6843 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++
6844 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++
6845 tests/ossfuzz/config/fuzz_lzma.dict             | 2 ++
6846 tests/ossfuzz/config/fuzz_xz.dict               | 2 ++
6847 6 files changed, 12 insertions(+)
6848
6849commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05
6850Author: Lasse Collin <lasse.collin@tukaani.org>
6851Date:   2024-04-29 17:16:06 +0300
6852
6853    Add SPDX license identifier to .codespellrc
6854
6855 .codespellrc | 2 ++
6856 1 file changed, 2 insertions(+)
6857
6858commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76
6859Author: Lasse Collin <lasse.collin@tukaani.org>
6860Date:   2024-05-22 15:12:09 +0300
6861
6862    Move entries po4a/.gitignore to the top level .gitignore
6863
6864    The po4a directory is in EXTRA_DIST and thus all files there
6865    are included in the package. .gitignore doesn't belong in the
6866    package so keep that file out of the po4a directory.
6867
6868 .gitignore      | 4 ++++
6869 po4a/.gitignore | 3 ---
6870 2 files changed, 4 insertions(+), 3 deletions(-)
6871
6872commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125
6873Author: Lasse Collin <lasse.collin@tukaani.org>
6874Date:   2024-05-20 16:55:00 +0300
6875
6876    Tests: Make the config.h grep patterns Meson compatible
6877
6878    Now the test scripts detect both
6879
6880        #define HAVE_DECODER_ARM
6881        #define HAVE_DECODER_ARM 1
6882
6883    as support for the ARM filter without confusing it with these:
6884
6885        #define HAVE_DECODER_ARM64
6886        #define HAVE_DECODER_ARM64 1
6887
6888    Previously only the ones ending with " 1" were accepted for
6889    the macros where this kind of confusion was possible.
6890
6891    This should help with Meson support because Meson's built-in
6892    features produce config.h entries that are either
6893
6894        #define FOO 1
6895        #define FOO 0
6896
6897    or:
6898
6899        #define FOO
6900        #undef FOO
6901
6902    The former method has a benefit that one can use "#if FOO" and -Wundef
6903    will catch if a #define is missing (for example, it helps catching
6904    typos). But XZ Utils has to use the latter since it has been
6905    convenient with Autoconf's default behavior.[*] While it's easy to
6906    emulate the Autoconf style (#define FOO 1 vs. no #define at all)
6907    in Meson, it results in clumsy code. Thus it's better to change
6908    the few places in the tests where this difference matters.
6909
6910    [*] While most checks in Autoconf default to the second style above,
6911        a few things use the first style (like AC_CHECK_DECLS). The mix
6912        of both styles is the most confusing as one has to remember which
6913        macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is
6914        only such config.h entry that is 1 or 0. It comes unmodified
6915        from Gnulib's visibility.m4.
6916
6917 tests/test_compress.sh | 4 ++--
6918 tests/test_files.sh    | 2 +-
6919 2 files changed, 3 insertions(+), 3 deletions(-)
6920
6921commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa
6922Author: Lasse Collin <lasse.collin@tukaani.org>
6923Date:   2024-05-20 16:55:00 +0300
6924
6925    CMake: Add comments
6926
6927 tests/tests.cmake | 2 ++
6928 1 file changed, 2 insertions(+)
6929
6930commit d35368b33e54bad2f566df99fac29ffea38e34de
6931Author: Lasse Collin <lasse.collin@tukaani.org>
6932Date:   2024-05-20 16:55:00 +0300
6933
6934    CMake: Remove the note that some tests aren't run
6935
6936    They are now in the common build configurations.
6937
6938 CMakeLists.txt | 2 --
6939 1 file changed, 2 deletions(-)
6940
6941commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba
6942Author: Lasse Collin <lasse.collin@tukaani.org>
6943Date:   2024-05-20 16:55:00 +0300
6944
6945    CMake: Add support for test_files.sh
6946
6947 tests/tests.cmake | 20 ++++++++++++++++++++
6948 1 file changed, 20 insertions(+)
6949
6950commit a7e9230af9d1f87f474fe38886eb977d4149dc9b
6951Author: Lasse Collin <lasse.collin@tukaani.org>
6952Date:   2024-05-20 16:55:00 +0300
6953
6954    Tests: Make test_files.sh more flexible
6955
6956    Add a new optional argument to specify the directory of the xz and
6957    xzdec executables.
6958
6959    If ../config.h doesn't exist, assume that all encoders and decoders
6960    are available.
6961
6962 tests/test_files.sh | 18 +++++++++++++-----
6963 1 file changed, 13 insertions(+), 5 deletions(-)
6964
6965commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8
6966Author: Lasse Collin <lasse.collin@tukaani.org>
6967Date:   2024-05-20 16:55:00 +0300
6968
6969    CMake: Add support for test_compress.sh tests
6970
6971 tests/tests.cmake | 26 ++++++++++++++++++++++++++
6972 1 file changed, 26 insertions(+)
6973
6974commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2
6975Author: Lasse Collin <lasse.collin@tukaani.org>
6976Date:   2024-05-20 16:55:00 +0300
6977
6978    Tests: Make test_compress.sh more flexible
6979
6980    Add a new optional second argument: directory of the xz and xzdec
6981    executables. This is need with the CMake build where the binaries
6982    end up in the top-level build directory.
6983
6984    If ../config.h doesn't exist, assume that all encoders and decoders
6985    are available. This will make this script usable from CMake in the
6986    most common build configuration.
6987
6988    NOTE: Since the existence of ../config.h is checked, the working
6989    directory of the test script must be a subdir in the build tree!
6990    Otherwise ../config.h would look outside the build tree.
6991
6992    Use the default check type instead of forcing CRC32 or CRC64.
6993    Now the script doesn't need to check if CRC64 is available.
6994
6995 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------
6996 1 file changed, 29 insertions(+), 12 deletions(-)
6997
6998commit 006040b29c83104403621e950ada0c8956c56b3d
6999Author: Lasse Collin <lasse.collin@tukaani.org>
7000Date:   2024-05-20 16:55:00 +0300
7001
7002    CMake: Prepare to support the test_*.sh tests
7003
7004    This is a bit hacky since the scripts grep config.h to know which
7005    features were built but the CMake build doesn't create config.h.
7006    So instead those test scripts will be run only when all relevant
7007    features have been enabled.
7008
7009 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
7010 1 file changed, 49 insertions(+)
7011
7012commit 6167607a6ea72fb74eefb943c4566e3cab528cd2
7013Author: Lasse Collin <lasse.collin@tukaani.org>
7014Date:   2024-05-20 16:55:00 +0300
7015
7016    Tests: test_suffix.sh: Add a comment
7017
7018 tests/test_suffix.sh | 3 +++
7019 1 file changed, 3 insertions(+)
7020
7021commit 4e9023857d287f624562156b60dc23d2b64c0f10
7022Author: Lasse Collin <lasse.collin@tukaani.org>
7023Date:   2024-05-18 00:34:07 +0300
7024
7025    Fix typos
7026
7027    Thanks to xx on #tukaani.
7028
7029 src/common/mythread.h                      | 2 +-
7030 src/common/tuklib_integer.h                | 2 +-
7031 src/liblzma/api/lzma/base.h                | 2 +-
7032 src/liblzma/common/filter_buffer_decoder.c | 2 +-
7033 src/liblzma/common/filter_common.c         | 2 +-
7034 src/scripts/xzgrep.in                      | 2 +-
7035 6 files changed, 6 insertions(+), 6 deletions(-)
7036
7037commit b14d08fbbc254485ace9ccfe7908674f608a62ae
7038Author: Lasse Collin <lasse.collin@tukaani.org>
7039Date:   2024-05-18 00:23:52 +0300
7040
7041    liblzma: Fix white space
7042
7043    Thanks to xx on #tukaani.
7044
7045 src/liblzma/simple/simple_coder.h | 8 ++++----
7046 1 file changed, 4 insertions(+), 4 deletions(-)
7047
7048commit 9f1a6d6f9a258886933a22239a5b81af34b28199
7049Author: Lasse Collin <lasse.collin@tukaani.org>
7050Date:   2024-05-15 23:14:17 +0300
7051
7052    Build: Temporarily disable CRC CLMUL to silence OSS Fuzz
7053
7054    The code makes aligned 16-byte reads which may read up to 15 bytes
7055    before the beginning or past the end of the buffer if the buffer
7056    is misaligned. The unneeded bytes are then ignored. It cannot cross
7057    page boundaries and thus cannot cause access violations.
7058
7059    This inherently trips address sanitizer which was already disabled
7060    with __attribute__((__no_sanitize_address__)). However, it also
7061    trips memory sanitizer if the extra bytes are uninitialized because
7062    memory sanitizer doesn't see that those bytes then get ignored by
7063    byte shuffling in the xmm registers.
7064
7065    The plan is to change the code so that all sanitizers pass but it's
7066    not finished yet (performance shouldn't get worse) so as a temporary
7067    measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even
7068    though I think think the code is fine to use (and easy enough to review
7069    the memory accesses in it too).
7070
7071 configure.ac | 4 +++-
7072 1 file changed, 3 insertions(+), 1 deletion(-)
7073
7074commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88
7075Author: Lasse Collin <lasse.collin@tukaani.org>
7076Date:   2024-05-13 17:15:04 +0300
7077
7078    xz: Document the static function get_chains_memusage()
7079
7080 src/xz/coder.c | 14 ++++++++++++--
7081 1 file changed, 12 insertions(+), 2 deletions(-)
7082
7083commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca
7084Author: Lasse Collin <lasse.collin@tukaani.org>
7085Date:   2024-05-13 17:07:22 +0300
7086
7087    xz: Rename filters_memusage_max() to get_chains_memusage()
7088
7089 src/xz/coder.c | 14 ++++++--------
7090 1 file changed, 6 insertions(+), 8 deletions(-)
7091
7092commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7
7093Author: Lasse Collin <lasse.collin@tukaani.org>
7094Date:   2024-05-13 17:04:05 +0300
7095
7096    xz: Rename filter_memusages to chains_memusages
7097
7098 src/xz/coder.c | 6 +++---
7099 1 file changed, 3 insertions(+), 3 deletions(-)
7100
7101commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417
7102Author: Lasse Collin <lasse.collin@tukaani.org>
7103Date:   2024-05-12 22:26:30 +0300
7104
7105    xz: Simplify the memory usage scaling code
7106
7107    This is closer to what it was before the --filtersX support was added,
7108    just extended to support for scaling all filter chains. The method
7109    before this commit was an extended version of the original too but
7110    it was done in a more complex way for no clear reason. In case of
7111    an error, the complex version printed fewer informative messages
7112    (a good thing) but it's not a sigificant benefit.
7113
7114    In the limit is too low even for single-threaded mode, the required
7115    amount of memory is now reported like in 5.4.x instead of like in
7116    5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It
7117    had been a FIXME in the old code but it's not clear what message
7118    makes the most sense.
7119
7120    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7121
7122 src/xz/coder.c | 163 ++++++++++++++++++++-------------------------------------
7123 1 file changed, 57 insertions(+), 106 deletions(-)
7124
7125commit 0ee56983d198b776878432703de664049b1be32e
7126Author: Lasse Collin <lasse.collin@tukaani.org>
7127Date:   2024-05-13 12:14:00 +0300
7128
7129    xz: Edit comments
7130
7131 src/xz/coder.h | 6 ++----
7132 1 file changed, 2 insertions(+), 4 deletions(-)
7133
7134commit ec82a49c3553f7206104582dbfb8b64fa433b491
7135Author: Lasse Collin <lasse.collin@tukaani.org>
7136Date:   2024-05-13 12:03:51 +0300
7137
7138    xz: Rename chain_idx to chain_num
7139
7140 src/xz/coder.c | 6 +++---
7141 1 file changed, 3 insertions(+), 3 deletions(-)
7142
7143commit a731a6993c34bbbd55abaf9c166718682b1da24f
7144Author: Lasse Collin <lasse.collin@tukaani.org>
7145Date:   2024-05-12 22:29:11 +0300
7146
7147    xz: Edit coding style
7148
7149 src/xz/coder.c | 2 +-
7150 1 file changed, 1 insertion(+), 1 deletion(-)
7151
7152commit 32eb176b89243fce3112347fe43a8ad14a9fd2be
7153Author: Lasse Collin <lasse.collin@tukaani.org>
7154Date:   2024-05-12 22:16:05 +0300
7155
7156    xz: Edit comments
7157
7158    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7159
7160 src/xz/coder.c | 8 ++------
7161 1 file changed, 2 insertions(+), 6 deletions(-)
7162
7163commit b90339f4daa510d2b1b8c550f855a99667f1d004
7164Author: Lasse Collin <lasse.collin@tukaani.org>
7165Date:   2024-05-12 21:57:49 +0300
7166
7167    xz: Fix grammar in a comment
7168
7169    Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02
7170
7171 src/xz/coder.c | 2 +-
7172 1 file changed, 1 insertion(+), 1 deletion(-)
7173
7174commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13
7175Author: Lasse Collin <lasse.collin@tukaani.org>
7176Date:   2024-05-12 21:46:56 +0300
7177
7178    xz: Rename filter_memusages to encoder_memusages
7179
7180 src/xz/coder.c | 12 ++++++------
7181 1 file changed, 6 insertions(+), 6 deletions(-)
7182
7183commit b54aa023e0ec291b06e976e5f094ab0549e7b09b
7184Author: Lasse Collin <lasse.collin@tukaani.org>
7185Date:   2024-05-12 21:42:05 +0300
7186
7187    xz: Edit coding style
7188
7189 src/xz/coder.c | 8 ++++----
7190 1 file changed, 4 insertions(+), 4 deletions(-)
7191
7192commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce
7193Author: Lasse Collin <lasse.collin@tukaani.org>
7194Date:   2024-05-12 21:31:02 +0300
7195
7196    xz: Rename filters_index to chain_num
7197
7198    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
7199
7200 src/xz/args.c  | 8 ++++----
7201 src/xz/coder.c | 8 ++++----
7202 src/xz/coder.h | 2 +-
7203 3 files changed, 9 insertions(+), 9 deletions(-)
7204
7205commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492
7206Author: Lasse Collin <lasse.collin@tukaani.org>
7207Date:   2024-05-12 21:22:43 +0300
7208
7209    xz: Replace a few uint32_t with "unsigned" to reduce the number of casts
7210
7211    These hold only tiny values.
7212
7213 src/xz/args.c  |  2 +-
7214 src/xz/coder.c | 17 ++++++++---------
7215 src/xz/coder.h |  2 +-
7216 3 files changed, 10 insertions(+), 11 deletions(-)
7217
7218commit b5e6c1113b1ba02c282bd9163eccdb521c937a78
7219Author: Lasse Collin <lasse.collin@tukaani.org>
7220Date:   2024-05-12 21:10:45 +0300
7221
7222    xz: Rename filters_used_mask to chains_used_mask
7223
7224    The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68.
7225
7226 src/xz/coder.c | 30 +++++++++++++++---------------
7227 1 file changed, 15 insertions(+), 15 deletions(-)
7228
7229commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52
7230Author: Lasse Collin <lasse.collin@tukaani.org>
7231Date:   2024-05-12 17:14:43 +0300
7232
7233    xz: Move the setting of "check" in coder_set_compression_settings()
7234
7235    It's more logical to do it in the beginning instead of in the middle
7236    of the filter chain handling.
7237
7238    Fixes: d6af7f347077b22403133239592e478931307759
7239
7240 src/xz/coder.c | 18 +++++++++---------
7241 1 file changed, 9 insertions(+), 9 deletions(-)
7242
7243commit ad146b1f42bbb678175a503a45ce525e779f9b8b
7244Author: Lasse Collin <lasse.collin@tukaani.org>
7245Date:   2024-05-12 17:09:17 +0300
7246
7247    xz: Rename "filters" to "chains"
7248
7249    The convention is that
7250
7251        lzma_filter filters[LZMA_FILTERS_MAX + 1];
7252
7253    contains the filters of a single filter chain.
7254    It was so here as well before the commit
7255    d6af7f347077b22403133239592e478931307759.
7256    It changes "filters" to a ten-element array of filter chains.
7257    It's clearer to call this array-of-arrays "chains".
7258
7259    This also renames "filter_idx" to "chain_idx" which is used
7260    as an index as in chains[chain_idx].
7261
7262 src/xz/coder.c | 68 +++++++++++++++++++++++++++++-----------------------------
7263 1 file changed, 34 insertions(+), 34 deletions(-)
7264
7265commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0
7266Author: Lasse Collin <lasse.collin@tukaani.org>
7267Date:   2024-05-12 16:56:15 +0300
7268
7269    xz: Clean up a comment
7270
7271 src/xz/coder.c | 9 +++------
7272 1 file changed, 3 insertions(+), 6 deletions(-)
7273
7274commit 2de80494ed9a4dc7db395a32a5efb770ce769804
7275Author: Lasse Collin <lasse.collin@tukaani.org>
7276Date:   2024-05-12 16:52:09 +0300
7277
7278    xz: Add clarifying assertions
7279
7280 src/xz/coder.c | 4 ++++
7281 1 file changed, 4 insertions(+)
7282
7283commit 1eaad004bf7748976324672db028e34f42802e61
7284Author: Lasse Collin <lasse.collin@tukaani.org>
7285Date:   2024-05-10 20:23:33 +0300
7286
7287    xz: Add a clarifying assertion
7288
7289    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7290
7291 src/xz/coder.c | 1 +
7292 1 file changed, 1 insertion(+)
7293
7294commit 605094329b986244833c967c04963cacc41a868d
7295Author: Lasse Collin <lasse.collin@tukaani.org>
7296Date:   2024-05-12 16:47:17 +0300
7297
7298    xz: Clarify a comment
7299
7300 src/xz/coder.c | 4 +++-
7301 1 file changed, 3 insertions(+), 1 deletion(-)
7302
7303commit 8fac2577f2dbb9491afd8500f60d004c9071df3b
7304Author: Lasse Collin <lasse.collin@tukaani.org>
7305Date:   2024-05-12 16:28:25 +0300
7306
7307    xz: Use the info collected in parse_block_list()
7308
7309    This is slightly simpler and it avoids looping through
7310    the opt_block_list array.
7311
7312 src/xz/coder.c | 95 ++++++++++++++++++++++++----------------------------------
7313 1 file changed, 39 insertions(+), 56 deletions(-)
7314
7315commit 81d350dab864b985b740742772f3b132d4c52914
7316Author: Lasse Collin <lasse.collin@tukaani.org>
7317Date:   2024-05-12 15:48:45 +0300
7318
7319    xz: Remember the filter chains and the largest Block in parse_block_list()
7320
7321 src/xz/args.c  | 18 ++++++++++++++++++
7322 src/xz/coder.c |  2 ++
7323 src/xz/coder.h | 13 +++++++++++++
7324 3 files changed, 33 insertions(+)
7325
7326commit 46ab56968f7dfdac187710a1223659d832fa1565
7327Author: Lasse Collin <lasse.collin@tukaani.org>
7328Date:   2024-05-12 15:38:48 +0300
7329
7330    xz: Update a comment and initialization of filters_used_mask
7331
7332 src/xz/coder.c | 16 ++++++++--------
7333 1 file changed, 8 insertions(+), 8 deletions(-)
7334
7335commit e89293a0baeb8663707c6b4a74fbb310ec698a8f
7336Author: Lasse Collin <lasse.collin@tukaani.org>
7337Date:   2024-05-12 15:08:10 +0300
7338
7339    xz: parse_block_list: Edit integer type casting
7340
7341 src/xz/args.c | 5 ++---
7342 1 file changed, 2 insertions(+), 3 deletions(-)
7343
7344commit 87011e40c168255cd2edea129ee68c901770603b
7345Author: Lasse Collin <lasse.collin@tukaani.org>
7346Date:   2024-05-12 14:51:37 +0300
7347
7348    xz: Make filter_memusages a local variable
7349
7350 src/xz/coder.c | 35 +++++++++++++++++++++--------------
7351 1 file changed, 21 insertions(+), 14 deletions(-)
7352
7353commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5
7354Author: Lasse Collin <lasse.collin@tukaani.org>
7355Date:   2024-05-10 20:33:08 +0300
7356
7357    xz: Remove unused code and simplify
7358
7359    opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't
7360    defined. Thus, when *encoding*, the message about *decoder* memory
7361    usage is possible to show only when both encoder and decoder have
7362    been built.
7363
7364    Since the message is shown only at V_DEBUG, skip the memusage
7365    calculation if verbosity level isn't high enough.
7366
7367    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7368
7369 src/xz/coder.c | 16 ++++------------
7370 1 file changed, 4 insertions(+), 12 deletions(-)
7371
7372commit 31358c057c9de9d6aba96bae112b2d17942de7cb
7373Author: Lasse Collin <lasse.collin@tukaani.org>
7374Date:   2024-05-10 20:22:58 +0300
7375
7376    xz: Fix integer type from uint64_t to uint32_t
7377
7378    lzma_options_lzma.dict_size is uint32_t so use it here too.
7379
7380    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7381
7382 src/xz/coder.c | 2 +-
7383 1 file changed, 1 insertion(+), 1 deletion(-)
7384
7385commit 3f71e0f3a118e1012526f94fd640a626d30cb599
7386Author: Lasse Collin <lasse.collin@tukaani.org>
7387Date:   2024-05-08 21:40:07 +0300
7388
7389    debug/translation.bash: Remove an outdated test command
7390
7391    Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs
7392    at least nice=4. It is rounded up internally by liblzma when needed.
7393
7394    Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45
7395
7396 debug/translation.bash | 1 -
7397 1 file changed, 1 deletion(-)
7398
7399commit b05a516830095a0e1937aeb31c937fb0400408b6
7400Author: Lasse Collin <lasse.collin@tukaani.org>
7401Date:   2024-05-07 20:41:28 +0300
7402
7403    Fix the date of NEWS for 5.4.5
7404
7405 NEWS | 2 +-
7406 1 file changed, 1 insertion(+), 1 deletion(-)
7407
7408commit 6d336aeb97b69c496ddc626af403f6f21c753658
7409Author: Lasse Collin <lasse.collin@tukaani.org>
7410Date:   2024-05-07 16:21:15 +0300
7411
7412    Build: Update visibility.m4 from Gnulib
7413
7414    This fixes the syntax of the "serial" line and renames
7415    a temporary variable.
7416
7417 m4/visibility.m4 | 13 +++++++------
7418 1 file changed, 7 insertions(+), 6 deletions(-)
7419
7420commit ab51e8ee610e2a893906859848f93d5cb0d5ba83
7421Author: Lasse Collin <lasse.collin@tukaani.org>
7422Date:   2024-05-07 15:05:21 +0300
7423
7424    po4a/update-po: Delete the *.po.authors files
7425
7426    These are temporary files that are needed only when running po4a.
7427    The top-level Makefile.am puts the whole po4a directory into
7428    distribution tarball (it's simpler) so deleting these temporary
7429    files is needed to prevent them from getting into tarballs.
7430
7431 po4a/update-po | 4 ++++
7432 1 file changed, 4 insertions(+)
7433
7434commit e4780244a17420cc95d5498cd6e02ad10eac6e5f
7435Author: Lasse Collin <lasse.collin@tukaani.org>
7436Date:   2024-05-07 13:12:17 +0300
7437
7438    xz: Edit comments and coding style
7439
7440 src/xz/coder.c | 25 ++++++++++++-------------
7441 1 file changed, 12 insertions(+), 13 deletions(-)
7442
7443commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c
7444Author: Lasse Collin <lasse.collin@tukaani.org>
7445Date:   2024-05-06 23:08:22 +0300
7446
7447    xz: Omit an incorrect comment
7448
7449    It likely was a leftover from a development version of the code.
7450
7451    Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f
7452
7453 src/xz/coder.c | 6 +-----
7454 1 file changed, 1 insertion(+), 5 deletions(-)
7455
7456commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937
7457Author: Lasse Collin <lasse.collin@tukaani.org>
7458Date:   2024-05-06 23:04:31 +0300
7459
7460    xz: Add braces to a for-statement and to an if-statement
7461
7462    No functional changes.
7463
7464    Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
7465    Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a
7466
7467 src/xz/coder.c | 6 ++++--
7468 1 file changed, 4 insertions(+), 2 deletions(-)
7469
7470commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57
7471Author: Lasse Collin <lasse.collin@tukaani.org>
7472Date:   2024-05-06 23:00:09 +0300
7473
7474    liblzma: Omit an unneeded array from the x86 filter
7475
7476    Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
7477
7478 src/liblzma/simple/x86.c | 5 +----
7479 1 file changed, 1 insertion(+), 4 deletions(-)
7480
7481commit 7da488cb933fdf51cfc14cb5810beb0766224380
7482Author: Lasse Collin <lasse.collin@tukaani.org>
7483Date:   2024-05-06 22:56:31 +0300
7484
7485    CMake: Add test_suffix.sh to the tests
7486
7487 tests/tests.cmake | 13 +++++++++++++
7488 1 file changed, 13 insertions(+)
7489
7490commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876
7491Author: Lasse Collin <lasse.collin@tukaani.org>
7492Date:   2024-05-06 22:55:54 +0300
7493
7494    Test: Add CMake support to test_suffix.sh
7495
7496    It needs to find the xz executable from a different directory
7497    and work without config.h.
7498
7499 tests/test_suffix.sh | 12 +++++++-----
7500 1 file changed, 7 insertions(+), 5 deletions(-)
7501
7502commit 50e19489387774bab3c4a988397d0d9c7a142a46
7503Author: Lasse Collin <lasse.collin@tukaani.org>
7504Date:   2024-05-06 20:45:34 +0300
7505
7506    Update INSTALL about MINIX 3
7507
7508    The latest stable is 3.3.0 and it's from 2014.
7509    Don't mention the older versions in INSTALL.
7510    3.3.0 ships with Clang already.
7511
7512    Testing with 3.4.0beta6 shows that tuklib_physmem
7513    works too so omit comments about that from INSTALL.
7514    Visibility warnigns weren't a problem either.
7515
7516    Thus it's enough to mention the need for --disable-threads
7517    as configure doesn't autodetect the lack of pthreads.
7518
7519 INSTALL | 20 +++++++-------------
7520 1 file changed, 7 insertions(+), 13 deletions(-)
7521
7522commit 68d18aea1422a2b86b98b71d0b019233d84e01b0
7523Author: Lasse Collin <lasse.collin@tukaani.org>
7524Date:   2024-05-02 23:00:16 +0300
7525
7526    Windows: Remove the "doc/api" line from README-Windows.txt
7527
7528    Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864
7529
7530 windows/README-Windows.txt | 2 --
7531 1 file changed, 2 deletions(-)
7532
7533commit 8ede961374613aa302a13571d662cfaea1cf91f7
7534Author: Lasse Collin <lasse.collin@tukaani.org>
7535Date:   2024-05-02 22:59:04 +0300
7536
7537    Build: Don't copy doc/api from source tree to distribution tarball
7538
7539    It was copied if it existed. This was intentional when autogen.sh
7540    still built liblzma API docs with Doxygen.
7541
7542    Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
7543
7544 Makefile.am | 5 -----
7545 1 file changed, 5 deletions(-)
7546
7547commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc
7548Author: Sam James <sam@gentoo.org>
7549Date:   2024-05-02 13:26:40 +0100
7550
7551    ci: add SPDX headers
7552
7553    I've checked over each of these and they're straightforward applications
7554    of the relevant Github Actions.
7555
7556 .github/workflows/freebsd.yml | 2 ++
7557 .github/workflows/netbsd.yml  | 2 ++
7558 .github/workflows/openbsd.yml | 2 ++
7559 3 files changed, 6 insertions(+)
7560
7561commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3
7562Author: Yaroslav Halchenko <debian@onerussian.com>
7563Date:   2024-03-29 14:37:24 -0400
7564
7565    codespell: Ignore the THANKS file and debbugs.gnu.org URL
7566
7567    This way "codespell -i 0" is silent.
7568
7569    This is the first commit from
7570    https://github.com/tukaani-project/xz/pull/93
7571    with trivial edits by Lasse Collin.
7572
7573 .codespellrc | 6 +++++-
7574 1 file changed, 5 insertions(+), 1 deletion(-)
7575
7576commit 905bfc74fe2670fd9c39014803017ab53d325401
7577Author: Lasse Collin <lasse.collin@tukaani.org>
7578Date:   2024-04-30 14:37:11 +0300
7579
7580    Add .gitattributes to clean up git-archive output
7581
7582 .gitattributes | 7 +++++++
7583 1 file changed, 7 insertions(+)
7584
7585commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501
7586Author: Lasse Collin <lasse.collin@tukaani.org>
7587Date:   2024-04-19 12:11:09 +0300
7588
7589    xzdec: Support Landlock ABI version 4
7590
7591    This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899
7592    but I forgot to do the same in xzdec.
7593
7594    The Landlock sandbox in xzdec could be stricter as now it's
7595    active only for the last file being decompressed. In xz,
7596    read-only sandbox is used for multi-file case. On the other hand,
7597    xz doesn't go to the strictest mode when processing the last file
7598    when more than one file was specified; xzdec does.
7599
7600 src/xzdec/xzdec.c | 18 ++++++++++++++----
7601 1 file changed, 14 insertions(+), 4 deletions(-)
7602
7603commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8
7604Author: Lasse Collin <lasse.collin@tukaani.org>
7605Date:   2024-04-30 22:22:45 +0300
7606
7607    liblzma: Fix incorrect function type error from sanitizer
7608
7609    Clang 17 with -fsanitize=address,undefined:
7610
7611        src/liblzma/common/filter_common.c:366:8: runtime error:
7612            call to function encoder_find through pointer to incorrect
7613            function type 'const lzma_filter_coder *(*)(unsigned long)'
7614        src/liblzma/common/filter_encoder.c:187: note:
7615            encoder_find defined here
7616
7617    Use a wrapper function to get the correct type neatly.
7618    This reduces the number of casts needed too.
7619
7620    This issue could be a problem with control flow integrity (CFI)
7621    methods that check the function type on indirect function calls.
7622
7623    Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680
7624
7625 src/liblzma/common/filter_decoder.c | 15 ++++++++++++---
7626 src/liblzma/common/filter_encoder.c | 17 +++++++++++++----
7627 2 files changed, 25 insertions(+), 7 deletions(-)
7628
7629commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff
7630Author: Lasse Collin <lasse.collin@tukaani.org>
7631Date:   2024-04-30 21:41:11 +0300
7632
7633    xz: Avoid arithmetic on a null pointer
7634
7635    It's undefined behavior. The result wasn't ever used as it occurred
7636    in the last iteration of a loop.
7637
7638    Clang 17 with -fsanitize=address,undefined:
7639
7640        $ src/xz/xz --block-list=123
7641        src/xz/args.c:164:12: runtime error: applying non-zero offset 1
7642            to null pointer
7643
7644    Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43
7645    Co-authored-by: Sam James <sam@gentoo.org>
7646
7647 src/xz/args.c | 8 +++++++-
7648 1 file changed, 7 insertions(+), 1 deletion(-)
7649
7650commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5
7651Author: Lasse Collin <lasse.collin@tukaani.org>
7652Date:   2024-04-27 20:42:00 +0300
7653
7654    CMake: Support building liblzma API docs using Doxygen
7655
7656    This is disabled by default to match the default in Autotools.
7657    Use -DUSE_DOXYGEN=ON to enable Doxygen usage.
7658
7659    This uses the update-doxygen script, thus this is under if(UNIX)
7660    although Doxygen itself can run on Windows too.
7661
7662 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++---------
7663 1 file changed, 31 insertions(+), 9 deletions(-)
7664
7665commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37
7666Author: Lasse Collin <lasse.collin@tukaani.org>
7667Date:   2024-04-20 23:36:39 +0300
7668
7669    CMake: List API headers in LIBLZMA_API_HEADERS variable
7670
7671    This way the same list will be usable in more than one location.
7672
7673 CMakeLists.txt | 21 ++++++++++++---------
7674 1 file changed, 12 insertions(+), 9 deletions(-)
7675
7676commit 541406bee3f09e9813103c6406b10fc6ab2e0d30
7677Author: Lasse Collin <lasse.collin@tukaani.org>
7678Date:   2024-04-19 15:16:42 +0300
7679
7680    PACKAGERS: Document the optional Doxygen usage
7681
7682    Also add a note that packagers should check the licensing
7683    of the Doxygen output.
7684
7685 PACKAGERS | 19 ++++++++++---------
7686 1 file changed, 10 insertions(+), 9 deletions(-)
7687
7688commit e21efdf96f39378fe417479f89e97046680406f5
7689Author: Lasse Collin <lasse.collin@tukaani.org>
7690Date:   2024-04-27 17:47:09 +0300
7691
7692    Build: Add --enable-doxygen to generate and install API docs
7693
7694    It requires Doxygen. This option is disabled by default.
7695
7696 INSTALL                     |  6 ++++++
7697 configure.ac                | 10 +++++++++-
7698 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++
7699 3 files changed, 34 insertions(+), 1 deletion(-)
7700
7701commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b
7702Author: Lasse Collin <lasse.collin@tukaani.org>
7703Date:   2024-04-19 15:15:17 +0300
7704
7705    Doxygen: update-doxygen: Support out-of-tree builds
7706
7707    Also, now $0 is used to refer to the script itself.
7708
7709 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++-------------------
7710 1 file changed, 68 insertions(+), 42 deletions(-)
7711
7712commit 2c519f641f266fd897edf680827d9c905f411440
7713Author: Lasse Collin <lasse.collin@tukaani.org>
7714Date:   2024-04-28 21:08:00 +0300
7715
7716    Doxygen: Simplify Doxyfile and add SPDX license identifier
7717
7718    This omits all comments and a few non-default options that weren't
7719    needed. Now it contains no copyrighted content from Doxygen itself.
7720
7721 doxygen/Doxyfile | 2698 +-----------------------------------------------------
7722 1 file changed, 25 insertions(+), 2673 deletions(-)
7723
7724commit bdba39a57530d11b88440df8024002be3d09e4a1
7725Author: Lasse Collin <lasse.collin@tukaani.org>
7726Date:   2024-04-19 15:14:02 +0300
7727
7728    Doxygen: Don't strip JavaScript anymore
7729
7730    The stripping method worked well with Doxygen 1.8 and 1.9 but
7731    it doesn't work with Doxygen 1.10 anymore. Since we won't ship
7732    pre-generated liblzma API docs anymore, the extra bloat and
7733    extra license info of the JavaScript files won't affect the
7734    upstream source package anymore.
7735
7736 doxygen/update-doxygen | 21 ---------------------
7737 1 file changed, 21 deletions(-)
7738
7739commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139
7740Author: Lasse Collin <lasse.collin@tukaani.org>
7741Date:   2024-04-19 17:26:41 +0300
7742
7743    Build: Remove old Doxygen rules from top-level Makefile.am
7744
7745 Makefile.am | 12 ------------
7746 1 file changed, 12 deletions(-)
7747
7748commit fd7faa4c338a42a6a40e854b837d285ae2e8c609
7749Author: Lasse Collin <lasse.collin@tukaani.org>
7750Date:   2024-04-19 15:10:06 +0300
7751
7752    Update COPYING to match the autogen.sh and mydist changes
7753
7754 COPYING | 11 -----------
7755 1 file changed, 11 deletions(-)
7756
7757commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3
7758Author: Lasse Collin <lasse.collin@tukaani.org>
7759Date:   2024-04-19 17:23:43 +0300
7760
7761    Build: Don't run update-doxygen as part of "make mydist"
7762
7763 Makefile.am | 1 -
7764 1 file changed, 1 deletion(-)
7765
7766commit e9be74f5b129fe8a5388d588e68b1b7f5168a310
7767Author: Lasse Collin <lasse.collin@tukaani.org>
7768Date:   2024-04-19 15:09:48 +0300
7769
7770    autogen.sh: Don't generated Doxygen docs anymore
7771
7772 autogen.sh | 18 +++---------------
7773 1 file changed, 3 insertions(+), 15 deletions(-)
7774
7775commit 252aa1d67bc015eeba462803ab72edeb7744d864
7776Author: Lasse Collin <lasse.collin@tukaani.org>
7777Date:   2024-04-19 17:41:36 +0300
7778
7779    windows/build.bash: Omit Doxygen docs from the package
7780
7781    They will be omitted from the source tarball and I don't want
7782    to make Doxygen a dependency of build.bash.
7783
7784 windows/build.bash | 4 ++--
7785 1 file changed, 2 insertions(+), 2 deletions(-)
7786
7787commit 634095364d87444d62d8ec54c134c0cd4705f5d7
7788Author: Lasse Collin <lasse.collin@tukaani.org>
7789Date:   2024-04-19 14:14:47 +0300
7790
7791    README: Don't mention PDF man pages anymore
7792
7793 README | 6 +++---
7794 1 file changed, 3 insertions(+), 3 deletions(-)
7795
7796commit dc684bf76ea23574ee9d88382057381e04e6089a
7797Author: Lasse Collin <lasse.collin@tukaani.org>
7798Date:   2024-04-19 14:10:39 +0300
7799
7800    Build: Omit PDF man pages from the package
7801
7802    pdf-local rule was added to create the PDFs still with "make pdf".
7803    The install rules are missing but that likely doesn't matter at all.
7804
7805 Makefile.am | 29 +++++++++++++++++++----------
7806 1 file changed, 19 insertions(+), 10 deletions(-)
7807
7808commit e3531ab4125cbd5c01ebd3200791350960547189
7809Author: Lasse Collin <lasse.collin@tukaani.org>
7810Date:   2024-04-19 13:54:39 +0300
7811
7812    windows/build.bash: Don't copy PDF man pages to the package
7813
7814 windows/README-Windows.txt | 2 +-
7815 windows/build.bash         | 2 +-
7816 2 files changed, 2 insertions(+), 2 deletions(-)
7817
7818commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7
7819Author: Lasse Collin <lasse.collin@tukaani.org>
7820Date:   2024-04-28 01:34:50 +0300
7821
7822    Tests: test_index: Fix failures when features are disabled
7823
7824    Fixes: cd88423e76d54eb72aea037364f3ebb21f122503
7825
7826 tests/test_index.c | 13 ++++++++-----
7827 1 file changed, 8 insertions(+), 5 deletions(-)
7828
7829commit aaff75c3486c4489ce88b0efb36b41cf138af7c3
7830Author: Lasse Collin <lasse.collin@tukaani.org>
7831Date:   2024-04-20 17:09:11 +0300
7832
7833    CMake: Keep the build working if the "tests" directory is missing
7834
7835    This moves the tests section as is from CMakeLists.txt into
7836    tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake
7837    if the latter file exists.
7838
7839    Now it's possible to delete the whole "tests" directory and
7840    building with CMake will still work normally, just without
7841    the tests. This way the tests are readily available for those
7842    who want them, and those who won't run the tests anyway have
7843    a straightforward way to ensure that nothing from the "tests"
7844    directory can affect the build process.
7845
7846 CMakeLists.txt    | 76 ++---------------------------------------------
7847 tests/Makefile.am |  1 +
7848 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
7849 3 files changed, 92 insertions(+), 73 deletions(-)
7850
7851commit a5f2aa5618fe9183706c9c514c3067985f6c338b
7852Author: Lasse Collin <lasse.collin@tukaani.org>
7853Date:   2024-04-20 13:12:50 +0300
7854
7855    Tests: Remove x86 and SPARC BCJ tests
7856
7857    These are very old but the exact test file isn't easy to reproduce
7858    as it was compiled from a short C program (bcj_test.c) long ago.
7859    These tests weren't very good anyway, just a little better than nothing.
7860
7861 tests/Makefile.am                      |   7 ----
7862 tests/bcj_test.c                       |  64 ---------------------------------
7863 tests/compress_prepared_bcj_sparc      | Bin 1240 -> 0 bytes
7864 tests/compress_prepared_bcj_x86        | Bin 1388 -> 0 bytes
7865 tests/files/README                     |   8 -----
7866 tests/files/good-1-sparc-lzma2.xz      | Bin 612 -> 0 bytes
7867 tests/files/good-1-x86-lzma2.xz        | Bin 716 -> 0 bytes
7868 tests/test_compress_prepared_bcj_sparc |   4 ---
7869 tests/test_compress_prepared_bcj_x86   |   4 ---
7870 9 files changed, 87 deletions(-)
7871
7872commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07
7873Author: Lasse Collin <lasse.collin@tukaani.org>
7874Date:   2024-04-27 18:30:40 +0300
7875
7876    Tests: test_index: Edit a misleading test
7877
7878 tests/test_index.c | 7 +++++--
7879 1 file changed, 5 insertions(+), 2 deletions(-)
7880
7881commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd
7882Author: Lasse Collin <lasse.collin@tukaani.org>
7883Date:   2024-04-27 16:46:01 +0300
7884
7885    Tests: test_index: Use minimal values to test integer overflow
7886
7887 tests/test_index.c | 4 ++--
7888 1 file changed, 2 insertions(+), 2 deletions(-)
7889
7890commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d
7891Author: Lasse Collin <lasse.collin@tukaani.org>
7892Date:   2024-04-27 15:13:39 +0300
7893
7894    Tests: test_index: Test lzma_index_buffer_decode() more
7895
7896 tests/test_index.c | 29 ++++++++++++++++++++++++++---
7897 1 file changed, 26 insertions(+), 3 deletions(-)
7898
7899commit 575b11b0d291e66c5fce31ce7a72f11436d57c83
7900Author: Lasse Collin <lasse.collin@tukaani.org>
7901Date:   2024-04-27 15:08:29 +0300
7902
7903    Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR
7904
7905    On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was
7906    already done but this adds a test for that case too.
7907
7908 tests/test_index.c | 31 +++++++++++++++++++++++++++----
7909 1 file changed, 27 insertions(+), 4 deletions(-)
7910
7911commit 2c970debdb285823f01f75e875561d893345ac2b
7912Author: Lasse Collin <lasse.collin@tukaani.org>
7913Date:   2024-04-27 15:01:25 +0300
7914
7915    Tests: test_index: Test lzma_index_buffer_encode() with empty output buf
7916
7917 tests/test_index.c | 3 +++
7918 1 file changed, 3 insertions(+)
7919
7920commit cd88423e76d54eb72aea037364f3ebb21f122503
7921Author: Lasse Collin <lasse.collin@tukaani.org>
7922Date:   2024-04-27 14:59:55 +0300
7923
7924    Tests: test_index: Replace if-statements with tuktest assertions
7925
7926 tests/test_index.c | 22 +++++++++-------------
7927 1 file changed, 9 insertions(+), 13 deletions(-)
7928
7929commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51
7930Author: Lasse Collin <lasse.collin@tukaani.org>
7931Date:   2024-04-27 14:56:16 +0300
7932
7933    Tests: test_index: Make it clear that my_alloc() has no integer overflows
7934
7935    liblzma guarantees that the product of the allocation size arguments
7936    will fit in size_t.
7937
7938    Putting the pre-increment in the if-statement was clearly wrong
7939    although in practice it didn't matter here as the function is
7940    called only a couple of times.
7941
7942 tests/test_index.c | 5 ++++-
7943 1 file changed, 4 insertions(+), 1 deletion(-)
7944
7945commit 12313a3b6596cdcf012e180597f84d231f8730d3
7946Author: Lasse Collin <lasse.collin@tukaani.org>
7947Date:   2024-04-27 14:51:52 +0300
7948
7949    Tests: test_index: Verify also iter.block.number_in_stream
7950
7951 tests/test_index.c | 2 ++
7952 1 file changed, 2 insertions(+)
7953
7954commit ad2654010d9d641ce1601beeff00630027e6bcd4
7955Author: Lasse Collin <lasse.collin@tukaani.org>
7956Date:   2024-04-27 14:51:06 +0300
7957
7958    Tests: test_index: Check cases that aren't a multiple of 4 bytes
7959
7960 tests/test_index.c | 33 +++++++++++++++++++++++++--------
7961 1 file changed, 25 insertions(+), 8 deletions(-)
7962
7963commit 2524fcf2b68b662035437cee8edbe80067c0c240
7964Author: Lasse Collin <lasse.collin@tukaani.org>
7965Date:   2024-04-27 14:40:25 +0300
7966
7967    Tests: test_index: Edit comments and white space
7968
7969 tests/test_index.c | 18 +++++++++++-------
7970 1 file changed, 11 insertions(+), 7 deletions(-)
7971
7972commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0
7973Author: Lasse Collin <lasse.collin@tukaani.org>
7974Date:   2024-04-27 14:33:38 +0300
7975
7976    liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR
7977
7978    If the arguments to lzma_index_decoder() or lzma_index_buffer_decode()
7979    were such that LZMA_PROG_ERROR was returned, the lzma_index **i
7980    argument wasn't touched even though the API docs say that *i = NULL
7981    is done if an error occurs. This obviously won't be done even now
7982    if i == NULL but otherwise it is best to do it due to the wording
7983    in the API docs.
7984
7985    In practice this matters very little: The problem can occur only
7986    if the functions are called with invalid arguments, that is,
7987    the calling application must already have a bug.
7988
7989 src/liblzma/common/index_decoder.c | 11 +++++++++++
7990 1 file changed, 11 insertions(+)
7991
7992commit 0478473953f50716a2bc37b619b1c7dc2682b1ad
7993Author: Lasse Collin <lasse.collin@tukaani.org>
7994Date:   2024-04-26 18:25:18 +0300
7995
7996    CMake: Bump maximum policy version to 3.29
7997
7998 CMakeLists.txt | 2 +-
7999 1 file changed, 1 insertion(+), 1 deletion(-)
8000
8001commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3
8002Author: Sam James <sam@gentoo.org>
8003Date:   2024-04-13 22:30:44 +0100
8004
8005    ci: add NetBSD
8006
8007 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++
8008 1 file changed, 29 insertions(+)
8009
8010commit 72c210336de26fb87a928160d025fa10a638d23b
8011Author: Sam James <sam@gentoo.org>
8012Date:   2024-04-13 23:49:26 +0100
8013
8014    ci: add FreeBSD
8015
8016 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++
8017 1 file changed, 29 insertions(+)
8018
8019commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2
8020Author: Sam James <sam@gentoo.org>
8021Date:   2024-04-13 23:16:08 +0100
8022
8023    ci: add OpenBSD
8024
8025 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++
8026 1 file changed, 31 insertions(+)
8027
8028commit c7ef767c49351743d8d011574abb9e200bf6b24f
8029Author: Sam James <sam@gentoo.org>
8030Date:   2024-04-15 05:53:01 +0100
8031
8032    liblzma: outqueue: add header guard
8033
8034    Reported by github's codeql.
8035
8036 src/liblzma/common/outqueue.h | 5 +++++
8037 1 file changed, 5 insertions(+)
8038
8039commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c
8040Author: Sam James <sam@gentoo.org>
8041Date:   2024-04-15 05:53:56 +0100
8042
8043    liblzma: easy_preset: add header guard
8044
8045    Reported by github's codeql.
8046
8047 src/liblzma/common/easy_preset.h | 5 +++++
8048 1 file changed, 5 insertions(+)
8049
8050commit 4ffc60f32397371769b7d6b5e3ed8626292d58df
8051Author: Lasse Collin <lasse.collin@tukaani.org>
8052Date:   2024-04-25 14:00:57 +0300
8053
8054    tuklib_integer: Rename bswapXX to byteswapXX
8055
8056    The __builtin_bswapXX from GCC and Clang are preferred when
8057    they are available. This can allow compilers to emit the x86 MOVBE
8058    instruction instead of doing a load + byteswap as two instructions
8059    (which would happen if the byteswapping is done in inline asm).
8060
8061    bswap16, bswap32, and bswap64 exist in system headers on *BSDs
8062    and Darwin. #defining bswap16 on NetBSD results in a warning about
8063    macro redefinition. It's safest to avoid this namespace conflict
8064    completely.
8065
8066    No OS supported by tuklib_integer.h uses byteswapXX names and
8067    a web search doesn't immediately find any obvious danger of
8068    namespace conflicts. So let's try these still-pretty-short names
8069    for the macros.
8070
8071    Thanks to Sam James for pointing out the compiler warning on
8072    NetBSD 10.0.
8073
8074 src/common/tuklib_integer.h        | 47 ++++++++++++++++++++------------------
8075 src/liblzma/check/crc32_fast.c     |  4 ++--
8076 src/liblzma/check/crc32_tablegen.c |  2 +-
8077 src/liblzma/check/crc64_fast.c     |  4 ++--
8078 src/liblzma/check/crc64_tablegen.c |  2 +-
8079 5 files changed, 31 insertions(+), 28 deletions(-)
8080
8081commit 08ab0966a75b501aa7c717622223f0c13a113c75
8082Author: Lasse Collin <lasse.collin@tukaani.org>
8083Date:   2024-04-24 01:20:26 +0300
8084
8085    liblzma: API doc cleanups
8086
8087 src/liblzma/api/lzma/container.h | 2 +-
8088 src/liblzma/api/lzma/index.h     | 6 +++---
8089 src/liblzma/api/lzma/vli.h       | 5 ++---
8090 3 files changed, 6 insertions(+), 7 deletions(-)
8091
8092commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989
8093Author: Lasse Collin <lasse.collin@tukaani.org>
8094Date:   2024-04-23 16:35:33 +0300
8095
8096    Tests: test_filter_str: Add a few assertions
8097
8098 tests/test_filter_str.c | 4 ++++
8099 1 file changed, 4 insertions(+)
8100
8101commit 26c69be80523b05c84dea86c47c4ddd9a10945d7
8102Author: Lasse Collin <lasse.collin@tukaani.org>
8103Date:   2024-04-23 16:35:08 +0300
8104
8105    Tests: test_filter_str: Move one assertion and add a comment
8106
8107 tests/test_filter_str.c | 6 ++++--
8108 1 file changed, 4 insertions(+), 2 deletions(-)
8109
8110commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b
8111Author: Lasse Collin <lasse.collin@tukaani.org>
8112Date:   2024-04-23 16:26:06 +0300
8113
8114    Tests: test_filter_str: Tweak comments and white space
8115
8116 tests/test_filter_str.c | 3 +++
8117 1 file changed, 3 insertions(+)
8118
8119commit c92663aa1bd576e0615498a4189acf0df12e84b9
8120Author: Lasse Collin <lasse.collin@tukaani.org>
8121Date:   2024-04-23 16:25:22 +0300
8122
8123    Tests: test_filter_str: Add missing RISC-V case
8124
8125    Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
8126
8127 tests/test_filter_str.c | 3 +++
8128 1 file changed, 3 insertions(+)
8129
8130commit b0366df1d7ed26268101f9303a001c91c0806dfc
8131Author: Lasse Collin <lasse.collin@tukaani.org>
8132Date:   2024-04-22 22:23:32 +0300
8133
8134    Tests: test_filter_str: Test *error_pos more thoroughly
8135
8136 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++-
8137 1 file changed, 76 insertions(+), 1 deletion(-)
8138
8139commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d
8140Author: Lasse Collin <lasse.collin@tukaani.org>
8141Date:   2024-04-22 21:54:39 +0300
8142
8143    liblzma: lzma_str_to_filters: Set *error_pos on all errors
8144
8145    The API docs clearly say that if error_pos isn't NULL then *error
8146    is always set on any error. However, it wasn't touched if str == NULL
8147    or filters == NULL or unsupported flags were specified.
8148
8149    Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203
8150
8151 src/liblzma/common/string_conversion.c | 6 ++++++
8152 1 file changed, 6 insertions(+)
8153
8154commit ed8e552395701fbf046027cebc8be4a6755b263f
8155Author: Lasse Collin <lasse.collin@tukaani.org>
8156Date:   2024-04-22 20:31:25 +0300
8157
8158    liblzma: Clean up white space
8159
8160 src/liblzma/lz/lz_encoder.h | 2 +-
8161 1 file changed, 1 insertion(+), 1 deletion(-)
8162
8163commit 2f06920f20b1ad63b7953dc09569e1d424998849
8164Author: Lasse Collin <lasse.collin@tukaani.org>
8165Date:   2024-04-22 18:35:19 +0300
8166
8167    Tests: test_filter_flags: Edit comments and style
8168
8169 tests/test_filter_flags.c | 13 +++++++++----
8170 1 file changed, 9 insertions(+), 4 deletions(-)
8171
8172commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82
8173Author: Lasse Collin <lasse.collin@tukaani.org>
8174Date:   2024-04-22 16:39:44 +0300
8175
8176    Tests: Fix C99/C11 compatibility when features are disabled
8177
8178    The array could become empty and then the initializer would be
8179    simply {} which is allowed only in GNU-C and C23.
8180
8181 tests/test_filter_flags.c | 18 ++++++++----------
8182 1 file changed, 8 insertions(+), 10 deletions(-)
8183
8184commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d
8185Author: Lasse Collin <lasse.collin@tukaani.org>
8186Date:   2024-04-21 20:32:16 +0300
8187
8188    DOS: Omit useless defines from config.h
8189
8190 dos/config.h | 12 ------------
8191 1 file changed, 12 deletions(-)
8192
8193commit fc1921b04b8840caaa777c2bd5340d41b259da20
8194Author: Lasse Collin <lasse.collin@tukaani.org>
8195Date:   2024-04-21 20:27:50 +0300
8196
8197    Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h
8198
8199 configure.ac | 6 ------
8200 1 file changed, 6 deletions(-)
8201
8202commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4
8203Author: Lasse Collin <lasse.collin@tukaani.org>
8204Date:   2024-04-19 22:04:21 +0300
8205
8206    liblzma: Silence a warning from Coverity static analysis
8207
8208    It is logical why it cannot know for sure that the value has
8209    to be at most 4 if it is less than 16.
8210
8211    The x86 filter is based on a very old LZMA SDK version. Newer
8212    ones have quite a different implementation for the same filter.
8213
8214    Thanks to Sam James.
8215
8216 src/liblzma/simple/x86.c | 12 +++++-------
8217 1 file changed, 5 insertions(+), 7 deletions(-)
8218
8219commit e89d3e83b4496d0b5410870634970c0aa9721d59
8220Author: Lasse Collin <lasse.collin@tukaani.org>
8221Date:   2024-04-19 23:18:19 +0300
8222
8223    Update .gitignore
8224
8225 .gitignore | 21 ++++++++-------------
8226 1 file changed, 8 insertions(+), 13 deletions(-)
8227
8228commit 86fc4ee859709da0ff9617a1490f13ddac0a109b
8229Author: Lasse Collin <lasse.collin@tukaani.org>
8230Date:   2024-04-19 20:53:24 +0300
8231
8232    Tests: test_lzip_decoder: Tweak coding style and comments
8233
8234 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------
8235 1 file changed, 28 insertions(+), 30 deletions(-)
8236
8237commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5
8238Author: Lasse Collin <lasse.collin@tukaani.org>
8239Date:   2024-04-19 20:51:36 +0300
8240
8241    Tests: test_lzip_decoder: Remove redundant initializations
8242
8243 tests/test_lzip_decoder.c | 6 ++----
8244 1 file changed, 2 insertions(+), 4 deletions(-)
8245
8246commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9
8247Author: Lasse Collin <lasse.collin@tukaani.org>
8248Date:   2024-04-19 20:47:24 +0300
8249
8250    Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls
8251
8252 tests/test_lzip_decoder.c | 12 ++----------
8253 1 file changed, 2 insertions(+), 10 deletions(-)
8254
8255commit eeca8f7c5baf1ad69606bb734d5001763466d58f
8256Author: Lasse Collin <lasse.collin@tukaani.org>
8257Date:   2024-04-15 20:35:07 +0300
8258
8259    xz: Fix white space error.
8260
8261    Thanks to xx on #tukaani.
8262
8263 src/xz/args.c | 2 +-
8264 1 file changed, 1 insertion(+), 1 deletion(-)
8265
8266commit 462ca9409940a19f743daee6b3bcc611277d0007
8267Author: Sam James <sam@gentoo.org>
8268Date:   2024-04-11 23:01:44 +0100
8269
8270    xz: add missing noreturn for message_filters_help
8271
8272    Fixes: a165d7df1964121eb9df715e6f836a31c865beef
8273
8274 src/xz/message.h | 1 +
8275 1 file changed, 1 insertion(+)
8276
8277commit 863f13d2828b99b0539ce73f9cf85bde32358034
8278Author: Sam James <sam@gentoo.org>
8279Date:   2024-04-11 19:34:04 +0100
8280
8281    xz: signals: suppress -Wsign-conversion on macOS
8282
8283    On macOS, we get:
8284    ```
8285    signals.c: In function 'signals_init':
8286    signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
8287       76 |                 sigaddset(&hooked_signals, sigs[i]);
8288          |                 ^~~~~~~~~
8289    signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
8290       81 |                 sigaddset(&hooked_signals, message_progress_sigs[i]);
8291          |                 ^~~~~~~~~
8292    signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion]
8293       86 |         sigaddset(&hooked_signals, SIGTSTP);
8294          |         ^~~~~~~~~
8295    ```
8296
8297    We use `int` for `hooked_signals` but we can't just cast to whatever
8298    `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int
8299    on macOS. On macOS, `sigaddset` is implemented as a macro.
8300
8301    Just suppress -Wsign-conversion for `signals_init` for macOS given
8302    there's no real nice way of fixing this.
8303
8304 src/xz/signals.c | 7 +++++++
8305 1 file changed, 7 insertions(+)
8306
8307commit fcbd0d199933a69713cb293cbd7409a757d854cd
8308Author: Lasse Collin <lasse.collin@tukaani.org>
8309Date:   2024-04-13 22:19:40 +0300
8310
8311    Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling
8312
8313 tests/test_microlzma.c | 8 ++++++++
8314 1 file changed, 8 insertions(+)
8315
8316commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e
8317Author: Lasse Collin <lasse.collin@tukaani.org>
8318Date:   2024-04-13 18:05:31 +0300
8319
8320    Tests: test_microlzma: Tweak comments, coding style, and minor details
8321
8322    A few lines were reordered, a few ARRAY_SIZE were changed to sizeof,
8323    and a few uint32_t were changed to size_t. No real functional changes
8324    were intended.
8325
8326 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++----------------------
8327 1 file changed, 83 insertions(+), 66 deletions(-)
8328
8329commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992
8330Author: Ryan Carsten Schmidt <git@ryandesign.com>
8331Date:   2024-04-12 19:31:13 -0500
8332
8333    CI: Use only the active CPUs on macOS
8334
8335    hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts
8336    only the active CPUs.
8337
8338 build-aux/ci_build.bash | 2 +-
8339 1 file changed, 1 insertion(+), 1 deletion(-)
8340
8341commit 73f629e321b74f68c9954728fa4f19261afccf46
8342Author: Sam James <sam@gentoo.org>
8343Date:   2024-04-10 18:33:55 +0100
8344
8345    ci: rename ci_build.sh -> ci_build.bash
8346
8347    We discussed the name and it's less cognitive load to just call it '.bash'
8348    so you don't have an immediate question about if bashisms are OK.
8349
8350 .github/workflows/ci.yml                 | 52 ++++++++++++++++----------------
8351 .github/workflows/windows-ci.yml         | 20 ++++++------
8352 build-aux/{ci_build.sh => ci_build.bash} |  0
8353 3 files changed, 36 insertions(+), 36 deletions(-)
8354
8355commit 8709407a9ef8e7e8aec117879400e4dd3e227ada
8356Author: Sam James <sam@gentoo.org>
8357Date:   2024-04-10 17:42:23 +0100
8358
8359    ci: build in parallel by default
8360
8361 build-aux/ci_build.sh | 2 ++
8362 1 file changed, 2 insertions(+)
8363
8364commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f
8365Author: Sam James <sam@gentoo.org>
8366Date:   2024-04-10 15:41:08 +0100
8367
8368    ci: default to -O2
8369
8370    We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang
8371    with Valgrind. Just always start with -O2 if CFLAGS isn't set in the
8372    environment and append what was passed on the command line.
8373
8374 build-aux/ci_build.sh | 3 ++-
8375 1 file changed, 2 insertions(+), 1 deletion(-)
8376
8377commit bc899f9e0700ad153bd65f4804c4de7515c8a847
8378Author: Sam James <sam@gentoo.org>
8379Date:   2024-04-10 15:17:47 +0100
8380
8381    ci: make automake's test runner verbose on failures
8382
8383    This is a lot easier to work with than the save-logs thing the action
8384    tries to do...
8385
8386 build-aux/ci_build.sh | 2 +-
8387 1 file changed, 1 insertion(+), 1 deletion(-)
8388
8389commit b5e3470442531717b2457b40ab412740296af1bc
8390Author: Sam James <sam@gentoo.org>
8391Date:   2024-04-10 12:38:51 +0100
8392
8393    ci: make UBSAN abort on errors
8394
8395    Unfortunately, UBSAN doesn't do this by default. See also the change
8396    I made in Meson for this in October [0].
8397
8398    [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c
8399
8400 .github/workflows/ci.yml | 1 +
8401 1 file changed, 1 insertion(+)
8402
8403commit 6c095a98fbec70b790253a663173ecdb669108c4
8404Author: Sam James <sam@gentoo.org>
8405Date:   2024-04-10 11:43:10 +0100
8406
8407    ci: test Valgrind
8408
8409    Using `--trace-children=yes` has a trade-off here, as it makes
8410    `test_scripts.sh` pretty slow when calling various non-xz utilities.
8411
8412    But I also feel like it's not useless to have Valgrind used there and it's
8413    not easy to exclude Valgrind just for that one test...
8414
8415    I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
8416    immediately with some conditionally-built tests and I wondered if it was
8417    worth spending time on at least while we're debating xz's future build
8418    system situation.
8419
8420    [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
8421    [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/
8422
8423 .github/workflows/ci.yml | 11 ++++++++++-
8424 build-aux/ci_build.sh    |  8 +++++---
8425 2 files changed, 15 insertions(+), 4 deletions(-)
8426
8427commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59
8428Author: Lasse Collin <lasse.collin@tukaani.org>
8429Date:   2024-04-10 23:20:02 +0300
8430
8431    liblzma: CRC: Simplify table omission macros
8432
8433    A macro is useful to prevent a single #if directive from
8434    getting too ugly but only one macro is needed for all archs.
8435
8436 src/liblzma/check/crc32_table.c | 10 ++++------
8437 src/liblzma/check/crc64_table.c |  4 ++--
8438 src/liblzma/check/crc_common.h  |  5 +++--
8439 3 files changed, 9 insertions(+), 10 deletions(-)
8440
8441commit 45da936c879acf4f053a3055665bf1b10ded4462
8442Author: Lasse Collin <lasse.collin@tukaani.org>
8443Date:   2024-04-10 23:09:40 +0300
8444
8445    liblzma: ARM64 CRC: Fix omission of CRC32 table
8446
8447    The macro name had an odd typo so the table wasn't omitted
8448    when it should have.
8449
8450    Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
8451
8452 src/liblzma/check/crc32_table.c | 2 +-
8453 1 file changed, 1 insertion(+), 1 deletion(-)
8454
8455commit 308a9af85400b0e2019f0f012c8354e831d06d65
8456Author: Lasse Collin <lasse.collin@tukaani.org>
8457Date:   2024-04-10 22:21:51 +0300
8458
8459    Build: If ARM64 feature detection func is found, stop looking for others
8460
8461    This can speed up configure a tiny bit.
8462
8463    Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732
8464
8465 configure.ac | 2 +-
8466 1 file changed, 1 insertion(+), 1 deletion(-)
8467
8468commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6
8469Author: Lasse Collin <lasse.collin@tukaani.org>
8470Date:   2024-04-10 22:04:27 +0300
8471
8472    liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD
8473
8474    I didn't test this but it shouldn't change any functionality.
8475
8476    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
8477
8478 src/liblzma/check/crc32_arm64.h | 7 ++++---
8479 1 file changed, 4 insertions(+), 3 deletions(-)
8480
8481commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57
8482Author: Lasse Collin <lasse.collin@tukaani.org>
8483Date:   2024-04-10 21:59:27 +0300
8484
8485    liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code
8486
8487    Also add parenthesis to the return statement.
8488
8489    I didn't test this.
8490
8491    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
8492
8493 src/liblzma/check/crc32_arm64.h | 6 ++++--
8494 1 file changed, 4 insertions(+), 2 deletions(-)
8495
8496commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0
8497Author: Lasse Collin <lasse.collin@tukaani.org>
8498Date:   2024-04-10 21:56:33 +0300
8499
8500    liblzma: ARM64 CRC32: Use negation instead of subtracting from 8
8501
8502    Subtracting from 0 is negation, this just keeps warnings away.
8503
8504    Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575
8505
8506 src/liblzma/check/crc32_arm64.h | 2 +-
8507 1 file changed, 1 insertion(+), 1 deletion(-)
8508
8509commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7
8510Author: Lasse Collin <lasse.collin@tukaani.org>
8511Date:   2024-04-10 21:55:10 +0300
8512
8513    liblzma: ARM64 CRC32: Tweak coding style and comments
8514
8515 src/liblzma/check/crc32_arm64.h | 10 +++++-----
8516 1 file changed, 5 insertions(+), 5 deletions(-)
8517
8518commit 780d2c236de0e4749655696c2e0c26fb7565afd3
8519Author: Lasse Collin <lasse.collin@tukaani.org>
8520Date:   2024-04-09 21:55:01 +0300
8521
8522    Update SECURITY.md.
8523
8524 .github/SECURITY.md | 25 ++++++++-----------------
8525 1 file changed, 8 insertions(+), 17 deletions(-)
8526
8527commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a
8528Author: Lasse Collin <lasse.collin@tukaani.org>
8529Date:   2024-04-09 17:47:01 +0300
8530
8531    CI: Remove ifunc support.
8532
8533 .github/workflows/ci.yml | 13 +++----------
8534 build-aux/ci_build.sh    |  5 +----
8535 2 files changed, 4 insertions(+), 14 deletions(-)
8536
8537commit 689ae2427342a2ea1206eb5ca08301baf410e7e0
8538Author: Lasse Collin <lasse.collin@tukaani.org>
8539Date:   2024-04-09 17:43:16 +0300
8540
8541    liblzma: Remove ifunc support.
8542
8543    This is *NOT* done for security reasons even though the backdoor
8544    relied on the ifunc code. Instead, the reason is that in this
8545    project ifunc provides little benefits but it's quite a bit of
8546    extra code to support it. The only case where ifunc *might* matter
8547    for performance is if the CRC functions are used directly by an
8548    application. In normal compression use it's completely irrelevant.
8549
8550 CMakeLists.txt                    | 79 ---------------------------------------
8551 INSTALL                           |  8 ----
8552 configure.ac                      | 79 ---------------------------------------
8553 src/liblzma/check/crc32_fast.c    | 48 +++---------------------
8554 src/liblzma/check/crc64_fast.c    | 21 -----------
8555 src/liblzma/check/crc_common.h    |  9 +----
8556 src/liblzma/check/crc_x86_clmul.h | 11 +-----
8557 7 files changed, 8 insertions(+), 247 deletions(-)
8558
8559commit 6b4c859059a7eb9b0547590c081668e14ecf8af6
8560Author: Lasse Collin <lasse.collin@tukaani.org>
8561Date:   2024-04-08 22:04:41 +0300
8562
8563    tests/files/README: Update the main heading.
8564
8565 tests/files/README | 4 ++--
8566 1 file changed, 2 insertions(+), 2 deletions(-)
8567
8568commit 2a851e06b891ce894f918faff32a6cca6fdecee6
8569Author: Lasse Collin <lasse.collin@tukaani.org>
8570Date:   2024-04-08 22:02:45 +0300
8571
8572    tests/files/README: Explain how to recreate the ARM64 test files.
8573
8574 tests/files/README | 15 ++++++++++++++-
8575 1 file changed, 14 insertions(+), 1 deletion(-)
8576
8577commit 3d09b721b94e18fe1f853a04799697f5de10b291
8578Author: Lasse Collin <lasse.collin@tukaani.org>
8579Date:   2024-04-08 21:51:55 +0300
8580
8581    debug: Add generator for the ARM64 test file data.
8582
8583 debug/Makefile.am         |   3 +-
8584 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++
8585 2 files changed, 118 insertions(+), 1 deletion(-)
8586
8587commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48
8588Author: Lasse Collin <lasse.collin@tukaani.org>
8589Date:   2024-04-08 21:19:38 +0300
8590
8591    xz man page: Use .ft CR instead of CW to silence warnings from groff.
8592
8593 src/xz/xz.1 | 32 ++++++++++++++++----------------
8594 1 file changed, 16 insertions(+), 16 deletions(-)
8595
8596commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685
8597Author: Lasse Collin <lasse.collin@tukaani.org>
8598Date:   2024-04-08 19:28:35 +0300
8599
8600    Fix NEWS for 5.6.0 and 5.6.1.
8601
8602 NEWS | 6 ++++++
8603 1 file changed, 6 insertions(+)
8604
8605commit bfd0c7c478e93a1911b845459549ff94587b6ea2
8606Author: Lasse Collin <lasse.collin@tukaani.org>
8607Date:   2024-04-08 19:22:26 +0300
8608
8609    Remove the XZ logo.
8610
8611 COPYING              |   5 -
8612 COPYING.CC-BY-SA-4.0 | 427 ---------------------------------------------------
8613 Makefile.am          |   2 -
8614 README               |   2 -
8615 doc/xz-logo.png      | Bin 6771 -> 0 bytes
8616 doxygen/Doxyfile     |   6 +-
8617 doxygen/footer.html  |  13 --
8618 7 files changed, 3 insertions(+), 452 deletions(-)
8619
8620commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4
8621Author: Lasse Collin <lasse.collin@tukaani.org>
8622Date:   2024-04-08 18:27:39 +0300
8623
8624    Update maintainer and author info.
8625
8626    The other maintainer suddenly disappeared.
8627
8628 AUTHORS                |  9 +++++++--
8629 README                 | 10 +++-------
8630 THANKS                 |  1 -
8631 src/liblzma/api/lzma.h |  2 +-
8632 4 files changed, 11 insertions(+), 11 deletions(-)
8633
8634commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072
8635Author: Lasse Collin <lasse.collin@tukaani.org>
8636Date:   2024-04-08 18:05:32 +0300
8637
8638    Docs: Update .xz file format specification to 1.2.1.
8639
8640    This only reverts the XZ URL changes.
8641
8642 doc/xz-file-format.txt | 12 ++++++++----
8643 1 file changed, 8 insertions(+), 4 deletions(-)
8644
8645commit 17aa2e1a796d3f758802df29afc89dcf335db567
8646Author: Lasse Collin <lasse.collin@tukaani.org>
8647Date:   2024-04-08 17:33:56 +0300
8648
8649    Update website URLs back to tukaani.org.
8650
8651    The XZ projects were moved back to their original URLs.
8652
8653 .github/SECURITY.md        |  2 +-
8654 CMakeLists.txt             |  2 +-
8655 COPYING                    |  3 +--
8656 README                     |  4 ++--
8657 configure.ac               |  2 +-
8658 doc/faq.txt                |  2 +-
8659 doc/lzma-file-format.txt   | 12 ++++++------
8660 dos/config.h               |  2 +-
8661 src/liblzma/api/lzma.h     |  2 +-
8662 src/xz/xz.1                |  6 +++---
8663 src/xzdec/xzdec.1          |  4 ++--
8664 windows/README-Windows.txt |  2 +-
8665 12 files changed, 21 insertions(+), 22 deletions(-)
8666
8667commit 2739db981023373a2ddabc7b456c7e658bb4f582
8668Author: Lasse Collin <lasse.collin@tukaani.org>
8669Date:   2024-04-08 17:07:08 +0300
8670
8671    xzdec: Tweak coding style and comments.
8672
8673 src/xzdec/xzdec.c | 32 +++++++++++++++++++++-----------
8674 1 file changed, 21 insertions(+), 11 deletions(-)
8675
8676commit 408b6adb2a07d07c6535f859571cca38837caaf3
8677Author: Lasse Collin <lasse.collin@tukaani.org>
8678Date:   2024-04-08 15:53:46 +0300
8679
8680    tests/ossfuzz: Tiny fix to a comment.
8681
8682 tests/ossfuzz/fuzz_decode_stream.c | 2 +-
8683 1 file changed, 1 insertion(+), 1 deletion(-)
8684
8685commit db4dd74a344580e0b81436598d9741a3454245b0
8686Author: Lasse Collin <lasse.collin@tukaani.org>
8687Date:   2024-04-09 18:22:16 +0300
8688
8689    Update THANKS.
8690
8691 THANKS | 1 +
8692 1 file changed, 1 insertion(+)
8693
8694commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754
8695Author: Lasse Collin <lasse.collin@tukaani.org>
8696Date:   2024-04-08 15:32:58 +0300
8697
8698    Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094).
8699
8700    While the backdoor was inactive (and thus harmless) without inserting
8701    a small trigger code into the build system when the source package was
8702    created, it's good to remove this anyway:
8703
8704      - The executable payloads were embedded as binary blobs in
8705        the test files. This was a blatant violation of the
8706        Debian Free Software Guidelines.
8707
8708      - On machines that see lots bots poking at the SSH port, the backdoor
8709        noticeably increased CPU load, resulting in degraded user experience
8710        and thus overwhelmingly negative user feedback.
8711
8712      - The maintainer who added the backdoor has disappeared.
8713
8714      - Backdoors are bad for security.
8715
8716    This reverts the following without making any other changes:
8717
8718    6e636819 Tests: Update two test files.
8719    a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
8720    0b4ccc91 Tests: Update RISC-V test files.
8721    8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
8722    82ecc538 liblzma: Fix false Valgrind error report with GCC.
8723    cf44e4b7 Tests: Add a few test files.
8724    3060e107 Tests: Use smaller dictionary size in RISC-V test files.
8725    e2870db5 Tests: Add two RISC-V Filter test files.
8726
8727    The RISC-V test files also have real content that tests the filter
8728    but the real content would fit into much smaller files. A generator
8729    program would need to be available as well.
8730
8731    Thanks to Andres Freund for finding and reporting it and making
8732    it public quickly so others could act without a delay.
8733    See: https://www.openwall.com/lists/oss-security/2024/03/29/4
8734
8735 src/liblzma/check/crc32_fast.c         |   7 +++++--
8736 src/liblzma/check/crc64_fast.c         |   4 +++-
8737 src/liblzma/check/crc_common.h         |  25 -------------------------
8738 tests/files/README                     |  27 ---------------------------
8739 tests/files/bad-3-corrupt_lzma2.xz     | Bin 512 -> 0 bytes
8740 tests/files/bad-dict_size.lzma         | Bin 41 -> 0 bytes
8741 tests/files/good-1-riscv-lzma2-1.xz    | Bin 7424 -> 0 bytes
8742 tests/files/good-1-riscv-lzma2-2.xz    | Bin 7432 -> 0 bytes
8743 tests/files/good-2cat.xz               | Bin 136 -> 0 bytes
8744 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes
8745 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes
8746 tests/test_files.sh                    |  11 -----------
8747 12 files changed, 8 insertions(+), 66 deletions(-)
8748
8749commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00
8750Author: Lasse Collin <lasse.collin@tukaani.org>
8751Date:   2024-03-30 14:36:28 +0200
8752
8753    CMake: Fix sabotaged Landlock sandbox check.
8754
8755    It never enabled it.
8756
8757 CMakeLists.txt | 2 +-
8758 1 file changed, 1 insertion(+), 1 deletion(-)
8759
8760commit af071ef7702debef4f1d324616a0137a5001c14c
8761Author: Jia Tan <jiat0218@gmail.com>
8762Date:   2024-03-26 01:50:02 +0800
8763
8764    Docs: Simplify SECURITY.md.
8765
8766 .github/SECURITY.md | 8 +-------
8767 1 file changed, 1 insertion(+), 7 deletions(-)
8768
8769commit 0b99783d63f27606936bb79a16c52d0d70c0b56f
8770Author: Lasse Collin <lasse.collin@tukaani.org>
8771Date:   2024-03-22 17:46:30 +0200
8772
8773    liblzma: memcmplen.h: Add a comment why subtraction is used.
8774
8775 src/liblzma/common/memcmplen.h | 13 +++++++++++++
8776 1 file changed, 13 insertions(+)
8777
8778commit 8a25ba024d55610c448c6e4f1400a00bae51b493
8779Author: Lasse Collin <lasse.collin@tukaani.org>
8780Date:   2024-03-15 17:43:39 +0200
8781
8782    INSTALL: Document arguments of --enable-symbol-versions.
8783
8784 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++----
8785 1 file changed, 39 insertions(+), 4 deletions(-)
8786
8787commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5
8788Author: Lasse Collin <lasse.collin@tukaani.org>
8789Date:   2024-03-15 17:15:50 +0200
8790
8791    Build: Use only the generic symbol versioning with NVIDIA HPC Compiler.
8792
8793    This does the previous commit with CMake.
8794
8795    AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must
8796    be changed to AS_IF to ensure that things wont break some day.
8797    See 5a5bd7f871818029d5ccbe189f087f591258c294.
8798
8799 configure.ac | 18 +++++++++++++-----
8800 1 file changed, 13 insertions(+), 5 deletions(-)
8801
8802commit c273123ed0ebaebf49994057a7fe98aae7f42c40
8803Author: Lasse Collin <lasse.collin@tukaani.org>
8804Date:   2024-03-15 16:36:35 +0200
8805
8806    CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
8807
8808    It doesn't support the __symver__ attribute or __asm__(".symver ...").
8809    The generic symbol versioning can still be used since it only needs
8810    linker support.
8811
8812 CMakeLists.txt | 7 ++++++-
8813 1 file changed, 6 insertions(+), 1 deletion(-)
8814
8815commit df7f487648d18a3992386a59b8a061edca862d17
8816Author: Lasse Collin <lasse.collin@tukaani.org>
8817Date:   2024-03-13 21:38:24 +0200
8818
8819    Update THANKS.
8820
8821 THANKS | 1 +
8822 1 file changed, 1 insertion(+)
8823
8824commit 3217b82b3ec023bf8338249134a076bea0ea30ec
8825Author: Lasse Collin <lasse.collin@tukaani.org>
8826Date:   2024-03-13 21:30:18 +0200
8827
8828    liblzma: Minor comment edits.
8829
8830 src/liblzma/common/string_conversion.c | 4 ++--
8831 src/liblzma/delta/delta_decoder.c      | 2 ++
8832 2 files changed, 4 insertions(+), 2 deletions(-)
8833
8834commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31
8835Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
8836Date:   2024-03-13 13:07:13 +0100
8837
8838    liblzma: Fix building with NVHPC (NVIDIA HPC SDK).
8839
8840    NVHPC compiler has several issues that make it impossible to
8841    build liblzma:
8842      - the compiler cannot handle unions that contain pointers that
8843        are not the first members;
8844      - the compiler cannot handle the assembler code in range_decoder.h
8845        (LZMA_RANGE_DECODER_CONFIG has to be set to zero);
8846      - the compiler fails to produce valid code for delta_decode if the
8847        vectorization is enabled, which results in failed tests.
8848
8849    This introduces NVHPC-specific workarounds that address the issues.
8850
8851 src/liblzma/common/string_conversion.c | 6 ++++--
8852 src/liblzma/delta/delta_decoder.c      | 3 +++
8853 src/liblzma/rangecoder/range_decoder.h | 1 +
8854 3 files changed, 8 insertions(+), 2 deletions(-)
8855
8856commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62
8857Author: Lasse Collin <lasse.collin@tukaani.org>
8858Date:   2024-03-13 21:17:10 +0200
8859
8860    CMake: Disable symbol versioning on non-glibc Linux.
8861
8862    This better matches what configure.ac does. For example, musl has
8863    only basic symbol versioning support:
8864
8865    https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning
8866
8867    configure.ac tries to enable symbol versioning only with glibc
8868    so now CMake does the same.
8869
8870 CMakeLists.txt | 22 ++++++++++++++++++++--
8871 1 file changed, 20 insertions(+), 2 deletions(-)
8872
8873commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4
8874Author: Lasse Collin <lasse.collin@tukaani.org>
8875Date:   2024-03-13 20:32:46 +0200
8876
8877    CMake: Make symbol versioning configurable.
8878
8879 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++-------------------
8880 1 file changed, 42 insertions(+), 20 deletions(-)
8881
8882commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076
8883Author: Lasse Collin <lasse.collin@tukaani.org>
8884Date:   2024-03-13 19:47:36 +0200
8885
8886    Build: Style tweaks to configure.ac.
8887
8888    The AC_MSG_ERROR line is overlong anyway as are a few other
8889    AC_MSG_ERROR lines already.
8890
8891 configure.ac | 16 +++++++++-------
8892 1 file changed, 9 insertions(+), 7 deletions(-)
8893
8894commit f56ed6fac6619b56b005878d3b5210e2f0d721c0
8895Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
8896Date:   2024-03-12 20:03:49 +0100
8897
8898    Build: Let the users override the symbol versioning variant.
8899
8900    There are cases when the users want to decide themselves whether
8901    they want to have the generic (even on GNU/Linux) or the linux
8902    (even if we do not recommend that) symbol versioning variant.
8903    The former might be needed to circumvent compiler issues (i.e.
8904    the compiler does not support all features that are required
8905    for the linux versioning), the latter might help in overriding
8906    the assumptions made in the configure script.
8907
8908 configure.ac | 91 +++++++++++++++++++++++++++++++++---------------------------
8909 1 file changed, 50 insertions(+), 41 deletions(-)
8910
8911commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378
8912Author: Jia Tan <jiat0218@gmail.com>
8913Date:   2024-03-09 11:27:27 +0800
8914
8915    Add NEWS for 5.6.1
8916
8917 NEWS | 26 ++++++++++++++++++++++++++
8918 1 file changed, 26 insertions(+)
8919
8920commit f01be8ad754a905d8c418601767480ec11621b02
8921Author: Jia Tan <jiat0218@gmail.com>
8922Date:   2024-03-09 10:43:20 +0800
8923
8924    Translations: Add missing --riscv option to man page translations.
8925
8926 po4a/de.po    | 702 +++++++++++++++++++++++++++++-----------------------------
8927 po4a/fr.po    | 549 ++++++++++++++++++++++-----------------------
8928 po4a/ko.po    | 702 +++++++++++++++++++++++++++++-----------------------------
8929 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++--------------------------
8930 po4a/ro.po    | 702 +++++++++++++++++++++++++++++-----------------------------
8931 po4a/uk.po    | 702 +++++++++++++++++++++++++++++-----------------------------
8932 6 files changed, 2024 insertions(+), 1974 deletions(-)
8933
8934commit 6e636819e8f070330d835fce46289a3ff72a7b89
8935Author: Jia Tan <jiat0218@gmail.com>
8936Date:   2024-03-09 10:18:29 +0800
8937
8938    Tests: Update two test files.
8939
8940    The original files were generated with random local to my machine.
8941    To better reproduce these files in the future, a constant seed was used
8942    to recreate these files.
8943
8944 tests/files/bad-3-corrupt_lzma2.xz     | Bin 484 -> 512 bytes
8945 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes
8946 2 files changed, 0 insertions(+), 0 deletions(-)
8947
8948commit a3a29bbd5d86183fc7eae8f0182dace374e778d8
8949Author: Jia Tan <jiat0218@gmail.com>
8950Date:   2024-03-09 10:08:32 +0800
8951
8952    Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
8953
8954    The first stream in this file is valid, so this tests that xz properly
8955    stops after decompressing it.
8956
8957 tests/test_files.sh | 11 +++++++++++
8958 1 file changed, 11 insertions(+)
8959
8960commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c
8961Author: Jia Tan <jiat0218@gmail.com>
8962Date:   2024-03-09 10:05:32 +0800
8963
8964    Tests: Update RISC-V test files.
8965
8966    This increases code coverage and tests for possible shifting bugs.
8967
8968 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes
8969 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes
8970 2 files changed, 0 insertions(+), 0 deletions(-)
8971
8972commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb
8973Author: Jia Tan <jiat0218@gmail.com>
8974Date:   2024-03-09 09:52:32 +0800
8975
8976    liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
8977
8978 src/liblzma/check/crc32_fast.c | 4 ++--
8979 src/liblzma/check/crc64_fast.c | 3 +--
8980 2 files changed, 3 insertions(+), 4 deletions(-)
8981
8982commit b93a8d7631d9517da63f03e0185455024a4609e8
8983Author: Jia Tan <jiat0218@gmail.com>
8984Date:   2024-03-09 09:49:55 +0800
8985
8986    Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
8987
8988    This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
8989
8990 CMakeLists.txt         | 15 ++++++++++-----
8991 configure.ac           |  9 ++-------
8992 tests/Makefile.am      |  9 ++++++---
8993 tests/test_microlzma.c | 12 ++++--------
8994 4 files changed, 22 insertions(+), 23 deletions(-)
8995
8996commit 82ecc538193b380a21622aea02b0ba078e7ade92
8997Author: Jia Tan <jiat0218@gmail.com>
8998Date:   2024-03-09 09:20:57 +0800
8999
9000    liblzma: Fix false Valgrind error report with GCC.
9001
9002    With GCC and a certain combination of flags, Valgrind will falsely
9003    trigger an invalid write. This appears to be due to the omission of
9004    instructions to properly save, set up, and restore the frame pointer.
9005
9006    The IFUNC resolver is a leaf function since it only calls a function
9007    that is inlined. So sometimes GCC omits the frame pointer instructions
9008    in the resolver unless this optimization is explictly disabled.
9009
9010    This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
9011
9012 src/liblzma/check/crc32_fast.c |  9 +++------
9013 src/liblzma/check/crc64_fast.c |  7 +++----
9014 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++
9015 3 files changed, 31 insertions(+), 10 deletions(-)
9016
9017commit 3007e74ef250f0ce95d97ffbdf2282284f93764d
9018Author: Lasse Collin <lasse.collin@tukaani.org>
9019Date:   2024-03-05 23:21:26 +0200
9020
9021    liblzma: Fix a typo in a comment in the RISC-V filter.
9022
9023 src/liblzma/simple/riscv.c | 2 +-
9024 1 file changed, 1 insertion(+), 1 deletion(-)
9025
9026commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f
9027Author: Jia Tan <jiat0218@gmail.com>
9028Date:   2024-03-05 00:34:46 +0800
9029
9030    liblzma: Use attribute no_profile_instrument_function with ifunc.
9031
9032    Thanks to Sam James for determining this was the attribute needed to
9033    workaround the GCC bug and for his version of the patch in Gentoo.
9034
9035 src/liblzma/check/crc32_fast.c | 5 +++++
9036 src/liblzma/check/crc64_fast.c | 3 +++
9037 2 files changed, 8 insertions(+)
9038
9039commit e5faaebbcf02ea880cfc56edc702d4f7298788ad
9040Author: Jia Tan <jiat0218@gmail.com>
9041Date:   2024-03-05 00:27:31 +0800
9042
9043    Build: Require attribute no_profile_instrument_function for ifunc usage.
9044
9045    Using __attribute__((__no_profile_instrument_function__)) on the ifunc
9046    resolver works around a bug in GCC -fprofile-generate:
9047    it adds profiling code even to ifunc resolvers which can make
9048    the ifunc resolver crash at program startup. This attribute
9049    was not introduced until GCC 7 and Clang 13, so ifunc won't
9050    be used with prior versions of these compilers.
9051
9052    This bug was brought to our attention by:
9053
9054        https://bugs.gentoo.org/925415
9055
9056    And was reported to upstream GCC by:
9057
9058        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
9059
9060 CMakeLists.txt | 7 +++++++
9061 configure.ac   | 7 +++++++
9062 2 files changed, 14 insertions(+)
9063
9064commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7
9065Author: Lasse Collin <lasse.collin@tukaani.org>
9066Date:   2024-03-04 19:23:18 +0200
9067
9068    liblzma: Fix a comment in the RISC-V filter.
9069
9070 src/liblzma/simple/riscv.c | 4 ++--
9071 1 file changed, 2 insertions(+), 2 deletions(-)
9072
9073commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333
9074Author: Lasse Collin <lasse.collin@tukaani.org>
9075Date:   2024-02-29 16:35:52 +0200
9076
9077    CMake: Warn if translated man pages are missing.
9078
9079 CMakeLists.txt | 9 +++++++++
9080 1 file changed, 9 insertions(+)
9081
9082commit 4cd1042ee752d61370c685d0d8b20c1e935672f7
9083Author: Lasse Collin <lasse.collin@tukaani.org>
9084Date:   2024-02-29 16:35:52 +0200
9085
9086    CMake: Warn if gettext tools and pre-created .gmo files are missing.
9087
9088    It's only done with CMake >= 3.20 and if library support
9089    for translation was already found.
9090
9091    Sort of fixes: https://github.com/tukaani-project/xz/issues/82
9092
9093 CMakeLists.txt | 25 +++++++++++++++++++++++++
9094 1 file changed, 25 insertions(+)
9095
9096commit a94b42362c8e807f92236d6d63373f04991e3a50
9097Author: Lasse Collin <lasse.collin@tukaani.org>
9098Date:   2024-02-28 18:26:25 +0200
9099
9100    xz: Add comments.
9101
9102 src/xz/coder.c | 10 ++++++++++
9103 1 file changed, 10 insertions(+)
9104
9105commit bbf112e32307a75a54a9e170bc392811443d5c87
9106Author: Jia Tan <jiat0218@gmail.com>
9107Date:   2024-02-27 23:42:41 +0800
9108
9109    xz: Change logging level for thread reduction to highest verbosity only.
9110
9111    Now that multi threaded encoding is the default, users do not need to
9112    see a warning message everytime the number of threads is reduced. On
9113    some machines, this could happen very often. It is not unreasonable for
9114    users to need to set double verbose mode to see this kind of
9115    information.
9116
9117    To see these warning messages -vv or --verbose --verbose must be passed
9118    to set xz into the highest possible verbosity mode.
9119
9120    These warnings had caused automated testing frameworks to fail when they
9121    expected no output to stderr.
9122
9123    Thanks to Sebastian Andrzej Siewior for reporting this and for the
9124    initial version of the patch.
9125
9126 src/xz/coder.c | 4 ++--
9127 1 file changed, 2 insertions(+), 2 deletions(-)
9128
9129commit 649f6447441510d593a88475ad6df4bcdf74ce48
9130Author: Lasse Collin <lasse.collin@tukaani.org>
9131Date:   2024-02-26 23:06:13 +0200
9132
9133    Fix sorting in THANKS.
9134
9135 THANKS | 4 ++--
9136 1 file changed, 2 insertions(+), 2 deletions(-)
9137
9138commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa
9139Author: Jia Tan <jiat0218@gmail.com>
9140Date:   2024-02-26 23:39:29 +0800
9141
9142    Update THANKS.
9143
9144 THANKS | 1 +
9145 1 file changed, 1 insertion(+)
9146
9147commit eee579fff50099ba163c12305e81a4bd42b7dd53
9148Author: Chien Wong <m@xv97.com>
9149Date:   2024-02-25 21:38:13 +0800
9150
9151    xz: Add missing RISC-V on the filter list in the man page
9152
9153    Signed-off-by: Chien Wong <m@xv97.com>
9154
9155 src/xz/xz.1 | 4 +++-
9156 1 file changed, 3 insertions(+), 1 deletion(-)
9157
9158commit 328c52da8a2bbb81307644efdb58db2c422d9ba7
9159Author: Jia Tan <jiat0218@gmail.com>
9160Date:   2024-02-26 23:02:06 +0800
9161
9162    Build: Fix Linux Landlock feature test in Autotools and CMake builds.
9163
9164    The previous Linux Landlock feature test assumed that having the
9165    linux/landlock.h header file was enough. The new feature tests also
9166    requires that prctl() and the required Landlock system calls are
9167    supported.
9168
9169 CMakeLists.txt    | 25 ++++++++++++++++++++++---
9170 configure.ac      | 27 ++++++++++++++++++++++++++-
9171 src/xz/sandbox.c  |  2 +-
9172 src/xz/sandbox.h  |  2 +-
9173 src/xzdec/xzdec.c |  8 ++++----
9174 5 files changed, 54 insertions(+), 10 deletions(-)
9175
9176commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d
9177Author: Jia Tan <jiat0218@gmail.com>
9178Date:   2024-02-26 20:06:10 +0800
9179
9180    Tests: Add test_microlzma to .gitignore and CMakeLists.txt.
9181
9182 .gitignore     | 1 +
9183 CMakeLists.txt | 1 +
9184 2 files changed, 2 insertions(+)
9185
9186commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093
9187Author: Jia Tan <jiat0218@gmail.com>
9188Date:   2024-02-26 19:56:25 +0800
9189
9190    Tests: Correct license header in test_microlzma.c.
9191
9192 tests/test_microlzma.c | 5 ++---
9193 1 file changed, 2 insertions(+), 3 deletions(-)
9194
9195commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d
9196Author: Jia Tan <jiat0218@gmail.com>
9197Date:   2024-02-25 21:41:55 +0800
9198
9199    Fix typos in NEWS and CMakeLists.
9200
9201 CMakeLists.txt | 2 +-
9202 NEWS           | 2 +-
9203 2 files changed, 2 insertions(+), 2 deletions(-)
9204
9205commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7
9206Author: Jia Tan <jiat0218@gmail.com>
9207Date:   2024-02-24 16:30:06 +0800
9208
9209    Bump version and soname for 5.7.0alpha.
9210
9211    Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that
9212    the branch is not stable.
9213
9214    Once again there is no API/ABI stability for new features in devel
9215    versions. The major soname won't be bumped even if API/ABI of new
9216    features breaks between devel releases.
9217
9218 src/liblzma/Makefile.am         | 2 +-
9219 src/liblzma/api/lzma/version.h  | 6 +++---
9220 src/liblzma/liblzma_generic.map | 2 +-
9221 src/liblzma/liblzma_linux.map   | 2 +-
9222 4 files changed, 6 insertions(+), 6 deletions(-)
9223
9224commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
9225Author: Jia Tan <jiat0218@gmail.com>
9226Date:   2024-02-24 15:50:36 +0800
9227
9228    Add NEWS for 5.6.0.
9229
9230 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9231 1 file changed, 143 insertions(+)
9232
9233commit 24355c5280bc95e3d594432d60bb8432aa6af173
9234Author: Jia Tan <jiat0218@gmail.com>
9235Date:   2024-02-22 22:27:01 +0800
9236
9237    Translations: Remove obsolete and fuzzy matches from some translations.
9238
9239    The French and Brazilian Portuguese man page translations have not been
9240    updated since the switch from public domain to 0BSD. The old GPLv2
9241    strings have now been removed from these files.
9242
9243 po4a/fr.po    | 4702 +++++++++++++++++++++++++++++++++++++----------------
9244 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++-----------------
9245 2 files changed, 6832 insertions(+), 2857 deletions(-)
9246
9247commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1
9248Author: Jia Tan <jiat0218@gmail.com>
9249Date:   2024-02-21 00:31:54 +0800
9250
9251    Translations: Patch man pages to avoid fuzzy matches.
9252
9253    This will be fixed in the next round of translations, but this avoids
9254    having a fuzzy match or not fixing the English version.
9255
9256 po4a/de.po | 2 +-
9257 po4a/ko.po | 2 +-
9258 po4a/ro.po | 2 +-
9259 po4a/uk.po | 2 +-
9260 4 files changed, 4 insertions(+), 4 deletions(-)
9261
9262commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64
9263Author: Jia Tan <jiat0218@gmail.com>
9264Date:   2024-02-21 00:30:43 +0800
9265
9266    xzmore: Fix typo in xzmore.1.
9267
9268    Thanks to Yuri Chornoivan.
9269
9270 src/scripts/xzmore.1 | 2 +-
9271 1 file changed, 1 insertion(+), 1 deletion(-)
9272
9273commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba
9274Author: Jia Tan <jiat0218@gmail.com>
9275Date:   2024-02-24 12:12:16 +0800
9276
9277    Translations: Update the Vietnamese translation.
9278
9279 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++-------------------------
9280 1 file changed, 309 insertions(+), 196 deletions(-)
9281
9282commit a65fd7ce9d6228e87faf61dc56a35984d0088248
9283Author: Jia Tan <jiat0218@gmail.com>
9284Date:   2024-02-24 12:06:40 +0800
9285
9286    Translations: Update the Esperanto translation.
9287
9288 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++-------------------------
9289 1 file changed, 306 insertions(+), 196 deletions(-)
9290
9291commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0
9292Author: Jia Tan <jiat0218@gmail.com>
9293Date:   2024-02-23 23:09:59 +0800
9294
9295    Tests: Add a few test files.
9296
9297 tests/files/README                     |  19 +++++++++++++++++++
9298 tests/files/bad-3-corrupt_lzma2.xz     | Bin 0 -> 484 bytes
9299 tests/files/bad-dict_size.lzma         | Bin 0 -> 41 bytes
9300 tests/files/good-2cat.xz               | Bin 0 -> 136 bytes
9301 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes
9302 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes
9303 6 files changed, 19 insertions(+)
9304
9305commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73
9306Author: Jia Tan <jiat0218@gmail.com>
9307Date:   2024-02-23 20:58:36 +0800
9308
9309    Tests: Add MicroLZMA test.
9310
9311 tests/Makefile.am      |   4 +-
9312 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++
9313 2 files changed, 551 insertions(+), 1 deletion(-)
9314
9315commit adaacafde6661496ca2814b1e94a3ba5186428cb
9316Author: Jia Tan <jiat0218@gmail.com>
9317Date:   2024-02-23 20:57:59 +0800
9318
9319    Build: Define HAVE_MICROLZMA when it is configured.
9320
9321 CMakeLists.txt | 4 ++++
9322 configure.ac   | 9 +++++++--
9323 2 files changed, 11 insertions(+), 2 deletions(-)
9324
9325commit eea78216d27182ca917bf00e02feaab058a4d21e
9326Author: Jia Tan <jiat0218@gmail.com>
9327Date:   2024-02-23 20:27:15 +0800
9328
9329    xz: Fix Capsicum sandbox compile error.
9330
9331    user_abort_pipe[] was still being used instead of the parameters.
9332
9333 src/xz/sandbox.c | 4 ++--
9334 1 file changed, 2 insertions(+), 2 deletions(-)
9335
9336commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d
9337Author: Jia Tan <jiat0218@gmail.com>
9338Date:   2024-02-23 16:12:32 +0800
9339
9340    Build: Fix ARM64 CRC32 instruction feature test.
9341
9342    Old versions of Clang reported the unsupported function attribute and
9343    __crc32d() function as warnings instead of errors, so the feature test
9344    passed when it shouldn't have, causing a compile error at build time.
9345    -Werror was added to this feature test to fix this. The change is not
9346    needed for CMake because check_c_source_compiles() also performs
9347    linking and the error is caught then.
9348
9349    Thanks to Sebastian Andrzej Siewior for reporting this.
9350
9351 configure.ac | 10 ++++++++++
9352 1 file changed, 10 insertions(+)
9353
9354commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e
9355Author: Lasse Collin <lasse.collin@tukaani.org>
9356Date:   2024-02-22 19:16:35 +0200
9357
9358    CMake: Add LOCALEDIR to the windres workaround.
9359
9360    LOCALEDIR may contain spaces like in "C:\Program Files".
9361
9362 CMakeLists.txt | 16 +++++++++++-----
9363 1 file changed, 11 insertions(+), 5 deletions(-)
9364
9365commit de4337fd89ca7db5feb97b5c40143404f6e22986
9366Author: Lasse Collin <lasse.collin@tukaani.org>
9367Date:   2024-02-22 15:18:25 +0200
9368
9369    xz: Landlock: Fix error message if input file is a directory.
9370
9371    If xz is given a directory, it should look like this:
9372
9373        $ xz /usr/bin
9374        xz: /usr/bin: Is a directory, skipping
9375
9376    The Landlock rules didn't allow opening directories for reading:
9377
9378        $ xz /usr/bin
9379        xz: /usr/bin: Permission denied
9380
9381    The simplest fix was to allow opening directories for reading.
9382    While it's a bit silly to allow it solely for the error message,
9383    it shouldn't make the sandbox significantly weaker.
9384
9385    The single-file use case (like when called from GNU tar) is
9386    still as strict as possible: all Landlock restrictions are
9387    enabled before (de)compression starts.
9388
9389 src/xz/sandbox.c | 15 ++++++++++++++-
9390 1 file changed, 14 insertions(+), 1 deletion(-)
9391
9392commit 120da10ae139ea52ca4275452adf8eda02d07cc8
9393Author: Lasse Collin <lasse.collin@tukaani.org>
9394Date:   2024-02-22 14:41:29 +0200
9395
9396    liblzma: Disable branchless C version in range decoder.
9397
9398    Thanks to Sebastian Andrzej Siewior and Sam James for
9399    benchmarking on various systems.
9400
9401 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++---
9402 1 file changed, 10 insertions(+), 3 deletions(-)
9403
9404commit 00440f52be9ac2c7438c7b0cb1082f12399632c6
9405Author: Lasse Collin <lasse.collin@tukaani.org>
9406Date:   2024-02-21 17:41:32 +0200
9407
9408    INSTALL: Clarify that --disable-assembler affects only 32-bit x86.
9409
9410 INSTALL | 18 +++++++++---------
9411 1 file changed, 9 insertions(+), 9 deletions(-)
9412
9413commit 11405be84ea294497e12d03d7219f607063f4a00
9414Author: Lasse Collin <lasse.collin@tukaani.org>
9415Date:   2024-02-19 18:41:37 +0200
9416
9417    Windows: build.bash: Include COPYING.0BSD in the package.
9418
9419 windows/build.bash | 2 +-
9420 1 file changed, 1 insertion(+), 1 deletion(-)
9421
9422commit c27cf64e3e27f4968431d65be7098a12a3a80d30
9423Author: Lasse Collin <lasse.collin@tukaani.org>
9424Date:   2024-02-18 17:59:46 +0200
9425
9426    Windows: build.bash: include liblzma-crt-mixing.txt in the package.
9427
9428 windows/build.bash | 6 ++++--
9429 1 file changed, 4 insertions(+), 2 deletions(-)
9430
9431commit 8d38941baed05de4ff7cc775de14833108f62184
9432Author: Lasse Collin <lasse.collin@tukaani.org>
9433Date:   2024-02-18 17:17:43 +0200
9434
9435    Windows: Major update to Windows build instructions.
9436
9437 INSTALL                                      |  68 ++++-----
9438 windows/INSTALL-MSVC.txt                     |  23 +--
9439 windows/INSTALL-MinGW-w64_with_Autotools.txt |  49 +++++++
9440 windows/INSTALL-MinGW-w64_with_CMake.txt     | 203 +++++++++++++++++++++++++++
9441 windows/INSTALL-MinGW.txt                    | 138 ------------------
9442 windows/README-Windows.txt                   |   2 +
9443 windows/build-with-cmake.bat                 |  35 +++++
9444 windows/liblzma-crt-mixing.txt               |  70 +++++++++
9445 8 files changed, 404 insertions(+), 184 deletions(-)
9446
9447commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1
9448Author: Lasse Collin <lasse.collin@tukaani.org>
9449Date:   2024-02-18 15:15:04 +0200
9450
9451    Windows: Update windows/README-Windows.txt.
9452
9453    It's for binary packages built with windows/build.bash.
9454
9455 windows/README-Windows.txt | 104 ++++++++++++++++++---------------------------
9456 1 file changed, 41 insertions(+), 63 deletions(-)
9457
9458commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a
9459Author: Lasse Collin <lasse.collin@tukaani.org>
9460Date:   2024-02-18 15:15:04 +0200
9461
9462    Windows: Update windows/build.bash.
9463
9464    Support for the old MinGW was dropped. Only MinGW-w64 with GCC
9465    is supported now.
9466
9467    The script now supports also cross-compilation from GNU/Linux
9468    (tests are not run). MSYS2 and also the old MSYS 1.0.11 work
9469    for building on Windows. The i686 and x86_64 toolchains must
9470    be in PATH to build both 32-bit and 64-bit versions.
9471
9472    Parallel builds are done if "nproc" from GNU coreutils is available.
9473
9474    MinGW-w64 runtime copyright information file was renamed from
9475    COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which
9476    is the filename used by MinGW-w64 itself. Its existence
9477    is now mandatory, it's checked at the beginning of the script.
9478
9479    The file TODO is no longer copied to the package.
9480
9481 windows/build.bash | 191 +++++++++++++++++++++++++++++++----------------------
9482 1 file changed, 112 insertions(+), 79 deletions(-)
9483
9484commit 60462e42609a1d961868a1d1ebecc713c6d27e2e
9485Author: Jia Tan <jiat0218@gmail.com>
9486Date:   2024-02-20 23:32:22 +0800
9487
9488    Translations: Update the Romanian man page translations.
9489
9490 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++-----------------------------
9491 1 file changed, 875 insertions(+), 840 deletions(-)
9492
9493commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05
9494Author: Jia Tan <jiat0218@gmail.com>
9495Date:   2024-02-20 23:30:25 +0800
9496
9497    Translations: Update the Korean man page translations.
9498
9499 po4a/ko.po | 6 +++---
9500 1 file changed, 3 insertions(+), 3 deletions(-)
9501
9502commit 797a34b72ac6baff237d7a546fa941d8f78f2f62
9503Author: Jia Tan <jiat0218@gmail.com>
9504Date:   2024-02-20 21:03:53 +0800
9505
9506    Translations: Update the Spanish translation.
9507
9508 po/es.po | 6 +++---
9509 1 file changed, 3 insertions(+), 3 deletions(-)
9510
9511commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49
9512Author: Jia Tan <jiat0218@gmail.com>
9513Date:   2024-02-20 20:18:07 +0800
9514
9515    Translations: Update the Romanian translation.
9516
9517 po/ro.po | 470 ++++++++++++++++++++++++++++++---------------------------------
9518 1 file changed, 227 insertions(+), 243 deletions(-)
9519
9520commit e2d31154ecc750935436e8b62c6b073b2cfa84e3
9521Author: Jia Tan <jiat0218@gmail.com>
9522Date:   2024-02-20 20:15:50 +0800
9523
9524    Translations: Update the Croatian translation.
9525
9526 po/hr.po | 648 ++++++++++++++++++++++++++++++++++-----------------------------
9527 1 file changed, 355 insertions(+), 293 deletions(-)
9528
9529commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2
9530Author: Jia Tan <jiat0218@gmail.com>
9531Date:   2024-02-20 20:05:44 +0800
9532
9533    Translations: Update the German man page translations.
9534
9535 po4a/de.po | 1696 +++++++++++++++++++++++++++++++-----------------------------
9536 1 file changed, 873 insertions(+), 823 deletions(-)
9537
9538commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f
9539Author: Jia Tan <jiat0218@gmail.com>
9540Date:   2024-02-20 19:58:25 +0800
9541
9542    Translations: Update the German translation.
9543
9544 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------
9545 1 file changed, 225 insertions(+), 202 deletions(-)
9546
9547commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a
9548Author: Jia Tan <jiat0218@gmail.com>
9549Date:   2024-02-20 19:56:52 +0800
9550
9551    Translations: Update the Hungarian translation.
9552
9553 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++-------------------------
9554 1 file changed, 338 insertions(+), 218 deletions(-)
9555
9556commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04
9557Author: Lasse Collin <lasse.collin@tukaani.org>
9558Date:   2024-02-19 16:48:05 +0200
9559
9560    CMake: Fix building of lzmainfo when translations are enabled.
9561
9562 CMakeLists.txt | 2 ++
9563 1 file changed, 2 insertions(+)
9564
9565commit b0d1422b6037bfea6f6723683bd82a8e6d77026c
9566Author: Lasse Collin <lasse.collin@tukaani.org>
9567Date:   2024-02-19 13:38:42 +0200
9568
9569    CMake: Don't assume that -fvisibility=hidden is supported outside Windows.
9570
9571    The original code was good enough for supporting GNU/Linux
9572    and a few others but it wasn't very portable.
9573
9574    CMake doesn't support Solaris Studio's -xldscope=hidden.
9575    If it ever does, things should still work with this commit
9576    as Solaris Studio supports not only its own __global but also
9577    the GNU C __attribute__((visibility("default"))). Support for the
9578    attribute was added in 2007 to Sun Studio 12 compiler version 5.9.
9579
9580 CMakeLists.txt | 26 ++++++++++++++++++++++----
9581 1 file changed, 22 insertions(+), 4 deletions(-)
9582
9583commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c
9584Author: Lasse Collin <lasse.collin@tukaani.org>
9585Date:   2024-02-19 12:20:59 +0200
9586
9587    CMake: Revise the component splitting.
9588
9589 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++--------------------------
9590 1 file changed, 31 insertions(+), 26 deletions(-)
9591
9592commit 426bdc709c169d39b31dec410016779de117ef69
9593Author: Lasse Collin <lasse.collin@tukaani.org>
9594Date:   2024-02-17 21:45:07 +0200
9595
9596    CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release.
9597
9598 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------
9599 1 file changed, 63 insertions(+), 16 deletions(-)
9600
9601commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10
9602Author: Lasse Collin <lasse.collin@tukaani.org>
9603Date:   2024-02-17 21:27:48 +0200
9604
9605    CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release.
9606
9607    -O3 doesn't seem useful for speed but it makes the code bigger.
9608    CMake makes is difficult for users to simply override the
9609    optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because
9610    they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override
9611    CMAKE_C_FLAGS_RELEASE directly but then they have to remember to
9612    add also -DNDEBUG to disable assertions.
9613
9614    This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if
9615    CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if
9616    a custom value is passed on the command line (or reconfiguring an
9617    already-configured build), the cache variable won't be modified.
9618
9619 CMakeLists.txt | 19 +++++++++++++++++++
9620 1 file changed, 19 insertions(+)
9621
9622commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660
9623Author: Lasse Collin <lasse.collin@tukaani.org>
9624Date:   2024-02-18 14:59:52 +0200
9625
9626    CMake: Handle symbol versioning on MicroBlaze specially.
9627
9628    This is to match configure.ac.
9629
9630 CMakeLists.txt | 23 +++++++++++++++++++----
9631 1 file changed, 19 insertions(+), 4 deletions(-)
9632
9633commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce
9634Author: Lasse Collin <lasse.collin@tukaani.org>
9635Date:   2024-02-17 22:18:12 +0200
9636
9637    CMake: Keep build working even if lib/*.[ch] are removed.
9638
9639 CMakeLists.txt | 7 ++++++-
9640 1 file changed, 6 insertions(+), 1 deletion(-)
9641
9642commit d753e2ce4715552884afadc4ed6fbf8ccca6efac
9643Author: Lasse Collin <lasse.collin@tukaani.org>
9644Date:   2024-02-17 18:10:40 +0200
9645
9646    CMake: Install documentation.
9647
9648 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
9649 1 file changed, 32 insertions(+)
9650
9651commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
9652Author: Lasse Collin <lasse.collin@tukaani.org>
9653Date:   2024-02-17 15:35:35 +0200
9654
9655    CMake: Bump maximum policy version to 3.28.
9656
9657    CMP0154 doesn't affect us since we don't use FILE_SET.
9658
9659 CMakeLists.txt | 2 +-
9660 1 file changed, 1 insertion(+), 1 deletion(-)
9661
9662commit c2264ffbe3892d28930b89b0123efc369cabc143
9663Author: Lasse Collin <lasse.collin@tukaani.org>
9664Date:   2024-02-17 15:35:35 +0200
9665
9666    CMake: Build lzmainfo.
9667
9668 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
9669 1 file changed, 54 insertions(+)
9670
9671commit 998d0b29536094a89cf385a3b894e157db1ccefe
9672Author: Lasse Collin <lasse.collin@tukaani.org>
9673Date:   2024-02-17 15:35:35 +0200
9674
9675    CMake: Build lzmadec.
9676
9677 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++--------------------------
9678 1 file changed, 42 insertions(+), 34 deletions(-)
9679
9680commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9
9681Author: Lasse Collin <lasse.collin@tukaani.org>
9682Date:   2024-02-17 15:35:35 +0200
9683
9684    CMake: Add test_scripts.sh to the tests.
9685
9686    In contrast to Automake, skipping of this test when decoders
9687    are disabled is handled at CMake side instead of test_scripts.sh
9688    because CMake-build doesn't create config.h.
9689
9690 CMakeLists.txt        | 14 ++++++++++++++
9691 tests/test_scripts.sh | 13 ++++++++-----
9692 2 files changed, 22 insertions(+), 5 deletions(-)
9693
9694commit 4808f238a731befcd46c2117c62a1caaf4403989
9695Author: Lasse Collin <lasse.collin@tukaani.org>
9696Date:   2024-02-17 15:35:35 +0200
9697
9698    CMake: Install scripts.
9699
9700    Compared to the Autotools-based build, this has simpler handling
9701    for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts
9702    (configure has --enable-path-for-scripts=PREFIX). The simpler
9703    metho should be enough for non-ancient systems and Solaris.
9704
9705 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
9706 1 file changed, 82 insertions(+), 1 deletion(-)
9707
9708commit 3462362ebd94d835c664e94ad8f414cfe7590ca7
9709Author: Lasse Collin <lasse.collin@tukaani.org>
9710Date:   2024-02-17 15:35:35 +0200
9711
9712    Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@.
9713
9714    PACKAGE_VERSION was already used in liblzma.pc.in.
9715    This way only one version @foo@ is used.
9716
9717 src/scripts/xzdiff.in | 2 +-
9718 src/scripts/xzgrep.in | 2 +-
9719 src/scripts/xzless.in | 2 +-
9720 src/scripts/xzmore.in | 2 +-
9721 4 files changed, 4 insertions(+), 4 deletions(-)
9722
9723commit 67610c245ba6c68cf65991693bab9312b7dc987b
9724Author: Lasse Collin <lasse.collin@tukaani.org>
9725Date:   2024-02-17 15:35:35 +0200
9726
9727    CMake: Simplify symlink creation and install translated man pages.
9728
9729    It helps that cmake_install.cmake doesn't parallelize installation
9730    so symlinks can be created so that the target is always known to
9731    exist (a requirement on Windows in some cases).
9732
9733    This bumps the minimum CMake version from 3.13 to 3.14 to use
9734    file(CREATE_LINK ...). It could be made to work on 3.13 by
9735    calling "cmake -E create_symlink" but it's uglier code and
9736    slower in "make install". 3.14 should be a reasonable version
9737    to require nowadays, especially since the Autotools build
9738    is still the primary build system for most OSes.
9739
9740 CMakeLists.txt | 195 +++++++++++++++++++++++++++++----------------------------
9741 1 file changed, 98 insertions(+), 97 deletions(-)
9742
9743commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf
9744Author: Lasse Collin <lasse.collin@tukaani.org>
9745Date:   2024-02-17 15:35:35 +0200
9746
9747    CMake: Add support for building and installing xz with translations.
9748
9749    If gettext tools are available, the .po files listed in po/LINGUAS
9750    are converted using msgfmt. This allows building with translations
9751    directly from xz.git without Autotools.
9752
9753    If gettext tools aren't available, the Autotools-created .gmo files
9754    in the "po" directory will be used. This allows CMake-based build
9755    to use translations from Autotools-generated tarball.
9756
9757    If translation support is found (Intl_FOUND) but both the
9758    gettext tools and the pre-generated .gmo files are missing,
9759    then "make" will fail.
9760
9761 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
9762 1 file changed, 66 insertions(+), 2 deletions(-)
9763
9764commit 746c471643009947f94a3494a1148f74c7381b56
9765Author: Lasse Collin <lasse.collin@tukaani.org>
9766Date:   2024-02-19 11:58:33 +0200
9767
9768    liblzma: Remove commented-out code.
9769
9770 src/liblzma/rangecoder/range_decoder.h | 3 ---
9771 1 file changed, 3 deletions(-)
9772
9773commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7
9774Author: Lasse Collin <lasse.collin@tukaani.org>
9775Date:   2024-02-17 23:07:35 +0200
9776
9777    xz: Delete old commented-out code.
9778
9779 src/xz/message.c | 19 -------------------
9780 1 file changed, 19 deletions(-)
9781
9782commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa
9783Author: Lasse Collin <lasse.collin@tukaani.org>
9784Date:   2024-02-17 23:07:35 +0200
9785
9786    xz: Use stricter pledge(2) and Landlock sandbox.
9787
9788    This makes these sandboxing methods stricter when no files are
9789    created or deleted. That is, it's a middle ground between the
9790    initial sandbox and the strictest single-file-to-stdout sandbox:
9791    this allows opening files for reading but output has to go to stdout.
9792
9793 src/xz/main.c    | 46 +++++++++++++++++++++++++++++++++-------------
9794 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++
9795 src/xz/sandbox.h |  4 ++++
9796 3 files changed, 69 insertions(+), 13 deletions(-)
9797
9798commit 02e3505991233901575b7eabc06b2c6c62a96899
9799Author: Lasse Collin <lasse.collin@tukaani.org>
9800Date:   2024-02-17 23:07:35 +0200
9801
9802    xz: Support Landlock ABI version 4.
9803
9804    Linux 6.7 added support for ABI version 4 which restricts
9805    TCP connections which xz won't need and thus those can be
9806    forbidden now. Since the ABI version is handled at runtime,
9807    supporting version 4 won't cause any compatibility issues.
9808
9809    Note that new enough kernel headers are required to get
9810    version 4 support enabled at build time.
9811
9812 src/xz/sandbox.c | 25 ++++++++++++++++++++-----
9813 1 file changed, 20 insertions(+), 5 deletions(-)
9814
9815commit 374868d81d473ab56556a1cfd6b1b36a1fab348b
9816Author: Lasse Collin <lasse.collin@tukaani.org>
9817Date:   2024-02-17 23:07:35 +0200
9818
9819    xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.
9820
9821    Landlock is now always used just like pledge(2) is: first in more
9822    permissive mode and later (under certain common conditions) in
9823    a strict mode that doesn't allow opening more files.
9824
9825    I put pledge(2) first in sandbox.c because it's the simplest API
9826    to use and still somewhat fine-grained for basic applications.
9827    So it's the simplest thing to understand for anyone reading sandbox.c.
9828
9829 CMakeLists.txt     |   2 +
9830 src/xz/Makefile.am |   2 +
9831 src/xz/file_io.c   | 170 +-----------------------------
9832 src/xz/file_io.h   |   6 --
9833 src/xz/main.c      |  50 +++------
9834 src/xz/private.h   |   6 +-
9835 src/xz/sandbox.c   | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++
9836 src/xz/sandbox.h   |  39 +++++++
9837 8 files changed, 357 insertions(+), 213 deletions(-)
9838
9839commit 7312dfbb02197c7f990c7a3cefd027a9387d1473
9840Author: Lasse Collin <lasse.collin@tukaani.org>
9841Date:   2024-02-17 23:07:35 +0200
9842
9843    xz: Tweak comments.
9844
9845 src/xz/main.c | 4 +++-
9846 1 file changed, 3 insertions(+), 1 deletion(-)
9847
9848commit c701a5909ad9882469fbab4fab5d2d5556d3ba78
9849Author: Lasse Collin <lasse.collin@tukaani.org>
9850Date:   2024-02-17 23:07:35 +0200
9851
9852    xz: Fix message_init() description.
9853
9854    Also explicitly initialize progress_automatic to make it clear
9855    that it can be read before message_init() sets it. Static variable
9856    was initialized to false by default already so this is only for
9857    clarity.
9858
9859 src/xz/main.c    | 3 ++-
9860 src/xz/message.c | 2 +-
9861 src/xz/message.h | 5 ++++-
9862 3 files changed, 7 insertions(+), 3 deletions(-)
9863
9864commit 9466306719f3b76e92fac4e55fbfd89ec92295fa
9865Author: Lasse Collin <lasse.collin@tukaani.org>
9866Date:   2024-02-17 19:35:47 +0200
9867
9868    Build: Makefile.am: Sort EXTRA_DIST.
9869
9870    Dirs first, then files in case-sensitive ASCII order.
9871
9872 Makefile.am | 14 +++++++-------
9873 1 file changed, 7 insertions(+), 7 deletions(-)
9874
9875commit f3440e78c9517db75bfa52e1a378fad60b073bbe
9876Author: Lasse Collin <lasse.collin@tukaani.org>
9877Date:   2024-02-17 19:25:05 +0200
9878
9879    Build: Don't install TODO.
9880
9881 Makefile.am | 2 +-
9882 1 file changed, 1 insertion(+), 1 deletion(-)
9883
9884commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381
9885Author: Jia Tan <jiat0218@gmail.com>
9886Date:   2024-02-18 01:09:11 +0800
9887
9888    Translations: Update the Korean man page translations.
9889
9890 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++-----------------------------
9891 1 file changed, 871 insertions(+), 836 deletions(-)
9892
9893commit 9b315db2d5e74700f3dc0755eb86c27947c0b393
9894Author: Jia Tan <jiat0218@gmail.com>
9895Date:   2024-02-18 01:08:32 +0800
9896
9897    Translations: Update the Korean translation.
9898
9899 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------
9900 1 file changed, 223 insertions(+), 200 deletions(-)
9901
9902commit 56246607dff177b0410d140fcca4a42c865723dc
9903Author: Lasse Collin <lasse.collin@tukaani.org>
9904Date:   2024-02-17 16:23:14 +0200
9905
9906    Build: Install translated lzmainfo man pages.
9907
9908    All other translated man pages were being installed but
9909    lzmainfo had been forgotten.
9910
9911 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++
9912 1 file changed, 26 insertions(+)
9913
9914commit f1d6b88aefcced538403c5c2606ba57065b16e70
9915Author: Lasse Collin <lasse.collin@tukaani.org>
9916Date:   2024-02-17 16:01:32 +0200
9917
9918    liblzma: Avoid implementation-defined behavior in the RISC-V filter.
9919
9920    GCC docs promise that it works and a few other compilers do
9921    too. Clang/LLVM is documented source code only but unsurprisingly
9922    it behaves the same as others on x86-64 at least. But the
9923    certainly-portable way is good enough here so use that.
9924
9925 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++--------
9926 1 file changed, 22 insertions(+), 8 deletions(-)
9927
9928commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a
9929Author: Lasse Collin <lasse.collin@tukaani.org>
9930Date:   2024-02-17 15:48:28 +0200
9931
9932    liblzma: Wrap a line exceeding 80 chars.
9933
9934 src/liblzma/rangecoder/range_decoder.h | 3 ++-
9935 1 file changed, 2 insertions(+), 1 deletion(-)
9936
9937commit e9053c907250c70d98b319d95fa54cb94fc76869
9938Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
9939Date:   2024-02-16 21:50:15 +0100
9940
9941    liblzma/rangecoder: Exclude x32 from the x86-64 optimisation.
9942
9943    The x32 port has a x86-64 ABI in term of all registers but uses only
9944    32bit pointer like x86-32. The assembly optimisation fails to compile on
9945    x32. Given the state of x32 I suggest to exclude it from the
9946    optimisation rather than trying to fix it.
9947
9948    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
9949
9950 src/liblzma/rangecoder/range_decoder.h | 2 +-
9951 1 file changed, 1 insertion(+), 1 deletion(-)
9952
9953commit 3d198fb13b87f8803442e5799d465f7434a70555
9954Author: Jia Tan <jiat0218@gmail.com>
9955Date:   2024-02-17 21:05:07 +0800
9956
9957    Translations: Update the Spanish translation.
9958
9959 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------
9960 1 file changed, 226 insertions(+), 201 deletions(-)
9961
9962commit cf278bfe60a25b54b3786f06503bc61272970820
9963Author: Jia Tan <jiat0218@gmail.com>
9964Date:   2024-02-17 20:43:29 +0800
9965
9966    Translations: Update the Swedish translation.
9967
9968 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------
9969 1 file changed, 230 insertions(+), 204 deletions(-)
9970
9971commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2
9972Author: Jia Tan <jiat0218@gmail.com>
9973Date:   2024-02-17 20:41:38 +0800
9974
9975    Translations: Update the Polish translation.
9976
9977 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------
9978 1 file changed, 224 insertions(+), 200 deletions(-)
9979
9980commit d74ed48b30c631b6a4c7e7858b06828293bf8520
9981Author: Jia Tan <jiat0218@gmail.com>
9982Date:   2024-02-17 20:41:02 +0800
9983
9984    Translations: Update the Ukrainian translation.
9985
9986 po/uk.po | 2 +-
9987 1 file changed, 1 insertion(+), 1 deletion(-)
9988
9989commit 711e22d5c5f3bac39ac904efb3ede874a66e2045
9990Author: Lasse Collin <lasse.collin@tukaani.org>
9991Date:   2024-02-16 17:53:34 +0200
9992
9993    Translations: Use the same sentence in xz.pot-header that the TP uses.
9994
9995 po/xz.pot-header | 2 +-
9996 1 file changed, 1 insertion(+), 1 deletion(-)
9997
9998commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422
9999Author: Jia Tan <jiat0218@gmail.com>
10000Date:   2024-02-16 22:53:46 +0800
10001
10002    Fix typos discovered by codespell.
10003
10004 AUTHORS                                | 2 +-
10005 NEWS                                   | 2 +-
10006 src/liblzma/rangecoder/range_decoder.h | 4 ++--
10007 3 files changed, 4 insertions(+), 4 deletions(-)
10008
10009commit c64723bbb094e29b4edd98f6fcce866e1b569b42
10010Author: Jia Tan <jiat0218@gmail.com>
10011Date:   2024-02-16 22:52:41 +0800
10012
10013    Translations: Update the Ukrainian man page translations.
10014
10015 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++-----------------------------
10016 1 file changed, 873 insertions(+), 837 deletions(-)
10017
10018commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6
10019Author: Jia Tan <jiat0218@gmail.com>
10020Date:   2024-02-16 22:51:04 +0800
10021
10022    Translations: Update the Ukrainian translation.
10023
10024 po/uk.po | 466 ++++++++++++++++++++++++++++++---------------------------------
10025 1 file changed, 225 insertions(+), 241 deletions(-)
10026
10027commit 4c20781f4c8f04879b64d631a4f44b4909147bde
10028Author: Lasse Collin <lasse.collin@tukaani.org>
10029Date:   2024-02-15 22:32:52 +0200
10030
10031    Translations: Omit the generic copyright line from man page headers.
10032
10033 po4a/update-po | 1 +
10034 1 file changed, 1 insertion(+)
10035
10036commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e
10037Author: Jia Tan <jiat0218@gmail.com>
10038Date:   2024-02-15 22:26:43 +0800
10039
10040    Update m4/.gitignore.
10041
10042 m4/.gitignore | 1 +
10043 1 file changed, 1 insertion(+)
10044
10045commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
10046Author: Lasse Collin <lasse.collin@tukaani.org>
10047Date:   2024-02-14 21:11:49 +0200
10048
10049    Tests: tuktest.h: Treat Clang separately from GCC.
10050
10051    Don't assume that Clang defines __GNUC__ as the extensions
10052    are available in clang-cl as well (and possibly in some other
10053    Clang variants?).
10054
10055 tests/tuktest.h | 6 +++---
10056 1 file changed, 3 insertions(+), 3 deletions(-)
10057
10058commit cce7330b9f23485a0879422e0c3395a7065439ac
10059Author: Lasse Collin <lasse.collin@tukaani.org>
10060Date:   2024-02-14 21:11:03 +0200
10061
10062    Tests: tuktest.h: Add a missing word to a comment.
10063
10064 tests/tuktest.h | 4 ++--
10065 1 file changed, 2 insertions(+), 2 deletions(-)
10066
10067commit 5dd8fc9452a3373cedc27379067ce638f992c741
10068Author: Lasse Collin <lasse.collin@tukaani.org>
10069Date:   2024-02-14 21:10:10 +0200
10070
10071    Tests: tuktest.h: Fix the comment about STest.
10072
10073 tests/tuktest.h | 3 ++-
10074 1 file changed, 2 insertions(+), 1 deletion(-)
10075
10076commit 6f1790254a03c5edf0f2976f773220f070450acd
10077Author: Jia Tan <jiat0218@gmail.com>
10078Date:   2024-02-15 01:53:40 +0800
10079
10080    Bump version for 5.5.2beta.
10081
10082 src/liblzma/api/lzma/version.h  | 4 ++--
10083 src/liblzma/liblzma_generic.map | 2 +-
10084 src/liblzma/liblzma_linux.map   | 2 +-
10085 3 files changed, 4 insertions(+), 4 deletions(-)
10086
10087commit 924fdeedf48113fb1e0646d86bd89a356d21a055
10088Author: Lasse Collin <lasse.collin@tukaani.org>
10089Date:   2024-02-14 19:46:11 +0200
10090
10091    liblzma: Fix validate_map.sh.
10092
10093    Adding the SPDX license identifier changed the line numbers.
10094
10095 src/liblzma/validate_map.sh | 2 +-
10096 1 file changed, 1 insertion(+), 1 deletion(-)
10097
10098commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01
10099Author: Lasse Collin <lasse.collin@tukaani.org>
10100Date:   2024-02-14 19:38:34 +0200
10101
10102    Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0.
10103
10104 Makefile.am | 2 +-
10105 1 file changed, 1 insertion(+), 1 deletion(-)
10106
10107commit 0b8cefa136c21d403a01b78517f4decb50172bdb
10108Author: Lasse Collin <lasse.collin@tukaani.org>
10109Date:   2024-02-14 19:27:46 +0200
10110
10111    Fixed NEWS for 5.5.2beta.
10112
10113 NEWS | 8 ++++++--
10114 1 file changed, 6 insertions(+), 2 deletions(-)
10115
10116commit a4557bad96361d93ea171ed859ac5a696fca824f
10117Author: Lasse Collin <lasse.collin@tukaani.org>
10118Date:   2024-02-14 19:21:45 +0200
10119
10120    liblzma: Silence warnings in --enable-small build.
10121
10122 src/liblzma/lzma/lzma_decoder.c        | 2 ++
10123 src/liblzma/rangecoder/range_decoder.h | 1 +
10124 2 files changed, 3 insertions(+)
10125
10126commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2
10127Author: Lasse Collin <lasse.collin@tukaani.org>
10128Date:   2024-02-14 19:15:58 +0200
10129
10130    Build: Install COPYING.0BSD as part of docs.
10131
10132 Makefile.am | 1 +
10133 1 file changed, 1 insertion(+)
10134
10135commit b74e10bd839bcdc239afb5300ffaee195f34c217
10136Author: Lasse Collin <lasse.collin@tukaani.org>
10137Date:   2024-02-14 19:14:05 +0200
10138
10139    Docs: List COPYING.0BSD in README.
10140
10141 README | 1 +
10142 1 file changed, 1 insertion(+)
10143
10144commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e
10145Author: Lasse Collin <lasse.collin@tukaani.org>
10146Date:   2024-02-14 19:11:48 +0200
10147
10148    Docs: Include doc/examples/11_file_info.c in tarballs.
10149
10150    It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd
10151    but it never got into any release tarballs because it was
10152    forgotten to be added to Makefile.am.
10153
10154 Makefile.am | 1 +
10155 1 file changed, 1 insertion(+)
10156
10157commit 160b6862646d95dfdbd73ab7f1031ede0f54992d
10158Author: Lasse Collin <lasse.collin@tukaani.org>
10159Date:   2024-02-14 19:05:58 +0200
10160
10161    liblzma: Silence a warning.
10162
10163 src/liblzma/rangecoder/range_decoder.h | 2 +-
10164 1 file changed, 1 insertion(+), 1 deletion(-)
10165
10166commit eeedd4d0925ea417add04ceb42a6c0829244b50c
10167Author: Lasse Collin <lasse.collin@tukaani.org>
10168Date:   2024-02-14 18:32:27 +0200
10169
10170    Add NEWS for 5.5.2beta.
10171
10172 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
10173 1 file changed, 60 insertions(+)
10174
10175commit 8af7db854f903068d72a9a0d21103cb0c5027fa8
10176Author: Lasse Collin <lasse.collin@tukaani.org>
10177Date:   2024-02-13 14:32:47 +0200
10178
10179    xz: Mention lzmainfo if trying to use 'lzma --list'.
10180
10181    This kind of fixes the problem reported here:
10182    https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020
10183
10184 src/xz/list.c | 16 ++++++++++++++--
10185 1 file changed, 14 insertions(+), 2 deletions(-)
10186
10187commit 0668907ff736e4cd16738c10d39a2bc9e851aefb
10188Author: Lasse Collin <lasse.collin@tukaani.org>
10189Date:   2024-02-14 14:58:36 +0200
10190
10191    liblzma: Add comments.
10192
10193 src/liblzma/lzma/lzma_decoder.c        |  9 +++++++++
10194 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++--
10195 2 files changed, 18 insertions(+), 2 deletions(-)
10196
10197commit 109f1913d4824c8214d5bbd38ebebf62c37572da
10198Author: Lasse Collin <lasse.collin@tukaani.org>
10199Date:   2024-02-13 17:00:17 +0200
10200
10201    Scripts: Add lz4 support to xzgrep and xzdiff.
10202
10203 src/scripts/xzdiff.1  |  8 +++++---
10204 src/scripts/xzdiff.in | 14 +++++++++-----
10205 src/scripts/xzgrep.1  |  6 ++++--
10206 src/scripts/xzgrep.in |  1 +
10207 4 files changed, 19 insertions(+), 10 deletions(-)
10208
10209commit de55485cb23af56c5adbe3239b935c957ff8ac4f
10210Author: Lasse Collin <lasse.collin@tukaani.org>
10211Date:   2024-02-13 14:05:13 +0200
10212
10213    liblzma: Choose the range decoder variants using a bitmask macro.
10214
10215 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------
10216 1 file changed, 53 insertions(+), 11 deletions(-)
10217
10218commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5
10219Author: Lasse Collin <lasse.collin@tukaani.org>
10220Date:   2024-02-13 11:38:10 +0200
10221
10222    xz: Fix outdated threading related info on the man page.
10223
10224 src/xz/xz.1 | 22 ++++++++++++++--------
10225 1 file changed, 14 insertions(+), 8 deletions(-)
10226
10227commit 3182a330c1512cc1f5c87b5c5a272578e60a5158
10228Author: Lasse Collin <lasse.collin@tukaani.org>
10229Date:   2024-02-12 17:09:10 +0200
10230
10231    liblzma: Range decoder: Add x86-64 inline assembly.
10232
10233    It's compatible with GCC and Clang.
10234
10235 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++
10236 1 file changed, 491 insertions(+)
10237
10238commit cba2edc991dffba7cd4891dbc1bd26cb950cf053
10239Author: Lasse Collin <lasse.collin@tukaani.org>
10240Date:   2024-02-12 17:09:10 +0200
10241
10242    liblzma: Range decoder: Add branchless C code.
10243
10244    It's used only for basic bittrees and fixed-size reverse bittree
10245    because those showed a clear benefit on x86-64 with GCC and Clang.
10246    The other methods were more mixed and thus are commented out but
10247    they should be tested on other archs.
10248
10249 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++
10250 1 file changed, 76 insertions(+)
10251
10252commit e290a72d6dee71faf3a90c9678b2f730083666a7
10253Author: Lasse Collin <lasse.collin@tukaani.org>
10254Date:   2024-02-12 17:09:10 +0200
10255
10256    liblzma: Clarify a comment.
10257
10258 src/liblzma/lzma/lzma_decoder.c | 9 ++++++---
10259 1 file changed, 6 insertions(+), 3 deletions(-)
10260
10261commit 5e04706b91ca90d6befd4da24a588a55e631d4a9
10262Author: Lasse Collin <lasse.collin@tukaani.org>
10263Date:   2024-02-12 17:09:10 +0200
10264
10265    liblzma: LZMA decoder: Optimize loop comparison.
10266
10267    But now it needs one more local variable.
10268
10269 src/liblzma/lzma/lzma_decoder.c        |  5 ++---
10270 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++-
10271 2 files changed, 11 insertions(+), 4 deletions(-)
10272
10273commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66
10274Author: Lasse Collin <lasse.collin@tukaani.org>
10275Date:   2024-02-12 17:09:10 +0200
10276
10277    liblzma: Optimize literal_subcoder() macro slightly.
10278
10279 src/liblzma/lzma/lzma_common.h                 | 22 ++++++++++++----------
10280 src/liblzma/lzma/lzma_decoder.c                | 12 ++++++------
10281 src/liblzma/lzma/lzma_encoder.c                |  6 +++---
10282 src/liblzma/lzma/lzma_encoder_optimum_normal.c |  2 +-
10283 src/liblzma/lzma/lzma_encoder_private.h        |  4 ++--
10284 5 files changed, 24 insertions(+), 22 deletions(-)
10285
10286commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5
10287Author: Lasse Collin <lasse.collin@tukaani.org>
10288Date:   2024-02-12 17:09:10 +0200
10289
10290    liblzma: LZ decoder: Add unlikely().
10291
10292 src/liblzma/lz/lz_decoder.h | 2 +-
10293 1 file changed, 1 insertion(+), 1 deletion(-)
10294
10295commit 9c252e3ed086c6b72590b2531586c42596d4a9d9
10296Author: Lasse Collin <lasse.collin@tukaani.org>
10297Date:   2024-02-12 17:09:10 +0200
10298
10299    liblzma: LZ decoder: Remove a useless unlikely().
10300
10301 src/liblzma/lz/lz_decoder.h | 2 +-
10302 1 file changed, 1 insertion(+), 1 deletion(-)
10303
10304commit f3872a59475456c5d365cad9f1c5be514cfa54b5
10305Author: Lasse Collin <lasse.collin@tukaani.org>
10306Date:   2024-02-12 17:09:10 +0200
10307
10308    liblzma: Optimize LZ decoder slightly.
10309
10310    Now extra buffer space is reserved so that repeating bytes for
10311    any single match will never need to copy from two places (both
10312    the beginning and the end of the buffer). This simplifies
10313    dict_repeat() and helps a little with speed.
10314
10315    This seems to reduce .lzma decompression time about 2 %, so
10316    with .xz and CRC it could be slightly less. The small things
10317    add up still.
10318
10319 src/liblzma/lz/lz_decoder.c     |  43 ++++++++++++-----
10320 src/liblzma/lz/lz_decoder.h     | 101 +++++++++++++++++++++-------------------
10321 src/liblzma/lzma/lzma_decoder.c |   4 +-
10322 3 files changed, 88 insertions(+), 60 deletions(-)
10323
10324commit eb518446e578acf079abae5f1ce28db7b6e59bc1
10325Author: Lasse Collin <lasse.collin@tukaani.org>
10326Date:   2024-02-12 17:09:10 +0200
10327
10328    liblzma: LZMA decoder: Get rid of next_state[].
10329
10330    It's not completely obvious if this is better in the decoder.
10331    It should be good if compiler can avoid creating a branch
10332    (like using CMOV on x86).
10333
10334    This also makes lzma_encoder.c use the new macros.
10335
10336 src/liblzma/lzma/lzma_common.h  | 14 ++++++++++++++
10337 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++----------------------
10338 src/liblzma/lzma/lzma_encoder.c |  4 ++--
10339 3 files changed, 24 insertions(+), 24 deletions(-)
10340
10341commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604
10342Author: Lasse Collin <lasse.collin@tukaani.org>
10343Date:   2024-02-12 17:09:10 +0200
10344
10345    liblzma: LZMA decoder improvements.
10346
10347    This adds macros for bittree decoding which prepares the code
10348    for alternative C versions and inline assembly.
10349
10350 src/liblzma/lzma/lzma_decoder.c        | 264 ++++++++++-----------------------
10351 src/liblzma/rangecoder/range_common.h  |   4 +
10352 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++--
10353 3 files changed, 210 insertions(+), 200 deletions(-)
10354
10355commit de5c5e417645ad8906ef914bc059d08c1462fc29
10356Author: Jia Tan <jiat0218@gmail.com>
10357Date:   2024-02-12 17:09:10 +0200
10358
10359    liblzma: Creates Non-resumable and Resumable modes for lzma_decoder.
10360
10361    The new decoder resumes the first decoder loop in the Resumable mode.
10362    Then, the code executes in Non-resumable mode until it detects that it
10363    cannot guarantee to have enough input/output to decode another symbol.
10364
10365    The Resumable mode is how the decoder has always worked. Before decoding
10366    every input bit, it checks if there is enough space and will save its
10367    location to be resumed later. When the decoder has more input/output,
10368    it jumps back to the correct sequence in the Resumable mode code.
10369
10370    When the input/output buffers are large, the Resumable mode is much
10371    slower than the Non-resumable because it has more branches and is harder
10372    for the compiler to optimize since it is in a large switch block.
10373
10374    Early benchmarking shows significant time improvement (8-10% on gcc and
10375    clang x86) by using the Non-resumable code as much as possible.
10376
10377 src/liblzma/lz/lz_decoder.h     |  14 +-
10378 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------
10379 2 files changed, 521 insertions(+), 213 deletions(-)
10380
10381commit e446ab7a18abfde18f8d1cf02a914df72b1370e3
10382Author: Jia Tan <jiat0218@gmail.com>
10383Date:   2024-02-12 17:09:10 +0200
10384
10385    liblzma: Creates separate "safe" range decoder mode.
10386
10387    The new "safe" range decoder mode is the same as old range decoder, but
10388    now the default behavior of the range decoder will not check if there is
10389    enough input or output to complete the operation. When the buffers are
10390    close to fully consumed, the "safe" operations must be used instead. This
10391    will improve speed because it will reduce the number of branches needed
10392    for most of the range decoder operations.
10393
10394 src/liblzma/lzma/lzma_decoder.c        | 108 ++++++++-------------------------
10395 src/liblzma/rangecoder/range_decoder.h |  77 +++++++++++++++++------
10396 2 files changed, 82 insertions(+), 103 deletions(-)
10397
10398commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9
10399Author: Lasse Collin <lasse.collin@tukaani.org>
10400Date:   2024-02-12 17:09:10 +0200
10401
10402    doxygen/footer.html: Add missing closing tags and don't open a new tab.
10403
10404    The footer template from Doxygen has the closing </body> </html>
10405    as Doxygen doesn't add them otherwise.
10406
10407    target="_blank" was omitted as it's not useful here but
10408    it can be slightly annoying as one cannot just go back
10409    in the browser history.
10410
10411    Since the footer links to the license file in the same
10412    directory and not to CC website, the rel attributes
10413    can be omitted.
10414
10415 doxygen/footer.html | 6 ++++--
10416 1 file changed, 4 insertions(+), 2 deletions(-)
10417
10418commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92
10419Author: Lasse Collin <lasse.collin@tukaani.org>
10420Date:   2024-02-13 13:19:10 +0200
10421
10422    Tweak the expressions in AUTHORS.
10423
10424 AUTHORS | 31 +++++++++++++++++++++++--------
10425 1 file changed, 23 insertions(+), 8 deletions(-)
10426
10427commit d231d56580175fa040fdd3c6207a58243ce6217b
10428Author: Lasse Collin <lasse.collin@tukaani.org>
10429Date:   2024-02-13 13:07:33 +0200
10430
10431    Translations: Add the man page translators into man page header comment.
10432
10433    It looked odd to only have the original English authors listed
10434    in the header comments of the translated files.
10435
10436 po4a/.gitignore |  1 +
10437 po4a/po4a.conf  | 14 +++++++-------
10438 po4a/update-po  | 18 ++++++++++++++++++
10439 3 files changed, 26 insertions(+), 7 deletions(-)
10440
10441commit 6d35fcb936474fca1acaebfd9502c097b6fde88e
10442Author: Lasse Collin <lasse.collin@tukaani.org>
10443Date:   2024-02-12 17:09:10 +0200
10444
10445    Translations: Translate also messages of lzmainfo.
10446
10447    lzmainfo has had translation support since 2009 at least but
10448    it was never added to po/POTFILES.in so the messages weren't
10449    translated. It's a very rarely needed tool so it's not too bad.
10450
10451    This also adds src/xz/mytime.c to po/POTFILES.in although there
10452    are no translatable strings. It's simpler this way so that it
10453    won't be forgotten if strings were ever added to that file.
10454
10455 po/POTFILES.in | 2 ++
10456 1 file changed, 2 insertions(+)
10457
10458commit a9f369dd54b05f9ac4e00ead9d765d04fc259868
10459Author: Lasse Collin <lasse.collin@tukaani.org>
10460Date:   2024-02-12 17:09:10 +0200
10461
10462    Translations: Add custom .pot header with SPDX license identifier.
10463
10464    The same is used for both po/xz.pot and po4a/xz-man.pot.
10465
10466 Makefile.am      | 1 +
10467 po/xz.pot-header | 7 +++++++
10468 po4a/update-po   | 8 ++++++++
10469 3 files changed, 16 insertions(+)
10470
10471commit 469cd6653bb96e83c5cf1031c204d34566b15f44
10472Author: Lasse Collin <lasse.collin@tukaani.org>
10473Date:   2024-02-12 17:09:10 +0200
10474
10475    Translations: po4a/update-po: Add copyright notice to xz-man.pot.
10476
10477    All man pages are under 0BSD now so this is simple now.
10478
10479 po4a/update-po | 2 +-
10480 1 file changed, 1 insertion(+), 1 deletion(-)
10481
10482commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699
10483Author: Lasse Collin <lasse.collin@tukaani.org>
10484Date:   2024-02-12 17:09:10 +0200
10485
10486    Update COPYING about the man pages of the scripts.
10487
10488 COPYING | 6 +++---
10489 1 file changed, 3 insertions(+), 3 deletions(-)
10490
10491commit e48287bf51afd5184ea74de1dcade9e153f873f7
10492Author: Lasse Collin <lasse.collin@tukaani.org>
10493Date:   2024-02-12 17:09:10 +0200
10494
10495    xzdiff, xzgrep, and xzmore: Rewrite the man pages.
10496
10497    The main reason is a kind of silly one:
10498
10499    xz-man.pot contains strings from all man pages in XZ Utils.
10500    The man pages of xzdiff, xzgrep, and xzmore were under GPLv2
10501    and the rest under 0BSD. Thus xz-man.pot contained strings
10502    under two licences. po4a creates the translated man pages
10503    from the combined 0BSD+GPLv2 xz-man.pot.
10504
10505    I haven't liked this mixing in xz-man.pot but the
10506    Translation Project requires that all man pages must be
10507    in the same .pot file. So a separate xz-man-gpl.pot
10508    wasn't an option.
10509
10510    Since these man pages are short, rewriting them was quick enough.
10511    Now xz-man.pot is entirely under 0BSD and marking the per-file
10512    licenses is simpler.
10513
10514    As a bonus, some wording hopefully is now slightly better
10515    although it's perhaps a matter of taste.
10516
10517    NOTE: In xzgrep.1, the EXIT STATUS section was written by me
10518    in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's
10519    why that section could be taken as is from the old xzgrep.1.
10520
10521 src/scripts/xzdiff.1 |  94 ++++++++++++++++++++++++-----------------
10522 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++-------------------
10523 src/scripts/xzmore.1 |  79 ++++++++++++++++++++---------------
10524 3 files changed, 173 insertions(+), 116 deletions(-)
10525
10526commit 3e551b111b8ae8150f1a1040364dbafc034f22be
10527Author: Lasse Collin <lasse.collin@tukaani.org>
10528Date:   2024-02-12 17:09:10 +0200
10529
10530    xzless: Update man page slightly.
10531
10532    The xz tool can decompress three file formats and xzless
10533    has always supported uncompressed files too.
10534
10535 src/scripts/xzless.1 | 8 ++++----
10536 1 file changed, 4 insertions(+), 4 deletions(-)
10537
10538commit 40f36da2262d13d6e1ba8449caa855512ae626d7
10539Author: Lasse Collin <lasse.collin@tukaani.org>
10540Date:   2024-02-12 17:09:10 +0200
10541
10542    Translations: Change po/Makevars to add a copyright notice to po/xz.pot.
10543
10544 po/Makevars | 4 ++--
10545 1 file changed, 2 insertions(+), 2 deletions(-)
10546
10547commit 24192854e2ea5c06997431a98bda3c36c5da1497
10548Author: Lasse Collin <lasse.collin@tukaani.org>
10549Date:   2024-02-12 17:09:10 +0200
10550
10551    Translations: Update po/Makevars to use the template from gettext 0.22.4.
10552
10553    Also add SPDX license identifier now that there is a known license.
10554
10555 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++-----
10556 1 file changed, 46 insertions(+), 5 deletions(-)
10557
10558commit b94154957370116480b43bcabca25fc52deb9853
10559Author: Lasse Collin <lasse.collin@tukaani.org>
10560Date:   2024-02-12 17:09:10 +0200
10561
10562    liblzma: Include the SPDX license identifier 0BSD to generated files.
10563
10564    Perhaps the generated files aren't even copyrightable but
10565    using the same license for them as for the rest of the liblzma
10566    keeps things more consistent for tools that look for license info.
10567
10568 src/liblzma/check/crc32_table_be.h      |  4 +++-
10569 src/liblzma/check/crc32_table_le.h      |  4 +++-
10570 src/liblzma/check/crc32_tablegen.c      | 16 ++++++++++------
10571 src/liblzma/check/crc64_table_be.h      |  4 +++-
10572 src/liblzma/check/crc64_table_le.h      |  4 +++-
10573 src/liblzma/check/crc64_tablegen.c      |  8 +++++---
10574 src/liblzma/lz/lz_encoder_hash_table.h  |  4 +++-
10575 src/liblzma/lzma/fastpos_table.c        |  4 +++-
10576 src/liblzma/lzma/fastpos_tablegen.c     | 12 +++++++-----
10577 src/liblzma/rangecoder/price_table.c    |  4 +++-
10578 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++-----
10579 11 files changed, 50 insertions(+), 26 deletions(-)
10580
10581commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4
10582Author: Lasse Collin <lasse.collin@tukaani.org>
10583Date:   2024-02-12 17:09:10 +0200
10584
10585    liblzma: Fix compilation of price_tablegen.c.
10586
10587    It is built and run only manually so this didn't matter
10588    unless one wanted to regenerate the price_table.c.
10589
10590 src/liblzma/rangecoder/price_tablegen.c | 5 +++++
10591 src/liblzma/rangecoder/range_common.h   | 5 ++++-
10592 2 files changed, 9 insertions(+), 1 deletion(-)
10593
10594commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf
10595Author: Lasse Collin <lasse.collin@tukaani.org>
10596Date:   2024-02-12 17:09:10 +0200
10597
10598    Add SPDX license identifiers to GPL, LGPL, and FSFULLR files.
10599
10600 extra/scanlzma/scanlzma.c | 2 ++
10601 lib/Makefile.am           | 2 ++
10602 lib/getopt-cdefs.h        | 2 ++
10603 lib/getopt-core.h         | 2 ++
10604 lib/getopt-ext.h          | 2 ++
10605 lib/getopt-pfx-core.h     | 2 ++
10606 lib/getopt-pfx-ext.h      | 2 ++
10607 lib/getopt.c              | 2 ++
10608 lib/getopt.in.h           | 2 ++
10609 lib/getopt1.c             | 2 ++
10610 lib/getopt_int.h          | 2 ++
10611 m4/ax_pthread.m4          | 2 ++
10612 m4/getopt.m4              | 2 ++
10613 m4/posix-shell.m4         | 2 ++
10614 m4/visibility.m4          | 2 ++
10615 src/scripts/xzdiff.1      | 3 +--
10616 src/scripts/xzdiff.in     | 1 +
10617 src/scripts/xzgrep.1      | 3 +--
10618 src/scripts/xzgrep.in     | 1 +
10619 src/scripts/xzless.in     | 1 +
10620 src/scripts/xzmore.1      | 3 +--
10621 src/scripts/xzmore.in     | 1 +
10622 22 files changed, 37 insertions(+), 6 deletions(-)
10623
10624commit 22af94128b89a131f5e58ae69bee5e50227c15da
10625Author: Lasse Collin <lasse.collin@tukaani.org>
10626Date:   2024-02-12 17:09:10 +0200
10627
10628    Add SPDX license identifier into 0BSD source code files.
10629
10630 .github/workflows/ci.yml                       | 2 ++
10631 .github/workflows/windows-ci.yml               | 2 ++
10632 CMakeLists.txt                                 | 2 ++
10633 Makefile.am                                    | 3 +--
10634 autogen.sh                                     | 1 +
10635 build-aux/ci_build.sh                          | 3 ++-
10636 build-aux/manconv.sh                           | 3 ++-
10637 build-aux/version.sh                           | 3 ++-
10638 cmake/remove-ordinals.cmake                    | 2 ++
10639 cmake/tuklib_common.cmake                      | 4 ++++
10640 cmake/tuklib_cpucores.cmake                    | 4 ++++
10641 cmake/tuklib_integer.cmake                     | 4 ++++
10642 cmake/tuklib_large_file_support.cmake          | 4 ++++
10643 cmake/tuklib_mbstr.cmake                       | 4 ++++
10644 cmake/tuklib_physmem.cmake                     | 4 ++++
10645 cmake/tuklib_progname.cmake                    | 4 ++++
10646 configure.ac                                   | 4 +++-
10647 debug/Makefile.am                              | 3 +--
10648 debug/crc32.c                                  | 2 ++
10649 debug/full_flush.c                             | 2 ++
10650 debug/hex2bin.c                                | 2 ++
10651 debug/known_sizes.c                            | 2 ++
10652 debug/memusage.c                               | 2 ++
10653 debug/repeat.c                                 | 2 ++
10654 debug/sync_flush.c                             | 2 ++
10655 debug/translation.bash                         | 1 +
10656 doc/examples/01_compress_easy.c                | 2 ++
10657 doc/examples/02_decompress.c                   | 2 ++
10658 doc/examples/03_compress_custom.c              | 2 ++
10659 doc/examples/04_compress_easy_mt.c             | 2 ++
10660 doc/examples/11_file_info.c                    | 2 ++
10661 doc/examples/Makefile                          | 3 +--
10662 dos/Makefile                                   | 2 ++
10663 dos/config.h                                   | 2 ++
10664 doxygen/update-doxygen                         | 3 ++-
10665 extra/7z2lzma/7z2lzma.bash                     | 3 ++-
10666 m4/tuklib_common.m4                            | 8 ++++++--
10667 m4/tuklib_cpucores.m4                          | 8 ++++++--
10668 m4/tuklib_integer.m4                           | 8 ++++++--
10669 m4/tuklib_mbstr.m4                             | 8 ++++++--
10670 m4/tuklib_physmem.m4                           | 8 ++++++--
10671 m4/tuklib_progname.m4                          | 8 ++++++--
10672 po/POTFILES.in                                 | 2 ++
10673 po4a/po4a.conf                                 | 2 ++
10674 po4a/update-po                                 | 3 ++-
10675 src/Makefile.am                                | 3 +--
10676 src/common/common_w32res.rc                    | 2 ++
10677 src/common/mythread.h                          | 2 ++
10678 src/common/sysdefs.h                           | 2 ++
10679 src/common/tuklib_common.h                     | 2 ++
10680 src/common/tuklib_config.h                     | 2 ++
10681 src/common/tuklib_cpucores.c                   | 2 ++
10682 src/common/tuklib_cpucores.h                   | 2 ++
10683 src/common/tuklib_exit.c                       | 2 ++
10684 src/common/tuklib_exit.h                       | 2 ++
10685 src/common/tuklib_gettext.h                    | 2 ++
10686 src/common/tuklib_integer.h                    | 2 ++
10687 src/common/tuklib_mbstr.h                      | 2 ++
10688 src/common/tuklib_mbstr_fw.c                   | 2 ++
10689 src/common/tuklib_mbstr_width.c                | 2 ++
10690 src/common/tuklib_open_stdxxx.c                | 2 ++
10691 src/common/tuklib_open_stdxxx.h                | 2 ++
10692 src/common/tuklib_physmem.c                    | 2 ++
10693 src/common/tuklib_physmem.h                    | 2 ++
10694 src/common/tuklib_progname.c                   | 2 ++
10695 src/common/tuklib_progname.h                   | 2 ++
10696 src/liblzma/Makefile.am                        | 3 +--
10697 src/liblzma/api/Makefile.am                    | 3 +--
10698 src/liblzma/api/lzma.h                         | 2 ++
10699 src/liblzma/api/lzma/base.h                    | 2 ++
10700 src/liblzma/api/lzma/bcj.h                     | 2 ++
10701 src/liblzma/api/lzma/block.h                   | 2 ++
10702 src/liblzma/api/lzma/check.h                   | 2 ++
10703 src/liblzma/api/lzma/container.h               | 2 ++
10704 src/liblzma/api/lzma/delta.h                   | 2 ++
10705 src/liblzma/api/lzma/filter.h                  | 2 ++
10706 src/liblzma/api/lzma/hardware.h                | 2 ++
10707 src/liblzma/api/lzma/index.h                   | 2 ++
10708 src/liblzma/api/lzma/index_hash.h              | 2 ++
10709 src/liblzma/api/lzma/lzma12.h                  | 2 ++
10710 src/liblzma/api/lzma/stream_flags.h            | 2 ++
10711 src/liblzma/api/lzma/version.h                 | 2 ++
10712 src/liblzma/api/lzma/vli.h                     | 2 ++
10713 src/liblzma/check/Makefile.inc                 | 4 ++--
10714 src/liblzma/check/check.c                      | 2 ++
10715 src/liblzma/check/check.h                      | 2 ++
10716 src/liblzma/check/crc32_arm64.h                | 2 ++
10717 src/liblzma/check/crc32_fast.c                 | 2 ++
10718 src/liblzma/check/crc32_small.c                | 2 ++
10719 src/liblzma/check/crc32_table.c                | 2 ++
10720 src/liblzma/check/crc32_tablegen.c             | 2 ++
10721 src/liblzma/check/crc32_x86.S                  | 2 ++
10722 src/liblzma/check/crc64_fast.c                 | 2 ++
10723 src/liblzma/check/crc64_small.c                | 2 ++
10724 src/liblzma/check/crc64_table.c                | 2 ++
10725 src/liblzma/check/crc64_tablegen.c             | 2 ++
10726 src/liblzma/check/crc64_x86.S                  | 2 ++
10727 src/liblzma/check/crc_common.h                 | 2 ++
10728 src/liblzma/check/crc_x86_clmul.h              | 2 ++
10729 src/liblzma/check/sha256.c                     | 2 ++
10730 src/liblzma/common/Makefile.inc                | 3 +--
10731 src/liblzma/common/alone_decoder.c             | 2 ++
10732 src/liblzma/common/alone_decoder.h             | 2 ++
10733 src/liblzma/common/alone_encoder.c             | 2 ++
10734 src/liblzma/common/auto_decoder.c              | 2 ++
10735 src/liblzma/common/block_buffer_decoder.c      | 2 ++
10736 src/liblzma/common/block_buffer_encoder.c      | 2 ++
10737 src/liblzma/common/block_buffer_encoder.h      | 2 ++
10738 src/liblzma/common/block_decoder.c             | 2 ++
10739 src/liblzma/common/block_decoder.h             | 2 ++
10740 src/liblzma/common/block_encoder.c             | 2 ++
10741 src/liblzma/common/block_encoder.h             | 2 ++
10742 src/liblzma/common/block_header_decoder.c      | 2 ++
10743 src/liblzma/common/block_header_encoder.c      | 2 ++
10744 src/liblzma/common/block_util.c                | 2 ++
10745 src/liblzma/common/common.c                    | 2 ++
10746 src/liblzma/common/common.h                    | 2 ++
10747 src/liblzma/common/easy_buffer_encoder.c       | 2 ++
10748 src/liblzma/common/easy_decoder_memusage.c     | 2 ++
10749 src/liblzma/common/easy_encoder.c              | 2 ++
10750 src/liblzma/common/easy_encoder_memusage.c     | 2 ++
10751 src/liblzma/common/easy_preset.c               | 2 ++
10752 src/liblzma/common/easy_preset.h               | 2 ++
10753 src/liblzma/common/file_info.c                 | 2 ++
10754 src/liblzma/common/filter_buffer_decoder.c     | 2 ++
10755 src/liblzma/common/filter_buffer_encoder.c     | 2 ++
10756 src/liblzma/common/filter_common.c             | 2 ++
10757 src/liblzma/common/filter_common.h             | 2 ++
10758 src/liblzma/common/filter_decoder.c            | 2 ++
10759 src/liblzma/common/filter_decoder.h            | 2 ++
10760 src/liblzma/common/filter_encoder.c            | 2 ++
10761 src/liblzma/common/filter_encoder.h            | 2 ++
10762 src/liblzma/common/filter_flags_decoder.c      | 2 ++
10763 src/liblzma/common/filter_flags_encoder.c      | 2 ++
10764 src/liblzma/common/hardware_cputhreads.c       | 2 ++
10765 src/liblzma/common/hardware_physmem.c          | 2 ++
10766 src/liblzma/common/index.c                     | 2 ++
10767 src/liblzma/common/index.h                     | 2 ++
10768 src/liblzma/common/index_decoder.c             | 2 ++
10769 src/liblzma/common/index_decoder.h             | 2 ++
10770 src/liblzma/common/index_encoder.c             | 2 ++
10771 src/liblzma/common/index_encoder.h             | 2 ++
10772 src/liblzma/common/index_hash.c                | 2 ++
10773 src/liblzma/common/lzip_decoder.c              | 2 ++
10774 src/liblzma/common/lzip_decoder.h              | 2 ++
10775 src/liblzma/common/memcmplen.h                 | 2 ++
10776 src/liblzma/common/microlzma_decoder.c         | 2 ++
10777 src/liblzma/common/microlzma_encoder.c         | 2 ++
10778 src/liblzma/common/outqueue.c                  | 2 ++
10779 src/liblzma/common/outqueue.h                  | 2 ++
10780 src/liblzma/common/stream_buffer_decoder.c     | 2 ++
10781 src/liblzma/common/stream_buffer_encoder.c     | 2 ++
10782 src/liblzma/common/stream_decoder.c            | 2 ++
10783 src/liblzma/common/stream_decoder.h            | 2 ++
10784 src/liblzma/common/stream_decoder_mt.c         | 2 ++
10785 src/liblzma/common/stream_encoder.c            | 2 ++
10786 src/liblzma/common/stream_encoder_mt.c         | 2 ++
10787 src/liblzma/common/stream_flags_common.c       | 2 ++
10788 src/liblzma/common/stream_flags_common.h       | 2 ++
10789 src/liblzma/common/stream_flags_decoder.c      | 2 ++
10790 src/liblzma/common/stream_flags_encoder.c      | 2 ++
10791 src/liblzma/common/string_conversion.c         | 2 ++
10792 src/liblzma/common/vli_decoder.c               | 2 ++
10793 src/liblzma/common/vli_encoder.c               | 2 ++
10794 src/liblzma/common/vli_size.c                  | 2 ++
10795 src/liblzma/delta/Makefile.inc                 | 3 +--
10796 src/liblzma/delta/delta_common.c               | 2 ++
10797 src/liblzma/delta/delta_common.h               | 2 ++
10798 src/liblzma/delta/delta_decoder.c              | 2 ++
10799 src/liblzma/delta/delta_decoder.h              | 2 ++
10800 src/liblzma/delta/delta_encoder.c              | 2 ++
10801 src/liblzma/delta/delta_encoder.h              | 2 ++
10802 src/liblzma/delta/delta_private.h              | 2 ++
10803 src/liblzma/liblzma.pc.in                      | 3 +--
10804 src/liblzma/liblzma_generic.map                | 2 ++
10805 src/liblzma/liblzma_linux.map                  | 2 ++
10806 src/liblzma/liblzma_w32res.rc                  | 2 ++
10807 src/liblzma/lz/Makefile.inc                    | 3 +--
10808 src/liblzma/lz/lz_decoder.c                    | 2 ++
10809 src/liblzma/lz/lz_decoder.h                    | 2 ++
10810 src/liblzma/lz/lz_encoder.c                    | 2 ++
10811 src/liblzma/lz/lz_encoder.h                    | 2 ++
10812 src/liblzma/lz/lz_encoder_hash.h               | 2 ++
10813 src/liblzma/lz/lz_encoder_mf.c                 | 2 ++
10814 src/liblzma/lzma/Makefile.inc                  | 3 +--
10815 src/liblzma/lzma/fastpos.h                     | 2 ++
10816 src/liblzma/lzma/fastpos_tablegen.c            | 2 ++
10817 src/liblzma/lzma/lzma2_decoder.c               | 2 ++
10818 src/liblzma/lzma/lzma2_decoder.h               | 2 ++
10819 src/liblzma/lzma/lzma2_encoder.c               | 2 ++
10820 src/liblzma/lzma/lzma2_encoder.h               | 2 ++
10821 src/liblzma/lzma/lzma_common.h                 | 2 ++
10822 src/liblzma/lzma/lzma_decoder.c                | 2 ++
10823 src/liblzma/lzma/lzma_decoder.h                | 2 ++
10824 src/liblzma/lzma/lzma_encoder.c                | 2 ++
10825 src/liblzma/lzma/lzma_encoder.h                | 2 ++
10826 src/liblzma/lzma/lzma_encoder_optimum_fast.c   | 2 ++
10827 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++
10828 src/liblzma/lzma/lzma_encoder_presets.c        | 2 ++
10829 src/liblzma/lzma/lzma_encoder_private.h        | 2 ++
10830 src/liblzma/rangecoder/Makefile.inc            | 3 +--
10831 src/liblzma/rangecoder/price.h                 | 2 ++
10832 src/liblzma/rangecoder/price_tablegen.c        | 2 ++
10833 src/liblzma/rangecoder/range_common.h          | 2 ++
10834 src/liblzma/rangecoder/range_decoder.h         | 2 ++
10835 src/liblzma/rangecoder/range_encoder.h         | 2 ++
10836 src/liblzma/simple/Makefile.inc                | 3 +--
10837 src/liblzma/simple/arm.c                       | 2 ++
10838 src/liblzma/simple/arm64.c                     | 2 ++
10839 src/liblzma/simple/armthumb.c                  | 2 ++
10840 src/liblzma/simple/ia64.c                      | 2 ++
10841 src/liblzma/simple/powerpc.c                   | 2 ++
10842 src/liblzma/simple/riscv.c                     | 2 ++
10843 src/liblzma/simple/simple_coder.c              | 2 ++
10844 src/liblzma/simple/simple_coder.h              | 2 ++
10845 src/liblzma/simple/simple_decoder.c            | 2 ++
10846 src/liblzma/simple/simple_decoder.h            | 2 ++
10847 src/liblzma/simple/simple_encoder.c            | 2 ++
10848 src/liblzma/simple/simple_encoder.h            | 2 ++
10849 src/liblzma/simple/simple_private.h            | 2 ++
10850 src/liblzma/simple/sparc.c                     | 2 ++
10851 src/liblzma/simple/x86.c                       | 2 ++
10852 src/liblzma/validate_map.sh                    | 1 +
10853 src/lzmainfo/Makefile.am                       | 3 +--
10854 src/lzmainfo/lzmainfo.c                        | 2 ++
10855 src/lzmainfo/lzmainfo_w32res.rc                | 2 ++
10856 src/scripts/Makefile.am                        | 3 +--
10857 src/xz/Makefile.am                             | 3 +--
10858 src/xz/args.c                                  | 2 ++
10859 src/xz/args.h                                  | 2 ++
10860 src/xz/coder.c                                 | 2 ++
10861 src/xz/coder.h                                 | 2 ++
10862 src/xz/file_io.c                               | 2 ++
10863 src/xz/file_io.h                               | 2 ++
10864 src/xz/hardware.c                              | 2 ++
10865 src/xz/hardware.h                              | 2 ++
10866 src/xz/list.c                                  | 2 ++
10867 src/xz/list.h                                  | 2 ++
10868 src/xz/main.c                                  | 2 ++
10869 src/xz/main.h                                  | 2 ++
10870 src/xz/message.c                               | 2 ++
10871 src/xz/message.h                               | 2 ++
10872 src/xz/mytime.c                                | 2 ++
10873 src/xz/mytime.h                                | 2 ++
10874 src/xz/options.c                               | 2 ++
10875 src/xz/options.h                               | 2 ++
10876 src/xz/private.h                               | 2 ++
10877 src/xz/signals.c                               | 2 ++
10878 src/xz/signals.h                               | 2 ++
10879 src/xz/suffix.c                                | 2 ++
10880 src/xz/suffix.h                                | 2 ++
10881 src/xz/util.c                                  | 2 ++
10882 src/xz/util.h                                  | 2 ++
10883 src/xz/xz_w32res.rc                            | 2 ++
10884 src/xzdec/Makefile.am                          | 3 +--
10885 src/xzdec/lzmadec_w32res.rc                    | 2 ++
10886 src/xzdec/xzdec.c                              | 2 ++
10887 src/xzdec/xzdec_w32res.rc                      | 2 ++
10888 tests/Makefile.am                              | 3 +--
10889 tests/bcj_test.c                               | 2 ++
10890 tests/code_coverage.sh                         | 1 +
10891 tests/create_compress_files.c                  | 2 ++
10892 tests/ossfuzz/fuzz_common.h                    | 2 ++
10893 tests/ossfuzz/fuzz_decode_alone.c              | 2 ++
10894 tests/ossfuzz/fuzz_decode_stream.c             | 2 ++
10895 tests/ossfuzz/fuzz_encode_stream.c             | 2 ++
10896 tests/test_bcj_exact_size.c                    | 2 ++
10897 tests/test_block_header.c                      | 2 ++
10898 tests/test_check.c                             | 2 ++
10899 tests/test_compress.sh                         | 1 +
10900 tests/test_compress_generated_abc              | 1 +
10901 tests/test_compress_generated_random           | 1 +
10902 tests/test_compress_generated_text             | 1 +
10903 tests/test_compress_prepared_bcj_sparc         | 1 +
10904 tests/test_compress_prepared_bcj_x86           | 1 +
10905 tests/test_files.sh                            | 1 +
10906 tests/test_filter_flags.c                      | 2 ++
10907 tests/test_filter_str.c                        | 2 ++
10908 tests/test_hardware.c                          | 2 ++
10909 tests/test_index.c                             | 2 ++
10910 tests/test_index_hash.c                        | 2 ++
10911 tests/test_lzip_decoder.c                      | 2 ++
10912 tests/test_memlimit.c                          | 2 ++
10913 tests/test_scripts.sh                          | 1 +
10914 tests/test_stream_flags.c                      | 2 ++
10915 tests/test_suffix.sh                           | 1 +
10916 tests/test_vli.c                               | 2 ++
10917 tests/tests.h                                  | 2 ++
10918 tests/tuktest.h                                | 2 ++
10919 windows/build.bash                             | 3 ++-
10920 290 files changed, 588 insertions(+), 58 deletions(-)
10921
10922commit 23de53421ea258cde6a3c33a038b1e9d08f771d1
10923Author: Lasse Collin <lasse.collin@tukaani.org>
10924Date:   2024-02-12 23:25:54 +0200
10925
10926    liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h.
10927
10928 src/liblzma/api/lzma.h | 10 ++++------
10929 1 file changed, 4 insertions(+), 6 deletions(-)
10930
10931commit 689e0228baeb95232430e90d628379db89583d71
10932Author: Lasse Collin <lasse.collin@tukaani.org>
10933Date:   2024-02-12 17:09:10 +0200
10934
10935    Change most public domain parts to 0BSD.
10936
10937    Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
10938    were not touched.
10939
10940    COPYING.0BSD was added.
10941
10942 .github/workflows/ci.yml                       |   3 -
10943 .github/workflows/windows-ci.yml               |   3 -
10944 CMakeLists.txt                                 |   3 -
10945 COPYING                                        | 112 ++++++++++++++-----------
10946 COPYING.0BSD                                   |  11 +++
10947 Makefile.am                                    |   3 -
10948 PACKAGERS                                      |  11 +--
10949 autogen.sh                                     |   3 -
10950 build-aux/ci_build.sh                          |   3 -
10951 build-aux/manconv.sh                           |   3 -
10952 build-aux/version.sh                           |   3 -
10953 cmake/remove-ordinals.cmake                    |   3 -
10954 cmake/tuklib_common.cmake                      |   3 -
10955 cmake/tuklib_cpucores.cmake                    |   3 -
10956 cmake/tuklib_integer.cmake                     |   3 -
10957 cmake/tuklib_large_file_support.cmake          |   3 -
10958 cmake/tuklib_mbstr.cmake                       |   3 -
10959 cmake/tuklib_physmem.cmake                     |   3 -
10960 cmake/tuklib_progname.cmake                    |   3 -
10961 configure.ac                                   |   3 -
10962 debug/Makefile.am                              |   3 -
10963 debug/crc32.c                                  |   3 -
10964 debug/full_flush.c                             |   3 -
10965 debug/hex2bin.c                                |   3 -
10966 debug/known_sizes.c                            |   3 -
10967 debug/memusage.c                               |   3 -
10968 debug/repeat.c                                 |   3 -
10969 debug/sync_flush.c                             |   3 -
10970 debug/translation.bash                         |   3 -
10971 doc/examples/01_compress_easy.c                |   3 -
10972 doc/examples/02_decompress.c                   |   3 -
10973 doc/examples/03_compress_custom.c              |   3 -
10974 doc/examples/04_compress_easy_mt.c             |   3 -
10975 doc/examples/11_file_info.c                    |   3 -
10976 doc/examples/Makefile                          |   3 -
10977 dos/Makefile                                   |   3 -
10978 doxygen/update-doxygen                         |   3 -
10979 extra/7z2lzma/7z2lzma.bash                     |   3 -
10980 m4/tuklib_common.m4                            |   3 -
10981 m4/tuklib_cpucores.m4                          |   3 -
10982 m4/tuklib_integer.m4                           |   3 -
10983 m4/tuklib_mbstr.m4                             |   3 -
10984 m4/tuklib_physmem.m4                           |   3 -
10985 m4/tuklib_progname.m4                          |   3 -
10986 po4a/update-po                                 |   3 -
10987 src/Makefile.am                                |   3 -
10988 src/common/common_w32res.rc                    |   3 -
10989 src/common/mythread.h                          |   3 -
10990 src/common/sysdefs.h                           |   3 -
10991 src/common/tuklib_common.h                     |   3 -
10992 src/common/tuklib_cpucores.c                   |   3 -
10993 src/common/tuklib_cpucores.h                   |   3 -
10994 src/common/tuklib_exit.c                       |   3 -
10995 src/common/tuklib_exit.h                       |   3 -
10996 src/common/tuklib_gettext.h                    |   3 -
10997 src/common/tuklib_integer.h                    |   3 -
10998 src/common/tuklib_mbstr.h                      |   3 -
10999 src/common/tuklib_mbstr_fw.c                   |   3 -
11000 src/common/tuklib_mbstr_width.c                |   3 -
11001 src/common/tuklib_open_stdxxx.c                |   3 -
11002 src/common/tuklib_open_stdxxx.h                |   3 -
11003 src/common/tuklib_physmem.c                    |   3 -
11004 src/common/tuklib_physmem.h                    |   3 -
11005 src/common/tuklib_progname.c                   |   3 -
11006 src/common/tuklib_progname.h                   |   3 -
11007 src/liblzma/Makefile.am                        |   3 -
11008 src/liblzma/api/Makefile.am                    |   3 -
11009 src/liblzma/api/lzma.h                         |  13 ++-
11010 src/liblzma/api/lzma/base.h                    |   3 -
11011 src/liblzma/api/lzma/bcj.h                     |   3 -
11012 src/liblzma/api/lzma/block.h                   |   3 -
11013 src/liblzma/api/lzma/check.h                   |   3 -
11014 src/liblzma/api/lzma/container.h               |   3 -
11015 src/liblzma/api/lzma/delta.h                   |   3 -
11016 src/liblzma/api/lzma/filter.h                  |   3 -
11017 src/liblzma/api/lzma/hardware.h                |   3 -
11018 src/liblzma/api/lzma/index.h                   |   3 -
11019 src/liblzma/api/lzma/index_hash.h              |   3 -
11020 src/liblzma/api/lzma/lzma12.h                  |   3 -
11021 src/liblzma/api/lzma/stream_flags.h            |   3 -
11022 src/liblzma/api/lzma/version.h                 |   3 -
11023 src/liblzma/api/lzma/vli.h                     |   3 -
11024 src/liblzma/check/Makefile.inc                 |   3 -
11025 src/liblzma/check/check.c                      |   3 -
11026 src/liblzma/check/check.h                      |   3 -
11027 src/liblzma/check/crc32_arm64.h                |   3 -
11028 src/liblzma/check/crc32_fast.c                 |   3 -
11029 src/liblzma/check/crc32_small.c                |   3 -
11030 src/liblzma/check/crc32_table.c                |   3 -
11031 src/liblzma/check/crc32_tablegen.c             |   3 -
11032 src/liblzma/check/crc32_x86.S                  |   3 -
11033 src/liblzma/check/crc64_fast.c                 |   3 -
11034 src/liblzma/check/crc64_small.c                |   3 -
11035 src/liblzma/check/crc64_table.c                |   3 -
11036 src/liblzma/check/crc64_tablegen.c             |   3 -
11037 src/liblzma/check/crc64_x86.S                  |   3 -
11038 src/liblzma/check/crc_common.h                 |   3 -
11039 src/liblzma/check/crc_x86_clmul.h              |   3 -
11040 src/liblzma/check/sha256.c                     |   3 -
11041 src/liblzma/common/Makefile.inc                |   3 -
11042 src/liblzma/common/alone_decoder.c             |   3 -
11043 src/liblzma/common/alone_decoder.h             |   3 -
11044 src/liblzma/common/alone_encoder.c             |   3 -
11045 src/liblzma/common/auto_decoder.c              |   3 -
11046 src/liblzma/common/block_buffer_decoder.c      |   3 -
11047 src/liblzma/common/block_buffer_encoder.c      |   3 -
11048 src/liblzma/common/block_buffer_encoder.h      |   3 -
11049 src/liblzma/common/block_decoder.c             |   3 -
11050 src/liblzma/common/block_decoder.h             |   3 -
11051 src/liblzma/common/block_encoder.c             |   3 -
11052 src/liblzma/common/block_encoder.h             |   3 -
11053 src/liblzma/common/block_header_decoder.c      |   3 -
11054 src/liblzma/common/block_header_encoder.c      |   3 -
11055 src/liblzma/common/block_util.c                |   3 -
11056 src/liblzma/common/common.c                    |   3 -
11057 src/liblzma/common/common.h                    |   3 -
11058 src/liblzma/common/easy_buffer_encoder.c       |   3 -
11059 src/liblzma/common/easy_decoder_memusage.c     |   3 -
11060 src/liblzma/common/easy_encoder.c              |   3 -
11061 src/liblzma/common/easy_encoder_memusage.c     |   3 -
11062 src/liblzma/common/easy_preset.c               |   3 -
11063 src/liblzma/common/easy_preset.h               |   3 -
11064 src/liblzma/common/file_info.c                 |   3 -
11065 src/liblzma/common/filter_buffer_decoder.c     |   3 -
11066 src/liblzma/common/filter_buffer_encoder.c     |   3 -
11067 src/liblzma/common/filter_common.c             |   3 -
11068 src/liblzma/common/filter_common.h             |   3 -
11069 src/liblzma/common/filter_decoder.c            |   3 -
11070 src/liblzma/common/filter_decoder.h            |   3 -
11071 src/liblzma/common/filter_encoder.c            |   3 -
11072 src/liblzma/common/filter_encoder.h            |   3 -
11073 src/liblzma/common/filter_flags_decoder.c      |   3 -
11074 src/liblzma/common/filter_flags_encoder.c      |   3 -
11075 src/liblzma/common/hardware_cputhreads.c       |   3 -
11076 src/liblzma/common/hardware_physmem.c          |   3 -
11077 src/liblzma/common/index.c                     |   3 -
11078 src/liblzma/common/index.h                     |   3 -
11079 src/liblzma/common/index_decoder.c             |   3 -
11080 src/liblzma/common/index_decoder.h             |   3 -
11081 src/liblzma/common/index_encoder.c             |   3 -
11082 src/liblzma/common/index_encoder.h             |   3 -
11083 src/liblzma/common/index_hash.c                |   3 -
11084 src/liblzma/common/lzip_decoder.c              |   3 -
11085 src/liblzma/common/lzip_decoder.h              |   3 -
11086 src/liblzma/common/memcmplen.h                 |   3 -
11087 src/liblzma/common/microlzma_decoder.c         |   3 -
11088 src/liblzma/common/microlzma_encoder.c         |   3 -
11089 src/liblzma/common/outqueue.c                  |   3 -
11090 src/liblzma/common/outqueue.h                  |   3 -
11091 src/liblzma/common/stream_buffer_decoder.c     |   3 -
11092 src/liblzma/common/stream_buffer_encoder.c     |   3 -
11093 src/liblzma/common/stream_decoder.c            |   3 -
11094 src/liblzma/common/stream_decoder.h            |   3 -
11095 src/liblzma/common/stream_decoder_mt.c         |   3 -
11096 src/liblzma/common/stream_encoder.c            |   3 -
11097 src/liblzma/common/stream_encoder_mt.c         |   3 -
11098 src/liblzma/common/stream_flags_common.c       |   3 -
11099 src/liblzma/common/stream_flags_common.h       |   3 -
11100 src/liblzma/common/stream_flags_decoder.c      |   3 -
11101 src/liblzma/common/stream_flags_encoder.c      |   3 -
11102 src/liblzma/common/string_conversion.c         |   3 -
11103 src/liblzma/common/vli_decoder.c               |   3 -
11104 src/liblzma/common/vli_encoder.c               |   3 -
11105 src/liblzma/common/vli_size.c                  |   3 -
11106 src/liblzma/delta/Makefile.inc                 |   3 -
11107 src/liblzma/delta/delta_common.c               |   3 -
11108 src/liblzma/delta/delta_common.h               |   3 -
11109 src/liblzma/delta/delta_decoder.c              |   3 -
11110 src/liblzma/delta/delta_decoder.h              |   3 -
11111 src/liblzma/delta/delta_encoder.c              |   3 -
11112 src/liblzma/delta/delta_encoder.h              |   3 -
11113 src/liblzma/delta/delta_private.h              |   3 -
11114 src/liblzma/liblzma.pc.in                      |   3 -
11115 src/liblzma/liblzma_w32res.rc                  |   3 -
11116 src/liblzma/lz/Makefile.inc                    |   3 -
11117 src/liblzma/lz/lz_decoder.c                    |   3 -
11118 src/liblzma/lz/lz_decoder.h                    |   3 -
11119 src/liblzma/lz/lz_encoder.c                    |   3 -
11120 src/liblzma/lz/lz_encoder.h                    |   3 -
11121 src/liblzma/lz/lz_encoder_hash.h               |   3 -
11122 src/liblzma/lz/lz_encoder_mf.c                 |   3 -
11123 src/liblzma/lzma/Makefile.inc                  |   3 -
11124 src/liblzma/lzma/fastpos.h                     |   3 -
11125 src/liblzma/lzma/fastpos_tablegen.c            |   3 -
11126 src/liblzma/lzma/lzma2_decoder.c               |   3 -
11127 src/liblzma/lzma/lzma2_decoder.h               |   3 -
11128 src/liblzma/lzma/lzma2_encoder.c               |   3 -
11129 src/liblzma/lzma/lzma2_encoder.h               |   3 -
11130 src/liblzma/lzma/lzma_common.h                 |   3 -
11131 src/liblzma/lzma/lzma_decoder.c                |   3 -
11132 src/liblzma/lzma/lzma_decoder.h                |   3 -
11133 src/liblzma/lzma/lzma_encoder.c                |   3 -
11134 src/liblzma/lzma/lzma_encoder.h                |   3 -
11135 src/liblzma/lzma/lzma_encoder_optimum_fast.c   |   3 -
11136 src/liblzma/lzma/lzma_encoder_optimum_normal.c |   3 -
11137 src/liblzma/lzma/lzma_encoder_presets.c        |   3 -
11138 src/liblzma/lzma/lzma_encoder_private.h        |   3 -
11139 src/liblzma/rangecoder/Makefile.inc            |   3 -
11140 src/liblzma/rangecoder/price.h                 |   3 -
11141 src/liblzma/rangecoder/price_tablegen.c        |   3 -
11142 src/liblzma/rangecoder/range_common.h          |   3 -
11143 src/liblzma/rangecoder/range_decoder.h         |   3 -
11144 src/liblzma/rangecoder/range_encoder.h         |   3 -
11145 src/liblzma/simple/Makefile.inc                |   3 -
11146 src/liblzma/simple/arm.c                       |   3 -
11147 src/liblzma/simple/arm64.c                     |   3 -
11148 src/liblzma/simple/armthumb.c                  |   3 -
11149 src/liblzma/simple/ia64.c                      |   3 -
11150 src/liblzma/simple/powerpc.c                   |   3 -
11151 src/liblzma/simple/riscv.c                     |   3 -
11152 src/liblzma/simple/simple_coder.c              |   3 -
11153 src/liblzma/simple/simple_coder.h              |   3 -
11154 src/liblzma/simple/simple_decoder.c            |   3 -
11155 src/liblzma/simple/simple_decoder.h            |   3 -
11156 src/liblzma/simple/simple_encoder.c            |   3 -
11157 src/liblzma/simple/simple_encoder.h            |   3 -
11158 src/liblzma/simple/simple_private.h            |   3 -
11159 src/liblzma/simple/sparc.c                     |   3 -
11160 src/liblzma/simple/x86.c                       |   3 -
11161 src/liblzma/validate_map.sh                    |   3 -
11162 src/lzmainfo/Makefile.am                       |   3 -
11163 src/lzmainfo/lzmainfo.1                        |   4 +-
11164 src/lzmainfo/lzmainfo.c                        |   3 -
11165 src/lzmainfo/lzmainfo_w32res.rc                |   3 -
11166 src/scripts/Makefile.am                        |   3 -
11167 src/scripts/xzless.1                           |   4 +-
11168 src/xz/Makefile.am                             |   3 -
11169 src/xz/args.c                                  |   3 -
11170 src/xz/args.h                                  |   3 -
11171 src/xz/coder.c                                 |   3 -
11172 src/xz/coder.h                                 |   3 -
11173 src/xz/file_io.c                               |   3 -
11174 src/xz/file_io.h                               |   3 -
11175 src/xz/hardware.c                              |   3 -
11176 src/xz/hardware.h                              |   3 -
11177 src/xz/list.c                                  |   3 -
11178 src/xz/list.h                                  |   3 -
11179 src/xz/main.c                                  |   3 -
11180 src/xz/main.h                                  |   3 -
11181 src/xz/message.c                               |   3 -
11182 src/xz/message.h                               |   3 -
11183 src/xz/mytime.c                                |   3 -
11184 src/xz/mytime.h                                |   3 -
11185 src/xz/options.c                               |   3 -
11186 src/xz/options.h                               |   3 -
11187 src/xz/private.h                               |   3 -
11188 src/xz/signals.c                               |   3 -
11189 src/xz/signals.h                               |   3 -
11190 src/xz/suffix.c                                |   3 -
11191 src/xz/suffix.h                                |   3 -
11192 src/xz/util.c                                  |   3 -
11193 src/xz/util.h                                  |   3 -
11194 src/xz/xz.1                                    |   4 +-
11195 src/xz/xz_w32res.rc                            |   3 -
11196 src/xzdec/Makefile.am                          |   3 -
11197 src/xzdec/lzmadec_w32res.rc                    |   3 -
11198 src/xzdec/xzdec.1                              |   4 +-
11199 src/xzdec/xzdec.c                              |   3 -
11200 src/xzdec/xzdec_w32res.rc                      |   3 -
11201 tests/Makefile.am                              |   3 -
11202 tests/bcj_test.c                               |   3 -
11203 tests/code_coverage.sh                         |   3 -
11204 tests/create_compress_files.c                  |   3 -
11205 tests/files/README                             |   3 +-
11206 tests/ossfuzz/fuzz_common.h                    |   3 -
11207 tests/ossfuzz/fuzz_decode_alone.c              |   3 -
11208 tests/ossfuzz/fuzz_decode_stream.c             |   3 -
11209 tests/ossfuzz/fuzz_encode_stream.c             |   3 -
11210 tests/test_bcj_exact_size.c                    |   3 -
11211 tests/test_block_header.c                      |   3 -
11212 tests/test_check.c                             |   3 -
11213 tests/test_compress.sh                         |   3 -
11214 tests/test_files.sh                            |   3 -
11215 tests/test_filter_flags.c                      |   3 -
11216 tests/test_filter_str.c                        |   3 -
11217 tests/test_hardware.c                          |   3 -
11218 tests/test_index.c                             |   3 -
11219 tests/test_index_hash.c                        |   3 -
11220 tests/test_lzip_decoder.c                      |   3 -
11221 tests/test_memlimit.c                          |   3 -
11222 tests/test_scripts.sh                          |   3 -
11223 tests/test_stream_flags.c                      |   3 -
11224 tests/test_suffix.sh                           |   3 -
11225 tests/test_vli.c                               |   3 -
11226 tests/tests.h                                  |   3 -
11227 tests/tuktest.h                                |   3 -
11228 windows/README-Windows.txt                     |  11 +--
11229 windows/build.bash                             |   3 -
11230 288 files changed, 100 insertions(+), 911 deletions(-)
11231
11232commit 76946dc4336c831fe2cc26696a035d807dd3cf13
11233Author: Lasse Collin <lasse.collin@tukaani.org>
11234Date:   2024-02-09 17:20:31 +0200
11235
11236    Fix SHA-256 authors.
11237
11238    The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741
11239    in 2007 had a comment in sha256.c that the code is based on
11240    Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c
11241    and the AUTHORS file was updated with information that the
11242    code had come from Crypto++ but via 7-Zip. I know I had viewed
11243    7-Zip's SHA-256 code but back then the C code has been identical
11244    enough with Crypto++, so I don't why I thought the author info
11245    would need that extra step via 7-Zip for this single file.
11246
11247    Another error is that I had mixed sha.* and shacal2.* files
11248    when checking for author info in Crypto++. The shacal2.* files
11249    aren't related to liblzma's sha256.c and thus Kevin Springle's
11250    code in Crypto++ isn't either.
11251
11252 AUTHORS                    |  6 ++----
11253 src/liblzma/check/sha256.c | 14 ++++----------
11254 2 files changed, 6 insertions(+), 14 deletions(-)
11255
11256commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851
11257Author: Lasse Collin <lasse.collin@tukaani.org>
11258Date:   2024-02-09 17:20:31 +0200
11259
11260    Remove macosx/build.sh.
11261
11262    It was last updated in 2013.
11263
11264 Makefile.am     |   1 -
11265 macosx/build.sh | 113 --------------------------------------------------------
11266 2 files changed, 114 deletions(-)
11267
11268commit eac2c3c67f9113a225fb6667df862edd30366931
11269Author: Lasse Collin <lasse.collin@tukaani.org>
11270Date:   2024-02-09 17:20:31 +0200
11271
11272    Doc: Remove doc/examples_old.
11273
11274    It was good to keep these around in parallel with the newer examples
11275    but I think it's OK to remove the old ones at this point.
11276
11277 Makefile.am                       |   5 --
11278 doc/examples_old/xz_pipe_comp.c   | 127 --------------------------------------
11279 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------
11280 3 files changed, 255 deletions(-)
11281
11282commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664
11283Author: Jia Tan <jiat0218@gmail.com>
11284Date:   2024-02-13 22:38:58 +0800
11285
11286    Tests: Add RISC-V filter support in a few places.
11287
11288 tests/test_filter_flags.c | 6 ++++++
11289 tests/test_filter_str.c   | 6 ++++++
11290 2 files changed, 12 insertions(+)
11291
11292commit 45663443eb2b377e6171529380fee312f1adcdf4
11293Author: Jia Tan <jiat0218@gmail.com>
11294Date:   2024-02-13 22:37:07 +0800
11295
11296    liblzma: Fix build error if only RISC-V BCJ filter is enabled.
11297
11298    If any other BCJ filter was enabled for encoding or decoding, then this
11299    was not a problem.
11300
11301 src/liblzma/common/string_conversion.c | 4 +++-
11302 1 file changed, 3 insertions(+), 1 deletion(-)
11303
11304commit 2f15597d677bc35743c777d4cf3bfa698b478681
11305Author: Jia Tan <jiat0218@gmail.com>
11306Date:   2024-02-13 22:56:24 +0800
11307
11308    Translations: Update the Korean translation.
11309
11310 po/ko.po | 526 ++++++++++++++++++++++++++++++++++-----------------------------
11311 1 file changed, 284 insertions(+), 242 deletions(-)
11312
11313commit df873143ad1615c6d6aaa1bf8808b1676091dfe3
11314Author: Jia Tan <jiat0218@gmail.com>
11315Date:   2024-02-13 01:55:53 +0800
11316
11317    Translations: Update the Korean man page translations.
11318
11319 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++--------------------------
11320 1 file changed, 770 insertions(+), 605 deletions(-)
11321
11322commit b3f415eddb150341865a1af47959c3baba076b33
11323Author: Jia Tan <jiat0218@gmail.com>
11324Date:   2024-02-13 01:53:33 +0800
11325
11326    Translations: Update the Chinese (simplified) translation.
11327
11328 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++----------------------
11329 1 file changed, 268 insertions(+), 156 deletions(-)
11330
11331commit 9860d418d296eb3c721e5384fb367c0499b579c8
11332Author: Lasse Collin <lasse.collin@tukaani.org>
11333Date:   2024-02-09 23:21:01 +0200
11334
11335    xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
11336
11337 src/scripts/xzless.in | 9 ++++++++-
11338 1 file changed, 8 insertions(+), 1 deletion(-)
11339
11340commit fd0692b0525e6c26b496492be9e2c865cab734f8
11341Author: Lasse Collin <lasse.collin@tukaani.org>
11342Date:   2024-02-09 23:00:05 +0200
11343
11344    xzless: Use --show-preproc-errors with "less" 632 and newer.
11345
11346    This makes "less" show a warning if a decompression error occurred.
11347
11348 src/scripts/xzless.in | 11 +++++++++--
11349 1 file changed, 9 insertions(+), 2 deletions(-)
11350
11351commit adb073da76a920b5a81e6b32254f4ddb054dc57a
11352Author: Jia Tan <jiat0218@gmail.com>
11353Date:   2024-02-09 23:59:54 +0800
11354
11355    liblzma: Fix typo discovered by codespell.
11356
11357 src/liblzma/check/crc32_arm64.h | 2 +-
11358 1 file changed, 1 insertion(+), 1 deletion(-)
11359
11360commit 55d9fc883d221cbace951a370f1fb144698f8c2e
11361Author: Jia Tan <jiat0218@gmail.com>
11362Date:   2024-02-09 20:01:06 +0800
11363
11364    Translations: Update the Swedish translation.
11365
11366 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++-------------------------
11367 1 file changed, 254 insertions(+), 166 deletions(-)
11368
11369commit 55ba4a1ea321499c805eedfa811ffde690bae311
11370Author: Jia Tan <jiat0218@gmail.com>
11371Date:   2024-02-08 20:09:04 +0800
11372
11373    Translations: Update the Spanish translation.
11374
11375 po/es.po | 22 +++++++++++-----------
11376 1 file changed, 11 insertions(+), 11 deletions(-)
11377
11378commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae
11379Author: Jia Tan <jiat0218@gmail.com>
11380Date:   2024-02-07 21:34:35 +0800
11381
11382    Translations: Update the Spanish translation.
11383
11384 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++-------------------------
11385 1 file changed, 253 insertions(+), 166 deletions(-)
11386
11387commit f4af2036bc625739d6d33d9e1fede583a25c3828
11388Author: Jia Tan <jiat0218@gmail.com>
11389Date:   2024-02-07 21:28:32 +0800
11390
11391    Translations: Update the Polish translation.
11392
11393 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++-------------------------
11394 1 file changed, 249 insertions(+), 162 deletions(-)
11395
11396commit e5e93bb816043c559cddf03a3b7ba13bec353ee4
11397Author: Jia Tan <jiat0218@gmail.com>
11398Date:   2024-02-07 19:40:12 +0800
11399
11400    Translations: Update the German translation.
11401
11402 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++-------------------------
11403 1 file changed, 242 insertions(+), 154 deletions(-)
11404
11405commit 28f18ff8e26902762fb007c13be235b4ac1ac071
11406Author: Jia Tan <jiat0218@gmail.com>
11407Date:   2024-02-07 19:27:25 +0800
11408
11409    Translations: Update the German man page translations.
11410
11411 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++---------------------------
11412 1 file changed, 752 insertions(+), 601 deletions(-)
11413
11414commit cabfbc7947da05aa5dfe39bec9759e076f940e3c
11415Author: Jia Tan <jiat0218@gmail.com>
11416Date:   2024-02-06 23:44:06 +0800
11417
11418    Translations: Update the Romanian translation.
11419
11420 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++-------------------------
11421 1 file changed, 252 insertions(+), 164 deletions(-)
11422
11423commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e
11424Author: Jia Tan <jiat0218@gmail.com>
11425Date:   2024-02-06 23:45:02 +0800
11426
11427    Translations: Update the Romanian man page translations.
11428
11429 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++---------------------------
11430 1 file changed, 966 insertions(+), 793 deletions(-)
11431
11432commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96
11433Author: Jia Tan <jiat0218@gmail.com>
11434Date:   2024-02-07 20:56:57 +0800
11435
11436    Translations: Update the Ukrainian translation.
11437
11438 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++-------------------------
11439 1 file changed, 242 insertions(+), 155 deletions(-)
11440
11441commit b3523250e9eef10b017473754c1e1c9e31f10374
11442Author: Jia Tan <jiat0218@gmail.com>
11443Date:   2024-02-06 23:30:03 +0800
11444
11445    Translations: Update the Ukrainian man page translations.
11446
11447 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++--------------------------
11448 1 file changed, 764 insertions(+), 599 deletions(-)
11449
11450commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d
11451Author: Jia Tan <jiat0218@gmail.com>
11452Date:   2024-02-02 01:39:28 +0800
11453
11454    Update AUTHORS.
11455
11456 AUTHORS | 3 ++-
11457 1 file changed, 2 insertions(+), 1 deletion(-)
11458
11459commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
11460Author: Jia Tan <jiat0218@gmail.com>
11461Date:   2024-02-02 01:38:51 +0800
11462
11463    liblzma: Update Authors list in crc32_arm64.h.
11464
11465 src/liblzma/check/crc32_arm64.h | 1 +
11466 1 file changed, 1 insertion(+)
11467
11468commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0
11469Author: Jia Tan <jiat0218@gmail.com>
11470Date:   2024-02-01 16:07:03 +0800
11471
11472    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table.
11473
11474    This was split from the prior commit so it could be easily applied to
11475    the 5.4 branch.
11476
11477    Closes: https://github.com/tukaani-project/xz/pull/77
11478
11479 src/liblzma/check/crc32_table.c | 4 ++--
11480 1 file changed, 2 insertions(+), 2 deletions(-)
11481
11482commit ca9015f4dead2c97b48f5a6933631b0a448b65b9
11483Author: Jia Tan <jiat0218@gmail.com>
11484Date:   2024-02-01 16:06:29 +0800
11485
11486    liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table.
11487
11488    If liblzma is configured with --disable-clmul-crc
11489    CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the
11490    generic version must be used but the CRC tables were not included.
11491
11492 src/liblzma/check/crc64_table.c | 4 ++--
11493 1 file changed, 2 insertions(+), 2 deletions(-)
11494
11495commit 2f1552a91c825e87013925e1a67a0930e7aef592
11496Author: Jia Tan <jiat0218@gmail.com>
11497Date:   2024-01-23 18:02:13 +0800
11498
11499    liblzma: Only use ifunc in crcXX_fast.c if its needed.
11500
11501    The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC.
11502    With ARM64, ifunc is incompatible because it requires non-inline
11503    function calls for runtime detection.
11504
11505 src/liblzma/check/crc32_fast.c | 6 +++---
11506 src/liblzma/check/crc64_fast.c | 6 +++---
11507 2 files changed, 6 insertions(+), 6 deletions(-)
11508
11509commit 30a25f3742287697bc57a1bef86c19ecf5129322
11510Author: Jia Tan <jiat0218@gmail.com>
11511Date:   2024-01-22 22:08:45 +0800
11512
11513    Docs: Add --disable-arm64-crc32 description to INSTALL.
11514
11515 INSTALL | 12 +++++++++++-
11516 1 file changed, 11 insertions(+), 1 deletion(-)
11517
11518commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad
11519Author: Jia Tan <jiat0218@gmail.com>
11520Date:   2024-01-22 21:36:09 +0800
11521
11522    liblzma: Omit CRC tables when not needed with ARM64 optimizations.
11523
11524    This is similar to the existing x86-64 CLMUL conditions to omit the
11525    tables. They were slightly refactored to improve readability.
11526
11527 src/liblzma/check/crc32_table.c | 18 +++++++++++++++---
11528 src/liblzma/check/crc64_table.c |  7 ++++++-
11529 src/liblzma/check/crc_common.h  |  5 ++++-
11530 3 files changed, 25 insertions(+), 5 deletions(-)
11531
11532commit 761f5b69a4c778c8bcb09279b845b07c28790575
11533Author: Jia Tan <jiat0218@gmail.com>
11534Date:   2024-01-22 20:54:56 +0800
11535
11536    liblzma: Rename crc32_aarch64.h to crc32_arm64.h.
11537
11538    Even though the proper name for the architecture is aarch64, this
11539    project uses ARM64 throughout. So the rename is for consistency.
11540
11541    Additionally, crc32_arm64.h was slightly refactored for the following
11542    changes:
11543
11544       * Added MSVC, FreeBSD, and macOS support in
11545         is_arch_extension_supported().
11546
11547       * crc32_arch_optimized() now checks the size when aligning the
11548         buffer.
11549
11550       * crc32_arch_optimized() loop conditions were slightly modified to
11551         avoid both decrementing the size and incrementing the buffer
11552         pointer.
11553
11554       * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and
11555         Clang name them differently.
11556
11557       * Minor spacing and comment changes.
11558
11559 CMakeLists.txt                    |   2 +-
11560 src/liblzma/check/Makefile.inc    |   2 +-
11561 src/liblzma/check/crc32_aarch64.h | 109 ----------------------------------
11562 src/liblzma/check/crc32_arm64.h   | 119 ++++++++++++++++++++++++++++++++++++++
11563 src/liblzma/check/crc32_fast.c    |   3 +-
11564 src/liblzma/check/crc64_fast.c    |   3 -
11565 6 files changed, 122 insertions(+), 116 deletions(-)
11566
11567commit 455a08609caa3223066a717fb01bfa42c5dba47d
11568Author: Jia Tan <jiat0218@gmail.com>
11569Date:   2024-01-22 20:49:30 +0800
11570
11571    liblzma: Refactor crc_common.h.
11572
11573    The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since
11574    the ARM64 optimizations will be different between CRC32 and CRC64.
11575
11576    For the same reason, CRC_ARCH_OPTIMIZED is split into
11577    CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED.
11578
11579    ifunc will only be used with x86-64 CLMUL because the runtime detection
11580    methods needed with ARM64 are not compatible with ifunc.
11581
11582 src/liblzma/check/crc32_fast.c |   8 +--
11583 src/liblzma/check/crc64_fast.c |   8 +--
11584 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++-------------
11585 3 files changed, 82 insertions(+), 42 deletions(-)
11586
11587commit 61908e816049af7a9f43ea804a57ee8570e2e644
11588Author: Jia Tan <jiat0218@gmail.com>
11589Date:   2024-01-22 00:42:28 +0800
11590
11591    CMake: Add support for ARM64 CRC32 instruction detection.
11592
11593 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
11594 1 file changed, 50 insertions(+)
11595
11596commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732
11597Author: Jia Tan <jiat0218@gmail.com>
11598Date:   2024-01-22 00:36:47 +0800
11599
11600    Build: Add support for ARM64 CRC32 instruction detection.
11601
11602    This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by
11603    default) for using the ARM64 CRC32 instruction. This can be disabled if
11604    one knows the binary will never need to run on an ARM64 machine
11605    with this instruction extension.
11606
11607 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
11608 1 file changed, 52 insertions(+)
11609
11610commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f
11611Author: Chenxi Mao <chenxi.mao2013@gmail.com>
11612Date:   2024-01-09 17:23:11 +0800
11613
11614    Speed up CRC32 calculation on ARM64
11615
11616    The CRC32 instructions in ARM64 can calculate the CRC32 result
11617    for 8 bytes in a single operation, making the use of ARM64
11618    instructions much faster compared to the general CRC32 algorithm.
11619
11620    Optimized CRC32 will be enabled if ARM64 has CRC extension
11621    running on Linux.
11622
11623    Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com>
11624
11625 CMakeLists.txt                    |   1 +
11626 src/liblzma/check/Makefile.inc    |   3 +-
11627 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++
11628 src/liblzma/check/crc32_fast.c    |   5 +-
11629 src/liblzma/check/crc64_fast.c    |   5 +-
11630 src/liblzma/check/crc_common.h    |  16 +++---
11631 6 files changed, 130 insertions(+), 9 deletions(-)
11632
11633commit b43c3e48bf6097095eef36d44cdbec811074940a
11634Author: Jia Tan <jiat0218@gmail.com>
11635Date:   2024-01-26 19:05:51 +0800
11636
11637    Bump version number for 5.5.1alpha.
11638
11639 src/liblzma/api/lzma/version.h  | 2 +-
11640 src/liblzma/liblzma_generic.map | 2 +-
11641 src/liblzma/liblzma_linux.map   | 2 +-
11642 3 files changed, 3 insertions(+), 3 deletions(-)
11643
11644commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f
11645Author: Jia Tan <jiat0218@gmail.com>
11646Date:   2024-01-26 19:00:52 +0800
11647
11648    Add NEWS for 5.5.1alpha
11649
11650 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
11651 1 file changed, 80 insertions(+)
11652
11653commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df
11654Author: Jia Tan <jiat0218@gmail.com>
11655Date:   2024-01-26 18:54:24 +0800
11656
11657    Add NEWS for 5.4.6.
11658
11659 NEWS | 22 ++++++++++++++++++++++
11660 1 file changed, 22 insertions(+)
11661
11662commit 93de7e751d17731315a899264f2a7239d7d2d316
11663Author: Lasse Collin <lasse.collin@tukaani.org>
11664Date:   2024-01-24 20:00:57 +0200
11665
11666    Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
11667
11668    The footer isn't a complete HTML file so having it in the doxygen
11669    directory is a tiny bit clearer.
11670
11671 Makefile.am                                    |   2 +-
11672 doc/{logo => }/xz-logo.png                     | Bin
11673 doxygen/Doxyfile                               |   4 ++--
11674 doc/logo/copyright.html => doxygen/footer.html |   0
11675 4 files changed, 3 insertions(+), 3 deletions(-)
11676
11677commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9
11678Author: Jia Tan <jiat0218@gmail.com>
11679Date:   2024-01-09 17:05:01 +0800
11680
11681    README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1.
11682
11683    The Overall documentation section (1.1) table spacing had to be adjusted
11684    since the filename was very long.
11685
11686 README | 38 ++++++++++++++++++++------------------
11687 1 file changed, 20 insertions(+), 18 deletions(-)
11688
11689commit e280470040b27c5e58d78b25b9e2bb71fc6c3882
11690Author: Jia Tan <jiat0218@gmail.com>
11691Date:   2024-01-09 16:56:16 +0800
11692
11693    Build: Add the logo and license to the release.
11694
11695 Makefile.am | 2 ++
11696 1 file changed, 2 insertions(+)
11697
11698commit b1ee6cf259bb49ce91abe9f622294524e37edf4c
11699Author: Jia Tan <jiat0218@gmail.com>
11700Date:   2024-01-09 16:44:42 +0800
11701
11702    COPYING: Add the license for the XZ logo.
11703
11704 COPYING              |   5 +
11705 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++
11706 2 files changed, 432 insertions(+)
11707
11708commit 31293ae7074802cc7286089a89c7b552d930c97f
11709Author: Jia Tan <jiat0218@gmail.com>
11710Date:   2024-01-09 16:40:56 +0800
11711
11712    Doxygen: Added the XZ logo and copyright information.
11713
11714    The PROJECT_LOGO field is now used to include the XZ logo. The footer
11715    of each page now lists the copyright information instead of the default
11716    footer. The license is also copied to statisfy the copyright and so the
11717    link in the documentation can be local.
11718
11719 doc/logo/copyright.html |  11 +++++++++++
11720 doc/logo/xz-logo.png    | Bin 0 -> 6771 bytes
11721 doxygen/Doxyfile        |   6 +++---
11722 3 files changed, 14 insertions(+), 3 deletions(-)
11723
11724commit 6daa4d0ea46a8441f21f609149f3633158bf4704
11725Author: Lasse Collin <lasse.collin@tukaani.org>
11726Date:   2024-01-23 18:29:28 +0200
11727
11728    xz: Use threaded mode by defaut (as if --threads=0 was used).
11729
11730    This hopefully does more good than bad:
11731
11732      + It's faster by default.
11733
11734      + Only the threaded compressor creates files that
11735        can be decompressed in threaded mode.
11736
11737      - Compression ratio is worse, usually not too much though.
11738        When it matters, -T1 must be used.
11739
11740      - Memory usage increases.
11741
11742      - Scripts that assume single-threaded mode but don't use -T1 will
11743        possibly use too much resources, for example, if they run
11744        multiple xz processes in parallel to compress multiple files.
11745
11746      - Output from single-threaded and multi-threaded compressors
11747        differ but such changes could happen for other reasons too
11748        (they just haven't happened since 5.0.0).
11749
11750 src/xz/hardware.c | 6 +++++-
11751 src/xz/message.c  | 4 ++--
11752 src/xz/xz.1       | 9 +++++++++
11753 3 files changed, 16 insertions(+), 3 deletions(-)
11754
11755commit a2dd2dc8e5307a7280bb99868bc478560facba2c
11756Author: Jia Tan <jiat0218@gmail.com>
11757Date:   2024-01-23 23:52:49 +0800
11758
11759    CI: Use RISC-V filter when building with BCJ support.
11760
11761 build-aux/ci_build.sh | 4 ++--
11762 1 file changed, 2 insertions(+), 2 deletions(-)
11763
11764commit 3060e1070b2421b26c0e17794c1307ec5622f11d
11765Author: Jia Tan <jiat0218@gmail.com>
11766Date:   2024-01-23 23:52:14 +0800
11767
11768    Tests: Use smaller dictionary size in RISC-V test files.
11769
11770 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes
11771 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes
11772 2 files changed, 0 insertions(+), 0 deletions(-)
11773
11774commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3
11775Author: Jia Tan <jiat0218@gmail.com>
11776Date:   2024-01-23 23:50:57 +0800
11777
11778    Tests: Skip RISC-V test files if decoder was not built.
11779
11780 tests/test_files.sh | 5 +++++
11781 1 file changed, 5 insertions(+)
11782
11783commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e
11784Author: Lasse Collin <lasse.collin@tukaani.org>
11785Date:   2024-01-23 16:11:54 +0200
11786
11787    xz: Man page: Add more examples of LZMA2 options with BCJ filters.
11788
11789 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++-------
11790 1 file changed, 31 insertions(+), 7 deletions(-)
11791
11792commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d
11793Author: Lasse Collin <lasse.collin@tukaani.org>
11794Date:   2024-01-23 00:09:48 +0200
11795
11796    liblzma: RISC-V filter: Use byte-by-byte access.
11797
11798    Not all RISC-V processors support fast unaligned access so
11799    it's better to read only one byte in the main loop. This can
11800    be faster even on x86-64 when compared to reading 32 bits at
11801    a time as half the time the address is only 16-bit aligned.
11802
11803    The downside is larger code size on archs that do support
11804    fast unaligned access.
11805
11806 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------
11807 1 file changed, 84 insertions(+), 30 deletions(-)
11808
11809commit db5eb5f563e8baa8d912ecf576f53391ff861596
11810Author: Jia Tan <jiat0218@gmail.com>
11811Date:   2024-01-22 23:33:39 +0800
11812
11813    xz: Update xz -lvv for RISC-V filter.
11814
11815    Version 5.6.0 will be shown, even though upcoming alphas and betas
11816    will be able to support this filter. 5.6.0 looks nicer in the output and
11817    people shouldn't be encouraged to use an unstable version in production
11818    in any way.
11819
11820 src/xz/list.c | 10 ++++++++++
11821 1 file changed, 10 insertions(+)
11822
11823commit e2870db5be1503e6a489fc3d47daf950d6f62723
11824Author: Jia Tan <jiat0218@gmail.com>
11825Date:   2024-01-22 23:33:39 +0800
11826
11827    Tests: Add two RISC-V Filter test files.
11828
11829    These test files achieve 100% code coverage in
11830    src/liblzma/simple/riscv.c. They contain all of the instructions that
11831    should be filtered and a few cases that should not.
11832
11833 tests/files/README                  |   8 ++++++++
11834 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes
11835 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes
11836 3 files changed, 8 insertions(+)
11837
11838commit b26a89869315ece2f6d9d10d32d45f672550f245
11839Author: Jia Tan <jiat0218@gmail.com>
11840Date:   2024-01-22 23:33:39 +0800
11841
11842    xz: Update message in --long-help for RISC-V Filter.
11843
11844 src/xz/message.c | 1 +
11845 1 file changed, 1 insertion(+)
11846
11847commit 283f778908873eca61388029fc418fa800c9d7d7
11848Author: Jia Tan <jiat0218@gmail.com>
11849Date:   2024-01-22 23:33:39 +0800
11850
11851    xz: Update the man page for the RISC-V Filter.
11852
11853    A special note was added to suggest using four-byte alignment when the
11854    compressed instruction extension is not present in a RISC-V binary.
11855
11856 src/xz/xz.1 | 3 ++-
11857 1 file changed, 2 insertions(+), 1 deletion(-)
11858
11859commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28
11860Author: Jia Tan <jiat0218@gmail.com>
11861Date:   2024-01-22 23:33:39 +0800
11862
11863    Tests: Add RISC-V Filter test in test_compress.sh.
11864
11865 tests/test_compress.sh | 1 +
11866 1 file changed, 1 insertion(+)
11867
11868commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4
11869Author: Jia Tan <jiat0218@gmail.com>
11870Date:   2024-01-22 23:33:39 +0800
11871
11872    liblzma: Update string_conversion.c to support RISC-V Filter.
11873
11874 src/liblzma/common/string_conversion.c | 5 +++++
11875 1 file changed, 5 insertions(+)
11876
11877commit 34372a5adbe5a7f6bf29498410ba3a463a720966
11878Author: Jia Tan <jiat0218@gmail.com>
11879Date:   2024-01-22 23:33:39 +0800
11880
11881    CMake: Support RISC-V BCJ Filter for encoding and decoding.
11882
11883 CMakeLists.txt | 1 +
11884 1 file changed, 1 insertion(+)
11885
11886commit 440a2eccb082dc13400c09e22308a58fef85146c
11887Author: Jia Tan <jiat0218@gmail.com>
11888Date:   2024-01-22 23:33:39 +0800
11889
11890    liblzma: Add RISC-V BCJ filter.
11891
11892    The new Filter ID is 0x0B.
11893
11894    Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
11895    the xz CLI updates, and the Autotools build system modifications.
11896
11897    Thanks to Igor Pavlov for his many contributions to the design of
11898    the filter.
11899
11900 configure.ac                        |   4 +-
11901 src/liblzma/api/lzma/bcj.h          |   5 +
11902 src/liblzma/common/filter_common.c  |   9 +
11903 src/liblzma/common/filter_decoder.c |   8 +
11904 src/liblzma/common/filter_encoder.c |  10 +
11905 src/liblzma/simple/Makefile.inc     |   4 +
11906 src/liblzma/simple/riscv.c          | 688 ++++++++++++++++++++++++++++++++++++
11907 src/liblzma/simple/simple_coder.h   |   9 +
11908 src/xz/args.c                       |   7 +
11909 9 files changed, 742 insertions(+), 2 deletions(-)
11910
11911commit 5540f4329bbdb4deb4850d4af48b18ad074bba19
11912Author: Jia Tan <jiat0218@gmail.com>
11913Date:   2024-01-19 23:08:14 +0800
11914
11915    Docs: Update .xz file format specification to 1.2.0.
11916
11917    The new RISC-V filter was added to the specification, in addition to
11918    updating the specification URL.
11919
11920 doc/xz-file-format.txt | 29 +++++++++++++++++------------
11921 1 file changed, 17 insertions(+), 12 deletions(-)
11922
11923commit 22d86192f8cf00902a1f90ee2a83ca600794459b
11924Author: Jia Tan <jiat0218@gmail.com>
11925Date:   2024-01-19 23:08:14 +0800
11926
11927    xz: Update website URLs in the man pages.
11928
11929 src/xz/xz.1       | 6 +++---
11930 src/xzdec/xzdec.1 | 4 ++--
11931 2 files changed, 5 insertions(+), 5 deletions(-)
11932
11933commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d
11934Author: Jia Tan <jiat0218@gmail.com>
11935Date:   2024-01-19 23:08:14 +0800
11936
11937    liblzma: Update website URL.
11938
11939 dos/config.h           | 2 +-
11940 src/liblzma/api/lzma.h | 6 +++---
11941 2 files changed, 4 insertions(+), 4 deletions(-)
11942
11943commit fce4758018f3a3589236f3fe7999fd9dd08c77e9
11944Author: Jia Tan <jiat0218@gmail.com>
11945Date:   2024-01-19 23:08:14 +0800
11946
11947    Docs: Update website URLs.
11948
11949 .github/SECURITY.md        |  2 +-
11950 COPYING                    |  3 ++-
11951 README                     |  4 ++--
11952 doc/faq.txt                |  2 +-
11953 doc/lzma-file-format.txt   | 18 +++++++++---------
11954 windows/README-Windows.txt |  3 ++-
11955 6 files changed, 17 insertions(+), 15 deletions(-)
11956
11957commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5
11958Author: Jia Tan <jiat0218@gmail.com>
11959Date:   2024-01-19 23:08:14 +0800
11960
11961    Build: Update website URL.
11962
11963 CMakeLists.txt | 2 +-
11964 configure.ac   | 2 +-
11965 2 files changed, 2 insertions(+), 2 deletions(-)
11966
11967commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b
11968Author: Lasse Collin <lasse.collin@tukaani.org>
11969Date:   2024-01-11 15:01:50 +0200
11970
11971    liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros.
11972
11973 src/liblzma/check/crc_x86_clmul.h | 6 ++++++
11974 1 file changed, 6 insertions(+)
11975
11976commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882
11977Author: Lasse Collin <lasse.collin@tukaani.org>
11978Date:   2024-01-11 15:22:36 +0200
11979
11980    liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead.
11981
11982    Now crc_simd_body() in crc_x86_clmul.h is only called once
11983    in a translation unit, we no longer need to be so cautious
11984    about ensuring the always-inline behavior.
11985
11986 src/liblzma/check/crc_common.h    | 20 --------------------
11987 src/liblzma/check/crc_x86_clmul.h |  2 +-
11988 2 files changed, 1 insertion(+), 21 deletions(-)
11989
11990commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20
11991Author: Lasse Collin <lasse.collin@tukaani.org>
11992Date:   2024-01-11 14:39:46 +0200
11993
11994    liblzma: CRC: Update CLMUL comments to more generic wording.
11995
11996 src/liblzma/check/crc32_fast.c | 16 ++++++++--------
11997 src/liblzma/check/crc64_fast.c | 10 +++++-----
11998 2 files changed, 13 insertions(+), 13 deletions(-)
11999
12000commit 66f080e8016129576536482ac377e2ecac7a2b90
12001Author: Lasse Collin <lasse.collin@tukaani.org>
12002Date:   2024-01-10 18:23:31 +0200
12003
12004    liblzma: Rename arch-specific CRC functions and macros.
12005
12006    CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL.
12007    CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used.
12008    Currently the x86 CLMUL implementations are the only arch-optimized
12009    versions, and these also use the CRC_x86_CLMUL macro to tell when
12010    crc_x86_clmul.h needs to be included.
12011
12012    is_clmul_supported() was renamed to is_arch_extension_supported().
12013    crc32_clmul() and crc64_clmul() were renamed to
12014    crc32_arch_optimized() and crc64_arch_optimized().
12015    This way the names make sense with arch-specific non-CLMUL
12016    implementations as well.
12017
12018 src/liblzma/check/crc32_fast.c    | 13 +++++++------
12019 src/liblzma/check/crc64_fast.c    | 13 +++++++------
12020 src/liblzma/check/crc_common.h    |  9 ++++++---
12021 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++----------
12022 4 files changed, 31 insertions(+), 25 deletions(-)
12023
12024commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99
12025Author: Lasse Collin <lasse.collin@tukaani.org>
12026Date:   2024-01-10 18:19:21 +0200
12027
12028    liblzma: Fix a comment in crc_common.h.
12029
12030 src/liblzma/check/crc_common.h | 3 ++-
12031 1 file changed, 2 insertions(+), 1 deletion(-)
12032
12033commit 419f55f9dfc2df8792902b8953d50690121afeea
12034Author: Lasse Collin <lasse.collin@tukaani.org>
12035Date:   2023-10-20 23:35:10 +0300
12036
12037    liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul().
12038
12039    A CLMUL-only build will have the crcxx_clmul() inlined into
12040    lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul()
12041    was needed. Notes about shared liblzma on ELF platforms:
12042
12043      - On platforms that support ifunc and -fvisibility=hidden, this
12044        was silly because CLMUL-only build would have that single extra
12045        jump instruction of extra overhead.
12046
12047      - On platforms that support neither -fvisibility=hidden nor linker
12048        version script (liblzma*.map), jumping to lzma_crcxx_clmul()
12049        would go via PLT so a few more instructions of overhead (still
12050        not a big issue but silly nevertheless).
12051
12052    There was a downside with static liblzma too: if an application only
12053    needs lzma_crc64(), static linking would make the linker include the
12054    CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though
12055    the CRC32 code wouldn't be needed, thus increasing code size of the
12056    executable (assuming that -ffunction-sections isn't used).
12057
12058    Also, now compilers are likely to inline crc_simd_body()
12059    even if they don't support the always_inline attribute
12060    (or MSVC's __forceinline). Quite possibly all compilers
12061    that build the code do support such an attribute. But now
12062    it likely isn't a problem even if the attribute wasn't supported.
12063
12064    Now all x86-specific stuff is in crc_x86_clmul.h. If other archs
12065    The other archs can then have their own headers with their own
12066    is_clmul_supported() and crcxx_clmul().
12067
12068    Another bonus is that the build system doesn't need to care if
12069    crc_clmul.c is needed.
12070
12071    is_clmul_supported() stays as inline function as it's not needed
12072    when doing a CLMUL-only build (avoids a warning about unused function).
12073
12074 CMakeLists.txt                                     |  7 +-
12075 configure.ac                                       |  1 -
12076 src/liblzma/check/Makefile.inc                     |  6 +-
12077 src/liblzma/check/crc32_fast.c                     |  9 ++-
12078 src/liblzma/check/crc64_fast.c                     |  9 ++-
12079 src/liblzma/check/crc_common.h                     | 64 ----------------
12080 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++----
12081 7 files changed, 91 insertions(+), 91 deletions(-)
12082
12083commit e3833e297dfb5021a197bda34ba2a795e30aaf8a
12084Author: Lasse Collin <lasse.collin@tukaani.org>
12085Date:   2023-10-21 00:06:52 +0300
12086
12087    liblzma: crc_clmul.c: Add crc_attr_target macro.
12088
12089    This reduces the number of the complex #if directives.
12090
12091 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++--------------
12092 1 file changed, 16 insertions(+), 14 deletions(-)
12093
12094commit d164ac0e62904126f7920c25f9a2875c8cd28b97
12095Author: Lasse Collin <lasse.collin@tukaani.org>
12096Date:   2023-10-20 22:49:48 +0300
12097
12098    liblzma: Simplify existing cases with lzma_attr_no_sanitize_address.
12099
12100 src/liblzma/check/crc_clmul.c | 12 +++---------
12101 1 file changed, 3 insertions(+), 9 deletions(-)
12102
12103commit 9523c1300d22fa715765c181cf991d14d6112fb1
12104Author: Lasse Collin <lasse.collin@tukaani.org>
12105Date:   2023-10-20 21:53:35 +0300
12106
12107    liblzma: #define crc_attr_no_sanitize_address in crc_common.h.
12108
12109 src/liblzma/check/crc_common.h | 10 ++++++++++
12110 1 file changed, 10 insertions(+)
12111
12112commit 93d144f0930821590524247bd174afd38003d7f0
12113Author: Lasse Collin <lasse.collin@tukaani.org>
12114Date:   2023-10-20 23:25:14 +0300
12115
12116    liblzma: CRC: Add empty lines.
12117
12118    And remove one too.
12119
12120 src/liblzma/check/crc32_fast.c | 2 ++
12121 src/liblzma/check/crc64_fast.c | 3 +++
12122 src/liblzma/check/crc_clmul.c  | 1 -
12123 3 files changed, 5 insertions(+), 1 deletion(-)
12124
12125commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae
12126Author: Lasse Collin <lasse.collin@tukaani.org>
12127Date:   2023-10-20 23:19:33 +0300
12128
12129    liblzma: crc_clmul.c: Tidy up the location of MSVC pragma.
12130
12131    It makes no difference in practice.
12132
12133 src/liblzma/check/crc_clmul.c | 4 ++--
12134 1 file changed, 2 insertions(+), 2 deletions(-)
12135
12136commit 15cf3f04f270d707a5c91cc0208b23b6db42b774
12137Author: Lasse Collin <lasse.collin@tukaani.org>
12138Date:   2023-12-20 21:16:24 +0200
12139
12140    Update THANKS.
12141
12142 THANKS | 1 +
12143 1 file changed, 1 insertion(+)
12144
12145commit cd64dd70d5665b6048829c45772d08606f44672e
12146Author: Lasse Collin <lasse.collin@tukaani.org>
12147Date:   2023-12-20 21:15:16 +0200
12148
12149    liblzma: Use 8-byte method in memcmplen.h on ARM64.
12150
12151    It requires fast unaligned access to 64-bit integers
12152    and a fast instruction to count leading zeros in
12153    a 64-bit integer (__builtin_ctzll()). This perhaps
12154    should be enabled on some other archs too.
12155
12156    Thanks to Chenxi Mao for the original patch:
12157    https://github.com/tukaani-project/xz/pull/75 (the first commit)
12158    According to the numbers there, this may improve encoding
12159    speed by about 3-5 %.
12160
12161    This enables the 8-byte method on MSVC ARM64 too which
12162    should work but wasn't tested.
12163
12164 src/liblzma/common/memcmplen.h | 18 ++++++++++--------
12165 1 file changed, 10 insertions(+), 8 deletions(-)
12166
12167commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606
12168Author: Lasse Collin <lasse.collin@tukaani.org>
12169Date:   2023-12-20 21:01:06 +0200
12170
12171    liblzma: Check also for __clang__ in memcmplen.h.
12172
12173    This change hopefully makes no practical difference as Clang
12174    likely was detected via __GNUC__ or _MSC_VER already.
12175
12176 src/liblzma/common/memcmplen.h | 3 ++-
12177 1 file changed, 2 insertions(+), 1 deletion(-)
12178
12179commit 133c5851eb917c6d99d0b623c1689c8518e65f38
12180Author: Jia Tan <jiat0218@gmail.com>
12181Date:   2023-12-21 21:39:08 +0800
12182
12183    Translations: Update the French translation.
12184
12185 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++--------------------------
12186 1 file changed, 370 insertions(+), 262 deletions(-)
12187
12188commit 710cbc186cad0ac601c38bd6bf31167648a5581e
12189Author: Jia Tan <jiat0218@gmail.com>
12190Date:   2023-12-21 16:39:53 +0800
12191
12192    xz: Add a comment to Capsicum sandbox setup.
12193
12194    This comment is repeated in xzdec.c to help remind us why all the
12195    capabilities are removed from stdin in certain situations.
12196
12197 src/xz/file_io.c | 1 +
12198 1 file changed, 1 insertion(+)
12199
12200commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12
12201Author: Jia Tan <jiat0218@gmail.com>
12202Date:   2023-12-20 22:19:19 +0800
12203
12204    Docs: Update --enable-sandbox option in INSTALL.
12205
12206    xzdec now also uses the sandbox when its configured.
12207
12208 INSTALL | 17 ++++++++++-------
12209 1 file changed, 10 insertions(+), 7 deletions(-)
12210
12211commit ebddf20214143a8e002ab897e95e880bb4c5ac44
12212Author: Jia Tan <jiat0218@gmail.com>
12213Date:   2023-12-20 22:39:13 +0800
12214
12215    CMake: Move sandbox detection outside of xz section.
12216
12217    The sandbox is now enabled for xzdec as well, so it no longer belongs
12218    in just the xz section. xz and xzdec are always built, except for older
12219    MSVC versions, so there isn't a need to conditionally show the sandbox
12220    configuration. CMake will do a little unecessary work on older MSVC
12221    versions that can't build xz or xzdec, but this is a very small
12222    downside.
12223
12224 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++--------------------------
12225 1 file changed, 98 insertions(+), 80 deletions(-)
12226
12227commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316
12228Author: Jia Tan <jiat0218@gmail.com>
12229Date:   2023-12-20 22:43:44 +0800
12230
12231    Build: Allow sandbox to be configured for just xzdec.
12232
12233    If xz is disabled, then xzdec can still use the sandbox.
12234
12235 configure.ac | 10 +++++-----
12236 1 file changed, 5 insertions(+), 5 deletions(-)
12237
12238commit d74fb5f060b76db709b50f5fd37490394e52f975
12239Author: Jia Tan <jiat0218@gmail.com>
12240Date:   2023-12-19 21:18:28 +0800
12241
12242    xzdec: Add sandbox support for Pledge, Capsicum, and Landlock.
12243
12244    A very strict sandbox is used when the last file is decompressed. The
12245    likely most common use case of xzdec is to decompress a single file.
12246    The Pledge sandbox is applied to the entire process with slightly more
12247    relaxed promises, until the last file is processed.
12248
12249    Thanks to Christian Weisgerber for the initial patch adding Pledge
12250    sandboxing.
12251
12252 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++---
12253 1 file changed, 139 insertions(+), 7 deletions(-)
12254
12255commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5
12256Author: Jia Tan <jiat0218@gmail.com>
12257Date:   2023-12-20 21:31:34 +0800
12258
12259    liblzma: Initialize lzma_lz_encoder pointers with NULL.
12260
12261    This fixes the recent change to lzma_lz_encoder that used memzero
12262    instead of the NULL constant. On some compilers the NULL constant
12263    (always 0) may not equal the NULL pointer (this only needs to guarentee
12264    to not point to valid memory address).
12265
12266    Later code compares the pointers to the NULL pointer so we must
12267    initialize them with the NULL pointer instead of 0 to guarentee
12268    code correctness.
12269
12270 src/liblzma/lz/lz_encoder.c | 6 +++++-
12271 1 file changed, 5 insertions(+), 1 deletion(-)
12272
12273commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df
12274Author: Jia Tan <jiat0218@gmail.com>
12275Date:   2023-12-16 20:51:38 +0800
12276
12277    liblzma: Set all values in lzma_lz_encoder to NULL after allocation.
12278
12279    The first member of lzma_lz_encoder doesn't necessarily need to be set
12280    to NULL since it will always be set before anything tries to use it.
12281    However the function pointer members must be set to NULL since other
12282    functions rely on this NULL value to determine if this behavior is
12283    supported or not.
12284
12285    This fixes a somewhat serious bug, where the options_update() and
12286    set_out_limit() function pointers are not set to NULL. This seems to
12287    have been forgotten since these function pointers were added many years
12288    after the original two (code() and end()).
12289
12290    The problem is that by not setting this to NULL we are relying on the
12291    memory allocation to zero things out if lzma_filters_update() is called
12292    on a LZMA1 encoder. The function pointer for set_out_limit() is less
12293    serious because there is not an API function that could call this in an
12294    incorrect way. set_out_limit() is only called by the MicroLZMA encoder,
12295    which must use LZMA1 where set_out_limit() is always set. Its currently
12296    not possible to call set_out_limit() on an LZMA2 encoder at this time.
12297
12298    So calling lzma_filters_update() on an LZMA1 encoder had undefined
12299    behavior since its possible that memory could be manipulated so the
12300    options_update member pointed to a different instruction sequence.
12301
12302    This is unlikely to be a bug in an existing application since it relies
12303    on calling lzma_filters_update() on an LZMA1 encoder in the first place.
12304    For instance, it does not affect xz because lzma_filters_update() can
12305    only be used when encoding to the .xz format.
12306
12307    This is fixed by using memzero() to set all members of lzma_lz_encoder
12308    to NULL after it is allocated. This ensures this mistake will not occur
12309    here in the future if any additional function pointers are added.
12310
12311 src/liblzma/lz/lz_encoder.c | 4 +---
12312 1 file changed, 1 insertion(+), 3 deletions(-)
12313
12314commit 1a1bb381db7a20cf86cb45a350e5cca35224d017
12315Author: Jia Tan <jiat0218@gmail.com>
12316Date:   2023-12-16 20:30:55 +0800
12317
12318    liblzma: Tweak a comment.
12319
12320 src/liblzma/lz/lz_encoder.c | 2 +-
12321 1 file changed, 1 insertion(+), 1 deletion(-)
12322
12323commit 55810780e04f759747b02683fb8020b8cd022a85
12324Author: Jia Tan <jiat0218@gmail.com>
12325Date:   2023-12-16 20:28:21 +0800
12326
12327    liblzma: Make parameter names in function definition match declaration.
12328
12329    lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the
12330    parameter name instead of "filters" (used by the declaration). "filters"
12331    is more clear since the parameter represents the list of filters passed
12332    to the raw encoder, each of which contains filter options.
12333
12334 src/liblzma/common/filter_encoder.c | 8 ++++----
12335 1 file changed, 4 insertions(+), 4 deletions(-)
12336
12337commit 5dad6f628af742bab826819760deb677597445f7
12338Author: Jia Tan <jiat0218@gmail.com>
12339Date:   2023-12-16 20:18:47 +0800
12340
12341    liblzma: Improve lzma encoder init function consistency.
12342
12343    lzma_encoder_init() did not check for NULL options, but
12344    lzma2_encoder_init() did. This is more of a code style improvement than
12345    anything else to help make lzma_encoder_init() and lzma2_encoder_init()
12346    more similar.
12347
12348 src/liblzma/lzma/lzma_encoder.c | 3 +++
12349 1 file changed, 3 insertions(+)
12350
12351commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf
12352Author: Jia Tan <jiat0218@gmail.com>
12353Date:   2023-12-16 11:20:20 +0800
12354
12355    Docs: Update repository URL in Changelog.
12356
12357 ChangeLog | 2 +-
12358 1 file changed, 1 insertion(+), 1 deletion(-)
12359
12360commit f9b82bc64a9405e486575c65c1729229eb0a8198
12361Author: Jia Tan <jiat0218@gmail.com>
12362Date:   2023-12-15 16:56:31 +0800
12363
12364    CI: Update Upload Artifact Action.
12365
12366 .github/workflows/ci.yml         | 2 +-
12367 .github/workflows/windows-ci.yml | 2 +-
12368 2 files changed, 2 insertions(+), 2 deletions(-)
12369
12370commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e
12371Author: Jia Tan <jiat0218@gmail.com>
12372Date:   2023-12-07 21:48:07 +0800
12373
12374    Tests: Silence -Wsign-conversion warning on GCC version < 10.
12375
12376    Since GCC version 10, GCC no longer complains about simple implicit
12377    integer conversions with Arithmetic operators.
12378
12379    For instance:
12380
12381        uint8_t a = 5;
12382        uint32_t b = a + 5;
12383
12384    Give a warning on GCC 9 and earlier but this:
12385
12386        uint8_t a = 5;
12387        uint32_t b = (a + 5) * 2;
12388
12389    Gives a warning with GCC 10+.
12390
12391 tests/test_block_header.c | 2 +-
12392 1 file changed, 1 insertion(+), 1 deletion(-)
12393
12394commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8
12395Author: Jia Tan <jiat0218@gmail.com>
12396Date:   2023-12-06 18:39:03 +0800
12397
12398    Update THANKS.
12399
12400 THANKS | 1 +
12401 1 file changed, 1 insertion(+)
12402
12403commit ee2f48350099201694a7586e41d7aa2f09fc74da
12404Author: Jia Tan <jiat0218@gmail.com>
12405Date:   2023-12-06 18:30:25 +0800
12406
12407    Tests: Minor cleanups to OSS-Fuzz files.
12408
12409    Most of these fixes are small typos and tweaks. A few were caused by bad
12410    advice from me. Here is the summary of what is changed:
12411
12412    - Author line edits
12413
12414    - Small comment changes/additions
12415
12416    - Using the return value in the error messages in the fuzz targets'
12417      coder initialization code
12418
12419    - Removed fuzz_encode_stream.options. This set a max length, which may
12420      prevent some worthwhile code paths from being properly exercised.
12421
12422    - Removed the max_len option from fuzz_decode_stream.options for the
12423      same reason as fuzz_encode_stream. The alone decoder fuzz target still
12424      has this restriction.
12425
12426    - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping
12427      the properties static and varying the dictionary size, the properties
12428      are varied and the dictionary size is kept small. The dictionary size
12429      doesn't have much impact on the code paths but the properties do.
12430
12431    Closes: https://github.com/tukaani-project/xz/pull/73
12432
12433 tests/ossfuzz/Makefile                          |  3 ++
12434 tests/ossfuzz/config/fuzz_decode_stream.options |  1 -
12435 tests/ossfuzz/config/fuzz_lzma.dict             | 34 +++++++++++-----------
12436 tests/ossfuzz/fuzz_common.h                     | 16 +++++------
12437 tests/ossfuzz/fuzz_decode_alone.c               | 15 +++++-----
12438 tests/ossfuzz/fuzz_decode_stream.c              | 15 +++++-----
12439 tests/ossfuzz/fuzz_encode_stream.c              | 38 +++++++++++++++----------
12440 7 files changed, 66 insertions(+), 56 deletions(-)
12441
12442commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d
12443Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
12444Date:   2023-12-05 16:31:09 +0100
12445
12446    Tests: Add fuzz_encode_stream ossfuzz target.
12447
12448    This fuzz target handles .xz stream encoding. The first byte of input
12449    is used to dynamically set the preset level in order to increase the
12450    fuzz coverage of complex critical code paths.
12451
12452 tests/ossfuzz/config/fuzz_encode_stream.options |  2 +
12453 tests/ossfuzz/fuzz_encode_stream.c              | 79 +++++++++++++++++++++++++
12454 2 files changed, 81 insertions(+)
12455
12456commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48
12457Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
12458Date:   2023-12-04 17:23:24 +0100
12459
12460    Tests: Add fuzz_decode_alone OSS-Fuzz target
12461
12462    This fuzz target that handles LZMA alone decoding. A new fuzz
12463    dictionary .dict was also created with common LZMA header values to
12464    help speed up the discovery of valid headers.
12465
12466 tests/ossfuzz/config/fuzz_decode_alone.options |  3 ++
12467 tests/ossfuzz/config/fuzz_lzma.dict            | 22 ++++++++++++++
12468 tests/ossfuzz/fuzz_decode_alone.c              | 41 ++++++++++++++++++++++++++
12469 3 files changed, 66 insertions(+)
12470
12471commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a
12472Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
12473Date:   2023-12-04 17:21:29 +0100
12474
12475    Tests: Update OSS-Fuzz Makefile.
12476
12477    All .c files can be built as separate fuzz targets. This simplifies
12478    the Makefile by allowing us to use wildcards instead of having a
12479    Makefile target for each fuzz target.
12480
12481 tests/ossfuzz/Makefile | 13 +++++++++----
12482 1 file changed, 9 insertions(+), 4 deletions(-)
12483
12484commit 28ce6a1c2a74866c51f7996a6869679c236d3c94
12485Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
12486Date:   2023-12-04 17:20:08 +0100
12487
12488    Tests: Move common OSS-Fuzz target code to .h file.
12489
12490 tests/ossfuzz/fuzz_common.h        | 56 ++++++++++++++++++++++++++++++++++++
12491 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++----------------------------
12492 2 files changed, 71 insertions(+), 44 deletions(-)
12493
12494commit bf0521ea1591c25b9d510c1b8be86073e9d847c6
12495Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com>
12496Date:   2023-12-04 17:18:20 +0100
12497
12498    Tests: Rename OSS-Fuzz files.
12499
12500 tests/ossfuzz/config/fuzz.options                | 2 --
12501 tests/ossfuzz/config/fuzz_decode_stream.options  | 3 +++
12502 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0
12503 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c}   | 0
12504 4 files changed, 3 insertions(+), 2 deletions(-)
12505
12506commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7
12507Author: Jia Tan <jiat0218@gmail.com>
12508Date:   2023-11-30 23:10:43 +0800
12509
12510    Update THANKS.
12511
12512 THANKS | 1 +
12513 1 file changed, 1 insertion(+)
12514
12515commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
12516Author: Kian-Meng Ang <kianmeng@cpan.org>
12517Date:   2023-11-30 23:01:19 +0800
12518
12519    Tests: Fix typos
12520
12521 tests/test_index.c        | 2 +-
12522 tests/test_lzip_decoder.c | 4 ++--
12523 2 files changed, 3 insertions(+), 3 deletions(-)
12524
12525commit 424d46ead8cbc0da57f406b76926ec4ed47437f5
12526Author: Kian-Meng Ang <kianmeng@cpan.org>
12527Date:   2023-11-30 22:59:47 +0800
12528
12529    xz: Fix typo
12530
12531 src/xz/file_io.c | 2 +-
12532 1 file changed, 1 insertion(+), 1 deletion(-)
12533
12534commit 35558adf9c45e5597f2c8dbd969885dd484038d2
12535Author: Jia Tan <jiat0218@gmail.com>
12536Date:   2023-11-30 20:41:00 +0800
12537
12538    Update THANKS.
12539
12540 THANKS | 1 +
12541 1 file changed, 1 insertion(+)
12542
12543commit fd170e8557727bed6bec0518c16415064d972e4e
12544Author: Jia Tan <jiat0218@gmail.com>
12545Date:   2023-11-22 21:20:12 +0800
12546
12547    CI: Test musl libc builds on Ubuntu runner.
12548
12549 .github/workflows/ci.yml | 19 +++++++++++++++++--
12550 1 file changed, 17 insertions(+), 2 deletions(-)
12551
12552commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e
12553Author: Jia Tan <jiat0218@gmail.com>
12554Date:   2023-11-22 21:12:15 +0800
12555
12556    CI: Allow ci_build.sh to set a different C compiler.
12557
12558 build-aux/ci_build.sh | 11 ++++++++++-
12559 1 file changed, 10 insertions(+), 1 deletion(-)
12560
12561commit ff7badef53c2cd698d4b72b945f34dfd0835e13c
12562Author: Jia Tan <jiat0218@gmail.com>
12563Date:   2023-11-24 21:19:12 +0800
12564
12565    CMake: Use consistent indentation with check_c_source_compiles().
12566
12567 CMakeLists.txt | 4 ++--
12568 1 file changed, 2 insertions(+), 2 deletions(-)
12569
12570commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1
12571Author: Jia Tan <jiat0218@gmail.com>
12572Date:   2023-11-22 20:33:36 +0800
12573
12574    CMake: Change __attribute__((__ifunc__())) detection.
12575
12576    This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc
12577    detection changes that were made to the Autotools build.
12578
12579    Fixes: https://github.com/tukaani-project/xz/issues/70
12580
12581 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++--------
12582 1 file changed, 45 insertions(+), 8 deletions(-)
12583
12584commit 20ecee40a0053fd16371ef0628046bf45e548d72
12585Author: Jia Tan <jiat0218@gmail.com>
12586Date:   2023-11-24 20:19:11 +0800
12587
12588    Docs: Update INSTALL for --enable_ifunc change.
12589
12590 INSTALL | 16 ++++++++--------
12591 1 file changed, 8 insertions(+), 8 deletions(-)
12592
12593commit ffb456593d695d70052a2f71c7a2e6269217d194
12594Author: Jia Tan <jiat0218@gmail.com>
12595Date:   2023-11-21 20:56:55 +0800
12596
12597    Build: Change --enable-ifunc handling.
12598
12599    Some compilers support __attribute__((__ifunc__())) even though the
12600    dynamic linker does not. The compiler is able to create the binary
12601    but it will fail on startup. So it is not enough to just test if
12602    the attribute is supported.
12603
12604    The default value for enable_ifunc is now auto, which will attempt
12605    to compile a program using __attribute__((__ifunc__())). There are
12606    additional checks in this program if glibc is being used or if it
12607    is running on FreeBSD.
12608
12609    Setting --enable-ifunc will skip this test and always enable
12610    __attribute__((__ifunc__())), even if is not supported.
12611
12612 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++-----------------
12613 1 file changed, 44 insertions(+), 17 deletions(-)
12614
12615commit 12b89bcc9915090eb42ae638e565af44b6832a23
12616Author: Lasse Collin <lasse.collin@tukaani.org>
12617Date:   2023-11-23 17:39:10 +0200
12618
12619    xz: Tweak a comment.
12620
12621 src/xz/util.c | 4 ++--
12622 1 file changed, 2 insertions(+), 2 deletions(-)
12623
12624commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e
12625Author: Jia Tan <jiat0218@gmail.com>
12626Date:   2023-11-23 22:13:39 +0800
12627
12628    xz: Use is_tty() in message.c.
12629
12630 src/xz/message.c | 7 +------
12631 1 file changed, 1 insertion(+), 6 deletions(-)
12632
12633commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e
12634Author: Jia Tan <jiat0218@gmail.com>
12635Date:   2023-11-23 22:04:35 +0800
12636
12637    xz: Create separate is_tty() function.
12638
12639    The new is_tty() will report if a file descriptor is a terminal or not.
12640    On POSIX systems, it is a wrapper around isatty(). However, the native
12641    Windows implementation of isatty() will return true for all character
12642    devices, not just terminals. So is_tty() has a special case for Windows
12643    so it can use alternative Windows API functions to determine if a file
12644    descriptor is a terminal.
12645
12646    This fixes a bug with MSVC and MinGW-w64 builds that refused to read from
12647    or write to non-terminal character devices because xz thought it was a
12648    terminal. For instance:
12649
12650        xz foo -c > /dev/null
12651
12652    would fail because /dev/null was assumed to be a terminal.
12653
12654 src/xz/util.c | 30 +++++++++++++++++++++++-------
12655 src/xz/util.h | 14 ++++++++++++++
12656 2 files changed, 37 insertions(+), 7 deletions(-)
12657
12658commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d
12659Author: Jia Tan <jiat0218@gmail.com>
12660Date:   2023-11-22 20:39:41 +0800
12661
12662    tuklib_integer: Fix typo discovered by codespell.
12663
12664    Based on internet dictionary searches, 'choise' is an outdated spelling
12665    of 'choice'.
12666
12667 src/common/tuklib_integer.h | 2 +-
12668 1 file changed, 1 insertion(+), 1 deletion(-)
12669
12670commit 659aca0d695807c0762d4101765189e4e33d1e2c
12671Author: Lasse Collin <lasse.collin@tukaani.org>
12672Date:   2023-11-17 19:35:19 +0200
12673
12674    xz: Move the check for --suffix with --format=raw a few lines earlier.
12675
12676    Now it reads from argv[] instead of args->arg_names.
12677
12678 src/xz/args.c | 44 ++++++++++++++++++++++----------------------
12679 1 file changed, 22 insertions(+), 22 deletions(-)
12680
12681commit ca278eb2b7f5a4940f5ab18955297b398d423824
12682Author: Jia Tan <jiat0218@gmail.com>
12683Date:   2023-11-17 20:35:11 +0800
12684
12685    Tests: Create test_suffix.sh.
12686
12687    This tests some complicated interactions with the --suffix= option.
12688    The suffix option must be used with --format=raw, but can optionally
12689    be used to override the default .xz suffix.
12690
12691    This test also verifies some recent bugs have been correctly solved
12692    and to hopefully avoid further regressions in the future.
12693
12694 tests/Makefile.am    |   2 +
12695 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++
12696 2 files changed, 191 insertions(+)
12697
12698commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce
12699Author: Jia Tan <jiat0218@gmail.com>
12700Date:   2023-11-17 20:19:26 +0800
12701
12702    xz: Fix a bug with --files and --files0 in raw mode without a suffix.
12703
12704    The following command caused a segmentation fault:
12705
12706        xz -Fraw --lzma1 --files=foo
12707
12708    when foo was a valid file. The usage of --files or --files0 was not
12709    being checked when compressing or decompressing in raw mode without a
12710    suffix. The suffix checking code was meant to validate that all files
12711    to be processed are "-" (if not writing to standard out), meaning the
12712    data is only coming from standard in. In this case, there were no file
12713    names to check since --files and --files0 store their file name in a
12714    different place.
12715
12716    Later code assumed the suffix was set and caused a segmentation fault.
12717    Now, the above command results in an error.
12718
12719 src/xz/args.c | 5 +++++
12720 1 file changed, 5 insertions(+)
12721
12722commit 299920bab9ae258a247366339264e8aefca9e3ce
12723Author: Jia Tan <jiat0218@gmail.com>
12724Date:   2023-11-17 20:04:58 +0800
12725
12726    Tests: Fix typo in a comment.
12727
12728 tests/test_files.sh | 2 +-
12729 1 file changed, 1 insertion(+), 1 deletion(-)
12730
12731commit f481523baac946fa3bc13d79186ffaf0c0b818a7
12732Author: Jia Tan <jiat0218@gmail.com>
12733Date:   2023-11-15 23:40:13 +0800
12734
12735    xz: Refactor suffix test with raw format.
12736
12737    The previous version set opt_stdout, but this caused an issue with
12738    copying an input file to standard out when decompressing an unknown file
12739    type. The following needs to result in an error:
12740
12741        echo foo | xz -df
12742
12743    since -c, --stdout is not used. This fixes the previous error by not
12744    setting opt_stdout.
12745
12746 src/xz/args.c | 38 +++++++++++++-------------------------
12747 1 file changed, 13 insertions(+), 25 deletions(-)
12748
12749commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6
12750Author: Jia Tan <jiat0218@gmail.com>
12751Date:   2023-11-14 20:27:46 +0800
12752
12753    xz: Move suffix check after stdout mode is detected.
12754
12755    This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0
12756    when the suffix check was initially moved. This caused a situation that
12757    previously worked:
12758
12759        echo foo | xz -Fraw --lzma1 | wc -c
12760
12761    to fail because the old code knew that this would write to standard out
12762    so a suffix was not needed.
12763
12764 src/xz/args.c | 16 ++++++++--------
12765 1 file changed, 8 insertions(+), 8 deletions(-)
12766
12767commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf
12768Author: Jia Tan <jiat0218@gmail.com>
12769Date:   2023-11-14 20:27:04 +0800
12770
12771    xz: Detect when all data will be written to standard out earlier.
12772
12773    If the -c, --stdout argument is not used, then we can still detect when
12774    the data will be written to standard out if all of the provided
12775    filenames are "-" (denoting standard in) or if no filenames are
12776    provided.
12777
12778 src/xz/args.c | 21 +++++++++++++++++++++
12779 1 file changed, 21 insertions(+)
12780
12781commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b
12782Author: Jia Tan <jiat0218@gmail.com>
12783Date:   2023-11-09 01:21:53 +0800
12784
12785    liblzma: Add missing comments to lz_encoder.h.
12786
12787 src/liblzma/lz/lz_encoder.h | 6 +++++-
12788 1 file changed, 5 insertions(+), 1 deletion(-)
12789
12790commit 5fe1450603dc625340b8b7866fb4a83ff748ad06
12791Author: Jia Tan <jiat0218@gmail.com>
12792Date:   2023-11-01 20:18:30 +0800
12793
12794    Add NEWS for 5.4.5.
12795
12796 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12797 1 file changed, 74 insertions(+)
12798
12799commit 46007049cd42e606543dbe650feb17bdf4469c29
12800Author: Lasse Collin <lasse.collin@tukaani.org>
12801Date:   2023-10-31 21:41:09 +0200
12802
12803    liblzma: Fix compilation of fastpos_tablegen.c.
12804
12805    The macro lzma_attr_visibility_hidden has to be defined to make
12806    fastpos.h usable. The visibility attribute is irrelevant to
12807    fastpos_tablegen.c so simply #define the macro to an empty value.
12808
12809    fastpos_tablegen.c is never built by the included build systems
12810    and so the problem wasn't noticed earlier. It's just a standalone
12811    program for generating fastpos_table.c.
12812
12813    Fixes: https://github.com/tukaani-project/xz/pull/69
12814    Thanks to GitHub user Jamaika1.
12815
12816 src/liblzma/lzma/fastpos_tablegen.c | 2 ++
12817 1 file changed, 2 insertions(+)
12818
12819commit 148e20607e95781558bdfc823ecba07b7af4b590
12820Author: Jia Tan <jiat0218@gmail.com>
12821Date:   2023-10-31 21:51:40 +0800
12822
12823    Build: Fix text wrapping in an output message.
12824
12825 configure.ac | 9 +++++----
12826 1 file changed, 5 insertions(+), 4 deletions(-)
12827
12828commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c
12829Author: Lasse Collin <lasse.collin@tukaani.org>
12830Date:   2023-10-30 18:09:53 +0200
12831
12832    liblzma: Add a note why crc_always_inline exists for now.
12833
12834    Solaris Studio is a possible example (not tested) which
12835    supports the always_inline attribute but might not get
12836    detected by the common.h #ifdefs.
12837
12838 src/liblzma/check/crc_common.h | 5 +++++
12839 1 file changed, 5 insertions(+)
12840
12841commit e7a86b94cd247435ac96bc79ba528b690b9ca388
12842Author: Lasse Collin <lasse.collin@tukaani.org>
12843Date:   2023-10-22 17:59:11 +0300
12844
12845    liblzma: Use lzma_always_inline in memcmplen.h.
12846
12847 src/liblzma/common/memcmplen.h | 3 +--
12848 1 file changed, 1 insertion(+), 2 deletions(-)
12849
12850commit dcfe5632992fb7f06f921da13fcdd84f83d0d285
12851Author: Lasse Collin <lasse.collin@tukaani.org>
12852Date:   2023-10-30 17:43:03 +0200
12853
12854    liblzma: #define lzma_always_inline in common.h.
12855
12856 src/liblzma/common/common.h | 17 +++++++++++++++++
12857 1 file changed, 17 insertions(+)
12858
12859commit 41113fe30a47f6fd3e30cb4494dd538e86212edf
12860Author: Lasse Collin <lasse.collin@tukaani.org>
12861Date:   2023-10-22 17:15:32 +0300
12862
12863    liblzma: Use lzma_attr_visibility_hidden on private extern declarations.
12864
12865    These variables are internal to liblzma and not exposed in the API.
12866
12867 src/liblzma/check/check.h                | 7 +++++++
12868 src/liblzma/common/stream_flags_common.h | 3 +++
12869 src/liblzma/lz/lz_encoder_hash.h         | 1 +
12870 src/liblzma/lzma/fastpos.h               | 1 +
12871 src/liblzma/rangecoder/price.h           | 1 +
12872 5 files changed, 13 insertions(+)
12873
12874commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478
12875Author: Lasse Collin <lasse.collin@tukaani.org>
12876Date:   2023-10-22 17:08:39 +0300
12877
12878    liblzma: #define lzma_attr_visibility_hidden in common.h.
12879
12880    In ELF shared libs:
12881
12882    -fvisibility=hidden affects definitions of symbols but not
12883    declarations.[*] This doesn't affect direct calls to functions
12884    inside liblzma as a linker can replace a call to lzma_foo@plt
12885    with a call directly to lzma_foo when -fvisibility=hidden is used.
12886
12887    [*] It has to be like this because otherwise every installed
12888        header file would need to explictly set the symbol visibility
12889        to default.
12890
12891    When accessing extern variables that aren't defined in the
12892    same translation unit, compiler assumes that the variable has
12893    the default visibility and thus indirection is needed. Unlike
12894    function calls, linker cannot optimize this.
12895
12896    Using __attribute__((__visibility__("hidden"))) with the extern
12897    variable declarations tells the compiler that indirection isn't
12898    needed because the definition is in the same shared library.
12899
12900    About 15+ years ago, someone told me that it would be good if
12901    the CRC tables would be defined in the same translation unit
12902    as the C code of the CRC functions. While I understood that it
12903    could help a tiny amount, I didn't want to change the code because
12904    a separate translation unit for the CRC tables was needed for the
12905    x86 assembly code anyway. But when visibility attributes are
12906    supported, simply marking the extern declaration with the
12907    hidden attribute will get identical result. When there are only
12908    a few affected variables, this is trivial to do. I wish I had
12909    understood this back then already.
12910
12911 src/liblzma/common/common.h | 11 +++++++++++
12912 1 file changed, 11 insertions(+)
12913
12914commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8
12915Author: Lasse Collin <lasse.collin@tukaani.org>
12916Date:   2023-09-30 22:54:28 +0300
12917
12918    liblzma: Refer to MinGW-w64 instead of MinGW in the API headers.
12919
12920    MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project
12921    at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the
12922    most recent GCC package (released 2021-02-02). The project might
12923    still be alive but majority of people have switched to MinGW-w64.
12924    Thus it seems clearer to refer to MinGW-w64 in our API headers too.
12925    Building with MinGW is likely to still work but I haven't tested it
12926    in the recent years.
12927
12928 src/liblzma/api/lzma.h         | 4 ++--
12929 src/liblzma/api/lzma/version.h | 2 +-
12930 2 files changed, 3 insertions(+), 3 deletions(-)
12931
12932commit 597f49b61475438a43a417236989b2acc968a686
12933Author: Lasse Collin <lasse.collin@tukaani.org>
12934Date:   2023-09-27 00:58:17 +0300
12935
12936    CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed.
12937
12938    A CMake option LARGE_FILE_SUPPORT is created if and only if
12939    -D_FILE_OFFSET_BITS=64 affects sizeof(off_t).
12940
12941    This is needed on many 32-bit platforms and even with 64-bit builds
12942    with MinGW-w64 to get support for files larger than 2 GiB.
12943
12944 CMakeLists.txt                        |  7 ++++-
12945 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++
12946 2 files changed, 58 insertions(+), 1 deletion(-)
12947
12948commit 1bc548b8210366e44ba35b0b11577a8e328c1228
12949Author: Lasse Collin <lasse.collin@tukaani.org>
12950Date:   2023-09-30 02:14:25 +0300
12951
12952    CMake: Generate and install liblzma.pc if not using MSVC.
12953
12954    Autotools based build uses -pthread and thus adds it to Libs.private
12955    in liblzma.pc. CMake doesn't use -pthread at all if pthread functions
12956    are available in libc so Libs.private doesn't get -pthread either.
12957
12958 CMakeLists.txt | 21 +++++++++++++++++++++
12959 1 file changed, 21 insertions(+)
12960
12961commit 2add71966f891d315105d6245f724ed4f43a4eff
12962Author: Lasse Collin <lasse.collin@tukaani.org>
12963Date:   2023-09-30 01:13:13 +0300
12964
12965    CMake: Rearrange the PACKAGE_ variables.
12966
12967    The windres workaround now replaces spaces with \x20 so
12968    the package name isn't repeated.
12969
12970    These changes will help with creation of liblzma.pc.
12971
12972 CMakeLists.txt | 26 +++++++++++++++-----------
12973 1 file changed, 15 insertions(+), 11 deletions(-)
12974
12975commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91
12976Author: Lasse Collin <lasse.collin@tukaani.org>
12977Date:   2023-09-29 20:46:11 +0300
12978
12979    liblzma: Add Cflags.private to liblzma.pc.in for MSYS2.
12980
12981    It properly adds -DLZMA_API_STATIC when compiling code that
12982    will be linked against static liblzma. Having it there on
12983    systems other than Windows does no harm.
12984
12985    See: https://www.msys2.org/docs/pkgconfig/
12986
12987 src/liblzma/liblzma.pc.in | 1 +
12988 1 file changed, 1 insertion(+)
12989
12990commit 80e0750e3996c1c659e972ce9cf789ca2e99f702
12991Author: Lasse Collin <lasse.collin@tukaani.org>
12992Date:   2023-09-27 22:46:20 +0300
12993
12994    CMake: Create liblzma.def when building liblzma.dll with MinGW-w64.
12995
12996 CMakeLists.txt              | 20 ++++++++++++++++++++
12997 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++
12998 2 files changed, 46 insertions(+)
12999
13000commit 08d12595f486890cf601b87f36ee0ddbce57728e
13001Author: Lasse Collin <lasse.collin@tukaani.org>
13002Date:   2023-10-26 21:44:42 +0300
13003
13004    CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR.
13005
13006    In this case they have identical values.
13007
13008 CMakeLists.txt | 2 +-
13009 1 file changed, 1 insertion(+), 1 deletion(-)
13010
13011commit e67aaf698de75c73443a5ec786781cbf2034461d
13012Author: Lasse Collin <lasse.collin@tukaani.org>
13013Date:   2023-10-01 19:10:57 +0300
13014
13015    CMake/Windows: Fix the import library filename.
13016
13017    Both PREFIX and IMPORT_PERFIX have to be set to "" to get
13018    liblzma.dll and liblzma.dll.a.
13019
13020 CMakeLists.txt | 1 +
13021 1 file changed, 1 insertion(+)
13022
13023commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179
13024Author: Lasse Collin <lasse.collin@tukaani.org>
13025Date:   2023-10-25 19:13:25 +0300
13026
13027    Build: Detect -fsanitize= in CFLAGS and incompatible build options.
13028
13029    Now configure will fail if -fsanitize= is found in CFLAGS
13030    and sanitizer-incompatible ifunc or Landlock sandboxing
13031    would be used. These are incompatible with one or more sanitizers.
13032    It's simpler to reject all -fsanitize= uses instead of trying to
13033    pass those that might not cause problems.
13034
13035    CMake-based build was updated similarly. It lets the configuration
13036    finish (SEND_ERROR instead of FATAL_ERROR) so that both error
13037    messages can be seen at once.
13038
13039 CMakeLists.txt | 29 +++++++++++++++++++++++++++++
13040 configure.ac   | 37 +++++++++++++++++++++++++++++++++----
13041 2 files changed, 62 insertions(+), 4 deletions(-)
13042
13043commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468
13044Author: Jia Tan <jiat0218@gmail.com>
13045Date:   2023-10-24 00:50:08 +0800
13046
13047    CI: Disable sandboxing in fsanitize=address,undefined job.
13048
13049    The sandboxing on Linux now supports Landlock, which restricts all
13050    supported filesystem actions after xz opens the files it needs. The
13051    sandbox is only enabled when one file is input and we are writing to
13052    standard out. With fsanitize=address,undefined, the instrumentation
13053    needs to read additional files after the sandbox is in place. This
13054    forces all xz based test to fail, so the sandbox must instead be
13055    disabled.
13056
13057 .github/workflows/ci.yml | 8 ++++++--
13058 1 file changed, 6 insertions(+), 2 deletions(-)
13059
13060commit b1408987ea832e2760e478ae960a636df17a1363
13061Author: Jia Tan <jiat0218@gmail.com>
13062Date:   2023-10-24 00:15:39 +0800
13063
13064    CI: Allow disabling the sandbox in ci_build.sh.
13065
13066 build-aux/ci_build.sh | 5 ++++-
13067 1 file changed, 4 insertions(+), 1 deletion(-)
13068
13069commit 91c435cf1c7a1e893706d4d716dfd361621ed824
13070Author: Lasse Collin <lasse.collin@tukaani.org>
13071Date:   2023-10-11 19:47:44 +0300
13072
13073    CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable.
13074
13075    Using set(ENABLE_THREADS "posix") is confusing because it sets
13076    a new normal variable and leaves the cache entry with the same
13077    name unchanged. The intent wasn't to change the cache entry so
13078    this switches to a different variable name.
13079
13080 CMakeLists.txt | 10 +++++++---
13081 1 file changed, 7 insertions(+), 3 deletions(-)
13082
13083commit fa1609eb9393ecd30decfed4891c907829f06710
13084Author: Lasse Collin <lasse.collin@tukaani.org>
13085Date:   2023-10-09 22:28:49 +0300
13086
13087    Docs: Update INSTALL about sandboxing support.
13088
13089 INSTALL | 7 ++++++-
13090 1 file changed, 6 insertions(+), 1 deletion(-)
13091
13092commit 8276c7f41c671eee4aa3239490658b23dcfd3021
13093Author: Lasse Collin <lasse.collin@tukaani.org>
13094Date:   2023-10-09 22:07:52 +0300
13095
13096    xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3).
13097
13098    It is enabled only when decompressing one file to stdout,
13099    similar to how Capsicum is used.
13100
13101    Landlock was added in Linux 5.13.
13102
13103 CMakeLists.txt   | 12 +++++++++++-
13104 configure.ac     | 11 ++++++++---
13105 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13106 src/xz/main.c    | 19 +++++++++++++++++++
13107 src/xz/private.h |  3 ++-
13108 5 files changed, 98 insertions(+), 5 deletions(-)
13109
13110commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c
13111Author: Lasse Collin <lasse.collin@tukaani.org>
13112Date:   2023-10-09 21:12:31 +0300
13113
13114    CMake: Edit threading related messages.
13115
13116    It's mostly to change from "thread method" to "threading method".
13117
13118 CMakeLists.txt | 19 ++++++++++---------
13119 1 file changed, 10 insertions(+), 9 deletions(-)
13120
13121commit bf011352528ae3539ea7b780b45b96736ee57a99
13122Author: Lasse Collin <lasse.collin@tukaani.org>
13123Date:   2023-10-09 20:59:24 +0300
13124
13125    CMake: Use FATAL_ERROR if user-supplied options aren't understood.
13126
13127    This way typos are caught quickly and compounding error messages
13128    are avoided (a single typo could cause more than one error).
13129
13130    This keeps using SEND_ERROR when the system is lacking a feature
13131    (like threading library or sandboxing method). This way the whole
13132    configuration log will be generated in case someone wishes to
13133    report a problem upstream.
13134
13135 CMakeLists.txt | 28 ++++++++++++++--------------
13136 1 file changed, 14 insertions(+), 14 deletions(-)
13137
13138commit 3f53870c249945d657ca3d75e0993e6267d71f75
13139Author: Lasse Collin <lasse.collin@tukaani.org>
13140Date:   2023-10-09 18:37:32 +0300
13141
13142    CMake: Add sandboxing support.
13143
13144 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
13145 1 file changed, 49 insertions(+), 1 deletion(-)
13146
13147commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0
13148Author: Lasse Collin <lasse.collin@tukaani.org>
13149Date:   2023-10-09 18:13:08 +0300
13150
13151    Simplify detection of Capsicum support.
13152
13153    This removes support for FreeBSD 10.0 and 10.1 which used
13154    <sys/capability.h> instead of <sys/capsicum.h>. Support for
13155    FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is
13156    required to enable Capsicum support.
13157
13158    This also removes support for Capsicum on Linux (libcaprights)
13159    which seems to have been unmaintained since 2017 and Linux 4.11:
13160    https://github.com/google/capsicum-linux
13161
13162 configure.ac            |  4 +--
13163 m4/ax_check_capsicum.m4 | 85 -------------------------------------------------
13164 src/xz/Makefile.am      |  2 +-
13165 src/xz/file_io.c        | 14 +++-----
13166 src/xz/private.h        |  2 +-
13167 5 files changed, 9 insertions(+), 98 deletions(-)
13168
13169commit c57858b60e186d020b2dbaf7aabd9b32c71da824
13170Author: Lasse Collin <lasse.collin@tukaani.org>
13171Date:   2023-09-25 01:46:36 +0300
13172
13173    xz/Windows: Allow clock_gettime with POSIX threads.
13174
13175    If winpthreads are used for threading, it's OK to use clock_gettime()
13176    from winpthreads too.
13177
13178 src/xz/mytime.c | 9 ++++++---
13179 1 file changed, 6 insertions(+), 3 deletions(-)
13180
13181commit dd32f628bb5541ef4e8ce66966ef456a1934084c
13182Author: Lasse Collin <lasse.collin@tukaani.org>
13183Date:   2023-09-25 01:39:26 +0300
13184
13185    mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads.
13186
13187    This might be almost useless but it doesn't need much extra code either.
13188
13189 src/common/mythread.h | 23 ++++++++++++++++++++++-
13190 1 file changed, 22 insertions(+), 1 deletion(-)
13191
13192commit 680e52cdd086e92691d8a0bca2c98815565f60ca
13193Author: Lasse Collin <lasse.collin@tukaani.org>
13194Date:   2023-09-23 03:06:36 +0300
13195
13196    CMake: Check for clock_gettime() even on Windows.
13197
13198    This mirrors configure.ac although currently MinGW-w64 builds
13199    don't use clock_gettime() even if it is found.
13200
13201 CMakeLists.txt | 44 +++++++++++++++++++++-----------------------
13202 1 file changed, 21 insertions(+), 23 deletions(-)
13203
13204commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419
13205Author: Lasse Collin <lasse.collin@tukaani.org>
13206Date:   2023-09-23 03:23:32 +0300
13207
13208    Build: Check for clock_gettime() even if not using POSIX threads.
13209
13210    See the new comment in the code.
13211
13212    This also makes the check for clock_gettime() run with MinGW-w64
13213    with which we don't want to use clock_gettime(). The previous
13214    commit already took care of this situation.
13215
13216 configure.ac | 31 ++++++++++++++++++-------------
13217 1 file changed, 18 insertions(+), 13 deletions(-)
13218
13219commit 46fd991cd2808ef62554853864c946232e7547f0
13220Author: Lasse Collin <lasse.collin@tukaani.org>
13221Date:   2023-09-24 22:58:53 +0300
13222
13223    xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64.
13224
13225    This commit alone doesn't change anything in the real-world:
13226
13227      - configure.ac currently checks for clock_gettime() only
13228        when using pthreads.
13229
13230      - CMakeLists.txt doesn't check for clock_gettime() on Windows.
13231
13232    So clock_gettime() wasn't used with MinGW-w64 before either.
13233
13234    clock_gettime() provides monotonic time and it's better than
13235    gettimeofday() in this sense. But clock_gettime() is defined
13236    in winpthreads, and liblzma or xz needs nothing else from
13237    winpthreads. By avoiding clock_gettime(), we avoid the dependency on
13238    libwinpthread-1.dll or the need to link against the static version.
13239
13240    As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be
13241    faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution
13242    is more than good enough for the progress indicator in xz.
13243
13244 src/xz/mytime.c | 9 +++++++--
13245 1 file changed, 7 insertions(+), 2 deletions(-)
13246
13247commit cdb4d91f2464b50c985ef7b9517314ea237ddda7
13248Author: Lasse Collin <lasse.collin@tukaani.org>
13249Date:   2023-09-24 00:21:22 +0300
13250
13251    xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads.
13252
13253 src/xz/mytime.c | 14 +++++++++++---
13254 1 file changed, 11 insertions(+), 3 deletions(-)
13255
13256commit 988e09f27b9b04a43d45d10f92782e0092ee27a9
13257Author: Jia Tan <jiat0218@gmail.com>
13258Date:   2023-10-20 19:17:46 +0800
13259
13260    liblzma: Move is_clmul_supported() back to crc_common.h.
13261
13262    This partially reverts creating crc_clmul.c
13263    (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported()
13264    was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This
13265    caused a problem when the function call to lzma_is_clmul_supported()
13266    results in a call through the PLT. ifunc resolvers run very early in
13267    the dynamic loading sequence, so the PLT may not be setup properly at
13268    this point. Whether the PLT is used or not for
13269    lzma_is_clmul_supported() depened upon the compiler-toolchain used and
13270    flags.
13271
13272    In liblzma compiled with GCC, for instance, GCC will go through the PLT
13273    for function calls internal to liblzma if the version scripts and
13274    symbol visibility hiding are not used. If lazy-binding is disabled,
13275    then it would have made any program linked with liblzma fail during
13276    dynamic loading in the ifunc resolver.
13277
13278 src/liblzma/check/crc32_fast.c |  2 +-
13279 src/liblzma/check/crc64_fast.c |  2 +-
13280 src/liblzma/check/crc_clmul.c  | 45 ------------------------------------
13281 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++---
13282 4 files changed, 51 insertions(+), 50 deletions(-)
13283
13284commit 105c7ca90d4152942e0798580a37f736d02faa22
13285Author: Jia Tan <jiat0218@gmail.com>
13286Date:   2023-10-19 16:23:32 +0800
13287
13288    Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc.
13289
13290    Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be
13291    set. Because of this, it makes the recent change to conditionally
13292    compile check/crc_clmul.c appear wrong since that file has CLMUL
13293    implementations for both CRC32 and CRC64.
13294
13295 src/liblzma/check/Makefile.inc | 4 ++--
13296 1 file changed, 2 insertions(+), 2 deletions(-)
13297
13298commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c
13299Author: Jia Tan <jiat0218@gmail.com>
13300Date:   2023-10-19 16:09:01 +0800
13301
13302    CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL.
13303
13304    The option is enabled by default, but will only be visible to a user
13305    listing cache variables or using a CMake GUI application if the
13306    immintrin.h header file is found.
13307
13308    This mirrors our Autotools build --disable-clmul-crc functionality.
13309
13310 CMakeLists.txt | 44 +++++++++++++++++++++++++-------------------
13311 1 file changed, 25 insertions(+), 19 deletions(-)
13312
13313commit c60b25569d414bb73b705977a4dd342f8f9f1965
13314Author: Jia Tan <jiat0218@gmail.com>
13315Date:   2023-10-19 00:22:50 +0800
13316
13317    liblzma: Fix -fsanitize=address failure with crc_clmul functions.
13318
13319    After forcing crc_simd_body() to always be inlined it caused
13320    -fsanitize=address to fail for lzma_crc32_clmul() and
13321    lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added
13322    to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from
13323    crc_simd_body(). ASAN and inline functions behavior has changed over
13324    the years for GCC specifically, so while strictly required we will
13325    keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in
13326    case this becomes a requirement in the future.
13327
13328    Older GCC versions refuse to inline a function with ASAN if the
13329    caller and callee do not agree on sanitization flags
13330    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the
13331    function was forced to be inlined, it will not compile if the callee
13332    function has __no_sanitize_address__ but the caller doesn't.
13333
13334 src/liblzma/check/crc_clmul.c | 6 ++++++
13335 1 file changed, 6 insertions(+)
13336
13337commit 9a78971261bc67622cbd7dae02f6966968ac1393
13338Author: Lasse Collin <lasse.collin@tukaani.org>
13339Date:   2023-10-14 20:16:13 +0300
13340
13341    tuklib_integer: Update the CMake test for fast unaligned access.
13342
13343 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++----------
13344 1 file changed, 54 insertions(+), 15 deletions(-)
13345
13346commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4
13347Author: Lasse Collin <lasse.collin@tukaani.org>
13348Date:   2023-09-23 23:28:48 +0300
13349
13350    Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V.
13351
13352    PowerPC64LE wasn't tested but it seems like a safe change.
13353    POWER8 supports unaligned access in little endian mode. Testing
13354    on godbolt.org shows that GCC uses unaligned access by default.
13355
13356    The RISC-V macro __riscv_misaligned_fast is very new and not
13357    in any stable compiler release yet.
13358
13359    Documentation in INSTALL was updated to match.
13360
13361    Documentation about an autodetection bug when using ARM64 GCC
13362    with -mstrict-align was added to INSTALL.
13363
13364    CMake files weren't updated yet.
13365
13366 INSTALL              | 39 +++++++++++++++++++++++++++++++++++++--
13367 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++-------
13368 2 files changed, 64 insertions(+), 9 deletions(-)
13369
13370commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2
13371Author: Lasse Collin <lasse.collin@tukaani.org>
13372Date:   2023-10-14 17:56:59 +0300
13373
13374    tuklib_integer: Revise unaligned reads and writes on strict-align archs.
13375
13376    In XZ Utils context this doesn't matter much because
13377    unaligned reads and writes aren't used in hot code
13378    when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined.
13379
13380 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------
13381 1 file changed, 189 insertions(+), 67 deletions(-)
13382
13383commit 6828242735cbf61b93d140383336e1e51a006f2d
13384Author: Lasse Collin <lasse.collin@tukaani.org>
13385Date:   2023-09-23 02:21:49 +0300
13386
13387    tuklib_integer: Add missing write64be and write64le fallback functions.
13388
13389 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++
13390 1 file changed, 34 insertions(+)
13391
13392commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416
13393Author: Jia Tan <jiat0218@gmail.com>
13394Date:   2023-10-18 19:57:10 +0800
13395
13396    liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul().
13397
13398    After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul()
13399    has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the
13400    optimizations disabled.
13401
13402 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++---------------
13403 1 file changed, 15 insertions(+), 15 deletions(-)
13404
13405commit 5ce0f7a48bdf5c3b45430850a4487307afac6143
13406Author: Lasse Collin <lasse.collin@tukaani.org>
13407Date:   2023-10-18 14:30:00 +0300
13408
13409    liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc.
13410
13411 src/liblzma/check/crc_common.h | 4 +++-
13412 1 file changed, 3 insertions(+), 1 deletion(-)
13413
13414commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b
13415Author: Lasse Collin <lasse.collin@tukaani.org>
13416Date:   2023-10-17 21:53:11 +0300
13417
13418    liblzma: Include common.h in crc_common.h.
13419
13420    crc_common.h depends on common.h. The headers include common.h except
13421    when there is a reason to not do so.
13422
13423 src/liblzma/check/crc_clmul.c  | 1 -
13424 src/liblzma/check/crc_common.h | 3 +++
13425 2 files changed, 3 insertions(+), 1 deletion(-)
13426
13427commit e13b7947b92355c334edd594295d3a2c99c4bca1
13428Author: Jia Tan <jiat0218@gmail.com>
13429Date:   2023-10-18 01:23:26 +0800
13430
13431    liblzma: Add include guards to crc_common.h.
13432
13433 src/liblzma/check/crc_common.h | 5 +++++
13434 1 file changed, 5 insertions(+)
13435
13436commit 40abd88afcc61a8157fcd12d78d491caeb8e12be
13437Author: Jia Tan <jiat0218@gmail.com>
13438Date:   2023-10-18 22:50:25 +0800
13439
13440    liblzma: Add the crc_always_inline macro to crc_simd_body().
13441
13442    Forcing this to be inline has a significant speed improvement at the
13443    cost of a few repeated instructions. The compilers tested on did not
13444    inline this function since it is large and is used twice in the same
13445    translation unit.
13446
13447 src/liblzma/check/crc_clmul.c | 2 +-
13448 1 file changed, 1 insertion(+), 1 deletion(-)
13449
13450commit a5966c276bd6fa975f0389f8a8dc61393de750b0
13451Author: Jia Tan <jiat0218@gmail.com>
13452Date:   2023-10-18 22:48:19 +0800
13453
13454    liblzma: Create crc_always_inline macro.
13455
13456    This macro must be used instead of the inline keyword. On MSVC, it is
13457    a replacement for __forceinline which is an MSVC specific keyword that
13458    should not be used with inline (it will issue a warning if it is).
13459
13460    It does not use a build system check to determine if
13461    __attribute__((__always_inline__)) since all compilers that can use
13462    CLMUL extensions (except the special case for MSVC) should support this
13463    attribute. If this assumption is incorrect then it will result in a bug
13464    report instead of silently producing slow code.
13465
13466 src/liblzma/check/crc_common.h | 15 +++++++++++++++
13467 1 file changed, 15 insertions(+)
13468
13469commit 96b663f67c0e738a99ba8f35d9f4ced9add74544
13470Author: Jia Tan <jiat0218@gmail.com>
13471Date:   2023-10-14 13:23:23 +0800
13472
13473    liblzma: Refactor CRC comments.
13474
13475    A detailed description of the three dispatch methods was added. Also,
13476    duplicated comments now only appear in crc32_fast.c or were removed from
13477    both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c.
13478
13479 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++-------------
13480 src/liblzma/check/crc64_fast.c | 61 ++++++----------------------------------
13481 2 files changed, 53 insertions(+), 72 deletions(-)
13482
13483commit 8c0f9376f58c0696d5d6719705164d35542dd891
13484Author: Jia Tan <jiat0218@gmail.com>
13485Date:   2023-10-14 12:17:57 +0800
13486
13487    liblzma: Create crc_clmul.c.
13488
13489    Both crc32_clmul() and crc64_clmul() are now exported from
13490    crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This
13491    ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is
13492    not duplicated between crc32_fast.c and crc64_fast.c.
13493
13494    Also, it encapsulates the complexity of the CLMUL implementations into a
13495    single file and reduces the complexity of crc32_fast.c and crc64_fast.c.
13496    Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and
13497    crc_common.h.
13498
13499    During the conversion, various cleanups were applied to code (thanks to
13500    Lasse Collin) including:
13501
13502    - Require using semicolons with MASK_/L/H/LH macros.
13503    - Variable typing and const handling improvements.
13504    - Improvements to comments.
13505    - Fixes to the pragmas used.
13506    - Removed unneeded variables.
13507    - Whitespace improvements.
13508    - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling.
13509    - Silenced warnings and removed the need for some #pragmas
13510
13511 CMakeLists.txt                 |   6 +-
13512 configure.ac                   |   6 +-
13513 src/liblzma/check/Makefile.inc |   3 +
13514 src/liblzma/check/crc32_fast.c | 120 +-----------
13515 src/liblzma/check/crc64_fast.c | 128 +------------
13516 src/liblzma/check/crc_clmul.c  | 414 +++++++++++++++++++++++++++++++++++++++++
13517 src/liblzma/check/crc_common.h | 190 +------------------
13518 7 files changed, 444 insertions(+), 423 deletions(-)
13519
13520commit a3ebc2c516b09616638060806c841bd4bcf7bce3
13521Author: Jia Tan <jiat0218@gmail.com>
13522Date:   2023-10-14 10:23:03 +0800
13523
13524    liblzma: Define CRC_USE_IFUNC in crc_common.h.
13525
13526    When ifunc is supported, we can define a simpler macro instead of
13527    repeating the more complex check in both crc32_fast.c and crc64_fast.c.
13528
13529 src/liblzma/check/crc32_fast.c | 3 +--
13530 src/liblzma/check/crc64_fast.c | 3 +--
13531 src/liblzma/check/crc_common.h | 5 +++++
13532 3 files changed, 7 insertions(+), 4 deletions(-)
13533
13534commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17
13535Author: Hans Jansen <hansjansen162@outlook.com>
13536Date:   2023-10-12 19:37:01 +0200
13537
13538    liblzma: Added crc32_clmul to crc32_fast.c.
13539
13540 src/liblzma/check/crc32_fast.c  | 247 ++++++++++++++++++++++++++++++++++++++--
13541 src/liblzma/check/crc32_table.c |  19 +++-
13542 2 files changed, 255 insertions(+), 11 deletions(-)
13543
13544commit 93e6fb08b22c7c13be2dd1e7274fe78413436254
13545Author: Hans Jansen <hansjansen162@outlook.com>
13546Date:   2023-10-12 19:23:40 +0200
13547
13548    liblzma: Moved CLMUL CRC logic to crc_common.h.
13549
13550    crc64_fast.c was updated to use the code from crc_common.h instead.
13551
13552 src/liblzma/check/crc64_fast.c | 257 ++---------------------------------------
13553 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++-
13554 2 files changed, 240 insertions(+), 247 deletions(-)
13555
13556commit 233885a437f8b55a5c8442984ebc0aaa579e92de
13557Author: Hans Jansen <hansjansen162@outlook.com>
13558Date:   2023-10-12 19:07:50 +0200
13559
13560    liblzma: Rename crc_macros.h to crc_common.h.
13561
13562 CMakeLists.txt                                   | 2 +-
13563 src/liblzma/check/Makefile.inc                   | 2 +-
13564 src/liblzma/check/crc32_fast.c                   | 2 +-
13565 src/liblzma/check/crc64_fast.c                   | 2 +-
13566 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +-
13567 5 files changed, 5 insertions(+), 5 deletions(-)
13568
13569commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd
13570Author: Gabriela Gutierrez <gabigutierrez@google.com>
13571Date:   2023-09-26 15:55:13 +0000
13572
13573    CI: Bump and ref actions by commit SHA in windows-ci.yml
13574
13575    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.
13576
13577    It's important to make sure the SHA's are from the original repositories and not forks.
13578
13579    For reference:
13580
13581    https://github.com/msys2/setup-msys2/releases/tag/v2.20.1
13582    https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d
13583
13584    https://github.com/actions/checkout/releases/tag/v4.1.0
13585    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
13586
13587    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
13588    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
13589
13590    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
13591
13592 .github/workflows/windows-ci.yml | 6 +++---
13593 1 file changed, 3 insertions(+), 3 deletions(-)
13594
13595commit f28cc9bd481ce493da11f98c18526d324211599a
13596Author: Gabriela Gutierrez <gabigutierrez@google.com>
13597Date:   2023-09-26 14:35:08 +0000
13598
13599    CI: Bump and ref actions by commit SHA in ci.yml
13600
13601    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.
13602
13603    It's important to make sure the SHA's are from the original repositories and not forks.
13604
13605    For reference:
13606
13607    https://github.com/actions/checkout/releases/tag/v4.1.0
13608    https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608
13609
13610    https://github.com/actions/upload-artifact/releases/tag/v3.1.3
13611    https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32
13612
13613    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
13614
13615 .github/workflows/ci.yml | 4 ++--
13616 1 file changed, 2 insertions(+), 2 deletions(-)
13617
13618commit f74f1740067b75042497edbfa6ea457ff75484b9
13619Author: Jia Tan <jiat0218@gmail.com>
13620Date:   2023-10-12 20:12:18 +0800
13621
13622    Build: Update visibility.m4 from Gnulib.
13623
13624    Updating from version 6 -> 8 from upstream. Declarations for variables
13625    and function bodies were added to avoid unnecessary failures with
13626    -Werror.
13627
13628 m4/visibility.m4 | 9 +++++++--
13629 1 file changed, 7 insertions(+), 2 deletions(-)
13630
13631commit 5c4bca521e6fb435898a0012b3276eee70a6dadf
13632Author: Lasse Collin <lasse.collin@tukaani.org>
13633Date:   2023-10-06 19:36:35 +0300
13634
13635    Update THANKS.
13636
13637 THANKS | 1 +
13638 1 file changed, 1 insertion(+)
13639
13640commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
13641Author: Lasse Collin <lasse.collin@tukaani.org>
13642Date:   2023-10-06 18:55:57 +0300
13643
13644    CMake/Windows: Fix when the windres workaround is applied.
13645
13646    CMake doesn't set WIN32 on CYGWIN but the workaround is
13647    probably needed on Cygwin too. Same for MSYS and MSYS2.
13648
13649    The workaround must not be used with Clang that is acting in
13650    MSVC mode. This fixes it by checking for the known environments
13651    that need the workaround instead of using "NOT MSVC".
13652
13653    Thanks to Martin Storsjö.
13654    https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431
13655
13656 CMakeLists.txt | 6 +++---
13657 1 file changed, 3 insertions(+), 3 deletions(-)
13658
13659commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d
13660Author: Jia Tan <jiat0218@gmail.com>
13661Date:   2023-09-29 22:11:54 +0800
13662
13663    CI: Disable CLANG64 MSYS2 environment until bug is resolved.
13664
13665    lld 17.0.1 searches for libraries to link first in the toolchain
13666    directories before the local directory when building. The is a problem
13667    for us because liblzma.a is installed in MSYS2 CLANG64 by default and
13668    xz.exe will thus use the installed library instead of the one being
13669    built.
13670
13671    This causes tests to fail when they are expecting features to be
13672    disabled. More importantly, it will compile xz.exe with an incorrect
13673    liblzma and could cause unexpected behavior by being unable to update
13674    liblzma code in static builds. The CLANG64 environment can be tested
13675    again once this is fixed.
13676
13677    Link to bug: https://github.com/llvm/llvm-project/issues/67779.
13678
13679 .github/workflows/windows-ci.yml | 8 +++++---
13680 1 file changed, 5 insertions(+), 3 deletions(-)
13681
13682commit 30d0c35327f3639cb11224872aa58fdbf0b1526e
13683Author: Jia Tan <jiat0218@gmail.com>
13684Date:   2023-09-29 20:14:39 +0800
13685
13686    CMake: Rename xz and man page symlink custom targets.
13687
13688    The Ninja Generator for CMake cannot have a custom target and its
13689    BYPRODUCTS have the same name. This has prevented Ninja builds on
13690    Unix-like systems since the xz symlinks were introduced in
13691    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
13692
13693 CMakeLists.txt | 6 +++---
13694 1 file changed, 3 insertions(+), 3 deletions(-)
13695
13696commit 506d03127a8565442b028ec991e1578124fd3025
13697Author: Jia Tan <jiat0218@gmail.com>
13698Date:   2023-09-29 19:58:44 +0800
13699
13700    CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator.
13701
13702    CMake is unable to guess the linker language for just a header file so
13703    it must be explicitly set.
13704
13705 CMakeLists.txt | 6 ++++++
13706 1 file changed, 6 insertions(+)
13707
13708commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f
13709Author: Lasse Collin <lasse.collin@tukaani.org>
13710Date:   2023-09-27 19:54:35 +0300
13711
13712    CMake: Fix Windows build with Clang/LLVM 17.
13713
13714    llvm-windres 17.0.0 has more accurate emulation of GNU windres, so
13715    the hack for GNU windres must now be used with llvm-windres too.
13716
13717    LLVM 16.0.6 has the old behavior and there likely won't be more
13718    16.x releases. So we can simply check for >= 17.0.0.
13719
13720    See also:
13721    https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47
13722
13723 CMakeLists.txt | 26 ++++++++++++++------------
13724 1 file changed, 14 insertions(+), 12 deletions(-)
13725
13726commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1
13727Author: Lasse Collin <lasse.collin@tukaani.org>
13728Date:   2023-09-26 21:47:13 +0300
13729
13730    liblzma: Update a comment.
13731
13732    The C standards don't allow an empty translation unit which can be
13733    avoided by declaring something, without exporting any symbols.
13734
13735    When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had
13736    a feeling that some specific toolchain somewhere didn't like
13737    empty object files (assembler or maybe "ar" complained) but
13738    I cannot find anything to confirm this now. Quite likely I
13739    remembered nonsense. I leave this here as a note to my future self. :-)
13740
13741 src/liblzma/check/crc64_table.c | 3 +--
13742 1 file changed, 1 insertion(+), 2 deletions(-)
13743
13744commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499
13745Author: Jia Tan <jiat0218@gmail.com>
13746Date:   2023-09-27 00:02:11 +0800
13747
13748    liblzma: Avoid compiler warning without creating extra symbol.
13749
13750    When the generic fast crc64 method is used, then we omit
13751    lzma_crc64_table[][]. Similar to
13752    d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings
13753    with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a
13754    never used typedef instead of an extra symbol.
13755
13756 src/liblzma/check/crc64_table.c | 3 +--
13757 1 file changed, 1 insertion(+), 2 deletions(-)
13758
13759commit 092d21db2e5eea19fe079264ce48c178989c7606
13760Author: Lasse Collin <lasse.collin@tukaani.org>
13761Date:   2023-09-26 17:24:15 +0300
13762
13763    Build: Update the comment about -Werror usage in checks.
13764
13765 configure.ac | 10 ++++++++--
13766 1 file changed, 8 insertions(+), 2 deletions(-)
13767
13768commit a37a2763383e6c204fe878e1416dd35e7711d3a9
13769Author: Lasse Collin <lasse.collin@tukaani.org>
13770Date:   2023-09-26 15:00:43 +0300
13771
13772    Build: Fix __attribute__((ifunc(...))) detection with clang -Wall.
13773
13774    Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic
13775    the two checks that need -Werror will still work.
13776
13777    At CMake side there is add_compile_options(-Wall -Wextra)
13778    but it didn't affect the -Werror tests. So with both Autotools
13779    and CMake only user-supplied CFLAGS could make the checks fail
13780    when they shouldn't.
13781
13782    This is not a full fix as things like -Wunused-macros in
13783    user-supplied CFLAGS will still cause problems with both
13784    GCC and Clang.
13785
13786 CMakeLists.txt | 8 ++++++++
13787 configure.ac   | 8 ++++++++
13788 2 files changed, 16 insertions(+)
13789
13790commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2
13791Author: Lasse Collin <lasse.collin@tukaani.org>
13792Date:   2023-09-26 13:51:31 +0300
13793
13794    Build: Fix underquoted AC_LANG_SOURCE.
13795
13796    It made no practical difference in this case.
13797
13798 configure.ac | 2 +-
13799 1 file changed, 1 insertion(+), 1 deletion(-)
13800
13801commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982
13802Author: Lasse Collin <lasse.collin@tukaani.org>
13803Date:   2023-09-26 13:14:37 +0300
13804
13805    Build: Silence two Autoconf warnings.
13806
13807    There were two uses of AC_COMPILE_IFELSE that didn't use
13808    AC_LANG_SOURCE and Autoconf warned about these. The omission
13809    had been intentional but it turned out that this didn't do
13810    what I thought it would.
13811
13812    Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE
13813    inserts all #defines that have been made with AC_DEFINE so
13814    far (confdefs.h). The idea was that omitting AC_LANG_SOURCE
13815    would mean that only the exact code included in the
13816    AC_COMPILE_IFELSE call would be compiled.
13817
13818    With C programs this is not true: the #defines get added without
13819    AC_LANG_SOURCE too. There seems to be no neat way to avoid this.
13820    Thus, with the C language at least, adding AC_LANG_SOURCE makes
13821    no other difference than silencing a warning from Autoconf. The
13822    generated "configure" remains identical. (Docs of AC_LANG_CONFTEST
13823    say that the #defines have been inserted since Autoconf 2.63b and
13824    that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is
13825    documented if one also reads the docs of macros that one isn't
13826    calling directly.)
13827
13828    Any extra code, including #defines, can cause problems for
13829    these two tests because these tests must use -Werror.
13830    CC=clang CFLAGS=-Weverything is the most extreme example.
13831    It enables -Wreserved-macro-identifier which warns about
13832    #define __EXTENSIONS__ 1 because it begins with two underscores.
13833    It's possible to write a test file that passes -Weverything but
13834    it becomes impossible when Autoconf inserts confdefs.h.
13835
13836    So this commit adds AC_LANG_SOURCE to silence Autoconf warnings.
13837    A different solution is needed for -Werror tests.
13838
13839 configure.ac | 9 ++++-----
13840 1 file changed, 4 insertions(+), 5 deletions(-)
13841
13842commit 519e47c2818acde571fadc79551294527fe6cc22
13843Author: Jia Tan <jiat0218@gmail.com>
13844Date:   2023-09-26 01:17:11 +0800
13845
13846    CMake: Remove accidental extra newline.
13847
13848 CMakeLists.txt | 1 -
13849 1 file changed, 1 deletion(-)
13850
13851commit bbb42412da6a02705ba3e668e90840c2683e4e67
13852Author: Jia Tan <jiat0218@gmail.com>
13853Date:   2023-09-26 00:47:26 +0800
13854
13855    Build: Remove Gnulib dependency from tests.
13856
13857    The tests do not use any Gnulib replacements so they do not need to link
13858    libgnu.a or have /lib in the include path.
13859
13860 tests/Makefile.am | 7 +------
13861 1 file changed, 1 insertion(+), 6 deletions(-)
13862
13863commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa
13864Author: Jia Tan <jiat0218@gmail.com>
13865Date:   2023-09-26 00:43:43 +0800
13866
13867    CMake: Remove /lib from tests include path.
13868
13869    The tests never included anything from /lib, so this was not needed.
13870
13871 CMakeLists.txt | 1 -
13872 1 file changed, 1 deletion(-)
13873
13874commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f
13875Author: Jia Tan <jiat0218@gmail.com>
13876Date:   2023-09-24 22:10:41 +0800
13877
13878    Scripts: Change quoting style from `...' to '...'.
13879
13880 src/scripts/xzdiff.in | 2 +-
13881 src/scripts/xzgrep.in | 2 +-
13882 2 files changed, 2 insertions(+), 2 deletions(-)
13883
13884commit eaebdef4d4de3c088b0905f42626b74e0d23abf3
13885Author: Jia Tan <jiat0218@gmail.com>
13886Date:   2023-09-24 22:10:18 +0800
13887
13888    xz: Change quoting style from `...' to '...'.
13889
13890 src/xz/args.c    |  6 +++---
13891 src/xz/file_io.c |  2 +-
13892 src/xz/main.c    |  4 ++--
13893 src/xz/message.c | 14 +++++++-------
13894 src/xz/options.c |  2 +-
13895 src/xz/suffix.c  |  2 +-
13896 src/xz/util.c    |  6 +++---
13897 7 files changed, 18 insertions(+), 18 deletions(-)
13898
13899commit f6667702bf075a05fbe336dbf3576ad1a82ec645
13900Author: Jia Tan <jiat0218@gmail.com>
13901Date:   2023-09-24 22:09:47 +0800
13902
13903    liblzma: Change quoting style from `...' to '...'.
13904
13905    This was done for both internal and API headers.
13906
13907 src/liblzma/api/lzma/base.h            | 18 +++++++++---------
13908 src/liblzma/api/lzma/container.h       | 10 +++++-----
13909 src/liblzma/api/lzma/filter.h          |  6 +++---
13910 src/liblzma/api/lzma/index.h           |  8 ++++----
13911 src/liblzma/api/lzma/lzma12.h          |  2 +-
13912 src/liblzma/lz/lz_encoder.h            |  2 +-
13913 src/liblzma/rangecoder/range_decoder.h |  2 +-
13914 7 files changed, 24 insertions(+), 24 deletions(-)
13915
13916commit be012b8097a4eaee335b51357d6befa745f753ce
13917Author: Jia Tan <jiat0218@gmail.com>
13918Date:   2023-09-24 22:09:16 +0800
13919
13920    Build: Change quoting style from `...' to '...'.
13921
13922 configure.ac          | 18 +++++++++---------
13923 dos/config.h          |  6 +++---
13924 m4/getopt.m4          |  2 +-
13925 m4/tuklib_progname.m4 |  2 +-
13926 windows/build.bash    |  2 +-
13927 5 files changed, 15 insertions(+), 15 deletions(-)
13928
13929commit ce162db07f03495bd333696e66883c8f36abdc1e
13930Author: Jia Tan <jiat0218@gmail.com>
13931Date:   2023-09-24 22:05:02 +0800
13932
13933    Docs: Change quoting style from `...' to '...'.
13934
13935    These days the ` and ' do not look symmetric. This quoting style has
13936    been changed in various apps over the years including the GNU tools.
13937
13938 INSTALL                         |  6 +++---
13939 doc/examples/01_compress_easy.c |  2 +-
13940 doc/examples/11_file_info.c     | 16 ++++++++--------
13941 3 files changed, 12 insertions(+), 12 deletions(-)
13942
13943commit db17656721e43939bfa4ec13506e7c76f4b86da6
13944Author: Jia Tan <jiat0218@gmail.com>
13945Date:   2023-09-24 21:25:01 +0800
13946
13947    lib: Silence -Wsign-conversion in getopt.c.
13948
13949 lib/getopt.c | 6 +++---
13950 1 file changed, 3 insertions(+), 3 deletions(-)
13951
13952commit a6234f677d66888f435010bc0b67de6a32fefcf6
13953Author: Jia Tan <jiat0218@gmail.com>
13954Date:   2023-09-24 20:48:52 +0800
13955
13956    Build: Update getopt.m4 from Gnulib.
13957
13958    This file was modified from upstream since we do not need to replace
13959    getopt() and can avoid complexity and feature tests.
13960
13961 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------
13962 1 file changed, 39 insertions(+), 40 deletions(-)
13963
13964commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10
13965Author: Jia Tan <jiat0218@gmail.com>
13966Date:   2023-09-26 00:09:53 +0800
13967
13968    CMake: Add /lib to include path.
13969
13970 CMakeLists.txt | 5 +++++
13971 1 file changed, 5 insertions(+)
13972
13973commit 01804a0b4b64e0f33568e947e0579263808c59d3
13974Author: Jia Tan <jiat0218@gmail.com>
13975Date:   2023-09-24 20:36:34 +0800
13976
13977    CMake: Update libgnu target with new header files.
13978
13979 CMakeLists.txt | 5 +++++
13980 1 file changed, 5 insertions(+)
13981
13982commit d34558388fe1d8929f6478d61dc322eb4f2900af
13983Author: Jia Tan <jiat0218@gmail.com>
13984Date:   2023-09-23 00:47:52 +0800
13985
13986    lib: Update Makefile.am for new header files.
13987
13988 lib/Makefile.am | 12 +++++++++++-
13989 1 file changed, 11 insertions(+), 1 deletion(-)
13990
13991commit 52bf644bdf536e20fcc743b712cede135e05eec5
13992Author: Jia Tan <jiat0218@gmail.com>
13993Date:   2023-09-24 20:34:03 +0800
13994
13995    lib: Update getopt1.c from Gnulib.
13996
13997    The only difference was maintaining the conditional inclusion for
13998    config.h.
13999
14000 lib/getopt1.c | 56 ++++++++++++++++++++++----------------------------------
14001 1 file changed, 22 insertions(+), 34 deletions(-)
14002
14003commit 7e884c00d0093c38339f17fb1d280eec493f42ca
14004Author: Jia Tan <jiat0218@gmail.com>
14005Date:   2023-09-23 03:27:00 +0800
14006
14007    lib: Update getopt.in.h from Gnulib with modifications.
14008
14009    We can still avoid modifying the contents of this file during
14010    configuration to simplify the build systems. Gnulib added replacements
14011    for inclusions guards for Cygwin. Cygwin should not need getopt_long
14012    replacement so this feature can be omitted.
14013
14014    <unistd.h> is conditionally included to avoid MSVC since it is not
14015    available.
14016
14017    The definition for _GL_ARG_NONNULL was also copied into this file from
14018    Gnulib since this stage is usually done during gnulib-tool.
14019
14020 lib/getopt.in.h | 228 +++++++-------------------------------------------------
14021 1 file changed, 29 insertions(+), 199 deletions(-)
14022
14023commit cff05f82066ca3ce9425dafdb086325a8eef8de3
14024Author: Jia Tan <jiat0218@gmail.com>
14025Date:   2023-09-23 00:31:55 +0800
14026
14027    lib: Update getopt_int.h from Gnulib.
14028
14029 lib/getopt_int.h | 109 ++++++++++++++++++++++++-------------------------------
14030 1 file changed, 48 insertions(+), 61 deletions(-)
14031
14032commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024
14033Author: Jia Tan <jiat0218@gmail.com>
14034Date:   2023-09-23 00:27:23 +0800
14035
14036    lib: Update getopt.c from Gnulib with modifications.
14037
14038    The code maintains the prior modifications of conditionally including
14039    config.h and disabling NLS support.
14040
14041    _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED
14042    is only used for these two parameters so its simpler than having to
14043    define it.
14044
14045 lib/getopt.c | 1134 +++++++++++++++++++---------------------------------------
14046 1 file changed, 377 insertions(+), 757 deletions(-)
14047
14048commit 56b42be7287844db20b3a3bc1372c6ae8c040d63
14049Author: Jia Tan <jiat0218@gmail.com>
14050Date:   2023-09-23 00:18:56 +0800
14051
14052    lib: Add getopt-cdefs.h for getopt_long update.
14053
14054    This was modified slightly from Gnulib. In Gnulib, it expects the
14055    @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H
14056    on systems that have it and avoid copying another file into the build
14057    directory. Since we are not using gnulib-tool, copying extra files
14058    requires extra build system updates (and special handling with CMake) so
14059    we should avoid when possible.
14060
14061 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
14062 1 file changed, 70 insertions(+)
14063
14064commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196
14065Author: Jia Tan <jiat0218@gmail.com>
14066Date:   2023-09-23 00:15:25 +0800
14067
14068    lib: Copy new header files from Gnulib without modification.
14069
14070    The getopt related files have changed from Gnulib by splitting up
14071    getopt.in.h into more modular header files. We could have kept
14072    everything in just getopt.in.h, but this will help us continue to update
14073    in the future.
14074
14075 lib/getopt-core.h     | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++
14076 lib/getopt-ext.h      | 77 +++++++++++++++++++++++++++++++++++++++++
14077 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++
14078 lib/getopt-pfx-ext.h  | 70 +++++++++++++++++++++++++++++++++++++
14079 4 files changed, 309 insertions(+)
14080
14081commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93
14082Author: Lasse Collin <lasse.collin@tukaani.org>
14083Date:   2023-09-22 21:16:52 +0300
14084
14085    Windows: Update the version requirement comments from Win95 to W2k.
14086
14087 windows/README-Windows.txt | 10 ++++------
14088 windows/build.bash         |  6 +++---
14089 2 files changed, 7 insertions(+), 9 deletions(-)
14090
14091commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1
14092Author: Lasse Collin <lasse.collin@tukaani.org>
14093Date:   2023-09-22 21:12:54 +0300
14094
14095    tuklib_physmem: Comment out support for Windows versions older than 2000.
14096
14097 src/common/tuklib_physmem.c | 20 +++++++++-----------
14098 1 file changed, 9 insertions(+), 11 deletions(-)
14099
14100commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a
14101Author: Lasse Collin <lasse.collin@tukaani.org>
14102Date:   2023-09-24 16:32:32 +0300
14103
14104    sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO.
14105
14106 src/common/sysdefs.h | 10 +++++++++-
14107 1 file changed, 9 insertions(+), 1 deletion(-)
14108
14109commit 2a9929af0ab7e6c0ab725565034afe3293e51d71
14110Author: Lasse Collin <lasse.collin@tukaani.org>
14111Date:   2023-09-22 02:33:29 +0300
14112
14113    xz: Windows: Don't (de)compress to special files like "con" or "nul".
14114
14115    Before this commit, the following writes "foo" to the
14116    console and deletes the input file:
14117
14118        echo foo | xz > con_xz
14119        xz --suffix=_xz --decompress con_xz
14120
14121    It cannot happen without --suffix because names like con.xz
14122    are also special and so attempting to decompress con.xz
14123    (or compress con to con.xz) will already fail when opening
14124    the input file.
14125
14126    Similar thing is possible when compressing. The following
14127    writes to "nul" and the input file "n" is deleted.
14128
14129        echo foo | xz > n
14130        xz --suffix=ul n
14131
14132    Now xz checks if the destination is a special file before
14133    continuing. DOS/DJGPP version had a check for this but
14134    Windows (and OS/2) didn't.
14135
14136 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++-------
14137 1 file changed, 28 insertions(+), 7 deletions(-)
14138
14139commit 01311b81f03cce1c0ce847a3d556f84dbd439343
14140Author: Lasse Collin <lasse.collin@tukaani.org>
14141Date:   2023-09-21 20:42:52 +0300
14142
14143    CMake: Wrap two overlong lines that are possible to wrap.
14144
14145 CMakeLists.txt | 6 ++++--
14146 1 file changed, 4 insertions(+), 2 deletions(-)
14147
14148commit 152d0771ddd0cffcac9042ad1a66f110d228eee2
14149Author: Lasse Collin <lasse.collin@tukaani.org>
14150Date:   2023-09-21 20:36:31 +0300
14151
14152    CMake: Add a comment about threads on Cygwin.
14153
14154 CMakeLists.txt | 1 +
14155 1 file changed, 1 insertion(+)
14156
14157commit 6df988cceffaa3100b428ed816fad334935b27bf
14158Author: Lasse Collin <lasse.collin@tukaani.org>
14159Date:   2023-09-12 23:53:25 +0300
14160
14161    MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt.
14162
14163    CMake is now the preferred build file generator when building
14164    with MSVC.
14165
14166 windows/INSTALL-MSVC.txt           |  37 ++--
14167 windows/vs2013/config.h            | 157 ---------------
14168 windows/vs2013/liblzma.vcxproj     | 363 ---------------------------------
14169 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------
14170 windows/vs2013/xz_win.sln          |  48 -----
14171 windows/vs2017/config.h            | 157 ---------------
14172 windows/vs2017/liblzma.vcxproj     | 363 ---------------------------------
14173 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------
14174 windows/vs2017/xz_win.sln          |  48 -----
14175 windows/vs2019/config.h            | 157 ---------------
14176 windows/vs2019/liblzma.vcxproj     | 364 ---------------------------------
14177 windows/vs2019/liblzma_dll.vcxproj | 399 -------------------------------------
14178 windows/vs2019/xz_win.sln          |  51 -----
14179 13 files changed, 12 insertions(+), 2928 deletions(-)
14180
14181commit edd563daf0da1d00018684614803c77ab62efcd6
14182Author: Lasse Collin <lasse.collin@tukaani.org>
14183Date:   2023-09-21 19:17:40 +0300
14184
14185    CMake: Require VS2015 or later for building xzdec.
14186
14187    xzdec might build with VS2013 but it hasn't been tested.
14188    It was never supported before and VS2013 is old anyway
14189    so for simplicity only liblzma is supported with VS2013.
14190
14191 CMakeLists.txt | 2 +-
14192 1 file changed, 1 insertion(+), 1 deletion(-)
14193
14194commit daea64d158a7151ca6c255a0e4554c6d521cd589
14195Author: Lasse Collin <lasse.collin@tukaani.org>
14196Date:   2023-09-12 23:43:49 +0300
14197
14198    CMake: Allow building xz with Visual Studio 2015 and later.
14199
14200    Building the command line tools xz and xzdec with the combination
14201    of CMake + Visual Studio 2015/2017/2019/2022 works now.
14202
14203    VS2013 update 2 should still be able to build liblzma.
14204    VS2013 cannot build the xz command line tool because xz
14205    needs snprintf() that roughly conforms to C99.
14206    VS2013 is old and no extra code will be added to support it.
14207
14208    Thanks to Kelvin Lee and Jia Tan for testing.
14209
14210 CMakeLists.txt | 2 +-
14211 1 file changed, 1 insertion(+), 1 deletion(-)
14212
14213commit 8c2d197c940d246849b2ec48109bb22e54036927
14214Author: Lasse Collin <lasse.collin@tukaani.org>
14215Date:   2023-09-12 23:34:31 +0300
14216
14217    MSVC: #define inline and restrict only when needed.
14218
14219    This also drops the check for _WIN32 as that shouldn't be needed.
14220
14221 src/common/sysdefs.h | 13 ++++++++-----
14222 1 file changed, 8 insertions(+), 5 deletions(-)
14223
14224commit af66cd585902045e5689a0418103ec81f19f1d0a
14225Author: Lasse Collin <lasse.collin@tukaani.org>
14226Date:   2023-09-12 22:16:56 +0300
14227
14228    CMake: Add support for replacement getopt_long (lib/getopt*).
14229
14230    Thanks to Jia Tan for the initial work. I added the libgnu target
14231    and made a few related minor edits.
14232
14233 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++-------
14234 1 file changed, 47 insertions(+), 7 deletions(-)
14235
14236commit e3288fdb45c580cb849f6799cf419c4922004ae5
14237Author: Lasse Collin <lasse.collin@tukaani.org>
14238Date:   2023-09-12 21:12:34 +0300
14239
14240    CMake: Bump maximum policy version to 3.27.
14241
14242    There are several new policies. CMP0149 may affect the Windows SDK
14243    version that CMake will choose by default. The new behavior is more
14244    predictable, always choosing the latest SDK version by default.
14245
14246    The other new policies shouldn't affect this package.
14247
14248 CMakeLists.txt | 2 +-
14249 1 file changed, 1 insertion(+), 1 deletion(-)
14250
14251commit aff1b479c7b168652bd20305ceed4317d5db6661
14252Author: Lasse Collin <lasse.collin@tukaani.org>
14253Date:   2023-09-12 20:55:10 +0300
14254
14255    lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined.
14256
14257    The CMake-based build doesn't use config.h.
14258
14259    Up-to-date getopt_long in Gnulib is LGPLv2 so at some
14260    point it could be included in XZ Utils too but for now
14261    this commit is enough to make CMake-based build possible.
14262
14263 lib/getopt.c  | 4 +++-
14264 lib/getopt1.c | 4 +++-
14265 2 files changed, 6 insertions(+), 2 deletions(-)
14266
14267commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5
14268Author: Lasse Collin <lasse.collin@tukaani.org>
14269Date:   2023-09-08 19:08:57 +0300
14270
14271    Doxygen: Add more C macro names to PREDEFINED.
14272
14273 doxygen/Doxyfile | 7 +++++--
14274 1 file changed, 5 insertions(+), 2 deletions(-)
14275
14276commit ee7709bae53637e1765ce142ef102914f1423cb5
14277Author: Lasse Collin <lasse.collin@tukaani.org>
14278Date:   2023-09-11 18:47:26 +0300
14279
14280    liblzma: Move a few __attribute__ uses in function declarations.
14281
14282    The API headers have many attributes but these were left
14283    as is for now.
14284
14285 src/liblzma/common/common.c    | 6 ++++--
14286 src/liblzma/common/common.h    | 8 ++++----
14287 src/liblzma/common/memcmplen.h | 3 ++-
14288 3 files changed, 10 insertions(+), 7 deletions(-)
14289
14290commit 217958d88713b5dc73d366d24dd64b2b311b86fe
14291Author: Lasse Collin <lasse.collin@tukaani.org>
14292Date:   2023-09-11 19:03:35 +0300
14293
14294    xz, xzdec, lzmainfo: Use tuklib_attr_noreturn.
14295
14296    For compatibility with C23's [[noreturn]], tuklib_attr_noreturn
14297    must be at the beginning of declaration (before "extern" or
14298    "static", and even before any GNU C's __attribute__).
14299
14300    This commit also moves all other function attributes to
14301    the beginning of function declarations. "extern" is kept
14302    at the beginning of a line so the attributes are listed on
14303    separate lines before "extern" or "static".
14304
14305 src/lzmainfo/lzmainfo.c |  6 ++++--
14306 src/xz/coder.c          |  3 ++-
14307 src/xz/hardware.h       |  3 ++-
14308 src/xz/message.h        | 30 +++++++++++++++++-------------
14309 src/xz/options.c        |  3 ++-
14310 src/xz/util.h           |  8 ++++----
14311 src/xzdec/xzdec.c       |  9 ++++++---
14312 7 files changed, 37 insertions(+), 25 deletions(-)
14313
14314commit 18a66fbac031c98f9c2077fc88846e4d07849197
14315Author: Lasse Collin <lasse.collin@tukaani.org>
14316Date:   2023-09-11 18:53:31 +0300
14317
14318    Remove incorrect uses of __attribute__((__malloc__)).
14319
14320    xrealloc() is obviously incorrect, modern GCC docs even
14321    mention realloc() as an example where this attribute
14322    cannot be used.
14323
14324    liblzma's lzma_alloc() and lzma_alloc_zero() would be
14325    correct uses most of the time but custom allocators
14326    may use a memory pool or otherwise hold the pointer
14327    so aliasing issues could happen in theory.
14328
14329    The xstrdup() case likely was correct but I removed it anyway.
14330    Now there are no __malloc__ attributes left in the code.
14331    The allocations aren't in hot paths so this should make
14332    no practical difference.
14333
14334 src/liblzma/common/common.c | 4 ++--
14335 src/liblzma/common/common.h | 4 ++--
14336 src/xz/util.h               | 4 ++--
14337 3 files changed, 6 insertions(+), 6 deletions(-)
14338
14339commit 74b0e900c92d5b222b36f474f1efa431f8e262f7
14340Author: Lasse Collin <lasse.collin@tukaani.org>
14341Date:   2023-09-08 18:41:25 +0300
14342
14343    Build: Omit -Wc99-c11-compat since it warns about _Noreturn.
14344
14345 configure.ac | 1 -
14346 1 file changed, 1 deletion(-)
14347
14348commit 90c94dddfd57b7d744bfad64c54e10d15778144b
14349Author: Lasse Collin <lasse.collin@tukaani.org>
14350Date:   2023-09-08 18:19:26 +0300
14351
14352    tuklib: Update tuklib_attr_noreturn for C11/C17 and C23.
14353
14354    This makes no difference for GCC or Clang as they support
14355    GNU C's __attribute__((__noreturn__)) but this helps with MSVC:
14356
14357      - VS 2019 version 16.7 and later support _Noreturn if the
14358        options /std:c11 or /std:c17 are used. This gets handled
14359        with the check for __STDC_VERSION__ >= 201112.
14360
14361      - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used.
14362
14363    C23 will deprecate _Noreturn (and <stdnoreturn.h>)
14364    for [[noreturn]]. This commit anticipates that but
14365    the final __STDC_VERSION__ value isn't known yet.
14366
14367 src/common/tuklib_common.h | 22 +++++++++++++++++++++-
14368 src/common/tuklib_exit.h   |  4 ++--
14369 2 files changed, 23 insertions(+), 3 deletions(-)
14370
14371commit 189f72581329ab281ad6af37f60135910cb1b146
14372Author: Lasse Collin <lasse.collin@tukaani.org>
14373Date:   2023-09-11 17:22:44 +0300
14374
14375    Update THANKS.
14376
14377 THANKS | 1 +
14378 1 file changed, 1 insertion(+)
14379
14380commit 79334e7f20f2bf9e0de095835b48868f1238f584
14381Author: Lasse Collin <lasse.collin@tukaani.org>
14382Date:   2023-09-05 22:42:10 +0300
14383
14384    MSVC: xz: Make file_io.c and file_io.h compatible with MSVC.
14385
14386    Thanks to Kelvin Lee for the original patches
14387    and testing the modifications I made.
14388
14389 src/xz/file_io.c | 26 ++++++++++++++++++++++++++
14390 src/xz/file_io.h | 10 ++++++++++
14391 2 files changed, 36 insertions(+)
14392
14393commit c660b8d78b7bda43b12b285550d8c70e8ccec698
14394Author: Lasse Collin <lasse.collin@tukaani.org>
14395Date:   2023-09-05 21:33:35 +0300
14396
14397    MSVC: xz: Use GetTickCount64() to implement mytime_now().
14398
14399    It's available since Windows Vista.
14400
14401 src/xz/mytime.c | 11 +++++++++--
14402 1 file changed, 9 insertions(+), 2 deletions(-)
14403
14404commit 5c6f892d411670e3060f4bc309402617a209e57c
14405Author: Kelvin Lee <kiyolee@gmail.com>
14406Date:   2023-09-05 15:05:09 +0300
14407
14408    MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c.
14409
14410 src/xz/suffix.c | 10 ++++++++--
14411 1 file changed, 8 insertions(+), 2 deletions(-)
14412
14413commit e241051f50044259d174e8b4633dd9a1c4478408
14414Author: Kelvin Lee <kiyolee@gmail.com>
14415Date:   2023-09-05 15:01:10 +0300
14416
14417    MSVC: xz: Use _isatty() from <io.h> to implement isatty().
14418
14419 src/xz/message.c | 5 +++++
14420 src/xz/util.c    | 5 +++++
14421 2 files changed, 10 insertions(+)
14422
14423commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
14424Author: Kelvin Lee <kiyolee@gmail.com>
14425Date:   2023-09-05 15:10:31 +0300
14426
14427    MSVC: xz: Use _fileno() instead of fileno().
14428
14429 src/xz/private.h | 4 ++++
14430 1 file changed, 4 insertions(+)
14431
14432commit c4edd367678e6a38c42b149856159bf417da7fe1
14433Author: Kelvin Lee <kiyolee@gmail.com>
14434Date:   2023-09-05 15:00:07 +0300
14435
14436    MSVC: xzdec: Use _fileno and _setmode.
14437
14438 src/xzdec/xzdec.c | 4 ++++
14439 1 file changed, 4 insertions(+)
14440
14441commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0
14442Author: Kelvin Lee <kiyolee@gmail.com>
14443Date:   2023-09-05 14:37:50 +0300
14444
14445    MSVC: Don't #include <unistd.h>.
14446
14447 lib/getopt.c      | 4 +++-
14448 lib/getopt.in.h   | 4 +++-
14449 src/xz/private.h  | 5 ++++-
14450 src/xzdec/xzdec.c | 5 ++++-
14451 4 files changed, 14 insertions(+), 4 deletions(-)
14452
14453commit adef92f23563a2cc088b31ddee9040ecc96bc996
14454Author: Lasse Collin <lasse.collin@tukaani.org>
14455Date:   2023-09-19 14:03:45 +0300
14456
14457    Update THANKS.
14458
14459 THANKS | 1 +
14460 1 file changed, 1 insertion(+)
14461
14462commit 953e775941a25bfcfa353f802b13e66acb1edf2c
14463Author: Jia Tan <jiat0218@gmail.com>
14464Date:   2023-09-14 21:13:23 +0800
14465
14466    CI: Enable CLMUL in address sanitization test.
14467
14468    The crc64_clmul() function should be ignored by the address sanitizer
14469    now so these builds should still pass.
14470
14471 .github/workflows/ci.yml | 12 ++++--------
14472 1 file changed, 4 insertions(+), 8 deletions(-)
14473
14474commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77
14475Author: Lasse Collin <lasse.collin@tukaani.org>
14476Date:   2023-09-14 16:35:46 +0300
14477
14478    Update THANKS.
14479
14480 THANKS | 1 +
14481 1 file changed, 1 insertion(+)
14482
14483commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
14484Author: Lasse Collin <lasse.collin@tukaani.org>
14485Date:   2023-09-14 16:34:07 +0300
14486
14487    liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)).
14488
14489    Thanks to Agostino Sarubbo.
14490    Fixes: https://github.com/tukaani-project/xz/issues/62
14491
14492 src/liblzma/check/crc64_fast.c | 8 ++++++++
14493 1 file changed, 8 insertions(+)
14494
14495commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08
14496Author: Jia Tan <jiat0218@gmail.com>
14497Date:   2023-09-12 22:36:12 +0800
14498
14499    CMake: Fix time.h checks not running on second CMake run.
14500
14501    If CMake was configured more than once, HAVE_CLOCK_GETTIME and
14502    HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check
14503    for librt being needed to provide HAVE_CLOCK_GETTIME was also
14504    simplified.
14505
14506 CMakeLists.txt | 18 ++++++++++--------
14507 1 file changed, 10 insertions(+), 8 deletions(-)
14508
14509commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6
14510Author: Jia Tan <jiat0218@gmail.com>
14511Date:   2023-09-12 22:34:06 +0800
14512
14513    CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC.
14514
14515    If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always
14516    added as a compile definition even if the check for it failed.
14517
14518 CMakeLists.txt | 8 +++-----
14519 1 file changed, 3 insertions(+), 5 deletions(-)
14520
14521commit eccf12866527b8d24c7d7f92f755142be8ef9b11
14522Author: Lasse Collin <lasse.collin@tukaani.org>
14523Date:   2023-08-31 19:50:05 +0300
14524
14525    xz: Refactor thousand separator detection and disable it on MSVC.
14526
14527    Now the two variations of the format strings are created with
14528    a macro, and the whole detection code can be easily disabled
14529    on platforms where thousand separator formatting is known to
14530    not work (MSVC has no support, and on DJGPP 2.05 it can have
14531    problems in some cases).
14532
14533 src/xz/util.c | 89 ++++++++++++++++++++++++++++++-----------------------------
14534 1 file changed, 45 insertions(+), 44 deletions(-)
14535
14536commit f7093cd9d130477c234b40aeda613964171f8f21
14537Author: Lasse Collin <lasse.collin@tukaani.org>
14538Date:   2023-08-31 18:14:43 +0300
14539
14540    xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX.
14541
14542    SSIZE_MAX isn't readily available on MSVC. Removing it means
14543    that there is one thing less to worry when porting to MSVC.
14544
14545 src/xz/file_io.c | 5 ++---
14546 src/xz/file_io.h | 4 ++--
14547 2 files changed, 4 insertions(+), 5 deletions(-)
14548
14549commit 74c3449d8b816a724b12ebce7417e00fb597309a
14550Author: Jia Tan <jiat0218@gmail.com>
14551Date:   2023-08-28 23:14:45 +0800
14552
14553    Tests: Improve invalid unpadded size check in test_lzma_index_append().
14554
14555    This check was extended to test the code added to fix a failing assert
14556    in ae5c07b22a6b3766b84f409f1b6b5c100469068a.
14557
14558 tests/test_index.c | 26 +++++++++++++++++++++++---
14559 1 file changed, 23 insertions(+), 3 deletions(-)
14560
14561commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336
14562Author: Jia Tan <jiat0218@gmail.com>
14563Date:   2023-08-28 21:54:41 +0800
14564
14565    Tests: Improve comments in test_index.c.
14566
14567 tests/test_index.c | 6 +++---
14568 1 file changed, 3 insertions(+), 3 deletions(-)
14569
14570commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b
14571Author: Jia Tan <jiat0218@gmail.com>
14572Date:   2023-08-28 21:52:54 +0800
14573
14574    Update THANKS.
14575
14576 THANKS | 1 +
14577 1 file changed, 1 insertion(+)
14578
14579commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
14580Author: Jia Tan <jiat0218@gmail.com>
14581Date:   2023-08-28 21:50:16 +0800
14582
14583    liblzma: Update assert in vli_ceil4().
14584
14585    The argument to vli_ceil4() should always guarantee the return value
14586    is also a valid lzma_vli. Thus the highest three valid lzma_vli values
14587    are invalid arguments. All uses of the function ensure this so the
14588    assert is updated to match this.
14589
14590 src/liblzma/common/index.h | 2 +-
14591 1 file changed, 1 insertion(+), 1 deletion(-)
14592
14593commit ae5c07b22a6b3766b84f409f1b6b5c100469068a
14594Author: Jia Tan <jiat0218@gmail.com>
14595Date:   2023-08-28 21:31:25 +0800
14596
14597    liblzma: Add overflow check for Unpadded size in lzma_index_append().
14598
14599    This was not a security bug since there was no path to overflow
14600    UINT64_MAX in lzma_index_append() or when it calls index_file_size().
14601    The bug was discovered by a failing assert() in vli_ceil4() when called
14602    from index_file_size() when unpadded_sum (the sum of the compressed size
14603    of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX.
14604
14605    Previously, the unpadded_size parameter was checked to be not greater
14606    than UNPADDED_SIZE_MAX, but no check was done once compressed_base was
14607    added.
14608
14609    This could not have caused an integer overflow in index_file_size() when
14610    called by lzma_index_append(). The calculation for file_size breaks down
14611    into the sum of:
14612
14613    - Compressed base from all previous Streams
14614    - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and
14615      footer)
14616    - stream_padding (can be set by lzma_index_stream_padding())
14617    - Compressed base from the current Stream
14618    - Unpadded size (parameter to lzma_index_append())
14619
14620    The sum of everything except for Unpadded size must be less than
14621    LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions
14622    that can set these values including lzma_index_stream_padding(),
14623    lzma_index_append(), and lzma_index_cat(). The maximum value for
14624    Unpadded size is enforced by lzma_index_append() to be less than or
14625    equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since
14626    LZMA_VLI_MAX is half of UINT64_MAX.
14627
14628    Thanks to Joona Kannisto for reporting this.
14629
14630 src/liblzma/common/index.c | 6 ++++++
14631 1 file changed, 6 insertions(+)
14632
14633commit 1057765aaabfe0f1397b8094531846655376ae38
14634Author: Jia Tan <jiat0218@gmail.com>
14635Date:   2023-08-28 22:18:29 +0800
14636
14637    Translations: Update the Esperanto translation.
14638
14639 po/eo.po | 4 ++--
14640 1 file changed, 2 insertions(+), 2 deletions(-)
14641
14642commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856
14643Author: Jia Tan <jiat0218@gmail.com>
14644Date:   2023-08-26 20:10:23 +0800
14645
14646    Translations: Update the Esperanto translation.
14647
14648 po/eo.po | 47 +++++++++++++++++++++++++++++------------------
14649 1 file changed, 29 insertions(+), 18 deletions(-)
14650
14651commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3
14652Author: Jia Tan <jiat0218@gmail.com>
14653Date:   2023-08-09 20:55:36 +0800
14654
14655    Docs: Update INSTALL for --enable-threads method win95.
14656
14657    The Autotools build allows win95 threads and --enable-small together now
14658    if the compiler supports __attribute__((__constructor__)).
14659
14660 INSTALL | 6 ++++--
14661 1 file changed, 4 insertions(+), 2 deletions(-)
14662
14663commit 356ad5b26b4196f085ce3afa1869154ca81faad8
14664Author: Jia Tan <jiat0218@gmail.com>
14665Date:   2023-08-09 20:54:15 +0800
14666
14667    CMake: Conditionally allow win95 threads and --enable-small.
14668
14669 CMakeLists.txt | 28 ++++++++++++++++++++--------
14670 1 file changed, 20 insertions(+), 8 deletions(-)
14671
14672commit de574404c4c2f87aca049f232c38526e3ce092aa
14673Author: Jia Tan <jiat0218@gmail.com>
14674Date:   2023-08-09 20:35:16 +0800
14675
14676    Build: Conditionally allow win95 threads and --enable-small.
14677
14678    When the compiler supports __attribute__((__constructor__))
14679    mythread_once() is never used, even with --enable-small. A configuration
14680    with win95 threads and --enable-small will compile and be thread safe so
14681    it can be allowed.
14682
14683    This isn't a very common configuration since MSVC does not support
14684    __attribute__((__constructor__)), but MINGW32 and CLANG32 environments
14685    for MSYS2 can use win95 threads and have
14686    __attribute__((__constructor__)) support.
14687
14688 configure.ac | 21 +++++++++++++--------
14689 1 file changed, 13 insertions(+), 8 deletions(-)
14690
14691commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a
14692Author: Jamaika1 <lukaszcz18@wp.pl>
14693Date:   2023-08-08 14:07:59 +0200
14694
14695    mythread.h: Fix typo error in Vista threads mythread_once().
14696
14697    The "once_" variable was accidentally referred to as just "once". This
14698    prevented building with Vista threads when
14699    HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined.
14700
14701 src/common/mythread.h | 2 +-
14702 1 file changed, 1 insertion(+), 1 deletion(-)
14703
14704commit 80cb961e5380a3878246d41341ff91378ca59e05
14705Author: Jia Tan <jiat0218@gmail.com>
14706Date:   2023-08-04 22:17:11 +0800
14707
14708    codespell: Add .codespellrc to set default options.
14709
14710    The .codespellrc allows setting default options to avoid false positive
14711    matches, set additional dictionaries, etc. For now, codespell can be
14712    used locally before committing doc and comment changes.
14713
14714    It should help prevent silly errors and fix up commits in the future.
14715
14716 .codespellrc | 24 ++++++++++++++++++++++++
14717 1 file changed, 24 insertions(+)
14718
14719commit cd678a6077358935249b64a4a16fe8d17434f9c9
14720Author: Jia Tan <jiat0218@gmail.com>
14721Date:   2023-08-03 20:10:21 +0800
14722
14723    Tests: Style fixes to test_lzip_decoder.c.
14724
14725 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------
14726 1 file changed, 24 insertions(+), 12 deletions(-)
14727
14728commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81
14729Author: Jia Tan <jiat0218@gmail.com>
14730Date:   2023-08-03 15:56:20 +0800
14731
14732    Translations: Update the Chinese (simplified) translation.
14733
14734 po/zh_CN.po | 2 +-
14735 1 file changed, 1 insertion(+), 1 deletion(-)
14736
14737commit 16068f6c30b888cdb873f6285af941d00f95741d
14738Author: Lasse Collin <lasse.collin@tukaani.org>
14739Date:   2023-08-02 17:15:12 +0300
14740
14741    xz: Omit an empty paragraph on the man page.
14742
14743 src/xz/xz.1 | 1 -
14744 1 file changed, 1 deletion(-)
14745
14746commit 9ae4371b5106189486e850ce777e40f7b6021c0b
14747Author: Jia Tan <jiat0218@gmail.com>
14748Date:   2023-08-02 20:30:07 +0800
14749
14750    Add NEWS for 5.4.4.
14751
14752 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++
14753 1 file changed, 43 insertions(+)
14754
14755commit e8c2203b2c76466d8d3387c5212b46151de8e605
14756Author: Lasse Collin <lasse.collin@tukaani.org>
14757Date:   2023-08-02 15:19:43 +0300
14758
14759    build-aux/manconv.sh: Fix US-ASCII and UTF-8 output.
14760
14761    groff defaults to SGR escapes. Using -P-c passes -c to grotty
14762    which restores the old behavior. Perhaps there is a better way to
14763    get pure plain text output but this works for now.
14764
14765 build-aux/manconv.sh | 4 ++--
14766 1 file changed, 2 insertions(+), 2 deletions(-)
14767
14768commit 9a706167b0d903d92fd134895acb4bc6a5e3e688
14769Author: Lasse Collin <lasse.collin@tukaani.org>
14770Date:   2023-08-01 19:10:43 +0300
14771
14772    Update THANKS.
14773
14774 THANKS | 1 +
14775 1 file changed, 1 insertion(+)
14776
14777commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
14778Author: Lasse Collin <lasse.collin@tukaani.org>
14779Date:   2023-08-01 18:22:24 +0300
14780
14781    Update THANKS.
14782
14783 THANKS | 1 +
14784 1 file changed, 1 insertion(+)
14785
14786commit 81db3b889830132334d1f2129bdc93177ac2ca7d
14787Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com>
14788Date:   2023-08-01 18:17:17 +0300
14789
14790    mythread.h: Disable signal functions in builds targeting Wasm + WASI.
14791
14792    signal.h in WASI SDK doesn't currently provide sigprocmask()
14793    or sigset_t. liblzma doesn't need them so this change makes
14794    liblzma and xzdec build against WASI SDK. xz doesn't build yet
14795    and the tests don't either as tuktest needs setjmp() which
14796    isn't (yet?) implemented in WASI SDK.
14797
14798    Closes: https://github.com/tukaani-project/xz/pull/57
14799    See also: https://github.com/tukaani-project/xz/pull/56
14800
14801    (The original commit was edited a little by Lasse Collin.)
14802
14803 src/common/mythread.h | 2 +-
14804 1 file changed, 1 insertion(+), 1 deletion(-)
14805
14806commit 71c638c611324e606d324c8189fef8fe79db6991
14807Author: Jia Tan <jiat0218@gmail.com>
14808Date:   2023-08-01 21:58:51 +0800
14809
14810    Add newline to end of .gitignore.
14811
14812    Newline was accidentally removed in commit
14813    01cbb7f023ee7fda8ddde04bd17cf7d3c2418706.
14814
14815 .gitignore | 2 +-
14816 1 file changed, 1 insertion(+), 1 deletion(-)
14817
14818commit 42df7c7aa1cca385e509eb33c65136e61890f0bf
14819Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
14820Date:   2023-07-31 14:02:21 +0200
14821
14822    Docs: Fix typos found by codespell
14823
14824 CMakeLists.txt                            | 4 ++--
14825 NEWS                                      | 2 +-
14826 configure.ac                              | 2 +-
14827 src/liblzma/api/lzma/container.h          | 4 ++--
14828 src/liblzma/api/lzma/filter.h             | 2 +-
14829 src/liblzma/api/lzma/lzma12.h             | 4 ++--
14830 src/liblzma/common/block_buffer_encoder.c | 2 +-
14831 src/liblzma/common/common.h               | 2 +-
14832 src/liblzma/common/file_info.c            | 2 +-
14833 src/liblzma/common/lzip_decoder.c         | 2 +-
14834 src/liblzma/common/stream_decoder_mt.c    | 8 ++++----
14835 src/liblzma/common/string_conversion.c    | 6 +++---
14836 src/liblzma/lz/lz_encoder.h               | 2 +-
14837 src/liblzma/lzma/lzma_encoder.c           | 4 ++--
14838 src/xz/hardware.c                         | 4 ++--
14839 tests/test_filter_flags.c                 | 4 ++--
14840 tests/test_index.c                        | 2 +-
14841 tests/test_vli.c                          | 2 +-
14842 18 files changed, 29 insertions(+), 29 deletions(-)
14843
14844commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706
14845Author: Jia Tan <jiat0218@gmail.com>
14846Date:   2023-07-26 20:26:23 +0800
14847
14848    Update .gitignore.
14849
14850 .gitignore | 4 ++++
14851 1 file changed, 4 insertions(+)
14852
14853commit f97a1afd564c48ad9cb94682e10972a72e11fa08
14854Author: Jia Tan <jiat0218@gmail.com>
14855Date:   2023-07-28 22:03:08 +0800
14856
14857    CMake: Conditionally allow the creation of broken symlinks.
14858
14859    The CMake build will try to create broken symlinks on Unix and Unix-like
14860    platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create
14861    broken symlinks. The value of the CYGWIN or MSYS environment variables
14862    determine if broken symlinks are valid.
14863
14864    The default for MSYS2 does not allow for broken symlinks, so the CMake
14865    build has been broken for MSYS2 since commit
14866    80a1a8bb838842a2be343bd88ad1462c21c5e2c9.
14867
14868 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
14869 1 file changed, 75 insertions(+), 7 deletions(-)
14870
14871commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f
14872Author: Jia Tan <jiat0218@gmail.com>
14873Date:   2023-07-28 21:56:48 +0800
14874
14875    CI: Fix windows-ci dependency installation.
14876
14877    All of the MSYS2 environments need make, and it does not come with the
14878    toolchain package. The toolchain package will install the needed
14879    compiler toolchains since without this package CMake cannot properly
14880    generate the Makefiles.
14881
14882 .github/workflows/windows-ci.yml | 6 +++---
14883 1 file changed, 3 insertions(+), 3 deletions(-)
14884
14885commit a048f472cd9a2245265cb292853cbbcdd4f02001
14886Author: Jia Tan <jiat0218@gmail.com>
14887Date:   2023-07-28 21:54:22 +0800
14888
14889    CI: Update ci_build.sh CMake to always make Unix Makefiles.
14890
14891    The default for many of the MSYS2 environments is for CMake to create
14892    Ninja build files. This would complicate the build script since we would
14893    need a different command to run the tests. Its simpler to always use
14894    Unix Makefiles so that "make test" is always a usable target for
14895    testing.
14896
14897 build-aux/ci_build.sh | 4 ++--
14898 1 file changed, 2 insertions(+), 2 deletions(-)
14899
14900commit 7870396a0ca945473aa0d1d790f4cbef456610bd
14901Author: Jia Tan <jiat0218@gmail.com>
14902Date:   2023-07-25 20:17:23 +0800
14903
14904    CI: Test CMake builds and test framework with MSYS2.
14905
14906 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------
14907 1 file changed, 20 insertions(+), 12 deletions(-)
14908
14909commit 6497d1f8875cb7e3007f714336cc09c06fed235b
14910Author: Jia Tan <jiat0218@gmail.com>
14911Date:   2023-07-25 20:14:53 +0800
14912
14913    CI: Windows CI rename system matrix variable -> msys2_env.
14914
14915    Calling the MSYS2 environment "system" was a bit vague and should be
14916    more specific.
14917
14918 .github/workflows/windows-ci.yml | 15 +++++----------
14919 1 file changed, 5 insertions(+), 10 deletions(-)
14920
14921commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd
14922Author: Jia Tan <jiat0218@gmail.com>
14923Date:   2023-07-24 23:11:45 +0800
14924
14925    CI: Add Clang64 MSYS2 environment to Windows CI.
14926
14927 .github/workflows/windows-ci.yml | 1 +
14928 1 file changed, 1 insertion(+)
14929
14930commit d9166b52cf3458a4da3eb92224837ca8fc208d79
14931Author: Jia Tan <jiat0218@gmail.com>
14932Date:   2023-07-24 21:43:44 +0800
14933
14934    liblzma: Prevent an empty translation unit in Windows builds.
14935
14936    To workaround Automake lacking Windows resource compiler support, an
14937    empty source file is compiled to overwrite the resource files for static
14938    library builds. Translation units without an external declaration are
14939    not allowed by the C standard and result in a warning when used with
14940    -Wempty-translation-unit (Clang) or -pedantic (GCC).
14941
14942 src/liblzma/Makefile.am | 6 +++++-
14943 1 file changed, 5 insertions(+), 1 deletion(-)
14944
14945commit db5019d691f980d622fb56fdcf383af2c3519c98
14946Author: Jia Tan <jiat0218@gmail.com>
14947Date:   2023-07-22 18:37:56 +0800
14948
14949    Translations: Update the Vietnamese translation.
14950
14951 po/vi.po | 45 ++++++++++++++++++++++++++++-----------------
14952 1 file changed, 28 insertions(+), 17 deletions(-)
14953
14954commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5
14955Author: Jia Tan <jiat0218@gmail.com>
14956Date:   2023-07-22 14:55:42 +0800
14957
14958    CI: Add Windows runner for Autotools builds with MSYS2.
14959
14960    Only a subset of the tests run by the Linux and MacOS Autotools builds
14961    are run. The most interesting tests are the ones that disable threads,
14962    encoders, and decoders.
14963
14964    The Windows runner will only be run manually since these tests will
14965    likely take much longer than the Linux and MacOS runners. This runner
14966    should be used before merging any large features and before releases.
14967
14968    Currently the clang64 environment fails to due to a warning and
14969    -Werror is enabled for the CI tests. This is still an early version
14970    since the CMake build can be done for MSVC and optionally each of the
14971    MSYS2 environments. GitHub does not allow manually running the CI tests
14972    unless the workflow is checked on the default branch so checking in a
14973    minimum version is a good idea.
14974
14975    Thanks to Arthur S for the original proposing the original patch.
14976
14977    Closes: https://github.com/tukaani-project/xz/pull/34
14978
14979 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++
14980 1 file changed, 119 insertions(+)
14981
14982commit 556536a3525df9e5ed78b8c7057991cfa9edfac8
14983Author: Jia Tan <jiat0218@gmail.com>
14984Date:   2023-07-21 22:11:01 +0800
14985
14986    CI: Add argument to ci_build.sh to pass flags to autogen.sh.
14987
14988 build-aux/ci_build.sh | 9 +++++++--
14989 1 file changed, 7 insertions(+), 2 deletions(-)
14990
14991commit 39a32d36fc465c4e70f13192eea380e518ba6e8a
14992Author: Jia Tan <jiat0218@gmail.com>
14993Date:   2023-07-21 18:05:44 +0800
14994
14995    Tests: Skip .lz files in test_files.sh if not configured.
14996
14997    Previously if the lzip decoder was not configured then test_files.sh
14998    would pass the lzip tests instead of skipping them.
14999
15000 tests/test_files.sh | 2 +-
15001 1 file changed, 1 insertion(+), 1 deletion(-)
15002
15003commit 194d12724b30fe42789d12a0184f9d412c449347
15004Author: Jia Tan <jiat0218@gmail.com>
15005Date:   2023-07-20 22:11:13 +0800
15006
15007    Tests: Add ARM64 filter test to test_compress.sh.
15008
15009 tests/test_compress.sh | 1 +
15010 1 file changed, 1 insertion(+)
15011
15012commit d850365c444368102c69beaddf849ed463c33467
15013Author: Jia Tan <jiat0218@gmail.com>
15014Date:   2023-07-20 20:30:05 +0800
15015
15016    Translations: Update the Croatian translation.
15017
15018 po/hr.po | 49 ++++++++++++++++++++++++++++++-------------------
15019 1 file changed, 30 insertions(+), 19 deletions(-)
15020
15021commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe
15022Author: Jia Tan <jiat0218@gmail.com>
15023Date:   2023-07-20 20:28:32 +0800
15024
15025    Translations: Update the Korean man page translations.
15026
15027 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------
15028 1 file changed, 629 insertions(+), 626 deletions(-)
15029
15030commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49
15031Author: Jia Tan <jiat0218@gmail.com>
15032Date:   2023-07-20 20:25:24 +0800
15033
15034    Translations: Update the Korean translation.
15035
15036 po/ko.po | 45 ++++++++++++++++++++++++++++-----------------
15037 1 file changed, 28 insertions(+), 17 deletions(-)
15038
15039commit 237f06d9c55cf438a7538a598354bcf103f23711
15040Author: Jia Tan <jiat0218@gmail.com>
15041Date:   2023-07-20 20:24:05 +0800
15042
15043    Translations: Update the Polish translation.
15044
15045 po/pl.po | 47 +++++++++++++++++++++++++++++------------------
15046 1 file changed, 29 insertions(+), 18 deletions(-)
15047
15048commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a
15049Author: Jia Tan <jiat0218@gmail.com>
15050Date:   2023-07-20 20:22:23 +0800
15051
15052    Translations: Update the German man page translations.
15053
15054 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------
15055 1 file changed, 629 insertions(+), 626 deletions(-)
15056
15057commit fdbde14503ca03069d3649aa51926f5f796b89d8
15058Author: Jia Tan <jiat0218@gmail.com>
15059Date:   2023-07-20 20:18:44 +0800
15060
15061    Translations: Update the German translation.
15062
15063 po/de.po | 47 +++++++++++++++++++++++++++++------------------
15064 1 file changed, 29 insertions(+), 18 deletions(-)
15065
15066commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101
15067Author: Jia Tan <jiat0218@gmail.com>
15068Date:   2023-07-20 20:17:10 +0800
15069
15070    Translations: Update the Chinese (simplified) translation.
15071
15072 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------
15073 1 file changed, 29 insertions(+), 18 deletions(-)
15074
15075commit 376938c588011567c74f1d5a160c0ccce6336d46
15076Author: Jia Tan <jiat0218@gmail.com>
15077Date:   2023-07-20 20:15:47 +0800
15078
15079    Translations: Update the Swedish translation.
15080
15081 po/sv.po | 47 +++++++++++++++++++++++++++++------------------
15082 1 file changed, 29 insertions(+), 18 deletions(-)
15083
15084commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8
15085Author: Jia Tan <jiat0218@gmail.com>
15086Date:   2023-07-20 20:14:00 +0800
15087
15088    Translations: Update the Ukrainian man page translations.
15089
15090 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------
15091 1 file changed, 628 insertions(+), 625 deletions(-)
15092
15093commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b
15094Author: Jia Tan <jiat0218@gmail.com>
15095Date:   2023-07-20 20:09:15 +0800
15096
15097    Translations: Update the Ukrainian translation.
15098
15099 po/uk.po | 45 ++++++++++++++++++++++++++++-----------------
15100 1 file changed, 28 insertions(+), 17 deletions(-)
15101
15102commit f881018b503fd334331c24a09075429558abbce1
15103Author: Jia Tan <jiat0218@gmail.com>
15104Date:   2023-07-20 20:06:57 +0800
15105
15106    Translations: Update the Spanish translation.
15107
15108 po/es.po | 47 +++++++++++++++++++++++++++++------------------
15109 1 file changed, 29 insertions(+), 18 deletions(-)
15110
15111commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31
15112Author: Jia Tan <jiat0218@gmail.com>
15113Date:   2023-07-20 20:05:19 +0800
15114
15115    Translations: Update the Romanian translation.
15116
15117 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------
15118 1 file changed, 30 insertions(+), 18 deletions(-)
15119
15120commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77
15121Author: Jia Tan <jiat0218@gmail.com>
15122Date:   2023-07-20 20:02:56 +0800
15123
15124    Translations: Update the Romanian man page translations.
15125
15126 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------
15127 1 file changed, 629 insertions(+), 625 deletions(-)
15128
15129commit 0184d344fa4f215cd345bb131db9068e077c69b8
15130Author: Jia Tan <jiat0218@gmail.com>
15131Date:   2023-07-19 23:36:00 +0800
15132
15133    liblzma: Suppress -Wunused-function warning.
15134
15135    Clang 16.0.0 and earlier have a bug that the ifunc resolver function
15136    triggers the -Wunused-function warning. The resolver function is static
15137    and only "used" by the __attribute__((__ifunc()__)).
15138
15139    At this time, the bug is still unresolved, but has been reported:
15140    https://github.com/llvm/llvm-project/issues/63957
15141
15142    This is not a problem in GCC.
15143
15144 src/liblzma/check/crc64_fast.c | 10 ++++++++++
15145 1 file changed, 10 insertions(+)
15146
15147commit 43845fa70fc751736c44c18f4cee42d49bfd1392
15148Author: Jia Tan <jiat0218@gmail.com>
15149Date:   2023-07-18 22:52:25 +0800
15150
15151    liblzma: Reword lzma_str_list_filters() documentation.
15152
15153    This further improves the documentation from commit
15154    f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of
15155    "supported options" was slightly misleading since the options that are
15156    printed are the ones that are relevant for encoding/decoding. It is not
15157    about which options can or must be specified.
15158
15159 src/liblzma/api/lzma/filter.h | 2 +-
15160 1 file changed, 1 insertion(+), 1 deletion(-)
15161
15162commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67
15163Author: Jia Tan <jiat0218@gmail.com>
15164Date:   2023-07-18 22:49:57 +0800
15165
15166    liblzma: Improve comment in string_conversion.c.
15167
15168    The comment used "flag" when referring to decoder options. Just
15169    referring to them as options is more clear and consistent.
15170
15171 src/liblzma/common/string_conversion.c | 4 ++--
15172 1 file changed, 2 insertions(+), 2 deletions(-)
15173
15174commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090
15175Author: Lasse Collin <lasse.collin@tukaani.org>
15176Date:   2023-07-18 17:37:33 +0300
15177
15178    xz: Translate the second "%s: " in message.c since French needs "%s : ".
15179
15180    This string is used to print a filename when using "xz -v" and
15181    stderr isn't a terminal.
15182
15183 src/xz/message.c | 2 +-
15184 1 file changed, 1 insertion(+), 1 deletion(-)
15185
15186commit be644042c3066d8e7a2834f989671ba74d27f749
15187Author: Lasse Collin <lasse.collin@tukaani.org>
15188Date:   2023-07-18 14:35:33 +0300
15189
15190    xz: Make "%s: %s" translatable because French needs "%s : %s".
15191
15192 src/xz/args.c    |  5 ++++-
15193 src/xz/coder.c   |  8 ++++----
15194 src/xz/file_io.c |  8 ++++----
15195 src/xz/list.c    | 11 ++++++-----
15196 4 files changed, 18 insertions(+), 14 deletions(-)
15197
15198commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2
15199Author: Lasse Collin <lasse.collin@tukaani.org>
15200Date:   2023-07-18 13:57:54 +0300
15201
15202    liblzma: Tweak #if condition in memcmplen.h.
15203
15204    Maybe ICC always #defines _MSC_VER on Windows but now
15205    it's very clear which code will get used.
15206
15207 src/liblzma/common/memcmplen.h | 4 ++--
15208 1 file changed, 2 insertions(+), 2 deletions(-)
15209
15210commit 40392c19f71985852d75997f109dea97177d6f3f
15211Author: Lasse Collin <lasse.collin@tukaani.org>
15212Date:   2023-07-18 13:49:43 +0300
15213
15214    liblzma: Omit unnecessary parenthesis in a preprocessor directive.
15215
15216 src/liblzma/common/memcmplen.h | 4 ++--
15217 1 file changed, 2 insertions(+), 2 deletions(-)
15218
15219commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98
15220Author: Jia Tan <jiat0218@gmail.com>
15221Date:   2023-07-18 00:51:48 +0800
15222
15223    xz: Update Authors list in a few files.
15224
15225 src/xz/args.c    | 3 ++-
15226 src/xz/args.h    | 3 ++-
15227 src/xz/coder.c   | 3 ++-
15228 src/xz/coder.h   | 3 ++-
15229 src/xz/message.c | 3 ++-
15230 5 files changed, 10 insertions(+), 5 deletions(-)
15231
15232commit 289034a168878baa9df6ff6e159110aade69cba5
15233Author: Jia Tan <jiat0218@gmail.com>
15234Date:   2023-07-14 23:20:33 +0800
15235
15236    Docs: Add a new section to INSTALL for Tests.
15237
15238    The new Tests section describes basic information about the tests, how
15239    to run them, and important details when cross compiling. We have had a
15240    few questions about how to compile the tests without running them, so
15241    hopefully this information will help others with the same question in the
15242    future.
15243
15244    Fixes: https://github.com/tukaani-project/xz/issues/54
15245
15246 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------
15247 1 file changed, 64 insertions(+), 17 deletions(-)
15248
15249commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513
15250Author: Jia Tan <jiat0218@gmail.com>
15251Date:   2023-07-14 21:10:27 +0800
15252
15253    Docs: Update README.
15254
15255    This adds an entry to "Other implementations of the .xz format" for
15256    XZ for Java.
15257
15258 README | 4 ++++
15259 1 file changed, 4 insertions(+)
15260
15261commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9
15262Author: Jia Tan <jiat0218@gmail.com>
15263Date:   2023-07-13 23:32:10 +0800
15264
15265    xz: Fix typo in man page.
15266
15267    The Memory limit information section described three output
15268    columns when it actually has six. This was reworded to
15269    "multiple" to make it more future proof.
15270
15271 src/xz/xz.1 | 2 +-
15272 1 file changed, 1 insertion(+), 1 deletion(-)
15273
15274commit f907705eb1f6c5edaafc9668a34c51a989932f1d
15275Author: Jia Tan <jiat0218@gmail.com>
15276Date:   2023-07-13 21:46:12 +0800
15277
15278    xz: Minor clean up for coder.c
15279
15280    * Moved max_block_list_size from a global to local variable.
15281    * Reworded error message in validate_block_list_filter().
15282    * Removed helper function filter_chain_error().
15283    * Changed 1 << X to 1U << X in many places
15284
15285 src/xz/coder.c | 53 +++++++++++++++++++++--------------------------------
15286 1 file changed, 21 insertions(+), 32 deletions(-)
15287
15288commit 9adc9e56157ecbf2948e5036df8567809b9ae177
15289Author: Jia Tan <jiat0218@gmail.com>
15290Date:   2023-07-13 21:26:47 +0800
15291
15292    xz: Update man page Authors and date.
15293
15294 src/xz/xz.1 | 5 +++--
15295 1 file changed, 3 insertions(+), 2 deletions(-)
15296
15297commit c12e429f2635da8d8f5749e5f733f451baca6945
15298Author: Jia Tan <jiat0218@gmail.com>
15299Date:   2023-06-20 20:32:59 +0800
15300
15301    xz: Add a section to man page for robot mode --filters-help.
15302
15303 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++--
15304 1 file changed, 30 insertions(+), 2 deletions(-)
15305
15306commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d
15307Author: Jia Tan <jiat0218@gmail.com>
15308Date:   2023-06-19 23:11:41 +0800
15309
15310    xz: Slight reword in xz man page for consistency.
15311
15312    Changed will print => prints in xz --robot --version description to
15313    match --robot --info-memory description.
15314
15315 src/xz/xz.1 | 2 +-
15316 1 file changed, 1 insertion(+), 1 deletion(-)
15317
15318commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81
15319Author: Jia Tan <jiat0218@gmail.com>
15320Date:   2023-06-19 23:07:10 +0800
15321
15322    xz: Reorder robot mode subsections in the man page.
15323
15324    The order is now consistent with the order the command line arguments
15325    are documented earlier in the man page. The new order is:
15326    1. --list
15327    2. --info-memory
15328    3. --version
15329
15330    Instead of the previous order:
15331    1. --version
15332    2. --info-memory
15333    3. --list
15334
15335 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------
15336 1 file changed, 96 insertions(+), 96 deletions(-)
15337
15338commit 9628be23aef2784249fd9f3199799d785d2ec5cc
15339Author: Jia Tan <jiat0218@gmail.com>
15340Date:   2023-05-13 00:46:50 +0800
15341
15342    xz: Update man page for new --filters-help option.
15343
15344 src/xz/xz.1 | 10 ++++++++++
15345 1 file changed, 10 insertions(+)
15346
15347commit a165d7df1964121eb9df715e6f836a31c865beef
15348Author: Jia Tan <jiat0218@gmail.com>
15349Date:   2023-05-13 00:44:41 +0800
15350
15351    xz: Add a new --filters-help option.
15352
15353    The --filters-help can be used to help create filter chains with the
15354    --filters and --filtersX options. The message in --long-help is too
15355    short to fully explain the syntax to construct complex filter chains.
15356
15357    In --robot mode, xz will only print the output from liblzma function
15358    lzma_str_list_filters.
15359
15360 src/xz/args.c    |  8 ++++++++
15361 src/xz/message.c | 30 ++++++++++++++++++++++++++++++
15362 src/xz/message.h |  5 +++++
15363 3 files changed, 43 insertions(+)
15364
15365commit 95f1a414b156ee35d3e71862a14915fdd138f913
15366Author: Jia Tan <jiat0218@gmail.com>
15367Date:   2023-04-21 20:28:11 +0800
15368
15369    xz: Update the man page for --block-list and --filtersX
15370
15371    The --block-list option description needed updating since the new
15372    --filtersX option changes how it can be used. The new entry for
15373    --filters1=FILTERS ... --filter9=FILTERS was created right after
15374    the --filters option.
15375
15376 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++---------------
15377 1 file changed, 80 insertions(+), 26 deletions(-)
15378
15379commit 47a63cad2aa778280e0c1926b7159427ea028cb1
15380Author: Jia Tan <jiat0218@gmail.com>
15381Date:   2023-04-21 19:50:14 +0800
15382
15383    xz: Update --long-help for the new --filtersX option.
15384
15385 src/xz/message.c | 12 ++++++++++--
15386 1 file changed, 10 insertions(+), 2 deletions(-)
15387
15388commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13
15389Author: Jia Tan <jiat0218@gmail.com>
15390Date:   2023-06-17 20:46:21 +0800
15391
15392    xz: Ignore filter chains that are set but never used in --block-list.
15393
15394    If a filter chain is set but not used in --block-list, it introduced
15395    unexpected behavior such as requiring an unneeded amount of memory to
15396    compress, reducing the number of threads in multi-threaded encoding, and
15397    printing an incorrect amount of memory needed to decompress.
15398
15399    This also renames filters_init_mask => filters_used_mask. A filter is
15400    assumed to be used if it is specified in --filtersX until
15401    coder_set_compression_settings() determines which filters are referenced
15402    in --block-list.
15403
15404 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++----------------
15405 1 file changed, 48 insertions(+), 18 deletions(-)
15406
15407commit 183819bfd9efac8c184d9bf123325719b7eee30f
15408Author: Jia Tan <jiat0218@gmail.com>
15409Date:   2023-05-13 20:11:13 +0800
15410
15411    xz: Set the Block size for mt encoding correctly.
15412
15413    When opt_block_size is not used, the Block size for mt encoder is
15414    derived from the minimum of the largest Block specified by
15415    --block-list and the recommended Block size on all filter chains
15416    calculated by lzma_mt_block_size(). This avoids using unnecessary
15417    memory and ensures that all Blocks are large enough for the most memory
15418    needy filter chain.
15419
15420 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
15421 1 file changed, 67 insertions(+), 1 deletion(-)
15422
15423commit afb2dbec3d857b026486b75e42a4728e12d234cb
15424Author: Jia Tan <jiat0218@gmail.com>
15425Date:   2023-05-11 00:09:41 +0800
15426
15427    xz: Validate --flush-timeout for all specified filter chains.
15428
15429 src/xz/coder.c | 24 ++++++++++++++++--------
15430 1 file changed, 16 insertions(+), 8 deletions(-)
15431
15432commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a
15433Author: Jia Tan <jiat0218@gmail.com>
15434Date:   2023-05-13 19:54:33 +0800
15435
15436    xz: Allows --block-list filters to scale down memory usage.
15437
15438    Previously, only the default filter chain could have its memory usage
15439    adjusted. The filter chains specified with --filtersX were not checked
15440    for memory usage. Now, all used filter chains will be adjusted if
15441    necessary.
15442
15443 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------
15444 1 file changed, 214 insertions(+), 55 deletions(-)
15445
15446commit 479fd58d60622331fcbe48fddf756927b9f80d9a
15447Author: Jia Tan <jiat0218@gmail.com>
15448Date:   2023-05-10 21:50:33 +0800
15449
15450    xz: Do not include block splitting if encoders are disabled.
15451
15452    The block splitting logic and split_block() function are not needed if
15453    encoders are disabled. This will help slightly reduce the binary size
15454    when built without encoders and allow split_block() to use functions
15455    that require encoders being enabled.
15456
15457 src/xz/coder.c | 29 ++++++++++++++++++++---------
15458 1 file changed, 20 insertions(+), 9 deletions(-)
15459
15460commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3
15461Author: Jia Tan <jiat0218@gmail.com>
15462Date:   2023-05-10 22:38:59 +0800
15463
15464    xz: Free filters[] in debug mode.
15465
15466    This will only free filter chains created with --filters1-9 since the
15467    default filter chain may be set from a static function variable. The
15468    complexity to free the default filter chain is not worth the burden on
15469    code maintenance.
15470
15471 src/xz/coder.c | 10 ++++++++++
15472 1 file changed, 10 insertions(+)
15473
15474commit f281cd0d692ac0c70fc7669b80dddb863ea947e1
15475Author: Jia Tan <jiat0218@gmail.com>
15476Date:   2023-05-13 19:28:23 +0800
15477
15478    xz: Add a message if --block-list is used outside of xz compresssion.
15479
15480    --block-list is only supported with compression in xz format. This avoids
15481    silently ignoring when --block-list is unused.
15482
15483 src/xz/args.c | 11 +++++++++++
15484 1 file changed, 11 insertions(+)
15485
15486commit d6af7f347077b22403133239592e478931307759
15487Author: Jia Tan <jiat0218@gmail.com>
15488Date:   2023-04-18 20:29:09 +0800
15489
15490    xz: Create command line options for filters[1-9].
15491
15492    The new command line options are meant to be combined with --block-list.
15493    They work as an optional extension to --block-list to specify a custom
15494    filter chain for each block listed. The new options allow the creation
15495    of up to 9 reusable filter chains. For instance:
15496
15497    xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \
15498    --filters2=x86--lzma2 --filters3=arm64--lzma2
15499
15500    Will create the following blocks:
15501    1. A block of size 10 MiB with filter chain delta, lzma2.
15502    2. A block of size 5 MiB with filter chain arm64, lzma2.
15503    3. A block of size 5 MiB with filter chain arm64, lzma2.
15504    4. A block of size 5 MiB with filter chain x86, lzma2.
15505    5. A block containing the rest of the file contents with filter chain
15506       delta, lzma2.
15507
15508 src/xz/args.c  |  82 ++++++++++++++++++++++---
15509 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++---------------
15510 src/xz/coder.h |  20 +++++-
15511 3 files changed, 230 insertions(+), 60 deletions(-)
15512
15513commit 072d29250113268536719ad0e040ab8a66fb6435
15514Author: Jia Tan <jiat0218@gmail.com>
15515Date:   2023-05-13 19:36:09 +0800
15516
15517    xz: Use lzma_filters_free() in forget_filter_chain().
15518
15519    This is a little cleaner than the previous implementation of
15520    forget_filter_chain(). It is also more consistent since
15521    lzma_str_to_filters() will always terminate the filter chain so there
15522    is no need to terminate it later in coder_set_compression_settings().
15523
15524 src/xz/coder.c | 18 ++++++++++--------
15525 1 file changed, 10 insertions(+), 8 deletions(-)
15526
15527commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059
15528Author: Jia Tan <jiat0218@gmail.com>
15529Date:   2023-04-17 22:22:45 +0800
15530
15531    xz: Separate string to filter conversion into a helper function.
15532
15533    Converting from string to filter will also need to be done for block
15534    specific filter chains.
15535
15536 src/xz/coder.c | 33 ++++++++++++++++++++-------------
15537 1 file changed, 20 insertions(+), 13 deletions(-)
15538
15539commit a6583726e5f950278f96abcf79c04f1056810be6
15540Author: Jia Tan <jiat0218@gmail.com>
15541Date:   2023-01-06 00:03:35 +0800
15542
15543    Tests: Use new --filters option in test_compress.sh
15544
15545 tests/test_compress.sh | 20 ++++++++++----------
15546 1 file changed, 10 insertions(+), 10 deletions(-)
15547
15548commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0
15549Author: Jia Tan <jiat0218@gmail.com>
15550Date:   2023-01-06 00:03:06 +0800
15551
15552    xz: Update --long-help and man page for new --filters option.
15553
15554 src/xz/message.c |  6 ++++++
15555 src/xz/xz.1      | 41 ++++++++++++++++++++++++++++++++++++-----
15556 2 files changed, 42 insertions(+), 5 deletions(-)
15557
15558commit 9ded880a0221f4d1256845fc4ab957ffd377c760
15559Author: Jia Tan <jiat0218@gmail.com>
15560Date:   2023-01-06 00:02:29 +0800
15561
15562    xz: Add --filters option to CLI.
15563
15564    The --filters option uses the new lzma_str_to_filters() function
15565    to convert a string into a full filter chain. Using this option
15566    will reset all previous filters set by --preset, --[filter], or
15567    --filters.
15568
15569 src/xz/args.c  |  9 +++++++--
15570 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
15571 src/xz/coder.h |  3 +++
15572 3 files changed, 58 insertions(+), 4 deletions(-)
15573
15574commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88
15575Author: Jia Tan <jiat0218@gmail.com>
15576Date:   2023-07-14 21:30:25 +0800
15577
15578    Tests: Improve feature testing for skipping.
15579
15580    Fixed a bug where test_compress_* would all fail if arm64 or armthumb
15581    filters were enabled for compression but arm was disabled. Since the
15582    grep tests only checked for "define HAVE_ENCODER_ARM", this would match
15583    on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB.
15584
15585    Now the config.h feature test requires " 1" at the end to prevent the
15586    prefix problem. have_feature() was also updated for this even though
15587    there were known current bugs affecting it. This is just in case future
15588    features have a similar prefix problem.
15589
15590 tests/test_compress.sh | 4 ++--
15591 tests/test_files.sh    | 2 +-
15592 2 files changed, 3 insertions(+), 3 deletions(-)
15593
15594commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357
15595Author: Jia Tan <jiat0218@gmail.com>
15596Date:   2023-07-10 20:56:28 +0800
15597
15598    Translations: Update the Chinese (traditional) translation.
15599
15600 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++--------------------------
15601 1 file changed, 377 insertions(+), 282 deletions(-)
15602
15603commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd
15604Author: Jia Tan <jiat0218@gmail.com>
15605Date:   2023-07-08 21:24:19 +0800
15606
15607    liblzma: Remove non-portable empty initializer.
15608
15609    Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty
15610    initializer {} to prevent a warning. The empty initializer is a GNU
15611    extension and results in a build failure on MSVC. The -wpedantic flag
15612    warns about empty initializers.
15613
15614 src/liblzma/common/stream_encoder_mt.c | 2 +-
15615 1 file changed, 1 insertion(+), 1 deletion(-)
15616
15617commit 3aca4f629cd577f0c54f594d5d88722edf0b0413
15618Author: Jia Tan <jiat0218@gmail.com>
15619Date:   2023-07-08 20:03:59 +0800
15620
15621    Translations: Update the Vietnamese translation.
15622
15623 po/vi.po | 620 +++++++++++++++++++++++++++++++++++----------------------------
15624 1 file changed, 349 insertions(+), 271 deletions(-)
15625
15626commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4
15627Author: Jia Tan <jiat0218@gmail.com>
15628Date:   2023-06-28 20:46:31 +0800
15629
15630    Tests: Fix memory leaks in test_index.
15631
15632    Several tests were missing calls to lzma_index_end() to clean up the
15633    lzma_index structs. The memory leaks were discovered by using
15634    -fsanitize=address with GCC.
15635
15636 tests/test_index.c | 11 +++++++++++
15637 1 file changed, 11 insertions(+)
15638
15639commit fe3bd438fb119f9bad3f08dc29d331e4956196e1
15640Author: Jia Tan <jiat0218@gmail.com>
15641Date:   2023-06-28 20:43:29 +0800
15642
15643    Tests: Fix memory leaks in test_block_header.
15644
15645    test_block_header was not properly freeing the filter options between
15646    calls to lzma_block_header_decode(). The memory leaks were discovered by
15647    using -fsanitize=address with GCC.
15648
15649 tests/test_block_header.c | 38 ++++++++++++++++++++++----------------
15650 1 file changed, 22 insertions(+), 16 deletions(-)
15651
15652commit 78704f36e74205857c898a351c757719a6c8b666
15653Author: Jia Tan <jiat0218@gmail.com>
15654Date:   2023-06-28 20:31:11 +0800
15655
15656    liblzma: Prevent uninitialzed warning in mt stream encoder.
15657
15658    This change only impacts the compiler warning since it was impossible
15659    for the wait_abs struct in stream_encode_mt() to be used before it was
15660    initialized since mythread_condtime_set() will always be called before
15661    mythread_cond_timedwait().
15662
15663    Since the mythread.h code is different between the POSIX and
15664    Windows versions, this warning was only present on Windows builds.
15665
15666    Thanks to Arthur S for reporting the warning and providing an initial
15667    patch.
15668
15669 src/liblzma/common/stream_encoder_mt.c | 2 +-
15670 1 file changed, 1 insertion(+), 1 deletion(-)
15671
15672commit e3356a204c5ae02db3ec4552b6c1be354e9b6142
15673Author: Jia Tan <jiat0218@gmail.com>
15674Date:   2023-06-28 20:22:38 +0800
15675
15676    liblzma: Prevent warning for MSYS2 Windows build.
15677
15678    In lzma_memcmplen(), the <intrin.h> header file is only included if
15679    _MSC_VER and _M_X64 are both defined but _BitScanForward64() was
15680    previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but
15681    not _MSC_VER so _BitScanForward64() was used without including
15682    <intrin.h>.
15683
15684    Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as
15685    expected.
15686
15687 src/liblzma/common/memcmplen.h | 6 ++++--
15688 1 file changed, 4 insertions(+), 2 deletions(-)
15689
15690commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e
15691Author: Jia Tan <jiat0218@gmail.com>
15692Date:   2023-06-28 21:01:22 +0800
15693
15694    CI: Add test with -fsanitize=address,undefined.
15695
15696    ci_build.sh was updated to accept disabling of __attribute__ ifunc
15697    and CLMUL. This will allow -fsanitize=address to pass because ifunc
15698    is incompatible with -fsanitize=address. The CLMUL implementation has
15699    optimizations that potentially read past the buffer and mask out the
15700    unwanted bytes.
15701
15702    This test will only run on Autotools Linux.
15703
15704 .github/workflows/ci.yml | 23 +++++++++++++++++++----
15705 build-aux/ci_build.sh    |  8 +++++++-
15706 2 files changed, 26 insertions(+), 5 deletions(-)
15707
15708commit 596ee722cd7ddf0afae584fc06365adc0e735977
15709Author: Jia Tan <jiat0218@gmail.com>
15710Date:   2023-06-28 20:16:04 +0800
15711
15712    CI: Upgrade checkout action from v2 to v3.
15713
15714 .github/workflows/ci.yml | 2 +-
15715 1 file changed, 1 insertion(+), 1 deletion(-)
15716
15717commit 86118ea320f867e09e98a8682cc08cbbdfd640e2
15718Author: Jia Tan <jiat0218@gmail.com>
15719Date:   2023-06-27 23:38:32 +0800
15720
15721    Update THANKS.
15722
15723 THANKS | 1 +
15724 1 file changed, 1 insertion(+)
15725
15726commit 3d1fdddf92321b516d55651888b9c669e254634e
15727Author: Jia Tan <jiat0218@gmail.com>
15728Date:   2023-06-27 17:27:09 +0300
15729
15730    Docs: Document the configure option --disable-ifunc in INSTALL.
15731
15732 INSTALL | 8 ++++++++
15733 1 file changed, 8 insertions(+)
15734
15735commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3
15736Author: Lasse Collin <lasse.collin@tukaani.org>
15737Date:   2023-06-27 17:24:49 +0300
15738
15739    Minor tweaks to style and comments.
15740
15741 CMakeLists.txt | 8 ++++----
15742 configure.ac   | 9 +++++----
15743 2 files changed, 9 insertions(+), 8 deletions(-)
15744
15745commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1
15746Author: Lasse Collin <lasse.collin@tukaani.org>
15747Date:   2023-06-27 17:19:49 +0300
15748
15749    CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC.
15750
15751    It's so that there's a clear difference in wording compared
15752    to liblzma's integrity check types.
15753
15754 CMakeLists.txt | 6 +++---
15755 1 file changed, 3 insertions(+), 3 deletions(-)
15756
15757commit ee44863ae88e377a5df10db007ba9bfadde3d314
15758Author: Lasse Collin <lasse.collin@tukaani.org>
15759Date:   2023-06-27 17:05:23 +0300
15760
15761    liblzma: Add ifunc implementation to crc64_fast.c.
15762
15763    The ifunc method avoids indirection via the function pointer
15764    crc64_func. This works on GNU/Linux and probably on FreeBSD too.
15765    The previous __attribute((__constructor__)) method is kept for
15766    compatibility with ELF platforms which do support ifunc.
15767
15768    The ifunc method has some limitations, for example, building
15769    liblzma with -fsanitize=address will result in segfaults.
15770    The configure option --disable-ifunc must be used for such builds.
15771
15772    Thanks to Hans Jansen for the original patch.
15773    Closes: https://github.com/tukaani-project/xz/pull/53
15774
15775 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++---------
15776 1 file changed, 26 insertions(+), 9 deletions(-)
15777
15778commit b72d21202402a603db6d512fb9271cfa83249639
15779Author: Hans Jansen <hansjansen162@outlook.com>
15780Date:   2023-06-22 19:49:30 +0200
15781
15782    Add ifunc check to CMakeLists.txt
15783
15784    CMake build system will now verify if __attribute__((__ifunc__())) can be
15785    used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be
15786    defined to 1.
15787
15788 CMakeLists.txt | 19 +++++++++++++++++++
15789 1 file changed, 19 insertions(+)
15790
15791commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b
15792Author: Hans Jansen <hansjansen162@outlook.com>
15793Date:   2023-06-22 19:46:55 +0200
15794
15795    Add ifunc check to configure.ac
15796
15797    configure.ac will now verify if __attribute__((__ifunc__())) can be used in
15798    the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1.
15799
15800 configure.ac | 28 ++++++++++++++++++++++++++++
15801 1 file changed, 28 insertions(+)
15802
15803commit dbb3a536ed9873ffa0870321f6873e564c6a9da8
15804Author: Jia Tan <jiat0218@gmail.com>
15805Date:   2023-06-07 00:18:30 +0800
15806
15807    CI: Add apt update command before installing dependencies.
15808
15809    Without the extra command, all of the CI tests were automatically
15810    failing because the Ubuntu servers could not be reached properly.
15811
15812 .github/workflows/ci.yml | 8 ++++++--
15813 1 file changed, 6 insertions(+), 2 deletions(-)
15814
15815commit 6bcd516812331de42b347922913230895bebad34
15816Author: Jia Tan <jiat0218@gmail.com>
15817Date:   2023-06-07 00:10:38 +0800
15818
15819    Update THANKS.
15820
15821 THANKS | 1 +
15822 1 file changed, 1 insertion(+)
15823
15824commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
15825Author: Benjamin Buch <bebuch@users.noreply.github.com>
15826Date:   2023-06-06 15:32:45 +0200
15827
15828    CMake: Protects against double find_package
15829
15830    Boost iostream uses `find_package` in quiet mode and then again uses
15831    `find_package` with required. This second call triggers a
15832    `add_library cannot create imported target "ZLIB::ZLIB" because another
15833    target with the same name already exists.`
15834
15835    This can simply be fixed by skipping the alias part on secondary
15836    `find_package` runs.
15837
15838 CMakeLists.txt | 16 +++++++++-------
15839 1 file changed, 9 insertions(+), 7 deletions(-)
15840
15841commit 045d7aae286ecd2ce163be9e0d9041343a03f89a
15842Author: Jia Tan <jiat0218@gmail.com>
15843Date:   2023-05-31 20:26:42 +0800
15844
15845    Translations: Update the Esperanto translation.
15846
15847 po/eo.po | 185 +++++++++++++++++++++++++++++++--------------------------------
15848 1 file changed, 92 insertions(+), 93 deletions(-)
15849
15850commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78
15851Author: Jia Tan <jiat0218@gmail.com>
15852Date:   2023-05-31 20:25:00 +0800
15853
15854    Translations: Update the Croatian translation.
15855
15856 po/hr.po | 2 +-
15857 1 file changed, 1 insertion(+), 1 deletion(-)
15858
15859commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce
15860Author: Jia Tan <jiat0218@gmail.com>
15861Date:   2023-05-31 20:15:53 +0800
15862
15863    Translations: Update the Chinese (simplified) translation.
15864
15865 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------
15866 1 file changed, 157 insertions(+), 160 deletions(-)
15867
15868commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383
15869Author: Jia Tan <jiat0218@gmail.com>
15870Date:   2023-05-17 23:12:13 +0800
15871
15872    Translations: Update German translation of man pages.
15873
15874 po4a/de.po | 52 ++++++++++++----------------------------------------
15875 1 file changed, 12 insertions(+), 40 deletions(-)
15876
15877commit 592961ccdbba39c7d60fe37e36764232feb57c60
15878Author: Jia Tan <jiat0218@gmail.com>
15879Date:   2023-05-17 23:09:18 +0800
15880
15881    Translations: Update the German translation.
15882
15883 po/de.po | 189 +++++++++++++++++++++++++++++++--------------------------------
15884 1 file changed, 94 insertions(+), 95 deletions(-)
15885
15886commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524
15887Author: Jia Tan <jiat0218@gmail.com>
15888Date:   2023-05-17 20:30:01 +0800
15889
15890    Translations: Update the Croatian translation.
15891
15892 po/hr.po | 187 +++++++++++++++++++++++++++++++--------------------------------
15893 1 file changed, 93 insertions(+), 94 deletions(-)
15894
15895commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d
15896Author: Jia Tan <jiat0218@gmail.com>
15897Date:   2023-05-17 20:26:54 +0800
15898
15899    Translations: Update Korean translation of man pages.
15900
15901 po4a/ko.po | 3015 ++++++++++++------------------------------------------------
15902 1 file changed, 568 insertions(+), 2447 deletions(-)
15903
15904commit d5ef1f6faf7c270f60093629257150085ecf19ca
15905Author: Jia Tan <jiat0218@gmail.com>
15906Date:   2023-05-17 20:13:01 +0800
15907
15908    Translations: Update the Korean translation.
15909
15910 po/ko.po | 319 +++++++++++++++++++++++++++++++--------------------------------
15911 1 file changed, 158 insertions(+), 161 deletions(-)
15912
15913commit e22d0b0f2e301e7906d0106689d967ed84362028
15914Author: Jia Tan <jiat0218@gmail.com>
15915Date:   2023-05-16 23:49:09 +0800
15916
15917    Translations: Update the Spanish translation.
15918
15919 po/es.po | 319 +++++++++++++++++++++++++++++++--------------------------------
15920 1 file changed, 158 insertions(+), 161 deletions(-)
15921
15922commit f50da74d52d01f6cfd826a921249e289cf671678
15923Author: Jia Tan <jiat0218@gmail.com>
15924Date:   2023-05-16 23:47:23 +0800
15925
15926    Translations: Update the Romanian translation.
15927
15928 po/ro.po | 195 ++++++++++++++++++++++++++++++++-------------------------------
15929 1 file changed, 98 insertions(+), 97 deletions(-)
15930
15931commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696
15932Author: Jia Tan <jiat0218@gmail.com>
15933Date:   2023-05-16 23:45:43 +0800
15934
15935    Translations: Update Romanian translation of man pages.
15936
15937 po4a/ro.po | 19 ++++++++++---------
15938 1 file changed, 10 insertions(+), 9 deletions(-)
15939
15940commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea
15941Author: Jia Tan <jiat0218@gmail.com>
15942Date:   2023-05-16 23:43:51 +0800
15943
15944    Translations: Update Ukrainian translation of man pages.
15945
15946 po4a/uk.po | 12 ++++++------
15947 1 file changed, 6 insertions(+), 6 deletions(-)
15948
15949commit c3e8fcbc2db4861f92ad15606c995bd255803c52
15950Author: Jia Tan <jiat0218@gmail.com>
15951Date:   2023-05-16 23:37:54 +0800
15952
15953    Translations: Update the Ukrainian translation.
15954
15955 po/uk.po | 321 +++++++++++++++++++++++++++++++--------------------------------
15956 1 file changed, 159 insertions(+), 162 deletions(-)
15957
15958commit 27b81b84fcedbc55aa6e6b21004c44070b15b038
15959Author: Jia Tan <jiat0218@gmail.com>
15960Date:   2023-05-16 23:07:35 +0800
15961
15962    Translations: Update the Polish translation.
15963
15964 po/pl.po | 316 +++++++++++++++++++++++++++++++--------------------------------
15965 1 file changed, 155 insertions(+), 161 deletions(-)
15966
15967commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed
15968Author: Jia Tan <jiat0218@gmail.com>
15969Date:   2023-05-16 22:52:14 +0800
15970
15971    Translations: Update the Swedish translation.
15972
15973 po/sv.po | 319 +++++++++++++++++++++++++++++++--------------------------------
15974 1 file changed, 158 insertions(+), 161 deletions(-)
15975
15976commit 6699a29673f227c4664826db485ed9f7596320d2
15977Author: Jia Tan <jiat0218@gmail.com>
15978Date:   2023-05-16 21:21:38 +0800
15979
15980    Translations: Update the Esperanto translation.
15981
15982 po/eo.po | 34 +++++++++++++++++-----------------
15983 1 file changed, 17 insertions(+), 17 deletions(-)
15984
15985commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf
15986Author: Jia Tan <jiat0218@gmail.com>
15987Date:   2023-05-13 21:21:54 +0800
15988
15989    liblzma: Slightly rewords lzma_str_list_filters() documentation.
15990
15991    Reword "options required" to "supported options". The previous may have
15992    suggested that the options listed were all required anytime a filter is
15993    used for encoding or decoding. The reword makes this more clear that
15994    adjusting the options is optional.
15995
15996 src/liblzma/api/lzma/filter.h | 2 +-
15997 1 file changed, 1 insertion(+), 1 deletion(-)
15998
15999commit 3374a5359e52f1671d8f831d65827d5020fe2595
16000Author: Jia Tan <jiat0218@gmail.com>
16001Date:   2023-05-11 23:49:23 +0800
16002
16003    liblzma: Adds lzma_nothrow to MicroLZMA API functions.
16004
16005    None of the liblzma functions may throw an exception, so this
16006    attribute should be applied to all liblzma API functions.
16007
16008 src/liblzma/api/lzma/container.h | 5 +++--
16009 1 file changed, 3 insertions(+), 2 deletions(-)
16010
16011commit 8f236574986e7c414c0ea059f441982d1387e6a4
16012Author: Jia Tan <jiat0218@gmail.com>
16013Date:   2023-05-09 20:20:06 +0800
16014
16015    liblzma: Exports lzma_mt_block_size() as an API function.
16016
16017    The lzma_mt_block_size() was previously just an internal function for
16018    the multithreaded .xz encoder. It is used to provide a recommended Block
16019    size for a given filter chain.
16020
16021    This function is helpful to determine the maximum Block size for the
16022    multithreaded .xz encoder when one wants to change the filters between
16023    blocks. Then, this determined Block size can be provided to
16024    lzma_stream_encoder_mt() in the lzma_mt options parameter when
16025    intializing the coder. This requires one to know all the filter chains
16026    they are using before starting to encode (or at least the filter chain
16027    that will need the largest Block size), but that isn't a bad limitation.
16028
16029 src/liblzma/api/lzma/container.h       | 28 ++++++++++++++++++++++++++++
16030 src/liblzma/common/filter_encoder.c    | 16 ++++++++++------
16031 src/liblzma/common/filter_encoder.h    |  6 +-----
16032 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++-----------
16033 src/liblzma/liblzma_generic.map        |  5 +++++
16034 src/liblzma/liblzma_linux.map          |  5 +++++
16035 src/liblzma/lzma/lzma2_encoder.c       |  3 +++
16036 7 files changed, 61 insertions(+), 22 deletions(-)
16037
16038commit d0f33d672a4da7985ebb5ba8d829f885de49c171
16039Author: Jia Tan <jiat0218@gmail.com>
16040Date:   2023-05-08 22:58:09 +0800
16041
16042    liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
16043
16044    This creates an internal liblzma macro to test if the dictionary size
16045    is valid for encoding.
16046
16047 src/liblzma/lz/lz_encoder.c | 4 +---
16048 src/liblzma/lz/lz_encoder.h | 8 ++++++++
16049 2 files changed, 9 insertions(+), 3 deletions(-)
16050
16051commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f
16052Author: Jia Tan <jiat0218@gmail.com>
16053Date:   2023-05-02 20:39:56 +0800
16054
16055    Add NEWS for 5.4.3.
16056
16057 NEWS | 10 ++++++++++
16058 1 file changed, 10 insertions(+)
16059
16060commit 77050b78364ffb6b0f129e742b7c31602d725c08
16061Author: Jia Tan <jiat0218@gmail.com>
16062Date:   2023-05-02 20:39:37 +0800
16063
16064    Add NEWS for 5.2.12.
16065
16066 NEWS | 14 ++++++++++++++
16067 1 file changed, 14 insertions(+)
16068
16069commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0
16070Author: Jia Tan <jiat0218@gmail.com>
16071Date:   2023-05-04 20:38:52 +0800
16072
16073    Translations: Update the Croatian translation.
16074
16075 po/hr.po | 6 +++---
16076 1 file changed, 3 insertions(+), 3 deletions(-)
16077
16078commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9
16079Author: Jia Tan <jiat0218@gmail.com>
16080Date:   2023-05-04 20:30:25 +0800
16081
16082    tuklib_integer.h: Reverts previous commit.
16083
16084    Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an
16085    error if the integer size was 32 bit.
16086
16087 src/common/tuklib_integer.h | 4 ++--
16088 1 file changed, 2 insertions(+), 2 deletions(-)
16089
16090commit 6be460dde07113fe3f08f814b61ddc3264125a96
16091Author: Jia Tan <jiat0218@gmail.com>
16092Date:   2023-05-04 19:25:20 +0800
16093
16094    tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=.
16095
16096 src/common/tuklib_integer.h | 4 ++--
16097 1 file changed, 2 insertions(+), 2 deletions(-)
16098
16099commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878
16100Author: Lasse Collin <lasse.collin@tukaani.org>
16101Date:   2023-05-03 22:46:42 +0300
16102
16103    tuklib_integer.h: Fix a recent copypaste error in Clang detection.
16104
16105    Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7.
16106    Also, this has >= instead of == since ints larger than 32 bits would
16107    work too even if not relevant in practice.
16108
16109 src/common/tuklib_integer.h | 4 ++--
16110 1 file changed, 2 insertions(+), 2 deletions(-)
16111
16112commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68
16113Author: Jia Tan <jiat0218@gmail.com>
16114Date:   2023-04-25 20:06:15 +0800
16115
16116    CI: Adds a build and test for small configuration.
16117
16118 .github/workflows/ci.yml | 5 +++++
16119 1 file changed, 5 insertions(+)
16120
16121commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43
16122Author: Jia Tan <jiat0218@gmail.com>
16123Date:   2023-04-25 20:05:26 +0800
16124
16125    CI: ci_build.sh allows configuring small build.
16126
16127 build-aux/ci_build.sh | 7 ++++++-
16128 1 file changed, 6 insertions(+), 1 deletion(-)
16129
16130commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d
16131Author: Jia Tan <jiat0218@gmail.com>
16132Date:   2023-04-20 20:15:00 +0800
16133
16134    Update THANKS.
16135
16136 THANKS | 1 +
16137 1 file changed, 1 insertion(+)
16138
16139commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
16140Author: Jia Tan <jiat0218@gmail.com>
16141Date:   2023-04-19 22:22:16 +0800
16142
16143    Windows: Include <intrin.h> when needed.
16144
16145    Legacy Windows did not need to #include <intrin.h> to use the MSVC
16146    intrinsics. Newer versions likely just issue a warning, but the MSVC
16147    documentation says to include the header file for the intrinsics we use.
16148
16149    GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are
16150    needed in tuklib_integer.h to only include <intrin.h> when it will is
16151    actually needed.
16152
16153 src/common/tuklib_integer.h    |  6 ++++++
16154 src/liblzma/common/memcmplen.h | 10 ++++++++++
16155 2 files changed, 16 insertions(+)
16156
16157commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7
16158Author: Jia Tan <jiat0218@gmail.com>
16159Date:   2023-04-19 21:59:03 +0800
16160
16161    tuklib_integer: Use __builtin_clz() with Clang.
16162
16163    Clang has support for __builtin_clz(), but previously Clang would
16164    fallback to either the MSVC intrinsic or the regular C code. This was
16165    discovered due to a bug where a new version of Clang required the
16166    <intrin.h> header file in order to use the MSVC intrinsics.
16167
16168    Thanks to Anton Kochkov for notifying us about the bug.
16169
16170 src/common/tuklib_integer.h | 6 +++---
16171 1 file changed, 3 insertions(+), 3 deletions(-)
16172
16173commit 3938718ce3773c90755785c0df8777f133b7ae29
16174Author: Lasse Collin <lasse.collin@tukaani.org>
16175Date:   2023-04-14 18:42:33 +0300
16176
16177    liblzma: Update project maintainers in lzma.h.
16178
16179    AUTHORS was updated earlier, lzma.h was simply forgotten.
16180
16181 src/liblzma/api/lzma.h | 2 +-
16182 1 file changed, 1 insertion(+), 1 deletion(-)
16183
16184commit 2a89670ab295e377f8b44f5bda6d198deb8ea285
16185Author: Jia Tan <jiat0218@gmail.com>
16186Date:   2023-04-13 20:45:19 +0800
16187
16188    liblzma: Cleans up old commented out code.
16189
16190 src/liblzma/common/alone_encoder.c | 11 -----------
16191 1 file changed, 11 deletions(-)
16192
16193commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81
16194Author: Jia Tan <jiat0218@gmail.com>
16195Date:   2023-04-07 20:46:41 +0800
16196
16197    Docs: Add missing word to SECURITY.md.
16198
16199 .github/SECURITY.md | 2 +-
16200 1 file changed, 1 insertion(+), 1 deletion(-)
16201
16202commit fb9c50f38a17bf37581de4034b36c8df8ec90a87
16203Author: Jia Tan <jiat0218@gmail.com>
16204Date:   2023-04-07 20:43:22 +0800
16205
16206    Update THANKS.
16207
16208 THANKS | 1 +
16209 1 file changed, 1 insertion(+)
16210
16211commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
16212Author: Jia Tan <jiat0218@gmail.com>
16213Date:   2023-04-07 20:42:12 +0800
16214
16215    Docs: Minor edits to SECURITY.md.
16216
16217 .github/SECURITY.md | 25 ++++++++++++++++++++-----
16218 1 file changed, 20 insertions(+), 5 deletions(-)
16219
16220commit 6549df8dd53f358345957e232648fdb699930074
16221Author: Gabriela Gutierrez <gabigutierrez@google.com>
16222Date:   2023-04-07 12:08:30 +0000
16223
16224    Docs: Create SECURITY.md
16225
16226    Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
16227
16228 .github/SECURITY.md | 14 ++++++++++++++
16229 1 file changed, 14 insertions(+)
16230
16231commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
16232Author: Jia Tan <jiat0218@gmail.com>
16233Date:   2023-03-28 22:48:24 +0800
16234
16235    CI: Tests for disabling threading on CMake builds.
16236
16237 .github/workflows/ci.yml | 3 ---
16238 build-aux/ci_build.sh    | 4 ++--
16239 2 files changed, 2 insertions(+), 5 deletions(-)
16240
16241commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d
16242Author: Jia Tan <jiat0218@gmail.com>
16243Date:   2023-03-28 22:45:42 +0800
16244
16245    CI: Removes CMakeCache.txt between builds.
16246
16247    If the cache file is not removed, CMake will not reset configurations
16248    back to their default values. In order to make the tests independent, it
16249    is simplest to purge the cache. Unfortunatly, this will slow down the
16250    tests a little and repeat some checks.
16251
16252 build-aux/ci_build.sh | 2 ++
16253 1 file changed, 2 insertions(+)
16254
16255commit 2cb6028fc31de082b7f927632363bb1426b61aaa
16256Author: Jia Tan <jiat0218@gmail.com>
16257Date:   2023-03-28 22:32:40 +0800
16258
16259    CMake: Update liblzma-config.cmake generation.
16260
16261    Now that the threading is configurable, the liblzma CMake package only
16262    needs the threading library when using POSIX threads.
16263
16264 CMakeLists.txt | 33 ++++++++++++++++++++++-----------
16265 1 file changed, 22 insertions(+), 11 deletions(-)
16266
16267commit 4d7fac0b07cc722825ba8d7838c558827e635611
16268Author: Jia Tan <jiat0218@gmail.com>
16269Date:   2023-03-28 22:25:33 +0800
16270
16271    CMake: Allows setting thread method.
16272
16273    The thread method is now configurable for the CMake build. It matches
16274    the Autotools build by allowing ON (pick the best threading method),
16275    OFF (no threading), posix, win95, and vista. If both Windows and
16276    posix threading are both available, then ON will choose Windows
16277    threading. Windows threading will also not use:
16278
16279    target_link_libraries(liblzma Threads::Threads)
16280
16281    since on systems like MinGW-w64 it would link the posix threads
16282    without purpose.
16283
16284 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++----------------
16285 1 file changed, 104 insertions(+), 40 deletions(-)
16286
16287commit 20cd905d898c1494dee42b78530769bb9c9f8076
16288Author: Jia Tan <jiat0218@gmail.com>
16289Date:   2023-03-24 23:05:48 +0800
16290
16291    CI: Runs CMake feature tests.
16292
16293    Now, CMake will run similar feature disable tests that the Autotools
16294    version did before. In order to do this without repeating lines in
16295    ci.yml, it now makes sense to use the GitHub Workflow matrix to create
16296    a loop.
16297
16298 .github/workflows/ci.yml | 169 +++++++++++++++--------------------------------
16299 1 file changed, 55 insertions(+), 114 deletions(-)
16300
16301commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229
16302Author: Jia Tan <jiat0218@gmail.com>
16303Date:   2023-03-24 20:35:11 +0800
16304
16305    CI: ci_build.sh allows CMake features to be configured.
16306
16307    Also included various clean ups for style and helper functions for
16308    repeated work.
16309
16310 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++-------------------
16311 1 file changed, 143 insertions(+), 90 deletions(-)
16312
16313commit cf3d1f130e50cf63da4bb1031771605f6f443b6a
16314Author: Jia Tan <jiat0218@gmail.com>
16315Date:   2023-03-24 20:06:33 +0800
16316
16317    CI: Change ci_build.sh to use bash instead of sh.
16318
16319    This script is only meant to be run as part of the CI build/test process
16320    on machines that are known to have bash (Ubuntu and MacOS). If this
16321    assumption changes in the future, then the bash specific commands will
16322    need to be replaced with a more portable option. For now, it is
16323    convenient to use bash commands.
16324
16325 build-aux/ci_build.sh | 2 +-
16326 1 file changed, 1 insertion(+), 1 deletion(-)
16327
16328commit ddfe164368e779c40d061aa4ccc376129e92f8e1
16329Author: Jia Tan <jiat0218@gmail.com>
16330Date:   2023-03-24 20:05:59 +0800
16331
16332    CMake: Only build xzdec if decoders are enabled.
16333
16334 CMakeLists.txt | 2 +-
16335 1 file changed, 1 insertion(+), 1 deletion(-)
16336
16337commit 116e81f002c503d3c3cd12726db8f9116e58ef25
16338Author: Jia Tan <jiat0218@gmail.com>
16339Date:   2023-03-22 15:42:04 +0800
16340
16341    Build: Removes redundant check for LZMA1 filter support.
16342
16343 src/liblzma/lzma/Makefile.inc | 5 +----
16344 1 file changed, 1 insertion(+), 4 deletions(-)
16345
16346commit 0ba234f692772595329d225462d391fe2c199d0a
16347Author: Lasse Collin <lasse.collin@tukaani.org>
16348Date:   2023-03-23 15:14:29 +0200
16349
16350    CMake: Bump maximum policy version to 3.26.
16351
16352    It adds only one new policy related to FOLDERS which we don't use.
16353    This makes it clear that the code is compatible with the policies
16354    up to 3.26.
16355
16356 CMakeLists.txt | 2 +-
16357 1 file changed, 1 insertion(+), 1 deletion(-)
16358
16359commit b0891684b4436aed31510fddcbb218d513bd5489
16360Author: Jia Tan <jiat0218@gmail.com>
16361Date:   2023-03-21 23:36:00 +0800
16362
16363    CMake: Conditionally build xz list.* files if decoders are enabled.
16364
16365 CMakeLists.txt | 9 +++++++--
16366 1 file changed, 7 insertions(+), 2 deletions(-)
16367
16368commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227
16369Author: Jia Tan <jiat0218@gmail.com>
16370Date:   2023-02-25 11:46:50 +0800
16371
16372    CMake: Allow configuring features as cache variables.
16373
16374    This allows users to change the features they build either in
16375    CMakeCache.txt or by using a CMake GUI. The sources built for
16376    liblzma are affected by this too, so only the necessary files
16377    will be compiled.
16378
16379 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++---------------
16380 1 file changed, 391 insertions(+), 137 deletions(-)
16381
16382commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff
16383Author: Lasse Collin <lasse.collin@tukaani.org>
16384Date:   2023-03-21 14:07:51 +0200
16385
16386    Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69.
16387
16388    It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC
16389    but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler.
16390
16391 configure.ac | 3 +++
16392 1 file changed, 3 insertions(+)
16393
16394commit 53cc475f2652d9e390ca002018dfd0af0626ef80
16395Author: Lasse Collin <lasse.collin@tukaani.org>
16396Date:   2023-03-21 14:04:37 +0200
16397
16398    Build: configure.ac: Use AS_IF and AS_CASE where required.
16399
16400    This makes no functional difference in the generated configure
16401    (at least with the Autotools versions I have installed) but this
16402    change might prevent future bugs like the one that was just
16403    fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294.
16404
16405 configure.ac | 30 +++++++++++++++---------------
16406 1 file changed, 15 insertions(+), 15 deletions(-)
16407
16408commit 3b8890a40233b6c783bb101ec14405e786871775
16409Author: Lasse Collin <lasse.collin@tukaani.org>
16410Date:   2023-03-21 13:12:03 +0200
16411
16412    Update THANKS.
16413
16414 THANKS | 1 +
16415 1 file changed, 1 insertion(+)
16416
16417commit 5a5bd7f871818029d5ccbe189f087f591258c294
16418Author: Lasse Collin <lasse.collin@tukaani.org>
16419Date:   2023-03-21 13:11:49 +0200
16420
16421    Build: Fix --disable-threads breaking the building of shared libs.
16422
16423    This is broken in the releases 5.2.6 to 5.4.2. A workaround
16424    for these releases is to pass EGREP='grep -E' as an argument
16425    to configure in addition to --disable-threads.
16426
16427    The problem appeared when m4/ax_pthread.m4 was updated in
16428    the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which
16429    introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls
16430    AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP
16431    but this was only executed if POSIX threads were enabled.
16432    Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf
16433    omits it as AC_PROG_EGREP has already been required earlier.
16434    Thus, if not using POSIX threads, the shell variable EGREP
16435    would be undefined in the Libtool code in configure.
16436
16437    ax_pthread.m4 is fine. The bug was in configure.ac which called
16438    AX_PTHREAD conditionally in an incorrect way. Using AS_CASE
16439    ensures that all AC_REQUIREs get always run.
16440
16441    Thanks to Frank Busse for reporting the bug.
16442    Fixes: https://github.com/tukaani-project/xz/issues/45
16443
16444 configure.ac | 16 ++++++++--------
16445 1 file changed, 8 insertions(+), 8 deletions(-)
16446
16447commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06
16448Author: Lasse Collin <lasse.collin@tukaani.org>
16449Date:   2023-03-19 22:45:59 +0200
16450
16451    liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h.
16452
16453    Thanks to Christian Hesse for reporting the issue.
16454    Fixes: https://github.com/tukaani-project/xz/issues/44
16455
16456 src/liblzma/common/memcmplen.h | 3 ++-
16457 1 file changed, 2 insertions(+), 1 deletion(-)
16458
16459commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce
16460Author: Jia Tan <jiat0218@gmail.com>
16461Date:   2023-03-18 22:10:57 +0800
16462
16463    Add NEWS for 5.4.2.
16464
16465 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
16466 1 file changed, 48 insertions(+)
16467
16468commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6
16469Author: Jia Tan <jiat0218@gmail.com>
16470Date:   2023-03-18 22:10:12 +0800
16471
16472    Add NEWS for 5.2.11.
16473
16474 NEWS | 27 +++++++++++++++++++++++++++
16475 1 file changed, 27 insertions(+)
16476
16477commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40
16478Author: Lasse Collin <lasse.collin@tukaani.org>
16479Date:   2023-03-18 16:00:54 +0200
16480
16481    Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3.
16482
16483 COPYING.GPLv3 | 8 ++++----
16484 1 file changed, 4 insertions(+), 4 deletions(-)
16485
16486commit b473a92891f7e991398a3b5eff305f6f2b6d7293
16487Author: Lasse Collin <lasse.collin@tukaani.org>
16488Date:   2023-03-18 15:51:57 +0200
16489
16490    Change a few HTTP URLs to HTTPS.
16491
16492    The xz man page timestamp was intentionally left unchanged.
16493
16494 INSTALL                    |  2 +-
16495 README                     |  8 ++++----
16496 configure.ac               |  2 +-
16497 dos/INSTALL.txt            |  4 ++--
16498 src/liblzma/api/lzma.h     |  8 ++++----
16499 src/liblzma/check/sha256.c |  2 +-
16500 src/xz/xz.1                |  2 +-
16501 windows/INSTALL-MinGW.txt  | 10 +++++-----
16502 8 files changed, 19 insertions(+), 19 deletions(-)
16503
16504commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8
16505Author: Jia Tan <jiat0218@gmail.com>
16506Date:   2023-03-18 00:40:28 +0800
16507
16508    CMake: Fix typo in a comment.
16509
16510 CMakeLists.txt | 2 +-
16511 1 file changed, 1 insertion(+), 1 deletion(-)
16512
16513commit 76e2315e14c399c15cc90e7930fd4d3d086b0227
16514Author: Lasse Collin <lasse.collin@tukaani.org>
16515Date:   2023-03-17 18:36:22 +0200
16516
16517    Windows: build.bash: Copy liblzma API docs to the output package.
16518
16519 windows/build.bash | 3 ++-
16520 1 file changed, 2 insertions(+), 1 deletion(-)
16521
16522commit 133cf55edc5ce92952d2709abd992e48ef1f45ee
16523Author: Lasse Collin <lasse.collin@tukaani.org>
16524Date:   2023-03-17 08:53:38 +0200
16525
16526    Windows: Add microlzma_*.c to the VS project files.
16527
16528    These should have been included in 5.3.2alpha already.
16529
16530 windows/vs2013/liblzma.vcxproj     | 2 ++
16531 windows/vs2013/liblzma_dll.vcxproj | 2 ++
16532 windows/vs2017/liblzma.vcxproj     | 2 ++
16533 windows/vs2017/liblzma_dll.vcxproj | 2 ++
16534 windows/vs2019/liblzma.vcxproj     | 2 ++
16535 windows/vs2019/liblzma_dll.vcxproj | 2 ++
16536 6 files changed, 12 insertions(+)
16537
16538commit 75c9ca450fab6982fda9286b168081c9d54126cd
16539Author: Lasse Collin <lasse.collin@tukaani.org>
16540Date:   2023-03-17 08:43:51 +0200
16541
16542    CMake: Add microlzma_*.c to the build.
16543
16544    These should have been included in 5.3.2alpha already.
16545
16546 CMakeLists.txt | 2 ++
16547 1 file changed, 2 insertions(+)
16548
16549commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b
16550Author: Lasse Collin <lasse.collin@tukaani.org>
16551Date:   2023-03-17 08:41:36 +0200
16552
16553    Build: Update comments about unaligned access to mention 64-bit.
16554
16555 cmake/tuklib_integer.cmake | 7 +++----
16556 m4/tuklib_integer.m4       | 4 ++--
16557 2 files changed, 5 insertions(+), 6 deletions(-)
16558
16559commit 5e57e3301319f20c35f8111dea73fa58403b96b1
16560Author: Lasse Collin <lasse.collin@tukaani.org>
16561Date:   2023-03-17 00:02:30 +0200
16562
16563    Tests: Update .gitignore.
16564
16565 .gitignore | 3 ++-
16566 1 file changed, 2 insertions(+), 1 deletion(-)
16567
16568commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac
16569Author: Lasse Collin <lasse.collin@tukaani.org>
16570Date:   2023-03-14 20:04:03 +0200
16571
16572    po4a/update-po: Display the script name consistently in error messages.
16573
16574 po4a/update-po | 2 +-
16575 1 file changed, 1 insertion(+), 1 deletion(-)
16576
16577commit 509157c80c500426ec853bd992d684ebafc8500c
16578Author: Jia Tan <jiat0218@gmail.com>
16579Date:   2023-03-17 01:30:36 +0800
16580
16581    Doc: Rename Doxygen HTML doc directory name liblzma => api.
16582
16583    When the docs are installed, calling the directory "liblzma" is
16584    confusing since multiple other files in the doc directory are for
16585    liblzma. This should also make it more natural for distros when they
16586    package the documentation.
16587
16588 .gitignore             |  2 +-
16589 Makefile.am            | 18 +++++++++---------
16590 PACKAGERS              |  4 ++--
16591 doxygen/Doxyfile       |  2 +-
16592 doxygen/update-doxygen | 18 +++++++++---------
16593 5 files changed, 22 insertions(+), 22 deletions(-)
16594
16595commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3
16596Author: Jia Tan <jiat0218@gmail.com>
16597Date:   2023-03-16 22:07:15 +0800
16598
16599    liblzma: Remove note from lzma_options_bcj about the ARM64 exception.
16600
16601    This was left in by mistake since an early version of the ARM64 filter
16602    used a different struct for its options.
16603
16604 src/liblzma/api/lzma/bcj.h | 2 +-
16605 1 file changed, 1 insertion(+), 1 deletion(-)
16606
16607commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d
16608Author: Jia Tan <jiat0218@gmail.com>
16609Date:   2023-03-16 21:44:02 +0800
16610
16611    CI: Add doxygen as a dependency.
16612
16613    Autogen now requires --no-doxygen or having doxygen installed to run
16614    without errors.
16615
16616 .github/workflows/ci.yml | 5 ++---
16617 1 file changed, 2 insertions(+), 3 deletions(-)
16618
16619commit f68f4b27f62f53fdac570885a1f4f23367ce6599
16620Author: Lasse Collin <lasse.collin@tukaani.org>
16621Date:   2023-03-15 19:19:13 +0200
16622
16623    COPYING: Add a note about the included Doxygen-generated HTML.
16624
16625 COPYING | 11 +++++++++++
16626 1 file changed, 11 insertions(+)
16627
16628commit 8979308528c1f45cb9ee52d511f05232b4ad90a1
16629Author: Jia Tan <jiat0218@gmail.com>
16630Date:   2023-03-16 21:41:09 +0800
16631
16632    Doc: Update PACKAGERS with details about liblzma API docs install.
16633
16634 PACKAGERS | 22 ++++++++++++++++------
16635 1 file changed, 16 insertions(+), 6 deletions(-)
16636
16637commit 55ba6e93004842ae0a0792214a23504267ad8f43
16638Author: Jia Tan <jiat0218@gmail.com>
16639Date:   2023-03-16 21:38:32 +0800
16640
16641    liblzma: Add set lzma.h as the main page for Doxygen documentation.
16642
16643    The \mainpage command is used in the first block of comments in lzma.h.
16644    This changes the previously nearly empty index.html to use the first
16645    comment block in lzma.h for its contents.
16646
16647    lzma.h is no longer documented separately, but this is for the better
16648    since lzma.h only defined a few macros that users do not need to use.
16649    The individual API header files all have a disclaimer that they should
16650    not be #included directly, so there should be no confusion on the fact
16651    that lzma.h should be the only header used by applications.
16652
16653    Additionally, the note "See ../lzma.h for information about liblzma as
16654    a whole." was removed since lzma.h is now the main page of the
16655    generated HTML and does not have its own page anymore. So it would be
16656    confusing in the HTML version and was only a "nice to have" when
16657    browsing the source files.
16658
16659 src/liblzma/api/lzma.h              | 1 +
16660 src/liblzma/api/lzma/base.h         | 2 --
16661 src/liblzma/api/lzma/bcj.h          | 2 --
16662 src/liblzma/api/lzma/block.h        | 2 --
16663 src/liblzma/api/lzma/check.h        | 2 --
16664 src/liblzma/api/lzma/container.h    | 2 --
16665 src/liblzma/api/lzma/delta.h        | 2 --
16666 src/liblzma/api/lzma/filter.h       | 2 --
16667 src/liblzma/api/lzma/hardware.h     | 2 --
16668 src/liblzma/api/lzma/index.h        | 2 --
16669 src/liblzma/api/lzma/index_hash.h   | 4 +---
16670 src/liblzma/api/lzma/lzma12.h       | 2 --
16671 src/liblzma/api/lzma/stream_flags.h | 2 --
16672 src/liblzma/api/lzma/version.h      | 2 --
16673 src/liblzma/api/lzma/vli.h          | 2 --
16674 15 files changed, 2 insertions(+), 29 deletions(-)
16675
16676commit 16f21255597f6a57e5692780f962cdc090f62b8c
16677Author: Jia Tan <jiat0218@gmail.com>
16678Date:   2023-03-16 21:37:32 +0800
16679
16680    Build: Generate doxygen documentation in autogen.sh.
16681
16682    Another command line option (--no-doxygen) was added to disable
16683    creating the doxygen documenation in cases where it not wanted or
16684    if the doxygen tool is not installed.
16685
16686 autogen.sh | 35 +++++++++++++++++++++++++++++------
16687 1 file changed, 29 insertions(+), 6 deletions(-)
16688
16689commit 1321852a3be7196bd7fcfd146221a5669e46407c
16690Author: Jia Tan <jiat0218@gmail.com>
16691Date:   2023-03-16 21:35:55 +0800
16692
16693    Build: Create doxygen/update-doxygen script.
16694
16695    This is a helper script to generate the Doxygen documentation. It can be
16696    run in 'liblzma' or 'internal' mode by setting the first argument. It
16697    will default to 'liblzma' mode and only generate documentation for the
16698    liblzma API header files.
16699
16700    The helper script will be run during the custom mydist hook when we
16701    create releases. This hook already alters the source directory, so its
16702    fine to do it here too. This way, we can include the Doxygen generated
16703    files in the distrubtion and when installing.
16704
16705    In 'liblzma' mode, the JavaScript is stripped from the .html files and
16706    the .js files are removed. This avoids license hassle from jQuery and
16707    other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
16708
16709 Makefile.am            |   1 +
16710 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++
16711 2 files changed, 112 insertions(+)
16712
16713commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b
16714Author: Jia Tan <jiat0218@gmail.com>
16715Date:   2023-03-16 21:34:36 +0800
16716
16717    Build: Install Doxygen docs and include in distribution if generated.
16718
16719    Added a install-data-local target to install the Doxygen documentation
16720    only when it has been generated. In order to correctly remove the docs,
16721    a corresponding uninstall-local target was added.
16722
16723    If the doxygen docs exist in the source tree, they will also be included
16724    in the distribution now too.
16725
16726 Makefile.am | 18 ++++++++++++++++++
16727 1 file changed, 18 insertions(+)
16728
16729commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73
16730Author: Lasse Collin <lasse.collin@tukaani.org>
16731Date:   2023-03-16 21:23:48 +0800
16732
16733    Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
16734
16735    Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
16736    can have the tags that need to be configured piped into the doxygen
16737    command through stdin with the overrides after Doxyfile's contents.
16738
16739    Going forward, the documentation should be generated in two different
16740    modes: liblzma or internal.
16741
16742    liblzma is useful for most users. It is the documentation for just
16743    the liblzma API header files. This is the default.
16744
16745    internal is for people who want to understand how xz and liblzma work.
16746    It might be useful for people who want to contribute to the project.
16747
16748 .gitignore                      |   3 +-
16749 Makefile.am                     |   1 -
16750 configure.ac                    |  40 ---
16751 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++---------------
16752 4 files changed, 456 insertions(+), 309 deletions(-)
16753
16754commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f
16755Author: Jia Tan <jiat0218@gmail.com>
16756Date:   2023-02-28 23:22:36 +0800
16757
16758    Tests: Remove unused macros and functions.
16759
16760 tests/tests.h | 75 -----------------------------------------------------------
16761 1 file changed, 75 deletions(-)
16762
16763commit af55191102f01e76de658c881299f0909ca0feda
16764Author: Jia Tan <jiat0218@gmail.com>
16765Date:   2022-12-29 21:52:15 +0800
16766
16767    liblzma: Defines masks for return values from lzma_index_checks().
16768
16769 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++
16770 tests/test_index.c           | 22 +++++++++++-----------
16771 2 files changed, 34 insertions(+), 11 deletions(-)
16772
16773commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73
16774Author: Jia Tan <jiat0218@gmail.com>
16775Date:   2023-01-12 22:29:07 +0800
16776
16777    Tests: Refactors existing lzma_index tests.
16778
16779    Converts the existing lzma_index tests into tuktests and covers every
16780    API function from index.h except for lzma_file_info_decoder, which can
16781    be tested in the future.
16782
16783 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++--------------
16784 1 file changed, 1492 insertions(+), 544 deletions(-)
16785
16786commit 717aa3651ce582807f379d8654c2516e1594df77
16787Author: Lasse Collin <lasse.collin@tukaani.org>
16788Date:   2023-03-11 18:42:08 +0200
16789
16790    xz: Simplify the error-label in Capsicum sandbox code.
16791
16792    Also remove unneeded "sandbox_allowed = false;" as this code
16793    will never be run more than once (making it work with multiple
16794    input files isn't trivial).
16795
16796 src/xz/file_io.c | 27 ++++++++++++---------------
16797 1 file changed, 12 insertions(+), 15 deletions(-)
16798
16799commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75
16800Author: Lasse Collin <lasse.collin@tukaani.org>
16801Date:   2023-03-07 19:59:23 +0200
16802
16803    xz: Make Capsicum sandbox more strict with stdin and stdout.
16804
16805 src/xz/file_io.c | 8 ++++++++
16806 1 file changed, 8 insertions(+)
16807
16808commit 916448d624aaf55cef0fc3e53754affb8c4f309d
16809Author: Jia Tan <jiat0218@gmail.com>
16810Date:   2023-03-08 23:08:46 +0800
16811
16812    Revert: "Add warning if Capsicum sandbox system calls are unsupported."
16813
16814    The warning causes the exit status to be 2, so this will cause problems
16815    for many scripted use cases for xz. The sandbox usage is already very
16816    limited already, so silently disabling this allows it to be more usable.
16817
16818 src/xz/file_io.c | 10 ++++------
16819 1 file changed, 4 insertions(+), 6 deletions(-)
16820
16821commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f
16822Author: Jia Tan <jiat0218@gmail.com>
16823Date:   2023-03-07 20:02:22 +0800
16824
16825    xz: Fix -Wunused-label in io_sandbox_enter().
16826
16827    Thanks to Xin Li for recommending the fix.
16828
16829 src/xz/file_io.c | 4 ++--
16830 1 file changed, 2 insertions(+), 2 deletions(-)
16831
16832commit 5fb936786601a1cd013a5d436adde65982b1e13c
16833Author: Jia Tan <jiat0218@gmail.com>
16834Date:   2023-03-06 21:37:45 +0800
16835
16836    xz: Add warning if Capsicum sandbox system calls are unsupported.
16837
16838    The warning is only used when errno == ENOSYS. Otherwise, xz still
16839    issues a fatal error.
16840
16841 src/xz/file_io.c | 2 ++
16842 1 file changed, 2 insertions(+)
16843
16844commit 61ee82cb1232a402c82282bbae42821f2b952b0d
16845Author: Jia Tan <jiat0218@gmail.com>
16846Date:   2023-03-06 21:27:53 +0800
16847
16848    xz: Skip Capsicum sandbox system calls when they are unsupported.
16849
16850    If a system has the Capsicum header files but does not actually
16851    implement the system calls, then this would render xz unusable. Instead,
16852    we can check if errno == ENOSYS and not issue a fatal error.
16853
16854 src/xz/file_io.c | 22 +++++++++++++++++-----
16855 1 file changed, 17 insertions(+), 5 deletions(-)
16856
16857commit f070722b57ba975a0dff36492d766f03026b1d21
16858Author: Jia Tan <jiat0218@gmail.com>
16859Date:   2023-03-06 21:08:26 +0800
16860
16861    xz: Reorder cap_enter() to beginning of capsicum sandbox code.
16862
16863    cap_enter() puts the process into the sandbox. If later calls to
16864    cap_rights_limit() fail, then the process can still have some extra
16865    protections.
16866
16867 src/xz/file_io.c | 6 +++---
16868 1 file changed, 3 insertions(+), 3 deletions(-)
16869
16870commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f
16871Author: Jia Tan <jiat0218@gmail.com>
16872Date:   2023-02-24 23:46:23 +0800
16873
16874    liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h.
16875
16876    lzma_lzma_preset() does not guarentee that the lzma_options_lzma are
16877    usable in an encoder even if it returns false (success). If liblzma
16878    is built with default configurations, then the options will always be
16879    usable. However if the match finders hc3, hc4, or bt4 are disabled, then
16880    the options may not be usable depending on the preset level requested.
16881
16882    The documentation was updated to reflect this complexity, since this
16883    behavior was unclear before.
16884
16885 src/liblzma/api/lzma/lzma12.h | 5 +++++
16886 1 file changed, 5 insertions(+)
16887
16888commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99
16889Author: Lasse Collin <lasse.collin@tukaani.org>
16890Date:   2023-02-27 18:38:35 +0200
16891
16892    CMake: Require that the C compiler supports C99 or a newer standard.
16893
16894    Thanks to autoantwort for reporting the issue and suggesting
16895    a different patch:
16896    https://github.com/tukaani-project/xz/pull/42
16897
16898 CMakeLists.txt | 8 ++++++++
16899 1 file changed, 8 insertions(+)
16900
16901commit 9aa7fdeb04c486d2700967090956af88fdccab7e
16902Author: Jia Tan <jiat0218@gmail.com>
16903Date:   2023-02-24 18:10:37 +0800
16904
16905    Tests: Small tweak to test-vli.c.
16906
16907    The static global variables can be disabled if encoders and decoders
16908    are not built. If they are not disabled and -Werror is used, it will
16909    cause an usused warning as an error.
16910
16911 tests/test_vli.c | 2 ++
16912 1 file changed, 2 insertions(+)
16913
16914commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9
16915Author: Jia Tan <jiat0218@gmail.com>
16916Date:   2023-02-06 21:46:43 +0800
16917
16918    liblzma: Replace '\n' -> newline in filter.h documentation.
16919
16920    The '\n' renders as a newline when the comments are converted to html
16921    by Doxygen.
16922
16923 src/liblzma/api/lzma/filter.h | 2 +-
16924 1 file changed, 1 insertion(+), 1 deletion(-)
16925
16926commit 002006be62d77c706565fa6ec828bea64be302da
16927Author: Jia Tan <jiat0218@gmail.com>
16928Date:   2023-02-06 21:45:37 +0800
16929
16930    liblzma: Shorten return description for two functions in filter.h.
16931
16932    Shorten the description for lzma_raw_encoder_memusage() and
16933    lzma_raw_decoder_memusage().
16934
16935 src/liblzma/api/lzma/filter.h | 8 ++------
16936 1 file changed, 2 insertions(+), 6 deletions(-)
16937
16938commit 463d9359b8595f01d44ada1739d75aeb87f36524
16939Author: Jia Tan <jiat0218@gmail.com>
16940Date:   2023-02-06 21:44:45 +0800
16941
16942    liblzma: Reword a few lines in filter.h
16943
16944 src/liblzma/api/lzma/filter.h | 10 +++++-----
16945 1 file changed, 5 insertions(+), 5 deletions(-)
16946
16947commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0
16948Author: Jia Tan <jiat0218@gmail.com>
16949Date:   2023-02-06 21:35:06 +0800
16950
16951    liblzma: Improve documentation in filter.h.
16952
16953    All functions now explicitly specify parameter and return values.
16954    The notes and code annotations were moved before the parameter and
16955    return value descriptions for consistency.
16956
16957    Also, the description above lzma_filter_encoder_is_supported() about
16958    not being able to list available filters was removed since
16959    lzma_str_list_filters() will do this.
16960
16961 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++----------------
16962 1 file changed, 143 insertions(+), 83 deletions(-)
16963
16964commit 805b45cd60bfd5da3d3d89077de3789df179b324
16965Author: Lasse Collin <lasse.collin@tukaani.org>
16966Date:   2023-02-23 20:46:16 +0200
16967
16968    Update THANKS.
16969
16970 THANKS | 1 +
16971 1 file changed, 1 insertion(+)
16972
16973commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
16974Author: Lasse Collin <lasse.collin@tukaani.org>
16975Date:   2023-02-21 22:57:10 +0200
16976
16977    liblzma: Avoid null pointer + 0 (undefined behavior in C).
16978
16979    In the C99 and C17 standards, section 6.5.6 paragraph 8 means that
16980    adding 0 to a null pointer is undefined behavior. As of writing,
16981    "clang -fsanitize=undefined" (Clang 15) diagnoses this. However,
16982    I'm not aware of any compiler that would take advantage of this
16983    when optimizing (Clang 15 included). It's good to avoid this anyway
16984    since compilers might some day infer that pointer arithmetic implies
16985    that the pointer is not NULL. That is, the following foo() would then
16986    unconditionally return 0, even for foo(NULL, 0):
16987
16988        void bar(char *a, char *b);
16989
16990        int foo(char *a, size_t n)
16991        {
16992            bar(a, a + n);
16993            return a == NULL;
16994        }
16995
16996    In contrast to C, C++ explicitly allows null pointer + 0. So if
16997    the above is compiled as C++ then there is no undefined behavior
16998    in the foo(NULL, 0) call.
16999
17000    To me it seems that changing the C standard would be the sane
17001    thing to do (just add one sentence) as it would ensure that a huge
17002    amount of old code won't break in the future. Based on web searches
17003    it seems that a large number of codebases (where null pointer + 0
17004    occurs) are being fixed instead to be future-proof in case compilers
17005    will some day optimize based on it (like making the above foo(NULL, 0)
17006    return 0) which in the worst case will cause security bugs.
17007
17008    Some projects don't plan to change it. For example, gnulib and thus
17009    many GNU tools currently require that null pointer + 0 is defined:
17010
17011        https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html
17012
17013        https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html
17014
17015    In XZ Utils null pointer + 0 issue should be fixed after this
17016    commit. This adds a few if-statements and thus branches to avoid
17017    null pointer + 0. These check for size > 0 instead of ptr != NULL
17018    because this way bugs where size > 0 && ptr == NULL will likely
17019    get caught quickly. None of them are in hot spots so it shouldn't
17020    matter for performance.
17021
17022    A little less readable version would be replacing
17023
17024        ptr + offset
17025
17026    with
17027
17028        offset != 0 ? ptr + offset : ptr
17029
17030    or creating a macro for it:
17031
17032        #define my_ptr_add(ptr, offset) \
17033                ((offset) != 0 ? ((ptr) + (offset)) : (ptr))
17034
17035    Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1,
17036    Clang >= 7, and Clang-based ICX to optimize it to the very same code
17037    as ptr + offset. That is, it won't create a branch. So for hot code
17038    this could be a good solution to avoid null pointer + 0. Unfortunately
17039    other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a
17040    branch from my_ptr_add().
17041
17042    Thanks to Marcin Kowalczyk for reporting the problem:
17043    https://github.com/tukaani-project/xz/issues/36
17044
17045 src/liblzma/common/block_decoder.c |  5 ++++-
17046 src/liblzma/common/block_encoder.c |  7 +++++--
17047 src/liblzma/common/common.c        | 20 ++++++++++++++------
17048 src/liblzma/common/index_decoder.c | 13 ++++++++++---
17049 src/liblzma/common/index_encoder.c | 11 +++++++++--
17050 src/liblzma/common/index_hash.c    | 13 ++++++++++---
17051 src/liblzma/common/lzip_decoder.c  |  6 +++++-
17052 src/liblzma/delta/delta_decoder.c  |  7 ++++++-
17053 src/liblzma/delta/delta_encoder.c  | 12 ++++++++++--
17054 src/liblzma/simple/simple_coder.c  |  6 ++++--
17055 10 files changed, 77 insertions(+), 23 deletions(-)
17056
17057commit fa9065fac54194fe0407fc7f0cc9633fdce13c21
17058Author: Jia Tan <jiat0218@gmail.com>
17059Date:   2023-02-07 00:00:44 +0800
17060
17061    liblzma: Adjust container.h for consistency with filter.h.
17062
17063 src/liblzma/api/lzma/container.h | 20 +++++++++-----------
17064 1 file changed, 9 insertions(+), 11 deletions(-)
17065
17066commit 00a721b63d82dfb658dca8d8cb599d8a245c663f
17067Author: Jia Tan <jiat0218@gmail.com>
17068Date:   2023-02-07 00:00:09 +0800
17069
17070    liblzma: Fix small typos and reword a few things in filter.h.
17071
17072 src/liblzma/api/lzma/container.h | 13 ++++++-------
17073 1 file changed, 6 insertions(+), 7 deletions(-)
17074
17075commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39
17076Author: Jia Tan <jiat0218@gmail.com>
17077Date:   2023-02-06 23:42:08 +0800
17078
17079    liblzma: Convert list of flags in lzma_mt to bulleted list.
17080
17081 src/liblzma/api/lzma/container.h | 9 ++++++---
17082 1 file changed, 6 insertions(+), 3 deletions(-)
17083
17084commit dbd47622eb99fefb3538a22baec3def002aa56f5
17085Author: Jia Tan <jiat0218@gmail.com>
17086Date:   2023-01-26 23:17:41 +0800
17087
17088    liblzma: Fix typo in documentation in container.h
17089
17090    lzma_microlzma_decoder -> lzma_microlzma_encoder
17091
17092 src/liblzma/api/lzma/container.h | 2 +-
17093 1 file changed, 1 insertion(+), 1 deletion(-)
17094
17095commit 14cd30806d69e55906073745bcce3ee50e0ec942
17096Author: Jia Tan <jiat0218@gmail.com>
17097Date:   2023-01-26 23:16:34 +0800
17098
17099    liblzma: Improve documentation for container.h
17100
17101    Standardizing each function to always specify parameters and return
17102    values. Also moved the parameters and return values to the end of each
17103    function description.
17104
17105 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++--------------
17106 1 file changed, 93 insertions(+), 53 deletions(-)
17107
17108commit c9c8bfae3502842dcead85eeb2b951b437c2cd88
17109Author: Jia Tan <jiat0218@gmail.com>
17110Date:   2023-02-22 20:59:41 +0800
17111
17112    CMake: Add LZIP decoder test to list of tests.
17113
17114 CMakeLists.txt | 1 +
17115 1 file changed, 1 insertion(+)
17116
17117commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a
17118Author: Lasse Collin <lasse.collin@tukaani.org>
17119Date:   2023-02-17 20:56:49 +0200
17120
17121    Update THANKS.
17122
17123 THANKS | 1 +
17124 1 file changed, 1 insertion(+)
17125
17126commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
17127Author: Lasse Collin <lasse.collin@tukaani.org>
17128Date:   2023-02-17 20:48:28 +0200
17129
17130    Build: Use only the generic symbol versioning on MicroBlaze.
17131
17132    On MicroBlaze, GCC 12 is broken in sense that
17133    __has_attribute(__symver__) returns true but it still doesn't
17134    support the __symver__ attribute even though the platform is ELF
17135    and symbol versioning is supported if using the traditional
17136    __asm__(".symver ...") method. Avoiding the traditional method is
17137    good because it breaks LTO (-flto) builds with GCC.
17138
17139    See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
17140
17141    For now the only extra symbols in liblzma_linux.map are the
17142    compatibility symbols with the patch that spread from RHEL/CentOS 7.
17143    These require the use of __symver__ attribute or __asm__(".symver ...")
17144    in the C code. Compatibility with the patch from CentOS 7 doesn't
17145    seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze
17146    instead. It doesn't require anything special in the C code and thus
17147    no LTO issues either.
17148
17149    An alternative would be to detect support for __symver__
17150    attribute in configure.ac and CMakeLists.txt and fall back
17151    to __asm__(".symver ...") but then LTO would be silently broken
17152    on MicroBlaze. It sounds likely that MicroBlaze is a special
17153    case so let's treat it as a such because that is simpler. If
17154    a similar issue exists on some other platform too then hopefully
17155    someone will report it and this can be reconsidered.
17156
17157    (This doesn't do the same fix in CMakeLists.txt. Perhaps it should
17158    but perhaps CMake build of liblzma doesn't matter much on MicroBlaze.
17159    The problem breaks the build so it's easy to notice and can be fixed
17160    later.)
17161
17162    Thanks to Vincent Fazio for reporting the problem and proposing
17163    a patch (in the end that solution wasn't used):
17164    https://github.com/tukaani-project/xz/pull/32
17165
17166 configure.ac | 12 ++++++++++--
17167 1 file changed, 10 insertions(+), 2 deletions(-)
17168
17169commit d831072cceca458d94d2d5da201862f6d43a417b
17170Author: Lasse Collin <lasse.collin@tukaani.org>
17171Date:   2023-02-16 21:09:00 +0200
17172
17173    liblzma: Very minor API doc tweaks.
17174
17175    Use "member" to refer to struct members as that's the term used
17176    by the C standard.
17177
17178    Use lzma_options_delta.dist and such in docs so that in Doxygen's
17179    HTML output they will link to the doc of the struct member.
17180
17181    Clean up a few trailing white spaces too.
17182
17183 src/liblzma/api/lzma/block.h        |  6 +++---
17184 src/liblzma/api/lzma/delta.h        |  6 +++---
17185 src/liblzma/api/lzma/index.h        | 10 +++++-----
17186 src/liblzma/api/lzma/stream_flags.h |  6 +++---
17187 4 files changed, 14 insertions(+), 14 deletions(-)
17188
17189commit f029daea39c215fd7d5cb6b6798818b055cf5b22
17190Author: Jia Tan <jiat0218@gmail.com>
17191Date:   2023-02-17 00:54:33 +0800
17192
17193    liblzma: Adjust spacing in doc headers in bcj.h.
17194
17195 src/liblzma/api/lzma/bcj.h | 14 +++++++-------
17196 1 file changed, 7 insertions(+), 7 deletions(-)
17197
17198commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c
17199Author: Jia Tan <jiat0218@gmail.com>
17200Date:   2023-02-17 00:44:44 +0800
17201
17202    liblzma: Adjust documentation in bcj.h for consistent style.
17203
17204 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++---------------------
17205 1 file changed, 22 insertions(+), 21 deletions(-)
17206
17207commit efa498c13b883810497e0ea8a169efd6f48f5026
17208Author: Jia Tan <jiat0218@gmail.com>
17209Date:   2023-02-17 00:36:05 +0800
17210
17211    liblzma: Rename field => member in documentation.
17212
17213    Also adjusted preset value => preset level.
17214
17215 src/liblzma/api/lzma/base.h         | 18 +++++++--------
17216 src/liblzma/api/lzma/block.h        | 44 ++++++++++++++++++-------------------
17217 src/liblzma/api/lzma/container.h    | 26 +++++++++++-----------
17218 src/liblzma/api/lzma/delta.h        | 12 +++++-----
17219 src/liblzma/api/lzma/index.h        | 30 ++++++++++++-------------
17220 src/liblzma/api/lzma/lzma12.h       | 28 +++++++++++------------
17221 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++--------------
17222 7 files changed, 95 insertions(+), 95 deletions(-)
17223
17224commit 718b22a6c5e3ee5de123323ea798872381f9320e
17225Author: Lasse Collin <lasse.collin@tukaani.org>
17226Date:   2023-02-16 17:59:50 +0200
17227
17228    liblzma: Silence a warning from MSVC.
17229
17230    It gives C4146 here since unary minus with unsigned integer
17231    is still unsigned (which is the intention here). Doing it
17232    with substraction makes it clearer and avoids the warning.
17233
17234    Thanks to Nathan Moinvaziri for reporting this.
17235
17236 src/liblzma/check/crc64_fast.c | 2 +-
17237 1 file changed, 1 insertion(+), 1 deletion(-)
17238
17239commit 87c53553fa7d50f777b4edfa99f2083628f590fe
17240Author: Jia Tan <jiat0218@gmail.com>
17241Date:   2023-02-16 21:04:54 +0800
17242
17243     liblzma: Improve documentation for stream_flags.h
17244
17245    Standardizing each function to always specify parameters and return
17246    values. Also moved the parameters and return values to the end of each
17247    function description.
17248
17249    A few small things were reworded and long sentences broken up.
17250
17251 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++---------------
17252 1 file changed, 46 insertions(+), 30 deletions(-)
17253
17254commit 13d99e75a543e9e5f8633cc241eae55b91a3b242
17255Author: Jia Tan <jiat0218@gmail.com>
17256Date:   2023-02-14 21:50:16 +0800
17257
17258    liblzma: Improve documentation in lzma12.h.
17259
17260    All functions now explicitly specify parameter and return values.
17261
17262 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++---------
17263 1 file changed, 23 insertions(+), 9 deletions(-)
17264
17265commit 43ec344c868f930e96879eb9e49212cce92a9884
17266Author: Jia Tan <jiat0218@gmail.com>
17267Date:   2023-01-27 22:44:06 +0800
17268
17269    liblzma: Improve documentation in check.h.
17270
17271    All functions now explicitly specify parameter and return values.
17272    Also moved the note about SHA-256 functions not being exported to the
17273    top of the file.
17274
17275 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++-------------
17276 1 file changed, 28 insertions(+), 13 deletions(-)
17277
17278commit 9c71db4e884fd49aea3d1e711036bff45ca66487
17279Author: Jia Tan <jiat0218@gmail.com>
17280Date:   2023-02-08 21:33:52 +0800
17281
17282    liblzma: Improve documentation in index.h
17283
17284    All functions now explicitly specify parameter and return values.
17285
17286 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++-------------
17287 1 file changed, 126 insertions(+), 51 deletions(-)
17288
17289commit 421f2f2e160720f6009e3b6a125cafe2feaa9419
17290Author: Jia Tan <jiat0218@gmail.com>
17291Date:   2023-02-08 20:35:32 +0800
17292
17293    liblzma: Reword a comment in index.h.
17294
17295 src/liblzma/api/lzma/index.h | 4 ++--
17296 1 file changed, 2 insertions(+), 2 deletions(-)
17297
17298commit b67539484981351d501b68de5e925425e50c59b1
17299Author: Jia Tan <jiat0218@gmail.com>
17300Date:   2023-02-08 20:30:23 +0800
17301
17302    liblzma: Omit lzma_index_iter's internal field from Doxygen docs.
17303
17304    Add \private above this field and its sub-fields since it is not meant
17305    to be modified by users.
17306
17307 src/liblzma/api/lzma/index.h | 9 ++++++++-
17308 1 file changed, 8 insertions(+), 1 deletion(-)
17309
17310commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96
17311Author: Jia Tan <jiat0218@gmail.com>
17312Date:   2023-01-21 21:32:03 +0800
17313
17314    liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR.
17315
17316    LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put
17317    documentation after a member.
17318
17319 src/liblzma/api/lzma/base.h | 2 +-
17320 1 file changed, 1 insertion(+), 1 deletion(-)
17321
17322commit 816fec125aa74bcef46512c73acc6d9e5a700d15
17323Author: Jia Tan <jiat0218@gmail.com>
17324Date:   2023-01-21 00:29:38 +0800
17325
17326    liblzma: Improve documentation for base.h.
17327
17328    Standardizing each function to always specify params and return values.
17329    Also fixed a small grammar mistake.
17330
17331 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++-----
17332 1 file changed, 25 insertions(+), 5 deletions(-)
17333
17334commit 862dacef1a4e7e1b28d465956fa4244ed01df154
17335Author: Jia Tan <jiat0218@gmail.com>
17336Date:   2023-02-14 00:12:34 +0800
17337
17338    liblzma: Add one more missing [out] annotation in vli.h
17339
17340 src/liblzma/api/lzma/vli.h | 2 +-
17341 1 file changed, 1 insertion(+), 1 deletion(-)
17342
17343commit 867b08ae4254bf55dd1f7fd502cc618231b92f75
17344Author: Jia Tan <jiat0218@gmail.com>
17345Date:   2023-02-14 00:08:33 +0800
17346
17347    liblzma: Minor improvements to vli.h.
17348
17349    Added [out] annotations to parameters that are pointers and can have
17350    their value changed. Also added a clarification to lzma_vli_is_valid.
17351
17352 src/liblzma/api/lzma/vli.h | 13 +++++++------
17353 1 file changed, 7 insertions(+), 6 deletions(-)
17354
17355commit 90d0e628ff11e5030bcc4fc000bca056adda6603
17356Author: Jia Tan <jiat0218@gmail.com>
17357Date:   2023-02-10 21:38:02 +0800
17358
17359    liblzma: Add comments for macros in delta.h.
17360
17361    Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness
17362    and to avoid Doxygen warnings.
17363
17364 src/liblzma/api/lzma/delta.h | 8 ++++++++
17365 1 file changed, 8 insertions(+)
17366
17367commit 9255fffdb13e59874bf7f95c370c410ad3a7e114
17368Author: Jia Tan <jiat0218@gmail.com>
17369Date:   2023-02-10 21:35:23 +0800
17370
17371    liblzma: Improve documentation in index_hash.h.
17372
17373    All functions now explicitly specify parameter and return values.
17374    Also reworded the description of lzma_index_hash_init() for readability.
17375
17376 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++---------
17377 1 file changed, 27 insertions(+), 9 deletions(-)
17378
17379commit 1dbe12b90cff79bb51923733ac0840747b4b4131
17380Author: Lasse Collin <lasse.collin@tukaani.org>
17381Date:   2023-02-07 19:07:45 +0200
17382
17383    xz: Improve the comment about start_time in mytime.c.
17384
17385    start_time is relative to an arbitary point in time, it's not
17386    time of day, so using it for anything else than time differences
17387    wouldn't make sense.
17388
17389 src/xz/mytime.c | 15 ++++++++++-----
17390 1 file changed, 10 insertions(+), 5 deletions(-)
17391
17392commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56
17393Author: Jia Tan <jiat0218@gmail.com>
17394Date:   2023-02-04 21:06:35 +0800
17395
17396    Build: Adjust CMake version search regex.
17397
17398    Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH
17399    macros do not need to be on consecutive lines in version.h. They can be
17400    separated by more whitespace, comments, or even other content, as long
17401    as they appear in the proper order (major, minor, patch).
17402
17403 CMakeLists.txt | 2 ++
17404 1 file changed, 2 insertions(+)
17405
17406commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac
17407Author: Jia Tan <jiat0218@gmail.com>
17408Date:   2023-02-04 12:01:23 +0800
17409
17410    xz: Add a comment clarifying the use of start_time in mytime.c.
17411
17412 src/xz/mytime.c | 5 +++++
17413 1 file changed, 5 insertions(+)
17414
17415commit 912af91b10a18fb9bb3167247ecaaefca8248ee9
17416Author: Jia Tan <jiat0218@gmail.com>
17417Date:   2023-01-26 09:50:21 +0800
17418
17419    liblzma: Improve documentation for version.h.
17420
17421    Specified parameter and return values for API functions and documented
17422    a few more of the macros.
17423
17424 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++-------
17425 1 file changed, 22 insertions(+), 7 deletions(-)
17426
17427commit 850adec171203cd22b57d016084d713f72ae5307
17428Author: Jia Tan <jiat0218@gmail.com>
17429Date:   2023-02-03 22:52:55 +0800
17430
17431    Docs: Omit SIGTSTP not handled from TODO.
17432
17433 TODO | 4 ----
17434 1 file changed, 4 deletions(-)
17435
17436commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3
17437Author: Jia Tan <jiat0218@gmail.com>
17438Date:   2023-02-03 00:33:32 +0800
17439
17440    liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length.
17441
17442    The bug is only a problem in applications that do not properly terminate
17443    the filters[] array with LZMA_VLI_UNKNOWN or have more than
17444    LZMA_FILTERS_MAX filters. This bug does not affect xz.
17445
17446 src/liblzma/common/string_conversion.c | 7 +++++++
17447 1 file changed, 7 insertions(+)
17448
17449commit e01f01b9af1c074463b92694a16ecc16a31907c0
17450Author: Jia Tan <jiat0218@gmail.com>
17451Date:   2023-02-03 00:32:47 +0800
17452
17453    Tests: Create test_filter_str.c.
17454
17455    Tests lzma_str_to_filters(), lzma_str_from_filters(), and
17456    lzma_str_list_filters() API functions.
17457
17458 CMakeLists.txt          |   1 +
17459 tests/Makefile.am       |   2 +
17460 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++
17461 3 files changed, 596 insertions(+)
17462
17463commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26
17464Author: Jia Tan <jiat0218@gmail.com>
17465Date:   2023-01-22 08:49:00 +0800
17466
17467    liblzma: Fix typos in comments in string_conversion.c.
17468
17469 src/liblzma/common/string_conversion.c | 4 ++--
17470 1 file changed, 2 insertions(+), 2 deletions(-)
17471
17472commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6
17473Author: Jia Tan <jiat0218@gmail.com>
17474Date:   2023-02-03 00:20:20 +0800
17475
17476    liblzma: Clarify block encoder and decoder documentation.
17477
17478    Added a few sentences to the description for lzma_block_encoder() and
17479    lzma_block_decoder() to highlight that the Block Header must be coded
17480    before calling these functions.
17481
17482 src/liblzma/api/lzma/block.h | 15 +++++++++++----
17483 1 file changed, 11 insertions(+), 4 deletions(-)
17484
17485commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f
17486Author: Jia Tan <jiat0218@gmail.com>
17487Date:   2023-02-03 00:12:24 +0800
17488
17489    Update lzma_block documentation for lzma_block_uncomp_encode().
17490
17491 src/liblzma/api/lzma/block.h | 3 +++
17492 1 file changed, 3 insertions(+)
17493
17494commit 504cf4af895fd45aad0c56eb3b49d90acd54465b
17495Author: Jia Tan <jiat0218@gmail.com>
17496Date:   2023-02-03 00:11:37 +0800
17497
17498    liblzma: Minor edits to lzma_block header_size documentation.
17499
17500 src/liblzma/api/lzma/block.h | 3 ++-
17501 1 file changed, 2 insertions(+), 1 deletion(-)
17502
17503commit 115b720fb521f99aa832d06b2c12b7f8c6c50680
17504Author: Jia Tan <jiat0218@gmail.com>
17505Date:   2023-02-03 00:11:07 +0800
17506
17507    liblzma: Enumerate functions that read version in lzma_block.
17508
17509 src/liblzma/api/lzma/block.h | 13 +++++++++++--
17510 1 file changed, 11 insertions(+), 2 deletions(-)
17511
17512commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1
17513Author: Jia Tan <jiat0218@gmail.com>
17514Date:   2023-02-03 00:10:34 +0800
17515
17516    liblzma: Clarify comment in block.h.
17517
17518 src/liblzma/api/lzma/block.h | 3 ++-
17519 1 file changed, 2 insertions(+), 1 deletion(-)
17520
17521commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8
17522Author: Jia Tan <jiat0218@gmail.com>
17523Date:   2023-02-03 00:07:23 +0800
17524
17525    liblzma: Improve documentation for block.h.
17526
17527    Standardizing each function to always specify params and return values.
17528    Output pointer parameters are also marked with doxygen style [out] to
17529    make it clear. Any note sections were also moved above the parameter and
17530    return sections for consistency.
17531
17532 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++----------
17533 1 file changed, 75 insertions(+), 21 deletions(-)
17534
17535commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3
17536Author: Jia Tan <jiat0218@gmail.com>
17537Date:   2023-02-01 23:38:30 +0800
17538
17539    liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION.
17540
17541    The flag description for LZMA_STR_NO_VALIDATION was previously confusing
17542    about the treatment for filters than cannot be used with .xz format
17543    (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that
17544    LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS.
17545
17546 src/liblzma/api/lzma/filter.h | 5 +++--
17547 1 file changed, 3 insertions(+), 2 deletions(-)
17548
17549commit 315c64c7e18acc59a745b68148188a73e998252b
17550Author: Jia Tan <jiat0218@gmail.com>
17551Date:   2023-02-01 21:43:33 +0800
17552
17553    CI: Update .gitignore for artifacts directory in build-aux.
17554
17555    The workflow action for our CI pipeline can only reference artifacts in
17556    the source directory, so we should ignore these files if the ci_build.sh
17557    is run locally.
17558
17559 .gitignore | 1 +
17560 1 file changed, 1 insertion(+)
17561
17562commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f
17563Author: Jia Tan <jiat0218@gmail.com>
17564Date:   2023-02-01 21:36:46 +0800
17565
17566    CI: Add quotes around variables in a few places.
17567
17568 build-aux/ci_build.sh | 6 +++---
17569 1 file changed, 3 insertions(+), 3 deletions(-)
17570
17571commit 3a401b0e0c7a2658af7801dd0690256ef24149e0
17572Author: Jia Tan <jiat0218@gmail.com>
17573Date:   2023-02-01 21:36:22 +0800
17574
17575    CI: Upload test logs as artifacts if a test fails.
17576
17577 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++--------------
17578 build-aux/ci_build.sh    | 31 ++++++++++++++++++++-----
17579 2 files changed, 68 insertions(+), 23 deletions(-)
17580
17581commit 610dde15a88f12cc540424eb3eb3ed61f3876f74
17582Author: Lasse Collin <lasse.collin@tukaani.org>
17583Date:   2023-01-27 20:02:49 +0200
17584
17585    xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available.
17586
17587    mythread.h and thus liblzma already does it.
17588
17589 src/xz/mytime.c  | 11 ++++++++---
17590 src/xz/private.h |  3 +--
17591 2 files changed, 9 insertions(+), 5 deletions(-)
17592
17593commit 2e02877288f6576cd4595e9ac7684f867cd47d68
17594Author: Lasse Collin <lasse.collin@tukaani.org>
17595Date:   2023-01-27 19:41:19 +0200
17596
17597    po4a/po4a.conf: Sort the language identifiers in alphabetical order.
17598
17599 po4a/po4a.conf | 2 +-
17600 1 file changed, 1 insertion(+), 1 deletion(-)
17601
17602commit ff592c616eda274215b485cf1b8d34f060c9f3be
17603Author: Lasse Collin <lasse.collin@tukaani.org>
17604Date:   2023-01-26 18:29:17 +0200
17605
17606    xz: Add SIGTSTP handler for progress indicator time keeping.
17607
17608    This way, if xz is stopped the elapsed time and estimated time
17609    remaining won't get confused by the amount of time spent in
17610    the stopped state.
17611
17612    This raises SIGSTOP. It's not clear to me if this is the correct way.
17613    POSIX and glibc docs say that SIGTSTP shouldn't stop the process if
17614    it is orphaned but this commit doesn't attempt to handle that.
17615
17616    Search for SIGTSTP in section 2.4.3:
17617
17618    https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
17619
17620 src/xz/mytime.c  | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
17621 src/xz/mytime.h  |  6 ++++++
17622 src/xz/private.h | 12 ++++++++++++
17623 src/xz/signals.c | 17 ++++++++++++++++-
17624 4 files changed, 89 insertions(+), 2 deletions(-)
17625
17626commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76
17627Author: Jia Tan <jiat0218@gmail.com>
17628Date:   2023-01-27 20:14:51 +0800
17629
17630    Translations: Add Brazilian Portuguese translation of man pages.
17631
17632    Thanks to Rafael Fontenelle.
17633
17634 po4a/po4a.conf |    2 +-
17635 po4a/pt_BR.po  | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17636 2 files changed, 3678 insertions(+), 1 deletion(-)
17637
17638commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc
17639Author: Lasse Collin <lasse.collin@tukaani.org>
17640Date:   2023-01-26 17:51:06 +0200
17641
17642    Build: Avoid different quoting style in --enable-doxygen doc.
17643
17644 configure.ac | 10 +++++-----
17645 1 file changed, 5 insertions(+), 5 deletions(-)
17646
17647commit af5a4bd5afc089d9697756dded38feafaa987ae4
17648Author: Lasse Collin <lasse.collin@tukaani.org>
17649Date:   2023-01-26 17:39:46 +0200
17650
17651    tuklib_physmem: Check for __has_warning before GCC version.
17652
17653    Clang can be configured to fake a too high GCC version so
17654    this way it's more robust.
17655
17656 src/common/tuklib_physmem.c | 6 +++---
17657 1 file changed, 3 insertions(+), 3 deletions(-)
17658
17659commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4
17660Author: Jia Tan <jiat0218@gmail.com>
17661Date:   2023-01-24 20:48:50 +0800
17662
17663    liblzma: Fix documentation in filter.h for lzma_str_to_filters()
17664
17665    The previous documentation for lzma_str_to_filters() was technically
17666    correct, but misleading. lzma_str_to_filters() returns NULL on success,
17667    which is in practice always defined to 0. This is the same value as
17668    LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should
17669    be more clear.
17670
17671 src/liblzma/api/lzma/filter.h | 2 +-
17672 1 file changed, 1 insertion(+), 1 deletion(-)
17673
17674commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2
17675Author: Lasse Collin <lasse.collin@tukaani.org>
17676Date:   2023-01-23 23:44:58 +0200
17677
17678    Revert "tuklib_common: Define __has_warning if it is not defined."
17679
17680    This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766.
17681
17682    Macros in the reserved namespace (_foo or __foo) shouldn't be #defined
17683    without a very good reason. Here the alternative would have been
17684    to #define tuklib_has_warning(str) to an approriate value.
17685
17686    Also the tuklib_* files should stay namespace clean if possible.
17687
17688 src/common/tuklib_common.h | 7 -------
17689 1 file changed, 7 deletions(-)
17690
17691commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575
17692Author: Lasse Collin <lasse.collin@tukaani.org>
17693Date:   2023-01-23 23:38:34 +0200
17694
17695    tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows.
17696
17697    __has_warning and other __has_foo macros are meant to become
17698    compiler-agnostic so it's not good to check for __clang__ with it.
17699
17700    This also relied on tuklib_common.h for #defining __has_warning
17701    which was confusing as #defining reserved macros is generally
17702    not a good idea.
17703
17704 src/common/tuklib_physmem.c | 17 +++++++++++++----
17705 1 file changed, 13 insertions(+), 4 deletions(-)
17706
17707commit 683a3c7e2fcd922200c31078e5c9dd1348e90941
17708Author: Lasse Collin <lasse.collin@tukaani.org>
17709Date:   2023-01-24 00:05:38 +0200
17710
17711    xz: Flip the return value of suffix_is_set to match the documentation.
17712
17713    Also edit style to match the existing coding style in the project.
17714
17715 src/xz/args.c   | 6 +++---
17716 src/xz/suffix.c | 2 +-
17717 src/xz/suffix.h | 1 +
17718 3 files changed, 5 insertions(+), 4 deletions(-)
17719
17720commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0
17721Author: Jia Tan <jiat0218@gmail.com>
17722Date:   2023-01-07 21:55:06 +0800
17723
17724    xz: Refactor duplicated check for custom suffix when using --format=raw
17725
17726 src/xz/args.c   |  8 ++++++++
17727 src/xz/suffix.c | 26 ++++++++------------------
17728 src/xz/suffix.h |  7 +++++++
17729 3 files changed, 23 insertions(+), 18 deletions(-)
17730
17731commit 9663141274e01592a281a7f2df5d7a31a1dac8bf
17732Author: Jia Tan <jiat0218@gmail.com>
17733Date:   2023-01-20 21:53:14 +0800
17734
17735    liblzma: Set documentation on all reserved fields to private.
17736
17737    This prevents the reserved fields from being part of the generated
17738    Doxygen documentation.
17739
17740 src/liblzma/api/lzma/base.h         | 17 +++++++++++++++
17741 src/liblzma/api/lzma/block.h        | 43 +++++++++++++++++++++++++++++++++++++
17742 src/liblzma/api/lzma/container.h    | 24 +++++++++++++++++++++
17743 src/liblzma/api/lzma/delta.h        | 12 +++++++++++
17744 src/liblzma/api/lzma/index.h        | 27 +++++++++++++++++++++++
17745 src/liblzma/api/lzma/lzma12.h       | 22 +++++++++++++++++++
17746 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++
17747 7 files changed, 173 insertions(+)
17748
17749commit 6327a045f34d48fc5afc58ba0d32a82c94403049
17750Author: Jia Tan <jiat0218@gmail.com>
17751Date:   2022-12-20 21:39:59 +0800
17752
17753    Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17.
17754
17755    A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released
17756    in 2019, so this should be compatible with resonable modern distros.
17757    The purpose of Doxygen these days is for docs on the website, so it
17758    doesn't necessarily have to work for everyone. Just when the maintainers
17759    want to update the docs.
17760
17761 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++---------------
17762 1 file changed, 1893 insertions(+), 630 deletions(-)
17763
17764commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad
17765Author: Jia Tan <jiat0218@gmail.com>
17766Date:   2023-01-03 20:37:30 +0800
17767
17768    Doxygen: Make Doxygen only produce liblzma API documentation by default.
17769
17770    Doxygen is now configurable in autotools only with
17771    --enable-doxygen=[api|all]. The default is "api", which will only
17772    generate HTML output for liblzma API functions. The LaTex documentation
17773    output was also disabled.
17774
17775 Doxyfile.in  | 18 +++++++++---------
17776 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
17777 2 files changed, 48 insertions(+), 9 deletions(-)
17778
17779commit 6fcf4671b6047113c583a0919fc850987a4ec5f4
17780Author: Jia Tan <jiat0218@gmail.com>
17781Date:   2022-12-21 23:59:43 +0800
17782
17783    liblzma: Highlight liblzma API headers should not be included directly.
17784
17785    This improves the generated Doxygen HTML files to better highlight
17786    how to properly use the liblzma API header files.
17787
17788 src/liblzma/api/lzma/base.h         | 5 +++--
17789 src/liblzma/api/lzma/bcj.h          | 5 +++--
17790 src/liblzma/api/lzma/block.h        | 5 +++--
17791 src/liblzma/api/lzma/check.h        | 5 +++--
17792 src/liblzma/api/lzma/container.h    | 5 +++--
17793 src/liblzma/api/lzma/delta.h        | 5 +++--
17794 src/liblzma/api/lzma/filter.h       | 5 +++--
17795 src/liblzma/api/lzma/hardware.h     | 5 +++--
17796 src/liblzma/api/lzma/index.h        | 5 +++--
17797 src/liblzma/api/lzma/index_hash.h   | 5 +++--
17798 src/liblzma/api/lzma/lzma12.h       | 5 +++--
17799 src/liblzma/api/lzma/stream_flags.h | 5 +++--
17800 src/liblzma/api/lzma/version.h      | 5 +++--
17801 src/liblzma/api/lzma/vli.h          | 5 +++--
17802 14 files changed, 42 insertions(+), 28 deletions(-)
17803
17804commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4
17805Author: Jia Tan <jiat0218@gmail.com>
17806Date:   2023-01-19 20:35:09 +0800
17807
17808    tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64.
17809
17810    tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64
17811    to retrieve a function address. The proper way to do this is to cast the
17812    return value to the type of function pointer retrieved. Unfortunately,
17813    this causes a cast-function-type warning, so the best solution is to
17814    simply ignore the warning.
17815
17816 src/common/tuklib_physmem.c | 9 +++++++++
17817 1 file changed, 9 insertions(+)
17818
17819commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766
17820Author: Jia Tan <jiat0218@gmail.com>
17821Date:   2023-01-19 20:32:40 +0800
17822
17823    tuklib_common: Define __has_warning if it is not defined.
17824
17825    clang supports the __has_warning macro to determine if the version of
17826    clang compiling the code supports a given warning. If we do not define
17827    it for other compilers, it may cause a preprocessor error.
17828
17829 src/common/tuklib_common.h | 7 +++++++
17830 1 file changed, 7 insertions(+)
17831
17832commit b2ba1a489df451cdcd93b2334e319dd06778de19
17833Author: Jia Tan <jiat0218@gmail.com>
17834Date:   2023-01-18 22:11:05 +0800
17835
17836    CI: Reorder 32-bit build first for Linux autotool builds.
17837
17838    The 32-bit build needs to be first so the configure cache only needs to
17839    be reset one time. The 32-bit build sets the CFLAGS env variable, so any
17840    build using that flag after will fail unless the cache is reset.
17841
17842 .github/workflows/ci.yml | 17 ++++++++++++-----
17843 1 file changed, 12 insertions(+), 5 deletions(-)
17844
17845commit dd1c1135741057c91e8d018be9ec4d43968b0e64
17846Author: Jia Tan <jiat0218@gmail.com>
17847Date:   2023-01-18 21:51:43 +0800
17848
17849    CI: Enable --config-cache in autotool builds.
17850
17851    If CFLAGS are set in a build, the cache must be cleared with
17852    "make distclean", or by deleting the cache file.
17853
17854 build-aux/ci_build.sh | 2 +-
17855 1 file changed, 1 insertion(+), 1 deletion(-)
17856
17857commit d3e11477053764c003eec2daa5198c747d70ff69
17858Author: Jia Tan <jiat0218@gmail.com>
17859Date:   2023-01-16 21:35:45 +0800
17860
17861    xz: Add missing comment for coder_set_compression_settings()
17862
17863 src/xz/coder.h | 3 ++-
17864 1 file changed, 2 insertions(+), 1 deletion(-)
17865
17866commit 123255b6ed15f4428b2aa92e4962015a5362f6bf
17867Author: Jia Tan <jiat0218@gmail.com>
17868Date:   2023-01-16 20:55:10 +0800
17869
17870    xz: Do not set compression settings with raw format in list mode.
17871
17872    Calling coder_set_compression_settings() in list mode with verbose mode
17873    on caused the filter chain and memory requirements to print. This was
17874    unnecessary since the command results in an error and not consistent
17875    with other formats like lzma and alone.
17876
17877 src/xz/args.c | 3 ++-
17878 1 file changed, 2 insertions(+), 1 deletion(-)
17879
17880commit 571919c47b9ff5171ede84378620ed0a9aeb98c0
17881Author: Jia Tan <jiat0218@gmail.com>
17882Date:   2023-01-13 20:37:06 +0800
17883
17884    Translations: Update the Brazilian Portuguese translation.
17885
17886 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++--------------------------
17887 1 file changed, 344 insertions(+), 259 deletions(-)
17888
17889commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf
17890Author: Jia Tan <jiat0218@gmail.com>
17891Date:   2023-01-12 23:43:06 +0800
17892
17893    CI: Disable shared and nls from various jobs in autotool runners.
17894
17895    Disabling shared library generation and linking should help speed up the
17896    runners. The shared library is still being tested in the 32 bit build
17897    and the full feature.
17898
17899    Disabling nls is to check for any unexpected warnings or errors.
17900
17901 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------
17902 1 file changed, 28 insertions(+), 28 deletions(-)
17903
17904commit 58a052198a7bcaf6e958f87fad72e69e19a2579b
17905Author: Jia Tan <jiat0218@gmail.com>
17906Date:   2023-01-12 23:39:19 +0800
17907
17908    CI: Reorder the 32-bit job in the Ubuntu runner.
17909
17910    Run the 32 bit job sooner since this is a more interesting test than
17911    some of the later jobs.
17912
17913 .github/workflows/ci.yml | 10 +++++-----
17914 1 file changed, 5 insertions(+), 5 deletions(-)
17915
17916commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797
17917Author: Jia Tan <jiat0218@gmail.com>
17918Date:   2023-01-12 23:09:03 +0800
17919
17920    CI: Allow disabling Native Language Support.
17921
17922 build-aux/ci_build.sh | 9 ++++++++-
17923 1 file changed, 8 insertions(+), 1 deletion(-)
17924
17925commit 0dec634e705b5bf89a37c5d62d71e8511d480058
17926Author: Jia Tan <jiat0218@gmail.com>
17927Date:   2023-01-12 23:02:20 +0800
17928
17929    CI: Only run autogen.sh if it has not already run.
17930
17931 build-aux/ci_build.sh | 11 ++++++++---
17932 1 file changed, 8 insertions(+), 3 deletions(-)
17933
17934commit 32287dc8def94df4546e903495d14c132bd54cc4
17935Author: Jia Tan <jiat0218@gmail.com>
17936Date:   2023-01-12 22:58:36 +0800
17937
17938    CI: Allow disabling shared library in autotools builds.
17939
17940 build-aux/ci_build.sh | 9 ++++++++-
17941 1 file changed, 8 insertions(+), 1 deletion(-)
17942
17943commit 77d1ebcc99ddd82a300d1838f608150221931dcd
17944Author: Jia Tan <jiat0218@gmail.com>
17945Date:   2023-01-12 22:44:18 +0800
17946
17947    CI: Improve Usage readability and add -h option.
17948
17949 build-aux/ci_build.sh | 15 +++++++++++++--
17950 1 file changed, 13 insertions(+), 2 deletions(-)
17951
17952commit a8bb8358d10b059274f3cf993d9b8f490bafb268
17953Author: Lasse Collin <lasse.collin@tukaani.org>
17954Date:   2023-01-12 13:04:05 +0200
17955
17956    Build: Omit -Wmissing-noreturn from the default warnings.
17957
17958    It's not that important. It can be annoying in builds that
17959    disable many features since in those cases the tests programs
17960    will correctly trigger this warning with Clang.
17961
17962 configure.ac | 1 -
17963 1 file changed, 1 deletion(-)
17964
17965commit 52dc033d0bde0d19e3912303c6c74bae559d6498
17966Author: Lasse Collin <lasse.collin@tukaani.org>
17967Date:   2023-01-12 06:05:58 +0200
17968
17969    xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1).
17970
17971    It makes no difference here as the return value fits into an int
17972    too and it then gets ignored but this looks better.
17973
17974 src/xz/file_io.c | 2 +-
17975 1 file changed, 1 insertion(+), 1 deletion(-)
17976
17977commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3
17978Author: Lasse Collin <lasse.collin@tukaani.org>
17979Date:   2023-01-12 06:01:12 +0200
17980
17981    xz: Silence warnings from -Wsign-conversion in a 32-bit build.
17982
17983 src/common/tuklib_mbstr_fw.c | 2 +-
17984 src/xz/list.c                | 4 ++--
17985 2 files changed, 3 insertions(+), 3 deletions(-)
17986
17987commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339
17988Author: Lasse Collin <lasse.collin@tukaani.org>
17989Date:   2023-01-12 05:38:48 +0200
17990
17991    liblzma: Silence another warning from -Wsign-conversion in a 32-bit build.
17992
17993    It doesn't warn on a 64-bit system because truncating
17994    a ptrdiff_t (signed long) to uint32_t is diagnosed under
17995    -Wconversion by GCC and -Wshorten-64-to-32 by Clang.
17996
17997 src/liblzma/lz/lz_encoder_mf.c | 7 ++++---
17998 1 file changed, 4 insertions(+), 3 deletions(-)
17999
18000commit 37fbdfb7263522c11c7ad2685413d6295532581d
18001Author: Lasse Collin <lasse.collin@tukaani.org>
18002Date:   2023-01-12 04:46:45 +0200
18003
18004    liblzma: Silence a warning from -Wsign-conversion in a 32-bit build.
18005
18006 src/common/mythread.h | 4 ++--
18007 1 file changed, 2 insertions(+), 2 deletions(-)
18008
18009commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008
18010Author: Lasse Collin <lasse.collin@tukaani.org>
18011Date:   2023-01-12 04:17:24 +0200
18012
18013    Build: Make configure add more warning flags for GCC and Clang.
18014
18015    -Wstrict-aliasing was removed from the list since it is enabled
18016    by -Wall already.
18017
18018    A normal build is clean with these on GNU/Linux x86-64 with
18019    GCC 12.2.0 and Clang 14.0.6.
18020
18021 configure.ac | 36 +++++++++++++++++++++++++++++++-----
18022 1 file changed, 31 insertions(+), 5 deletions(-)
18023
18024commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c
18025Author: Lasse Collin <lasse.collin@tukaani.org>
18026Date:   2023-01-12 04:14:18 +0200
18027
18028    Tests: Fix warnings from clang --Wassign-enum.
18029
18030    Explicitly casting the integer to lzma_check silences the warning.
18031    Since such an invalid value is needed in multiple tests, a constant
18032    INVALID_LZMA_CHECK_ID was added to tests.h.
18033
18034    The use of 0x1000 for lzma_block.check wasn't optimal as if
18035    the underlying type is a char then 0x1000 will be truncated to 0.
18036    However, in these test cases the value is ignored, thus even with
18037    such truncation the test would have passed.
18038
18039 tests/test_block_header.c | 6 +++---
18040 tests/test_check.c        | 2 +-
18041 tests/test_stream_flags.c | 8 ++++----
18042 tests/tests.h             | 9 +++++++++
18043 4 files changed, 17 insertions(+), 8 deletions(-)
18044
18045commit 49245bb31e215ad455a1ab85e4ed6783152dc522
18046Author: Lasse Collin <lasse.collin@tukaani.org>
18047Date:   2023-01-12 03:51:07 +0200
18048
18049    Tests: Silence warnings from -Wsign-conversion.
18050
18051    Note that assigning an unsigned int to lzma_check doesn't warn
18052    on GNU/Linux x86-64 since the enum type is unsigned on that
18053    platform. The enum can be signed on some other platform though
18054    so it's best to use enumeration type lzma_check in these situations.
18055
18056 tests/test_check.c        |  6 +++---
18057 tests/test_stream_flags.c | 10 +++++-----
18058 2 files changed, 8 insertions(+), 8 deletions(-)
18059
18060commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571
18061Author: Lasse Collin <lasse.collin@tukaani.org>
18062Date:   2023-01-12 03:19:59 +0200
18063
18064    liblzma: Silence warnings from clang -Wconditional-uninitialized.
18065
18066    This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0.
18067    The actual initialization of the variables is done inside
18068    mythread_sync() macro. Clang doesn't seem to see that
18069    the initialization code inside the macro is always executed.
18070
18071 src/liblzma/common/stream_decoder_mt.c | 8 +++++---
18072 src/liblzma/common/stream_encoder_mt.c | 2 +-
18073 2 files changed, 6 insertions(+), 4 deletions(-)
18074
18075commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6
18076Author: Lasse Collin <lasse.collin@tukaani.org>
18077Date:   2023-01-12 03:11:40 +0200
18078
18079    Fix warnings from clang -Wdocumentation.
18080
18081 src/liblzma/check/check.h      | 4 ----
18082 src/liblzma/lz/lz_encoder_mf.c | 4 ++--
18083 src/xz/options.c               | 4 ++--
18084 3 files changed, 4 insertions(+), 8 deletions(-)
18085
18086commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba
18087Author: Lasse Collin <lasse.collin@tukaani.org>
18088Date:   2023-01-12 03:04:28 +0200
18089
18090    Tests: test_lzip_decoder: Remove trailing white-space.
18091
18092 tests/test_lzip_decoder.c | 4 ++--
18093 1 file changed, 2 insertions(+), 2 deletions(-)
18094
18095commit c0f8d6782f29e219fd496dd23f6a033270509d5c
18096Author: Lasse Collin <lasse.collin@tukaani.org>
18097Date:   2023-01-12 03:03:55 +0200
18098
18099    Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion.
18100
18101 tests/test_lzip_decoder.c | 13 +++++++------
18102 1 file changed, 7 insertions(+), 6 deletions(-)
18103
18104commit 62efd48a825e8f439e84c85e165d8774ddc68fd2
18105Author: Jia Tan <jiat0218@gmail.com>
18106Date:   2023-01-11 23:58:16 +0800
18107
18108    Add NEWS for 5.4.1.
18109
18110 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18111 1 file changed, 70 insertions(+)
18112
18113commit d1561c47ec8cd3844a785d3741dc932f9b9c5790
18114Author: Jia Tan <jiat0218@gmail.com>
18115Date:   2023-01-11 22:46:48 +0800
18116
18117    xz: Fix warning -Wformat-nonliteral on clang in message.c.
18118
18119    clang and gcc differ in how they handle -Wformat-nonliteral. gcc will
18120    allow a non-literal format string as long as the function takes its
18121    format arguments as a va_list.
18122
18123 src/xz/message.c | 9 +++++++++
18124 1 file changed, 9 insertions(+)
18125
18126commit 8c0f115cc489331c48df77beca92fe378039d919
18127Author: Jia Tan <jiat0218@gmail.com>
18128Date:   2023-01-11 20:58:31 +0800
18129
18130    Tests: Fix test_filter_flags copy/paste error.
18131
18132 tests/test_filter_flags.c | 4 ++--
18133 1 file changed, 2 insertions(+), 2 deletions(-)
18134
18135commit 25035813d1d596fde692addc33e7f715f1fe55eb
18136Author: Jia Tan <jiat0218@gmail.com>
18137Date:   2023-01-11 20:42:29 +0800
18138
18139    Tests: Fix type-limits warning in test_filter_flags.
18140
18141    This only occurs in test_filter_flags when the BCJ filters are not
18142    configured and built. In this case, ARRAY_SIZE() returns 0 and causes a
18143    type-limits warning with the loop variable since an unsigned number will
18144    always be >= 0.
18145
18146 tests/test_filter_flags.c | 13 ++++++++++---
18147 1 file changed, 10 insertions(+), 3 deletions(-)
18148
18149commit 0b8fa310cf56fec55663f62340e49e8e1441594f
18150Author: Lasse Collin <lasse.collin@tukaani.org>
18151Date:   2023-01-10 22:14:03 +0200
18152
18153    liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt.
18154
18155    This affects only 32-bit x86 builds. x86-64 is OK as is.
18156
18157    I still cannot easily test this myself. The reporter has tested
18158    this and it passes the tests included in the CMake build and
18159    performance is good: raw CRC64 is 2-3 times faster than the
18160    C version of the slice-by-four method. (Note that liblzma doesn't
18161    include a MSVC-compatible version of the 32-bit x86 assembly code
18162    for the slice-by-four method.)
18163
18164    Thanks to Iouri Kharon for figuring out a fix, testing, and
18165    benchmarking.
18166
18167 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++
18168 1 file changed, 18 insertions(+)
18169
18170commit 765354b50c2886fc0d294d6be3b207f7ae2ada70
18171Author: Jia Tan <jiat0218@gmail.com>
18172Date:   2023-01-11 01:18:50 +0800
18173
18174    Tests: Fix unused function warning in test_block_header.
18175
18176    One of the global arrays of filters was only used in a test that
18177    required both encoders and decoders to be configured in the build.
18178
18179 tests/test_block_header.c | 4 ++++
18180 1 file changed, 4 insertions(+)
18181
18182commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa
18183Author: Jia Tan <jiat0218@gmail.com>
18184Date:   2023-01-11 01:08:03 +0800
18185
18186    Tests: Fix unused function warning in test_index_hash.
18187
18188    test_index_hash does not use fill_index_hash() unless both encoders
18189    and decoders are configured in the build.
18190
18191 tests/test_index_hash.c | 4 +---
18192 1 file changed, 1 insertion(+), 3 deletions(-)
18193
18194commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6
18195Author: Jia Tan <jiat0218@gmail.com>
18196Date:   2023-01-11 00:54:45 +0800
18197
18198    CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner.
18199
18200    If all goes well, Mac autotools and Linux and Mac CMake will be added
18201    later for 32-bit builds.
18202
18203 .github/workflows/ci.yml | 7 ++++++-
18204 1 file changed, 6 insertions(+), 1 deletion(-)
18205
18206commit 923eb689a4b863b6cca8df6360d4962aae994edf
18207Author: Jia Tan <jiat0218@gmail.com>
18208Date:   2023-01-11 00:51:01 +0800
18209
18210    CI/CD: Enables warnings as errors in autotool build.
18211
18212    This will help us catch warnings and potential bugs in builds that are
18213    not often tested by us.
18214
18215 build-aux/ci_build.sh | 2 +-
18216 1 file changed, 1 insertion(+), 1 deletion(-)
18217
18218commit feae5528a30c006b6e2f96a95116e20b983703fc
18219Author: Jia Tan <jiat0218@gmail.com>
18220Date:   2023-01-11 00:48:35 +0800
18221
18222    CI/CD: Add -f argument to set CFLAGS in ci_build.sh.
18223
18224    For now, the suggested option is for -m32 only, but this can be updated
18225    later if other flags are deemed useful.
18226
18227 build-aux/ci_build.sh | 8 ++++++--
18228 1 file changed, 6 insertions(+), 2 deletions(-)
18229
18230commit cfabb62a4874c146e7d6f30445637602545bc054
18231Author: Lasse Collin <lasse.collin@tukaani.org>
18232Date:   2023-01-10 12:47:16 +0200
18233
18234    Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)."
18235
18236    This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5.
18237
18238    It was reported that it wasn't a good enough fix and MSVC
18239    still produced (different kind of) bad code when building
18240    for 32-bit x86 if optimizations are enabled.
18241
18242    Thanks to Iouri Kharon.
18243
18244 src/liblzma/check/crc64_fast.c | 6 ------
18245 1 file changed, 6 deletions(-)
18246
18247commit 0b64215170dd3562f207ef26f794755bcd600526
18248Author: Lasse Collin <lasse.collin@tukaani.org>
18249Date:   2023-01-10 11:56:11 +0200
18250
18251    sysdefs.h: Don't include strings.h anymore.
18252
18253    On some platforms src/xz/suffix.c may need <strings.h> for
18254    strcasecmp() but suffix.c includes the header when it needs it.
18255
18256    Unless there is an old system that otherwise supports enough C99
18257    to build XZ Utils but doesn't have C89/C90-compatible <string.h>,
18258    there should be no need to include <strings.h> in sysdefs.h.
18259
18260 src/common/sysdefs.h | 6 ------
18261 1 file changed, 6 deletions(-)
18262
18263commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
18264Author: Lasse Collin <lasse.collin@tukaani.org>
18265Date:   2023-01-10 11:23:41 +0200
18266
18267    xz: Include <strings.h> in suffix.c if needed for strcasecmp().
18268
18269    SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>.
18270    Of these, strcasecmp() is used on some platforms in suffix.c.
18271    Nothing else in the project needs <strings.h> (at least if
18272    building on a modern system).
18273
18274    sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is
18275    defined and suffix.c relied on this.
18276
18277    Note that dos/config.h doesn't #define HAVE_STRINGS_H even though
18278    DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp()
18279    is also in <string.h> in DJGPP.
18280
18281 src/xz/suffix.c | 3 +++
18282 1 file changed, 3 insertions(+)
18283
18284commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
18285Author: Lasse Collin <lasse.collin@tukaani.org>
18286Date:   2023-01-10 10:05:13 +0200
18287
18288    sysdefs.h: Fix a comment.
18289
18290 src/common/sysdefs.h | 2 +-
18291 1 file changed, 1 insertion(+), 1 deletion(-)
18292
18293commit 194a5fab69277d9e804a6113b5f676b8666b3a61
18294Author: Lasse Collin <lasse.collin@tukaani.org>
18295Date:   2023-01-10 10:04:06 +0200
18296
18297    sysdefs.h: Don't include memory.h anymore even if it were available.
18298
18299    It quite probably was never needed, that is, any system where memory.h
18300    was required likely couldn't compile XZ Utils for other reasons anyway.
18301
18302    XZ Utils 5.2.6 and later source packages were generated using
18303    Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code
18304    being removed is no longer used anyway.
18305
18306 src/common/sysdefs.h | 8 ++------
18307 1 file changed, 2 insertions(+), 6 deletions(-)
18308
18309commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0
18310Author: Lasse Collin <lasse.collin@tukaani.org>
18311Date:   2023-01-10 08:29:32 +0200
18312
18313    CMake: Fix appending to CMAKE_RC_FLAGS.
18314
18315    It's a string, not a list. It only worked when the variable was empty.
18316
18317    Thanks to Iouri Kharon.
18318
18319 CMakeLists.txt | 2 +-
18320 1 file changed, 1 insertion(+), 1 deletion(-)
18321
18322commit 6e652ceb18c615c578c869db300fa0756788b4e0
18323Author: Lasse Collin <lasse.collin@tukaani.org>
18324Date:   2023-01-10 00:33:14 +0200
18325
18326    Windows: Update INSTALL-MSVC.txt to recommend CMake over project files.
18327
18328 windows/INSTALL-MSVC.txt | 19 ++++++++++++-------
18329 1 file changed, 12 insertions(+), 7 deletions(-)
18330
18331commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47
18332Author: Lasse Collin <lasse.collin@tukaani.org>
18333Date:   2023-01-09 23:41:25 +0200
18334
18335    CMake: Fix windres issues again.
18336
18337    At least on some systems, GNU windres needs --use-temp-file
18338    in addition to the \x20 hack to avoid spaces in the command line
18339    argument. Hovever, that \x20 syntax is broken with llvm-windres
18340    version 15.0.0 (results in "XZx20Utils") but luckily it works
18341    with a regular space. Thus it is best to limit the workarounds
18342    to GNU toolchain on Windows.
18343
18344 CMakeLists.txt | 35 +++++++++++++++++++++++------------
18345 1 file changed, 23 insertions(+), 12 deletions(-)
18346
18347commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935
18348Author: Lasse Collin <lasse.collin@tukaani.org>
18349Date:   2023-01-06 22:53:38 +0200
18350
18351    Tests: test_filter_flags: Clean up minor issues.
18352
18353    Here are the list of the most significant issues addressed:
18354    - Avoid using internal common.h header. It's not good to copy the
18355    constants like this but common.h cannot be included for use outside
18356    of liblzma. This is the quickest thing to do that could be fixed later.
18357
18358    - Omit the INIT_FILTER macro. Initialization should be done with just
18359    regular designated initializers.
18360
18361    - Use start_offset = 257 for BCJ tests. It demonstrates that Filter
18362    Flags encoder and decoder don't validate the options thoroughly.
18363    257 is valid only for the x86 filter. This is a bit silly but
18364    not a significant problem in practice because the encoder and
18365    decoder initialization functions will catch bad alignment still.
18366    Perhaps this should be fixed but it's not urgent and doesn't need
18367    to be in 5.4.x.
18368
18369    - Various tweaks to comments such as filter id -> Filter ID
18370
18371 tests/test_filter_flags.c | 153 +++++++++++++++++++++++-----------------------
18372 1 file changed, 78 insertions(+), 75 deletions(-)
18373
18374commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865
18375Author: Jia Tan <jiat0218@gmail.com>
18376Date:   2022-12-29 23:33:33 +0800
18377
18378    Tests: Refactors existing filter flags tests.
18379
18380    Converts the existing filter flags tests into tuktests.
18381
18382 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++--------------
18383 1 file changed, 457 insertions(+), 198 deletions(-)
18384
18385commit 36edc65ab4cf10a131f239acbd423b4510ba52d5
18386Author: Lasse Collin <lasse.collin@tukaani.org>
18387Date:   2023-01-09 12:22:05 +0200
18388
18389    liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022).
18390
18391    I haven't tested with MSVC myself and there doesn't seem to be
18392    information about the problem online, so I'm relying on the bug report.
18393
18394    Thanks to Iouri Kharon for the bug report and the patch.
18395
18396 src/liblzma/check/crc64_fast.c | 6 ++++++
18397 1 file changed, 6 insertions(+)
18398
18399commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d
18400Author: Lasse Collin <lasse.collin@tukaani.org>
18401Date:   2023-01-09 11:27:24 +0200
18402
18403    CMake: Fix a copypaste error in xzdec Windows resource file handling.
18404
18405    It was my mistake. Thanks to Iouri Kharon for the bug report.
18406
18407 CMakeLists.txt | 4 ++--
18408 1 file changed, 2 insertions(+), 2 deletions(-)
18409
18410commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848
18411Author: Lasse Collin <lasse.collin@tukaani.org>
18412Date:   2023-01-08 00:32:29 +0200
18413
18414    Tests: tuktest.h: Support tuktest_malloc(0).
18415
18416    It's not needed in XZ Utils at least for now. It's good to support
18417    it still because if such use is needed later, it wouldn't be
18418    caught on GNU/Linux since malloc(0) from glibc returns non-NULL.
18419
18420 tests/tuktest.h | 4 ++--
18421 1 file changed, 2 insertions(+), 2 deletions(-)
18422
18423commit 69d5d78c6904668eb09a131da86276beec3281f8
18424Author: Lasse Collin <lasse.collin@tukaani.org>
18425Date:   2023-01-08 00:24:23 +0200
18426
18427    Update THANKS.
18428
18429 THANKS | 1 +
18430 1 file changed, 1 insertion(+)
18431
18432commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
18433Author: Lasse Collin <lasse.collin@tukaani.org>
18434Date:   2023-01-07 21:57:11 +0200
18435
18436    CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.
18437
18438    The changes listed on cmake-policies(7) for versions 3.17 to 3.25
18439    shouldn't affect this project.
18440
18441 CMakeLists.txt | 2 +-
18442 1 file changed, 1 insertion(+), 1 deletion(-)
18443
18444commit a890a637bee9193d5b690aefa9a59eba5b8532ae
18445Author: Lasse Collin <lasse.collin@tukaani.org>
18446Date:   2023-01-07 19:50:35 +0200
18447
18448    Update THANKS.
18449
18450 THANKS | 1 +
18451 1 file changed, 1 insertion(+)
18452
18453commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
18454Author: Lasse Collin <lasse.collin@tukaani.org>
18455Date:   2023-01-07 19:50:03 +0200
18456
18457    CMake/Windows: Add resource files to xz.exe and xzdec.exe.
18458
18459    The command line tools cannot be built with MSVC for now but
18460    they can be built with MinGW-w64.
18461
18462    Thanks to Iouri Kharon for the bug report and the original patch.
18463
18464 CMakeLists.txt | 16 ++++++++++++++++
18465 1 file changed, 16 insertions(+)
18466
18467commit 443dfebced041adc88f10d824188eeef5b5821a9
18468Author: Lasse Collin <lasse.collin@tukaani.org>
18469Date:   2023-01-07 19:48:52 +0200
18470
18471    CMake/Windows: Add a workaround for windres from GNU binutils.
18472
18473    Thanks to Iouri Kharon for the bug report and the original patch.
18474
18475 CMakeLists.txt | 21 ++++++++++++++++++++-
18476 1 file changed, 20 insertions(+), 1 deletion(-)
18477
18478commit ceb805011747d04a915f3f39e4bed9eed151c634
18479Author: Lasse Collin <lasse.collin@tukaani.org>
18480Date:   2023-01-07 19:31:15 +0200
18481
18482    Build: Require that _mm_set_epi64x() is usable to enable CLMUL support.
18483
18484    VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets
18485    disabled with VS2013.
18486
18487    Thanks to Iouri Kharon for the bug report.
18488
18489 CMakeLists.txt | 3 ++-
18490 configure.ac   | 8 ++++++--
18491 2 files changed, 8 insertions(+), 3 deletions(-)
18492
18493commit 8d372bd94066b1a5b0570b2550f83c2868486adf
18494Author: Jia Tan <jiat0218@gmail.com>
18495Date:   2023-01-07 21:05:15 +0800
18496
18497    CI/CD: Split CMake Linux and MacOS build phase to build and test.
18498
18499    The phase split was only done for Autotools before, so should also
18500    apply to CMake.
18501
18502 .github/workflows/ci.yml | 8 ++++++--
18503 1 file changed, 6 insertions(+), 2 deletions(-)
18504
18505commit 747c7f2b34bd498f6702c6875500a26b06201772
18506Author: Jia Tan <jiat0218@gmail.com>
18507Date:   2023-01-07 11:16:55 +0800
18508
18509    CI/CD: Reduce job runners to 4 instead of using matrix strategy.
18510
18511    The old version used too many runners that resulted in unnecessary
18512    dependency downloads. Now, the runners are reused for the different
18513    configurations for each OS and build system.
18514
18515 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------
18516 1 file changed, 83 insertions(+), 12 deletions(-)
18517
18518commit 4de35fd6b58d46fc887c78faf163f6a37b790c45
18519Author: Jia Tan <jiat0218@gmail.com>
18520Date:   2023-01-07 10:07:20 +0800
18521
18522    CI/CD: Add new -p (PHASE) argument to ci_build.sh
18523
18524    The new PHASE argument can be build, test, or all. all is the default.
18525    This way, the CI/CD script can differentiate between the build and test
18526    phases to make it easier to track down errors when they happen.
18527
18528 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++-----------------------
18529 1 file changed, 76 insertions(+), 64 deletions(-)
18530
18531commit 6fd39664de47801e670a16617863196bfbde4755
18532Merge: 78e0561d fc0c7884
18533Author: Jia Tan <jiat0218@gmail.com>
18534Date:   2023-01-07 00:10:50 +0800
18535
18536    Merge pull request #7 from tukaani-project/tuktest_index_hash
18537
18538    Tuktest index hash
18539
18540commit fc0c788469159f634f09ff23c8cef6925c91da57
18541Author: Lasse Collin <lasse.collin@tukaani.org>
18542Date:   2023-01-06 17:58:48 +0200
18543
18544    Tests: test_index_hash: Add an assert_uint_eq().
18545
18546 tests/test_index_hash.c | 3 +++
18547 1 file changed, 3 insertions(+)
18548
18549commit d550304f5343b3a082da265107cd820e0d81dc71
18550Author: Lasse Collin <lasse.collin@tukaani.org>
18551Date:   2023-01-06 17:55:06 +0200
18552
18553    Tests: test_index_hash: Fix a memory leak.
18554
18555 tests/test_index_hash.c | 2 ++
18556 1 file changed, 2 insertions(+)
18557
18558commit 02608f74ea1f2d2d56585711ff241c34b4ad0937
18559Author: Lasse Collin <lasse.collin@tukaani.org>
18560Date:   2023-01-06 17:53:03 +0200
18561
18562    Tests: test_index_hash: Don't treat pointers as booleans.
18563
18564 tests/test_index_hash.c | 6 +++---
18565 1 file changed, 3 insertions(+), 3 deletions(-)
18566
18567commit 056766c8601a3808bea1761f6cc833197a35a3e0
18568Author: Lasse Collin <lasse.collin@tukaani.org>
18569Date:   2023-01-06 17:51:41 +0200
18570
18571    Tests: test_index_hash: Fix a typo in a comment.
18572
18573 tests/test_index_hash.c | 2 +-
18574 1 file changed, 1 insertion(+), 1 deletion(-)
18575
18576commit 873e684028ba9738f071c5236db7d452ed797b4c
18577Author: Lasse Collin <lasse.collin@tukaani.org>
18578Date:   2023-01-06 17:44:29 +0200
18579
18580    Tests: test_index_hash: Avoid the variable name "index".
18581
18582    It can trigger warnings from -Wshadow on some systems.
18583
18584 tests/test_index_hash.c | 16 ++++++++--------
18585 1 file changed, 8 insertions(+), 8 deletions(-)
18586
18587commit d1f24c35874eeba8432d75aa77b06c50375ed937
18588Author: Lasse Collin <lasse.collin@tukaani.org>
18589Date:   2023-01-06 17:35:50 +0200
18590
18591    Tests: test_index_hash: Use the word "Record" instead of "entry".
18592
18593 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------
18594 1 file changed, 51 insertions(+), 51 deletions(-)
18595
18596commit b93f7c5cbb02b42024ac866fc0af541de3d816e2
18597Author: Lasse Collin <lasse.collin@tukaani.org>
18598Date:   2023-01-06 17:35:05 +0200
18599
18600    Tests: test_index_hash: Tweak comments and style.
18601
18602    The words defined in the .xz file format specification
18603    begin with capital letter to emphasize that they have
18604    a specific meaning.
18605
18606 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++-----------------------
18607 1 file changed, 33 insertions(+), 29 deletions(-)
18608
18609commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036
18610Author: Lasse Collin <lasse.collin@tukaani.org>
18611Date:   2023-01-06 17:17:37 +0200
18612
18613    Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0.
18614
18615 tests/test_index_hash.c | 2 +-
18616 1 file changed, 1 insertion(+), 1 deletion(-)
18617
18618commit 78e0561dfebaa9d5e34558de537efcda890e0629
18619Author: Jia Tan <jiat0218@gmail.com>
18620Date:   2023-01-06 20:43:31 +0800
18621
18622    Style: Change #if !defined() to #ifndef in mythread.h.
18623
18624 src/common/mythread.h | 2 +-
18625 1 file changed, 1 insertion(+), 1 deletion(-)
18626
18627commit e834e1e934ed0af673598d8c0c34afb2af56bee0
18628Author: Jia Tan <jiat0218@gmail.com>
18629Date:   2023-01-06 20:35:55 +0800
18630
18631    Build: Add missing stream_decoder_mt.c to .vcxproj files.
18632
18633    The line in the .vcxproj files for building with was missing in 5.4.0.
18634    Thank to Hajin Jang for reporting the issue.
18635
18636 windows/vs2013/liblzma.vcxproj     | 1 +
18637 windows/vs2013/liblzma_dll.vcxproj | 1 +
18638 windows/vs2017/liblzma.vcxproj     | 1 +
18639 windows/vs2017/liblzma_dll.vcxproj | 1 +
18640 windows/vs2019/liblzma.vcxproj     | 1 +
18641 windows/vs2019/liblzma_dll.vcxproj | 1 +
18642 6 files changed, 6 insertions(+)
18643
18644commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111
18645Author: Jia Tan <jiat0218@gmail.com>
18646Date:   2023-01-05 20:57:25 +0800
18647
18648    liblzma: Remove common.h include from common/index.h.
18649
18650    common/index.h is needed by liblzma internally and tests. common.h will
18651    include and define many things that are not needed by the tests. Also,
18652    this prevents include order problems because common.h will redefine
18653    LZMA_API resulting in a warning.
18654
18655 src/liblzma/common/index.c                 | 1 +
18656 src/liblzma/common/index.h                 | 9 +++++++--
18657 src/liblzma/common/index_decoder.h         | 1 +
18658 src/liblzma/common/stream_buffer_encoder.c | 1 +
18659 4 files changed, 10 insertions(+), 2 deletions(-)
18660
18661commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f
18662Author: Lasse Collin <lasse.collin@tukaani.org>
18663Date:   2023-01-04 22:40:54 +0200
18664
18665    Update THANKS.
18666
18667 THANKS | 1 +
18668 1 file changed, 1 insertion(+)
18669
18670commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
18671Author: Lasse Collin <lasse.collin@tukaani.org>
18672Date:   2023-01-04 18:40:28 +0200
18673
18674    Tests: Adjust style in test_compress.sh.
18675
18676 tests/test_compress.sh | 12 +++++++-----
18677 1 file changed, 7 insertions(+), 5 deletions(-)
18678
18679commit 52380678f42364daa4510f92f6d3b18ec98c3638
18680Author: Jia Tan <jiat0218@gmail.com>
18681Date:   2023-01-04 23:58:58 +0800
18682
18683    Tests: Replace non portable shell parameter expansion
18684
18685    The shell parameter expansion using # and ## is not supported in
18686    Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully
18687    portable, so we should avoid it.
18688
18689 tests/create_compress_files.c          |  2 +-
18690 tests/test_compress.sh                 | 20 +++++++++++++-------
18691 tests/test_compress_prepared_bcj_sparc |  2 +-
18692 tests/test_compress_prepared_bcj_x86   |  2 +-
18693 4 files changed, 16 insertions(+), 10 deletions(-)
18694
18695commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b
18696Author: Jia Tan <jiat0218@gmail.com>
18697Date:   2023-01-03 21:02:38 +0800
18698
18699    Translations: Add Korean translation of man pages.
18700
18701    Thanks to Seong-ho Cho
18702
18703 po4a/ko.po     | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18704 po4a/po4a.conf |    2 +-
18705 2 files changed, 5553 insertions(+), 1 deletion(-)
18706
18707commit c4145978d95ebf1690c778d354e15f7c2823d7a8
18708Author: Jia Tan <jiat0218@gmail.com>
18709Date:   2023-01-03 20:47:27 +0800
18710
18711    Translations: Update the Esperanto translation.
18712
18713 po/eo.po | 620 ++++++++++++++++++++++++++++++++++-----------------------------
18714 1 file changed, 332 insertions(+), 288 deletions(-)
18715
18716commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c
18717Author: Lasse Collin <lasse.collin@tukaani.org>
18718Date:   2023-01-02 17:20:47 +0200
18719
18720    Bump version and soname for 5.5.0alpha.
18721
18722    5.5.0alpha won't be released, it's just to mark that
18723    the branch is not for stable 5.4.x.
18724
18725    Once again there is no API/ABI stability for new features
18726    in devel versions. The major soname won't be bumped even
18727    if API/ABI of new features breaks between devel releases.
18728
18729 src/liblzma/Makefile.am        | 2 +-
18730 src/liblzma/api/lzma/version.h | 4 ++--
18731 2 files changed, 3 insertions(+), 3 deletions(-)
18732
18733commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a
18734Author: Lasse Collin <lasse.collin@tukaani.org>
18735Date:   2023-01-02 17:05:07 +0200
18736
18737    Build: Fix config.h comments.
18738
18739 configure.ac          | 2 +-
18740 m4/tuklib_progname.m4 | 2 +-
18741 2 files changed, 2 insertions(+), 2 deletions(-)
18742
18743commit bb740e3b117f1a3c65152d01e5755523a908ecb1
18744Author: Jia Tan <jiat0218@gmail.com>
18745Date:   2023-01-02 22:33:48 +0800
18746
18747    Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1.
18748
18749    HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to
18750    HAVE_PROGRAM_INVOCATION_NAME. Previously,
18751    HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when
18752    building with autotools. CMake would only set this when it was 1, and the
18753    dos/config.h did not define it. The new macro definition is consistent
18754    across build systems.
18755
18756 cmake/tuklib_progname.cmake  | 5 ++---
18757 m4/tuklib_progname.m4        | 5 ++++-
18758 src/common/tuklib_progname.c | 2 +-
18759 src/common/tuklib_progname.h | 2 +-
18760 4 files changed, 8 insertions(+), 6 deletions(-)
18761
18762commit 064cd385a716abc78d93a3612411a82d69ceb221
18763Author: Jia Tan <jiat0218@gmail.com>
18764Date:   2022-12-29 00:30:52 +0800
18765
18766    Adds test_index_hash to .gitignore.
18767
18768 .gitignore | 1 +
18769 1 file changed, 1 insertion(+)
18770
18771commit 3959162baec074511d83ba0fec1284c3ed724799
18772Author: Jia Tan <jiat0218@gmail.com>
18773Date:   2022-12-29 00:25:18 +0800
18774
18775    Tests: Creates test_index_hash.c
18776
18777    Tests all API functions exported from index_hash.h. Does not have a
18778    dedicated test for lzma_index_hash_end.
18779
18780 CMakeLists.txt          |   2 +
18781 tests/Makefile.am       |   3 +
18782 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++
18783 3 files changed, 384 insertions(+)
18784
18785commit f16e12d5e755d371247202fcccbcccd1ec16b2cf
18786Author: Jia Tan <jiat0218@gmail.com>
18787Date:   2022-08-17 20:20:16 +0800
18788
18789    liblzma: Add NULL check to lzma_index_hash_append.
18790
18791    This is for consistency with lzma_index_append.
18792
18793 src/liblzma/common/index_hash.c | 2 +-
18794 1 file changed, 1 insertion(+), 1 deletion(-)
18795
18796commit 203b008eb220208981902e0db541c02d1c1c9f5e
18797Author: Jia Tan <jiat0218@gmail.com>
18798Date:   2022-08-17 17:59:51 +0800
18799
18800    liblzma: Replaced hardcoded 0x0 index indicator byte with macro
18801
18802 src/liblzma/common/index.h             | 3 +++
18803 src/liblzma/common/index_decoder.c     | 2 +-
18804 src/liblzma/common/index_encoder.c     | 2 +-
18805 src/liblzma/common/index_hash.c        | 2 +-
18806 src/liblzma/common/stream_decoder.c    | 3 ++-
18807 src/liblzma/common/stream_decoder_mt.c | 2 +-
18808 6 files changed, 9 insertions(+), 5 deletions(-)
18809
18810commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0
18811Author: Lasse Collin <lasse.collin@tukaani.org>
18812Date:   2022-12-30 20:10:08 +0200
18813
18814    Tests: test_check: Test corner cases of CLMUL CRC64.
18815
18816 tests/test_check.c | 27 +++++++++++++++++++++++++++
18817 1 file changed, 27 insertions(+)
18818
18819commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7
18820Author: Lasse Collin <lasse.collin@tukaani.org>
18821Date:   2022-12-30 19:36:49 +0200
18822
18823    Tests: Clarify a comment in test_lzip_decoder.c.
18824
18825 tests/test_lzip_decoder.c | 8 ++++++--
18826 1 file changed, 6 insertions(+), 2 deletions(-)
18827
18828commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8
18829Author: Jia Tan <jiat0218@gmail.com>
18830Date:   2022-12-29 01:55:19 +0800
18831
18832    xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
18833
18834    Previously, mytime.c depended on mythread.h for <time.h> to be included.
18835
18836 src/xz/mytime.c | 4 +++-
18837 1 file changed, 3 insertions(+), 1 deletion(-)
18838
18839commit f82294c8318a7a0990583d51ac5c7de682ad36ef
18840Author: Jia Tan <jiat0218@gmail.com>
18841Date:   2022-12-29 01:15:27 +0800
18842
18843    liblzma: Includes sys/time.h conditionally in mythread
18844
18845    Previously, <sys/time.h> was always included, even if mythread only used
18846    clock_gettime. <time.h> is still needed even if clock_gettime is not used
18847    though because struct timespec is needed for mythread_condtime.
18848
18849 src/common/mythread.h | 8 +++++++-
18850 1 file changed, 7 insertions(+), 1 deletion(-)
18851
18852commit 74dae7d30091e906d6a92a57952dea4354473f9b
18853Author: Jia Tan <jiat0218@gmail.com>
18854Date:   2022-12-29 01:10:53 +0800
18855
18856    Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set.
18857
18858    Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always
18859    be set to 0 or 1. However, this macro was needed in xz so if xz was not
18860    built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but
18861    HAVE_CLOCK_GETTIME was, it caused a warning during build. Now,
18862    HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and
18863    will only be set if it is 1.
18864
18865 CMakeLists.txt        | 8 +++-----
18866 configure.ac          | 5 ++++-
18867 src/common/mythread.h | 4 ++--
18868 src/xz/mytime.c       | 5 ++---
18869 4 files changed, 11 insertions(+), 11 deletions(-)
18870
18871commit 7339e39dc060df6eda74a2c5b69961befc3d5d24
18872Author: Jia Tan <jiat0218@gmail.com>
18873Date:   2022-12-28 01:14:07 +0800
18874
18875    Translations: Add Ukrainian translations of man pages.
18876
18877    Thanks to Yuri Chornoivan
18878
18879 po4a/po4a.conf |    2 +-
18880 po4a/uk.po     | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
18881 2 files changed, 3677 insertions(+), 1 deletion(-)
18882
18883commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e
18884Author: Jia Tan <jiat0218@gmail.com>
18885Date:   2022-12-23 00:34:48 +0800
18886
18887    CI/CD: Create initial version of CI/CD workflow.
18888
18889    The CI/CD workflow will only execute on Ubuntu and MacOS latest version.
18890    The workflow will attempt to build with autotools and CMake and execute
18891    the tests. The workflow will run for all pull requests and pushes done
18892    to the master branch.
18893
18894 .github/workflows/ci.yml |  72 ++++++++++++++++++++++++
18895 build-aux/ci_build.sh    | 141 +++++++++++++++++++++++++++++++++++++++++++++++
18896 2 files changed, 213 insertions(+)
18897
18898commit 1275ebfba74230dbd028049141423c79c8b83b8f
18899Author: Jia Tan <jiat0218@gmail.com>
18900Date:   2022-12-22 23:14:53 +0800
18901
18902    liblzma: Update documentation for lzma_filter_encoder.
18903
18904 src/liblzma/common/filter_encoder.c | 7 +++++--
18905 1 file changed, 5 insertions(+), 2 deletions(-)
18906
18907commit 7c9ff5f1667a16733163b75dfd4b509662c387f4
18908Author: Jia Tan <jiat0218@gmail.com>
18909Date:   2022-12-21 21:12:03 +0800
18910
18911    Tests: Adds lzip decoder tests
18912
18913 .gitignore                |   1 +
18914 tests/Makefile.am         |   2 +
18915 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++
18916 3 files changed, 474 insertions(+)
18917
18918commit 799ead162de63b8400733603d3abcd2e1977bdca
18919Author: Jia Cheong Tan <jiat0218@gmail.com>
18920Date:   2022-12-20 22:05:21 +0800
18921
18922    Doxygen: Update .gitignore for generating docs for in source build.
18923
18924    In source builds are not recommended, but we should still ignore
18925    the generated artifacts.
18926
18927 .gitignore | 2 ++
18928 1 file changed, 2 insertions(+)
18929
18930commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e
18931Author: Jia Tan <jiat0218@gmail.com>
18932Date:   2022-12-20 20:46:44 +0800
18933
18934    liblzma: Fix lzma_microlzma_encoder() return value.
18935
18936    Using return_if_error on lzma_lzma_lclppb_encode was improper because
18937    return_if_error is expecting an lzma_ret value, but
18938    lzma_lzma_lclppb_encode returns a boolean. This could result in
18939    lzma_microlzma_encoder, which would be misleading for applications.
18940
18941 src/liblzma/common/microlzma_encoder.c | 3 ++-
18942 1 file changed, 2 insertions(+), 1 deletion(-)
18943
18944commit 8ace358d65059152d9a1f43f4770170d29d35754
18945Author: Jia Tan <jiat0218@gmail.com>
18946Date:   2022-12-16 20:58:55 +0800
18947
18948    CMake: Update .gitignore for CMake artifacts from in source build.
18949
18950    In source builds are not recommended, but we can make it easier
18951    by ignoring the generated artifacts from CMake.
18952
18953 .gitignore | 23 +++++++++++++++++++++++
18954 1 file changed, 23 insertions(+)
18955
18956commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad
18957Author: Lasse Collin <lasse.collin@tukaani.org>
18958Date:   2022-12-16 18:30:02 +0200
18959
18960    liblzma: Update authors list in arm64.c.
18961
18962 src/liblzma/simple/arm64.c | 1 +
18963 1 file changed, 1 insertion(+)
18964
18965commit b69da6d4bb6bb11fc0cf066920791990d2b22a06
18966Author: Lasse Collin <lasse.collin@tukaani.org>
18967Date:   2022-12-13 20:37:17 +0200
18968
18969    Bump version to 5.4.0 and soname to 5.4.0.
18970
18971 src/liblzma/Makefile.am         | 2 +-
18972 src/liblzma/api/lzma/version.h  | 6 +++---
18973 src/liblzma/liblzma_generic.map | 2 +-
18974 src/liblzma/liblzma_linux.map   | 2 +-
18975 4 files changed, 6 insertions(+), 6 deletions(-)
18976