1commit d3e650e63c110e830fd5391e7f8b45df0b91d3da 2Author: Lasse Collin <lasse.collin@tukaani.org> 3Date: 2026-09-09 17:30:48 +0300 4 5 Bump version and soname for 5.8.4 6 7 src/liblzma/Makefile.am | 2 +- 8 src/liblzma/api/lzma/version.h | 2 +- 9 2 files changed, 2 insertions(+), 2 deletions(-) 10 11commit 44a7fbdbe4b6b75854df2f073cd0815abf6a6beb 12Author: Lasse Collin <lasse.collin@tukaani.org> 13Date: 2026-08-15 20:31:20 +0300 14 15 Add NEWS for 5.8.4 16 17 NEWS | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 18 1 file changed, 139 insertions(+) 19 20commit 0d30919e735a59ce0a029c00566c2f1463c7ac80 21Author: Lasse Collin <lasse.collin@tukaani.org> 22Date: 2026-09-09 15:19:46 +0300 23 24 Translations: Run po4a/update-po 25 26 This is to keep the files in release tarballs similar to the files 27 in the Git repository. 28 29 po4a/fr.po | 9 ++------- 30 po4a/pt_BR.po | 14 +++++++------- 31 2 files changed, 9 insertions(+), 14 deletions(-) 32 33commit b33ffadd16553bdc423b24f2529d290a8103ece4 34Author: Lasse Collin <lasse.collin@tukaani.org> 35Date: 2026-09-09 15:08:00 +0300 36 37 Translations: Run "make -C po update-po" 38 39 16 translations weren't updated after 102ea0ed1290 ("xz: Make it an error 40 if the totals in xz --list exceed UINT64_MAX"). 41 42 po/ca.po | 6 +++++- 43 po/cs.po | 6 +++++- 44 po/da.po | 6 +++++- 45 po/eo.po | 6 +++++- 46 po/es.po | 6 +++++- 47 po/fi.po | 6 +++++- 48 po/fr.po | 6 +++++- 49 po/hu.po | 6 +++++- 50 po/ka.po | 6 +++++- 51 po/pt_BR.po | 6 +++++- 52 po/sr.po | 6 +++++- 53 po/sv.po | 6 +++++- 54 po/tr.po | 6 +++++- 55 po/vi.po | 6 +++++- 56 po/zh_CN.po | 6 +++++- 57 po/zh_TW.po | 6 +++++- 58 16 files changed, 80 insertions(+), 16 deletions(-) 59 60commit df5bfb4547ec6f3e3ad28ba2ece5f89ebf8d38c6 61Author: Lasse Collin <lasse.collin@tukaani.org> 62Date: 2026-09-09 14:14:40 +0300 63 64 Tests: Add a fuzzer for .xz Index decoding 65 66 Normal .xz decoding uses lzma_index_hash, so this new fuzzer doesn't 67 overlap with the existing fuzzers. 68 69 tests/ossfuzz/fuzz_decode_index.c | 66 +++++++++++++++++++++++++++++++++++++++ 70 1 file changed, 66 insertions(+) 71 72commit 65198524f0e2a4a5670ca86b316e50dbd185fbd4 73Author: Lasse Collin <lasse.collin@tukaani.org> 74Date: 2026-09-09 14:14:40 +0300 75 76 Tests: Make some memory allocations fail in fuzzers 77 78 tests/ossfuzz/fuzz_common.h | 37 +++++++++++++++++++++++++++++++++++ 79 tests/ossfuzz/fuzz_decode_alone.c | 6 ++++-- 80 tests/ossfuzz/fuzz_decode_stream.c | 6 ++++-- 81 tests/ossfuzz/fuzz_decode_stream_mt.c | 6 ++++-- 82 tests/ossfuzz/fuzz_encode_stream.c | 4 ++++ 83 5 files changed, 53 insertions(+), 6 deletions(-) 84 85commit d4217668a79e6ca440e673115155559c81e89b84 86Author: Lasse Collin <lasse.collin@tukaani.org> 87Date: 2026-09-09 14:14:40 +0300 88 89 Tests: Reinitialize decoders twice in fuzzers 90 91 tests/ossfuzz/fuzz_decode_alone.c | 27 +++++++++------- 92 tests/ossfuzz/fuzz_decode_stream.c | 58 +++++++++++++++++++++-------------- 93 tests/ossfuzz/fuzz_decode_stream_mt.c | 30 ++++++++++++------ 94 3 files changed, 71 insertions(+), 44 deletions(-) 95 96commit 9c3661926e8b7e9ee38b687cb197a0e98ecd3fb4 97Author: Lasse Collin <lasse.collin@tukaani.org> 98Date: 2026-09-09 14:14:40 +0300 99 100 Tests: fuzz_common.h: Reset next_out and avail_out 101 102 It matters if the same lzma_stream is reused. 103 104 tests/ossfuzz/fuzz_common.h | 3 +++ 105 1 file changed, 3 insertions(+) 106 107commit 16f309314488c601daad2689924117a43a8ccbde 108Author: Lasse Collin <lasse.collin@tukaani.org> 109Date: 2026-09-09 14:14:40 +0300 110 111 Tests: Adjust coding style in fuzzers 112 113 tests/ossfuzz/fuzz_common.h | 3 ++- 114 tests/ossfuzz/fuzz_decode_alone.c | 1 + 115 tests/ossfuzz/fuzz_decode_stream.c | 1 + 116 3 files changed, 4 insertions(+), 1 deletion(-) 117 118commit c3b290c3dc536d16884a6c695618eb08fdbc700a 119Author: Lasse Collin <lasse.collin@tukaani.org> 120Date: 2026-09-09 14:14:40 +0300 121 122 liblzma: Make lzma_simple_coder_init() reinit-safe after alloc failure 123 124 lzma_raw_coder_init() always calls lzma_next_end() if an error occurs 125 in filter initialization, and no other code path can call 126 lzma_simple_coder_init(), so this change doesn't fix any bug. 127 This is just to reduce likelyhood of future bugs. 128 129 src/liblzma/simple/simple_coder.c | 20 +++++++++++--------- 130 1 file changed, 11 insertions(+), 9 deletions(-) 131 132commit ff834f25ae4f9b3e6270d41b4c843b8b1183346c 133Author: Lasse Collin <lasse.collin@tukaani.org> 134Date: 2026-09-09 14:14:40 +0300 135 136 Tests: Test lzma_alone_decoder() reuse after dictionary allocation failure 137 138 This test crashes if both of the two previous commits are reverted. 139 140 tests/Makefile.am | 2 + 141 tests/test_alone_decoder.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 142 tests/tests.cmake | 1 + 143 3 files changed, 99 insertions(+) 144 145commit e5e63d50eac1b4357a5a7a0abd3c5f99a5c47881 146Author: Lasse Collin <lasse.collin@tukaani.org> 147Date: 2026-09-09 14:14:40 +0300 148 149 liblzma: Clean up after a filter chain initialization error 150 151 Filter coders are initialized using lzma_next_filter_init(). If filter 152 chain initialization fails, the entire filter chain should be cleaned up 153 with lzma_next_end(). lzma_raw_encoder_init() and lzma_raw_decoder_init() 154 have always done this via lzma_raw_coder_init() in filter_common.c. 155 (Separate cleanup is weird, but it must have made sense to the young me.) 156 157 The following decoders initialize LZMA1 filter directly without using the 158 raw filter chain API. This avoids needlessly pulling in all other filters 159 when a program is linked against static liblzma. These functions didn't 160 call lzma_next_end() after an initialization error, which left the state 161 available for later reinitialization. 162 163 - lzma_alone_decoder() 164 - lzma_lzip_decoder() 165 - lzma_auto_decoder() [*] 166 - lzma_microlzma_decoder() 167 168 [*] lzma_auto_decoder() is only indirectly affected due to the first two 169 functions. lzma_auto_decoder() itself doesn't need a fix. 170 171 There are also encoder functions that initialize the LZMA1 encoder 172 directly. They don't have this issue because the whole lzma_stream 173 is cleaned up when encoder initialization fails. 174 175 Reported-by: GitHub user christos-cantina-security (christos-spearbit) 176 177 src/liblzma/common/alone_decoder.c | 8 ++++++-- 178 src/liblzma/common/lzip_decoder.c | 8 ++++++-- 179 src/liblzma/common/microlzma_decoder.c | 8 ++++++-- 180 3 files changed, 18 insertions(+), 6 deletions(-) 181 182commit fe4d763d566a38ad61d4c5022520c25578a3a464 183Author: Lasse Collin <lasse.collin@tukaani.org> 184Date: 2026-09-09 14:14:40 +0300 185 186 liblzma: Make lzma_lz_decoder_init() safe to reinit after alloc failure 187 188 If memory allocation fails and the resulting coder state is reused, 189 ensure that memory allocation is attempted again. However, coders that 190 are initialized via lzma_next_filter_init() shouldn't be reinitialized 191 after failure; they should be cleaned up with lzma_next_end(). 192 193 Reported-by: GitHub user christos-cantina-security (christos-spearbit) 194 195 src/liblzma/lz/lz_decoder.c | 1 + 196 1 file changed, 1 insertion(+) 197 198commit 9fc6f5cd8774ebef8d4e030f7081fb6984c0dc3f 199Author: Lasse Collin <lasse.collin@tukaani.org> 200Date: 2026-09-04 12:13:43 +0300 201 202 liblzma: mt dec: Clarify comments about mutex usage 203 204 src/liblzma/common/stream_decoder_mt.c | 4 ++-- 205 1 file changed, 2 insertions(+), 2 deletions(-) 206 207commit c6e3aadbb510e44cecfe870408ecfea1d1ca792c 208Author: Trithem90 <149891156+Trithem90@users.noreply.github.com> 209Date: 2026-09-03 19:52:23 +0200 210 211 liblzma: mt dec: Protect progress_in update with mutex 212 213 Worker threads update coder->progress_in while holding coder->mutex, but 214 the main thread updated the same field without the mutex while decoding 215 the next Block Header. ThreadSanitizer reported the concurrent writes and 216 lzma_get_progress() under-reported input progress by one Block. 217 218 All other coder->progress_in/progress_out accesses in stream_decode_mt() 219 are done when the worker threads aren't active, so only the access in 220 SEQ_BLOCK_HEADER needs to lock coder->mutex. 221 222 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 223 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 224 Closes: https://github.com/tukaani-project/xz/pull/243 225 226 src/liblzma/common/stream_decoder_mt.c | 7 ++++++- 227 1 file changed, 6 insertions(+), 1 deletion(-) 228 229commit 5121d1aed8107a113d7665b6d4f26b6187949f3d 230Author: Lasse Collin <lasse.collin@tukaani.org> 231Date: 2026-08-31 20:35:04 +0300 232 233 Tests: Add tests for single-call .xz encoding 234 235 Thanks-to: GitHub user androvonx95 236 Closes: https://github.com/tukaani-project/xz/pull/231 237 238 tests/Makefile.am | 2 + 239 tests/test_stream_buffer_encode.c | 264 ++++++++++++++++++++++++++++++++++++++ 240 tests/tests.cmake | 1 + 241 3 files changed, 267 insertions(+) 242 243commit 28a66a3d1b6af89ed6ee841384c339629fda8264 244Author: Lasse Collin <lasse.collin@tukaani.org> 245Date: 2026-08-20 16:40:01 +0300 246 247 Translations: Update the Italian translation 248 249 po/it.po | 17 ++++++++++------- 250 1 file changed, 10 insertions(+), 7 deletions(-) 251 252commit c6c425829c8635a243211cbc14dd34a042a7f796 253Author: Lasse Collin <lasse.collin@tukaani.org> 254Date: 2026-08-20 16:38:42 +0300 255 256 liblzma: LZMA2 decoder: Be more strict about compressed chunk size 257 258 It wasn't really a bug, but it's good to be more strict. 259 260 Side effects ("downsides" would be a too strong word): 261 262 - Now the LZMA decoder has to use the slow path at the end of every 263 LZMA2 chunk even when the read position isn't close to &in[in_size]. 264 This doesn't matter in practice. 265 266 - If a chunk header was corrupt exactly so that the compressed size is 267 too small, now fewer bytes of uncompressed data can be recovered. 268 269 Reported-by: GitHub user christos-spearbit 270 271 src/liblzma/lzma/lzma2_decoder.c | 25 +++++++++++++++++++++++-- 272 1 file changed, 23 insertions(+), 2 deletions(-) 273 274commit c077edfd1867b473a38fb2283c6cac545a9ea857 275Author: Lasse Collin <lasse.collin@tukaani.org> 276Date: 2026-08-19 22:58:43 +0300 277 278 Translations: Update the Polish translation 279 280 po/pl.po | 17 +++++++++++------ 281 1 file changed, 11 insertions(+), 6 deletions(-) 282 283commit 936e72e20e18cf0a637f2aa9d87f278d7a82df9d 284Author: Lasse Collin <lasse.collin@tukaani.org> 285Date: 2026-08-19 20:26:37 +0300 286 287 Translations: Update the German translation 288 289 po/de.po | 15 ++++++++++----- 290 1 file changed, 10 insertions(+), 5 deletions(-) 291 292commit 11334a5d4d5ea3e8b2a3cbce74c1062d25cef772 293Author: Lasse Collin <lasse.collin@tukaani.org> 294Date: 2026-08-19 19:07:34 +0300 295 296 Translations: Update the Korean translation 297 298 po/ko.po | 17 +++++++++++------ 299 1 file changed, 11 insertions(+), 6 deletions(-) 300 301commit 7b9955d0aaa10edbe9a71e54d16c28fdc8b60725 302Author: Lasse Collin <lasse.collin@tukaani.org> 303Date: 2026-08-19 19:05:42 +0300 304 305 Translations: Update the Portuguese translation 306 307 po/pt.po | 17 +++++++++++------ 308 1 file changed, 11 insertions(+), 6 deletions(-) 309 310commit 9ed91f3afe50fd21051af3b31139466ebfa6b20a 311Author: Lasse Collin <lasse.collin@tukaani.org> 312Date: 2026-08-19 14:03:55 +0300 313 314 Translations: Update the Dutch translation 315 316 po/nl.po | 13 +++++++++---- 317 1 file changed, 9 insertions(+), 4 deletions(-) 318 319commit e38f738e5cc5b72afc160285e65f5973f44db2fb 320Author: Lasse Collin <lasse.collin@tukaani.org> 321Date: 2026-08-18 20:20:57 +0300 322 323 Translations: Update the Romanian translation 324 325 po/ro.po | 16 +++++++++++----- 326 1 file changed, 11 insertions(+), 5 deletions(-) 327 328commit f9a0f80e35aff05871bedea040b8b82fba386829 329Author: Lasse Collin <lasse.collin@tukaani.org> 330Date: 2026-08-18 18:20:17 +0300 331 332 Translations: Update the Croatian translation 333 334 po/hr.po | 10 +++++++--- 335 1 file changed, 7 insertions(+), 3 deletions(-) 336 337commit b1b54af595926744e5bf999c2a8c7a6a23ad238a 338Author: Lasse Collin <lasse.collin@tukaani.org> 339Date: 2026-08-18 13:05:22 +0300 340 341 Translations: Update the Ukrainian translation 342 343 po/uk.po | 16 ++++++++++------ 344 1 file changed, 10 insertions(+), 6 deletions(-) 345 346commit 0072f6c9bcb69e11638f036fb7d6b54ff3c494e8 347Author: Lasse Collin <lasse.collin@tukaani.org> 348Date: 2026-08-17 20:31:41 +0300 349 350 Translations: Restore SPDX license identifier to pt_BR.po 351 352 Fixes: 8d13dd61ecb7 ("Translations: Update the Brazilian Portuguese translation") 353 354 po/pt_BR.po | 2 ++ 355 1 file changed, 2 insertions(+) 356 357commit 7f539d14484ee0fde7c1290ae22eebe739bc92cf 358Author: Lasse Collin <lasse.collin@tukaani.org> 359Date: 2026-08-15 19:50:05 +0300 360 361 Tests: Test that integer overflow in xz --list totals is caught 362 363 tests/test_files.sh | 15 +++++++++++++++ 364 1 file changed, 15 insertions(+) 365 366commit 490ca91153c24812bcef1f657220af1a4525eeb1 367Author: Lasse Collin <lasse.collin@tukaani.org> 368Date: 2026-08-15 19:50:05 +0300 369 370 Tests: Add test file bad-1-index-huge-uncomp.xz 371 372 tests/files/README | 5 +++++ 373 tests/files/bad-1-index-huge-uncomp.xz | Bin 0 -> 72 bytes 374 2 files changed, 5 insertions(+) 375 376commit 102ea0ed1290869f3af53009f98def030c6b6cd0 377Author: xordanblu <jordygarciamorales@gmail.com> 378Date: 2026-08-15 19:50:05 +0300 379 380 xz: Make it an error if the totals in xz --list exceed UINT64_MAX 381 382 If at least three files are passed to xz --list, the totals might exceed 383 the range of uint64_t. Previously wrong totals were displayed in this 384 case. Now an error is shown as soon as an overflow would occur, and the 385 remaining files aren't processed. In most other cases an error doesn't 386 prevent xz from processing the remaining files, but in this case it 387 feels OK because (1) the error should be very rare, (2) it keeps the 388 code slightly simpler, and (3) with xz --robot --list the caller will 389 likely ignore the output anyway when xz exits with a non-zero status. 390 391 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 392 Fixes: https://github.com/tukaani-project/xz/pull/240 393 394 src/xz/list.c | 34 +++++++++++++++++++++++++++++----- 395 1 file changed, 29 insertions(+), 5 deletions(-) 396 397commit 29f9ca3dbcebffd88fb55030db4fc0fcb1f66234 398Author: Lasse Collin <lasse.collin@tukaani.org> 399Date: 2026-08-15 19:42:55 +0300 400 401 liblzma: index.c 4/4: Reverse the tree building for index_streams 402 403 lzma_index_cat() is used by lzma_file_info_decoder() and by a few apps 404 that were written before lzma_file_info_decoder() existed (it was added 405 in 5.3.1alpha). The most common use case for these functions is xz --list. 406 The other use case is random access decoding. 407 408 When decoding Index fields from multi-Stream .xz files, lzma_index_cat() 409 is used to concatenate the decoded lzma_index structures. Such decoding 410 starts from the last Stream in the file and stops at the first Stream in 411 the file, so lzma_index_cat() is called with the most recently decoded 412 Stream as the destination argument while the source argument contains all 413 other Streams that have been decoded so far. That is, the typical use case 414 is lzma_index_cat(one_stream, many_streams, NULL). 415 416 With the old code, lzma_index_cat() appended Streams from src into dest 417 one at a time and updated their absolute offsets at the same time. 418 When a .xz file contained many Streams, the number of Streams in 419 the source argument grew for each call, which created a performance 420 problem if the file contained an unusually large number of Streams 421 (over 10,000). (A large number of Blocks isn't a problem.) 422 423 Make lzma_index_cat() prepend the index_streams from dest to src 424 instead of appending from src to dest. Use the _bias members to adjust 425 the offsets of the existing index_streams in src. 426 427 Change the numbering in index_stream.number from 1, 2, 3, ... to 428 ...., 2, 1, 0. That is, internally the last index_stream is now 0. 429 430 Now lzma_index_cat() needs to update all Streams from dest instead from 431 src, which keeps the normal use case fast. Obviously the performance 432 problem still exists, but now it's in the opposite situation (repeated 433 calls of lzma_index_cat(many_streams, one_stream, NULL)). This should 434 be acceptable because there should be no use cases where doing it would 435 be useful. A full fix would require a more complex patch. 436 437 As an alternative, I tried a rewrite of index.c that replaces the trees 438 with plain arrays and realloc(). It's smaller and simpler, but it's 439 still somewhat complex because the API is too flexible compared to what 440 functionality is actually needed. I didn't merge that version because 441 a rewrite has a higher risk of regressions, and in some corner cases 442 the peak memory usage was considerably higher than with the old code 443 (if a custom lzma_allocator is used, realloc() has to be emulated with 444 alloc + memcpy + free, and native realloc() might need to do that too), 445 and large preallocations make it unclear what lzma_index_memusage() and 446 lzma_index_memused() should return. 447 448 Below is an example where xz --list became too slow before this commit. 449 Pass 18 or 20 instead of 16 to seq, and xz effectively hangs. 450 451 true | xz > big.xz 452 for I in $(seq 16) 453 do 454 cat big.xz big.xz > tmp.xz 455 mv tmp.xz big.xz 456 echo ==== 457 echo $I 458 time xz -l big.xz 459 done 460 461 Reported-by: Omkhar Arasaratnam 462 463 src/liblzma/common/index.c | 105 +++++++++++++++++++++++---------------------- 464 1 file changed, 54 insertions(+), 51 deletions(-) 465 466commit 869f0e85a8aa5ec30cc5f30c14e2a27cfa0485cf 467Author: Lasse Collin <lasse.collin@tukaani.org> 468Date: 2026-08-15 19:42:55 +0300 469 470 liblzma: index.c 3/4: Add index_tree_prev() 471 472 src/liblzma/common/index.c | 19 +++++++++++++++++++ 473 1 file changed, 19 insertions(+) 474 475commit 0543606d156c3bd3bb5b1c08b848b4cbb794c094 476Author: Lasse Collin <lasse.collin@tukaani.org> 477Date: 2026-08-15 19:42:55 +0300 478 479 liblzma: index.c 2/4: Make index_tree_append support prepending too 480 481 src/liblzma/common/index.c | 72 +++++++++++++++++++++++++++++----------------- 482 1 file changed, 46 insertions(+), 26 deletions(-) 483 484commit 59cac26b8002377fb0d931e9951607d0b84bc67d 485Author: Lasse Collin <lasse.collin@tukaani.org> 486Date: 2026-08-15 19:42:55 +0300 487 488 liblzma: index.c 1/4: Add bias members 489 490 In this commit the biases are still constant. 491 492 src/liblzma/common/index.c | 54 ++++++++++++++++++++++++++++++++++------------ 493 1 file changed, 40 insertions(+), 14 deletions(-) 494 495commit f8f53ca1fbe41e7a17844c762590c01eb701824c 496Author: Lasse Collin <lasse.collin@tukaani.org> 497Date: 2026-08-15 18:55:25 +0300 498 499 CI: MSVC: Build shared liblzma 500 501 .github/workflows/msvc.yml | 3 +++ 502 1 file changed, 3 insertions(+) 503 504commit 8697fcc82389255eb2f6de69105f05a2a7262155 505Author: Lasse Collin <lasse.collin@tukaani.org> 506Date: 2026-08-15 18:55:25 +0300 507 508 Update .gitignore 509 510 .gitignore | 2 +- 511 1 file changed, 1 insertion(+), 1 deletion(-) 512 513commit 18769dd6927f16562008aee01ab1466c3035110e 514Author: Lasse Collin <lasse.collin@tukaani.org> 515Date: 2026-08-15 18:55:25 +0300 516 517 CMake: Don't put test binaries in a subdirectory 518 519 This can matter on Windows: 520 521 - MSVC puts the binaries into subdirectories based on build type 522 (like "Debug" or "Release"), and then the test executables won't 523 find liblzma.dll because it's not in the working directory from 524 which the tests are run. 525 526 - With mingw-w64, liblzma.dll was in the working directory so the test 527 executables worked. However, the if the system happened to have 528 liblzma.dll in, for example, the Windows directory, then the DLL 529 search order might pick that instead. 530 531 Putting the shared library and test executables in the same directory 532 avoids these problems. 533 534 Reported-by: Frank <mail@franku.nl> 535 Fixes: https://github.com/tukaani-project/xz/pull/239 536 537 tests/tests.cmake | 12 +++++------- 538 1 file changed, 5 insertions(+), 7 deletions(-) 539 540commit c8b8ab2ef1eb0a0217ad2027d7f5d242ceb944d3 541Author: Lasse Collin <lasse.collin@tukaani.org> 542Date: 2026-08-09 16:11:13 +0300 543 544 liblzma: Fix a theoretical integer overflow in lzma_index_cat() 545 546 To trigger it, one would need to successfully allocate hundreds of 547 gigabytes of memory. 548 549 src/liblzma/common/index.c | 5 +++++ 550 1 file changed, 5 insertions(+) 551 552commit 1a4a4df3669453e9c80235baffa13e4dd1358bc8 553Author: Lasse Collin <lasse.collin@tukaani.org> 554Date: 2026-08-09 16:11:13 +0300 555 556 Tests: test_index: Test lzma_index_memusage(STREAMS_MAX, 1) 557 558 tests/test_index.c | 1 + 559 1 file changed, 1 insertion(+) 560 561commit d31b473917a4270f5bb00fbf52598d4f3c143f7c 562Author: Lasse Collin <lasse.collin@tukaani.org> 563Date: 2026-08-09 16:11:03 +0300 564 565 liblzma: index.c: Define STREAMS_MAX 566 567 src/liblzma/common/index.c | 12 +++++++++--- 568 1 file changed, 9 insertions(+), 3 deletions(-) 569 570commit 93372479ec052e6cd1ef7b3d9ed8a96781fec155 571Author: Lasse Collin <lasse.collin@tukaani.org> 572Date: 2026-07-24 21:23:31 +0300 573 574 Tests: test_index: Extend _dup + _cat testing 575 576 tests/test_index.c | 19 ++++++++++++++++++- 577 1 file changed, 18 insertions(+), 1 deletion(-) 578 579commit a967036afbf56208cbe30fc27ec732ced7ebe4c8 580Author: Lasse Collin <lasse.collin@tukaani.org> 581Date: 2026-07-24 21:23:31 +0300 582 583 liblzma: Index decoder: Detect a too large allocation earlier 584 585 Previously, if an Index had more than PREALLOC_MAX Records, then 586 allocations were done in PREALLOC_DEFAULT chunks (512 Records). 587 That makes little sense in practice because it's likely that one 588 would run out of address space later. Return LZMA_MEM_ERROR error 589 pre-emptively if PREALLOC_MAX would be exceeded. 590 591 src/liblzma/common/index.c | 6 +++--- 592 src/liblzma/common/index.h | 4 +++- 593 src/liblzma/common/index_decoder.c | 5 ++++- 594 3 files changed, 10 insertions(+), 5 deletions(-) 595 596commit 9be8d5c91fc33c755823c9f7aac7560dbfea7f91 597Author: Lasse Collin <lasse.collin@tukaani.org> 598Date: 2026-08-04 17:59:43 +0300 599 600 Update THANKS 601 602 THANKS | 1 + 603 1 file changed, 1 insertion(+) 604 605commit d16c31196e4c1fd4a76c960a5c7db261075e4db1 606Author: Darren Carreras <283775510+carrerasdarren-cell@users.noreply.github.com> 607Date: 2026-07-27 22:13:09 -0400 608 609 Tests: Add a test for the lzma_index_dup() + lzma_index_checks bug() 610 611 Link: https://github.com/tukaani-project/xz/pull/238 612 613 tests/test_index.c | 14 ++++++++++++++ 614 1 file changed, 14 insertions(+) 615 616commit c57500bda55f61936c9d3afb701d42e92fc8508b 617Author: Darren Carreras <283775510+carrerasdarren-cell@users.noreply.github.com> 618Date: 2026-07-27 22:13:09 -0400 619 620 liblzma: Preserve check statistics in lzma_index_dup() 621 622 lzma_index_dup() copied the per-Stream flags but not the cached bitmask 623 for all Streams except the last one. As a result, lzma_index_checks() on 624 a duplicated multi-Stream Index reported only the Check type of its 625 final Stream. 626 627 Fixes: https://github.com/tukaani-project/xz/pull/238 628 629 src/liblzma/common/index.c | 1 + 630 1 file changed, 1 insertion(+) 631 632commit 6097929ae8f8c2a1714aacd844a8e9747b071cdc 633Author: Lasse Collin <lasse.collin@tukaani.org> 634Date: 2026-07-21 13:56:42 +0300 635 636 Update THANKS 637 638 THANKS | 2 ++ 639 1 file changed, 2 insertions(+) 640 641commit 4b9b827117cecd7571c0952b501fa84c4bd7e5fb 642Author: Lasse Collin <lasse.collin@tukaani.org> 643Date: 2026-07-21 13:50:13 +0300 644 645 xz: Free the filename read from the file specified with --files/--files0 646 647 Like the previous commit, this cleans up leak detection slightly. 648 Otherwise it doesn't matter because xz is going to exit soon anyway. 649 650 src/xz/main.c | 8 +++++--- 651 1 file changed, 5 insertions(+), 3 deletions(-) 652 653commit 7bd6d63b0c0cf2a0c4b609014c49e66d5199e385 654Author: Lasse Collin <lasse.collin@tukaani.org> 655Date: 2026-07-21 13:32:05 +0300 656 657 xz: Free the filename allocated for --files or --files0 658 659 This cleans up leak detection slightly. Otherwise it doesn't matter 660 because xz is going to exit soon anyway. 661 662 Reported-by: Phuc An 663 Fixes: https://github.com/tukaani-project/xz/pull/232 664 665 src/xz/args.c | 2 +- 666 src/xz/args.h | 2 +- 667 src/xz/main.c | 4 +++- 668 3 files changed, 5 insertions(+), 3 deletions(-) 669 670commit 0877609467a81fb831a3bcbcea732d20582a58b9 671Author: Lasse Collin <lasse.collin@tukaani.org> 672Date: 2026-07-21 12:58:45 +0300 673 674 liblzma: Fix input_size_max in lzma_index_buffer_decode() 675 676 If *in_pos > 0, the condition became more relaxed than it needed to be. 677 678 Fixes: 5005914f1acf ("liblzma: Index decoder: Reject an obviously-bad Number of> 679 Fixes: 0352dc7929b1 ("liblzma: Silence a compiler warning") 680 681 src/liblzma/common/index_decoder.c | 5 ++--- 682 1 file changed, 2 insertions(+), 3 deletions(-) 683 684commit d4edae32b6f1d34d68f3ac8917c20d0191e0cfcd 685Author: Lasse Collin <lasse.collin@tukaani.org> 686Date: 2026-07-20 22:29:58 +0300 687 688 Tests: Fix test_index.c when encoding support is disabled 689 690 Fixes: 10dfae83fd3b ("Tests: test_index: Add a test for the Index decoder memusage bug") 691 692 tests/test_index.c | 4 ++-- 693 1 file changed, 2 insertions(+), 2 deletions(-) 694 695commit 0352dc7929b19f17afcdafae49ec86156cc31462 696Author: Lasse Collin <lasse.collin@tukaani.org> 697Date: 2026-07-20 22:14:05 +0300 698 699 liblzma: Silence a compiler warning 700 701 Fixes: 5005914f1acf ("liblzma: Index decoder: Reject an obviously-bad Number of Records better") 702 703 src/liblzma/common/index_decoder.c | 4 +++- 704 1 file changed, 3 insertions(+), 1 deletion(-) 705 706commit 47c44e90089de546619d927dba190f0100df4eda 707Author: Lasse Collin <lasse.collin@tukaani.org> 708Date: 2026-07-20 20:00:06 +0300 709 710 Tests: test_index: Test the stricter Number of Records condition 711 712 tests/test_index.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 713 1 file changed, 45 insertions(+) 714 715commit a9c92328bdee9b9afc2d8a0a300ad66d8edcf801 716Author: Lasse Collin <lasse.collin@tukaani.org> 717Date: 2026-07-20 20:00:06 +0300 718 719 Tests: Add test file bad-0-index-1.xz 720 721 tests/files/README | 3 +++ 722 tests/files/bad-0-index-1.xz | Bin 0 -> 32 bytes 723 2 files changed, 3 insertions(+) 724 725commit 006126aca97b5f5b6bacd549787b18c1e9ce1908 726Author: Lasse Collin <lasse.collin@tukaani.org> 727Date: 2026-07-20 20:00:06 +0300 728 729 Revert "liblzma: Add internal constant INDEX_RECORDS_MAX" 730 731 This reverts commit 9ff4dadca96a5ac3cb478759a4fdb8663be114eb. 732 The INDEX_RECORDS_MAX constant isn't needed after the previous commit. 733 734 src/liblzma/common/index.h | 6 ------ 735 1 file changed, 6 deletions(-) 736 737commit 5005914f1acfdb9884bedc8100bce6185d0861b6 738Author: Lasse Collin <lasse.collin@tukaani.org> 739Date: 2026-07-20 20:00:06 +0300 740 741 liblzma: Index decoder: Reject an obviously-bad Number of Records better 742 743 File info decoder knows Backward Size, so pass it to the Index decoder. 744 Now the Index decoder, when called from the file info decoder, won't 745 allocate a large amount of memory when Backward Size is tiny and the 746 Number of Records field contains a huge invalid value. 747 748 If a reasonable memory usage limit was set, the old code returned 749 LZMA_MEMLIMIT_ERROR if the value in Number of Records was too huge. 750 Now it results in LZMA_DATA_ERROR which is better. 751 752 src/liblzma/common/file_info.c | 7 ++++--- 753 src/liblzma/common/index_decoder.c | 35 +++++++++++++++++++++++++---------- 754 src/liblzma/common/index_decoder.h | 2 +- 755 3 files changed, 30 insertions(+), 14 deletions(-) 756 757commit 10dfae83fd3b63c32c0e170540e98c4b25bf02c6 758Author: Lasse Collin <lasse.collin@tukaani.org> 759Date: 2026-07-20 20:00:06 +0300 760 761 Tests: test_index: Add a test for the Index decoder memusage bug 762 763 tests/test_index.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 764 1 file changed, 48 insertions(+) 765 766commit bd3bfe834620b664d73b15952894864660a9bef1 767Author: Lasse Collin <lasse.collin@tukaani.org> 768Date: 2026-07-20 20:00:06 +0300 769 770 liblzma: Index decoder: Fix lzma_memusage() 771 772 If lzma_stream was initialized using lzma_index_decoder() or 773 lzma_file_info_decoder(), and lzma_memusage() was called after a few 774 Records had already been decoded, the return value was too low because 775 it was calculated based on the number of Records that haven't been 776 decoded yet. So near the end of a big Index, the return value would be 777 tiny compared to the actual memory usage. 778 779 It worked correctly in the primary use case, that is, after 780 LZMA_MEMLIMIT_ERROR. Thus, in practice this bug didn't matter much. 781 782 src/liblzma/common/index_decoder.c | 21 +++++++++++++++++---- 783 1 file changed, 17 insertions(+), 4 deletions(-) 784 785commit 2187b27c64ef23d6ffa2917c8d835e100969e3e6 786Author: Lasse Collin <lasse.collin@tukaani.org> 787Date: 2026-07-20 20:00:06 +0300 788 789 Tests: test_index: Fix testing of _locate() with concatenated lzma_index 790 791 tests/test_index.c | 11 +++++++++++ 792 1 file changed, 11 insertions(+) 793 794commit 8d13dd61ecb703cfabdf826ca0a282c2b5f60cd4 795Author: Lasse Collin <lasse.collin@tukaani.org> 796Date: 2026-07-19 10:44:49 +0300 797 798 Translations: Update the Brazilian Portuguese translation 799 800 po/pt_BR.po | 453 +++++++++++++++++------------------------------------------- 801 1 file changed, 125 insertions(+), 328 deletions(-) 802 803commit 791ce1bb6dcae5f424a5a40b877ec4abd9476399 804Author: Lasse Collin <lasse.collin@tukaani.org> 805Date: 2026-07-15 22:12:07 +0300 806 807 liblzma: Remove an outdated API doc in hardware.h 808 809 src/liblzma/api/lzma/hardware.h | 5 +---- 810 1 file changed, 1 insertion(+), 4 deletions(-) 811 812commit f3b5688159c60495f48db3942a36509671dfce89 813Author: Lasse Collin <lasse.collin@tukaani.org> 814Date: 2026-07-03 16:55:03 +0300 815 816 Tests: Comment that a sanitizer may be needed for lzma_index_append() bug 817 818 Fixes: a3ea8832bec1 ("Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug") 819 Link: https://github.com/tukaani-project/xz/issues/233 820 821 tests/test_index.c | 2 ++ 822 1 file changed, 2 insertions(+) 823 824commit 6a07932a8787eab0b2e1d1a6856d4393e50bba67 825Author: Lasse Collin <lasse.collin@tukaani.org> 826Date: 2026-07-02 21:56:33 +0300 827 828 Translations: Update the Croatian translation 829 830 po/hr.po | 387 +++++++++++++++++++++++++++++++-------------------------------- 831 1 file changed, 191 insertions(+), 196 deletions(-) 832 833commit b8d0707ae788b401161babf0fe771c859e3f996c 834Author: Lasse Collin <lasse.collin@tukaani.org> 835Date: 2026-07-02 21:09:36 +0300 836 837 NEWS: Clarify which bug is CVE-2026-34743 838 839 Fixes: https://salsa.debian.org/debian/xz-utils/-/merge_requests/5#note_775071 840 841 NEWS | 4 ++-- 842 1 file changed, 2 insertions(+), 2 deletions(-) 843 844commit e95cd90da9c620cf9ceca1f9e94025bcb437fca9 845Author: Lasse Collin <lasse.collin@tukaani.org> 846Date: 2026-06-21 19:29:59 +0300 847 848 Translations: Fix LTR/RTL issue in Arabic xz man page tables 849 850 The headings are RTL but in some tables the rows were LTR because the 851 first strong char was LTR, like the "e" in "-0e". Add {RLM}{LRM}...{RLM} 852 to those columns ("-0" to "-9", and "-0e" to "-9e"): 853 854 sed -ri $'/^msgstr /{s/"(-[0-9]e?)"/"\u200f\u200e\\1\u200f"/}' ar.po 855 856 It's not perfect because groff doesn't treat RLM and LRM as zero-width 857 chars, and thus the columns are slightly misaligned. It's good enough 858 in practice still. 859 860 Thanks-to: Zayed Al-Saidi <zayed.alsaidi@gmail.com> 861 862 po4a/ar.po | 40 ++++++++++++++++++++-------------------- 863 1 file changed, 20 insertions(+), 20 deletions(-) 864 865commit b46944d73495b99148eebb1d9661574c2041f4db 866Author: Lasse Collin <lasse.collin@tukaani.org> 867Date: 2026-06-21 20:02:49 +0300 868 869 CI: Add 'timeout: 10' to coverity.yml 870 871 .github/workflows/coverity.yml | 1 + 872 1 file changed, 1 insertion(+) 873 874commit 0def41200695c830c6da95a21ef7158f60a6af01 875Author: Lasse Collin <lasse.collin@tukaani.org> 876Date: 2026-06-19 22:07:15 +0300 877 878 CI: Don't pin vmactions or MSYS2 actions to commit ID 879 880 These workflows don't use any secrets other than GITHUB_TOKEN, which 881 only has the 'contents: read' permission. That is, if an action was 882 compromised, it shouldn't be able to modify the repository or steal any 883 secrets. I recognize that a compromised action isn't completely harmless 884 still. For example, the runners on GitHub have Internet access which the 885 action could abuse until the workflow timeout (currently 10 or 20 minutes) 886 expires. 887 888 Now we always use the most recent actions instead of ones that are 889 sometimes several months old. The hassle of updating the pinned 890 commit IDs goes away. The benefits feel bigger than the risks. 891 892 Link: https://github.com/tukaani-project/xz/pull/227 893 894 .github/workflows/dragonflybsd.yml | 2 +- 895 .github/workflows/freebsd.yml | 2 +- 896 .github/workflows/haiku.yml | 2 +- 897 .github/workflows/msys2.yml | 4 ++-- 898 .github/workflows/netbsd.yml | 2 +- 899 .github/workflows/openbsd.yml | 2 +- 900 .github/workflows/solaris.yml | 2 +- 901 7 files changed, 8 insertions(+), 8 deletions(-) 902 903commit 3c0dbed89069f7a57f7ce5e0a9259081fcc4ba4d 904Author: Lasse Collin <lasse.collin@tukaani.org> 905Date: 2026-06-19 22:07:15 +0300 906 907 CI: Upgrade actions/checkout from v6 to v7 908 909 .github/workflows/ci.yml | 2 +- 910 .github/workflows/coverity.yml | 2 +- 911 .github/workflows/dragonflybsd.yml | 2 +- 912 .github/workflows/freebsd.yml | 2 +- 913 .github/workflows/haiku.yml | 2 +- 914 .github/workflows/msvc.yml | 2 +- 915 .github/workflows/msys2.yml | 2 +- 916 .github/workflows/netbsd.yml | 2 +- 917 .github/workflows/openbsd.yml | 2 +- 918 .github/workflows/solaris.yml | 2 +- 919 10 files changed, 10 insertions(+), 10 deletions(-) 920 921commit 0fab61de63f458a6f72ee1745790c17ac368787e 922Author: Lasse Collin <lasse.collin@tukaani.org> 923Date: 2026-06-19 22:07:15 +0300 924 925 CI: Run CI workflows on push to 'ci_run' in addition to 'master' 926 927 Make it convenient to run the CI workflows by pushing to a branch with 928 a specific name. 929 930 .github/workflows/ci.yml | 2 +- 931 .github/workflows/cifuzz.yml | 2 +- 932 .github/workflows/dragonflybsd.yml | 2 +- 933 .github/workflows/freebsd.yml | 2 +- 934 .github/workflows/haiku.yml | 2 +- 935 .github/workflows/msvc.yml | 2 +- 936 .github/workflows/msys2.yml | 2 +- 937 .github/workflows/netbsd.yml | 2 +- 938 .github/workflows/openbsd.yml | 2 +- 939 .github/workflows/solaris.yml | 2 +- 940 10 files changed, 10 insertions(+), 10 deletions(-) 941 942commit 8e8c6598a56d5d07daa9554cfac2456631afc1a9 943Author: Lasse Collin <lasse.collin@tukaani.org> 944Date: 2026-06-19 22:07:15 +0300 945 946 CI: Remove the on 'pull_request:' entries 947 948 I don't run CI from PRs, so these just add noise to the "Actions" tab 949 in the GH UI. 950 951 .github/workflows/ci.yml | 2 -- 952 .github/workflows/dragonflybsd.yml | 2 -- 953 .github/workflows/freebsd.yml | 2 -- 954 .github/workflows/haiku.yml | 2 -- 955 .github/workflows/msvc.yml | 2 -- 956 .github/workflows/msys2.yml | 2 -- 957 .github/workflows/netbsd.yml | 2 -- 958 .github/workflows/openbsd.yml | 2 -- 959 .github/workflows/solaris.yml | 2 -- 960 9 files changed, 18 deletions(-) 961 962commit 88ae12f7873c7d8731cbd1d05313dc4a016171f7 963Author: Lasse Collin <lasse.collin@tukaani.org> 964Date: 2026-06-19 22:07:15 +0300 965 966 CI: Use 'contents: read' after all 967 968 If someone makes a private fork, then it will work there too. 969 970 Thanks-to: Eli Schwartz 971 972 .github/workflows/ci.yml | 3 ++- 973 .github/workflows/cifuzz.yml | 3 ++- 974 .github/workflows/coverity.yml | 3 ++- 975 .github/workflows/dragonflybsd.yml | 3 ++- 976 .github/workflows/freebsd.yml | 3 ++- 977 .github/workflows/haiku.yml | 3 ++- 978 .github/workflows/msvc.yml | 3 ++- 979 .github/workflows/msys2.yml | 3 ++- 980 .github/workflows/netbsd.yml | 3 ++- 981 .github/workflows/openbsd.yml | 3 ++- 982 .github/workflows/solaris.yml | 3 ++- 983 11 files changed, 22 insertions(+), 11 deletions(-) 984 985commit b70af4d5320750acda7cffbd75a3390eede600bd 986Author: Lasse Collin <lasse.collin@tukaani.org> 987Date: 2026-06-17 16:02:45 +0300 988 989 CI: Add 'permissions' to coverity.yml 990 991 GitHub's actions/checkout@v6 is documented to need 'contents: read' but 992 it works without it too, probably because the repository is public. 993 994 Reported-by: GitHub user Alb3e3 995 Fixes: https://github.com/tukaani-project/xz/pull/230 996 997 .github/workflows/coverity.yml | 2 ++ 998 1 file changed, 2 insertions(+) 999 1000commit 56c18ccfb7a707d4eba4b619e60324f84032b4fa 1001Author: Lasse Collin <lasse.collin@tukaani.org> 1002Date: 2026-06-16 21:48:57 +0300 1003 1004 liblzma: file info decoder: Add an integer overflow check 1005 1006 After the previous commit, the overflow should be impossible, but it's 1007 better to add the check anyway. 1008 1009 Fixes: https://github.com/tukaani-project/xz/pull/226 1010 1011 src/liblzma/common/file_info.c | 7 +++++++ 1012 1 file changed, 7 insertions(+) 1013 1014commit a73f4c67154fe6111076ee673fd8991f5853d8d4 1015Author: Lasse Collin <lasse.collin@tukaani.org> 1016Date: 2026-06-03 00:20:28 +0300 1017 1018 liblzma: Index decoder: Reject an obviously-bad Number of Records early 1019 1020 There no point to try decoding further when the Index is clearly not 1021 from a valid .xz file. 1022 1023 This also limits what index_decoder_memconfig() can return as the 1024 memory usage. Very huge values aren't possible anymore. This affects 1025 file_info_decoder_memconfig() in file_info.c where very huge values 1026 aren't expected and could result in an integer overflow when not much 1027 memory has actually been allocated. Now the overflow can only happen if 1028 one manages to successfully allocate and fill a few exabytes of memory. 1029 1030 Reported-by: GitHub user jmestwa-coder 1031 Fixes: https://github.com/tukaani-project/xz/pull/226 1032 1033 src/liblzma/common/index_decoder.c | 7 +++++++ 1034 1 file changed, 7 insertions(+) 1035 1036commit 9ff4dadca96a5ac3cb478759a4fdb8663be114eb 1037Author: Lasse Collin <lasse.collin@tukaani.org> 1038Date: 2026-06-03 00:05:48 +0300 1039 1040 liblzma: Add internal constant INDEX_RECORDS_MAX 1041 1042 It's the theoretical maximum number of Records that fit in a .xz file. 1043 This can be used to reject obviously wrong values. 1044 1045 src/liblzma/common/index.h | 6 ++++++ 1046 1 file changed, 6 insertions(+) 1047 1048commit 25a53ed6d1c91372fde1fe8631dcf93ac6625e5c 1049Author: Lasse Collin <lasse.collin@tukaani.org> 1050Date: 2026-06-17 22:04:17 +0300 1051 1052 Translation: Update Arabic man page translations 1053 1054 In two tables, the column headings are now narrower and 1055 1056 MANWIDTH=80 man --warnings po4a/man/ar/xz.1 > /dev/null 1057 1058 no longer warns. 1059 1060 Thanks-to: Zayed Al-Saidi <zayed.alsaidi@gmail.com> 1061 Fixes: https://github.com/tukaani-project/xz/pull/220 1062 1063 po4a/ar.po | 32 ++++++++++++++++---------------- 1064 1 file changed, 16 insertions(+), 16 deletions(-) 1065 1066commit 225c46e99c3a3e6e0996649ee8d858b6e07111b3 1067Author: Lasse Collin <lasse.collin@tukaani.org> 1068Date: 2026-06-04 23:33:37 +0300 1069 1070 xzdiff: Use LC_ALL=C with sed and expr 1071 1072 This is required to handle strings that may contain invalid multibyte 1073 sequences. For example, on GNU/Linux and FreeBSD 14 with UTF-8 locale: 1074 1075 $ printf "\201'A\n" | sed s/./x/ | hexdump -C 1076 00000000 81 78 41 0a |.xA.| 1077 1078 That is, the first byte remains untouched and the ' is replaced with x. 1079 This kind of string would result in inbalanced quotes in xzdiff. In the 1080 C locale it works safely: 1081 1082 $ printf "\201'A\n" | LC_ALL=C sed s/./x/ | hexdump -C 1083 00000000 78 27 41 0a |x'A.| 1084 1085 Similar changes were made in xzgrep in 2022 (see the commits 69d1b3fc2967 1086 and 6a4a4a7d2667). Somehow xzdiff was forgotten even though this issue 1087 was fixed in zdiff in gzip in 2022. 1088 1089 Co-authored-by: rootvector2 <dxbnaveed.k@gmail.com> 1090 Fixes: https://github.com/tukaani-project/xz/pull/228 1091 1092 src/scripts/xzdiff.in | 14 +++++++------- 1093 1 file changed, 7 insertions(+), 7 deletions(-) 1094 1095commit 1aab7e9cab1293c2b8a481ed1beac94da21ef04f 1096Author: rootvector2 <dxbnaveed.k@gmail.com> 1097Date: 2026-05-28 12:29:23 +0530 1098 1099 xz: Fix --files/--files0 usage via XZ_OPT and XZ_DEFAULTS env vars 1100 1101 If --files=FILELIST or --files0=FILELIST was specified via an enrivonment 1102 variable, it worked if there were no errors when reading from the file 1103 FILELIST. However, if an error occurred when reading from FILELIST, 1104 there was a use-after-free bug when printing the error message because 1105 the memory containing the string "FILELIST" had been freed. 1106 1107 printf foo.xz > filelist.txt 1108 XZ_OPT=--files=filelist.txt xz -l 1109 1110 Because filelist.txt doesn't end in a newline, the file list is seen as 1111 invalid/truncated, resulting in an error message like this: 1112 1113 xz: ????????.txt: Unexpected end of input when reading filenames 1114 1115 The question marks are because the garbage string is masked using 1116 tuklib_mask_nonprint(). After this commit, it works: 1117 1118 xz: filelist.txt: Unexpected end of input when reading filenames 1119 1120 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 1121 Fixes: https://github.com/tukaani-project/xz/pull/223 1122 1123 src/xz/args.c | 11 ++++++++--- 1124 1 file changed, 8 insertions(+), 3 deletions(-) 1125 1126commit d0d380797e9f1c25c0a88ce5d4cfd092590a209d 1127Author: rootvector2 <dxbnaveed.k@gmail.com> 1128Date: 2026-05-27 23:51:52 +0530 1129 1130 xz: Mask the multiplier suffix in str_to_uint64() error message 1131 1132 A similar error message in the same function was masked in the 1133 previous commit 7e7bb6c21cf9. 1134 1135 Fixes: https://github.com/tukaani-project/xz/pull/222 1136 1137 src/xz/util.c | 2 +- 1138 1 file changed, 1 insertion(+), 1 deletion(-) 1139 1140commit 7e7bb6c21cf9c78f95a5049242fa35aebce38ea4 1141Author: Lasse Collin <lasse.collin@tukaani.org> 1142Date: 2026-05-26 19:30:29 +0300 1143 1144 xz: Use tuklib_mbstr_nonprint in a few more places 1145 1146 Reported-by: GitHub user curious-rabbit 1147 1148 src/xz/args.c | 22 +++++++++++++--------- 1149 src/xz/coder.c | 2 +- 1150 src/xz/util.c | 2 +- 1151 3 files changed, 15 insertions(+), 11 deletions(-) 1152 1153commit 1df00237ae36da1debd5f30ca76a78e28a10d6e2 1154Author: Lasse Collin <lasse.collin@tukaani.org> 1155Date: 2026-05-25 18:32:15 +0300 1156 1157 xzgrep: Fix handling of the ' char at the end of an option 1158 1159 For example, the following would run the "id" command: 1160 1161 xzgrep "--a='" "--b=;id;'" "pattern" foo.xz 1162 1163 The bug was inherited from gzip's zgrep. It was reported to bug-gzip by 1164 Leenear. It was fixed in gzip in the commit cd74dc30f8cc by Paul Eggert. 1165 1166 Link: https://lists.gnu.org/archive/html/bug-gzip/2026-04/msg00032.html 1167 1168 src/scripts/xzgrep.in | 2 +- 1169 1 file changed, 1 insertion(+), 1 deletion(-) 1170 1171commit 2928248922a200eb3fbcc5e7dea9216d7f81a788 1172Author: Lasse Collin <lasse.collin@tukaani.org> 1173Date: 2026-05-21 19:04:34 +0300 1174 1175 Update THANKS 1176 1177 THANKS | 3 +++ 1178 1 file changed, 3 insertions(+) 1179 1180commit 8654b72980c774d4cb142e11a6012fe9a6a83122 1181Author: Lasse Collin <lasse.collin@tukaani.org> 1182Date: 2026-05-21 18:57:36 +0300 1183 1184 Landlock: Support ABI version 9 1185 1186 Features added in versions 7 and 8 shouldn't be relevant here. 1187 1188 src/common/my_landlock.h | 11 ++++++++++- 1189 1 file changed, 10 insertions(+), 1 deletion(-) 1190 1191commit f5665a445f08b031cd9807068654620b5a15e5eb 1192Author: Lasse Collin <lasse.collin@tukaani.org> 1193Date: 2026-05-21 18:38:16 +0300 1194 1195 Landlock: Provide fallbacks for ABI 2, 3, and 5 macros 1196 1197 This way the newer features are available on new enough kernels 1198 even if the package is built against old <linux/landlock.h>. 1199 1200 Landlock ABI versions 4 and 6 would require an extended 1201 struct landlock_ruleset_attr. No fallback is provided (or planned) 1202 for those features. 1203 1204 Suggested-by: Omkhar Arasaratnam 1205 1206 src/common/my_landlock.h | 32 ++++++++++++++++++++------------ 1207 1 file changed, 20 insertions(+), 12 deletions(-) 1208 1209commit 6237e4319fabe740d6f56ebf5960ce348bafdbcf 1210Author: Lasse Collin <lasse.collin@tukaani.org> 1211Date: 2026-05-20 21:21:51 +0300 1212 1213 xz: Reduce indentation of three tables on the man page 1214 1215 The extra indentation makes the tables stand out from the text, and 1216 in the English man page it works well. However, some translations 1217 have strings that require more space, and the table might become 1218 too wide. In some translations this has been solved by splitting 1219 the translated string on two lines, for example, Romanian translation 1220 of "4096-byte alignment is best". 1221 1222 On Debian 13 with groff 1.23.0, the "man" command shows a few warnings: 1223 1224 $ LANGUAGE=it MANWIDTH=80 man --warnings xz > /dev/null 1225 <standard input>:477: warning: table wider than line length minus indentation 1226 <standard input>:545: warning: table wider than line length minus indentation 1227 <standard input>:1182: warning: table wider than line length minus indentation 1228 1229 German man page shows those warnings too. On Arch with groff 1.24.1, 1230 there are fewer warnings because the newer groff indents less, and 1231 fewer tables reach or exceed the right margin. Thus, some safety margin 1232 is good to keep the output neat with different man page formatters. 1233 1234 It feels silly to reduce the indentation on the English man page which 1235 has plenty of safety margin, but it's simpler than trying to do it 1236 only for the translated man pages. This doesn't affect readability; 1237 it's just cosmetic. 1238 1239 I tried using .IP instead of .RS + .PP for the tables, but on Solaris 10 1240 it results in an extra empty line before the table. It makes some 1241 difference on AIX 7.3 too. With groff, both are fine. Stick to 1242 .RS + .PP + .TS ... .TE + .RE for slightly better portability. 1243 1244 Co-authored-by: Otto Kekäläinen <otto@debian.org> 1245 Partially-fixes: https://github.com/tukaani-project/xz/pull/220 1246 1247 src/xz/xz.1 | 6 ------ 1248 1 file changed, 6 deletions(-) 1249 1250commit f9b243e2034a2d71af92fb4785e02d68d9f2216c 1251Author: Lasse Collin <lasse.collin@tukaani.org> 1252Date: 2026-05-20 13:42:45 +0300 1253 1254 Translations: Fix a syntax typo in the Serbian xz man page translation 1255 1256 Testing with this: 1257 1258 cd po4a 1259 ./update-po 1260 groff -K utf8 -man -t -ww -rCHECKSTYLE=3 -z man/sr/*.1 1261 1262 The output included this: 1263 1264 an.tmac:man/sr/xz.1:751: style: 1 leading space(s) on input line 1265 1266 The actual reason seemed to be an unwanted newline (likely a typo). 1267 1268 po4a/sr.po | 3 +-- 1269 1 file changed, 1 insertion(+), 2 deletions(-) 1270 1271commit 625387f089655a8e4a2f4317e66b20a42e276d06 1272Author: Lasse Collin <lasse.collin@tukaani.org> 1273Date: 2026-05-20 13:37:18 +0300 1274 1275 Translations: Fix a groff warning in the German xz man page translation 1276 1277 Testing with this: 1278 1279 cd po4a 1280 ./update-po 1281 groff -K utf8 -man -t -ww -rCHECKSTYLE=3 -z man/de/*.1 1282 1283 The output included this: 1284 1285 an.tmac:man/de/xz.1:524: style: 1 leading space(s) on input line 1286 1287 po4a/de.po | 2 +- 1288 1 file changed, 1 insertion(+), 1 deletion(-) 1289 1290commit 6365d4dadd86ceb6c02734cf1aac4c483043b733 1291Author: Lasse Collin <lasse.collin@tukaani.org> 1292Date: 2026-05-20 13:32:43 +0300 1293 1294 Translations: Fix syntax in the Korean man page translations 1295 1296 Testing with this: 1297 1298 cd po4a 1299 ./update-po 1300 groff -K utf8 -man -t -ww -z man/ko/*.1 1301 1302 It produced warnings: 1303 1304 troff:man/ko/xz.1:1405: warning: color 'i' not defined 1305 troff:man/ko/xzdec.1:17: warning: cannot select font '\' 1306 troff:man/ko/xzdec.1:19: warning: cannot select font '\' 1307 1308 po4a/ko.po | 6 +++--- 1309 1 file changed, 3 insertions(+), 3 deletions(-) 1310 1311commit 8e99c3934b31eb84e9a08329be41623deaf2de54 1312Author: Lasse Collin <lasse.collin@tukaani.org> 1313Date: 2026-05-20 13:24:03 +0300 1314 1315 Translations: Fix a syntax typo in the French xz man page translation 1316 1317 Testing with this: 1318 1319 cd po4a 1320 ./update-po 1321 groff -K utf8 -man -t -ww -z man/fr/xz.1 1322 1323 It produced a warning: 1324 1325 troff:man/fr/xz.1:516: warning: color 'i' not defined 1326 1327 The backslash for non-breaking space was misplaced: 1328 1329 Old: 8 \\Mio, 1330 New: 8\\ Mio, 1331 1332 po4a/fr.po | 2 +- 1333 1 file changed, 1 insertion(+), 1 deletion(-) 1334 1335commit 784adc9263a9e5dee684fd5dd45a93fcaed98981 1336Author: Lasse Collin <lasse.collin@tukaani.org> 1337Date: 2026-05-20 13:09:59 +0300 1338 1339 Man pages: Improve rendering in mandoc 1340 1341 Don't use "" as an argument to .IP because it makes mandoc insert 1342 an unwanted extra empty line. With the xz man page, this change makes 1343 no difference in plain text output with GNU groff or on AIX or 1344 Solaris 10. The list in the xzgrep man page has a different indentation 1345 now because previously it had two arguments (.IP "" 4), but that's OK. 1346 1347 I don't remember why '.IP' was changed to '.IP ""' in cec0ddc8ec4c. 1348 Maybe it made a difference on some proprietary UNIX over 15 years ago 1349 or maybe it was just a misunderstanding. 1350 1351 src/scripts/xzgrep.1 | 18 +++--- 1352 src/xz/xz.1 | 152 +++++++++++++++++++++++++-------------------------- 1353 2 files changed, 85 insertions(+), 85 deletions(-) 1354 1355commit 814e8828b57af30b529aee15132f4066ddb8fcf0 1356Author: Lasse Collin <lasse.collin@tukaani.org> 1357Date: 2026-05-20 01:25:41 +0300 1358 1359 po4a/update-po: Workaround an issue with non-ASCII chars in tables 1360 1361 Non-ASCII chars in tables (.TS ... .TE) result in warnings: 1362 1363 man --warnings po4a/man/uk/xz.1 > /dev/null 1364 troff:<standard input>:464: warning: special character 'u0411\[tbl' not defined 1365 troff:<standard input>:1157: warning: special character 'u044\[tbl' not defined 1366 troff:<standard input>:1682: warning: special character 'u0434\[tbl' not defined 1367 1368 po4a generates groff Unicode escapes like '\u0435' followed immediately 1369 by '[' in table contexts, causing groff to interpret the full string 1370 'u0435[tbl' as a single special character name. Fix this by inserting 1371 a dummy character (\&) after every Unicode escape so that the bracket 1372 is treated as literal text instead of part of the character name. 1373 1374 Co-authored-by: Otto Kekäläinen <otto@debian.org> 1375 Partially-fixes: https://github.com/tukaani-project/xz/pull/220 1376 1377 po4a/update-po | 6 ++++++ 1378 1 file changed, 6 insertions(+) 1379 1380commit bc96573a65008641783f25a2cbd877b9cccff1e9 1381Author: Lasse Collin <lasse.collin@tukaani.org> 1382Date: 2026-05-19 18:12:07 +0300 1383 1384 Translations: Update the German man page translations 1385 1386 po4a/de.po | 20 +++++++------------- 1387 1 file changed, 7 insertions(+), 13 deletions(-) 1388 1389commit 81faa2e653e81c305cc386c0a5280fef5924c9b7 1390Author: Lasse Collin <lasse.collin@tukaani.org> 1391Date: 2026-05-19 17:36:15 +0300 1392 1393 liblzma: ARM64 & LoongArch: Avoid aligned_readXXle on unaligned pointers 1394 1395 While most ARM64 and LoongArch processors support unaligned access, 1396 the code wouldn't have worked on strict-align processors. 1397 1398 Use byte-by-byte method if the input buffer is at most 7 bytes. This 1399 way the code works on strict-align processors too. It might not be 1400 the very best method for tiny buffers, but it shouldn't matter in 1401 practice (the simple implementation for big buffers isn't amazing 1402 either because it cannot execute more than one CRC32 instruction 1403 at a time on superscalar processors). 1404 1405 Reported-by: Guanni Qu 1406 Fixes: 0ed893668554 ("liblzma: ARM64 CRC32: Align the buffer faster") 1407 Fixes: 7baf6835cfbf ("liblzma: Speed up CRC32 calculation on 64-bit LoongArch") 1408 1409 src/liblzma/check/crc32_arm64.h | 36 ++++++++++++++++++++---------------- 1410 src/liblzma/check/crc32_loongarch.h | 32 +++++++++++++++++++------------- 1411 2 files changed, 39 insertions(+), 29 deletions(-) 1412 1413commit c2fe308792d97ba41b898a009e4d9d98d1e75720 1414Author: Lasse Collin <lasse.collin@tukaani.org> 1415Date: 2026-05-19 18:07:47 +0300 1416 1417 liblzma: Document the lzma_stream_buffer_decode() bug 1418 1419 src/liblzma/api/lzma/container.h | 5 ++++- 1420 1 file changed, 4 insertions(+), 1 deletion(-) 1421 1422commit 6566e6251ac46e2a6caeb1dee504da1c241e2b7f 1423Author: Lasse Collin <lasse.collin@tukaani.org> 1424Date: 2026-05-19 14:10:03 +0300 1425 1426 Tests: tuktest.h: Fix a comment 1427 1428 tests/tuktest.h | 7 ++++--- 1429 1 file changed, 4 insertions(+), 3 deletions(-) 1430 1431commit 29584cdaf360e0528859cc962b380a93a6398590 1432Author: Lasse Collin <lasse.collin@tukaani.org> 1433Date: 2026-05-19 14:04:43 +0300 1434 1435 Tests: Add a test for the lzma_stream_buffer_decode() bug 1436 1437 tests/Makefile.am | 2 + 1438 tests/test_stream_buffer_decode.c | 109 ++++++++++++++++++++++++++++++++++++++ 1439 tests/tests.cmake | 1 + 1440 3 files changed, 112 insertions(+) 1441 1442commit b53838ae0caf9f09b976a8577cf4392910d6f02c 1443Author: Lasse Collin <lasse.collin@tukaani.org> 1444Date: 2026-05-19 13:52:41 +0300 1445 1446 liblzma: lzma_stream_buffer_decode: Fix wrong error code 1447 1448 lzma_stream_buffer_decode() would often fail with LZMA_BUF_ERROR 1449 when it should have failed with LZMA_DATA_ERROR. 1450 In debug builds this also resulted in an assertion failure. 1451 1452 In the _buffer_decode() functions, LZMA_BUF_ERROR is only used when 1453 the output buffer is too small. Truncated input is LZMA_DATA_ERROR. 1454 1455 Reported-by: Guanni Qu 1456 Reported-by: Omkhar Arasaratnam 1457 Fixes: c81f13ff2927 ("Added lzma_stream_buffer_decode() and made minor cleanups.") 1458 1459 src/liblzma/common/stream_buffer_decoder.c | 8 ++++---- 1460 1 file changed, 4 insertions(+), 4 deletions(-) 1461 1462commit 327c906dcd6a9e40a39bf922f69560bd62f0b1a2 1463Author: Lasse Collin <lasse.collin@tukaani.org> 1464Date: 2026-05-19 12:34:53 +0300 1465 1466 xz: Fix use-after-free in verbose error message to a non-tty 1467 1468 If --verbose was used when stderr isn't a terminal, the filename 1469 contained a non-printable character, and an error occurred, 1470 a use-after-free occurred when printing the error message. 1471 1472 The bug exists in versions 5.7.1alpha to 5.8.3. 1473 1474 Reported-by: Omkhar Arasaratnam 1475 Fixes: d22f96921fd2 ("xz: Use tuklib_mbstr_nonprint") 1476 1477 src/xz/message.c | 9 ++++++++- 1478 1 file changed, 8 insertions(+), 1 deletion(-) 1479 1480commit ebb0e6789cefe3be71756881aa8f2009fda9938c 1481Author: Lasse Collin <lasse.collin@tukaani.org> 1482Date: 2026-03-31 18:41:04 +0300 1483 1484 doc/SHA256SUMS: Add 5.8.3 1485 1486 doc/SHA256SUMS | 6 ++++++ 1487 1 file changed, 6 insertions(+) 1488 1489commit 4b73f2ec19a99ef465282fbce633e8deb33691b3 1490Author: Lasse Collin <lasse.collin@tukaani.org> 1491Date: 2026-03-31 17:26:16 +0300 1492 1493 Bump version and soname for 5.8.3 1494 1495 src/liblzma/Makefile.am | 2 +- 1496 src/liblzma/api/lzma/version.h | 2 +- 1497 2 files changed, 2 insertions(+), 2 deletions(-) 1498 1499commit 97b7440006d69a30048ff1ffc29fc7a0615e5d51 1500Author: Lasse Collin <lasse.collin@tukaani.org> 1501Date: 2026-03-31 17:26:16 +0300 1502 1503 Add NEWS for 5.8.3 1504 1505 NEWS | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1506 1 file changed, 54 insertions(+) 1507 1508commit 8e1022cfb1d177e482e487c202a0ab43dee761a3 1509Author: Lasse Collin <lasse.collin@tukaani.org> 1510Date: 2026-03-31 17:10:47 +0300 1511 1512 Translations: Run "make -C po update-po" 1513 1514 Update the PO files to contain the comment fix from 4e76651dbaf6. 1515 1516 po/ca.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1517 po/cs.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1518 po/da.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1519 po/de.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1520 po/eo.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1521 po/es.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1522 po/fi.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1523 po/fr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1524 po/hr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1525 po/hu.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1526 po/it.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1527 po/ka.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1528 po/ko.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1529 po/nl.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1530 po/pl.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1531 po/pt.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1532 po/pt_BR.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1533 po/ro.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1534 po/sr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1535 po/sv.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1536 po/tr.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1537 po/uk.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1538 po/vi.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1539 po/zh_CN.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1540 po/zh_TW.po | 148 ++++++++++++++++++++++++++++++------------------------------ 1541 25 files changed, 1850 insertions(+), 1850 deletions(-) 1542 1543commit a3ea8832bec11128597c454f5d14d05ef6010e3f 1544Author: Lasse Collin <lasse.collin@tukaani.org> 1545Date: 2026-03-29 20:29:40 +0300 1546 1547 Tests: Add a test for the lzma_index_prealloc() + lzma_index_append() bug 1548 1549 tests/test_index.c | 35 +++++++++++++++++++++++++++++++++++ 1550 1 file changed, 35 insertions(+) 1551 1552commit c8c22869e780ff57c96b46939c3d79ff99395f87 1553Author: Lasse Collin <lasse.collin@tukaani.org> 1554Date: 2026-03-29 19:11:21 +0300 1555 1556 liblzma: Fix a buffer overflow in lzma_index_append() 1557 1558 If lzma_index_decoder() was used to decode an Index that contained no 1559 Records, the resulting lzma_index had an invalid internal "prealloc" 1560 value. If lzma_index_append() was called on this lzma_index, too 1561 little memory would be allocated and a buffer overflow would occur. 1562 1563 While this combination of the API functions is meant to work, in the 1564 real-world apps this call sequence is rare or might not exist at all. 1565 1566 This bug is older than xz 5.0.0, so all stable releases are affected. 1567 1568 Reported-by: GitHub user christos-spearbit 1569 1570 src/liblzma/common/index.c | 21 +++++++++++++++++++++ 1571 1 file changed, 21 insertions(+) 1572 1573commit a37658bec72ed581a683b7498a75a70122b831b0 1574Author: Lasse Collin <lasse.collin@tukaani.org> 1575Date: 2026-03-27 21:15:12 +0200 1576 1577 CMake: Adjust warnings with MSVC and clang-cl 1578 1579 When using clang-cl, avoid the long list of warning options used with 1580 GCC and Clang because, for MSVC compatibility, clang-cl's -Wall behaves 1581 like -Weverything. 1582 1583 Add warning options for MSVC. Use them with clang-cl too. 1584 1585 CMakeLists.txt | 21 ++++++++++++++++++++- 1586 1 file changed, 20 insertions(+), 1 deletion(-) 1587 1588commit 9e499f714cade4beade31c86dcb0de9fc72d0562 1589Author: Lasse Collin <lasse.collin@tukaani.org> 1590Date: 2026-03-27 21:14:50 +0200 1591 1592 CI: Don't disable individual warnings with clang-cl 1593 1594 .github/workflows/msvc.yml | 13 ------------- 1595 1 file changed, 13 deletions(-) 1596 1597commit 1e00837f72e0551ab73927642a8f61aad80c958d 1598Author: Lasse Collin <lasse.collin@tukaani.org> 1599Date: 2026-03-22 12:02:48 +0200 1600 1601 CI: Add Haiku 1602 1603 .github/workflows/haiku.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1604 1 file changed, 38 insertions(+) 1605 1606commit 8082851b7848ac32fea7bc7cfb84d9b3ef5537b0 1607Author: Lasse Collin <lasse.collin@tukaani.org> 1608Date: 2026-03-22 11:30:20 +0200 1609 1610 Update THANKS 1611 1612 THANKS | 1 + 1613 1 file changed, 1 insertion(+) 1614 1615commit 3cdd412bcea6bb5b4c5d41d2b4104230a5a9569c 1616Author: Lasse Collin <lasse.collin@tukaani.org> 1617Date: 2026-03-22 11:29:30 +0200 1618 1619 CI: Update MSYS2 1620 1621 Closes: https://github.com/tukaani-project/xz/pull/213 1622 1623 .github/workflows/msys2.yml | 2 +- 1624 1 file changed, 1 insertion(+), 1 deletion(-) 1625 1626commit e38a4af340ca9738923a511b7e35b6390c03ec50 1627Author: Lasse Collin <lasse.collin@tukaani.org> 1628Date: 2026-03-22 11:29:23 +0200 1629 1630 CI: Update Solaris 1631 1632 Closes: https://github.com/tukaani-project/xz/pull/213 1633 1634 .github/workflows/solaris.yml | 2 +- 1635 1 file changed, 1 insertion(+), 1 deletion(-) 1636 1637commit 40b1599217cc4f7cca6f48e0c32e709b9abd3639 1638Author: Lasse Collin <lasse.collin@tukaani.org> 1639Date: 2026-03-22 11:29:14 +0200 1640 1641 CI: Update OpenBSD 1642 1643 Closes: https://github.com/tukaani-project/xz/pull/213 1644 1645 .github/workflows/openbsd.yml | 2 +- 1646 1 file changed, 1 insertion(+), 1 deletion(-) 1647 1648commit 3aaf2f136c3fcf1140b9dfa584640778be789abc 1649Author: Lasse Collin <lasse.collin@tukaani.org> 1650Date: 2026-03-22 11:29:08 +0200 1651 1652 CI: Update NetBSD 1653 1654 Closes: https://github.com/tukaani-project/xz/pull/213 1655 1656 .github/workflows/netbsd.yml | 2 +- 1657 1 file changed, 1 insertion(+), 1 deletion(-) 1658 1659commit b5c26a249d21d293b441b21d22a1a81e7eec436a 1660Author: Lasse Collin <lasse.collin@tukaani.org> 1661Date: 2026-03-22 11:28:58 +0200 1662 1663 CI: Update FreeBSD 1664 1665 Closes: https://github.com/tukaani-project/xz/pull/213 1666 1667 .github/workflows/freebsd.yml | 2 +- 1668 1 file changed, 1 insertion(+), 1 deletion(-) 1669 1670commit 1a73f4f917f25d19ae557f49af2fddd9ef9f0a4a 1671Author: Lasse Collin <lasse.collin@tukaani.org> 1672Date: 2026-03-22 11:28:47 +0200 1673 1674 CI: Update DragonFly BSD 1675 1676 Closes: https://github.com/tukaani-project/xz/pull/213 1677 1678 .github/workflows/dragonflybsd.yml | 2 +- 1679 1 file changed, 1 insertion(+), 1 deletion(-) 1680 1681commit 5d61c5a3cf3be88b16179900ac5be82011a3a6bb 1682Author: Salman Muin Kayser Chishti <13schishti@gmail.com> 1683Date: 2026-02-28 09:10:46 +0000 1684 1685 CI: Upgrade GitHub Actions for Node 24 compatibility 1686 1687 Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com> 1688 Closes: https://github.com/tukaani-project/xz/pull/212 1689 1690 .github/workflows/ci.yml | 4 ++-- 1691 .github/workflows/cifuzz.yml | 2 +- 1692 .github/workflows/coverity.yml | 2 +- 1693 .github/workflows/dragonflybsd.yml | 2 +- 1694 .github/workflows/freebsd.yml | 2 +- 1695 .github/workflows/msvc.yml | 2 +- 1696 .github/workflows/msys2.yml | 4 ++-- 1697 .github/workflows/netbsd.yml | 2 +- 1698 .github/workflows/openbsd.yml | 2 +- 1699 .github/workflows/solaris.yml | 2 +- 1700 10 files changed, 12 insertions(+), 12 deletions(-) 1701 1702commit 0ac3b93387c0191919ffa38de5f49f6b28164b35 1703Author: Lasse Collin <lasse.collin@tukaani.org> 1704Date: 2026-03-25 19:03:00 +0200 1705 1706 xz: Prevent an integer overflow in --files and --files0 1707 1708 This requires a filename (or something that pretends to be a filename) 1709 of at least 2 GiB on a 32-bit platform, and that realloc() to 1710 SIZE_MAX / 2 + 1 bytes has succeeded. 1711 1712 Fixes: https://github.com/tukaani-project/xz/pull/218 1713 1714 src/xz/main.c | 10 ++++++++++ 1715 1 file changed, 10 insertions(+) 1716 1717commit 2faa141bdb47be94da2eae6df6f08858999a5911 1718Author: Lasse Collin <lasse.collin@tukaani.org> 1719Date: 2026-03-23 23:43:56 +0200 1720 1721 tuklib_integer: Fix inefficient aligned_writeXXne 1722 1723 The __builtin_assume_aligned was applied to the wrong argument which 1724 made aligned writes worse on strict-align archs. 1725 1726 Aligned writes aren't used in liblzma, so this bug didn't matter in 1727 this package; tuklib_integer.h is meant to be usable elsewhere too. 1728 1729 src/common/tuklib_integer.h | 19 +++++++++---------- 1730 1 file changed, 9 insertions(+), 10 deletions(-) 1731 1732commit 685538271e3e213a18c5a925654aaa32c0b69f1e 1733Author: Lasse Collin <lasse.collin@tukaani.org> 1734Date: 2026-03-22 10:22:09 +0200 1735 1736 Build: Remove -Wpre-c2x-compat 1737 1738 It makes clang -std=gnu23 noisy about bool. It's also noisy about 1739 [[__fallthrough__]] which is only used in C23 mode. 1740 1741 Reported-by: Collin Funk <collin.funk1@gmail.com> 1742 1743 CMakeLists.txt | 1 - 1744 configure.ac | 1 - 1745 2 files changed, 2 deletions(-) 1746 1747commit 3a78a82bd380c26bc7afda7565216c3383cedefe 1748Author: Collin Funk <collin.funk1@gmail.com> 1749Date: 2026-03-15 23:24:59 -0700 1750 1751 xz: Don't fsync directories on QNX 1752 1753 On QNX calling fsync on a directory fails with EINVAL. This causes the 1754 following test failure: 1755 1756 $ cat tests/test_suffix.sh.log 1757 /data/home/root/xz-5.8.2/src/xz/.libs/lt-xz: suffix_temp: Synchronizing the directory of the file failed: Invalid argument 1758 Failed to decompress a file with a suffix set in raw format 1759 FAIL test_suffix.sh (exit status: 1) 1760 1761 Closes: https://github.com/tukaani-project/xz/pull/216 1762 1763 src/xz/file_io.c | 3 ++- 1764 1 file changed, 2 insertions(+), 1 deletion(-) 1765 1766commit bfc5f12a84a2a9df774ed16cd6eb58fd5ab24646 1767Author: Lasse Collin <lasse.collin@tukaani.org> 1768Date: 2026-02-25 17:33:42 +0200 1769 1770 Update THANKS 1771 1772 THANKS | 1 + 1773 1 file changed, 1 insertion(+) 1774 1775commit 5553509f1a53ee160ea3bc871c716a75ba0b1ea0 1776Author: Lasse Collin <lasse.collin@tukaani.org> 1777Date: 2026-02-25 00:00:49 +0200 1778 1779 liblzma: Fix a copy-paste error in commented-out code 1780 1781 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2841960994 1782 Fixes: 96b663f67c0e ("liblzma: Refactor CRC comments.") 1783 1784 src/liblzma/check/crc32_fast.c | 2 +- 1785 1 file changed, 1 insertion(+), 1 deletion(-) 1786 1787commit 4e76651dbaf6a0159f2117482d778ff69127fdea 1788Author: Lasse Collin <lasse.collin@tukaani.org> 1789Date: 2026-02-24 18:34:19 +0200 1790 1791 Fix typos and grammar in comments and docs 1792 1793 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354505 1794 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2789354515 1795 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2820960196 1796 1797 po/Makevars | 2 +- 1798 src/common/tuklib_gettext.h | 4 ++-- 1799 src/common/tuklib_mbstr_wrap.h | 4 ++-- 1800 src/common/w32_application.manifest.comments.txt | 2 +- 1801 4 files changed, 6 insertions(+), 6 deletions(-) 1802 1803commit cd8a6231d084ee9ce0a7a285f99dc5721d1f4317 1804Author: Lasse Collin <lasse.collin@tukaani.org> 1805Date: 2026-02-24 18:24:29 +0200 1806 1807 tuklib_open_stdxxx: Fix a typo in macro name 1808 1809 It doesn't matter in this package, but it's good to fix it still. 1810 1811 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313660 1812 1813 src/common/tuklib_open_stdxxx.h | 2 +- 1814 1 file changed, 1 insertion(+), 1 deletion(-) 1815 1816commit bf5d32f489fd7f33b2a629f9b78f5157301b49d8 1817Author: Lasse Collin <lasse.collin@tukaani.org> 1818Date: 2026-02-24 18:22:25 +0200 1819 1820 CMake: Fix a wrong #define 1821 1822 HAVE_SYS_PARAM_H was misspelled HAVE_PARAM_H. This might have broken 1823 the build on systems where sysctl() is used to detect the amount of RAM 1824 or the number of processor cores/threads. 1825 1826 The cpuset code for FreeBSD doesn't need the macro it so it was removed. 1827 1828 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313680 1829 Fixes: https://github.com/dotnet/runtime/pull/124003#discussion_r2782313704 1830 Fixes: 7e3493d40eac ("Build: Add very limited experimental CMake support.") 1831 1832 cmake/tuklib_cpucores.cmake | 4 ++-- 1833 cmake/tuklib_physmem.cmake | 2 +- 1834 2 files changed, 3 insertions(+), 3 deletions(-) 1835 1836commit b0f3b64a25bcd3a6a4cebc00866dea86590fac3e 1837Author: Radek Zikmund <r.zikmund.rz@gmail.com> 1838Date: 2026-02-12 15:24:15 +0100 1839 1840 liblzma/MSVC: Add a cast to fix a warning (C4057) with __cpuid() 1841 1842 __cpuid from MSVC (and also the old Intel ICC) use int[], while 1843 __get_cpuid from <cpuid.h> in GCC and Clang use unsigned int[]. 1844 Adding a cast is the simplest fix. 1845 1846 Link: https://github.com/tukaani-project/xz/pull/208 1847 1848 src/liblzma/check/crc_x86_clmul.h | 2 +- 1849 1 file changed, 1 insertion(+), 1 deletion(-) 1850 1851commit b51d67f4a95f41ae3a64973acc0e44b9f078512f 1852Author: Radek Zikmund <r.zikmund.rz@gmail.com> 1853Date: 2026-02-23 17:50:00 +0100 1854 1855 CMake: Guard script configure_file() calls with ENABLE_SCRIPTS 1856 1857 The configure_file() calls for xzdiff, xzgrep, xzmore, and xzless 1858 were running unconditionally within the if(UNIX) block, even when 1859 ENABLE_SCRIPTS was OFF. This would cause a build failure if the 1860 src/scripts/*.in files were not present. Deleting those files can 1861 simplify license compliance when the scripts aren't needed. 1862 1863 Move the foreach loop and related code inside if(ENABLE_SCRIPTS) guard 1864 so that configure_file() is only called when scripts are actually needed. 1865 This is mostly whitespace changes to adjust the indentation. 1866 1867 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 1868 Closes: https://github.com/tukaani-project/xz/pull/210 1869 1870 CMakeLists.txt | 68 ++++++++++++++++++++++++++++------------------------------ 1871 1 file changed, 33 insertions(+), 35 deletions(-) 1872 1873commit 1007bf08b5fddf088b3131e692210af4b4b7fd8c 1874Author: Lasse Collin <lasse.collin@tukaani.org> 1875Date: 2026-02-04 12:28:07 +0200 1876 1877 Translations: Add Arabic man page translations 1878 1879 Rendering of bidirectional text from man pages might not work perfectly 1880 in all cases. 1881 1882 po4a/ar.po | 3905 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1883 po4a/po4a.conf | 2 +- 1884 2 files changed, 3906 insertions(+), 1 deletion(-) 1885 1886commit 54147ad65af12d9e4f60a8ce59094a8a30ad5919 1887Author: Lasse Collin <lasse.collin@tukaani.org> 1888Date: 2026-01-25 13:51:09 +0200 1889 1890 Update THANKS 1891 1892 THANKS | 1 + 1893 1 file changed, 1 insertion(+) 1894 1895commit d6bdb446f8da47ac2af8c309de8e7c80beae850e 1896Author: Lasse Collin <lasse.collin@tukaani.org> 1897Date: 2026-01-25 13:30:46 +0200 1898 1899 liblzma: Add the "License" property to liblzma.pc 1900 1901 The "License" property is a pkgconf extension. See pc(5). 1902 pkg-config 0.29.2 (2017) ignores unrecognized properties so this 1903 commit shouldn't create compatibility issues. 1904 1905 pkgconf provides bomtool which uses the "License" property to generate 1906 a software bill of materials. In pkgconf.git there is spdxtool for the 1907 same task but with different output format. 1908 1909 The pkgconf extensions "Copyright" and "Maintainer" would also be 1910 used by bomtool and spdxtool, but I don't want to add those properties 1911 at least for now. 1912 1913 Co-authored-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> 1914 Closes: https://github.com/tukaani-project/xz/pull/178 1915 1916 src/liblzma/liblzma.pc.in | 1 + 1917 1 file changed, 1 insertion(+) 1918 1919commit 687bd3e30fbe54ae906d06a93e7f2aa8b121aa7b 1920Author: Lasse Collin <lasse.collin@tukaani.org> 1921Date: 2026-01-25 12:14:46 +0200 1922 1923 Update THANKS 1924 1925 THANKS | 2 ++ 1926 1 file changed, 2 insertions(+) 1927 1928commit b80b6343a4b7df6bf56dcf07715f9f536af93306 1929Author: Lasse Collin <lasse.collin@tukaani.org> 1930Date: 2026-01-25 12:14:25 +0200 1931 1932 liblzma: Don't try to use x86-64 inline asm on ARM64EC 1933 1934 Reported-by: Chase Knowlden 1935 Fixes: https://github.com/tukaani-project/xz/issues/206 1936 1937 src/liblzma/rangecoder/range_decoder.h | 1 + 1938 1 file changed, 1 insertion(+) 1939 1940commit 47fb9d84c052912ca10dc9843cb296c860b182ac 1941Author: Pino Toscano <toscano.pino@tiscali.it> 1942Date: 2025-12-30 19:59:55 +0100 1943 1944 Autotools: Enable x86 assembler on Hurd by default 1945 1946 It has been enabled in Debian GNU/Hurd for 15+ years with no issues. 1947 Hence, enable it by default also in the upstream sources. 1948 1949 The CMake build already had it enabled. 1950 1951 Link: https://salsa.debian.org/debian/xz-utils/-/blob/debian/5.8.2-2/debian/rules?ref_type=tags#L98 1952 Closes: https://github.com/tukaani-project/xz/pull/204 1953 1954 configure.ac | 2 +- 1955 1 file changed, 1 insertion(+), 1 deletion(-) 1956 1957commit 9f4c5a0d4817c9c7011cdfd00cfbe0ddda66a455 1958Author: Lasse Collin <lasse.collin@tukaani.org> 1959Date: 2025-12-17 14:49:12 +0200 1960 1961 doc/SHA256SUMS: Add 5.8.2 1962 1963 doc/SHA256SUMS | 6 ++++++ 1964 1 file changed, 6 insertions(+) 1965 1966commit 3d078b52adbff566ccfc51067dfbf742ecf3ef86 1967Author: Lasse Collin <lasse.collin@tukaani.org> 1968Date: 2025-12-17 13:36:42 +0200 1969 1970 Bump version and soname for 5.8.2 1971 1972 src/liblzma/Makefile.am | 2 +- 1973 src/liblzma/api/lzma/version.h | 2 +- 1974 2 files changed, 2 insertions(+), 2 deletions(-) 1975 1976commit fb14afd5c9bf14d8c67ee11e4139885072071ddd 1977Author: Lasse Collin <lasse.collin@tukaani.org> 1978Date: 2025-12-17 13:36:35 +0200 1979 1980 Add NEWS for 5.8.2 1981 1982 NEWS | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1983 1 file changed, 72 insertions(+) 1984 1985commit 590f4713b29f0236ab944487f40069355a515dbc 1986Author: Lasse Collin <lasse.collin@tukaani.org> 1987Date: 2025-12-16 11:30:35 +0200 1988 1989 CMake: Bump maximum policy version to 4.2 1990 1991 CMP0186 is curious but we aren't affected. 1992 1993 CMakeLists.txt | 2 +- 1994 1 file changed, 1 insertion(+), 1 deletion(-) 1995 1996commit 26d22ed16b6e38ce8ed45cb29076f454cd488762 1997Author: Lasse Collin <lasse.collin@tukaani.org> 1998Date: 2025-12-10 19:20:05 +0200 1999 2000 tuklib_integer/CMake: Log a message about unaligned access check 2001 2002 cmake/tuklib_integer.cmake | 8 ++++++++ 2003 1 file changed, 8 insertions(+) 2004 2005commit f7381cf927576164c17be4e4c1edeec3cdaca7cf 2006Author: Lasse Collin <lasse.collin@tukaani.org> 2007Date: 2025-12-10 19:11:27 +0200 2008 2009 tuklib_integer/CMake: Don't run unaligned access checks unnecessarily 2010 2011 If the cache variable TUKLIB_FAST_UNALIGNED_ACCESS is already set, 2012 the autodetection result isn't needed because the option() command 2013 does nothing when the cache variable is already set. 2014 2015 This is largely white space change to indent the if...endif block. 2016 2017 cmake/tuklib_integer.cmake | 226 +++++++++++++++++++++++---------------------- 2018 1 file changed, 117 insertions(+), 109 deletions(-) 2019 2020commit dc1a421ce35f10b9a0c00d1bd42f1fdac0c3e9eb 2021Author: Lasse Collin <lasse.collin@tukaani.org> 2022Date: 2025-12-10 16:49:55 +0200 2023 2024 tuklib_integer: Use CMAKE_C_COMPILER_ARCHITECTURE_ID when available 2025 2026 CMake >= 4.1 sets CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID on many 2027 platforms. The list of possible values are documented. Use this 2028 variable when available. On older CMake versions CMAKE_SYSTEM_PROCESSOR 2029 is still used, thus the regexes have to include values like ^amd64 still. 2030 2031 With old CMake versions, checking CMAKE_C_COMPILER_ARCHITECTURE_ID 2032 is somewhat useful with MSVC because CMAKE_SYSTEM_PROCESSOR might 2033 not match the target architecture. 2034 2035 cmake/tuklib_integer.cmake | 13 ++++++++++++- 2036 1 file changed, 12 insertions(+), 1 deletion(-) 2037 2038commit c690101dddd784b75224a8935f56cd163d3e90a3 2039Author: Lasse Collin <lasse.collin@tukaani.org> 2040Date: 2025-12-10 16:49:55 +0200 2041 2042 tuklib_integer: Autodetect when -mstrict-align is used with GCC on ARM64 2043 2044 On ARM64, support for fast unaligned memory access was autodetected by 2045 checking if __ARM_FEATURE_UNALIGNED is defined. However, at least GCC 2046 versions up to 15.2.0 define the macro even when -mstrict-align has 2047 been specified. Thus, autodetection with GCC doesn't work correctly, 2048 and binaries built using -mstrict-align can be much slower than they 2049 need to be, unless the user also passes --disable-unaligned-access 2050 to configure or -DTUKLIB_FAST_UNALIGNED_ACCESS=OFF to cmake. 2051 2052 See the GCC bug: 2053 2054 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555 2055 2056 Workaround the issue by using heuristics with GCC on ARM64. 2057 2058 With Clang, the detection using __ARM_FEATURE_UNALIGNED works. 2059 It also works with GCC on 32-bit ARM. 2060 2061 Fixes: e5f13a66567b ("tuklib_integer: Autodetect support for unaligned access on ARM.") 2062 2063 cmake/tuklib_integer.cmake | 63 ++++++++++++++++++++++++++++++------- 2064 m4/tuklib_integer.m4 | 78 +++++++++++++++++++++++++++++++++++----------- 2065 2 files changed, 110 insertions(+), 31 deletions(-) 2066 2067commit d9b318f5b8a3524e90ac17471e79db7de012caf5 2068Author: Lasse Collin <lasse.collin@tukaani.org> 2069Date: 2025-12-09 18:02:23 +0200 2070 2071 CI: Update MSYS2 2072 2073 .github/workflows/msys2.yml | 4 ++-- 2074 1 file changed, 2 insertions(+), 2 deletions(-) 2075 2076commit 700e32f1b7dd6d674f12bbdabc35a3bc4a2860f5 2077Author: Lasse Collin <lasse.collin@tukaani.org> 2078Date: 2025-12-09 18:02:05 +0200 2079 2080 CI: Update DragonFly BSD 2081 2082 .github/workflows/dragonflybsd.yml | 2 +- 2083 1 file changed, 1 insertion(+), 1 deletion(-) 2084 2085commit a7b749389c64dfbee1c29d88e61e71186b472784 2086Author: Lasse Collin <lasse.collin@tukaani.org> 2087Date: 2025-12-09 17:58:52 +0200 2088 2089 CI: Update Solaris 2090 2091 .github/workflows/solaris.yml | 2 +- 2092 1 file changed, 1 insertion(+), 1 deletion(-) 2093 2094commit e0b3c6ee0ab3243e48291e5f9b6333c3d052311d 2095Author: Lasse Collin <lasse.collin@tukaani.org> 2096Date: 2025-12-09 17:56:58 +0200 2097 2098 CI: Update NetBSD 2099 2100 .github/workflows/netbsd.yml | 2 +- 2101 1 file changed, 1 insertion(+), 1 deletion(-) 2102 2103commit fbc1046248cfe3c730437ba7d98dde89b0eced3e 2104Author: Lasse Collin <lasse.collin@tukaani.org> 2105Date: 2025-12-09 17:54:54 +0200 2106 2107 CI: Update OpenBSD 2108 2109 .github/workflows/openbsd.yml | 2 +- 2110 1 file changed, 1 insertion(+), 1 deletion(-) 2111 2112commit 8f0579ba5650bbbfa88a04adf8115b8fb4aff476 2113Author: Lasse Collin <lasse.collin@tukaani.org> 2114Date: 2025-12-09 17:52:01 +0200 2115 2116 CI: Update FreeBSD 2117 2118 .github/workflows/freebsd.yml | 4 +++- 2119 1 file changed, 3 insertions(+), 1 deletion(-) 2120 2121commit f8424b0416266c393c84a315e3bdedbc19efa0a8 2122Author: Lasse Collin <lasse.collin@tukaani.org> 2123Date: 2025-12-09 17:40:05 +0200 2124 2125 Update THANKS 2126 2127 THANKS | 1 + 2128 1 file changed, 1 insertion(+) 2129 2130commit c4340692d4490ff80e897d4840fadc033c46d81a 2131Author: Lasse Collin <lasse.collin@tukaani.org> 2132Date: 2025-12-09 13:01:36 +0200 2133 2134 Translations: Add src/xz/sandbox.c to POTFILES.in 2135 2136 There are no strings to translate in that file now, but it's good to 2137 list it anyway in case translatable strings are added in the future. 2138 2139 Fixes: 374868d81d47 ("xz: Move sandboxing code to sandbox.c and improve Landlock sandbox.") 2140 2141 po/POTFILES.in | 1 + 2142 1 file changed, 1 insertion(+) 2143 2144commit b8af36920b0857c0329f61414df5989093386db1 2145Author: Lasse Collin <lasse.collin@tukaani.org> 2146Date: 2025-12-09 12:55:45 +0200 2147 2148 xz: Never translate "Failed to enable the sandbox" 2149 2150 This was already the case in practice because I had forgotten to list 2151 src/xz/sandbox.c in po/POTFILES.in. However, it seems better to never 2152 translate this particular error message. It should almost never occur 2153 and if it does, an untranslated message is should make it easier to 2154 find bug reports about it. 2155 2156 src/xz/sandbox.c | 24 +++++++++++++++--------- 2157 1 file changed, 15 insertions(+), 9 deletions(-) 2158 2159commit 5a7fc1af3d9ec115f796cba110eb78e63ff1df5c 2160Author: Lasse Collin <lasse.collin@tukaani.org> 2161Date: 2025-12-09 12:27:15 +0200 2162 2163 Translations: Update the Swedish man page translations 2164 2165 po4a/sv.po | 15 +++++---------- 2166 1 file changed, 5 insertions(+), 10 deletions(-) 2167 2168commit 88531e5463d9f028387a11b78d53c9c269e6a3a0 2169Author: Lasse Collin <lasse.collin@tukaani.org> 2170Date: 2025-12-09 12:26:24 +0200 2171 2172 Translations: Update the Romanian man page translations 2173 2174 po4a/ro.po | 18 +++++++----------- 2175 1 file changed, 7 insertions(+), 11 deletions(-) 2176 2177commit 8a817277192e6379a8c6f2eefbaed65c6b7d92fa 2178Author: Lasse Collin <lasse.collin@tukaani.org> 2179Date: 2025-12-09 12:13:36 +0200 2180 2181 Update THANKS 2182 2183 THANKS | 1 + 2184 1 file changed, 1 insertion(+) 2185 2186commit 1ec43aa7810d159ed76a6188b17c0bb474ca5ab5 2187Author: Lasse Collin <lasse.collin@tukaani.org> 2188Date: 2025-12-09 12:13:36 +0200 2189 2190 CMake: Autodetect unaligned access support on LoongArch 2191 2192 This still relies on CMAKE_SYSTEM_PROCESSOR. CMake 4.1 added more 2193 CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID values to detect the arch in 2194 a more defined manner, but 4.1 is too new to require for now. 2195 2196 Thanks-to: Li Chenggang <lichenggang@deepin.org> 2197 Closes: https://github.com/tukaani-project/xz/pull/186 2198 2199 cmake/tuklib_integer.cmake | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 2200 1 file changed, 81 insertions(+) 2201 2202commit 7971566247914ec1854b125ff99c2a617f5c1e3a 2203Author: Lasse Collin <lasse.collin@tukaani.org> 2204Date: 2025-12-09 12:13:36 +0200 2205 2206 Autotools: Autodetect unaligned access support on LoongArch 2207 2208 According to [1] sections 7.4, 8.1, and 8.2, desktop and server 2209 processors support fast unaligned access, but embedded systems likely 2210 don't. 2211 2212 It's important that TUKLIB_FAST_UNALIGNED_ACCESS isn't defined when 2213 -mstrict-align is in use because it will result in slower binaries 2214 even if running on a processor that supports fast unaligned access. 2215 It's because compilers will translate multibyte memcpy() to multiple 2216 byte-by-byte instructions instead of wider loads and stores. The 2217 compression times from [2] show this well: 2218 2219 Unaligned access CFLAGS Compression time 2220 enabled -O2 -mno-strict-align 66.1 s 2221 disabled -O2 -mno-strict-align 79.5 s 2222 disabled -O2 -mstrict-align 79.9 s 2223 enabled -O2 -mstrict-align 129.1 s 2224 2225 There currently (GCC 15.2) is no preprocessor macro on LoongArch 2226 to detect if -mstrict-align or -mno-strict-align is in effect (the 2227 default is -mno-strict-align). Use heuristics to detect which of the 2228 flags is in effect. 2229 2230 [1] https://github.com/loongson/la-softdev-convention/blob/v0.2/la-softdev-convention.adoc 2231 [2] https://github.com/tukaani-project/xz/pull/186#issuecomment-3494570304 2232 2233 Thanks-to: Li Chenggang <lichenggang@deepin.org> 2234 Thanks-to: Xi Ruoyao 2235 See: https://github.com/tukaani-project/xz/pull/186 2236 2237 m4/tuklib_integer.m4 | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2238 1 file changed, 68 insertions(+) 2239 2240commit 338f952c0039b153a1fbdf6a535c4bd6a61f33cd 2241Author: Lasse Collin <lasse.collin@tukaani.org> 2242Date: 2025-11-26 13:50:57 +0200 2243 2244 xz: Silence clang -Wunreachable-code-break 2245 2246 Fixes: a165d7df1964 ("xz: Add a new --filters-help option.") 2247 2248 src/xz/args.c | 1 - 2249 1 file changed, 1 deletion(-) 2250 2251commit 723cee44d076281bce9c3d7bd2c17b0680bd8884 2252Author: Lasse Collin <lasse.collin@tukaani.org> 2253Date: 2025-11-26 13:50:57 +0200 2254 2255 liblzma: Remove unwanted semicolons 2256 2257 These didn't affect control flow. 2258 2259 src/liblzma/common/vli_decoder.c | 2 +- 2260 src/liblzma/lzma/lzma_common.h | 4 ++-- 2261 src/liblzma/rangecoder/range_decoder.h | 6 +++--- 2262 3 files changed, 6 insertions(+), 6 deletions(-) 2263 2264commit 524f6a7384f15e52ec13c72adbdf18ddeecbc735 2265Author: Lasse Collin <lasse.collin@tukaani.org> 2266Date: 2025-11-26 13:50:57 +0200 2267 2268 Tests: Remove an unwanted semicolon from a macro definition 2269 2270 It didn't affect control flow. 2271 2272 Fixes: fe3bd438fb11 ("Tests: Fix memory leaks in test_block_header.") 2273 2274 tests/test_block_header.c | 2 +- 2275 1 file changed, 1 insertion(+), 1 deletion(-) 2276 2277commit 0f41a28bfab98d1f5171ee5c9da6dfdc15f62549 2278Author: Lasse Collin <lasse.collin@tukaani.org> 2279Date: 2025-11-26 13:50:57 +0200 2280 2281 Build: Use -Wextra-semi-stmt when supported 2282 2283 CMakeLists.txt | 1 + 2284 configure.ac | 1 + 2285 2 files changed, 2 insertions(+) 2286 2287commit 91170c8cab72b94a697f5228f4df13483ef5be91 2288Author: Lasse Collin <lasse.collin@tukaani.org> 2289Date: 2025-11-26 13:50:57 +0200 2290 2291 CI: Add clang-cl 2292 2293 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 2294 2295 .github/workflows/msvc.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2296 1 file changed, 46 insertions(+) 2297 2298commit a3c6cb09113de978b971cbdacf5c4890d4237c28 2299Author: Lasse Collin <lasse.collin@tukaani.org> 2300Date: 2025-11-26 13:50:57 +0200 2301 2302 xz/Windows: Add a missing #include to fix the build with clang-cl 2303 2304 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-1986829734 2305 Fixes: https://github.com/tukaani-project/xz/issues/18#issuecomment-3577456136 2306 2307 src/xz/util.c | 4 ++++ 2308 1 file changed, 4 insertions(+) 2309 2310commit c410ccc62511ec95b20639defb10650ef9b75e8c 2311Author: Lasse Collin <lasse.collin@tukaani.org> 2312Date: 2025-11-25 21:05:37 +0200 2313 2314 xz: Check return value of sigaction() before calling raise() 2315 2316 Fixes: Coverity CID 456022 2317 2318 src/xz/signals.c | 10 ++++++++-- 2319 1 file changed, 8 insertions(+), 2 deletions(-) 2320 2321commit 6cc2da0a4b180b71cb6e781c897052def103ad3e 2322Author: Lasse Collin <lasse.collin@tukaani.org> 2323Date: 2025-11-02 12:57:00 +0200 2324 2325 liblzma: Refactor a loop in lzma_filters_copy() 2326 2327 Arguably it's nicer if i doesn't wrap around when the loop terminates. 2328 2329 Fixes: Coverity CID 464589 2330 Fixes: 6d118a0b9def ("Add lzma_filters_copy().") 2331 2332 src/liblzma/common/filter_common.c | 4 ++-- 2333 1 file changed, 2 insertions(+), 2 deletions(-) 2334 2335commit 90b67853d57562c5ad4fdb3215ceb9b9bd3958bf 2336Author: Lasse Collin <lasse.collin@tukaani.org> 2337Date: 2025-11-02 12:17:50 +0200 2338 2339 liblzma: Silence two Coverity warnings 2340 2341 lzma_lzma_decoder_memusage() returns UINT64_MAX if lc/lp/pb aren't 2342 valid. alone_decoder.c and lzip_decoder.c didn't check the return 2343 value because in both it is known that lc/lp/pb are valid. Make them 2344 call the _nocheck() variant instead which skips the validation (it 2345 already existed for LZMA2's internal use). 2346 2347 Fixes: Coverity CID 464658 2348 Fixes: Coverity CID 897069 2349 2350 src/liblzma/common/alone_decoder.c | 6 ++++-- 2351 src/liblzma/common/lzip_decoder.c | 3 ++- 2352 src/liblzma/lzma/lzma_decoder.h | 11 ++++++----- 2353 3 files changed, 12 insertions(+), 8 deletions(-) 2354 2355commit be365b701024b9acbfef4035c6433a0fbb4be823 2356Author: Lasse Collin <lasse.collin@tukaani.org> 2357Date: 2025-11-02 12:17:50 +0200 2358 2359 liblzma: Fix a harmless read of shared variable without mutex 2360 2361 The partial_update_mode enumeration had three states, _DISABLED, 2362 _START, and _ENABLED. Main thread changed it from _DISABLED to _START 2363 while holding a mutex. Once set to _START, worker thread changed it 2364 to _ENABLED without a mutex. Later main thread read it without a mutex, 2365 so it could see either _START or _ENABLED. However, it made no 2366 difference because the main thread checked for != _DISABLED, so 2367 it didn't matter if it saw _START or _ENABLED. 2368 2369 Nevertheless, such things must not be done. It's clear it was a mistake 2370 because there were two comments that directly contradicted each 2371 other about how the variable was accessed. 2372 2373 Split the enumeration into two booleans: 2374 2375 - partial_update_enabled: A worker thread locks the mutex to read 2376 this variable and the main thread locks the mutex to change the 2377 value. Because only the main thread modifies the variable, the 2378 main thread can read the value without locking the mutex. 2379 This variable replaces the _DISABLED -> _START transition. 2380 2381 - partial_update_started is for worker thread's internal use and thus 2382 needs no mutex. This replaces the _START -> _ENABLED transition. 2383 2384 Fixes: Coverity CID 456025 2385 Fixes: bd93b776c1bd ("liblzma: Fix a deadlock in threaded decoder.") 2386 2387 src/liblzma/common/stream_decoder_mt.c | 79 +++++++++++++++------------------- 2388 1 file changed, 34 insertions(+), 45 deletions(-) 2389 2390commit 2686554da0103580a472919220931c397b1d1f7a 2391Author: Lasse Collin <lasse.collin@tukaani.org> 2392Date: 2025-11-02 12:17:50 +0200 2393 2394 CI: Add Coverity Scan 2395 2396 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 2397 Fixes: https://github.com/tukaani-project/xz/issues/198 2398 2399 .github/workflows/coverity.yml | 38 ++++++++++++++++++++++++++++++++++++++ 2400 1 file changed, 38 insertions(+) 2401 2402commit 1b30734c9c08a3f628574d172f1a6034277a2163 2403Author: Lasse Collin <lasse.collin@tukaani.org> 2404Date: 2025-11-25 13:55:35 +0200 2405 2406 Change the sorting order in THANKS 2407 2408 In short, sort the names with this command (-k1,1 isn't needed because 2409 the lines with names start with " -"): 2410 2411 LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5 2412 2413 When THANKS was created, I wrote the names as "First Last" and attempted 2414 to keep them sorted by last name / surname / family name. This works 2415 with many names in THANKS, but it becomes complicated with names that 2416 don't fit that pattern. For example, names that are written as 2417 "Last First" can be manually sorted by family name, but only if one 2418 knows which part of the name is the family name.[*] And of course, 2419 the concept of first/last name doesn't apply to all names. 2420 2421 [*] xz had a co-maintainer who could help me with such names, 2422 but fortunately he isn't working on the project anymore. 2423 2424 Adding the names in chronological order could have worked too, although 2425 if something is contributed by multiple people, one would still have to 2426 decide how to sort the names within the batch. Another downside would 2427 be that if THANKS is updated in more than one work-in-progress branch, 2428 merge conflicts would occur more often. 2429 2430 Don't attempt to sort by last name. Let's be happy that people tend to 2431 provide names that can be expressed in a reasonable number of printable 2432 Unicode characters. In practice, people have been even nicer: if the 2433 native language doesn't use a Latin script alphabet, people often provide 2434 a transliterated name (only or in addition to the original spelling), 2435 which is very much appreciated by those who don't know the native script. 2436 2437 Treat the names as opaque strings or space-separated strings for sorting 2438 purposes. This means that most names will now be sorted by first name. 2439 There still are many choices how to sort: 2440 2441 (1) LC_ALL=en_US.UTF-8 sort 2442 2443 The project is in English, so this may sound like a logical choice. 2444 However, spaces have a lower weight than letters, which results in 2445 this order: 2446 2447 - A Ba 2448 - Ab C 2449 - A Bc 2450 - A Bd 2451 2452 (2) LC_ALL=en_US.UTF-8 sort -k2,2 2453 2454 This first sorts by the first word and then by the rest of the 2455 string. It's -k2,2 instead of -k1,1 to skip the leading dash. 2456 2457 - A Ba 2458 - A Bc 2459 - A Bd 2460 - Ab C 2461 2462 I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too. 2463 With current THANKS it makes no difference but it might some day. 2464 2465 NOTE: The ordering in en_US.UTF-8 can differ between libc versions 2466 and operating systems. Luckily it's not a big deal in THANKS. 2467 2468 (3) LC_ALL=en_US.UTF-8 sort -f -k2,2 2469 2470 Passing -f (--ignore-case) to sort affects sorting of single-byte 2471 characters but not multibyte characters (GNU coreutils 9.9): 2472 2473 No -f With -f LC_ALL=C 2474 Aa A.A A.A 2475 A.A Aa Aa 2476 Ää Ää Ä.Ä 2477 Ä.Ä Ä.Ä Ää 2478 2479 In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1". 2480 There is also a basic check that the en_US.UTF-8 locale is 2481 behaving as expected. 2482 2483 (4) LC_ALL=C sort 2484 2485 This sorts by byte order which in UTF-8 is the same as Unicode 2486 code point order. With the strings in (1) and (2), this produces 2487 the same result as in (2). The difference in (3) can be seen above. 2488 2489 The results differ from en_US.UTF-8 when a name component starts 2490 with a lower case ASCII letter (like "von" or "de"). Worse, any 2491 non-ASCII characters sort after ASCII chars. These properties might 2492 look weird in English language text, although it's good to remember 2493 that en_US.UTF-8 sorting can appear weird too if one's native 2494 language isn't English. 2495 2496 The choice between (2) and (4) was difficult but I went with (2). 2497 2498 ;-) 2499 2500 THANKS | 414 ++++++++++++++++++++++++++++++++--------------------------------- 2501 1 file changed, 207 insertions(+), 207 deletions(-) 2502 2503commit 8bb516887c1912106a72db96216cab46954e6190 2504Author: Lasse Collin <lasse.collin@tukaani.org> 2505Date: 2025-11-23 20:39:28 +0200 2506 2507 Landlock: Add missing #ifdefs 2508 2509 The build was broken on distros that have an old <sys/landlock.h>. 2510 2511 Fixes: 2b2652e914b1 ("Landlock: Workaround a bug in RHEL 9 kernel") 2512 2513 src/common/my_landlock.h | 6 ++++++ 2514 1 file changed, 6 insertions(+) 2515 2516commit 23c95c6a7c374962103dbd35cb79fdd5a6fe8b52 2517Author: Lasse Collin <lasse.collin@tukaani.org> 2518Date: 2025-11-23 20:13:50 +0200 2519 2520 Update THANKS 2521 2522 THANKS | 2 ++ 2523 1 file changed, 2 insertions(+) 2524 2525commit 2b2652e914b1c38d4c009a8dcac11dfee9c7e008 2526Author: Lasse Collin <lasse.collin@tukaani.org> 2527Date: 2025-11-23 20:13:49 +0200 2528 2529 Landlock: Workaround a bug in RHEL 9 kernel 2530 2531 If one runs xz 5.8.0 or 5.8.1 from some other distribution in a container 2532 on RHEL 9, xz will fail with the message "Failed to enable the sandbox". 2533 2534 RHEL 9 kernel since 5.14.0-603.el9 (2025-07-30) claims to support 2535 Landlock ABI version 6, but it lacks support for LANDLOCK_SCOPE_SIGNAL. 2536 The issue is still present in 5.14.0-643.el9 (2025-11-22). Red Hat is 2537 aware of the issue, but I don't know when it will be fixed. 2538 2539 The sandbox is meant to be transparent to users, thus there isn't and 2540 won't be a command line option to disable it. Instead, add a workaround 2541 to keep xz working on the buggy RHEL 9 kernels. 2542 2543 Reported-by: Richard W.M. Jones 2544 Thanks-to: Pavel Raiskup 2545 Tested-by: Orgad Shaneh 2546 Tested-by: Richard W.M. Jones 2547 Fixes: https://github.com/tukaani-project/xz/issues/199 2548 Link: https://issues.redhat.com/browse/RHEL-125143 2549 Link: https://bugzilla.redhat.com/show_bug.cgi?id=2407105 2550 Link: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/65BDSY56R5ZJRTUC4B6CIVCVLY4LG4ME/ 2551 2552 src/common/my_landlock.h | 27 ++++++++++++++++++++++++++- 2553 1 file changed, 26 insertions(+), 1 deletion(-) 2554 2555commit ee75c76958dd891906745125590563ab64e85995 2556Author: Lasse Collin <lasse.collin@tukaani.org> 2557Date: 2025-11-23 20:13:37 +0200 2558 2559 Landlock: Cache the ABI version 2560 2561 In xz it can avoid up to two syscalls that query the ABI version. 2562 2563 src/common/my_landlock.h | 14 +++++++++++++- 2564 1 file changed, 13 insertions(+), 1 deletion(-) 2565 2566commit f57b1716cd0853474980c90a892204dee9bdea1a 2567Author: Lasse Collin <lasse.collin@tukaani.org> 2568Date: 2025-11-03 14:52:45 +0200 2569 2570 Update THANKS 2571 2572 THANKS | 1 + 2573 1 file changed, 1 insertion(+) 2574 2575commit 211cde09236165dbd379644753337be1de64b151 2576Author: Lasse Collin <lasse.collin@tukaani.org> 2577Date: 2025-11-03 12:41:31 +0200 2578 2579 mythread.h: Fix the build on Emscripten when threading is disabled 2580 2581 To make a non-threaded liblzma-only build work with WASI SDK, <signal.h> 2582 and mythread_sigmask() were omitted from mythread.h in the commit 2583 81db3b889830. This broke non-threaded full build with Emscripten because 2584 src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine). 2585 2586 If __wasm__ is defined, omit <signal.h> and mythread_sigmask() in 2587 non-threaded builds only when __EMSCRIPTEN__ isn't defined. 2588 2589 Reported-by: Marcus Tillmanns 2590 Thanks-to: ChanTsune 2591 Fixes: https://github.com/tukaani-project/xz/issues/161 2592 Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.") 2593 2594 src/common/mythread.h | 3 ++- 2595 1 file changed, 2 insertions(+), 1 deletion(-) 2596 2597commit cbf50a99e3f0c2735fd573e166baf37df063b37b 2598Author: Lasse Collin <lasse.collin@tukaani.org> 2599Date: 2025-11-03 11:56:32 +0200 2600 2601 Translations: Update the Serbian man page translations 2602 2603 The earlier bug fixes are now included in the Translation Project. 2604 2605 po4a/sr.po | 4 ++-- 2606 1 file changed, 2 insertions(+), 2 deletions(-) 2607 2608commit 68d1591187512d8872615c8a904d43073440d93f 2609Author: Lasse Collin <lasse.collin@tukaani.org> 2610Date: 2025-11-02 19:40:55 +0200 2611 2612 xz: Silence a compiler warning when signals_block_count is unused 2613 2614 Move the static variable signals_block_count to the #ifndef block 2615 that already has the functions that need the variable. 2616 2617 src/xz/signals.c | 7 ++++--- 2618 1 file changed, 4 insertions(+), 3 deletions(-) 2619 2620commit beca015891fbd22657663ec23809184dda0677cd 2621Author: Lasse Collin <lasse.collin@tukaani.org> 2622Date: 2025-11-02 17:45:20 +0200 2623 2624 xz: Silence a warning from Clang on glibc systems 2625 2626 Fixes: e8838b2f5922 ("xz: Look at resource limits when determining the default memlimit") 2627 2628 src/xz/hardware.c | 13 +++++++++++++ 2629 1 file changed, 13 insertions(+) 2630 2631commit 3e394278ed537575b5db43c09989c6ca99f762de 2632Author: Lasse Collin <lasse.collin@tukaani.org> 2633Date: 2025-11-02 14:37:52 +0200 2634 2635 Translations: Update the Serbian man page translations 2636 2637 Preserve the bug fixes made in 71ad5e82888f and 4f52e7387012 because 2638 upstream hasn't included them. 2639 2640 po4a/sr.po | 17 ++++++----------- 2641 1 file changed, 6 insertions(+), 11 deletions(-) 2642 2643commit ace28e35732fc43f58ea1aac146fdb73084f2548 2644Author: Lasse Collin <lasse.collin@tukaani.org> 2645Date: 2025-11-02 14:27:10 +0200 2646 2647 Translations: Update the Korean man page translations 2648 2649 po4a/ko.po | 17 ++++++----------- 2650 1 file changed, 6 insertions(+), 11 deletions(-) 2651 2652commit ffd14a099f0d8c92d4f74018d3a52bd2327df4db 2653Author: Lasse Collin <lasse.collin@tukaani.org> 2654Date: 2025-11-02 14:24:43 +0200 2655 2656 Translations: Update the Italian man page translations 2657 2658 po4a/it.po | 15 +++++---------- 2659 1 file changed, 5 insertions(+), 10 deletions(-) 2660 2661commit 6f3152874ee375b581aa858fccab7865dcbf6403 2662Author: Lasse Collin <lasse.collin@tukaani.org> 2663Date: 2025-11-02 14:12:23 +0200 2664 2665 Translations: Update the Ukrainian man page translations 2666 2667 po4a/uk.po | 15 +++++---------- 2668 1 file changed, 5 insertions(+), 10 deletions(-) 2669 2670commit ef67e051d71938a23713d9782a3f0c470ac51b1e 2671Author: Lasse Collin <lasse.collin@tukaani.org> 2672Date: 2025-09-28 18:32:05 +0300 2673 2674 liblzma: Fix build on old Linux/glibc on ARM64 2675 2676 getauxval() can be available even if HWCAP_CRC32 isn't #defined, so 2677 both have to be checked. HWCAP_CRC32 was added in glibc 2.24 (2016). 2678 2679 Fixes: https://github.com/tukaani-project/xz/issues/190 2680 2681 CMakeLists.txt | 7 +++++++ 2682 configure.ac | 6 +++++- 2683 src/liblzma/check/crc32_arm64.h | 5 +++-- 2684 src/liblzma/check/crc_common.h | 3 ++- 2685 4 files changed, 17 insertions(+), 4 deletions(-) 2686 2687commit 71c2ede383f6dc6661b8a9d844f4bcf81c563643 2688Author: Lasse Collin <lasse.collin@tukaani.org> 2689Date: 2025-10-31 14:36:26 +0200 2690 2691 CI: Update Solaris 2692 2693 .github/workflows/solaris.yml | 2 +- 2694 1 file changed, 1 insertion(+), 1 deletion(-) 2695 2696commit 02da8de0edddd31a3e9818c2200b97c446d6eb5b 2697Author: Lasse Collin <lasse.collin@tukaani.org> 2698Date: 2025-10-31 14:32:47 +0200 2699 2700 CI: Update DragonFly BSD 2701 2702 .github/workflows/dragonflybsd.yml | 8 ++++---- 2703 1 file changed, 4 insertions(+), 4 deletions(-) 2704 2705commit 75b18d325f6a993eac2d5f44c7aad941aa20df94 2706Author: Lasse Collin <lasse.collin@tukaani.org> 2707Date: 2025-10-31 14:30:24 +0200 2708 2709 CI: Update NetBSD 2710 2711 .github/workflows/netbsd.yml | 2 +- 2712 1 file changed, 1 insertion(+), 1 deletion(-) 2713 2714commit 0102072915f38e747ee55aa9c52351dfe81b8c14 2715Author: Lasse Collin <lasse.collin@tukaani.org> 2716Date: 2025-10-31 14:21:37 +0200 2717 2718 CI: Update FreeBSD 2719 2720 .github/workflows/freebsd.yml | 2 +- 2721 1 file changed, 1 insertion(+), 1 deletion(-) 2722 2723commit 83419783a67a6097c7d5ed5663734c04eb8c8b55 2724Author: Lasse Collin <lasse.collin@tukaani.org> 2725Date: 2025-10-31 14:17:30 +0200 2726 2727 CI: Update OpenBSD 2728 2729 .github/workflows/openbsd.yml | 6 +++--- 2730 1 file changed, 3 insertions(+), 3 deletions(-) 2731 2732commit 3b5f5af9bcd9b5752608a099fcfab331c0c613b3 2733Author: Lasse Collin <lasse.collin@tukaani.org> 2734Date: 2025-10-26 12:07:34 +0200 2735 2736 Update THANKS 2737 2738 THANKS | 2 ++ 2739 1 file changed, 2 insertions(+) 2740 2741commit e8838b2f59221f46bf34c79431d286e8ac34fb8b 2742Author: Kirill A. Korinsky <kirill@korins.ky> 2743Date: 2025-10-26 12:07:34 +0200 2744 2745 xz: Look at resource limits when determining the default memlimit 2746 2747 When no memory usage limits have been set by the user, the default 2748 for multithreaded mode has been 1/4 of total RAM. If this limit is 2749 too high and memory allocation fails, liblzma (and xz) fail. Perhaps 2750 liblzma should handle it better by reducing the number of threads 2751 and continuing with the amount of memory it can allocate, but currently 2752 that isn't the case. 2753 2754 If resource limits were set to about 1/4 of RAM or lower, then xz 2755 could fail for the above reason. This commit makes xz look at 2756 RLIMIT_DATA, RLIMIT_AS, and RLIMIT_VMEM when they are available, 2757 and set the limit 64 MiB below the lowest of those limits. This is 2758 more or less a hack just like the 1/4-of-RAM method is, but this is 2759 simple and quick to implement. 2760 2761 On Linux, there are other limits like cgroup v2 memory.max which 2762 can still make xz fail. The same is likely possible with FreeBSD's 2763 rctl(8). 2764 2765 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 2766 Thanks-to: Fangrui Song 2767 Fixes: https://github.com/tukaani-project/xz/issues/195 2768 Closes: https://github.com/tukaani-project/xz/pull/196 2769 2770 CMakeLists.txt | 3 +++ 2771 configure.ac | 4 ++-- 2772 src/xz/hardware.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2773 3 files changed, 64 insertions(+), 2 deletions(-) 2774 2775commit 8d26b72915e0d373f898b55935505857c30dbdb3 2776Author: Lasse Collin <lasse.collin@tukaani.org> 2777Date: 2025-10-01 12:46:26 +0300 2778 2779 CI: Remove windows-2019 (which had VS 2019) 2780 2781 GitHub has removed the runner image. 2782 2783 A breakage with CLMUL CRC code occurred with VS 2019 but not 2022, 2784 see b5a5d9e3f702. MS supports VS 2019 for a few more years, so it's 2785 unfortunate that it can no longer be tested on GitHub. 2786 2787 .github/workflows/msvc.yml | 2 +- 2788 1 file changed, 1 insertion(+), 1 deletion(-) 2789 2790commit 32412bd2a42fda639765c3046e91f964e286b6d9 2791Author: Lasse Collin <lasse.collin@tukaani.org> 2792Date: 2025-09-29 19:34:58 +0300 2793 2794 Update THANKS 2795 2796 THANKS | 3 +++ 2797 1 file changed, 3 insertions(+) 2798 2799commit eaa150df9803c982adf28d4533c7a4264ea17757 2800Author: Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com> 2801Date: 2025-07-17 23:27:06 -0500 2802 2803 xz: Don't fsync() directories on AIX 2804 2805 It fails with EBADF. 2806 2807 Fixes: https://github.com/tukaani-project/xz/issues/188 2808 Closes: https://github.com/tukaani-project/xz/pull/189 2809 2810 src/xz/file_io.c | 3 ++- 2811 1 file changed, 2 insertions(+), 1 deletion(-) 2812 2813commit 61b114e92f53b7977aad69f8a7130fc25d8a80e5 2814Author: Lasse Collin <lasse.collin@tukaani.org> 2815Date: 2025-09-29 18:37:19 +0300 2816 2817 liblzma: Document that lzma_allocator.free(opaque, NULL) is possible 2818 2819 It feels better to fix the docs than change the code because this 2820 way newly-written applications will be forced to be compatible with 2821 the lzma_allocator behavior of old liblzma versions. It can matter 2822 if someone builds the application against an older liblzma version. 2823 2824 Fixes: https://github.com/tukaani-project/xz/issues/183 2825 2826 src/liblzma/api/lzma/base.h | 4 +++- 2827 1 file changed, 3 insertions(+), 1 deletion(-) 2828 2829commit 6d287a3ae90e1b990294f3d5264003d81e853c5e 2830Author: Simon Josefsson <simon@josefsson.org> 2831Date: 2025-08-26 09:41:02 +0200 2832 2833 Update GPLv2 and LGPLv2.1 copies from gnu.org 2834 2835 Closes: https://github.com/tukaani-project/xz/pull/194 2836 2837 COPYING.GPLv2 | 9 ++++----- 2838 COPYING.LGPLv2.1 | 9 ++++----- 2839 2 files changed, 8 insertions(+), 10 deletions(-) 2840 2841commit 41a421dbadf13af2a59aaafa43836026b83340a7 2842Author: Lasse Collin <lasse.collin@tukaani.org> 2843Date: 2025-05-24 12:07:13 +0300 2844 2845 tests/test_suffix.sh: Avoid variables in printf format string 2846 2847 tests/test_suffix.sh | 4 ++-- 2848 1 file changed, 2 insertions(+), 2 deletions(-) 2849 2850commit a2c6aa8764a2e5248572d461305bd05c5950bf94 2851Author: Lasse Collin <lasse.collin@tukaani.org> 2852Date: 2025-05-24 12:02:09 +0300 2853 2854 build-aux/manconv.sh: Add quotes 2855 2856 build-aux/manconv.sh | 8 ++++---- 2857 1 file changed, 4 insertions(+), 4 deletions(-) 2858 2859commit 8e4153253eea2b5a9466467b2ce0249e56277c9a 2860Author: Lasse Collin <lasse.collin@tukaani.org> 2861Date: 2025-05-24 12:01:35 +0300 2862 2863 windows/build.bash: Add quotes 2864 2865 In this case they aren't needed but it's better style. 2866 2867 windows/build.bash | 4 ++-- 2868 1 file changed, 2 insertions(+), 2 deletions(-) 2869 2870commit 37a57a926dd1ae6cde1544d8487e27982d2db4a4 2871Author: Lasse Collin <lasse.collin@tukaani.org> 2872Date: 2025-05-24 12:00:13 +0300 2873 2874 po4a/update-po: Ensure that a glob won't expand to a command line option 2875 2876 po4a/update-po | 2 +- 2877 1 file changed, 1 insertion(+), 1 deletion(-) 2878 2879commit e3ba73034a3f8e414882af39d62f479e9717e061 2880Author: Lasse Collin <lasse.collin@tukaani.org> 2881Date: 2025-05-24 11:57:23 +0300 2882 2883 liblzma: validate_map.sh: Catch some unlikely errors 2884 2885 src/liblzma/validate_map.sh | 4 ++-- 2886 1 file changed, 2 insertions(+), 2 deletions(-) 2887 2888commit 067cecdea69067973e44dc1afb9be763faccecb2 2889Author: Lasse Collin <lasse.collin@tukaani.org> 2890Date: 2025-05-24 11:55:59 +0300 2891 2892 CI: Catch unsupported arguments in ci_build.bash 2893 2894 build-aux/ci_build.bash | 4 ++++ 2895 1 file changed, 4 insertions(+) 2896 2897commit 4fc6208abebfe6b8c8348c412b4bcc594ae11c88 2898Author: Lasse Collin <lasse.collin@tukaani.org> 2899Date: 2025-05-13 20:42:26 +0300 2900 2901 Scripts: Add shellcheck directives to silence warnings 2902 2903 Set also shell because the xz*.in files start with '#!@POSIX_SHELL@'. 2904 2905 SC1003 and SC2016 are only info messages, not warnings. Several other 2906 shellcheck info messages remain. They are safe to ignore, but I didn't 2907 want to disable them now. 2908 2909 Partially-fixes: https://github.com/tukaani-project/xz/issues/174 2910 2911 src/scripts/xzdiff.in | 4 ++++ 2912 src/scripts/xzgrep.in | 2 ++ 2913 src/scripts/xzless.in | 2 ++ 2914 src/scripts/xzmore.in | 2 ++ 2915 4 files changed, 10 insertions(+) 2916 2917commit 7844aff1a838362403b332c3a68d5732a192923a 2918Author: Lasse Collin <lasse.collin@tukaani.org> 2919Date: 2025-05-03 22:45:15 +0300 2920 2921 Scripts: Silence two shellcheck warnings 2922 2923 src/scripts/xzdiff.in | 2 +- 2924 src/scripts/xzmore.in | 2 +- 2925 2 files changed, 2 insertions(+), 2 deletions(-) 2926 2927commit 4d439aaeed5c991fbc1ff78d7616e179c30fca1d 2928Author: Lasse Collin <lasse.collin@tukaani.org> 2929Date: 2025-09-29 17:29:23 +0300 2930 2931 Translations: Add Swedish man page translations 2932 2933 po4a/po4a.conf | 2 +- 2934 po4a/sv.po | 3909 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2935 2 files changed, 3910 insertions(+), 1 deletion(-) 2936 2937commit dd4a1b259936880e04669b43e778828b60619860 2938Author: Lasse Collin <lasse.collin@tukaani.org> 2939Date: 2025-05-23 13:09:14 +0300 2940 2941 CI: Add timeout-minutes 2942 2943 Sometimes the VM workflows (like FreeBSD VM on Ubuntu) get stuck 2944 and the default timeout is six hours. While at it, set a sensible 2945 timeout for all workflows. 2946 2947 .github/workflows/ci.yml | 1 + 2948 .github/workflows/cifuzz.yml | 1 + 2949 .github/workflows/dragonflybsd.yml | 1 + 2950 .github/workflows/freebsd.yml | 1 + 2951 .github/workflows/msvc.yml | 1 + 2952 .github/workflows/msys2.yml | 1 + 2953 .github/workflows/netbsd.yml | 1 + 2954 .github/workflows/openbsd.yml | 1 + 2955 .github/workflows/solaris.yml | 1 + 2956 9 files changed, 9 insertions(+) 2957 2958commit d660fe5d56a804b0ef3eea550fdcd51dbe17e45b 2959Author: Lasse Collin <lasse.collin@tukaani.org> 2960Date: 2025-05-23 12:25:36 +0300 2961 2962 liblzma: Fix grammar in API docs 2963 2964 Fixes: a27920002dbc ("liblzma: Add generic support for input seeking (LZMA_SEEK).") 2965 2966 src/liblzma/api/lzma/base.h | 2 +- 2967 1 file changed, 1 insertion(+), 1 deletion(-) 2968 2969commit ab45bdf4322879dc2859b1f66f1f8cf89cdebe2c 2970Author: Lasse Collin <lasse.collin@tukaani.org> 2971Date: 2025-05-21 16:07:01 +0300 2972 2973 Update THANKS 2974 2975 THANKS | 1 + 2976 1 file changed, 1 insertion(+) 2977 2978commit f0239936532d40be05e75384c37fb8d6c1bb4ff6 2979Author: Lasse Collin <lasse.collin@tukaani.org> 2980Date: 2025-05-21 16:07:01 +0300 2981 2982 CMake: With symbol versioning, try to pass --undefined-version to linker 2983 2984 Fixes: https://github.com/tukaani-project/xz/issues/180 2985 Fixes: https://bugs.gentoo.org/956119 2986 2987 CMakeLists.txt | 22 ++++++++++++++++++++++ 2988 1 file changed, 22 insertions(+) 2989 2990commit 377be0ea7a1d0ec3572a7f9a5f9ed42adeaa4503 2991Author: Lasse Collin <lasse.collin@tukaani.org> 2992Date: 2025-05-21 16:07:01 +0300 2993 2994 Build: With symbol versioning, try to pass --undefined-version to linker 2995 2996 Fixes: https://github.com/tukaani-project/xz/issues/180 2997 Fixes: https://bugs.gentoo.org/956119 2998 2999 configure.ac | 23 +++++++++++++++++++++++ 3000 src/liblzma/Makefile.am | 2 ++ 3001 2 files changed, 25 insertions(+) 3002 3003commit ff49c82176ca53646a1cbbbb4efc35a542745812 3004Author: Lasse Collin <lasse.collin@tukaani.org> 3005Date: 2025-05-21 14:48:18 +0300 3006 3007 CMake: Fix comments 3008 3009 CMakeLists.txt | 4 ++-- 3010 1 file changed, 2 insertions(+), 2 deletions(-) 3011 3012commit 71ad5e82888fdfa0fe11defa4f46cb0fc90dc326 3013Author: Lasse Collin <lasse.collin@tukaani.org> 3014Date: 2025-05-21 13:14:04 +0300 3015 3016 Translations: Update Serbian man page translations 3017 3018 Compared to the file in the Translation Project, I still had to apply 3019 a few fixes that were needed with the previous (5.7.1-dev1) version too: 3020 3021 - Remove two extra '<' characters that break the build with po4a. 3022 3023 - Don't translate XZ_DEFAULTS and XZ_OPT environment variable names. 3024 3025 po4a/sr.po | 70 ++++++++++++++++++++------------------------------------------ 3026 1 file changed, 22 insertions(+), 48 deletions(-) 3027 3028commit 31a983ad4774054074b300f55ff519484ff182c2 3029Author: Lasse Collin <lasse.collin@tukaani.org> 3030Date: 2025-05-21 12:55:28 +0300 3031 3032 Update po/.gitignore 3033 3034 po/.gitignore | 1 + 3035 1 file changed, 1 insertion(+) 3036 3037commit d9e70da25ac761544146bc2fbab6443e1a080bf4 3038Author: Lasse Collin <lasse.collin@tukaani.org> 3039Date: 2025-05-21 12:54:42 +0300 3040 3041 Translations: Update the Spanish translation 3042 3043 po/es.po | 10 +++++----- 3044 1 file changed, 5 insertions(+), 5 deletions(-) 3045 3046commit dbfb925c8198087afb3527e6c57b66fae1a980bb 3047Author: Lasse Collin <lasse.collin@tukaani.org> 3048Date: 2025-05-03 12:37:28 +0300 3049 3050 Tests: Silence a warning from GCC 15.1 3051 3052 It was (probably) intentionally without the null terminator, but the test 3053 works with null terminator too (the test still fails with xz <= 5.0.3), 3054 so simply omit one character to silence the warning. 3055 3056 tests/test_bcj_exact_size.c:30:32: error: initializer-string for array of ‘unsigned char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization] 3057 30 | const uint8_t in[16] = "0123456789ABCDEF"; 3058 | ^~~~~~~~~~~~~~~~~~ 3059 3060 Fixes: d8db706acb83 ("liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.") 3061 Fixes: https://github.com/tukaani-project/xz/issues/176 3062 3063 tests/test_bcj_exact_size.c | 2 +- 3064 1 file changed, 1 insertion(+), 1 deletion(-) 3065 3066commit 7c12726c51b2b7d77329dd72a29ecb1ec262b918 3067Author: Lasse Collin <lasse.collin@tukaani.org> 3068Date: 2025-04-28 18:16:14 +0300 3069 3070 Update THANKS 3071 3072 THANKS | 2 ++ 3073 1 file changed, 2 insertions(+) 3074 3075commit 1bd7361a043bd652ee5d0ebafd23459c57f57993 3076Author: Lasse Collin <lasse.collin@tukaani.org> 3077Date: 2025-04-25 17:32:03 +0300 3078 3079 Update THANKS 3080 3081 THANKS | 1 + 3082 1 file changed, 1 insertion(+) 3083 3084commit 5cc2e479eb447a444f5ab005fc36b7f275c75eb5 3085Author: Guillaume Outters <guillaume-installs@outters.eu> 3086Date: 2025-04-25 02:55:08 +0200 3087 3088 xz, xzdec: Capsicum sandbox: Fix incorrect use of cap_rights_clear() 3089 3090 cap_rights_clear() with no additional arguments acts as a no-op, so 3091 instead of removing all capability rights from STDIN_FILENO, the same 3092 rights were allowed for STDIN_FILENO as were allowed for src_fd. 3093 3094 Fixes: a0eecc235d3b ("xz: Make Capsicum sandbox more strict with stdin and stdout.") 3095 (The commit message says "stdout". It should have said "stderr".) 3096 3097 src/xz/sandbox.c | 2 +- 3098 src/xzdec/xzdec.c | 2 +- 3099 2 files changed, 2 insertions(+), 2 deletions(-) 3100 3101commit 56aa9a07968a6a73fada6f9b96122c5165829f3b 3102Author: Lasse Collin <lasse.collin@tukaani.org> 3103Date: 2025-04-22 21:12:50 +0300 3104 3105 CI: Valgrind: Improve the skipping of traced child processes 3106 3107 Use --trace-children-skip instead of --trace-children-skip-by-arg 3108 so that the skipping is only done based on the executable names. 3109 (--trace-children-skip-by-arg can match other args than argv[0].) 3110 3111 Update the list of executables to skip to match what the scripts run. 3112 3113 Do not skip bash or sh. If Valgrind didn't trace the shell, then the 3114 xz and xzdec programs run by the shell wouldn't be analyzed either. 3115 3116 Fixes: 7e99856f66c0 ("CI: Speed up Valgrind job by using --trace-children-skip-by-arg=...") 3117 3118 .github/workflows/ci.yml | 2 +- 3119 1 file changed, 1 insertion(+), 1 deletion(-) 3120 3121commit f33da20b75a45caad25c9a4daf7906e4f056ce91 3122Author: Lasse Collin <lasse.collin@tukaani.org> 3123Date: 2025-04-22 21:12:50 +0300 3124 3125 CI: Valgrind: Test with static liblzma 3126 3127 If shared liblzma is built, tests/test_* and src/xz/xz are wrapper 3128 scripts created by Libtool. The wrappers set library search path 3129 so that the freshly-built shared library is found. 3130 3131 With a static liblzma, no wrapper scripts are needed, and Libtool 3132 places the real executables to the aforementioned locations. This 3133 speeds up the tests under Valgrind dramatically. 3134 3135 Fixes: 6c095a98fbec ("ci: test Valgrind") 3136 3137 .github/workflows/ci.yml | 2 +- 3138 1 file changed, 1 insertion(+), 1 deletion(-) 3139 3140commit 5606fa89f91ca1d0d53e339d88f574fc731049c1 3141Author: Lasse Collin <lasse.collin@tukaani.org> 3142Date: 2025-04-22 21:12:50 +0300 3143 3144 CI: Add Ubuntu on ARM64 3145 3146 .github/workflows/ci.yml | 27 ++++++++++++++++----------- 3147 1 file changed, 16 insertions(+), 11 deletions(-) 3148 3149commit ec047a65a068087cc6f71133df414858f6886121 3150Author: Lasse Collin <lasse.collin@tukaani.org> 3151Date: 2025-04-22 16:21:50 +0300 3152 3153 Doxygen: Update the comment about tested versions 3154 3155 doxygen/Doxyfile | 2 +- 3156 1 file changed, 1 insertion(+), 1 deletion(-) 3157 3158commit 4f86e77bef8918b0c64183590609357a275558d8 3159Author: Lasse Collin <lasse.collin@tukaani.org> 3160Date: 2025-04-22 16:21:50 +0300 3161 3162 Doxygen: Set HAVE_DOT = NO 3163 3164 Debian and Ubuntu have a patch that changes the upstream default to 3165 HAVE_DOT = YES. Undo it to have more consistent results across distros. 3166 3167 This was noticed in Ubuntu CI runner where "doxygen" tried to run "dot" 3168 but that failed due to "dot" not being installed. "doxygen" still 3169 finished with exit status 0 until the commit that turned warnings to 3170 errors with WARN_AS_ERROR = FAIL_ON_WARNINGS. 3171 3172 doxygen/Doxyfile | 4 ++++ 3173 1 file changed, 4 insertions(+) 3174 3175commit ff96542d1c78f744d992be5890c95d90b2d19047 3176Author: Lasse Collin <lasse.collin@tukaani.org> 3177Date: 2025-04-22 16:21:50 +0300 3178 3179 Doxygen: Treat warnings as errors 3180 3181 Also set WARN_IF_UNDOCUMENTED = NO because even the API headers have 3182 a few things that won't have their own docs. 3183 3184 doxygen/Doxyfile | 2 ++ 3185 1 file changed, 2 insertions(+) 3186 3187commit a6711d1c4ad681aad985372d01a7deb21b4a1b8b 3188Author: Lasse Collin <lasse.collin@tukaani.org> 3189Date: 2025-04-22 16:21:50 +0300 3190 3191 Doxygen: Fix errors and some warnings in internal docs 3192 3193 src/liblzma/check/crc32_fast.c | 2 +- 3194 src/liblzma/check/crc64_fast.c | 2 +- 3195 src/liblzma/common/outqueue.h | 1 + 3196 src/xz/list.c | 2 ++ 3197 src/xz/message.h | 4 ++++ 3198 5 files changed, 9 insertions(+), 2 deletions(-) 3199 3200commit 8efd80adfcd65dfea086c1008452c6424b30b78c 3201Author: Lasse Collin <lasse.collin@tukaani.org> 3202Date: 2025-04-22 16:21:50 +0300 3203 3204 CI: Use --disable-sandbox instead of --enable-sandbox=no 3205 3206 It's the same thing, just a style difference. 3207 3208 build-aux/ci_build.bash | 2 +- 3209 1 file changed, 1 insertion(+), 1 deletion(-) 3210 3211commit a2e47c7a59d835ba80beef53b986d45e99ecd94a 3212Author: Lasse Collin <lasse.collin@tukaani.org> 3213Date: 2025-04-22 16:21:50 +0300 3214 3215 CI: Support Doxygen in ci_build.bash 3216 3217 build-aux/ci_build.bash | 4 ++++ 3218 1 file changed, 4 insertions(+) 3219 3220commit 9048e724945a3dfbf86d7f97437113f27ea41c63 3221Author: Lasse Collin <lasse.collin@tukaani.org> 3222Date: 2025-04-22 16:21:50 +0300 3223 3224 CI: Add Doxygen dependency to CMake builds on Ubuntu and macOS 3225 3226 .github/workflows/ci.yml | 4 ++-- 3227 1 file changed, 2 insertions(+), 2 deletions(-) 3228 3229commit d8e9dc63a6124336e72a849b8104ba60720f0fe2 3230Author: Lasse Collin <lasse.collin@tukaani.org> 3231Date: 2025-04-22 16:21:50 +0300 3232 3233 CI: Support XZ_NLS=OFF with CMake 3234 3235 build-aux/ci_build.bash | 1 + 3236 1 file changed, 1 insertion(+) 3237 3238commit ffa9fadecc85d21308aebac7b070fb5be791190f 3239Author: Lasse Collin <lasse.collin@tukaani.org> 3240Date: 2025-04-22 16:21:50 +0300 3241 3242 CI: Revise MSYS2 3243 3244 Re-enable CLANG64 environment. Add CLANGARM64. Don't add MINGW64 3245 to slightly reduce the number of runner VMs needed. 3246 3247 Install the required packages using the setup-msys2 action instead 3248 of running the commands separately. 3249 3250 Test Autotools and CMake in the same job to reduce the number of VMs. 3251 This doesn't slow it down too much because the msys2-setup step is 3252 needed by both. However, do only the full builds on ARM64 because 3253 those runners seem to be slower. 3254 3255 Test fewer build configurations. The point of testing on MSYS2 is to 3256 catch Windows-related issues. It should be enough that the more unusual 3257 build configurations are tested in ci.yml. 3258 3259 Run the build commands directly instead of using ci_build.bash. This 3260 makes it easier to see what commands are run even if it is a little 3261 more verbose now. 3262 3263 Run the workflow automatically when commit are pushed to master. 3264 With the fewer build variants it's not too slow. 3265 3266 .github/workflows/msys2.yml | 197 +++++++++++++++++++++++++------------------- 3267 1 file changed, 110 insertions(+), 87 deletions(-) 3268 3269commit 6f2aaa77daef7b408dc0d9c9a534373a30da7a50 3270Author: Lasse Collin <lasse.collin@tukaani.org> 3271Date: 2025-04-22 16:21:50 +0300 3272 3273 CI: Rename the MSYS2 workflow file 3274 3275 .github/workflows/{windows-ci.yml => msys2.yml} | 0 3276 1 file changed, 0 insertions(+), 0 deletions(-) 3277 3278commit 09110ad4c74f3ee1b4b0355d92b703525eddd3ff 3279Author: Lasse Collin <lasse.collin@tukaani.org> 3280Date: 2025-04-22 16:21:50 +0300 3281 3282 CI: Enable assertions on NetBSD + CMake 3283 3284 .github/workflows/netbsd.yml | 2 +- 3285 1 file changed, 1 insertion(+), 1 deletion(-) 3286 3287commit 516b90f6e1beb243dd76adc82da0ee47e525f863 3288Author: Lasse Collin <lasse.collin@tukaani.org> 3289Date: 2025-04-21 12:23:37 +0300 3290 3291 liblzma: Update lzma_lzip_decoder() docs about trailing data 3292 3293 Don't say that the .lz format allows trailing data. According to the 3294 lzip 1.25 manual, trailing data isn't part of the file format at all. 3295 However, tools are still expected to behave as usefully as possible 3296 when there is trailing data. 3297 3298 Fix the description of lzip >= 1.20 behavior when some of the first 3299 bytes of trailing data match the magic bytes. While the lzip 1.25 manual 3300 recommends that none of the first four bytes in trailing data should 3301 match the magic bytes, the default behavior of lzip 1.25 treats 3302 trailing data as a corrupt member header only if two or three bytes 3303 match the magic bytes; one matching byte isn't enough. 3304 3305 Reported-by: Antonio Diaz Diaz 3306 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00702.html 3307 3308 src/liblzma/api/lzma/container.h | 23 +++++++++++------------ 3309 1 file changed, 11 insertions(+), 12 deletions(-) 3310 3311commit c330220d47dc09a5bab805d22654c8c0a73d21a9 3312Author: Lasse Collin <lasse.collin@tukaani.org> 3313Date: 2025-04-21 11:21:08 +0300 3314 3315 Update THANKS 3316 3317 THANKS | 1 + 3318 1 file changed, 1 insertion(+) 3319 3320commit 6cc7672c2238e7fc66bba33cff50cecd30411063 3321Author: Lasse Collin <lasse.collin@tukaani.org> 3322Date: 2025-04-17 20:36:33 +0300 3323 3324 CI: Add DragonflyBSD 3325 3326 .github/workflows/dragonflybsd.yml | 39 ++++++++++++++++++++++++++++++++++++++ 3327 1 file changed, 39 insertions(+) 3328 3329commit 07dc50913725496bd89178539190292a66e18710 3330Author: Lasse Collin <lasse.collin@tukaani.org> 3331Date: 2025-04-17 20:36:33 +0300 3332 3333 CI: Update Solaris 3334 3335 .github/workflows/solaris.yml | 37 +++++++++++++++++++------------------ 3336 1 file changed, 19 insertions(+), 18 deletions(-) 3337 3338commit cfcaae1945c0c33df86477138746e68428972a53 3339Author: Lasse Collin <lasse.collin@tukaani.org> 3340Date: 2025-04-17 20:36:33 +0300 3341 3342 CI: Update OpenBSD 3343 3344 Use --disable-nls --enable-external-sha256 because those are used 3345 in the xz Makefile in the OpenBSD ports tree. 3346 3347 .github/workflows/openbsd.yml | 46 +++++++++++++++++++++++-------------------- 3348 1 file changed, 25 insertions(+), 21 deletions(-) 3349 3350commit 5240fcfee3b1386029a26629d75f1465b9e85ca3 3351Author: Lasse Collin <lasse.collin@tukaani.org> 3352Date: 2025-04-17 20:36:33 +0300 3353 3354 CI: Update NetBSD 3355 3356 For variety, use CMake and Ninja. 3357 3358 .github/workflows/netbsd.yml | 43 +++++++++++++++++++++++++------------------ 3359 1 file changed, 25 insertions(+), 18 deletions(-) 3360 3361commit 85ff0cf0ce11b017af21c040330f6a0c09ef7f77 3362Author: Lasse Collin <lasse.collin@tukaani.org> 3363Date: 2025-04-17 20:36:33 +0300 3364 3365 CI: Update FreeBSD 3366 3367 ARM64 was left commented out because it's slow under both 3368 ubuntu-latest (x86-64) and ubuntu-24.04-arm (aarch64) hosts. 3369 3370 .github/workflows/freebsd.yml | 61 +++++++++++++++++++++++++++++-------------- 3371 1 file changed, 42 insertions(+), 19 deletions(-) 3372 3373commit 907ac2215db1613312dc292219bac798d76394f4 3374Author: Lasse Collin <lasse.collin@tukaani.org> 3375Date: 2025-04-11 17:25:53 +0300 3376 3377 CI: Specify only the main version of the standard GH actions 3378 3379 .github/workflows/ci.yml | 4 ++-- 3380 .github/workflows/msvc.yml | 2 +- 3381 2 files changed, 3 insertions(+), 3 deletions(-) 3382 3383commit b0d0e624740b92415f78274702b5b5bfbffe4543 3384Author: Lasse Collin <lasse.collin@tukaani.org> 3385Date: 2025-04-11 17:15:08 +0300 3386 3387 CI: Add 'permissions' to ci.yml and msvc.yml 3388 3389 .github/workflows/ci.yml | 2 ++ 3390 .github/workflows/msvc.yml | 2 ++ 3391 2 files changed, 4 insertions(+) 3392 3393commit 1edc14e8ca4fc1f25ee43f17f290c045df7f49e0 3394Author: Sam James <sam@gentoo.org> 3395Date: 2025-04-10 23:15:31 +0300 3396 3397 CI: Add CIFuzz 3398 3399 xz is already part of OSS-Fuzz, but OSS-Fuzz provides & encourages [0] 3400 its 'CIFuzz' service to test individual commits. 3401 3402 [0] https://google.github.io/oss-fuzz/getting-started/continuous-integration/ 3403 3404 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 3405 3406 .github/workflows/cifuzz.yml | 54 ++++++++++++++++++++++++++++++++++++++++++++ 3407 1 file changed, 54 insertions(+) 3408 3409commit 35e06c4c426c6cc3866a9003e87a122eb78bccf2 3410Author: Lasse Collin <lasse.collin@tukaani.org> 3411Date: 2025-04-12 15:31:01 +0300 3412 3413 CMake: Don't check for optreset if using replacement getopt_long 3414 3415 If <getopt.h> had optreset but not getopt_long, xz used optreset while 3416 the replacement getopt_long doesn't support optreset. I'm not aware of 3417 any relevant system where bug is possible. Autotools build didn't have 3418 this bug. 3419 3420 Fixes: af66cd585902 ("CMake: Add support for replacement getopt_long (lib/getopt*).") 3421 3422 CMakeLists.txt | 6 ++++-- 3423 1 file changed, 4 insertions(+), 2 deletions(-) 3424 3425commit 99f4b9db9dfc3dabad330df6242e4632c42393c6 3426Author: Lasse Collin <lasse.collin@tukaani.org> 3427Date: 2025-04-17 18:33:10 +0300 3428 3429 Update THANKS 3430 3431 THANKS | 1 + 3432 1 file changed, 1 insertion(+) 3433 3434commit dd006a67e593cb5d3dec5180face7e3010fe78da 3435Author: Lasse Collin <lasse.collin@tukaani.org> 3436Date: 2025-04-17 18:30:26 +0300 3437 3438 liblzma: Update the lzma_lzip_decoder() docs about sync flush marker 3439 3440 src/liblzma/api/lzma/container.h | 15 +++++++-------- 3441 1 file changed, 7 insertions(+), 8 deletions(-) 3442 3443commit f59c5859600b5dfeaa618fcc04e9e3bb2b005f5c 3444Author: Lasse Collin <lasse.collin@tukaani.org> 3445Date: 2025-04-17 18:16:40 +0300 3446 3447 xz: Don't mention lzip's sync flush marker on the man page 3448 3449 The sync flush marker isn't valid in .lz files. The sync flush marker 3450 may be used by lzlib, but the resulting streams are only meant to be 3451 decoded by lzlib itself. lzlib's docs make this clear. 3452 3453 Reported-by: Antonio Diaz Diaz 3454 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00700.html 3455 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00701.html 3456 3457 src/xz/xz.1 | 9 +-------- 3458 1 file changed, 1 insertion(+), 8 deletions(-) 3459 3460commit 49258439b4ead6866798c1ebf8a083ec9ec04520 3461Author: Lasse Collin <lasse.collin@tukaani.org> 3462Date: 2025-04-17 18:15:48 +0300 3463 3464 Update THANKS 3465 3466 THANKS | 1 + 3467 1 file changed, 1 insertion(+) 3468 3469commit a69fbd3aaebc15dc5912e64724e5abfcef09bcdf 3470Author: Lasse Collin <lasse.collin@tukaani.org> 3471Date: 2025-04-10 20:13:07 +0300 3472 3473 CI: MSVC: Use fewer runners for the same number of tests 3474 3475 Using eight runners seems wasteful. Using only two runners isn't 3476 much slower due to the runner startup overhead. 3477 3478 Also add a comment about the test that fails without b5a5d9e3f702. 3479 3480 .github/workflows/msvc.yml | 66 ++++++++++++++++++++++++++++++++++++++-------- 3481 1 file changed, 55 insertions(+), 11 deletions(-) 3482 3483commit 8a300d1c4fc644af482fb679044794c3e3f6f3e5 3484Author: Lasse Collin <lasse.collin@tukaani.org> 3485Date: 2025-04-10 20:10:31 +0300 3486 3487 Update THANKS 3488 3489 THANKS | 1 + 3490 1 file changed, 1 insertion(+) 3491 3492commit b5a5d9e3f7022e546cdfd4ddc42fe4cc56839c05 3493Author: Lasse Collin <lasse.collin@tukaani.org> 3494Date: 2025-04-07 22:36:58 +0300 3495 3496 liblzma: Disable CLMUL CRC on old MSVC targeting 32-bit x86 3497 3498 On GitHub runners, VS 2019 16.11 (MSVC 19.29.30158) results in 3499 test failures. VS 2022 17.13 (MSVC 19.43.34808) works. 3500 3501 In xz 5.6.x there was a #pragma-based workaround for MSVC builds for 3502 32-bit x86. Another method was thought to work with the new rewritten 3503 CLMUL CRC. Apparently it doesn't. Keep it simple and disable CLMUL CRC 3504 with any non-recent MSVC when building for 32-bit x86. 3505 3506 Fixes: 54eaea5ea49b ("liblzma: x86 CLMUL CRC: Rewrite") 3507 Fixes: https://github.com/tukaani-project/xz/issues/171 3508 Reported-by: Andrew Murray 3509 3510 src/liblzma/check/crc_common.h | 16 +++++++++++++--- 3511 1 file changed, 13 insertions(+), 3 deletions(-) 3512 3513commit c5fd88dfc3d2b4178dc6da65b02a63a4ef9280c5 3514Author: Lasse Collin <lasse.collin@tukaani.org> 3515Date: 2025-04-07 22:36:58 +0300 3516 3517 liblzma: Remove MSVC hack from CLMUL CRC 3518 3519 It's not enough with MSVC 19.29 (VS 2019) even if the hack was also 3520 applied to the CRC32 code. The tests crash when built for 32-bit x86. 3521 3522 src/liblzma/check/crc64_fast.c | 8 -------- 3523 1 file changed, 8 deletions(-) 3524 3525commit 49ba8c69ea7f928aded77bd856085c85a8d26156 3526Author: Lasse Collin <lasse.collin@tukaani.org> 3527Date: 2025-04-07 22:36:52 +0300 3528 3529 CI: Test 32/64-bit x86 builds with Visual Studio 2019 and 2022 3530 3531 .github/workflows/msvc.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3532 1 file changed, 45 insertions(+) 3533 3534commit 1176a19df6b1585b51131b0e2570e03f1fc14f46 3535Author: Lasse Collin <lasse.collin@tukaani.org> 3536Date: 2025-04-04 20:08:37 +0300 3537 3538 Tests: Add fuzz_decode_stream_mt.options 3539 3540 tests/ossfuzz/config/fuzz_decode_stream_mt.options | 4 ++++ 3541 1 file changed, 4 insertions(+) 3542 3543commit c3cb1e53a114ac944f559fe7cac45dbf48cca156 3544Author: Lasse Collin <lasse.collin@tukaani.org> 3545Date: 2025-04-03 15:06:07 +0300 3546 3547 doc/SHA256SUMS: Add 5.8.1 3548 3549 doc/SHA256SUMS | 7 +++++++ 3550 1 file changed, 7 insertions(+) 3551 3552commit a522a226545730551f7e7c2685fab27cf567746c 3553Author: Lasse Collin <lasse.collin@tukaani.org> 3554Date: 2025-04-03 14:34:43 +0300 3555 3556 Bump version and soname for 5.8.1 3557 3558 src/liblzma/Makefile.am | 2 +- 3559 src/liblzma/api/lzma/version.h | 2 +- 3560 2 files changed, 2 insertions(+), 2 deletions(-) 3561 3562commit 1c462c2ad86ff85766928638431029cd0b0dc995 3563Author: Lasse Collin <lasse.collin@tukaani.org> 3564Date: 2025-04-03 14:34:43 +0300 3565 3566 Add NEWS for 5.8.1 3567 3568 NEWS | 30 ++++++++++++++++++++++++++++++ 3569 1 file changed, 30 insertions(+) 3570 3571commit 513cabcf7f5ce1c3ed0619e791393fc53d1dbbd0 3572Author: Lasse Collin <lasse.collin@tukaani.org> 3573Date: 2025-04-03 14:34:43 +0300 3574 3575 Tests: Call lzma_code() in smaller chunks in fuzz_common.h 3576 3577 This makes it easy to crash fuzz_decode_stream_mt when tested 3578 against the code from 5.8.0. 3579 3580 Obviously this might make it harder to reach some other code path now. 3581 The previous code has been in use since 2018 when fuzzing was added 3582 in 106d1a663d4b ("Tests: Add a fuzz test program and a config file 3583 for OSS-Fuzz."). 3584 3585 tests/ossfuzz/fuzz_common.h | 31 ++++++++++++++++++++++++------- 3586 1 file changed, 24 insertions(+), 7 deletions(-) 3587 3588commit 48440e24a25911ae59e8518b67a1e0f6f1c293bf 3589Author: Lasse Collin <lasse.collin@tukaani.org> 3590Date: 2025-04-03 14:34:43 +0300 3591 3592 Tests: Add a fuzzing target for the multithreaded .xz decoder 3593 3594 It doesn't seem possible to trigger the CVE-2025-31115 bug with this 3595 fuzzing target at the moment. It's because the code in fuzz_common.h 3596 passes the whole input buffer to lzma_code() at once. 3597 3598 tests/ossfuzz/fuzz_decode_stream_mt.c | 47 +++++++++++++++++++++++++++++++++++ 3599 1 file changed, 47 insertions(+) 3600 3601commit 0c80045ab82c406858d9d5bcea9f48ebc3d0a81d 3602Author: Lasse Collin <lasse.collin@tukaani.org> 3603Date: 2025-04-03 14:34:42 +0300 3604 3605 liblzma: mt dec: Fix lack of parallelization in single-shot decoding 3606 3607 Single-shot decoding means calling lzma_code() by giving it the whole 3608 input at once and enough output buffer space to store the uncompressed 3609 data, and combining this with LZMA_FINISH and no timeout 3610 (lzma_mt.timeout = 0). This way the file is decoded with a single 3611 lzma_code() call if possible. 3612 3613 The bug prevented the decoder from starting more than one worker thread 3614 in single-shot mode. The issue was noticed when reviewing the code; 3615 there are no bug reports. Thus maybe few have tried this mode. 3616 3617 Fixes: 64b6d496dc81 ("liblzma: Threaded decoder: Always wait for output if LZMA_FINISH is used.") 3618 3619 src/liblzma/common/stream_decoder_mt.c | 11 +++++++++-- 3620 1 file changed, 9 insertions(+), 2 deletions(-) 3621 3622commit 8188048854e8d11071b8a50d093c74f4c030acc9 3623Author: Lasse Collin <lasse.collin@tukaani.org> 3624Date: 2025-04-03 14:34:42 +0300 3625 3626 liblzma: mt dec: Don't modify thr->in_size in the worker thread 3627 3628 Don't set thr->in_size = 0 when returning the thread to the stack of 3629 available threads. Not only is it useless, but the main thread may 3630 read the value in SEQ_BLOCK_THR_RUN. With valid inputs, it made 3631 no difference if the main thread saw the original value or 0. With 3632 invalid inputs (when worker thread stops early), thr->in_size was 3633 no longer modified after the previous commit with the security fix 3634 ("Don't free the input buffer too early"). 3635 3636 So while the bug appears harmless now, it's important to fix it because 3637 the variable was being modified without proper locking. It's trivial 3638 to fix because there is no need to change the value. Only main thread 3639 needs to set the value in (in SEQ_BLOCK_THR_INIT) when starting a new 3640 Block before the worker thread is activated. 3641 3642 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 3643 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3644 Thanks-to: Sam James <sam@gentoo.org> 3645 3646 src/liblzma/common/stream_decoder_mt.c | 6 ++++-- 3647 1 file changed, 4 insertions(+), 2 deletions(-) 3648 3649commit d5a2ffe41bb77b918a8c96084885d4dbe4bf6480 3650Author: Lasse Collin <lasse.collin@tukaani.org> 3651Date: 2025-04-03 14:34:42 +0300 3652 3653 liblzma: mt dec: Don't free the input buffer too early (CVE-2025-31115) 3654 3655 The input buffer must be valid as long as the main thread is writing 3656 to the worker-specific input buffer. Fix it by making the worker 3657 thread not free the buffer on errors and not return the worker thread to 3658 the pool. The input buffer will be freed when threads_end() is called. 3659 3660 With invalid input, the bug could at least result in a crash. The 3661 effects include heap use after free and writing to an address based 3662 on the null pointer plus an offset. 3663 3664 The bug has been there since the first committed version of the threaded 3665 decoder and thus affects versions from 5.3.3alpha to 5.8.0. 3666 3667 As the commit message in 4cce3e27f529 says, I had made significant 3668 changes on top of Sebastian's patch. This bug was indeed introduced 3669 by my changes; it wasn't in Sebastian's version. 3670 3671 Thanks to Harri K. Koskinen for discovering and reporting this issue. 3672 3673 Fixes: 4cce3e27f529 ("liblzma: Add threaded .xz decompressor.") 3674 Reported-by: Harri K. Koskinen <x64nop@nannu.org> 3675 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3676 Thanks-to: Sam James <sam@gentoo.org> 3677 3678 src/liblzma/common/stream_decoder_mt.c | 31 ++++++++++++++++++++++--------- 3679 1 file changed, 22 insertions(+), 9 deletions(-) 3680 3681commit c0c835964dfaeb2513a3c0bdb642105152fe9f34 3682Author: Lasse Collin <lasse.collin@tukaani.org> 3683Date: 2025-04-03 14:34:42 +0300 3684 3685 liblzma: mt dec: Simplify by removing the THR_STOP state 3686 3687 The main thread can directly set THR_IDLE in threads_stop() which is 3688 called when errors are detected. threads_stop() won't return the stopped 3689 threads to the pool or free the memory pointed by thr->in anymore, but 3690 it doesn't matter because the existing workers won't be reused after 3691 an error. The resources will be cleaned up when threads_end() is 3692 called (reinitializing the decoder always calls threads_end()). 3693 3694 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3695 Thanks-to: Sam James <sam@gentoo.org> 3696 3697 src/liblzma/common/stream_decoder_mt.c | 75 +++++++++++++--------------------- 3698 1 file changed, 29 insertions(+), 46 deletions(-) 3699 3700commit 831b55b971cf579ee16a854f177c36b20d3c6999 3701Author: Lasse Collin <lasse.collin@tukaani.org> 3702Date: 2025-04-03 14:34:42 +0300 3703 3704 liblzma: mt dec: Fix a comment 3705 3706 Reviewed-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 3707 Thanks-to: Sam James <sam@gentoo.org> 3708 3709 src/liblzma/common/stream_decoder_mt.c | 2 +- 3710 1 file changed, 1 insertion(+), 1 deletion(-) 3711 3712commit b9d168eee4fb6393b4fe207c0aeb5faee316ca1a 3713Author: Lasse Collin <lasse.collin@tukaani.org> 3714Date: 2025-04-03 14:34:30 +0300 3715 3716 liblzma: Add assertions to lzma_bufcpy() 3717 3718 src/liblzma/common/common.c | 6 ++++++ 3719 1 file changed, 6 insertions(+) 3720 3721commit c8e0a4897b4d0f906966f5d4d4f662221d64f3ae 3722Author: Lasse Collin <lasse.collin@tukaani.org> 3723Date: 2025-04-02 16:40:22 +0300 3724 3725 DOS: Update Makefile to fix the build 3726 3727 dos/Makefile | 2 ++ 3728 1 file changed, 2 insertions(+) 3729 3730commit 307c02ed698a69763ef1c9c0df4ff24727442118 3731Author: Lasse Collin <lasse.collin@tukaani.org> 3732Date: 2025-03-29 12:41:32 +0200 3733 3734 sysdefs.h: Avoid <stdalign.h> even with C11 compilers 3735 3736 Oracle Developer Studio 12.6 on Solaris 10 claims C11 support in 3737 __STDC_VERSION__ and supports _Alignas. However, <stdalign.h> is missing. 3738 We only need alignas, so define it to _Alignas with C11/C17 compilers. 3739 If something included <stdalign.h> later, it shouldn't cause problems. 3740 3741 Thanks to Ihsan Dogan for reporting the issue and testing the fix. 3742 3743 Fixes: c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 3744 3745 src/common/sysdefs.h | 4 +++- 3746 1 file changed, 3 insertions(+), 1 deletion(-) 3747 3748commit 7ce38b318339d6c01378a77585e08169ca3a604e 3749Author: Lasse Collin <lasse.collin@tukaani.org> 3750Date: 2025-03-29 12:32:05 +0200 3751 3752 Update THANKS 3753 3754 THANKS | 1 + 3755 1 file changed, 1 insertion(+) 3756 3757commit 688e51bde4c987589717b2be1a1fde9576c604fc 3758Author: Lasse Collin <lasse.collin@tukaani.org> 3759Date: 2025-03-29 12:21:51 +0200 3760 3761 Translations: Update the Croatian translation 3762 3763 po/hr.po | 14 +++++++------- 3764 1 file changed, 7 insertions(+), 7 deletions(-) 3765 3766commit 173fb5c68b08a8c1369550267be258132b7760c6 3767Author: Lasse Collin <lasse.collin@tukaani.org> 3768Date: 2025-03-25 18:23:57 +0200 3769 3770 doc/SHA256SUMS: Add 5.8.0 3771 3772 doc/SHA256SUMS | 6 ++++++ 3773 1 file changed, 6 insertions(+) 3774 3775commit db9258e828bc2cd96e3954f1ddcc9d3530589025 3776Author: Lasse Collin <lasse.collin@tukaani.org> 3777Date: 2025-03-25 15:18:32 +0200 3778 3779 Bump version and soname for 5.8.0 3780 3781 Also remove the LZMA_UNSTABLE macro. 3782 3783 src/liblzma/Makefile.am | 2 +- 3784 src/liblzma/api/lzma/bcj.h | 2 -- 3785 src/liblzma/api/lzma/version.h | 6 +++--- 3786 src/liblzma/common/common.h | 2 -- 3787 src/liblzma/liblzma_generic.map | 2 +- 3788 src/liblzma/liblzma_linux.map | 2 +- 3789 6 files changed, 6 insertions(+), 10 deletions(-) 3790 3791commit bfb752a38f89ed03fc93d54f11c09f43fda64bc2 3792Author: Lasse Collin <lasse.collin@tukaani.org> 3793Date: 2025-03-25 15:18:32 +0200 3794 3795 Add NEWS for 5.8.0 3796 3797 NEWS | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3798 1 file changed, 62 insertions(+) 3799 3800commit 6ccbb904da851eb0c174c8dbd43e84da31739720 3801Author: Lasse Collin <lasse.collin@tukaani.org> 3802Date: 2025-03-25 15:18:31 +0200 3803 3804 Translations: Run "make -C po update-po" 3805 3806 POT-Creation-Date is set to match the timestamp in 5.7.2beta which 3807 in the Translation Project is known as 5.8.0-pre1. The strings 3808 haven't changed since 5.7.1alpha but a few comments have. 3809 3810 This is a very noisy commit, but this helps keeping the PO files 3811 similar between the Git repository and stable release tarballs. 3812 3813 po/ca.po | 964 ++++++++++++++++++++++++++++++++++++++++++++--------------- 3814 po/cs.po | 935 ++++++++++++++++++++++++++++++++++++++++++---------------- 3815 po/da.po | 663 ++++++++++++++++++++++++++++++----------- 3816 po/de.po | 7 +- 3817 po/eo.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 3818 po/es.po | 7 +- 3819 po/fi.po | 2 +- 3820 po/fr.po | 916 +++++++++++++++++++++++++++++++++++++++++--------------- 3821 po/hu.po | 966 +++++++++++++++++++++++++++++++++++++++++++++--------------- 3822 po/ka.po | 7 +- 3823 po/ko.po | 7 +- 3824 po/nl.po | 7 +- 3825 po/pl.po | 7 +- 3826 po/pt_BR.po | 962 ++++++++++++++++++++++++++++++++++++++++++++--------------- 3827 po/sr.po | 2 +- 3828 po/sv.po | 7 +- 3829 po/tr.po | 7 +- 3830 po/uk.po | 7 +- 3831 po/vi.po | 948 +++++++++++++++++++++++++++++++++++++++++++--------------- 3832 po/zh_CN.po | 940 ++++++++++++++++++++++++++++++++++++++++++++-------------- 3833 po/zh_TW.po | 2 +- 3834 21 files changed, 6209 insertions(+), 2120 deletions(-) 3835 3836commit 891a5f057a6bb2dd2e3ce5e3bdd7a1f1ee03b800 3837Author: Lasse Collin <lasse.collin@tukaani.org> 3838Date: 2025-03-25 15:18:31 +0200 3839 3840 Translations: Run po4a/update-po 3841 3842 Also remove the trivial obsolete messages like man page dates. 3843 3844 This is a noisy commit, but this helps keeping the PO files similar 3845 between the Git repository and stable release tarballs. 3846 3847 po4a/fr.po | 82 +++++++++++++++++++++++++++++++++++++------------------ 3848 po4a/pt_BR.po | 88 +++++++++++++++++++++++++++++++++++++++++------------------ 3849 po4a/sr.po | 79 ++++++++++++++++++++++++++++++++++------------------- 3850 3 files changed, 167 insertions(+), 82 deletions(-) 3851 3852commit 4f52e7387012cb3510b01c937dd9b3a0c6a3ac6c 3853Author: Lasse Collin <lasse.collin@tukaani.org> 3854Date: 2025-03-25 15:18:31 +0200 3855 3856 Translations: Partially fix overtranslation in Serbian man pages 3857 3858 Names of environment variables and some other strings must be present 3859 in the original form. The translator couldn't be reached so I'm 3860 changing some of the strings myself. In the "Robot mode" section, 3861 occurrences in the middle of sentences weren't changed to reduce 3862 the chance of grammar breakage, but I kept the translated strings in 3863 parenthesis in the headings. It's not ideal, but now people shouldn't 3864 need to look at the English man page to find the English strings. 3865 3866 po4a/sr.po | 66 ++++++++++++++++++++++++++++++++++++++++++-------------------- 3867 1 file changed, 45 insertions(+), 21 deletions(-) 3868 3869commit ff5d944749b99eb5ab35e2ebaf01d05a59e7169b 3870Author: Lasse Collin <lasse.collin@tukaani.org> 3871Date: 2025-03-25 15:18:31 +0200 3872 3873 liblzma: Count the extra bytes in LZMA/LZMA2 decoder memory usage 3874 3875 src/liblzma/lz/lz_decoder.c | 3 ++- 3876 1 file changed, 2 insertions(+), 1 deletion(-) 3877 3878commit 943b012d09f717f7b44284c4e4976ea41264c731 3879Author: Lasse Collin <lasse.collin@tukaani.org> 3880Date: 2025-03-25 15:18:31 +0200 3881 3882 liblzma: Use SSE2 intrinsics instead of memcpy() in dict_repeat() 3883 3884 SSE2 is supported on every x86-64 processor. The SSE2 code is used on 3885 32-bit x86 if compiler options permit unconditional use of SSE2. 3886 3887 dict_repeat() copies short random-sized unaligned buffers. At least 3888 on glibc, FreeBSD, and Windows (MSYS2, UCRT, MSVCRT), memcpy() is 3889 clearly faster than byte-by-byte copying in this use case. Compared 3890 to the memcpy() version, the new SSE2 version reduces decompression 3891 time by 0-5 % depending on the machine and libc. It should never be 3892 slower than the memcpy() version. 3893 3894 However, on musl 1.2.5 on x86-64, the memcpy() version is the slowest. 3895 Compared to the memcpy() version: 3896 3897 - The byte-by-version takes 6-7 % less time to decompress. 3898 - The SSE2 version takes 16-18 % less time to decompress. 3899 3900 The numbers are from decompressing a Linux kernel source tarball in 3901 single-threaded mode on older AMD and Intel systems. The tarball 3902 compresses well, and thus dict_repeat() performance matters more 3903 than with some other files. 3904 3905 src/liblzma/lz/lz_decoder.c | 14 ++++++-- 3906 src/liblzma/lz/lz_decoder.h | 87 ++++++++++++++++++++++++++++++++++++++++----- 3907 2 files changed, 90 insertions(+), 11 deletions(-) 3908 3909commit bc14e4c94e788d42eeab984298391fc0ca46f969 3910Author: Lasse Collin <lasse.collin@tukaani.org> 3911Date: 2025-03-25 15:18:31 +0200 3912 3913 liblzma: Add "restrict" to a few functions in lz_decoder.h 3914 3915 This doesn't make any difference in practice because compilers can 3916 already see that writing through the dict->buf pointer cannot modify 3917 the contents of *dict itself: The LZMA decoder makes a local copy of 3918 the lzma_dict structure, and even if it didn't, the pointer to 3919 lzma_dict in the LZMA decoder is already "restrict". 3920 3921 It's nice to add "restrict" anyway. uint8_t is typically unsigned char 3922 which can alias anything. Without the above conditions or "restrict", 3923 compilers could need to assume that writing through dict->buf might 3924 modify *dict. This would matter in dict_repeat() because the loops 3925 refer to dict->buf and dict->pos instead of making local copies of 3926 those members for the duration of the loops. If compilers had to 3927 assume that writing through dict->buf can affect *dict, then compilers 3928 would need to emit code that reloads dict->buf and dict->pos after 3929 every write through dict->buf. 3930 3931 src/liblzma/lz/lz_decoder.h | 7 ++++--- 3932 1 file changed, 4 insertions(+), 3 deletions(-) 3933 3934commit e82ee090c567e560f51a056775a17f534d159d65 3935Author: Lasse Collin <lasse.collin@tukaani.org> 3936Date: 2025-03-25 15:18:30 +0200 3937 3938 liblzma: Define LZ_DICT_INIT_POS for initial dictionary position 3939 3940 It's more readable. 3941 3942 src/liblzma/lz/lz_decoder.c | 4 ++-- 3943 src/liblzma/lz/lz_decoder.h | 9 ++++++--- 3944 2 files changed, 8 insertions(+), 5 deletions(-) 3945 3946commit 8e7cd0091e5239334437decbe1989662d45a2f47 3947Author: Lasse Collin <lasse.collin@tukaani.org> 3948Date: 2025-03-25 15:18:30 +0200 3949 3950 Windows: Update README-Windows.txt about UCRT 3951 3952 windows/README-Windows.txt | 3 ++- 3953 1 file changed, 2 insertions(+), 1 deletion(-) 3954 3955commit 2c24292d341e505e5579fccac3bce5bc71d839ef 3956Author: Lasse Collin <lasse.collin@tukaani.org> 3957Date: 2025-03-25 15:18:15 +0200 3958 3959 Update THANKS 3960 3961 THANKS | 1 + 3962 1 file changed, 1 insertion(+) 3963 3964commit 48053c90898fa191a216aefca01626520a7413f4 3965Author: Lasse Collin <lasse.collin@tukaani.org> 3966Date: 2025-03-17 15:33:25 +0200 3967 3968 Translations: Update the Italian translation 3969 3970 po/it.po | 32 ++++++++++++++++---------------- 3971 1 file changed, 16 insertions(+), 16 deletions(-) 3972 3973commit 8d6f06a65f50358fad13567f5dd8af41ef1d2b58 3974Author: Lasse Collin <lasse.collin@tukaani.org> 3975Date: 2025-03-17 15:28:56 +0200 3976 3977 Translations: Update the Portuguese translation 3978 3979 The language tag in the Translation Project is pt, not pt_PT, 3980 thus I changed the "Language:" line to pt. 3981 3982 po/pt.po | 1045 +++++++++++++++++++++++++++++++------------------------------- 3983 1 file changed, 526 insertions(+), 519 deletions(-) 3984 3985commit c3439b039f46fe547ad603e16dc3bd63c1ca9b0c 3986Author: Lasse Collin <lasse.collin@tukaani.org> 3987Date: 2025-03-14 13:02:21 +0200 3988 3989 Translations: Update the Italian translation 3990 3991 po/it.po | 1020 +++++++++++++++++++++++++++++++------------------------------- 3992 1 file changed, 516 insertions(+), 504 deletions(-) 3993 3994commit 79b4ab8d79528dd633a84df2d29e63f5d13ccbdf 3995Author: Lasse Collin <lasse.collin@tukaani.org> 3996Date: 2025-03-12 20:48:39 +0200 3997 3998 Translations: Update the Italian man page translations 3999 4000 Only trivial additions but this keeps the file in sync with the TP. 4001 4002 po4a/it.po | 4 ++-- 4003 1 file changed, 2 insertions(+), 2 deletions(-) 4004 4005commit 515b6fc8557825e1335012b3b1c8cf71e2c38775 4006Author: Lasse Collin <lasse.collin@tukaani.org> 4007Date: 2025-03-12 19:38:54 +0200 4008 4009 Translations: Update the Italian man page translations 4010 4011 po4a/it.po | 129 ++++++++++++++++++++++++++++++++++++------------------------- 4012 1 file changed, 77 insertions(+), 52 deletions(-) 4013 4014commit 333b7c0b776295f0941269b4e6cdb1a0ba5f6218 4015Author: Lasse Collin <lasse.collin@tukaani.org> 4016Date: 2025-03-10 21:00:31 +0200 4017 4018 Translations: Update the Korean man page translations 4019 4020 po4a/ko.po | 139 +++++++++++++++++++++++++++++++++++-------------------------- 4021 1 file changed, 80 insertions(+), 59 deletions(-) 4022 4023commit ae52ebd27dc0be5e1ba62fb0c45255d8563fcd88 4024Author: Lasse Collin <lasse.collin@tukaani.org> 4025Date: 2025-03-10 20:56:57 +0200 4026 4027 Translations: Update the German man page translations 4028 4029 po4a/de.po | 102 ++++++++++++++++++++++++++++++++++++++----------------------- 4030 1 file changed, 63 insertions(+), 39 deletions(-) 4031 4032commit 1028e52c93d2292b44ff7bae8e721025d2f2c94d 4033Author: Lasse Collin <lasse.collin@tukaani.org> 4034Date: 2025-03-10 13:13:30 +0200 4035 4036 CMake: Fix tuklib_use_system_extensions 4037 4038 Revert back to a macro so that list(APPEND CMAKE_REQUIRED_DEFINITIONS) 4039 will affect the calling scope. I had forgotten that while CMake 4040 functions inherit the variables from the parent scope, the changes 4041 to them are local unless using set(... PARENT_SCOPE). 4042 4043 This also means that the commit message in 5bb77d0920dc is wrong. The 4044 commit itself is still fine, making it clearer that -DHAVE_SYS_PARAM_H 4045 is only needed for specific check_c_source_compiles() calls. 4046 4047 Fixes: c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 4048 4049 cmake/tuklib_common.cmake | 7 +++++-- 4050 1 file changed, 5 insertions(+), 2 deletions(-) 4051 4052commit 80e48836024ec2d7cbd557575be6da3d1f055cba 4053Author: Lasse Collin <lasse.collin@tukaani.org> 4054Date: 2025-03-10 11:38:55 +0200 4055 4056 INSTALL: Document -bmaxdata on AIX 4057 4058 This is based on a pull request and AIX docs. I haven't tested the 4059 instructions myself. 4060 4061 Closes: https://github.com/tukaani-project/xz/pull/137 4062 4063 INSTALL | 5 +++++ 4064 1 file changed, 5 insertions(+) 4065 4066commit ab319186b6d0454285ff4941a777ac95e580f60f 4067Author: Lasse Collin <lasse.collin@tukaani.org> 4068Date: 2025-03-10 11:37:19 +0200 4069 4070 Update THANKS 4071 4072 THANKS | 1 + 4073 1 file changed, 1 insertion(+) 4074 4075commit 4434671a04436038f88ab0feaa251cc8d7abb683 4076Author: Collin Funk <collin.funk1@gmail.com> 4077Date: 2025-03-09 19:14:31 -0700 4078 4079 tuklib_physmem: Silence -Wsign-conversion on AIX 4080 4081 Closes: https://github.com/tukaani-project/xz/pull/168 4082 4083 src/common/tuklib_physmem.c | 2 +- 4084 1 file changed, 1 insertion(+), 1 deletion(-) 4085 4086commit 18bcaa4fafc935d89ffde94301fa6427907306bf 4087Author: Lasse Collin <lasse.collin@tukaani.org> 4088Date: 2025-03-09 22:10:38 +0200 4089 4090 Translations: Update the Romanian man page translations 4091 4092 po4a/ro.po | 110 ++++++++++++++++++++++++++++++++++++------------------------- 4093 1 file changed, 66 insertions(+), 44 deletions(-) 4094 4095commit 1e17b7f42fe2f9df279f44ad7043d3753cd00363 4096Author: Lasse Collin <lasse.collin@tukaani.org> 4097Date: 2025-03-09 21:28:15 +0200 4098 4099 Translations: Update the Croatian translation 4100 4101 po/hr.po | 19 +++++++++++-------- 4102 1 file changed, 11 insertions(+), 8 deletions(-) 4103 4104commit ff85e6130d5940896915cdbb99aa9ece9d41240b 4105Author: Lasse Collin <lasse.collin@tukaani.org> 4106Date: 2025-03-09 21:23:34 +0200 4107 4108 Translations: Update the Romanian translation 4109 4110 po/ro.po | 24 +++++++++++++----------- 4111 1 file changed, 13 insertions(+), 11 deletions(-) 4112 4113commit a5bfb33f30f77e656723d365db8b06e089d3de61 4114Author: Lasse Collin <lasse.collin@tukaani.org> 4115Date: 2025-03-09 21:11:34 +0200 4116 4117 Translations: Update the Ukrainian man page translations 4118 4119 po4a/uk.po | 107 ++++++++++++++++++++++++++++++++++++------------------------- 4120 1 file changed, 64 insertions(+), 43 deletions(-) 4121 4122commit 5bb77d0920dcf949d8eb04eb19204b7b199e42df 4123Author: Lasse Collin <lasse.collin@tukaani.org> 4124Date: 2025-03-09 14:43:07 +0200 4125 4126 CMake: Use cmake_push_check_state in tuklib_cpucores and tuklib_physmem 4127 4128 Now the changes to CMAKE_REQUIRED_DEFINITIONS are temporary and don't 4129 leak to the calling code. 4130 4131 cmake/tuklib_cpucores.cmake | 3 +++ 4132 cmake/tuklib_physmem.cmake | 4 +++- 4133 2 files changed, 6 insertions(+), 1 deletion(-) 4134 4135commit c1ea7bd0b60eed6ebcdf9a713ca69034f6f07179 4136Author: Lasse Collin <lasse.collin@tukaani.org> 4137Date: 2025-03-09 14:06:35 +0200 4138 4139 CMake: Revise tuklib_use_system_extensions 4140 4141 Define NetBSD and Darwin/macOS feature test macros. Autoconf defines 4142 these too (and a few others). 4143 4144 Define the macros on Windows except with MSVC. The _GNU_SOURCE macro 4145 makes a difference with mingw-w64. 4146 4147 Use a function instead of a macro. Don't take the TARGET_OR_ALL argument 4148 because there's always global effect because the global variable 4149 CMAKE_REQUIRED_DEFINITIONS is modified. 4150 4151 CMakeLists.txt | 2 +- 4152 cmake/tuklib_common.cmake | 27 +++++++++++++++------------ 4153 2 files changed, 16 insertions(+), 13 deletions(-) 4154 4155commit 4243c45a48ef8c103d77b75d9f93d48adcb631db 4156Author: Lasse Collin <lasse.collin@tukaani.org> 4157Date: 2025-03-08 14:54:29 +0200 4158 4159 doc/SHA256SUMS: Add 5.7.2beta 4160 4161 doc/SHA256SUMS | 3 +++ 4162 1 file changed, 3 insertions(+) 4163 4164commit cc7f2fc1cf9f3c63cbce90ee92bfbb004f98140b 4165Author: Lasse Collin <lasse.collin@tukaani.org> 4166Date: 2025-03-08 14:29:57 +0200 4167 4168 Bump version and soname for 5.7.2beta 4169 4170 src/liblzma/Makefile.am | 2 +- 4171 src/liblzma/api/lzma/version.h | 4 ++-- 4172 src/liblzma/liblzma_generic.map | 2 +- 4173 src/liblzma/liblzma_linux.map | 2 +- 4174 4 files changed, 5 insertions(+), 5 deletions(-) 4175 4176commit 62e44b36167de27541776dcf677ed04077c9fd19 4177Author: Lasse Collin <lasse.collin@tukaani.org> 4178Date: 2025-03-08 14:24:38 +0200 4179 4180 Add NEWS for 5.7.2beta 4181 4182 NEWS | 35 +++++++++++++++++++++++++++++++++++ 4183 1 file changed, 35 insertions(+) 4184 4185commit 70f1f203789433b5d7b8b22e1655abc465d659f7 4186Author: Lasse Collin <lasse.collin@tukaani.org> 4187Date: 2025-03-08 14:23:00 +0200 4188 4189 COPYING: Remove the note about old releases 4190 4191 COPYING | 19 ------------------- 4192 1 file changed, 19 deletions(-) 4193 4194commit db9827dc38ff79de747a6fc7a99619e961dbc5e6 4195Author: Lasse Collin <lasse.collin@tukaani.org> 4196Date: 2025-03-08 14:22:28 +0200 4197 4198 xz: Update the man page about the environment variables again 4199 4200 src/xz/xz.1 | 22 +++++++++++----------- 4201 1 file changed, 11 insertions(+), 11 deletions(-) 4202 4203commit 99c584891bd1d946561cebded2226df9b83f1efb 4204Author: Lasse Collin <lasse.collin@tukaani.org> 4205Date: 2025-03-06 19:26:09 +0200 4206 4207 liblzma: Edit spelling in a comment 4208 4209 It was found with codespell. 4210 4211 src/liblzma/api/lzma/container.h | 2 +- 4212 1 file changed, 1 insertion(+), 1 deletion(-) 4213 4214commit 7a234c8c05a8f64efde013cd6a6d31a90b7d0d28 4215Author: Lasse Collin <lasse.collin@tukaani.org> 4216Date: 2025-03-06 19:14:23 +0200 4217 4218 xz: Update the man page about the environment variables 4219 4220 src/xz/xz.1 | 26 ++++++++++++++++++++++++-- 4221 1 file changed, 24 insertions(+), 2 deletions(-) 4222 4223commit 808f05af3ef40730d40b3798666757bd866484f1 4224Author: Lasse Collin <lasse.collin@tukaani.org> 4225Date: 2025-03-06 17:37:39 +0200 4226 4227 Docs: Add a few TRANSLATORS comments to man pages 4228 4229 All translators know that --command-line-options must not be translated. 4230 With some other strings it's not obvious when the untranslated string 4231 must be preserved. These comments hopefully help. 4232 4233 src/scripts/xzmore.1 | 2 ++ 4234 src/xz/xz.1 | 22 ++++++++++++++++++++++ 4235 2 files changed, 24 insertions(+) 4236 4237commit 051de255f00dda331e2a6fa189a6e7fe56a7c69b 4238Author: Lasse Collin <lasse.collin@tukaani.org> 4239Date: 2025-03-06 16:34:32 +0200 4240 4241 Scripts: Mark the LZMA Utils script aliases as deprecated 4242 4243 The deprecated aliases are lzcmp, lzdiff, lzless, lzmore, 4244 lzgrep, lzegrep, and lzfgrep. The commands that start with 4245 the xz prefix have identical behavior, for example, both 4246 lzgrep and xzgrep handle all supported file formats. 4247 4248 This doesn't affect lzma, unlzma, lzcat, lzmadec, or lzmainfo. 4249 The last release of LZMA Utils was made in 2008, but the lzma 4250 compatibility alias for the gzip-like tool is still in common use. 4251 Deprecating it would cause unnecessary breakage. 4252 4253 src/scripts/xzdiff.1 | 5 ++++- 4254 src/scripts/xzgrep.1 | 6 +++++- 4255 src/scripts/xzless.1 | 4 +++- 4256 src/scripts/xzmore.1 | 4 +++- 4257 4 files changed, 15 insertions(+), 4 deletions(-) 4258 4259commit 4941ea454c02cf15a64d6434a0778fc2a81282fc 4260Author: Lasse Collin <lasse.collin@tukaani.org> 4261Date: 2025-03-02 21:13:04 +0200 4262 4263 Translations: Add Serbian man page translations 4264 4265 po4a/po4a.conf | 2 +- 4266 po4a/sr.po | 3892 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4267 2 files changed, 3893 insertions(+), 1 deletion(-) 4268 4269commit d142d96f24daa451edaabfca8594e202932b3c0b 4270Author: Lasse Collin <lasse.collin@tukaani.org> 4271Date: 2025-03-02 20:42:14 +0200 4272 4273 Translations: Update Georgian translation 4274 4275 po/ka.po | 4 ++-- 4276 1 file changed, 2 insertions(+), 2 deletions(-) 4277 4278commit 9b7e45d841195c8fd8d286e26f810df28c53dd16 4279Author: Lasse Collin <lasse.collin@tukaani.org> 4280Date: 2025-02-28 21:07:21 +0200 4281 4282 Update THANKS 4283 4284 THANKS | 1 + 4285 1 file changed, 1 insertion(+) 4286 4287commit 9351592710e0df3238b09d39c545a643c50ac88f 4288Author: Lasse Collin <lasse.collin@tukaani.org> 4289Date: 2025-02-22 16:04:58 +0200 4290 4291 Update THANKS 4292 4293 THANKS | 1 + 4294 1 file changed, 1 insertion(+) 4295 4296commit 9023be7831faca2f28def55e16c39e3a42e1e262 4297Author: Lasse Collin <lasse.collin@tukaani.org> 4298Date: 2025-02-19 16:33:52 +0200 4299 4300 Translations: Update the Croatian translation 4301 4302 po/hr.po | 6 +++--- 4303 1 file changed, 3 insertions(+), 3 deletions(-) 4304 4305commit 2eaf242c56e8c65db83d48b018fa44aeafeb33a5 4306Author: Lasse Collin <lasse.collin@tukaani.org> 4307Date: 2025-02-17 21:46:15 +0200 4308 4309 Build: Fix out-of-tree builds when using the replacement getopt_long 4310 4311 Nowaways $(top_builddir)/lib/getopt.h depends on headers in 4312 $(top_srcdir)/lib, so both have to be in the include path. 4313 CMake-based build already did this. 4314 4315 Fixes: 7e884c00d0093c38339f17fb1d280eec493f42ca 4316 4317 src/lzmainfo/Makefile.am | 6 ++++-- 4318 src/xz/Makefile.am | 6 ++++-- 4319 src/xzdec/Makefile.am | 6 ++++-- 4320 3 files changed, 12 insertions(+), 6 deletions(-) 4321 4322commit 41322b2c60cd2c67a1053cb40d27e573420185b7 4323Author: Lasse Collin <lasse.collin@tukaani.org> 4324Date: 2025-02-17 18:25:52 +0200 4325 4326 m4/getopt.m4: Remove an outdated comment 4327 4328 m4/getopt.m4 | 3 --- 4329 1 file changed, 3 deletions(-) 4330 4331commit 03c23a4952bce1b50a1d213ca2d1c15acd76a489 4332Author: Lasse Collin <lasse.collin@tukaani.org> 4333Date: 2025-02-17 18:11:58 +0200 4334 4335 Build: Allow forcing the use of the replacement getopt_long 4336 4337 Now one can pass gl_replace_getopt=yes to configure to force the use 4338 of GNU getopt_long from the lib directory. This only checks that the 4339 value of gl_replace_getopt is non-empty, so one cannot force the 4340 replacement to be disabled. 4341 4342 Closes: https://github.com/tukaani-project/xz/pull/166 4343 4344 m4/getopt.m4 | 5 +++-- 4345 1 file changed, 3 insertions(+), 2 deletions(-) 4346 4347commit c23b837d15960ecc0d537f0260f389904e1e7f02 4348Author: Lasse Collin <lasse.collin@tukaani.org> 4349Date: 2025-02-17 18:11:42 +0200 4350 4351 Update THANKS 4352 4353 THANKS | 1 + 4354 1 file changed, 1 insertion(+) 4355 4356commit 2672a38f1159babf9ba3cca429f644bb823a8bdd 4357Author: Lasse Collin <lasse.collin@tukaani.org> 4358Date: 2025-02-12 19:23:31 +0200 4359 4360 Update THANKS 4361 4362 THANKS | 2 ++ 4363 1 file changed, 2 insertions(+) 4364 4365commit 4fdcbfaf3f222299747c6a815762a74eeb1b0b23 4366Author: Lasse Collin <lasse.collin@tukaani.org> 4367Date: 2025-02-11 12:13:41 +0200 4368 4369 Update THANKS 4370 4371 THANKS | 3 +++ 4372 1 file changed, 3 insertions(+) 4373 4374commit 0d553568f1af9a35779ecac41392a6c871786930 4375Author: Lasse Collin <lasse.collin@tukaani.org> 4376Date: 2025-02-08 11:39:08 +0200 4377 4378 Translations: Update the Polish translation 4379 4380 po/pl.po | 802 ++++++++++++++++++++++++++++++++++++--------------------------- 4381 1 file changed, 464 insertions(+), 338 deletions(-) 4382 4383commit 9f165076aebb3b5115d2b6520529db8fa11a6bdd 4384Author: Lasse Collin <lasse.collin@tukaani.org> 4385Date: 2025-02-07 19:12:03 +0200 4386 4387 Docs: Update TODO a little 4388 4389 TODO | 22 ++++------------------ 4390 1 file changed, 4 insertions(+), 18 deletions(-) 4391 4392commit f5aa292c534f87b9dd588e667d1c65ed31e5f289 4393Author: Lasse Collin <lasse.collin@tukaani.org> 4394Date: 2025-02-07 18:50:56 +0200 4395 4396 Add researcher credits of CVE-2022-1271 and CVE-2024-47611 to THANKS 4397 4398 These are specific phrases that were included in the advisories and 4399 NEWS. It's nice to have them in THANKS as well. 4400 4401 THANKS | 4 ++++ 4402 1 file changed, 4 insertions(+) 4403 4404commit 7cf463b5add70e3fb48a10de3965c8beb6c01ad9 4405Author: Lasse Collin <lasse.collin@tukaani.org> 4406Date: 2025-02-07 18:43:00 +0200 4407 4408 Update THANKS 4409 4410 THANKS | 5 +++++ 4411 1 file changed, 5 insertions(+) 4412 4413commit 6b7fe7e27b77038592e2c2e31df955059dda7d1d 4414Author: Lasse Collin <lasse.collin@tukaani.org> 4415Date: 2025-02-04 14:12:46 +0200 4416 4417 Docs: Update the "Translations" section in README 4418 4419 Make it clearer that translations cannot be accepted if they don't 4420 come via the Translation Project. 4421 4422 Column headings have been handled automatically for years and now --help 4423 is autowrapped too, so the related instructions can be removed. 4424 4425 README | 107 ++++++++++++++++++++++++----------------------------------------- 4426 1 file changed, 39 insertions(+), 68 deletions(-) 4427 4428commit 2c7aee94936babf84b61b55420e503a0b2629ec1 4429Author: Lasse Collin <lasse.collin@tukaani.org> 4430Date: 2025-02-04 13:23:53 +0200 4431 4432 debug/translations.bash: Revise a little 4433 4434 Make it work for out-of-tree builds without requiring one to specify 4435 the location of the xz executable. 4436 4437 Add xz --filters-help. 4438 4439 Make the output shorter by reducing the number of xz -lvv test files. 4440 4441 Show the value of LANGUAGE environment variable. 4442 4443 Show the xz.git version using git describe --abbrev=8 instead of =4. 4444 4445 debug/translation.bash | 24 +++++++++++------------- 4446 1 file changed, 11 insertions(+), 13 deletions(-) 4447 4448commit c6b15e7045209002bbbf4979c48072af01c20d8d 4449Author: Lasse Collin <lasse.collin@tukaani.org> 4450Date: 2025-02-04 13:20:52 +0200 4451 4452 Build: Use "git describe --abbrev=8" in snapshot tarball names 4453 4454 8 is more likely to be reproducible than the old 4 without being 4455 excessively long for a small repository like this. 4456 4457 Makefile.am | 2 +- 4458 1 file changed, 1 insertion(+), 1 deletion(-) 4459 4460commit 0ce97987c5b27cfb6f98984e5fd7477880e0cf33 4461Author: Lasse Collin <lasse.collin@tukaani.org> 4462Date: 2025-02-04 19:37:17 +0200 4463 4464 Update THANKS 4465 4466 THANKS | 2 ++ 4467 1 file changed, 2 insertions(+) 4468 4469commit 353c33355cb12e5016d49052fd1e90d15568aa37 4470Author: Lasse Collin <lasse.collin@tukaani.org> 4471Date: 2025-02-03 16:29:31 +0200 4472 4473 Translations: Update the Serbian translation 4474 4475 po/sr.po | 805 ++++++++++++++++++++++++++++++++++++--------------------------- 4476 1 file changed, 458 insertions(+), 347 deletions(-) 4477 4478commit 887dc281885052bced32b3aa309506ea58a2e78e 4479Author: Lasse Collin <lasse.collin@tukaani.org> 4480Date: 2025-02-03 16:15:38 +0200 4481 4482 Translations: Update Chinese (traditional) translation 4483 4484 Since there are no spaces between words, the unsophisticated automatic 4485 word wrapping code needs some help. Compared to the version in the 4486 Translation Project, I added a few \t characters which the word 4487 wrapping code interprets as zero width spaces (hopefully they are 4488 placed correctly). These edits can be seen with this command: 4489 4490 grep -v ^# po/zh_TW.po | grep --color -F '\t' 4491 4492 po/zh_TW.po | 843 +++++++++++++++++++++++++++++++++--------------------------- 4493 1 file changed, 471 insertions(+), 372 deletions(-) 4494 4495commit 0f1454cf5f460a4095f47f8f73f5a290e9777d7f 4496Author: Lasse Collin <lasse.collin@tukaani.org> 4497Date: 2025-02-03 16:12:44 +0200 4498 4499 Update THANKS 4500 4501 THANKS | 2 ++ 4502 1 file changed, 2 insertions(+) 4503 4504commit 23ea031820086d302a213be005a091df763b8a7b 4505Author: Lasse Collin <lasse.collin@tukaani.org> 4506Date: 2025-02-02 14:15:07 +0200 4507 4508 Build: Update posix-shell.m4 from Gnulib 4509 4510 Tabs have been converted to spaces and a "serial" number has been 4511 added. The previous version was from 2008/2009. There are no functional 4512 changes since then but now it's clearer that the copy in XZ Utils 4513 isn't outdated. 4514 4515 The new file was picked from the Gnulib commit 4516 81a4c1e3b7692e95c0806d948cbab9148ad85ef2. A later commit adds 4517 a warranty disclaimer to the license, which obviously is fine, 4518 but I didn't find a SPDX license identifier for the new license, 4519 so for simplicity I used the earlier commit. 4520 4521 m4/posix-shell.m4 | 31 ++++++++++++++++--------------- 4522 1 file changed, 16 insertions(+), 15 deletions(-) 4523 4524commit 84c33c0384aa4604ff7956f2fae6f83ea60ba96b 4525Author: Lasse Collin <lasse.collin@tukaani.org> 4526Date: 2025-02-02 12:51:03 +0200 4527 4528 Build: Check for -fsanitize= also in $CC 4529 4530 People may put -fsanitize in CC instead of CFLAGS so check both. 4531 Landlock sandbox isn't compatible with sanitizers so it's nice 4532 to catch the incompatible options at configure time. 4533 4534 Don't attempt to do the same in CMakeLists.txt; the check for 4535 CMAKE_C_FLAGS / CFLAGS shall be enough there. The extra flags from 4536 the CC environment variable go into the undocumented internal variable 4537 CMAKE_C_COMPILER_ARG1 (all flags from CC go into that same variable). 4538 Peeking the internal variable merely for improved diagnostics isn't 4539 worth it. 4540 4541 Fixes: 88588b1246d8c26ffbc138b3e5c413c5f14c3179 4542 4543 configure.ac | 5 +++-- 4544 1 file changed, 3 insertions(+), 2 deletions(-) 4545 4546commit a7304ea4a7daede9789a8fe422b714e372737120 4547Author: Lasse Collin <lasse.collin@tukaani.org> 4548Date: 2023-09-26 19:11:20 +0300 4549 4550 Build: Remove the FIXME about -Werror checks 4551 4552 configure.ac | 7 ------- 4553 1 file changed, 7 deletions(-) 4554 4555commit 1780bba74075da5e7764615bd323e95e19057dee 4556Author: Lasse Collin <lasse.collin@tukaani.org> 4557Date: 2023-09-26 19:10:51 +0300 4558 4559 Build: If using a GCC compatible compiler, ensure that -Werror works 4560 4561 The check can be skipped by passing SKIP_WERROR_CHECK=yes to configure. 4562 It won't be documented anywhere else than in the error message. 4563 4564 Ways to test: 4565 4566 ./configure CC=gcc CFLAGS=-Wunused-macros 4567 ./configure CC=clang CFLAGS=-Weverything 4568 ./configure CC=clang CFLAGS=-Weverything SKIP_WERROR_CHECK=yes 4569 4570 configure.ac | 26 ++++++++++++++++++++++++++ 4571 1 file changed, 26 insertions(+) 4572 4573commit 3aca2daefbdedd7cc0fb75ddde6b714273b1cc1d 4574Author: Lasse Collin <lasse.collin@tukaani.org> 4575Date: 2025-02-02 14:30:15 +0200 4576 4577 Update THANKS 4578 4579 THANKS | 4 ++++ 4580 1 file changed, 4 insertions(+) 4581 4582commit 186ff78ab40ceb07cde139506cab42a927ca99d2 4583Author: Lasse Collin <lasse.collin@tukaani.org> 4584Date: 2025-02-01 12:49:09 +0200 4585 4586 Translations: Update Romanian translation 4587 4588 po/ro.po | 12 ++++++------ 4589 1 file changed, 6 insertions(+), 6 deletions(-) 4590 4591commit 40a8ce3e10747ca5233610cc2cb704fc303c48e4 4592Author: Lasse Collin <lasse.collin@tukaani.org> 4593Date: 2025-01-30 18:16:43 +0200 4594 4595 Translations: Update Korean man page translations 4596 4597 po4a/ko.po | 146 ++++++++++++++++++++++++------------------------------------- 4598 1 file changed, 56 insertions(+), 90 deletions(-) 4599 4600commit 1787f9bd18ea8798d64b636cdefe6d0fda9b8f72 4601Author: Lasse Collin <lasse.collin@tukaani.org> 4602Date: 2025-01-30 18:15:52 +0200 4603 4604 Translations: Add Italian man page translations 4605 4606 po4a/it.po | 3876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4607 po4a/po4a.conf | 2 +- 4608 2 files changed, 3877 insertions(+), 1 deletion(-) 4609 4610commit 9b9182e561787a811fc0178489589f28c3e0174c 4611Author: Lasse Collin <lasse.collin@tukaani.org> 4612Date: 2025-01-29 22:18:29 +0200 4613 4614 Translations: Update the Finnish translation 4615 4616 po/fi.po | 13 +++++++------ 4617 1 file changed, 7 insertions(+), 6 deletions(-) 4618 4619commit 7d73ff7a9d8eab6270f0b1ff7d10c0aa6f5ba53f 4620Author: Lasse Collin <lasse.collin@tukaani.org> 4621Date: 2025-01-29 20:50:03 +0200 4622 4623 lzmainfo: Use tuklib_mbstr_wrap for --help text 4624 4625 Some languages have so long strings that they need to be wrapped. 4626 4627 CMakeLists.txt | 4 ++++ 4628 src/lzmainfo/Makefile.am | 2 ++ 4629 src/lzmainfo/lzmainfo.c | 36 ++++++++++++++++++++++++++---------- 4630 3 files changed, 32 insertions(+), 10 deletions(-) 4631 4632commit c56eb4707627d700695813fccdddd1483eac4f21 4633Author: Lasse Collin <lasse.collin@tukaani.org> 4634Date: 2025-01-29 20:00:06 +0200 4635 4636 Translations: Update the Croatian translation 4637 4638 po/hr.po | 926 ++++++++++++++++++++++++++++++++++++--------------------------- 4639 1 file changed, 529 insertions(+), 397 deletions(-) 4640 4641commit 69f4aec0a2442ab81f9ab66e5871a6546aefb0fc 4642Author: Lasse Collin <lasse.collin@tukaani.org> 4643Date: 2025-01-29 19:56:01 +0200 4644 4645 Translations: Update the Finnish translation 4646 4647 po/fi.po | 911 +++++++++++++++++++++++++++++++++------------------------------ 4648 1 file changed, 483 insertions(+), 428 deletions(-) 4649 4650commit d49dde33cf5f488bb38b1f57e172c4e3343fb383 4651Author: Lasse Collin <lasse.collin@tukaani.org> 4652Date: 2025-01-29 19:55:27 +0200 4653 4654 Translations: Update the German man page translations 4655 4656 po4a/de.po | 147 +++++++++++++++++++++++-------------------------------------- 4657 1 file changed, 55 insertions(+), 92 deletions(-) 4658 4659commit 23b99fc4a1f35bec5d63ffd02b14cacbdce9fe3c 4660Author: Lasse Collin <lasse.collin@tukaani.org> 4661Date: 2025-01-29 19:55:17 +0200 4662 4663 Translations: Update the German translation 4664 4665 po/de.po | 825 +++++++++++++++++++++++++++++++++++---------------------------- 4666 1 file changed, 460 insertions(+), 365 deletions(-) 4667 4668commit 7edab2bde0606b42229d9c04fe664069e38de3fb 4669Author: Lasse Collin <lasse.collin@tukaani.org> 4670Date: 2025-01-29 19:55:05 +0200 4671 4672 Translations: Update the Turkish translation 4673 4674 po/tr.po | 892 +++++++++++++++++++++++++++++++++++---------------------------- 4675 1 file changed, 490 insertions(+), 402 deletions(-) 4676 4677commit fac4d0fa5277d7a1f621707621ee9516f0bdbac5 4678Author: Lasse Collin <lasse.collin@tukaani.org> 4679Date: 2025-01-29 19:54:36 +0200 4680 4681 Translations: Add the Dutch translation 4682 4683 po/LINGUAS | 1 + 4684 po/nl.po | 1268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4685 2 files changed, 1269 insertions(+) 4686 4687commit abe5092f24b55dde9f7f78fac1bf810bce173273 4688Author: Lasse Collin <lasse.collin@tukaani.org> 4689Date: 2025-01-29 19:53:50 +0200 4690 4691 Translations: Update the Georgian translation 4692 4693 po/ka.po | 153 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 4694 1 file changed, 115 insertions(+), 38 deletions(-) 4695 4696commit b97b23c78d8100eec363c3e999c511560366d347 4697Author: Lasse Collin <lasse.collin@tukaani.org> 4698Date: 2025-01-29 19:53:21 +0200 4699 4700 Translations: Update the Spanish translation 4701 4702 po/es.po | 824 ++++++++++++++++++++++++++++++++++----------------------------- 4703 1 file changed, 450 insertions(+), 374 deletions(-) 4704 4705commit c68318cb49e0562bd22e88724ce85e76c6789a3a 4706Author: Lasse Collin <lasse.collin@tukaani.org> 4707Date: 2025-01-29 19:53:06 +0200 4708 4709 Translations: Update the Korean translation 4710 4711 po/ko.po | 785 +++++++++++++++++++++++++++++++++++++-------------------------- 4712 1 file changed, 460 insertions(+), 325 deletions(-) 4713 4714commit 153ee17f635962a474499f786ea1de1e1a2bb276 4715Author: Lasse Collin <lasse.collin@tukaani.org> 4716Date: 2025-01-29 19:52:42 +0200 4717 4718 Translations: Update the Romanian man page translations 4719 4720 po4a/ro.po | 141 +++++++++++++++++++++++-------------------------------------- 4721 1 file changed, 54 insertions(+), 87 deletions(-) 4722 4723commit 6ed308197e1f9d6c7a5cfe5aae301e75544017c4 4724Author: Lasse Collin <lasse.collin@tukaani.org> 4725Date: 2025-01-29 19:51:59 +0200 4726 4727 Translations: Update the Romanian translation 4728 4729 po/ro.po | 818 +++++++++++++++++++++++++++++++++++---------------------------- 4730 1 file changed, 461 insertions(+), 357 deletions(-) 4731 4732commit 06028803e19219f642aa9abddd3525c43594ec6c 4733Author: Lasse Collin <lasse.collin@tukaani.org> 4734Date: 2025-01-29 19:50:50 +0200 4735 4736 Translations: Update the Ukrainian man page translations 4737 4738 po4a/uk.po | 142 +++++++++++++++++++++++-------------------------------------- 4739 1 file changed, 54 insertions(+), 88 deletions(-) 4740 4741commit 8cbaf896a65a53c1d1e7e2ffc80d6ea216b1e8df 4742Author: Lasse Collin <lasse.collin@tukaani.org> 4743Date: 2025-01-29 19:50:26 +0200 4744 4745 Translations: Update the Ukrainian translation 4746 4747 po/uk.po | 813 ++++++++++++++++++++++++++++++++++++--------------------------- 4748 1 file changed, 460 insertions(+), 353 deletions(-) 4749 4750commit 81c352907b8048b97d9868947026701a49f377ef 4751Author: Lasse Collin <lasse.collin@tukaani.org> 4752Date: 2025-01-29 19:48:43 +0200 4753 4754 Translations: Update the Swedish translation 4755 4756 po/sv.po | 847 ++++++++++++++++++++++++++++++++++----------------------------- 4757 1 file changed, 462 insertions(+), 385 deletions(-) 4758 4759commit 999ce263718a52ba74245c3e2a416ab11494d1b1 4760Author: Lasse Collin <lasse.collin@tukaani.org> 4761Date: 2025-01-28 16:33:32 +0200 4762 4763 tuklib_physmem: Clean up disabled code 4764 4765 src/common/tuklib_physmem.c | 9 +-------- 4766 1 file changed, 1 insertion(+), 8 deletions(-) 4767 4768commit 4d7e7c9d94f7a5ad4931a5bbd6ed9d00173fa1ab 4769Author: Lasse Collin <lasse.collin@tukaani.org> 4770Date: 2025-01-28 16:28:18 +0200 4771 4772 Windows: Avoid an error message on broken pipe 4773 4774 Also make xz not process more input files after a broken pipe has 4775 been detected. This matches the behavior on POSIX. If all files 4776 are being written to standard output, trying with the next file is 4777 pointless when it's known that standard output won't accept more data. 4778 4779 xzdec already stopped after the first error. It does so with all 4780 errors, so it differs from xz: 4781 4782 $ xz -dc not_found_1 not_found_2 4783 xz: not_found_1: No such file or directory 4784 xz: not_found_2: No such file or directory 4785 4786 $ xzdec not_found_1 not_found_2 4787 xzdec: not_found_1: No such file or directory 4788 4789 Reported-by: Vincent Torri 4790 4791 src/xz/file_io.c | 13 +++++++++++++ 4792 src/xzdec/xzdec.c | 11 ++++++++++- 4793 2 files changed, 23 insertions(+), 1 deletion(-) 4794 4795commit 95b638480aa8203e547c709c651f421c22db1718 4796Author: Lasse Collin <lasse.collin@tukaani.org> 4797Date: 2025-01-23 19:59:17 +0200 4798 4799 doc/SHA256SUMS: Add 5.6.4 and 5.7.1alpha 4800 4801 doc/SHA256SUMS | 9 +++++++++ 4802 1 file changed, 9 insertions(+) 4803 4804commit cdae0df31e4c2dfb1e885941cd1998e5a2b6e39d 4805Author: Lasse Collin <lasse.collin@tukaani.org> 4806Date: 2025-01-23 11:50:42 +0200 4807 4808 Bump version and soname for 5.7.1alpha 4809 4810 src/liblzma/Makefile.am | 2 +- 4811 src/liblzma/api/lzma/version.h | 2 +- 4812 src/liblzma/liblzma_generic.map | 2 +- 4813 src/liblzma/liblzma_linux.map | 2 +- 4814 4 files changed, 4 insertions(+), 4 deletions(-) 4815 4816commit 4d2af2c43bae25ef4ef9cd88304471d4859aa322 4817Author: Lasse Collin <lasse.collin@tukaani.org> 4818Date: 2025-01-23 11:48:43 +0200 4819 4820 Translations: Run po4a/update-po 4821 4822 po4a/de.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 4823 po4a/fr.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 4824 po4a/ko.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 4825 po4a/pt_BR.po | 57 +++++++++++++++++++++++++++++++++++++++++++++++----- 4826 po4a/ro.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 4827 po4a/uk.po | 64 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 4828 6 files changed, 320 insertions(+), 50 deletions(-) 4829 4830commit ff0b825505e60e21b32e33c42f551c8f34ba393f 4831Author: Lasse Collin <lasse.collin@tukaani.org> 4832Date: 2025-01-23 11:40:46 +0200 4833 4834 Add NEWS for 5.7.1alpha 4835 4836 NEWS | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4837 1 file changed, 107 insertions(+) 4838 4839commit f6cd3e3bfc8d1f5a76dd55170968bf4582b95baf 4840Author: Lasse Collin <lasse.collin@tukaani.org> 4841Date: 2025-01-23 11:40:46 +0200 4842 4843 Add NEWS for 5.6.4 4844 4845 NEWS | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4846 1 file changed, 45 insertions(+) 4847 4848commit b3af3297e4d6cf0eafb48155aa97bb06c82a9228 4849Author: Lasse Collin <lasse.collin@tukaani.org> 4850Date: 2025-01-23 11:40:46 +0200 4851 4852 NEWS: The security fix in 5.6.3 is known as CVE-2024-47611 4853 4854 NEWS | 4 +++- 4855 1 file changed, 3 insertions(+), 1 deletion(-) 4856 4857commit a04b9dd0c7c74fabd8c393d2dc68a221276d6e29 4858Author: Lasse Collin <lasse.collin@tukaani.org> 4859Date: 2025-01-22 16:55:09 +0200 4860 4861 windows/build.bash: Fix error message 4862 4863 Fixes: 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 4864 4865 windows/build.bash | 2 +- 4866 1 file changed, 1 insertion(+), 1 deletion(-) 4867 4868commit 4eae859ae8ad7072eaa74aeaee79a2c3c12c55cb 4869Author: Lasse Collin <lasse.collin@tukaani.org> 4870Date: 2025-01-22 15:03:55 +0200 4871 4872 Windows: Disable MinGW-w64's stdio functions in size-optimized builds 4873 4874 This only affects builds with UCRT. With legacy MSVCRT, the replacement 4875 functions are always enabled. 4876 4877 Omitting the MinGW-w64 replacements saves over 20 KiB per executable. 4878 The downside is that --enable-small or XZ_SMALL=ON disables thousand 4879 separator support in xz messages. If someone is OK with the slower 4880 speed of slightly smaller builds, lack of thousand separators won't 4881 matter. 4882 4883 Don't override __USE_MINGW_ANSI_STDIO if it is already defined (via 4884 CPPFLAGS or such method). 4885 4886 src/common/sysdefs.h | 30 +++++++++++++++++++++--------- 4887 src/xz/util.c | 6 +++++- 4888 2 files changed, 26 insertions(+), 10 deletions(-) 4889 4890commit a831bc185bdd44c06847eae8df2d35cc281f65da 4891Author: Lasse Collin <lasse.collin@tukaani.org> 4892Date: 2025-01-20 16:44:27 +0200 4893 4894 liblzma: Add raw ARM64, RISC-V, and x86 BCJ filter APIs 4895 4896 Put them behind the LZMA_UNSTABLE macro for now. 4897 4898 These low-level special APIs might become useful in erofs-utils. 4899 4900 src/liblzma/api/lzma/bcj.h | 99 +++++++++++++++++++++++++++++++++++++++++ 4901 src/liblzma/common/common.h | 2 + 4902 src/liblzma/liblzma_generic.map | 10 +++++ 4903 src/liblzma/liblzma_linux.map | 10 +++++ 4904 src/liblzma/simple/arm64.c | 18 ++++++++ 4905 src/liblzma/simple/riscv.c | 18 ++++++++ 4906 src/liblzma/simple/x86.c | 24 ++++++++++ 4907 7 files changed, 181 insertions(+) 4908 4909commit 6f5cdd4534faf7db4b6c123651d6a606bc59b98c 4910Author: Lasse Collin <lasse.collin@tukaani.org> 4911Date: 2025-01-20 16:31:49 +0200 4912 4913 xz: Unify a few strings with liblzma 4914 4915 Avoid having both "%s: foo" and "foo" as translatable strings 4916 so that translators don't need to handle it twice. 4917 4918 src/xz/options.c | 11 ++++++----- 4919 src/xz/util.c | 4 ++-- 4920 2 files changed, 8 insertions(+), 7 deletions(-) 4921 4922commit 713fdaa8b06a83f18b06811aba7b9bd7b7cbf1cb 4923Author: Lasse Collin <lasse.collin@tukaani.org> 4924Date: 2025-01-20 16:31:49 +0200 4925 4926 xz: Translate error messages from lzma_str_to_filters() 4927 4928 liblzma doesn't use gettext but the messages are included in xz.pot, 4929 so xz can translate the messages. 4930 4931 src/xz/coder.c | 9 +++------ 4932 1 file changed, 3 insertions(+), 6 deletions(-) 4933 4934commit f2e2b267cab8d7aa0b0a58c325546ee5070c0028 4935Author: Lasse Collin <lasse.collin@tukaani.org> 4936Date: 2025-01-20 16:31:49 +0200 4937 4938 liblzma: Mark string conversion messages as translatable 4939 4940 po/POTFILES.in | 1 + 4941 src/liblzma/common/string_conversion.c | 96 ++++++++++++++++++++-------------- 4942 2 files changed, 59 insertions(+), 38 deletions(-) 4943 4944commit f49d7413d9a0d480ded6d448c1ef7475ae6cd1c9 4945Author: Lasse Collin <lasse.collin@tukaani.org> 4946Date: 2025-01-20 16:31:35 +0200 4947 4948 liblzma: Tweak a few error messages in lzma_str_to_filters() 4949 4950 src/liblzma/common/string_conversion.c | 9 +++++---- 4951 1 file changed, 5 insertions(+), 4 deletions(-) 4952 4953commit da359c360e986b21cd8d7b888c6a80f56b9d49c7 4954Author: Lasse Collin <lasse.collin@tukaani.org> 4955Date: 2025-01-19 20:11:54 +0200 4956 4957 Update THANKS 4958 4959 THANKS | 1 + 4960 1 file changed, 1 insertion(+) 4961 4962commit f032373561cefaf07f92ffe3fbc471ec6770456e 4963Author: Lasse Collin <lasse.collin@tukaani.org> 4964Date: 2025-01-19 19:40:32 +0200 4965 4966 Update THANKS 4967 4968 THANKS | 1 + 4969 1 file changed, 1 insertion(+) 4970 4971commit 51f038f8cbd5d8a95954c05bfcbbc32f2a313615 4972Author: Lasse Collin <lasse.collin@tukaani.org> 4973Date: 2025-01-13 08:44:58 +0200 4974 4975 liblzma: memcmplen.h: Use 8-byte method on 64-bit unaligned archs 4976 4977 Previously it was enabled only on x86-64 and ARM64 when also support 4978 for unaligned access was detected or manually enabled at built time. 4979 4980 In the default build configuration, the 8-byte method is now enabled 4981 also on 64-bit RISC-V and 64-bit PowerPC (both endiannesses). It was 4982 reported that on big endian POWER9, encoding time may reduce 12-13 %. 4983 4984 This change only affects builds with GCC and Clang because the code 4985 uses __builtin_ctzll or __builtin_clzll. 4986 4987 Thanks to Marcus Comstedt for testing on POWER9. 4988 4989 src/liblzma/common/memcmplen.h | 3 +-- 4990 1 file changed, 1 insertion(+), 2 deletions(-) 4991 4992commit 96336b0110d47756a9fd2a103fbf0a99e905fbed 4993Author: Lasse Collin <lasse.collin@tukaani.org> 4994Date: 2025-01-12 13:06:17 +0200 4995 4996 Update THANKS 4997 4998 THANKS | 1 + 4999 1 file changed, 1 insertion(+) 5000 5001commit 150356207c8d6a3e0af465b676430d19d62f884c 5002Author: Lasse Collin <lasse.collin@tukaani.org> 5003Date: 2025-01-12 12:59:20 +0200 5004 5005 liblzma: Fix the encoder breakage on big endian ARM64 5006 5007 When the 8-byte method was enabled for ARM64, a check for endianness 5008 wasn't added. This broke the LZMA/LZMA2 encoder. Test suite caught it. 5009 5010 Fixes: cd64dd70d5665b6048829c45772d08606f44672e 5011 Co-authored-by: Marcus Comstedt <marcus@mc.pp.se> 5012 5013 src/liblzma/common/memcmplen.h | 9 +++++++-- 5014 1 file changed, 7 insertions(+), 2 deletions(-) 5015 5016commit b01b0958025a2da284b53a583f313f8140636cb5 5017Author: Lasse Collin <lasse.collin@tukaani.org> 5018Date: 2025-01-12 11:04:27 +0200 5019 5020 Windows: Update manifest comments about long UTF-8 filenames 5021 5022 src/common/w32_application.manifest.comments.txt | 23 +++++++++++++++-------- 5023 1 file changed, 15 insertions(+), 8 deletions(-) 5024 5025commit 0dfc67d37ebb038be8a9b17b536d1b561d52e81a 5026Author: Lasse Collin <lasse.collin@tukaani.org> 5027Date: 2025-01-12 10:47:58 +0200 5028 5029 Windows: Update build.bash and its README-Windows.txt to UCRT 5030 5031 While MSVCRT builds are possible, UCRT works better with UTF-8. 5032 A 32-bit build is included still but hopefully it's not actually 5033 needed anymore. 5034 5035 windows/README-Windows.txt | 17 ++++++++--------- 5036 windows/build.bash | 20 ++++++++++++++------ 5037 2 files changed, 22 insertions(+), 15 deletions(-) 5038 5039commit 7b3eb2db6c4ba24b5eb438e58ab1ca57e14e59c2 5040Author: Lasse Collin <lasse.collin@tukaani.org> 5041Date: 2025-01-10 13:11:40 +0200 5042 5043 Translations: Update Serbian translation 5044 5045 I rewrapped a few overlong lines. Those edits aren't in the 5046 Translation Project. Automatic wrapping in the master branch 5047 means that these strings need to be updated soon anyway. 5048 5049 po/sr.po | 346 ++++++++++++++++++++++----------------------------------------- 5050 1 file changed, 121 insertions(+), 225 deletions(-) 5051 5052commit 950da11ce09c90412dcbca29689575037640667a 5053Author: Lasse Collin <lasse.collin@tukaani.org> 5054Date: 2025-01-08 19:26:29 +0200 5055 5056 Build: Use --sort=name in TAR_OPTIONS 5057 5058 Use also LC_COLLATE=C to make the sorting locale-independent. 5059 Sorting makes the file order reproducible. 5060 5061 Makefile.am | 3 ++- 5062 1 file changed, 2 insertions(+), 1 deletion(-) 5063 5064commit 75d91d6b39ea3e2fae8f027dcec01be2dca9594d 5065Author: Lasse Collin <lasse.collin@tukaani.org> 5066Date: 2025-01-08 19:08:08 +0200 5067 5068 xz: Workaround broken O_SEARCH in musl 5069 5070 Testing with musl 1.2.5 and Linux 6.12, O_SEARCH doesn't result 5071 in a file descriptor that works with fsync() although it should work. 5072 See the added comment. 5073 5074 The same issue affected gzip --synchronous: 5075 5076 https://bugs.gnu.org/75405 5077 5078 Thanks to Paul Eggert. 5079 5080 src/xz/file_io.c | 11 +++++++++++ 5081 1 file changed, 11 insertions(+) 5082 5083commit ea92eae122a3ccefa61087f84fd99b417fc9ee3c 5084Author: Lasse Collin <lasse.collin@tukaani.org> 5085Date: 2025-01-07 21:34:33 +0200 5086 5087 Revert "xz: O_SEARCH cannot be used for fsync()" 5088 5089 This reverts commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f. 5090 5091 POSIX-conforming O_SEARCH should allow fsync(). 5092 5093 src/xz/file_io.c | 21 +++++++++++---------- 5094 1 file changed, 11 insertions(+), 10 deletions(-) 5095 5096commit 4014e2479c7b0273f15bd0c9c017c5fe859b0d8f 5097Author: Lasse Collin <lasse.collin@tukaani.org> 5098Date: 2025-01-05 21:43:11 +0200 5099 5100 xz: O_SEARCH cannot be used for fsync() 5101 5102 Opening a directory with O_SEARCH results in a file descriptor that can 5103 be used with functions like openat(). Such a file descriptor cannot be 5104 used with fsync(). Use O_RDONLY instead. 5105 5106 In musl, O_SEARCH becomes Linux-specific O_PATH. A file descriptor 5107 from O_PATH doesn't allow fsync(). 5108 5109 Seems that it's not possible to fsync() a directory that has write 5110 and search permissions but not read permission. 5111 5112 Fixes: 2a9e91d796d091740489d951fa7780525e4275f1 5113 5114 src/xz/file_io.c | 21 ++++++++++----------- 5115 1 file changed, 10 insertions(+), 11 deletions(-) 5116 5117commit ad2b57cb477b753293c25a01fc24c7f84ee523c2 5118Author: Lasse Collin <lasse.collin@tukaani.org> 5119Date: 2025-01-05 20:48:28 +0200 5120 5121 CI: Make ctest show errors from failed tests 5122 5123 build-aux/ci_build.bash | 2 +- 5124 1 file changed, 1 insertion(+), 1 deletion(-) 5125 5126commit c405264c031aceaf68dfd1546d6337afcebd48e5 5127Author: Lasse Collin <lasse.collin@tukaani.org> 5128Date: 2025-01-05 20:14:49 +0200 5129 5130 tuklib_mbstr_nonprint: Preserve the value of errno 5131 5132 A typical use case is like this: 5133 5134 printf("%s: %s\n", tuklib_mask_nonprint(filename), strerror(errno)); 5135 5136 tuklib_mask_nonprint() may call mbrtowc() and malloc() which may modify 5137 errno. If errno isn't preserved, the error message might be wrong if 5138 a compiler decides to call tuklib_mask_nonprint() before strerror(). 5139 5140 Fixes: 40e573305535960574404d2eae848b248c95ea7e 5141 5142 src/common/tuklib_mbstr_nonprint.c | 17 ++++++++++++++--- 5143 src/common/tuklib_mbstr_nonprint.h | 4 +++- 5144 2 files changed, 17 insertions(+), 4 deletions(-) 5145 5146commit 2a9e91d796d091740489d951fa7780525e4275f1 5147Author: Lasse Collin <lasse.collin@tukaani.org> 5148Date: 2025-01-05 20:14:49 +0200 5149 5150 xz: Use fsync() before deleting the input file, and add --no-sync 5151 5152 xz's default behavior is to delete the input file after successful 5153 compression or decompression (unless writing to standard output). 5154 If the system crashes soon after the deletion, it is possible that 5155 the newly written file has not yet hit the disk while the previous 5156 delete operation might have. In that case neither the original file 5157 nor the written file is available. 5158 5159 Call fsync() on the file. On POSIX systems, sync also the directory 5160 where the file was created. 5161 5162 Add a new option --no-sync which disables fsync() usage. It can avoid 5163 a (possibly significant) performance penalty when processing many 5164 small files. It's fine to use --no-sync when one knows that the files 5165 are easy to recreate or restore after a system crash. 5166 5167 Using fsync() after every flush initiated by --flush-timeout was 5168 considered. It wasn't implemented at least for now. 5169 5170 - --flush-timeout is typically used when writing to stdout. If stdout 5171 is a file, xz cannot (portably) sync the directory of the file. 5172 One would need to create the output file first, sync the directory, 5173 and then run xz with fsync() enabled. 5174 5175 - If xz --flush-timeout output goes to a file, it's possible to use 5176 a separate script to sync the file, for example, once per minute 5177 while telling xz to flush more frequently. 5178 5179 - Not supporting syncing with --flush-timeout was simpler. 5180 5181 Portability notes: 5182 5183 - On systems that lack O_SEARCH (like Linux), "xz dir/file" will now 5184 fail if "dir" cannot be opened for reading. If "dir" still has 5185 write and search permissions (like d-wx------ in "ls -l"), 5186 previously xz would have been able to compress "dir/file" still. 5187 Now it only works if using --no-sync (or --keep or --stdout). 5188 5189 - <libgen.h> and dirname() should be available on all POSIX systems, 5190 and aren't needed on non-POSIX systems. 5191 5192 - fsync() is available on all POSIX systems. The directory syncing 5193 could be changed to fdatasync() although at least on ext4 it 5194 doesn't seem to make a performance difference in xz's usage. 5195 fdatasync() would need a build system check to support (old) 5196 special cases, for example, MINIX 3.3.0 doesn't have fdatasync() 5197 and Solaris 10 needs -lrt. 5198 5199 - On native Windows, _commit() is used to replace fsync(). Directory 5200 syncing isn't done and shouldn't be needed. (In Cygwin, fsync() on 5201 directories is a no-op.) 5202 5203 - DJGPP has fsync() for files. ;-) 5204 5205 Using fsync() was considered somewhere around 2009 and again in 2016 but 5206 those times the idea was rejected. For comparison, GNU gzip 1.7 (2016) 5207 added the option --synchronous which enables fsync(). 5208 5209 Co-authored-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 5210 Fixes: https://bugs.debian.org/814089 5211 Link: https://www.mail-archive.com/xz-devel@tukaani.org/msg00282.html 5212 Closes: https://github.com/tukaani-project/xz/pull/151 5213 5214 src/xz/args.c | 14 ++++++ 5215 src/xz/args.h | 2 +- 5216 src/xz/file_io.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 5217 src/xz/file_io.h | 6 +++ 5218 src/xz/message.c | 3 ++ 5219 src/xz/sandbox.c | 5 ++- 5220 src/xz/xz.1 | 24 ++++++++++- 5221 7 files changed, 177 insertions(+), 6 deletions(-) 5222 5223commit 2e28c7145747b3287283f13c9d2becd73a7c4a1f 5224Author: Lasse Collin <lasse.collin@tukaani.org> 5225Date: 2024-12-27 09:15:50 +0200 5226 5227 xz: Use "goto" for error handling in io_open_dest_real() 5228 5229 src/xz/file_io.c | 20 +++++++++----------- 5230 1 file changed, 9 insertions(+), 11 deletions(-) 5231 5232commit 75107217670a97b7b772833669d88c3c2f188e37 5233Author: Lasse Collin <lasse.collin@tukaani.org> 5234Date: 2025-01-05 12:10:05 +0200 5235 5236 liblzma: Always validate the first digit of a preset string 5237 5238 lzma_str_to_filters() may call parse_lzma12_preset() in two ways. The 5239 call from str_to_filters() detects the string type from the first 5240 character(s) and as a side-effect it validates the first digit of 5241 the preset string. So this change makes no difference there. 5242 5243 However, the call from parse_options() doesn't pre-validate the string. 5244 parse_lzma12_preset() will return an invalid value which is passed to 5245 lzma_lzma_preset() which safely rejects it. The bug still affects the 5246 the error message: 5247 5248 $ xz --filters=lzma2:preset=X 5249 xz: Error in --filters=FILTERS option: 5250 xz: lzma2:preset=X 5251 xz: ^ 5252 xz: Unsupported preset 5253 5254 After the fix: 5255 5256 $ xz --filters=lzma2:preset=X 5257 xz: Error in --filters=FILTERS option: 5258 xz: lzma2:preset=X 5259 xz: ^ 5260 xz: Unsupported preset 5261 5262 The ^ now correctly points to the X and not past it because the X itself 5263 is the problematic character. 5264 5265 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 5266 5267 src/liblzma/common/string_conversion.c | 4 ++++ 5268 1 file changed, 4 insertions(+) 5269 5270commit 52ff32433734d03befd85a5bf00fba77d6501455 5271Author: Lasse Collin <lasse.collin@tukaani.org> 5272Date: 2025-01-05 11:40:34 +0200 5273 5274 xz: Fix getopt_long argument type in --filters* 5275 5276 Forgetting the argument (or not using = to separate the option from 5277 the argument) resulted in lzma_str_to_filters() being called with NULL 5278 as input string argument. The function handles it fine but xz passes 5279 the NULL to printf() too: 5280 5281 $ xz --filters 5282 xz: Error in --filters=FILTERS option: 5283 xz: (null) 5284 xz: ^ 5285 xz: Unexpected NULL pointer argument(s) to lzma_str_to_filters() 5286 5287 Now it's correct: 5288 5289 $ xz --filters 5290 xz: option '--filters' requires an argument 5291 5292 The --filters-help option doesn't take any arguments. 5293 5294 Fixes: 9ded880a0221f4d1256845fc4ab957ffd377c760 5295 Fixes: d6af7f347077b22403133239592e478931307759 5296 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 5297 5298 src/xz/args.c | 22 +++++++++++----------- 5299 1 file changed, 11 insertions(+), 11 deletions(-) 5300 5301commit 2655c81b5e92278b0fd51f6537c1116f8349b02a 5302Author: Lasse Collin <lasse.collin@tukaani.org> 5303Date: 2025-01-04 20:04:56 +0200 5304 5305 xzdec: Don't leave Landlock file descriptor open for no reason 5306 5307 This fix is similar to 48ff3f06521ca326996ab9a04d1b342098960427. 5308 5309 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 5310 5311 src/xzdec/xzdec.c | 2 ++ 5312 1 file changed, 2 insertions(+) 5313 5314commit 35df4c2bc0500e60ba9d0d163d37a6d110d6841e 5315Author: Lasse Collin <lasse.collin@tukaani.org> 5316Date: 2025-01-04 20:02:18 +0200 5317 5318 xz: Make --single-stream imply --keep 5319 5320 Suggested by xx on #tukaani on 2024-04-12. 5321 5322 src/xz/args.c | 3 +++ 5323 src/xz/xz.1 | 9 ++++++++- 5324 2 files changed, 11 insertions(+), 1 deletion(-) 5325 5326commit 6f412814a8019700248229ce972530159a0d9872 5327Author: Lasse Collin <lasse.collin@tukaani.org> 5328Date: 2025-01-04 19:57:07 +0200 5329 5330 Update AUTHORS 5331 5332 The contributions have been rewritten. 5333 5334 AUTHORS | 2 +- 5335 src/liblzma/check/crc32_arm64.h | 1 - 5336 src/liblzma/check/crc32_fast.c | 1 - 5337 src/liblzma/check/crc_common.h | 1 - 5338 4 files changed, 1 insertion(+), 4 deletions(-) 5339 5340commit 5651d153031a7ee2581cdba9bff658031826cb50 5341Author: Lasse Collin <lasse.collin@tukaani.org> 5342Date: 2025-01-04 15:02:16 +0200 5343 5344 xz: Avoid printf formats like %2$s 5345 5346 It's a POSIX feature that isn't in standard C. It's not available on 5347 Windows. Even MinGW-w64 with __USE_MINGW_ANSI_STDIO doesn't support 5348 it even though it supports POSIX %'d for thousand separators. 5349 5350 Gettext's <libintl.h> provides overrides for printf and other functions 5351 which do support the %2$s formats. Translations use them. But xz should 5352 work on Windows without <libintl.h> too. 5353 5354 Fixes: 3e9177fd206d20d6d8acc7d203c25a9ae0549229 5355 5356 src/xz/message.c | 51 ++++++++++++++++++++++++++++++++------------------- 5357 1 file changed, 32 insertions(+), 19 deletions(-) 5358 5359commit 63b246c90e7677c617faab1d3f6fc5c643b5e7cf 5360Author: Lasse Collin <lasse.collin@tukaani.org> 5361Date: 2025-01-04 14:41:37 +0200 5362 5363 tuklib_mbstr_wrap: Add printf format attribute 5364 5365 It's supported by GCC 3.x already. 5366 5367 src/common/tuklib_common.h | 7 +++++++ 5368 src/common/tuklib_mbstr_wrap.h | 1 + 5369 2 files changed, 8 insertions(+) 5370 5371commit a7313c01d9b8db71ffb61dc1dd7c4ea928824b4b 5372Author: Lasse Collin <lasse.collin@tukaani.org> 5373Date: 2025-01-04 13:44:12 +0200 5374 5375 xz: Translate a Windows-specific string 5376 5377 Originally I thought that native Windows builds wouldn't be translated 5378 but nowadays at least MSYS2 ships such binaries. 5379 5380 src/xz/file_io.c | 2 +- 5381 1 file changed, 1 insertion(+), 1 deletion(-) 5382 5383commit 00eb6073c088be9e7516dfc00a13ef520827b57c 5384Author: Lasse Collin <lasse.collin@tukaani.org> 5385Date: 2025-01-02 15:32:10 +0200 5386 5387 xz: Use my_landlock.h 5388 5389 A slightly silly thing is that xz may now query the ABI version up to 5390 three times. We could call my_landlock_ruleset_attr_forbid_all() only 5391 once and cache the result but it didn't seem worth doing. 5392 5393 CMakeLists.txt | 1 + 5394 src/xz/sandbox.c | 72 ++++++++++---------------------------------------------- 5395 2 files changed, 13 insertions(+), 60 deletions(-) 5396 5397commit 0fc5a625d7cc4ad51fde9367de088b9ad3bd40f6 5398Author: Lasse Collin <lasse.collin@tukaani.org> 5399Date: 2025-01-02 15:32:10 +0200 5400 5401 xzdec: Use my_landlock.h 5402 5403 CMakeLists.txt | 1 + 5404 src/xzdec/xzdec.c | 34 ++++++---------------------------- 5405 2 files changed, 7 insertions(+), 28 deletions(-) 5406 5407commit 38cb8ec9fd70d25fca6b473de44cf61586238552 5408Author: Lasse Collin <lasse.collin@tukaani.org> 5409Date: 2025-01-02 15:32:10 +0200 5410 5411 Add my_landlock.h with helper functions to use Linux Landlock 5412 5413 This supports up to Landlock ABI version 6. The current code in 5414 xz and xzdec only support up to ABI version 4. 5415 5416 src/Makefile.am | 1 + 5417 src/common/my_landlock.h | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 5418 2 files changed, 142 insertions(+) 5419 5420commit 672da29bb3a209a727ae46c0df948d7eea69f2e2 5421Author: Lasse Collin <lasse.collin@tukaani.org> 5422Date: 2025-01-01 18:46:50 +0200 5423 5424 liblzma: Silence warnings from "clang -Wimplicit-fallthrough" 5425 5426 src/liblzma/lzma/lzma_decoder.c | 2 +- 5427 1 file changed, 1 insertion(+), 1 deletion(-) 5428 5429commit 1a8a1ad9a1e3179ce267baa551fb17b30624b4dd 5430Author: Lasse Collin <lasse.collin@tukaani.org> 5431Date: 2025-01-01 15:34:51 +0200 5432 5433 Build: Use -Wimplicit-fallthrough=5 when supported 5434 5435 Now that we have the FALLTHROUGH macro, use the strictest mode with 5436 GCC so that comment-based fallthrough markings are no longer accepted. 5437 5438 In GCC, -Wextra includes -Wimplicit-fallthrough=3 and 5439 -Wimplicit-fallthrough is the same as -Wimplicit-fallthrough=3. 5440 Thus, the strict mode requires specifying -Wimplicit-fallthrough=5. 5441 5442 Clang has -Wimplicit-fallthrough which is *not* enabled by -Wextra. 5443 Clang doesn't have a variant that takes an argument. Thus we need 5444 to check for -Wimplicit-fallthrough. Do it before checking for 5445 -Wimplicit-fallthrough=5 so that the latter overrides the former 5446 when using GCC. 5447 5448 CMakeLists.txt | 2 ++ 5449 configure.ac | 2 ++ 5450 2 files changed, 4 insertions(+) 5451 5452commit 94adc996e45cc5cad9352cc3271d3a1a2f5c4c22 5453Author: Lasse Collin <lasse.collin@tukaani.org> 5454Date: 2025-01-01 15:30:50 +0200 5455 5456 Replace "Fall through" comments with FALLTHROUGH 5457 5458 src/liblzma/common/alone_decoder.c | 3 +-- 5459 src/liblzma/common/auto_decoder.c | 5 ++--- 5460 src/liblzma/common/block_decoder.c | 6 ++---- 5461 src/liblzma/common/block_encoder.c | 6 ++---- 5462 src/liblzma/common/common.c | 2 +- 5463 src/liblzma/common/file_info.c | 22 +++++++++------------- 5464 src/liblzma/common/index_decoder.c | 9 +++------ 5465 src/liblzma/common/index_encoder.c | 6 ++---- 5466 src/liblzma/common/index_hash.c | 7 +++---- 5467 src/liblzma/common/lzip_decoder.c | 14 +++++--------- 5468 src/liblzma/common/stream_decoder.c | 16 ++++++---------- 5469 src/liblzma/common/stream_decoder_mt.c | 25 +++++++++---------------- 5470 src/liblzma/common/stream_encoder_mt.c | 10 ++++------ 5471 src/liblzma/lzma/lzma2_encoder.c | 9 +++------ 5472 src/xz/args.c | 2 +- 5473 src/xz/list.c | 3 +-- 5474 16 files changed, 54 insertions(+), 91 deletions(-) 5475 5476commit f31c3a6647b5a5d056324a9c83e6b2c940ebec22 5477Author: Lasse Collin <lasse.collin@tukaani.org> 5478Date: 2025-01-01 15:08:51 +0200 5479 5480 sysdefs.h: Add FALLTHROUGH macro 5481 5482 src/common/sysdefs.h | 9 +++++++++ 5483 1 file changed, 9 insertions(+) 5484 5485commit e34dbd6a0ae7a560a5508d51fc0bd142c5a320dc 5486Author: Lasse Collin <lasse.collin@tukaani.org> 5487Date: 2025-01-01 15:06:15 +0200 5488 5489 xzdec: Fix language in a comment 5490 5491 src/xzdec/xzdec.c | 2 +- 5492 1 file changed, 1 insertion(+), 1 deletion(-) 5493 5494commit 16821252c504071f5c2012e415e59cbf5fb79820 5495Author: Lasse Collin <lasse.collin@tukaani.org> 5496Date: 2025-01-02 13:35:48 +0200 5497 5498 Windows: Make NLS require UCRT and gettext-runtime >= 0.23.1 5499 5500 Also remove the recently-added workaround from tuklib_gettext.h. 5501 Requiring a new enough gettext-runtime is cleaner. I guess it's 5502 mostly MSYS2 where xz is built with translation support, so once 5503 MSYS2 has Gettext >= 0.23.1, this requirement shouldn't be a problem 5504 in practice. 5505 5506 CMakeLists.txt | 29 ++++++++++++++++++++++++++ 5507 configure.ac | 29 ++++++++++++++++++++++++++ 5508 src/common/tuklib_gettext.h | 51 --------------------------------------------- 5509 3 files changed, 58 insertions(+), 51 deletions(-) 5510 5511commit aa1807ed942579f700a08ab091b796cf04e31aec 5512Author: Lasse Collin <lasse.collin@tukaani.org> 5513Date: 2025-01-02 11:52:17 +0200 5514 5515 windows/build-with-cmake.bat: Fix ENABLE_NLS to XZ_NLS 5516 5517 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 5518 5519 windows/build-with-cmake.bat | 2 +- 5520 1 file changed, 1 insertion(+), 1 deletion(-) 5521 5522commit ea21c76aa2406ba06ac154fe57741734c04f260f 5523Author: Lasse Collin <lasse.collin@tukaani.org> 5524Date: 2024-12-30 11:21:57 +0200 5525 5526 Build: Use git log --pretty=medium when creating ChangeLog 5527 5528 It's the default in git-log. Specifying it explicitly is good in case 5529 a user has set format.pretty to a different value. 5530 5531 Makefile.am | 4 ++-- 5532 1 file changed, 2 insertions(+), 2 deletions(-) 5533 5534commit 08050c0788ce5bac0ffd572e9784a2749c4a13df 5535Author: Lasse Collin <lasse.collin@tukaani.org> 5536Date: 2024-12-30 10:51:33 +0200 5537 5538 Windows: Update MinGW-w64 + CMake instructions to recommend UCRT 5539 5540 windows/INSTALL-MinGW-w64_with_CMake.txt | 38 +++++++++++++++++++------------- 5541 1 file changed, 23 insertions(+), 15 deletions(-) 5542 5543commit 653732bd6f06d8f465bf353bf6e1c16f1405b906 5544Author: Lasse Collin <lasse.collin@tukaani.org> 5545Date: 2024-12-30 10:51:26 +0200 5546 5547 xz man page: Describe the source file deletion in -z and -d options 5548 5549 The DESCRIPTION section always explained it, and the OPTIONS section 5550 only described the differences to the default behavior. However, new 5551 users in a hurry may skip reading DESCRIPTION. The default behavior 5552 is a bit dangerous, thus it's good to repeat in --compress and 5553 --decompress docs that source file is removed after successful operation. 5554 5555 Fixes: https://github.com/tukaani-project/xz/issues/150 5556 5557 src/xz/xz.1 | 17 ++++++++++++++++- 5558 1 file changed, 16 insertions(+), 1 deletion(-) 5559 5560commit bb79f79b278fd4fb06a0bcd5ab3445c468f9baaf 5561Author: Lasse Collin <lasse.collin@tukaani.org> 5562Date: 2024-12-27 21:52:28 +0200 5563 5564 Build: Set libtool -version-info so that it matches with CMake 5565 5566 In the past, they haven't been in sync in development versions 5567 although they (of course) have been in stable releases. 5568 5569 src/liblzma/Makefile.am | 2 +- 5570 1 file changed, 1 insertion(+), 1 deletion(-) 5571 5572commit cf54f70e14c218faf5019ffa2fa769ed73772ee8 5573Author: Lasse Collin <lasse.collin@tukaani.org> 5574Date: 2024-12-28 18:28:56 +0200 5575 5576 CMake/macOS: Use GNU Libtool compatible shared library versioning 5577 5578 Because this increases the Mach-O compatibility_version, this commit 5579 shouldn't cause any ABI compatibility trouble for existing CMake users 5580 on macOS. This is assuming that they won't later downgrade to an older 5581 liblzma version that was built with CMake before this commit. 5582 5583 Meson allows customising the Mach-O versioning too. So the three 5584 build systems can be configured to be compatible. 5585 5586 CMakeLists.txt | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 5587 1 file changed, 48 insertions(+), 3 deletions(-) 5588 5589commit 94e17916689d38bc09bf35e602ed6f6276034b59 5590Author: Lasse Collin <lasse.collin@tukaani.org> 5591Date: 2024-12-28 14:49:45 +0200 5592 5593 CMake: Edit a comment 5594 5595 CMakeLists.txt | 2 +- 5596 1 file changed, 1 insertion(+), 1 deletion(-) 5597 5598commit 6b50590725aeae8a2aed06faa3238cb9f8771c1b 5599Author: Lasse Collin <lasse.collin@tukaani.org> 5600Date: 2024-12-28 20:39:49 +0200 5601 5602 version.sh: Omit an unwanted dot from development versions 5603 5604 It printed 5.7.0.alpha instead of 5.7.0alpha. 5605 5606 Fixes: e7a42cda7c827e016619e8cab15e2faf5d4181ae 5607 5608 build-aux/version.sh | 2 +- 5609 1 file changed, 1 insertion(+), 1 deletion(-) 5610 5611commit f7a248f56e94310a080051c4a709c08514fa48b1 5612Author: Lasse Collin <lasse.collin@tukaani.org> 5613Date: 2024-12-27 16:25:07 +0200 5614 5615 CMake: Remove a duplicate word from a comment 5616 5617 CMakeLists.txt | 4 ++-- 5618 1 file changed, 2 insertions(+), 2 deletions(-) 5619 5620commit 8b7c55d148f4a9b3702207164e862437ddffad33 5621Author: Lasse Collin <lasse.collin@tukaani.org> 5622Date: 2024-12-27 16:23:12 +0200 5623 5624 INSTALL: Document CMAKE_DLL_NAME_WITH_SOVERSION 5625 5626 INSTALL | 19 +++++++++++++++++++ 5627 1 file changed, 19 insertions(+) 5628 5629commit 260d5d36203955a7148ae1ab05d0931c942028d5 5630Author: Lasse Collin <lasse.collin@tukaani.org> 5631Date: 2024-12-26 21:27:18 +0200 5632 5633 xz: Fix comments 5634 5635 src/xz/file_io.c | 4 ++-- 5636 src/xz/file_io.h | 4 ++-- 5637 2 files changed, 4 insertions(+), 4 deletions(-) 5638 5639commit bf6da9a573a780cd1a7fb1728ef55d09e58dad11 5640Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 5641Date: 2024-12-22 13:44:03 +0100 5642 5643 CMake: Disable unity builds project-wide 5644 5645 liblzma and xz can't be compiled as a unity/jumbo build because of 5646 redeclarations and type name reuse. The CMake documentation recommends 5647 setting UNITY_BUILD to false in this case. 5648 5649 This is especially important if we're compiled as a subproject and the 5650 consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code 5651 base. 5652 5653 Closes: https://github.com/tukaani-project/xz/pull/158 5654 5655 CMakeLists.txt | 6 ++++++ 5656 1 file changed, 6 insertions(+) 5657 5658commit f8c328eed1bf0a0168132025a52116b7735f894c 5659Author: Lasse Collin <lasse.collin@tukaani.org> 5660Date: 2024-12-20 08:51:18 +0200 5661 5662 Windows: Workaround a UTF-8 issue in Gettext's libintl_setlocale() 5663 5664 See the comment. In this package, locale is set at program startup and 5665 not changed later, so the point (2) in the comment isn't a problem. 5666 5667 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 5668 5669 src/common/tuklib_gettext.h | 51 +++++++++++++++++++++++++++++++++++++++++++++ 5670 1 file changed, 51 insertions(+) 5671 5672commit 03533906093529701ba91081907d8977991997de 5673Author: Lasse Collin <lasse.collin@tukaani.org> 5674Date: 2024-12-20 06:50:36 +0200 5675 5676 Revert "Windows: Use UTF-8 locale when active code page is UTF-8" 5677 5678 This reverts commit 0d0b574cc45045d6150d397776340c068df59e2a. 5679 5680 src/common/tuklib_gettext.h | 32 ++------------------------------ 5681 1 file changed, 2 insertions(+), 30 deletions(-) 5682 5683commit 4b319e05afef4eab2fbafb6223f25d128ec99fce 5684Author: Lasse Collin <lasse.collin@tukaani.org> 5685Date: 2024-12-19 18:31:09 +0200 5686 5687 xzdec: Use setlocale() instead of tuklib_gettext_setlocale() 5688 5689 xzdec isn't translated and doesn't need libintl on Windows even 5690 when NLS is enabled, thus libintl_setlocale() cannot interfere 5691 with the locale settings. Thus, standard setlocale() works perfectly. 5692 5693 In the commit 78868b6e, the explanation in the commit message is wrong. 5694 5695 Fixes: 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 5696 5697 src/xzdec/xzdec.c | 9 +++------ 5698 1 file changed, 3 insertions(+), 6 deletions(-) 5699 5700commit 34b80e282ea76ec793eaedaef58a36c3913dec78 5701Author: Lasse Collin <lasse.collin@tukaani.org> 5702Date: 2024-12-19 19:36:15 +0200 5703 5704 Windows: Revert the setlocale(LC_ALL, ".UTF8") documentation 5705 5706 Only leave the FindFileFirstA() notes from 20dfca81, reverting 5707 the incorrect setlocale() notes. On Windows, Gettext's <libintl.h> 5708 overrides setlocale() with libintl_setlocale() wrapper. I hadn't 5709 noticed this, and thus my conclusions were wrong. 5710 5711 Fixes: 20dfca8171dad4c64785ac61d5b68972c444877b 5712 5713 src/common/w32_application.manifest.comments.txt | 21 +-------------------- 5714 1 file changed, 1 insertion(+), 20 deletions(-) 5715 5716commit 5794cda064ce980450eaa5a4e2c71bd317168ce4 5717Author: Lasse Collin <lasse.collin@tukaani.org> 5718Date: 2024-12-18 17:49:05 +0200 5719 5720 tuklib_mbstr_wrap: Silence a warning from Clang 5721 5722 Fixes: ca529c3f41a4a19a59e2e252e6dd9255f130c634 5723 5724 src/common/tuklib_mbstr_wrap.c | 9 +++++++++ 5725 1 file changed, 9 insertions(+) 5726 5727commit 16c9796ef970ae349c54fef9a346e394d7cc4c75 5728Author: Lasse Collin <lasse.collin@tukaani.org> 5729Date: 2024-12-18 14:00:09 +0200 5730 5731 Update THANKS 5732 5733 THANKS | 2 ++ 5734 1 file changed, 2 insertions(+) 5735 5736commit 3b5c8a1fcab385eed9cc95684223fddd7cf5a053 5737Author: Lasse Collin <lasse.collin@tukaani.org> 5738Date: 2024-12-18 14:00:09 +0200 5739 5740 Update TODO 5741 5742 Fixes: 5f6dddc6c911df02ba660564e78e6de80947c947 5743 5744 TODO | 3 --- 5745 1 file changed, 3 deletions(-) 5746 5747commit 22a35e64ce3d331b668f15f858a7bb3da3acc78e 5748Author: Lasse Collin <lasse.collin@tukaani.org> 5749Date: 2024-12-18 14:00:09 +0200 5750 5751 lzmainfo: Use tuklib_mbstr_nonprint 5752 5753 CMakeLists.txt | 3 +++ 5754 src/lzmainfo/Makefile.am | 1 + 5755 src/lzmainfo/lzmainfo.c | 16 ++++++++++------ 5756 3 files changed, 14 insertions(+), 6 deletions(-) 5757 5758commit 03111595ee713e0f94fb4f4a19a15594d5149347 5759Author: Lasse Collin <lasse.collin@tukaani.org> 5760Date: 2024-12-18 14:00:09 +0200 5761 5762 xzdec: Use tuklib_mbstr_nonprint 5763 5764 CMakeLists.txt | 3 +++ 5765 src/xzdec/Makefile.am | 2 ++ 5766 src/xzdec/xzdec.c | 15 +++++++++++---- 5767 3 files changed, 16 insertions(+), 4 deletions(-) 5768 5769commit d22f96921fd2f94d842f3cc2e5f729cb3cca5122 5770Author: Lasse Collin <lasse.collin@tukaani.org> 5771Date: 2024-12-18 14:00:09 +0200 5772 5773 xz: Use tuklib_mbstr_nonprint 5774 5775 Call tuklib_mask_nonprint() on filenames and also on a few other 5776 strings from the command line too. 5777 5778 The filename printed by "xz --robot --list" (in list.c) is also masked. 5779 It's good to get rid of tabs and newlines which would desync the output 5780 but masking other chars wouldn't be strictly necessary. It might matter 5781 with sensible filenames if LC_CTYPE is "C" (when iswprint() might reject 5782 non-ASCII chars) and a script wants to read a filename from xz's output. 5783 Hopefully it's an unusual enough corner case to not be a real problem. 5784 5785 CMakeLists.txt | 2 ++ 5786 src/xz/Makefile.am | 1 + 5787 src/xz/coder.c | 19 ++++++++----- 5788 src/xz/file_io.c | 81 ++++++++++++++++++++++++++++++++++-------------------- 5789 src/xz/list.c | 32 +++++++++++++-------- 5790 src/xz/main.c | 10 +++++-- 5791 src/xz/message.c | 8 ++++-- 5792 src/xz/options.c | 10 ++++--- 5793 src/xz/private.h | 1 + 5794 src/xz/suffix.c | 12 ++++---- 5795 10 files changed, 113 insertions(+), 63 deletions(-) 5796 5797commit 40e573305535960574404d2eae848b248c95ea7e 5798Author: Lasse Collin <lasse.collin@tukaani.org> 5799Date: 2024-12-18 14:00:09 +0200 5800 5801 Add tuklib_mbstr_nonprint to mask non-printable characters 5802 5803 Malicious filenames or other untrusted strings may affect the state of 5804 the terminal when such strings are printed as part of (error) messages. 5805 Add functions that mask such characters. 5806 5807 It's not enough to handle only single-byte control characters. 5808 In multibyte locales, some control characters are multibyte too, for 5809 example, terminals interpret C1 control characters (U+0080 to U+009F) 5810 that are two bytes as UTF-8. 5811 5812 Instead of checking for control characters with iswcntrl(), this 5813 uses iswprint() to detect printable characters. This is much stricter. 5814 On Windows it's actually too strict as it rejects some characters that 5815 definitely are printable. 5816 5817 Gnulib's quotearg would do a lot more but I hope this simpler method 5818 is good enough here. 5819 5820 Thanks to Ryan Colyer for the discussion about the problems of 5821 the earlier single-byte-only method. 5822 5823 Thanks to Christian Weisgerber for reporting a bug in an earlier 5824 version of this code. 5825 5826 Thanks to Jeroen Roovers for a typo fix. 5827 5828 Closes: https://github.com/tukaani-project/xz/pull/118 5829 5830 src/Makefile.am | 2 + 5831 src/common/tuklib_mbstr_nonprint.c | 151 +++++++++++++++++++++++++++++++++++++ 5832 src/common/tuklib_mbstr_nonprint.h | 69 +++++++++++++++++ 5833 3 files changed, 222 insertions(+) 5834 5835commit 36190c8c4bb13d1eab84a30f3650a5ec5ff0e402 5836Author: Lasse Collin <lasse.collin@tukaani.org> 5837Date: 2024-12-18 11:33:09 +0200 5838 5839 Translations: Add preliminary Georgian translation 5840 5841 Most of the auto-wrapped strings are translated already. A few 5842 strings have changed since this was created though. This file 5843 isn't in the Translation Project *yet* because these strings 5844 are still very new. 5845 5846 Closes: https://github.com/tukaani-project/xz/pull/145 5847 5848 po/LINGUAS | 1 + 5849 po/ka.po | 1186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5850 2 files changed, 1187 insertions(+) 5851 5852commit 4a0c4f92b820b84ace625a95305a9d56cb662f4e 5853Author: Lasse Collin <lasse.collin@tukaani.org> 5854Date: 2024-10-30 20:50:20 +0200 5855 5856 xz: Make one string simpler for translators 5857 5858 Leading spaces in the string can get miscounted by translators. 5859 5860 src/xz/list.c | 4 ++-- 5861 1 file changed, 2 insertions(+), 2 deletions(-) 5862 5863commit 3fcf547e926f6c0414b23459f7b43164f7e8c378 5864Author: Lasse Collin <lasse.collin@tukaani.org> 5865Date: 2024-12-17 10:26:10 +0200 5866 5867 lzmainfo: Sync the translatable strings with xz 5868 5869 src/lzmainfo/lzmainfo.c | 20 ++++++++++++-------- 5870 1 file changed, 12 insertions(+), 8 deletions(-) 5871 5872commit 3e9177fd206d20d6d8acc7d203c25a9ae0549229 5873Author: Lasse Collin <lasse.collin@tukaani.org> 5874Date: 2024-12-17 10:26:10 +0200 5875 5876 xz: Use automatic word wrapping for help texts 5877 5878 --long-help is now one line longer because --lzma1 is now on its 5879 own line. 5880 5881 CMakeLists.txt | 2 + 5882 src/xz/Makefile.am | 3 +- 5883 src/xz/message.c | 482 ++++++++++++++++++++++++++++++++++------------------- 5884 3 files changed, 313 insertions(+), 174 deletions(-) 5885 5886commit a0eecc9eb23ac583ccf442de3f5c106d4b09482d 5887Author: Lasse Collin <lasse.collin@tukaani.org> 5888Date: 2024-12-16 18:46:45 +0200 5889 5890 po/Makevars: Add --keyword=W_:... to XGETTEXT_OPTIONS 5891 5892 The text was copied from tuklib_gettext.h. 5893 5894 Also rearrange the --keyword options to be last on the line. 5895 5896 po/Makevars | 2 +- 5897 1 file changed, 1 insertion(+), 1 deletion(-) 5898 5899commit ca529c3f41a4a19a59e2e252e6dd9255f130c634 5900Author: Lasse Collin <lasse.collin@tukaani.org> 5901Date: 2024-12-16 18:43:52 +0200 5902 5903 Add tuklib_mbstr_wrap for automatic word wrapping 5904 5905 Automatic word wrapping makes translators' work easier and reduces 5906 errors like misaligned columns or overlong lines. Right-to-left 5907 languages and languages that don't use spaces between words will 5908 still need extra effort. (xz hasn't been translated to any RTL 5909 language so far.) 5910 5911 cmake/tuklib_mbstr.cmake | 4 + 5912 m4/tuklib_mbstr.m4 | 2 +- 5913 src/Makefile.am | 2 + 5914 src/common/tuklib_gettext.h | 11 ++ 5915 src/common/tuklib_mbstr_wrap.c | 285 +++++++++++++++++++++++++++++++++++++++++ 5916 src/common/tuklib_mbstr_wrap.h | 203 +++++++++++++++++++++++++++++ 5917 6 files changed, 506 insertions(+), 1 deletion(-) 5918 5919commit 314b83cebad0244a0015a8abc6d8d086b581c215 5920Author: Lasse Collin <lasse.collin@tukaani.org> 5921Date: 2024-12-17 17:57:18 +0200 5922 5923 Build: Sort filenames to ASCII order in Makefile.am 5924 5925 src/Makefile.am | 2 +- 5926 1 file changed, 1 insertion(+), 1 deletion(-) 5927 5928commit df399c52554dfdf60259ca2cce97adbcfff39dc0 5929Author: Lasse Collin <lasse.collin@tukaani.org> 5930Date: 2024-10-21 18:51:24 +0300 5931 5932 tuklib_mbstr_width: Add tuklib_mbstr_width_mem() 5933 5934 It's a new function split from tuklib_mbstr_width(). 5935 It's useful with partial strings that aren't terminated with \0. 5936 5937 src/common/tuklib_mbstr.h | 17 +++++++++++++++++ 5938 src/common/tuklib_mbstr_width.c | 8 ++++++++ 5939 2 files changed, 25 insertions(+) 5940 5941commit 51081efae4c52c226e96da95313916eba99f885f 5942Author: Lasse Collin <lasse.collin@tukaani.org> 5943Date: 2024-12-16 20:08:27 +0200 5944 5945 tuklib_mbstr_width: Update a comment about shift states 5946 5947 src/common/tuklib_mbstr_width.c | 11 ++++++++--- 5948 1 file changed, 8 insertions(+), 3 deletions(-) 5949 5950commit 7ff1b0ac53866877bdfd79acf5fee0269058c58b 5951Author: Lasse Collin <lasse.collin@tukaani.org> 5952Date: 2024-10-21 18:47:56 +0300 5953 5954 tuklib_mbstr_width: Don't mention shift states in the API docs 5955 5956 It is assumed that this code won't be used with charsets that use 5957 locking shift states. 5958 5959 src/common/tuklib_mbstr.h | 8 ++------ 5960 1 file changed, 2 insertions(+), 6 deletions(-) 5961 5962commit 3c16105936320e4095dbe84fa9a33a4a6d46a597 5963Author: Lasse Collin <lasse.collin@tukaani.org> 5964Date: 2024-10-21 18:41:41 +0300 5965 5966 tuklib_mbstr_width: Use stricter return value checking 5967 5968 This should make no difference in practice (at least if mbrtowc() 5969 isn't broken). 5970 5971 src/common/tuklib_mbstr_width.c | 2 +- 5972 1 file changed, 1 insertion(+), 1 deletion(-) 5973 5974commit b797c44c42ea54fe1c52722a2fca0c9618575598 5975Author: Lasse Collin <lasse.collin@tukaani.org> 5976Date: 2024-12-16 20:06:07 +0200 5977 5978 tuklib_mbstr_width: Change the behavior when wcwidth() is not available 5979 5980 If wcwidth() isn't available (Windows), previously it was assumed 5981 that one byte == one column in the terminal. Now it is assumed that 5982 one multibyte character == one column. This works better with UTF-8. 5983 Languages that only use single-width characters without any combining 5984 characters should work correctly with this. 5985 5986 In xz, none of po/*.po contain combining characters and only ko.po, 5987 zh_CN.po, and zh_TW.po contain fullwidth characters. Thus, "only" 5988 those three translations in xz are broken on Windows with the 5989 UTF-8 code page. Broken means that column headings in xz -lvv and 5990 (only in the master branch) strings in --long-help are misaligned, 5991 so it's not a huge problem. I don't know if those three languages 5992 displayed perfectly before the UTF-8 change because I hadn't tested 5993 translations with native Windows builds before. 5994 5995 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 5996 5997 src/common/tuklib_mbstr_width.c | 13 +++++++++++-- 5998 1 file changed, 11 insertions(+), 2 deletions(-) 5999 6000commit 78868b6ed63fa4c89f73e3dfed27abfb8b0d46db 6001Author: Lasse Collin <lasse.collin@tukaani.org> 6002Date: 2024-12-18 14:23:13 +0200 6003 6004 xzdec: Use setlocale() via tuklib_gettext_setlocale() 6005 6006 xzdec isn't translated and didn't have locale-specific behavior 6007 in the past. On Windows with UTF-8 in the application manifest, 6008 setting the locale makes a difference though: 6009 6010 - Without any setlocale() call, non-ASCII filenames don't display 6011 properly in Command Prompt unless one first uses "chcp 65001" 6012 to set the console code page to UTF-8. 6013 6014 - setlocale(LC_ALL, "") is enough to make non-ASCII filenames 6015 print correctly in Command Prompt without using "chcp 65001", 6016 assuming that the non-UTF-8 code page (like 850) supports 6017 those non-ASCII characters. 6018 6019 - setlocale(LC_ALL, ".UTF8") is even better because then mbrtowc() and 6020 such functions use an UTF-8 locale instead of a legacy code page. 6021 The tuklib_gettext_setlocale() macro takes care of this (without 6022 enabling any translations). 6023 6024 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 6025 6026 src/xzdec/xzdec.c | 12 ++++++++++++ 6027 1 file changed, 12 insertions(+) 6028 6029commit 0d0b574cc45045d6150d397776340c068df59e2a 6030Author: Lasse Collin <lasse.collin@tukaani.org> 6031Date: 2024-12-17 14:59:37 +0200 6032 6033 Windows: Use UTF-8 locale when active code page is UTF-8 6034 6035 XZ Utils 5.6.3 set the active code page to UTF-8 to fix CVE-2024-47611. 6036 This wasn't paired with UCRT-specific setlocale(LC_ALL, ".UTF8"), thus 6037 non-ASCII characters from translations became mojibake. 6038 6039 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 6040 6041 src/common/tuklib_gettext.h | 32 ++++++++++++++++++++++++++++++-- 6042 1 file changed, 30 insertions(+), 2 deletions(-) 6043 6044commit 20dfca8171dad4c64785ac61d5b68972c444877b 6045Author: Lasse Collin <lasse.collin@tukaani.org> 6046Date: 2024-12-17 15:01:29 +0200 6047 6048 Windows: Document the need for setlocale(LC_ALL, ".UTF8") 6049 6050 Also warn about unpaired surrogates and (somewhat UTF-8-specific) 6051 MAX_PATH issue in FindFirstFileA(). 6052 6053 Fixes: 46ee0061629fb075d61d83839e14dd193337af59 6054 6055 src/common/w32_application.manifest.comments.txt | 28 +++++++++++++++++++++++- 6056 1 file changed, 27 insertions(+), 1 deletion(-) 6057 6058commit 4e936f234056e5831013ed922145b666b04bb1e3 6059Author: Lasse Collin <lasse.collin@tukaani.org> 6060Date: 2024-12-18 14:12:22 +0200 6061 6062 xzdec: Call tuklib_progname_init() early enough 6063 6064 If the early pledge() call on OpenBSD fails, it calls my_errorf() 6065 which requires the "progname" variable. 6066 6067 Fixes: d74fb5f060b76db709b50f5fd37490394e52f975 6068 6069 src/xzdec/xzdec.c | 6 +++--- 6070 1 file changed, 3 insertions(+), 3 deletions(-) 6071 6072commit 61feaf681bd793dc5c919732b44bca7dcf2ed1b8 6073Author: Lasse Collin <lasse.collin@tukaani.org> 6074Date: 2024-12-15 19:08:32 +0200 6075 6076 CMake: Bump maximum policy version to 3.31 6077 6078 With CMake 3.31, there were a few warnings from 6079 CMP0177 "install() DESTINATION paths are normalized". 6080 These occurred because the install(FILES) command in 6081 my_install_man_lang() is called with a DESTINATION path 6082 that contains two consecutive slashes, for example, 6083 "share/man//man1". Such a path is for the English man pages. 6084 With translated man pages, the language code goes between 6085 the slashes. The warning was probably triggered because the 6086 extra slash gets removed by the normalization. 6087 6088 CMakeLists.txt | 2 +- 6089 1 file changed, 1 insertion(+), 1 deletion(-) 6090 6091commit b0bb84dd7bbdcc85243386a0051c7b2cb5fc6a18 6092Author: Lasse Collin <lasse.collin@tukaani.org> 6093Date: 2024-12-15 18:35:27 +0200 6094 6095 Update THANKS 6096 6097 THANKS | 1 + 6098 1 file changed, 1 insertion(+) 6099 6100commit bee0c044d30a6ad3b3d94901c27e7519f6f46e27 6101Author: Dexter Castor Döpping <dexter.c.dopping@gmail.com> 6102Date: 2024-12-08 18:24:29 +0100 6103 6104 liblzma: Fix incorrect macro name in a comment 6105 6106 Fixes: 33b8a24b6646a9dbfd8358405aec466b13078559 6107 Closes: https://github.com/tukaani-project/xz/pull/155 6108 6109 src/liblzma/api/lzma/lzma12.h | 2 +- 6110 1 file changed, 1 insertion(+), 1 deletion(-) 6111 6112commit 2cfa1ad0a9eb62b1847cf13f9aee290158978a3a 6113Author: Lasse Collin <lasse.collin@tukaani.org> 6114Date: 2024-12-17 10:36:43 +0200 6115 6116 license-check.sh: Add an exception for doc/SHA256SUMS 6117 6118 Fixes: 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 6119 6120 build-aux/license-check.sh | 1 + 6121 1 file changed, 1 insertion(+) 6122 6123commit 36b531022f24a2ab57a2dfb9e5052f1c176e9d9a 6124Author: Lasse Collin <lasse.collin@tukaani.org> 6125Date: 2024-12-01 21:38:17 +0200 6126 6127 doc/SHA256SUMS: Add the list of SHA-256 hashes of release files 6128 6129 The release files are signed but verifying the signatures cannot 6130 catch certain types of attacks: 6131 6132 1. A malicious maintainer could make more than one variant of 6133 a package. One could be for general distribution. Another 6134 with malicious content could be targeted to specific users, 6135 for example, distributing the malicious version on a mirror 6136 controlled by the attacker. 6137 6138 2. If the signing key of an honest maintainer was compromised 6139 without being detected, a similar situation as described 6140 above could occur. 6141 6142 SHA256SUMS could be put on the project website but having it in 6143 the Git repository makes it obvious that old lines aren't modified 6144 when the file is updated. 6145 6146 Hashes of uncompressed files are included too. This way tarballs 6147 can be recompressed and the hashes can still be verified. 6148 6149 .gitattributes | 1 + 6150 doc/SHA256SUMS | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6151 2 files changed, 219 insertions(+) 6152 6153commit fe9e66993fdbcc2981c7361b9b034a451eb0fc42 6154Author: Lasse Collin <lasse.collin@tukaani.org> 6155Date: 2024-11-30 12:05:59 +0200 6156 6157 Docs: Remove .github/SECURITY.md 6158 6159 One of the reasons to have this file in the xz repository was to 6160 show vulnerability reporting info in the Security section on GitHub. 6161 On 2024-11-25, I added SECURITY.md to the tukaani-project organization 6162 on GitHub: 6163 6164 https://github.com/tukaani-project/.github/blob/main/SECURITY.md 6165 6166 GitHub shows that file in all projects in the organization unless 6167 overridden by a project-specific SECURITY.md. Thus, removing 6168 the file from the xz repo makes GitHub show the organization-wide 6169 text instead. 6170 6171 Maintaining a single copy for the whole GitHub organization makes 6172 things simpler. It's also nicer to have fewer GitHub-specific files 6173 in the xz repo. Information how to report bugs (including security 6174 issues) is available in README and on the home page too. 6175 6176 The OpenSSF Scorecard tool didn't find .github/SECURITY.md from the 6177 xz repository. There was a suggestion to move the file to the top-level 6178 directory where Scorecard should find it. However, Scorecard does find 6179 the organization-wide SECURITY.md. Thus, the file isn't needed in the 6180 xz repository to score points in the Scorecard game: 6181 6182 https://scorecard.dev/viewer/?uri=github.com/tukaani-project/xz 6183 6184 Closes: https://github.com/tukaani-project/xz/issues/148 6185 Closes: https://github.com/tukaani-project/xz/pull/149 6186 6187 .github/SECURITY.md | 14 -------------- 6188 1 file changed, 14 deletions(-) 6189 6190commit b36177273602ebc83e9cc58517f63a7b6af33f70 6191Author: Lasse Collin <lasse.collin@tukaani.org> 6192Date: 2024-11-30 10:27:14 +0200 6193 6194 Translations: Update the Chinese (traditional) translation 6195 6196 po/zh_TW.po | 201 +++++++++++++++++++++++++----------------------------------- 6197 1 file changed, 84 insertions(+), 117 deletions(-) 6198 6199commit c15115f7ede492f20c91b08ba485f9426f60233f 6200Author: Lasse Collin <lasse.collin@tukaani.org> 6201Date: 2024-10-30 19:54:34 +0200 6202 6203 liblzma: Optimize the loop conditions in BCJ filters 6204 6205 Compilers cannot optimize the addition "i + 4" away since theoretically 6206 it could overflow. 6207 6208 src/liblzma/simple/arm.c | 4 +++- 6209 src/liblzma/simple/arm64.c | 4 +++- 6210 src/liblzma/simple/armthumb.c | 7 ++++++- 6211 src/liblzma/simple/ia64.c | 4 +++- 6212 src/liblzma/simple/powerpc.c | 4 +++- 6213 src/liblzma/simple/sparc.c | 5 +++-- 6214 6 files changed, 21 insertions(+), 7 deletions(-) 6215 6216commit 9f69e71e78621fd056f5eaaad7cdcd9279310fb5 6217Author: Lasse Collin <lasse.collin@tukaani.org> 6218Date: 2024-11-25 16:26:54 +0200 6219 6220 Update THANKS 6221 6222 THANKS | 1 + 6223 1 file changed, 1 insertion(+) 6224 6225commit 48ff3f06521ca326996ab9a04d1b342098960427 6226Author: Mark Wielaard <mark@klomp.org> 6227Date: 2024-11-25 12:28:44 +0200 6228 6229 xz: Landlock: Fix a file descriptor leak 6230 6231 src/xz/sandbox.c | 1 + 6232 1 file changed, 1 insertion(+) 6233 6234commit dbca3d078ec581600600abebbb18769d3d713914 6235Author: Sam James <sam@gentoo.org> 6236Date: 2024-10-02 03:04:03 +0100 6237 6238 CI: update FreeBSD, NetBSD, OpenBSD, Solaris actions 6239 6240 Checked the changes and they're all innocuous. This should hopefully 6241 fix the "externally managed" pip error in these jobs that started 6242 recently. 6243 6244 .github/workflows/freebsd.yml | 2 +- 6245 .github/workflows/netbsd.yml | 2 +- 6246 .github/workflows/openbsd.yml | 2 +- 6247 .github/workflows/solaris.yml | 2 +- 6248 4 files changed, 4 insertions(+), 4 deletions(-) 6249 6250commit a94b85bea3f04d8c1f4e2e6f648a9a15bc6ce58f 6251Author: Lasse Collin <lasse.collin@tukaani.org> 6252Date: 2024-10-01 12:17:39 +0300 6253 6254 Add NEWS for 5.6.3 6255 6256 NEWS | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6257 1 file changed, 125 insertions(+) 6258 6259commit be4bf94446b6286a5dffdde85fc1d21448f4edff 6260Author: Lasse Collin <lasse.collin@tukaani.org> 6261Date: 2024-10-01 14:49:41 +0300 6262 6263 cmake/tuklib_large_file_support.cmake: Add a missing include 6264 6265 v5.2 didn't build with CMake. Other branches had 6266 include(CMakePushCheckState) in top-level CMakeLists.txt 6267 which made the build work. 6268 6269 Fixes: 597f49b61475438a43a417236989b2acc968a686 6270 6271 cmake/tuklib_large_file_support.cmake | 1 + 6272 1 file changed, 1 insertion(+) 6273 6274commit 1ebbe915d4e0d877154261b5f8103719a6722975 6275Author: Lasse Collin <lasse.collin@tukaani.org> 6276Date: 2024-10-01 12:10:23 +0300 6277 6278 Update THANKS 6279 6280 THANKS | 2 ++ 6281 1 file changed, 2 insertions(+) 6282 6283commit 74702ee00ecfd080d8ab11118cd25dbe6c437ec0 6284Author: Lasse Collin <lasse.collin@tukaani.org> 6285Date: 2024-10-01 12:10:23 +0300 6286 6287 Tests/Windows: Add the application manifest to the test programs 6288 6289 This ensures that the test programs get executed the same way as 6290 the binaries that are installed. 6291 6292 CMakeLists.txt | 14 ++++++++++---- 6293 tests/Makefile.am | 10 ++++++++++ 6294 tests/tests.cmake | 33 ++++++++++++++++++++++++++++++++- 6295 tests/tests_w32res.rc | 18 ++++++++++++++++++ 6296 4 files changed, 70 insertions(+), 5 deletions(-) 6297 6298commit 7ddf2273e0e4654582ee65db19d44431bfdb5791 6299Author: Lasse Collin <lasse.collin@tukaani.org> 6300Date: 2024-10-01 12:10:23 +0300 6301 6302 license-check.sh: Add an exception for w32_application.manifest 6303 6304 The file gets embedded as is into executables, thus it cannot 6305 hold a license identifier. 6306 6307 build-aux/license-check.sh | 1 + 6308 1 file changed, 1 insertion(+) 6309 6310commit 46ee0061629fb075d61d83839e14dd193337af59 6311Author: Lasse Collin <lasse.collin@tukaani.org> 6312Date: 2024-10-01 12:10:23 +0300 6313 6314 Windows: Embed an application manifest in the EXE files 6315 6316 IMPORTANT: This includes a security fix to command line tool 6317 argument handling. 6318 6319 Some toolchains embed an application manifest by default to declare 6320 UAC-compliance. Some also declare compatibility with Vista/8/8.1/10/11 6321 to let the app access features newer than those of Vista. 6322 6323 We want all the above but also two more things: 6324 6325 - Declare that the app is long path aware to support paths longer 6326 than 259 characters (this may also require a registry change). 6327 6328 - Force the code page to UTF-8. This allows the command line tools 6329 to access files whose names contain characters that don't exist 6330 in the current legacy code page (except unpaired surrogates). 6331 The UTF-8 code page also fixes security issues in command line 6332 argument handling which can be exploited with malicious filenames. 6333 See the new file w32_application.manifest.comments.txt. 6334 6335 Thanks to Orange Tsai and splitline from DEVCORE Research Team 6336 for discovering this issue. 6337 6338 Thanks to Vijay Sarvepalli for reporting the issue to me. 6339 6340 Thanks to Kelvin Lee for testing with MSVC and helping with 6341 the required build system fixes. 6342 6343 CMakeLists.txt | 18 +++ 6344 src/Makefile.am | 4 +- 6345 src/common/common_w32res.rc | 5 + 6346 src/common/w32_application.manifest | 28 ++++ 6347 src/common/w32_application.manifest.comments.txt | 178 +++++++++++++++++++++++ 6348 5 files changed, 232 insertions(+), 1 deletion(-) 6349 6350commit dad153091552b52a41b95ec4981c6951f1cae487 6351Author: Lasse Collin <lasse.collin@tukaani.org> 6352Date: 2024-09-29 14:46:52 +0300 6353 6354 Windows: Set DLL name accurately in StringFileInfo on Cygwin and MSYS2 6355 6356 Now the information in the "Details" tab in the file properties 6357 dialog matches the naming convention of Cygwin and MSYS2. This 6358 is only a cosmetic change. 6359 6360 src/liblzma/liblzma_w32res.rc | 10 +++++++++- 6361 1 file changed, 9 insertions(+), 1 deletion(-) 6362 6363commit 8940ecb96fe9f0f2a9cfb8b66fe9ed31ffbea904 6364Author: Lasse Collin <lasse.collin@tukaani.org> 6365Date: 2024-09-25 15:47:55 +0300 6366 6367 common_w32res.rc: White space edits 6368 6369 LANGUAGE and VS_VERSION_INFO begin new statements so put an empty line 6370 between them. 6371 6372 src/common/common_w32res.rc | 15 ++++++++------- 6373 1 file changed, 8 insertions(+), 7 deletions(-) 6374 6375commit c3b9dad07d3fd9319f88386b7095019bcea45ce1 6376Author: Lasse Collin <lasse.collin@tukaani.org> 6377Date: 2024-09-28 20:09:50 +0300 6378 6379 CMake: Add the resource files to the Cygwin and MSYS2 builds 6380 6381 Autotools-based build has always done this so this is for consistency. 6382 6383 However, the CMake build won't create the DEF file when building 6384 for Cygwin or MSYS2 because in that context it should be useless. 6385 (If Cygwin or MSYS2 is used to host building of normal Windows 6386 binaries then the DEF file is still created.) 6387 6388 CMakeLists.txt | 16 ++++++++++------ 6389 1 file changed, 10 insertions(+), 6 deletions(-) 6390 6391commit da4f275bd1c18b897e5c2dd0043546de3accce0a 6392Author: Lasse Collin <lasse.collin@tukaani.org> 6393Date: 2024-09-28 15:19:14 +0300 6394 6395 CMake: Fix Windows resource file dependencies 6396 6397 If common_w32res.rc is modified, the resource files need to be rebuilt. 6398 In contrast, the liblzma*.map files truly are link dependencies. 6399 6400 CMakeLists.txt | 17 +++++++++-------- 6401 1 file changed, 9 insertions(+), 8 deletions(-) 6402 6403commit 1c673c0aac7f7dee8dda2c1140351c8417a71e47 6404Author: Lasse Collin <lasse.collin@tukaani.org> 6405Date: 2024-09-29 01:20:03 +0300 6406 6407 CMake: Checking for CYGWIN covers MSYS2 too 6408 6409 On MSYS2, both CYGWIN and MSYS are set. 6410 6411 CMakeLists.txt | 2 +- 6412 1 file changed, 1 insertion(+), 1 deletion(-) 6413 6414commit 6aaa0173b839e28429d43a8b62d257ad2f3b4521 6415Author: Lasse Collin <lasse.collin@tukaani.org> 6416Date: 2024-09-28 09:37:30 +0300 6417 6418 Translations: Add the SPDX license identifier to pt_BR.po 6419 6420 po/pt_BR.po | 2 ++ 6421 1 file changed, 2 insertions(+) 6422 6423commit dc7b9f24b737e4e55bcbbdde6754883f991c2cfb 6424Author: Lasse Collin <lasse.collin@tukaani.org> 6425Date: 2024-09-25 16:41:37 +0300 6426 6427 Windows/CMake: Use the correct resource file for lzmadec.exe 6428 6429 CMakeLists.txt was using xzdec_w32res.rc for both xzdec and lzmadec. 6430 6431 Fixes: 998d0b29536094a89cf385a3b894e157db1ccefe 6432 6433 CMakeLists.txt | 2 +- 6434 1 file changed, 1 insertion(+), 1 deletion(-) 6435 6436commit b834ae5f80911a3819d6cdb484f61b257174c544 6437Author: Lasse Collin <lasse.collin@tukaani.org> 6438Date: 2024-09-25 21:29:59 +0300 6439 6440 Translations: Update the Brazilian Portuguese translation 6441 6442 po/pt_BR.po | 144 ++++++++++++++++++++++-------------------------------------- 6443 1 file changed, 53 insertions(+), 91 deletions(-) 6444 6445commit eceb023d4c129fd63ee881a2d8696eaf52ad1532 6446Author: Lasse Collin <lasse.collin@tukaani.org> 6447Date: 2024-09-17 01:21:15 +0300 6448 6449 Update THANKS 6450 6451 THANKS | 1 + 6452 1 file changed, 1 insertion(+) 6453 6454commit 76cfd0a9bb33ae8e534b1f73f6359dc825589f2f 6455Author: Tobias Stoeckmann <tobias@stoeckmann.org> 6456Date: 2024-09-16 23:19:46 +0200 6457 6458 lzmainfo: Avoid integer overflow 6459 6460 The MB output can overflow with huge numbers. Most likely these are 6461 invalid .lzma files anyway, but let's avoid garbage output. 6462 6463 lzmadec was adapted from LZMA Utils. The original code with this bug 6464 was written in 2005, over 19 years ago. 6465 6466 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 6467 Closes: https://github.com/tukaani-project/xz/pull/144 6468 6469 src/lzmainfo/lzmainfo.c | 5 ++--- 6470 1 file changed, 2 insertions(+), 3 deletions(-) 6471 6472commit 78355aebb7fb654302e5e33692ba109909dacaff 6473Author: Tobias Stoeckmann <tobias@stoeckmann.org> 6474Date: 2024-09-16 22:04:40 +0200 6475 6476 xzdec: Remove unused short option -M 6477 6478 "xzdec -M123" exited with exit status 1 without printing 6479 any messages. The "M:" entry should have been removed when 6480 the memory usage limiter support was removed from xzdec. 6481 6482 Fixes: 792331bdee706aa852a78b171040ebf814c6f3ae 6483 Closes: https://github.com/tukaani-project/xz/pull/143 6484 [ Lasse: Commit message edits ] 6485 6486 src/xzdec/xzdec.c | 2 +- 6487 1 file changed, 1 insertion(+), 1 deletion(-) 6488 6489commit e5758db7bd75587a2499e0771907521a4aa86908 6490Author: Lasse Collin <lasse.collin@tukaani.org> 6491Date: 2024-09-10 13:54:47 +0300 6492 6493 Update THANKS 6494 6495 THANKS | 1 + 6496 1 file changed, 1 insertion(+) 6497 6498commit 80ffa38f56657257ed4d90d76f6bd2f2bcb8163c 6499Author: Firas Khalil Khana <firasuke@gmail.com> 6500Date: 2024-09-10 12:30:32 +0300 6501 6502 Build: Fix a typo in autogen.sh 6503 6504 Fixes: e9be74f5b129fe8a5388d588e68b1b7f5168a310 6505 Closes: https://github.com/tukaani-project/xz/pull/141 6506 6507 autogen.sh | 2 +- 6508 1 file changed, 1 insertion(+), 1 deletion(-) 6509 6510commit 68c54e45d042add64a4cb44bfc87ca74d29b87e2 6511Author: Lasse Collin <lasse.collin@tukaani.org> 6512Date: 2024-09-02 20:08:40 +0300 6513 6514 Translations: Update Chinese (simplified) translation 6515 6516 Differences to the zh_CN.po file from the Translation Project: 6517 6518 - Two uses of \v were fixed. 6519 6520 - Missing "OPTS" translation in --riscv[=OPTS] was copied from 6521 previous lines. 6522 6523 - "make update-po" was run to remove line numbers from comments. 6524 6525 po/zh_CN.po | 102 ++++++++++++++++++++++++------------------------------------ 6526 1 file changed, 40 insertions(+), 62 deletions(-) 6527 6528commit 2230692aa1bcebb586100183831e3daf1714d60a 6529Author: Lasse Collin <lasse.collin@tukaani.org> 6530Date: 2024-09-02 19:40:50 +0300 6531 6532 Translations: Update the Catalan translation 6533 6534 Differences to the ca.po file from the Translation Project: 6535 6536 - An overlong line translating --filters-help was wrapped. 6537 6538 - "make update-po" was used to remove line numbers from the comments 6539 to match the changes in fccebe2b4fd513488fc920e4dac32562ed3c7637 6540 and 093490b58271e9424ce38a7b1b38bcf61b9c86c6. xz.pot in the TP 6541 is older than these commits. 6542 6543 po/ca.po | 171 ++++++++++++++++++++++++++------------------------------------- 6544 1 file changed, 69 insertions(+), 102 deletions(-) 6545 6546commit 3e7723ce26f74c71919984a6180504b4548cbb7e 6547Author: Lasse Collin <lasse.collin@tukaani.org> 6548Date: 2024-08-22 14:06:16 +0300 6549 6550 Update THANKS 6551 6552 THANKS | 1 + 6553 1 file changed, 1 insertion(+) 6554 6555commit d3e0e679b2b8b428598bb8ba56a17715190814db 6556Author: Lasse Collin <lasse.collin@tukaani.org> 6557Date: 2024-08-22 14:06:16 +0300 6558 6559 CMake: Don't install lzmadec.1 symlinks if XZ_TOOL_LZMADEC=OFF 6560 6561 Thanks-to: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 6562 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 6563 Closes: https://github.com/tukaani-project/xz/pull/134 6564 6565 CMakeLists.txt | 12 ++++++++++-- 6566 1 file changed, 10 insertions(+), 2 deletions(-) 6567 6568commit acdf21033abe347d9a279e9fe757f90ed16c1dbb 6569Author: Lasse Collin <lasse.collin@tukaani.org> 6570Date: 2024-08-22 14:06:16 +0300 6571 6572 CMake: Fix the build when XZ_TOOL_LZMADEC=OFF 6573 6574 Co-developed-by: 榆柳松 (ZhengSen Wang) <wzhengsen@gmail.com> 6575 Fixes: fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 6576 Fixes: https://github.com/tukaani-project/xz/pull/134 6577 6578 CMakeLists.txt | 6 ++++-- 6579 1 file changed, 4 insertions(+), 2 deletions(-) 6580 6581commit 5e375987509fab484b7bef0b90be92f241c58c91 6582Author: Lasse Collin <lasse.collin@tukaani.org> 6583Date: 2024-08-22 11:01:07 +0300 6584 6585 Update THANKS 6586 6587 THANKS | 1 + 6588 1 file changed, 1 insertion(+) 6589 6590commit 6cd7c8607843c337edfe2c472aa316602a393754 6591Author: Yifeng Li <tomli@tomli.me> 6592Date: 2024-08-22 02:18:49 +0000 6593 6594 liblzma: Fix x86-64 movzw compatibility in range_decoder.h 6595 6596 Support for instruction "movzw" without suffix in "GNU as" was 6597 added in commit [1] and stabilized in binutils 2.27, released 6598 in August 2016. Earlier systems don't accept this instruction 6599 without a suffix, making range_decoder.h's inline assembly 6600 unable to build on old systems such as Ubuntu 16.04, creating 6601 error messages like: 6602 6603 lzma_decoder.c: Assembler messages: 6604 lzma_decoder.c:371: Error: no such instruction: `movzw 2(%r11),%esi' 6605 lzma_decoder.c:373: Error: no such instruction: `movzw 4(%r11),%edi' 6606 lzma_decoder.c:388: Error: no such instruction: `movzw 6(%r11),%edx' 6607 lzma_decoder.c:398: Error: no such instruction: `movzw (%r11,%r14,4),%esi' 6608 6609 Change "movzw" to "movzwl" for compatibility. 6610 6611 [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c07315e0c610e0e3317b4c02266f81793df253d2 6612 6613 Suggested-by: Lasse Collin <lasse.collin@tukaani.org> 6614 Tested-by: Yifeng Li <tomli@tomli.me> 6615 Signed-off-by: Yifeng Li <tomli@tomli.me> 6616 Fixes: 3182a330c1512cc1f5c87b5c5a272578e60a5158 6617 Fixes: https://github.com/tukaani-project/xz/issues/121 6618 Closes: https://github.com/tukaani-project/xz/pull/136 6619 6620 src/liblzma/rangecoder/range_decoder.h | 24 ++++++++++++------------ 6621 1 file changed, 12 insertions(+), 12 deletions(-) 6622 6623commit bf901dee5d4c46609645e50311c0cb2dfdcf9738 6624Author: Lasse Collin <lasse.collin@tukaani.org> 6625Date: 2024-07-19 20:02:43 +0300 6626 6627 Build: Comment that elf_aux_info(3) will be available on OpenBSD >= 7.6 6628 6629 CMakeLists.txt | 2 +- 6630 configure.ac | 17 +++++++++++------ 6631 2 files changed, 12 insertions(+), 7 deletions(-) 6632 6633commit f7103c2c2a8fa51d1f308ba7387beeff20a0d4dd 6634Author: Lasse Collin <lasse.collin@tukaani.org> 6635Date: 2024-07-19 19:42:26 +0300 6636 6637 Revert "liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD" 6638 6639 This reverts commit dc03f6290f5b9bd3d50c7e12e58dee870889d599. 6640 6641 OpenBSD 7.6 will support elf_aux_info(3), and the detection code used 6642 on FreeBSD will work on OpenBSD 7.6 too. Keep things simpler and drop 6643 the OpenBSD-specific sysctl() method. 6644 6645 Thanks to Christian Weisgerber. 6646 6647 CMakeLists.txt | 6 ------ 6648 configure.ac | 9 --------- 6649 src/liblzma/check/crc32_arm64.h | 15 --------------- 6650 src/liblzma/check/crc_common.h | 1 - 6651 4 files changed, 31 deletions(-) 6652 6653commit 7c292dd0bf23cefcdf4b1509f3666322e08a7ede 6654Author: Lasse Collin <lasse.collin@tukaani.org> 6655Date: 2024-07-13 22:10:37 +0300 6656 6657 liblzma: Tweak a comment 6658 6659 src/liblzma/simple/arm64.c | 4 ++-- 6660 1 file changed, 2 insertions(+), 2 deletions(-) 6661 6662commit 6408edac5529d6ec0abf52794074f229c8362303 6663Author: Lasse Collin <lasse.collin@tukaani.org> 6664Date: 2024-07-11 22:17:56 +0300 6665 6666 CMake: Bump maximum policy version to 3.30 6667 6668 CMakeLists.txt | 2 +- 6669 1 file changed, 1 insertion(+), 1 deletion(-) 6670 6671commit 9231c39ffb518196d6664a86e5325e744621a21b 6672Author: Lasse Collin <lasse.collin@tukaani.org> 6673Date: 2024-07-06 15:13:19 +0300 6674 6675 CMake: Require CMake 3.20 or later 6676 6677 This allows a few cleanups. 6678 6679 CMakeLists.txt | 78 ++++++++++++++++++++-------------------------------------- 6680 1 file changed, 27 insertions(+), 51 deletions(-) 6681 6682commit 028185dd4889e3d6235ff13560160ebca6985021 6683Author: Lasse Collin <lasse.collin@tukaani.org> 6684Date: 2024-07-09 14:27:51 +0300 6685 6686 Update THANKS 6687 6688 THANKS | 1 + 6689 1 file changed, 1 insertion(+) 6690 6691commit baecfa142644eb5f5c6dd6f8e2f531c362fa3747 6692Author: Lasse Collin <lasse.collin@tukaani.org> 6693Date: 2024-07-06 14:04:48 +0300 6694 6695 xz: Remove the TODO comment about --recursive 6696 6697 It won't be implemented. find + xargs is more flexible, for example, 6698 it allows compressing small files in parallel. An example for that 6699 has been included in the xz man page since 2010. 6700 6701 src/xz/args.c | 1 - 6702 1 file changed, 1 deletion(-) 6703 6704commit f691d58fae82bd815c5f86ffad10fe9b6b59dad8 6705Author: Lasse Collin <lasse.collin@tukaani.org> 6706Date: 2024-07-06 14:04:16 +0300 6707 6708 Document --disable-loongarch-crc32 in INSTALL 6709 6710 INSTALL | 8 ++++++++ 6711 1 file changed, 8 insertions(+) 6712 6713commit b3e53122f42796aaebd767bab920cf7bedf69966 6714Author: Lasse Collin <lasse.collin@tukaani.org> 6715Date: 2024-07-03 20:45:48 +0300 6716 6717 CMake: Link xz against Threads::Threads if using pthreads 6718 6719 The liblzma target was recently changed to link against Threads::Threads 6720 with the PRIVATE keyword. I had forgotten that xz itself depends on 6721 pthreads too due to pthread_sigmask(). Thus, the build broke when 6722 building shared liblzma and pthread_sigmask() wasn't in libc. 6723 6724 Thanks to Peter Seiderer for the bug report. 6725 6726 Fixes: ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 6727 Fixes: https://github.com/tukaani-project/xz/issues/129#issuecomment-2204522994 6728 6729 CMakeLists.txt | 13 +++++++++++++ 6730 1 file changed, 13 insertions(+) 6731 6732commit 5742ec1fc7f2cf1c82cfe3477bb90594a4658374 6733Author: Lasse Collin <lasse.collin@tukaani.org> 6734Date: 2024-07-02 22:49:33 +0300 6735 6736 Update THANKS 6737 6738 THANKS | 1 + 6739 1 file changed, 1 insertion(+) 6740 6741commit 2d13d10357ecad243d7e4ff1de0e6b437c38a47a 6742Author: Lasse Collin <lasse.collin@tukaani.org> 6743Date: 2024-07-02 20:23:35 +0300 6744 6745 CMake: Improve NLS error messages 6746 6747 CMakeLists.txt | 11 +++++++---- 6748 1 file changed, 7 insertions(+), 4 deletions(-) 6749 6750commit 628d8d2c4fdf9e6a91c7bba7a743f400a94c2909 6751Author: Lasse Collin <lasse.collin@tukaani.org> 6752Date: 2024-07-02 20:19:47 +0300 6753 6754 CMake: Update the comment at the top of CMakeLists.txt 6755 6756 While po/*.gmo files won't be used from the release tarball, 6757 the generated translated man pages will be used still. Those 6758 are text files and po4a has slightly more dependencies than 6759 gettext tools so installing po4a might be a bit more challenging 6760 in some situations. 6761 6762 CMakeLists.txt | 17 +++++++---------- 6763 1 file changed, 7 insertions(+), 10 deletions(-) 6764 6765commit b4b23c94fd4429abc663ced28d5cdc9cf7eb7507 6766Author: Lasse Collin <lasse.collin@tukaani.org> 6767Date: 2024-07-02 20:12:40 +0300 6768 6769 CMake: Drop support for pre-generated po/*.gmo files 6770 6771 When a release tarball is created using Autotools, the tarball includes 6772 po/*.gmo files which are binary files generated from po/*.po. Other 6773 tarball creation methods don't and won't create the .gmo files. 6774 6775 It feels clearer if CMake will never install pre-generated binary files 6776 from the source package. If people are able to install CMake, they 6777 likely are able to install gettext tools as well (assuming they want 6778 translations). 6779 6780 CMakeLists.txt | 66 +++++++++++++++++++--------------------------------------- 6781 1 file changed, 21 insertions(+), 45 deletions(-) 6782 6783commit fb99f8e8c50171b898cb79fe1dc703d5f91e4f0a 6784Author: Lasse Collin <lasse.collin@tukaani.org> 6785Date: 2024-07-02 19:14:50 +0300 6786 6787 CMake: Make XZ_NLS handling more robust 6788 6789 If a user set XZ_NLS=ON but find_package(Intl) failed or CMake version 6790 wasn't at least 3.20, the configuration would fail in a cryptic way. 6791 6792 If XZ_NLS is enabled, require that CMake is new enough and that either 6793 gettext tools or pre-generated .gmo files are available. Otherwise fail 6794 the configuration. Previously missing gettext tools and .gmo files would 6795 only result in a warning. 6796 6797 Missing man page translations are still only a warning. 6798 6799 Thanks to Peter Seiderer for the bug report. 6800 6801 Fixes: https://github.com/tukaani-project/xz/issues/129 6802 Closes: https://github.com/tukaani-project/xz/pull/130 6803 6804 CMakeLists.txt | 82 ++++++++++++++++++++++++++++++++-------------------------- 6805 1 file changed, 46 insertions(+), 36 deletions(-) 6806 6807commit ec6157570ea8a8e38158894e530d35416ff6a0f8 6808Author: Lasse Collin <lasse.collin@tukaani.org> 6809Date: 2024-07-02 19:39:05 +0300 6810 6811 CI: Add gettext as a dependency to CMake builds 6812 6813 .github/workflows/ci.yml | 4 ++-- 6814 1 file changed, 2 insertions(+), 2 deletions(-) 6815 6816commit 24f0f7e399de03bb2ff675d97b723d14f17ed6ac 6817Author: Lasse Collin <lasse.collin@tukaani.org> 6818Date: 2024-07-02 18:43:56 +0300 6819 6820 CMake: Fix ENABLE_NLS comment too 6821 6822 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 6823 6824 CMakeLists.txt | 2 +- 6825 1 file changed, 1 insertion(+), 1 deletion(-) 6826 6827commit a0df0676130bc565af0ec911e68a1d0fbc3ed0fb 6828Author: Lasse Collin <lasse.collin@tukaani.org> 6829Date: 2024-07-02 18:02:50 +0300 6830 6831 CMake: The compile definition is ENABLE_NLS, not XZ_NLS 6832 6833 The CMake variables were renamed and accidentally also 6834 the compile definition was renamed. As a result, translation 6835 support wasn't actually enabled in the executables. 6836 6837 Fixes: 29f77c7b707f2458fb047e77497354b195e05b14 6838 6839 CMakeLists.txt | 4 ++-- 6840 1 file changed, 2 insertions(+), 2 deletions(-) 6841 6842commit 45d08abc33ccc52d2f050dcec458badc2ce59d0b 6843Author: Lasse Collin <lasse.collin@tukaani.org> 6844Date: 2024-07-01 17:33:20 +0300 6845 6846 Update AUTHORS and THANKS 6847 6848 AUTHORS | 2 +- 6849 THANKS | 1 + 6850 2 files changed, 2 insertions(+), 1 deletion(-) 6851 6852commit 7baf6835cfbf9c85ba37f9ffb7d4f87fb86a474e 6853Author: Xi Ruoyao <xry111@xry111.site> 6854Date: 2024-06-28 13:36:43 +0300 6855 6856 liblzma: Speed up CRC32 calculation on 64-bit LoongArch 6857 6858 The crc.w.{b/h/w/d}.w instructions in LoongArch can calculate the CRC32 6859 result for 1/2/4/8 bytes in a single operation. Using these is much 6860 faster compared to the generic method. 6861 6862 Optimized CRC32 is enabled unconditionally on 64-bit LoongArch because 6863 the LoongArch specification says that CRC32 instructions shall be 6864 implemented for 64-bit processors. Optimized CRC32 isn't enabled for 6865 32-bit LoongArch processors because not enough information is available 6866 about them. 6867 6868 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 6869 6870 Closes: https://github.com/tukaani-project/xz/pull/86 6871 6872 CMakeLists.txt | 25 ++++++++++++++ 6873 configure.ac | 40 +++++++++++++++++++++++ 6874 src/liblzma/check/Makefile.inc | 3 +- 6875 src/liblzma/check/crc32_fast.c | 2 ++ 6876 src/liblzma/check/crc32_loongarch.h | 65 +++++++++++++++++++++++++++++++++++++ 6877 src/liblzma/check/crc_common.h | 15 +++++++++ 6878 6 files changed, 149 insertions(+), 1 deletion(-) 6879 6880commit 0ed893668554fb0758003289f8a6af9bd08b89d1 6881Author: Lasse Collin <lasse.collin@tukaani.org> 6882Date: 2024-06-28 14:20:49 +0300 6883 6884 liblzma: ARM64 CRC32: Align the buffer faster 6885 6886 Instead of doing it byte by byte, use the 1/2/4-byte CRC32 instructions. 6887 6888 src/liblzma/check/crc32_arm64.h | 54 ++++++++++++++++++++++++++++++----------- 6889 1 file changed, 40 insertions(+), 14 deletions(-) 6890 6891commit 7e99856f66c07852c4e0de7aa01951e9147d86b0 6892Author: Sam James <sam@gentoo.org> 6893Date: 2024-06-28 14:18:35 +0300 6894 6895 CI: Speed up Valgrind job by using --trace-children-skip-by-arg=... 6896 6897 This addresses the issue I mentioned in 6898 6c095a98fbec70b790253a663173ecdb669108c4 and speeds up the Valgrind 6899 job a bit, because non-xz tools aren't run unnecessarily with 6900 Valgrind by the script tests. 6901 6902 .github/workflows/ci.yml | 2 +- 6903 1 file changed, 1 insertion(+), 1 deletion(-) 6904 6905commit 2402e8a1ae92676fa0d4cb1b761d7f62f005c098 6906Author: Lasse Collin <lasse.collin@tukaani.org> 6907Date: 2024-06-25 16:00:22 +0300 6908 6909 Build: Prepend, not append, PTHREAD_CFLAGS to LIBS 6910 6911 It shouldn't make any difference because LIBS should be empty 6912 at that point in configure. But prepending is the correct way 6913 because in general the libraries being added might require other 6914 libraries that come later on the command line. 6915 6916 configure.ac | 2 +- 6917 1 file changed, 1 insertion(+), 1 deletion(-) 6918 6919commit 7bb46f2b7b3989c1b589a247a251470f65e91cda 6920Author: Lasse Collin <lasse.collin@tukaani.org> 6921Date: 2024-06-25 14:24:29 +0300 6922 6923 Build: Use AC_LINK_IFELSE to handle implicit function declarations 6924 6925 It's more robust in case the compiler allows pre-C99 implicit function 6926 declarations. If an x86 intrinsic is missing and gets treated as 6927 implicit function, the linking step will very probably fail. This 6928 isn't the only way to workaround implicit function declarations but 6929 it might be the simplest and cleanest. 6930 6931 The problem hasn't been observed in the wild. 6932 6933 There are a couple more AC_COMPILE_IFELSE uses in configure.ac. 6934 Of these, Landlock check calls prctl() and in theory could have 6935 the same problem. In practice it doesn't as the check program 6936 looks for several other things too. However, it was changed to 6937 AC_LINK_IFELSE still to look more correct. 6938 6939 Similarly, m4/tuklib_cpucores.m4 and m4/tuklib_physmem.m4 were 6940 updated although they haven't given any trouble either. They 6941 have worked all these years because those check programs rely 6942 on specific headers and types: if headers or types are missing, 6943 compilation will fail. Using the linker makes these checks more 6944 similar to the ones in cmake/tuklib_*.cmake which always link. 6945 6946 configure.ac | 8 ++++++-- 6947 m4/tuklib_cpucores.m4 | 8 ++++---- 6948 m4/tuklib_physmem.m4 | 17 +++++++++++------ 6949 3 files changed, 21 insertions(+), 12 deletions(-) 6950 6951commit 35eb57355ad1c415a838d26192d5af84abb7cf39 6952Author: Lasse Collin <lasse.collin@tukaani.org> 6953Date: 2024-06-24 23:35:59 +0300 6954 6955 Build: Use AC_LINK_IFELSE instead of -Werror 6956 6957 AC_COMPILE_IFELSE needed -Werror because Clang <= 14 would merely 6958 warn about the unsupported attribute and implicit function declaration. 6959 Changing to AC_LINK_IFELSE handles the implicit declaration because 6960 the symbol __crc32d is unlikely to exist in libc. 6961 6962 Note that the other part of the check is that #include <arm_acle.h> 6963 must work. If the header is missing, most compilers give an error 6964 and the linking step won't be attempted. 6965 6966 Avoiding -Werror makes the check more robust in case CFLAGS contains 6967 warning flags that break -Werror anyway (but this isn't the only check 6968 in configure.ac that has this problem). Using AC_LINK_IFELSE also makes 6969 the check more similar to how it is done in CMakeLists.txt. 6970 6971 configure.ac | 12 +----------- 6972 1 file changed, 1 insertion(+), 11 deletions(-) 6973 6974commit 5a728813c378cc3c4c9c95793762452418d08f1b 6975Author: Lasse Collin <lasse.collin@tukaani.org> 6976Date: 2024-06-24 23:34:34 +0300 6977 6978 Build: Sync the compile check changes from CMakeLists.txt 6979 6980 It's nice to keep these in sync. The use of main() will later allow 6981 AC_LINK_IFELSE usage too which may avoid the more fragile -Werror. 6982 6983 configure.ac | 15 ++++++++------- 6984 1 file changed, 8 insertions(+), 7 deletions(-) 6985 6986commit 5279828635a95abdef82e691fc4979d362780e63 6987Author: Lasse Collin <lasse.collin@tukaani.org> 6988Date: 2024-06-24 20:14:43 +0300 6989 6990 CMake: Not experimental anymore 6991 6992 While the CMake support has gotten a lot less testing than 6993 the Autotools-based build, the supported features should now 6994 be equal. The output may differ slightly, for example, 6995 liblzma.pc may have 6996 6997 Libs.private: -pthread -lpthread 6998 6999 with Autotools on GNU/Linux. CMake doesn't put any options 7000 in Libs.private because on modern glibc the pthread functions 7001 are in libc. The options options aren't required to link static 7002 liblzma into an application. 7003 7004 Autotools-based build doesn't generate or install 7005 lib/cmake/liblzma-*.cmake files. This means that on most 7006 platforms one cannot rely on 7007 7008 find_package(liblzma 5.2.5 REQUIRED CONFIG) 7009 7010 or such finding those files. 7011 7012 CMakeLists.txt | 9 ++++++--- 7013 1 file changed, 6 insertions(+), 3 deletions(-) 7014 7015commit de215a0517645d16343f3a5336d3df884a4f665f 7016Author: Lasse Collin <lasse.collin@tukaani.org> 7017Date: 2024-06-25 16:11:13 +0300 7018 7019 CMake: Use configure_file() to copy a file 7020 7021 I had missed this simpler method before. It does create a dependency 7022 so that if .in.h changes the copying is done again. 7023 7024 CMakeLists.txt | 17 +++++++---------- 7025 1 file changed, 7 insertions(+), 10 deletions(-) 7026 7027commit e620f35097c0ad20cd76d8258750aa706758ced9 7028Author: Lasse Collin <lasse.collin@tukaani.org> 7029Date: 2024-06-25 15:51:48 +0300 7030 7031 CMake: Always add pthread flags into CMAKE_REQUIRED_LIBRARIES 7032 7033 It was weird to add CMAKE_THREAD_LIBS_INIT in CMAKE_REQUIRED_LIBRARIES 7034 only if CLOCK_MONOTONIC is available. Alternative would be to remove 7035 the thread libs from CMAKE_REQUIRED_LIBRARIES after the check for 7036 pthread_condattr_setclock() but keeping the libs should be fine too. 7037 Then it's ready in case more pthread functions were wanted some day. 7038 7039 CMakeLists.txt | 6 ++++-- 7040 1 file changed, 4 insertions(+), 2 deletions(-) 7041 7042commit 068a70e54932ca32ca2922aff5a67a62615c650b 7043Author: Sam James <sam@gentoo.org> 7044Date: 2024-06-24 19:25:30 +0100 7045 7046 CMake: Tweak comments 7047 7048 Co-authored-by: Lasse Collin <lasse.collin@tukaani.org> 7049 7050 CMakeLists.txt | 15 +++++++-------- 7051 1 file changed, 7 insertions(+), 8 deletions(-) 7052 7053commit 3c95c93bca593bdd54ac5cc01526b12c82c78faa 7054Author: Lasse Collin <lasse.collin@tukaani.org> 7055Date: 2024-06-24 22:42:01 +0300 7056 7057 CMake: Edit white space for consistency 7058 7059 CMakeLists.txt | 26 +++++++++++++------------- 7060 1 file changed, 13 insertions(+), 13 deletions(-) 7061 7062commit 114cba69dbb96003e676c8c87a2e9943b12d065f 7063Author: Lasse Collin <lasse.collin@tukaani.org> 7064Date: 2024-06-24 22:41:10 +0300 7065 7066 CMake: Fix three checks if building with -flto 7067 7068 In CMake, check_c_source_compiles() always links too. With 7069 link-time optimization, unused functions may get omitted if 7070 main() doesn't depend on them. Consider the following which 7071 tries to check if somefunction() is available when <someheader.h> 7072 has been included: 7073 7074 #include <someheader.h> 7075 int foo(void) { return somefunction(); } 7076 int main(void) { return 0; } 7077 7078 LTO may omit foo() completely because the program as a whole doesn't 7079 need it and then the program will link even if the symbol somefunction 7080 isn't available in libc or other library being linked in, and then 7081 the test may pass when it shouldn't. 7082 7083 What happens if <someheader.h> doesn't declare somefunction()? 7084 Shouldn't the test fail in the compilation phase already? It should 7085 but many compilers don't follow the C99 and later standards that 7086 prohibit implicit function declarations. Instead such compilers 7087 assume that somefunction() exists, compilation succeeds (with a 7088 warning), and then linker with LTO omits the call to somefunction(). 7089 7090 Change the tests so that they are part of main(). If compiler accepts 7091 implicitly declared functions, LTO cannot omit them because it has to 7092 assume that they might have side effects and thus linking will fail. 7093 On the other hand, if the functions/intrinsics being used are supported, 7094 they might get optimized away but in that case it's fine because they 7095 really are supported. 7096 7097 It is fine to use __attribute__((target(...))) for main(). At least 7098 it works with GCC 4.9 to 14.1 on x86-64. 7099 7100 Reported-by: Sam James <sam@gentoo.org> 7101 7102 CMakeLists.txt | 19 ++++++++----------- 7103 1 file changed, 8 insertions(+), 11 deletions(-) 7104 7105commit 78e882205e1f1e91df2af2cb7da00fe205dede99 7106Author: Lasse Collin <lasse.collin@tukaani.org> 7107Date: 2024-06-24 21:19:14 +0300 7108 7109 CMake: Use MATCHES instead of multiple STREQUAL 7110 7111 CMakeLists.txt | 11 ++++------- 7112 1 file changed, 4 insertions(+), 7 deletions(-) 7113 7114commit d3f20382fc1bd865eb70a65455d5022ed05caac8 7115Author: Lasse Collin <lasse.collin@tukaani.org> 7116Date: 2024-06-24 21:06:18 +0300 7117 7118 CMake: Improve the comment about LIBS 7119 7120 CMakeLists.txt | 6 ++++++ 7121 1 file changed, 6 insertions(+) 7122 7123commit 33ec377729a3889e58d98934b2777b2754a3e045 7124Author: Lasse Collin <lasse.collin@tukaani.org> 7125Date: 2024-06-24 20:01:25 +0300 7126 7127 CMake: Fix a typo in a message 7128 7129 It was spotted with codespell. 7130 7131 CMakeLists.txt | 2 +- 7132 1 file changed, 1 insertion(+), 1 deletion(-) 7133 7134commit 2a47be823cd6c717bc91fa29c7710c9b1ae0331f 7135Author: Lasse Collin <lasse.collin@tukaani.org> 7136Date: 2024-06-24 19:58:54 +0300 7137 7138 Document CMake options in INSTALL 7139 7140 INSTALL | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 7141 1 file changed, 106 insertions(+), 9 deletions(-) 7142 7143commit 3faf4e8079a46bd46e05cd1234365724a6a33802 7144Author: Lasse Collin <lasse.collin@tukaani.org> 7145Date: 2024-06-24 17:18:44 +0300 7146 7147 CI: Don't omit crc32 from the list with CMake anymore 7148 7149 XZ_CHECKS accepts it but works without too. 7150 7151 build-aux/ci_build.bash | 10 +--------- 7152 1 file changed, 1 insertion(+), 9 deletions(-) 7153 7154commit 1bf83cded2955282fe1a868f08c83d4e5d6dca4a 7155Author: Lasse Collin <lasse.collin@tukaani.org> 7156Date: 2024-06-24 17:39:54 +0300 7157 7158 CI: Workaround buggy config.guess on Ubuntu 22.04LTS and 24.04LTS 7159 7160 Check for the wrong triplet from config.guess and override it with 7161 the --build option on the configure command line. Then i386 assembly 7162 autodetection will work. 7163 7164 These Ubuntu versions (and as of writing, also Debian unstable) 7165 ship config.guess version 2022-01-09 which contains a bug that 7166 was fixed in version 2022-05-08. It results in a wrong configure 7167 triplet when using CC="gcc -m32" to build i386 binaries. 7168 7169 Upstream fix: 7170 https://git.savannah.gnu.org/cgit/config.git/commit/?id=f56a7140386d08a531bcfd444d632b28c61a6329 7171 7172 More information: 7173 https://mail.gnu.org/archive/html/config-patches/2022-05/msg00003.html 7174 7175 build-aux/ci_build.bash | 9 +++++++++ 7176 1 file changed, 9 insertions(+) 7177 7178commit dbcdabf68fee9ed694b68c3a82e6adbeff20b679 7179Author: Lasse Collin <lasse.collin@tukaani.org> 7180Date: 2024-06-24 15:24:52 +0300 7181 7182 CI: Use CC="gcc -m32" to get i386 compiler on x86-64 7183 7184 The old method put it in CFLAGS which is a wrong place because 7185 config.guess doesn't read CFLAGS. 7186 7187 .github/workflows/ci.yml | 4 ++-- 7188 1 file changed, 2 insertions(+), 2 deletions(-) 7189 7190commit 0c1e6d900bac127464fb30a854776e1810ab5f16 7191Author: Lasse Collin <lasse.collin@tukaani.org> 7192Date: 2024-06-24 14:54:17 +0300 7193 7194 CI: Let CMake use the CC environment variable 7195 7196 CC from environment is used to initialize CMAKE_C_COMPILER so 7197 setting CMAKE_C_COMPILER explicitly isn't needed. 7198 7199 The syntax in ci_build.bash was broken in case one wished to put 7200 spaces in CC. 7201 7202 build-aux/ci_build.bash | 4 ---- 7203 1 file changed, 4 deletions(-) 7204 7205commit a3d6eb797c1bd9b0425ef6754e475e43e62bf075 7206Author: Lasse Collin <lasse.collin@tukaani.org> 7207Date: 2024-06-20 23:25:42 +0300 7208 7209 CMake: Add autodetection for 32-bit x86 CRC assembly usage 7210 7211 CMakeLists.txt | 33 ++++++++++++++++++--------------- 7212 1 file changed, 18 insertions(+), 15 deletions(-) 7213 7214commit dbc14f213e5cf866f1f42b7c6381a91e1189908c 7215Author: Lasse Collin <lasse.collin@tukaani.org> 7216Date: 2024-06-20 23:00:59 +0300 7217 7218 CMake: Move option(XZ_ASM_I386) downwards a few lines 7219 7220 CMakeLists.txt | 16 ++++++++-------- 7221 1 file changed, 8 insertions(+), 8 deletions(-) 7222 7223commit e5c2b07b489b155c1bebd5cb5e5b94325c2fef1a 7224Author: Lasse Collin <lasse.collin@tukaani.org> 7225Date: 2024-06-20 18:45:41 +0300 7226 7227 DOS: Update Makefile and config.h for the CRC changes 7228 7229 dos/Makefile | 4 ++-- 7230 dos/config.h | 3 +++ 7231 2 files changed, 5 insertions(+), 2 deletions(-) 7232 7233commit fe77c4e130d62dc3f9c1de40a18c0c6caa5a4d88 7234Author: Lasse Collin <lasse.collin@tukaani.org> 7235Date: 2024-06-23 15:35:35 +0300 7236 7237 liblzma: Tidy up crc_common.h 7238 7239 Prefix ARM64_RUNTIME_DETECTION with CRC_ and reorder it to be with 7240 the other ARM64-specific lines. That macro isn't used outside this 7241 file. 7242 7243 ARM64 CLMUL implementation doesn't exist yet and thus CRC64_ARM64_CLMUL 7244 isn't used anywhere yet. 7245 7246 It's not ideal that the single-letter CRC utility macros are here 7247 as they pollute the namespace of the LZ encoder files. Those could 7248 be moved their own crc_macros.h like they were in 5.2.x but in practice 7249 this is fine enough already. 7250 7251 src/liblzma/check/crc_common.h | 62 ++++++++++++++++++++++++++++-------------- 7252 1 file changed, 42 insertions(+), 20 deletions(-) 7253 7254commit 7484d375384f551d475ff44a93590a225e0cb8f6 7255Author: Lasse Collin <lasse.collin@tukaani.org> 7256Date: 2024-06-23 14:22:08 +0300 7257 7258 liblzma: Move lzma_crcXX_table[][] declarations to crc_common.h 7259 7260 LZ encoder needs lzma_crc32_table[0] but otherwise those tables 7261 are private to the CRC code. In contrast, the other things in 7262 check.h are needed in several places. 7263 7264 src/liblzma/check/check.h | 18 ------------------ 7265 src/liblzma/check/crc32_small.c | 3 +++ 7266 src/liblzma/check/crc_common.h | 18 ++++++++++++++++++ 7267 src/liblzma/lz/lz_encoder_hash.h | 4 ++-- 7268 4 files changed, 23 insertions(+), 20 deletions(-) 7269 7270commit 85b081f5d4598342b8c155a2c08697fb2adc372c 7271Author: Lasse Collin <lasse.collin@tukaani.org> 7272Date: 2024-06-19 18:38:22 +0300 7273 7274 liblzma: Make 32-bit x86 CRC assembly co-exist with CLMUL 7275 7276 Now runtime detection of CLMUL support can pick between the CLMUL and 7277 the generic assembly implementations. Whatever overhead this has for 7278 builds that omit CLMUL completely isn't important because builds for 7279 any non-ancient system is likely to include the CLMUL code too. 7280 7281 Handle the CRC tables in crcXX_fast.c files because now these files 7282 are built even when assembly code is used. 7283 7284 If 32-bit x86 assembly is enabled then it will always be built even 7285 if compiler flags were such that CLMUL would be allowed unconditionally. 7286 That is, runtime detection will be used anyway. This keeps the build 7287 rules simpler. 7288 7289 In LZ encoder, build and use lzma_lz_hash_table[256] if CLMUL CRC 7290 is used without runtime detection. Previously this wasn't needed 7291 because crc32_table.c included the lzma_crc32_table[][] in the build 7292 unless encoder support had been disabled. Including an 8 KiB table 7293 was silly when only 1 KiB is actually used. So now liblzma is 7 KiB 7294 smaller if CLMUL is enabled without runtime detection. 7295 7296 CMakeLists.txt | 8 ++------ 7297 src/liblzma/check/Makefile.inc | 8 ++------ 7298 src/liblzma/check/crc32_fast.c | 14 ++++++++++++- 7299 src/liblzma/check/crc32_table.c | 42 --------------------------------------- 7300 src/liblzma/check/crc32_x86.S | 14 +++++-------- 7301 src/liblzma/check/crc64_fast.c | 18 +++++++++++++---- 7302 src/liblzma/check/crc64_table.c | 37 ---------------------------------- 7303 src/liblzma/check/crc64_x86.S | 14 +++++-------- 7304 src/liblzma/check/crc_common.h | 18 +++++++++-------- 7305 src/liblzma/check/crc_x86_clmul.h | 5 ----- 7306 src/liblzma/lz/lz_encoder.c | 2 +- 7307 src/liblzma/lz/lz_encoder_hash.h | 30 ++++++++++++++++++++-------- 7308 12 files changed, 74 insertions(+), 136 deletions(-) 7309 7310commit 6667d503b5dc9826654e3d9ad505e1883ff6c388 7311Author: Lasse Collin <lasse.collin@tukaani.org> 7312Date: 2024-06-19 17:44:41 +0300 7313 7314 liblzma: CRC: Rename crcXX_generic to lzma_crcXX_generic 7315 7316 This prepares for the possibility that lzma_crc32_generic and 7317 lzma_crc64_generic are extern functions. 7318 7319 src/liblzma/check/crc32_fast.c | 6 +++--- 7320 src/liblzma/check/crc64_fast.c | 6 +++--- 7321 2 files changed, 6 insertions(+), 6 deletions(-) 7322 7323commit 1dca581ff20aa1cde61e9e5267d3aeb0af9b6845 7324Author: Lasse Collin <lasse.collin@tukaani.org> 7325Date: 2024-06-20 22:55:22 +0300 7326 7327 CMake: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 7328 7329 CMakeLists.txt | 3 +++ 7330 1 file changed, 3 insertions(+) 7331 7332commit f76837acb65676e541d8ee79cd62dbbf27280a62 7333Author: Lasse Collin <lasse.collin@tukaani.org> 7334Date: 2024-05-10 16:00:26 +0300 7335 7336 Build: Define HAVE_CRC_X86_ASM when 32-bit x86 CRC assembly is used 7337 7338 This makes it easier to determine when the CRC tables are needed. 7339 7340 configure.ac | 9 +++++++-- 7341 1 file changed, 7 insertions(+), 2 deletions(-) 7342 7343commit 9ce0866b070850da4dc837741ff055faa218bdd6 7344Author: Lasse Collin <lasse.collin@tukaani.org> 7345Date: 2024-06-21 00:46:09 +0300 7346 7347 CI: Update to the new renamed options in CMakeLists.txt 7348 7349 build-aux/ci_build.bash | 10 +++++----- 7350 1 file changed, 5 insertions(+), 5 deletions(-) 7351 7352commit 0232e66d5bc5b01a25a447c657e51747626488ab 7353Author: Lasse Collin <lasse.collin@tukaani.org> 7354Date: 2024-06-20 18:12:22 +0300 7355 7356 CMake: Add XZ_EXTERNAL_SHA256 7357 7358 CMakeLists.txt | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 7359 1 file changed, 116 insertions(+), 5 deletions(-) 7360 7361commit 4535b80caead82a7ddf7feb988b8fbc773152522 7362Author: Lasse Collin <lasse.collin@tukaani.org> 7363Date: 2024-06-20 18:12:21 +0300 7364 7365 CMake: Move threading detection a few lines up 7366 7367 It feels clearer this way, and when support for external SHA-256 7368 is added, this will keep the order of the library detection the 7369 same as in configure.ac (check for pthreads before libmd) although 7370 it shouldn't matter in practice. 7371 7372 CMakeLists.txt | 176 ++++++++++++++++++++++++++++----------------------------- 7373 1 file changed, 88 insertions(+), 88 deletions(-) 7374 7375commit 94d062dbac34d366eb26625034200cc3457e6645 7376Author: Lasse Collin <lasse.collin@tukaani.org> 7377Date: 2024-06-20 18:12:21 +0300 7378 7379 CMake: Move the sandbox code out of the liblzma section 7380 7381 Sandboxing is for the command line tools, not liblzma. 7382 No functional changes. 7383 7384 CMakeLists.txt | 214 ++++++++++++++++++++++++++++----------------------------- 7385 1 file changed, 107 insertions(+), 107 deletions(-) 7386 7387commit 75ce4797d49621710e6da95d8cb91541028c6d68 7388Author: Lasse Collin <lasse.collin@tukaani.org> 7389Date: 2024-06-20 18:12:21 +0300 7390 7391 CMake: Keep existing options in LIBS when adding -lrt 7392 7393 This makes no difference yet because -lrt is currently the only option 7394 that might be added to LIBS. 7395 7396 CMakeLists.txt | 2 +- 7397 1 file changed, 1 insertion(+), 1 deletion(-) 7398 7399commit 47aaa92516fd9609821d04e5e94ca6558e56d62b 7400Author: Lasse Collin <lasse.collin@tukaani.org> 7401Date: 2024-06-15 18:07:04 +0300 7402 7403 CMake: Don't install scripts if the xz tool isn't built 7404 7405 The scripts need the xz tool. 7406 7407 CMakeLists.txt | 11 +++++++++-- 7408 tests/tests.cmake | 2 +- 7409 2 files changed, 10 insertions(+), 3 deletions(-) 7410 7411commit fb50c6ba1d4c9405e5b12b5988b01a3002638c5d 7412Author: Lasse Collin <lasse.collin@tukaani.org> 7413Date: 2024-06-15 18:07:04 +0300 7414 7415 CMake: Add XZ_TOOL_XZDEC and XZ_TOOL_LZMADEC 7416 7417 CMakeLists.txt | 15 ++++++++++++++- 7418 1 file changed, 14 insertions(+), 1 deletion(-) 7419 7420commit def767f7d18ccbd81cd5e5b46c8b6031f3a1de34 7421Author: Lasse Collin <lasse.collin@tukaani.org> 7422Date: 2024-06-15 18:07:04 +0300 7423 7424 CMake: Add XZ_TOOL_LZMAINFO 7425 7426 CMakeLists.txt | 4 +++- 7427 1 file changed, 3 insertions(+), 1 deletion(-) 7428 7429commit 5600e370fb7e11eafabc6c3ef5bf6510e859f4f0 7430Author: Lasse Collin <lasse.collin@tukaani.org> 7431Date: 2024-06-15 18:07:04 +0300 7432 7433 CMake: Add XZ_TOOL_XZ 7434 7435 CMakeLists.txt | 4 +++- 7436 1 file changed, 3 insertions(+), 1 deletion(-) 7437 7438commit 6a3c4aaa43a90da441e1156c5ffd2e6098f5521f 7439Author: Lasse Collin <lasse.collin@tukaani.org> 7440Date: 2024-06-15 18:07:04 +0300 7441 7442 Windows: Drop Visual Studio 2013 support 7443 7444 This simplifies things a little. Building liblzma with VS2013 probably 7445 still worked but building the command line tools was not supported. 7446 7447 Microsoft ended support for VS2013 on 2024-04. 7448 7449 CMakeLists.txt | 9 +++++++-- 7450 src/common/sysdefs.h | 6 +----- 7451 windows/INSTALL-MSVC.txt | 8 ++------ 7452 3 files changed, 10 insertions(+), 13 deletions(-) 7453 7454commit 5d5c92b26246936461a635dda1f95740d7de2058 7455Author: Lasse Collin <lasse.collin@tukaani.org> 7456Date: 2024-06-15 18:07:04 +0300 7457 7458 CMake: Add XZ_TOOL_SCRIPTS 7459 7460 CMakeLists.txt | 44 +++++++++++++++++++++++++++++--------------- 7461 1 file changed, 29 insertions(+), 15 deletions(-) 7462 7463commit d274a2bc00d235f07e96aaf82c149794cfe82b12 7464Author: Lasse Collin <lasse.collin@tukaani.org> 7465Date: 2024-06-15 18:07:04 +0300 7466 7467 CMake: Add XZ_DOC 7468 7469 CMakeLists.txt | 45 ++++++++++++++++++++++++--------------------- 7470 1 file changed, 24 insertions(+), 21 deletions(-) 7471 7472commit 188143a50ade67253ed256608f50f78aa1380403 7473Author: Lasse Collin <lasse.collin@tukaani.org> 7474Date: 2024-06-20 21:53:03 +0300 7475 7476 CMake: Refactor XZ_SYMBOL_VERSIONING to match configure.ac 7477 7478 Make the available options and their behavior match 7479 --enable-symbol-versions in configure.ac. 7480 7481 Don't enable symbol versions on Linux if not using glibc. Previously 7482 the generic variant was selected on Microblaze or if using NVHPC 7483 without checking that libc is glibc. 7484 7485 Leave the cache variable to "auto" or "yes" if that was specified 7486 instead of setting it to the autodetected value by default. A downside 7487 is that one cannot easily see which variant the autodetection code 7488 has selected. The same applies to XZ_SANDBOX and XZ_THREADS though. 7489 7490 CMakeLists.txt | 125 ++++++++++++++++++++++++++++++++++----------------------- 7491 1 file changed, 75 insertions(+), 50 deletions(-) 7492 7493commit cc52ef8ed3b75a581262c587f6c06c213a550f86 7494Author: Lasse Collin <lasse.collin@tukaani.org> 7495Date: 2024-06-15 18:07:04 +0300 7496 7497 CMake: Use the same option list for XZ_THREADS as in configure.ac 7498 7499 Also clarify that "yes" will fail if no threading support is found. 7500 If no threading is wanted, it has to be disabled manually. 7501 7502 configure.ac doesn't behave this way at the moment. Instead it 7503 assumes pthreads to be present if not targeting Windows. If pthreads 7504 actually are missing, the build fails later. 7505 7506 CMakeLists.txt | 18 ++++++++++-------- 7507 1 file changed, 10 insertions(+), 8 deletions(-) 7508 7509commit 37f7af3452bab0a34ce320c2ad532835f18752d9 7510Author: Lasse Collin <lasse.collin@tukaani.org> 7511Date: 2024-06-15 18:07:04 +0300 7512 7513 CMake: Use the same option list for XZ_SANDBOX as in configure.ac 7514 7515 It's simpler to document this way. 7516 7517 CMakeLists.txt | 20 ++++++++++---------- 7518 1 file changed, 10 insertions(+), 10 deletions(-) 7519 7520commit c715dec8e800b65145918cfb0ee9bbc90faa8aad 7521Author: Lasse Collin <lasse.collin@tukaani.org> 7522Date: 2024-06-15 18:07:04 +0300 7523 7524 CMake: Fix indentation 7525 7526 CMakeLists.txt | 2 +- 7527 1 file changed, 1 insertion(+), 1 deletion(-) 7528 7529commit ea379f2f180befabd2039342db8eaeb757fdd2b7 7530Author: Lasse Collin <lasse.collin@tukaani.org> 7531Date: 2024-06-15 18:07:04 +0300 7532 7533 CMake: Add warning options for GCC and Clang 7534 7535 The list was copied from configure.ac and should be kept in sync. 7536 (Pretend that the deleted comment in CMakeLists.txt didn't exist.) 7537 7538 There is no need to add equivalent of --enable-werror as CMake >= 3.24 7539 supports -DCMAKE_COMPILE_WARNING_AS_ERROR=ON. 7540 7541 CMakeLists.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 7542 1 file changed, 59 insertions(+), 5 deletions(-) 7543 7544commit 74223338197b7dfcd69f56df78b6502805a75f23 7545Author: Lasse Collin <lasse.collin@tukaani.org> 7546Date: 2024-06-15 18:07:04 +0300 7547 7548 CMake: Use \040 instead of \x20 for a space 7549 7550 This is for consistency with 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 7551 where \040 has to be used because \0x20F gets interpret at three hex 7552 digits. Octals escapes are never longer than three digits. 7553 7554 CMakeLists.txt | 2 +- 7555 1 file changed, 1 insertion(+), 1 deletion(-) 7556 7557commit e8854b6bdc956c46dc4232bd07c17163034a00f2 7558Author: Lasse Collin <lasse.collin@tukaani.org> 7559Date: 2024-06-15 18:07:04 +0300 7560 7561 CMake: Add XZ_ASSUME_RAM 7562 7563 CMakeLists.txt | 4 +++- 7564 1 file changed, 3 insertions(+), 1 deletion(-) 7565 7566commit e1127e75cb82e0385f02c995771d6fe1420f43c5 7567Author: Lasse Collin <lasse.collin@tukaani.org> 7568Date: 2024-06-15 18:07:04 +0300 7569 7570 CMake: Rename liblzma_INSTALL_CMAKEDIR to XZ_INSTALL_CMAKEDIR 7571 7572 CMakeLists.txt | 6 +++--- 7573 1 file changed, 3 insertions(+), 3 deletions(-) 7574 7575commit 96abfe98c15e431a50a6a31015c5bb05540ab2ff 7576Author: Lasse Collin <lasse.collin@tukaani.org> 7577Date: 2024-06-15 18:07:04 +0300 7578 7579 CMake: Refactor ADDITIONAL_CHECK_TYPES to XZ_CHECKS 7580 7581 Now "crc32" is in the list too for completeness but it doesn't 7582 actually have any effect. The description of the cache variable 7583 says that "crc32 is always built" so it should be clear enough. 7584 7585 CMakeLists.txt | 14 +++++++------- 7586 tests/tests.cmake | 17 ++++++++--------- 7587 2 files changed, 15 insertions(+), 16 deletions(-) 7588 7589commit 679500ffe00ecb4f02292129e7529ab7392f3943 7590Author: Lasse Collin <lasse.collin@tukaani.org> 7591Date: 2024-06-15 18:07:04 +0300 7592 7593 CMake: Rename the cache variable POSIX_SHELL to XZ_POSIX_SHELL 7594 7595 We still need the variable POSIX_SHELL for configure_file() 7596 but it doesn't need to be a cache variable. 7597 7598 CMakeLists.txt | 7 ++++--- 7599 1 file changed, 4 insertions(+), 3 deletions(-) 7600 7601commit e5c0eb2e50e5522a0a55e7ba83fe49b04c8a6eef 7602Author: Lasse Collin <lasse.collin@tukaani.org> 7603Date: 2024-06-15 18:07:04 +0300 7604 7605 CMake: Rename ENCODERS and DECODERS to use XZ_ prefix 7606 7607 CMakeLists.txt | 34 +++++++++++++++++----------------- 7608 tests/tests.cmake | 4 ++-- 7609 2 files changed, 19 insertions(+), 19 deletions(-) 7610 7611commit e7785e2061f95d44aa6c0856b09cc0fbad7d6154 7612Author: Lasse Collin <lasse.collin@tukaani.org> 7613Date: 2024-06-15 18:07:04 +0300 7614 7615 CMake: Rename MATCH_FINDERS to XZ_MATCH_FINDERS 7616 7617 CMakeLists.txt | 6 +++--- 7618 1 file changed, 3 insertions(+), 3 deletions(-) 7619 7620commit 63294806b488a27a28a0960f6a257695dd2b569a 7621Author: Lasse Collin <lasse.collin@tukaani.org> 7622Date: 2024-06-15 18:07:04 +0300 7623 7624 CMake: Rename SYMBOL_VERSIONING to XZ_SYMBOL_VERSIONING 7625 7626 CMakeLists.txt | 9 +++++---- 7627 1 file changed, 5 insertions(+), 4 deletions(-) 7628 7629commit ad245b133675d285bca5d48123062e9d1e3f747e 7630Author: Lasse Collin <lasse.collin@tukaani.org> 7631Date: 2024-06-15 18:07:04 +0300 7632 7633 CMake: Rename ENABLE_THREADS to XZ_THREADS 7634 7635 CMakeLists.txt | 24 +++++++++++------------- 7636 1 file changed, 11 insertions(+), 13 deletions(-) 7637 7638commit 4250d4de32e66e558cc2ebe73b05255633c933ed 7639Author: Lasse Collin <lasse.collin@tukaani.org> 7640Date: 2024-06-15 18:07:04 +0300 7641 7642 CMake: Rename ENABLE_SANDBOX to XZ_SANDBOX 7643 7644 CMakeLists.txt | 23 +++++++++++------------ 7645 1 file changed, 11 insertions(+), 12 deletions(-) 7646 7647commit 0fdcd0c582f1a38542cd647dde449d9447d5888d 7648Author: Lasse Collin <lasse.collin@tukaani.org> 7649Date: 2024-06-15 18:07:04 +0300 7650 7651 CMake: Rename ENABLE_X86_ASM to XZ_ASM_I386 7652 7653 CMakeLists.txt | 10 +++++----- 7654 1 file changed, 5 insertions(+), 5 deletions(-) 7655 7656commit e017d5526e316003fdb2a3f76acbb83443f14ddf 7657Author: Lasse Collin <lasse.collin@tukaani.org> 7658Date: 2024-06-15 18:07:04 +0300 7659 7660 CMake: Rename CREATE_XZ_SYMLINKS to XZ_TOOL_SYMLINKS 7661 7662 This only affects the names unxz and xzcat. The xz-prefixed script 7663 symlinks (xzfgrep and such) are always created if scripts are enabled. 7664 7665 CMakeLists.txt | 4 ++-- 7666 1 file changed, 2 insertions(+), 2 deletions(-) 7667 7668commit 04cac14fcb9fb302c24e90b04ca4b77d3717b50c 7669Author: Lasse Collin <lasse.collin@tukaani.org> 7670Date: 2024-06-15 18:07:04 +0300 7671 7672 CMake: Rename CREATE_LZMA_SYMLINKS to XZ_TOOL_LZMA_SYMLINKS 7673 7674 Update the description too. 7675 7676 It affects creation of not only the legacy lzma, unlzma, lzcat symlinks 7677 but also lzgrep and other legacy names for the scripts. The last 7678 LZMA Utils release was made in 2008 but these names are still used 7679 in some places to handle .lzma files. 7680 7681 CMakeLists.txt | 7 ++++--- 7682 1 file changed, 4 insertions(+), 3 deletions(-) 7683 7684commit 612ccebf884eb1a9b6848e230c24f97a03fe917a 7685Author: Lasse Collin <lasse.collin@tukaani.org> 7686Date: 2024-06-15 18:07:04 +0300 7687 7688 CMake: Rename ALLOW_ARM64_CRC32 to XZ_ARM64_CRC32 7689 7690 Update description too. 7691 7692 CMakeLists.txt | 6 +++--- 7693 1 file changed, 3 insertions(+), 3 deletions(-) 7694 7695commit 3dcc12290d6dffbe7f10f501c141d325bad65901 7696Author: Lasse Collin <lasse.collin@tukaani.org> 7697Date: 2024-06-15 18:07:04 +0300 7698 7699 CMake: Rename ALLOW_CLMUL_CRC to XZ_CLMUL_CRC 7700 7701 Update description too. 7702 7703 CMakeLists.txt | 6 +++--- 7704 1 file changed, 3 insertions(+), 3 deletions(-) 7705 7706commit 4b8faa72442da9aa1a356f5848aae798d8588a7d 7707Author: Lasse Collin <lasse.collin@tukaani.org> 7708Date: 2024-06-15 18:07:04 +0300 7709 7710 CMake: Rename ENABLE_DOXYGEN to XZ_DOXYGEN 7711 7712 CMakeLists.txt | 4 ++-- 7713 1 file changed, 2 insertions(+), 2 deletions(-) 7714 7715commit b56273ae575bac350e50b0c689269dcab04b04b3 7716Author: Lasse Collin <lasse.collin@tukaani.org> 7717Date: 2024-06-15 18:07:04 +0300 7718 7719 CMake: Rename LZIP_DECODER to XZ_LZIP_DECODER 7720 7721 CMakeLists.txt | 4 ++-- 7722 tests/tests.cmake | 2 +- 7723 2 files changed, 3 insertions(+), 3 deletions(-) 7724 7725commit 2343992fcbe8b436da6df888be37713cccaff0ab 7726Author: Lasse Collin <lasse.collin@tukaani.org> 7727Date: 2024-06-15 18:07:04 +0300 7728 7729 CMake: Rename MICROLZMA_ENCODER/DECODER to XZ_MICROLZMA_ENCODER/DECODER 7730 7731 CMakeLists.txt | 8 ++++---- 7732 tests/tests.cmake | 2 +- 7733 2 files changed, 5 insertions(+), 5 deletions(-) 7734 7735commit 96f0a6632cc0598a26d93255b0c444df18dc7891 7736Author: Lasse Collin <lasse.collin@tukaani.org> 7737Date: 2024-06-15 18:07:04 +0300 7738 7739 CMake: Rename ENABLE_SMALL to XZ_SMALL 7740 7741 CMakeLists.txt | 14 +++++++------- 7742 1 file changed, 7 insertions(+), 7 deletions(-) 7743 7744commit 29f77c7b707f2458fb047e77497354b195e05b14 7745Author: Lasse Collin <lasse.collin@tukaani.org> 7746Date: 2024-06-15 18:07:04 +0300 7747 7748 CMake: Rename ENABLE_NLS to XZ_NLS 7749 7750 Also update the description to mention that this affects installation 7751 of translated man pages too. 7752 7753 Prefixing the cache variables with the project name helps if 7754 the package is used as a subproject in another package. 7755 It also makes the package-specific options group more nicely 7756 in ccmake and cmake-gui. 7757 7758 CMakeLists.txt | 28 +++++++++++++++------------- 7759 1 file changed, 15 insertions(+), 13 deletions(-) 7760 7761commit ac05f1b0d7cda1e7ae79775a8dfecc54601d7f1c 7762Author: Lasse Collin <lasse.collin@tukaani.org> 7763Date: 2024-06-15 23:34:29 +0300 7764 7765 CMake: Link Threads::Threads as PRIVATE to liblzma 7766 7767 This way pthread options aren't passed to the linker when linking 7768 against shared liblzma but they are still passed when linking against 7769 static liblzma. (Also, one never needs the include path of the 7770 threading library to use liblzma since liblzma's API headers 7771 don't #include <pthread.h>. But <pthread.h> tends to be in the 7772 default include path so here this change makes no difference.) 7773 7774 One cannot mix target_link_libraries() calls that use the scope 7775 (PRIVATE, PUBLIC, or INTERFACE) keyword and calls that don't use it. 7776 The calls without the keyword are like PUBLIC except perhaps when 7777 they aren't, or something like that... It seems best to always 7778 specify a scope keyword as the meanings of those three keywords 7779 at least are clear. 7780 7781 CMakeLists.txt | 2 +- 7782 1 file changed, 1 insertion(+), 1 deletion(-) 7783 7784commit 82986d8c691a294c78b48d8391303e5c428b5437 7785Author: Lasse Collin <lasse.collin@tukaani.org> 7786Date: 2024-06-16 19:39:32 +0300 7787 7788 CMake: Add empty lines 7789 7790 CMakeLists.txt | 2 ++ 7791 1 file changed, 2 insertions(+) 7792 7793commit 2aecffe0f0e14f3ef635e8cd7b405420f2385de2 7794Author: Lasse Collin <lasse.collin@tukaani.org> 7795Date: 2024-06-16 19:37:36 +0300 7796 7797 CMake: Use CMAKE_THREAD_LIBS_INIT in liblzma.pc only with pthreads 7798 7799 This shouldn't make much difference in practice as on Windows 7800 no flags are needed anyway and unitialized variable (when threading 7801 is disabled) expands to empty. But it's clearer this way. 7802 7803 CMakeLists.txt | 8 +++++++- 7804 1 file changed, 7 insertions(+), 1 deletion(-) 7805 7806commit 664918bd3635ea8e773f06022286ecb0c485166c 7807Author: Lasse Collin <lasse.collin@tukaani.org> 7808Date: 2024-06-17 18:20:14 +0300 7809 7810 Update THANKS 7811 7812 THANKS | 3 +++ 7813 1 file changed, 3 insertions(+) 7814 7815commit 5ca96a93488d0f5a530c78b274cac317453807ff 7816Author: Lasse Collin <lasse.collin@tukaani.org> 7817Date: 2024-06-16 19:25:07 +0300 7818 7819 CMake: Use native newlines in liblzma.pc 7820 7821 vcpkg doesn't specify the newline type so it should be fine to 7822 use native newlines in liblzma.pc on Windows. 7823 7824 CMakeLists.txt | 4 +--- 7825 1 file changed, 1 insertion(+), 3 deletions(-) 7826 7827commit ebd155c3a1b87411edae06d3bdaa9659ec057522 7828Author: Lasse Collin <lasse.collin@tukaani.org> 7829Date: 2024-06-16 19:18:56 +0300 7830 7831 CMake: Use relative paths in liblzma.pc if possible 7832 7833 Now liblzma.pc can be relocatable only if using CMake >= 3.20 7834 but that should be OK as now we shouldn't get broken liblzma.pc 7835 if CMAKE_INSTALL_LIBDIR or CMAKE_INSTALL_INCLUDEDIR contain an 7836 absolute path. 7837 7838 Thanks to Eli Schwartz. 7839 7840 CMakeLists.txt | 18 ++++++++++++++---- 7841 1 file changed, 14 insertions(+), 4 deletions(-) 7842 7843commit 7a366d93cfd74ce10201db400be8836199944e36 7844Author: Lasse Collin <lasse.collin@tukaani.org> 7845Date: 2024-06-16 18:33:08 +0300 7846 7847 Revert "CMake: Set only "prefix" as an absolute path in liblzma.pc" 7848 7849 This reverts commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69. 7850 7851 While CMAKE_INSTALL_<dir> tend to be relative paths, they don't need 7852 to be. Thus the commit was broken. A fancier method is required. 7853 7854 Thanks to Eli Schwartz for the bug report and explanation. 7855 7856 CMakeLists.txt | 6 +++--- 7857 1 file changed, 3 insertions(+), 3 deletions(-) 7858 7859commit 30a2d5d51006301a3ddab5ef1f5ff0a9d74dce6f 7860Author: Lasse Collin <lasse.collin@tukaani.org> 7861Date: 2024-06-16 13:39:37 +0300 7862 7863 liblzma: CRC CLMUL: Omit is_arch_extension_supported() when not needed 7864 7865 On E2K the function compiles only due to compiler emulation but the 7866 function is never used. It's cleaner to omit the function when it's 7867 not needed even though it's a "static inline" function. 7868 7869 Thanks to Ilya Kurdyukov. 7870 7871 src/liblzma/check/crc_x86_clmul.h | 4 ++++ 7872 1 file changed, 4 insertions(+) 7873 7874commit 54eaea5ea49bb8bca4286d4412f19ac73187489e 7875Author: Lasse Collin <lasse.collin@tukaani.org> 7876Date: 2024-06-16 13:21:34 +0300 7877 7878 liblzma: x86 CLMUL CRC: Rewrite 7879 7880 It's faster with both tiny and large buffers and doesn't require 7881 disabling any sanitizers. With large buffers the extra speed is 7882 from folding four 16-byte chunks in parallel. 7883 7884 The 32-bit x86 with MSVC reportedly still needs a workaround. 7885 Now the simpler "__asm mov ebx, ebx" trick is enough but it 7886 needs to be in lzma_crc64() instead of crc64_arch_optimized(). 7887 Thanks to Iouri Kharon for testing and the fix. 7888 7889 Thanks to Ilya Kurdyukov for testing the speed with aligned and 7890 unaligned buffers on a few x86 processors and on E2K v6. 7891 7892 Thanks to Sam James for general feedback. 7893 7894 Fixes: https://github.com/tukaani-project/xz/issues/112 7895 Fixes: https://github.com/tukaani-project/xz/issues/122 7896 7897 src/liblzma/check/crc64_fast.c | 8 + 7898 src/liblzma/check/crc_x86_clmul.h | 437 ++++++++++++++++++++------------------ 7899 2 files changed, 237 insertions(+), 208 deletions(-) 7900 7901commit c0e7eaae8d6eef1e313c9d0da20ccf126ec61f38 7902Author: Lasse Collin <lasse.collin@tukaani.org> 7903Date: 2024-06-01 14:44:04 +0300 7904 7905 sysdefs.h: Add alignas 7906 7907 src/common/sysdefs.h | 11 +++++++++++ 7908 1 file changed, 11 insertions(+) 7909 7910commit 20014c261451381d5e2f58e63e7b1fbefd4df4bf 7911Author: Lasse Collin <lasse.collin@tukaani.org> 7912Date: 2024-06-11 12:47:59 +0300 7913 7914 liblzma: Use a single macro to select CLMUL CRC to build 7915 7916 This way it's clearer that two things cannot be selected 7917 at the same time. 7918 7919 src/liblzma/check/crc32_fast.c | 2 +- 7920 src/liblzma/check/crc64_fast.c | 2 +- 7921 src/liblzma/check/crc_x86_clmul.h | 18 ++++++++++-------- 7922 3 files changed, 12 insertions(+), 10 deletions(-) 7923 7924commit d8fb0986171bd6a3066b236fc9a6b3d573c8e441 7925Author: Lasse Collin <lasse.collin@tukaani.org> 7926Date: 2024-06-10 15:31:01 +0300 7927 7928 liblzma: CRC32 CLMUL: Refactor the constants and simplify 7929 7930 By using modulus scaled constants, the final reduction can 7931 be simplified. 7932 7933 src/liblzma/check/crc_x86_clmul.h | 52 +++++++-------------------------------- 7934 1 file changed, 9 insertions(+), 43 deletions(-) 7935 7936commit ef652ac391ff7e8cda656238dc5b5f83bc1554c2 7937Author: Lasse Collin <lasse.collin@tukaani.org> 7938Date: 2024-06-10 15:12:48 +0300 7939 7940 liblzma: CRC64 CLMUL: Refactor the constants 7941 7942 Now it refers to crc_clmul_consts_gen.c. vfold8 was renamed to mu_p 7943 and the p no longer has the lowest bit set (it makes no difference 7944 as the output bits it affects are ignored). 7945 7946 src/liblzma/check/crc_x86_clmul.h | 43 +++++++-------------------------------- 7947 1 file changed, 7 insertions(+), 36 deletions(-) 7948 7949commit 9f5fc17e32bf5c7c6cfadf40c29a1dedb4cc03ac 7950Author: Lasse Collin <lasse.collin@tukaani.org> 7951Date: 2024-06-10 14:45:44 +0300 7952 7953 liblzma: Add crc_clmul_consts_gen.c 7954 7955 It's a standalone program that prints the required constants. 7956 It's won't be a part of the normal build of the package. 7957 7958 src/liblzma/check/Makefile.inc | 1 + 7959 src/liblzma/check/crc_clmul_consts_gen.c | 160 +++++++++++++++++++++++++++++++ 7960 2 files changed, 161 insertions(+) 7961 7962commit 71b147aab7fe4a60ed57b697d5bb490f099894be 7963Author: Lasse Collin <lasse.collin@tukaani.org> 7964Date: 2024-05-09 21:44:03 +0300 7965 7966 liblzma: Remove CRC_USE_GENERIC_FOR_SMALL_INPUTS 7967 7968 It was already commented out. 7969 7970 src/liblzma/check/crc32_fast.c | 21 --------------------- 7971 src/liblzma/check/crc64_fast.c | 5 ----- 7972 src/liblzma/check/crc_common.h | 14 -------------- 7973 src/liblzma/check/crc_x86_clmul.h | 9 +-------- 7974 4 files changed, 1 insertion(+), 48 deletions(-) 7975 7976commit f99a7be40645f86959a5b180dfae948dd165e07c 7977Author: Lasse Collin <lasse.collin@tukaani.org> 7978Date: 2024-05-09 21:03:39 +0300 7979 7980 liblzma: Remove crc_attr_no_sanitize_address 7981 7982 It's not enough to silence the address sanitizer. Also memory and 7983 thread sanitizers would need to be silenced. They, at least currently, 7984 aren't smart enough to see that the extra bytes are discarded from 7985 the xmm registers by later instructions. 7986 7987 Valgrind is smarter, possibly because this kind of code isn't weird 7988 to write in assembly. Agner Fog's optimizing_assembly.pdf even mentions 7989 this idea of doing an aligned read and then discarding the extra 7990 bytes. The sanitizers don't instrument assembly code but Valgrind 7991 checks all code. 7992 7993 It's better to change the implementation to avoid the sanitization 7994 attributes which also look scary in the code. (Somehow they can look 7995 more scary than __asm__ which is implictly unsanitized.) 7996 7997 See also: 7998 https://github.com/tukaani-project/xz/issues/112 7999 https://github.com/tukaani-project/xz/issues/122 8000 8001 src/liblzma/check/crc_common.h | 9 --------- 8002 src/liblzma/check/crc_x86_clmul.h | 3 --- 8003 2 files changed, 12 deletions(-) 8004 8005commit ead4d151996f8a18bf9b07eb1e175c0a1590e562 8006Author: Lasse Collin <lasse.collin@tukaani.org> 8007Date: 2024-06-10 15:37:49 +0300 8008 8009 Revert "Build: Temporarily disable CRC CLMUL to silence OSS Fuzz" 8010 8011 This reverts commit 9f1a6d6f9a258886933a22239a5b81af34b28199. 8012 8013 configure.ac | 4 +--- 8014 1 file changed, 1 insertion(+), 3 deletions(-) 8015 8016commit 2178acf8a4d40a93e970cfcf9b807d5ef6c8da92 8017Author: Lasse Collin <lasse.collin@tukaani.org> 8018Date: 2024-06-12 14:26:44 +0300 8019 8020 CMake: Prefer C11 with a fallback to C99 8021 8022 There is no need to make a similar change in configure.ac. 8023 With Autoconf 2.72, the deprecated macro AC_PROG_CC_C99 8024 is an alias for AC_PROG_CC which prefers a C11 compiler. 8025 8026 CMakeLists.txt | 17 +++++++++++------ 8027 1 file changed, 11 insertions(+), 6 deletions(-) 8028 8029commit c97e9c12fef4d1093ee2a75236742481361f50f5 8030Author: Lasse Collin <lasse.collin@tukaani.org> 8031Date: 2024-06-12 14:20:21 +0300 8032 8033 Update THANKS 8034 8035 THANKS | 4 ++++ 8036 1 file changed, 4 insertions(+) 8037 8038commit 89e9f12e03324b8a186e807b268f34f92d1b2f41 8039Author: Lasse Collin <lasse.collin@tukaani.org> 8040Date: 2024-06-11 11:15:49 +0300 8041 8042 Tests: Improve the CRC32 test 8043 8044 A similar one was already there for CRC64 but nowadays also CRC32 8045 has a CLMUL implementation, so it's good to test it better too. 8046 8047 tests/test_check.c | 17 +++++++++++++---- 8048 1 file changed, 13 insertions(+), 4 deletions(-) 8049 8050commit c7164b1927e3fe7cdba70ee4687e1a590a81043b 8051Author: Lasse Collin <lasse.collin@tukaani.org> 8052Date: 2024-06-11 22:42:26 +0300 8053 8054 xz: Fix white space 8055 8056 src/xz/list.c | 6 +++--- 8057 1 file changed, 3 insertions(+), 3 deletions(-) 8058 8059commit 0a32d2072c598de281058b26dc08920fbf0cd2a1 8060Author: Lasse Collin <lasse.collin@tukaani.org> 8061Date: 2024-06-11 21:59:09 +0300 8062 8063 liblzma: Fix a typo in a comment 8064 8065 Thanks to Sam James for spotting it. 8066 8067 Fixes: f644473a211394447824ea00518d0a214ff3f7f2 8068 8069 src/liblzma/check/crc_x86_clmul.h | 2 +- 8070 1 file changed, 1 insertion(+), 1 deletion(-) 8071 8072commit afd9b4d282a10186808c3331dad4caf79c02d55f 8073Author: Lasse Collin <lasse.collin@tukaani.org> 8074Date: 2024-05-10 15:52:26 +0300 8075 8076 liblzma: Fix a comment indentation 8077 8078 src/liblzma/check/crc_common.h | 6 +++--- 8079 1 file changed, 3 insertions(+), 3 deletions(-) 8080 8081commit 50e6bff274568c568930e15094da8217e7d47d28 8082Author: Lasse Collin <lasse.collin@tukaani.org> 8083Date: 2024-05-09 22:09:12 +0300 8084 8085 liblzma: Fix white space 8086 8087 src/liblzma/check/crc32_table.c | 10 +++++----- 8088 src/liblzma/check/crc_x86_clmul.h | 6 +++--- 8089 src/liblzma/check/sha256.c | 2 +- 8090 3 files changed, 9 insertions(+), 9 deletions(-) 8091 8092commit caea7844d3824755d053b4743c4913d73ac2db3d 8093Author: Lasse Collin <lasse.collin@tukaani.org> 8094Date: 2024-06-01 14:25:29 +0300 8095 8096 tuklib: __STDC_VERSION__ in C23 is 202311 8097 8098 src/common/tuklib_common.h | 4 +--- 8099 1 file changed, 1 insertion(+), 3 deletions(-) 8100 8101commit 9e73918a4f14be754a23f74dda45ca431939a4a0 8102Author: RainRat <rainrat78@yahoo.ca> 8103Date: 2024-06-05 15:21:49 -0700 8104 8105 Fix typos 8106 8107 Closes: https://github.com/tukaani-project/xz/pull/124 8108 8109 INSTALL | 2 +- 8110 doc/examples/03_compress_custom.c | 2 +- 8111 src/common/tuklib_integer.h | 2 +- 8112 src/liblzma/api/lzma/container.h | 2 +- 8113 src/xz/mytime.c | 2 +- 8114 tests/test_filter_str.c | 2 +- 8115 6 files changed, 6 insertions(+), 6 deletions(-) 8116 8117commit 04b23addf3733873667675df2439725f076c2f36 8118Author: Lasse Collin <lasse.collin@tukaani.org> 8119Date: 2024-06-07 15:47:20 +0300 8120 8121 tuklib_integer: Fix building on OpenBSD/sparc64 that uses GCC 4.2 8122 8123 GCC 4.2 doesn't have __builtin_bswap16() and friends so tuklib_integer.h 8124 tries to use OS-specific byte swap methods instead. On OpenBSD those 8125 macros are swap16/32/64 instead of bswap16/32/64 like on other *BSDs 8126 and Darwin. 8127 8128 An alternative to "#ifdef __OpenBSD__" could be "#ifdef swap16" as it 8129 is a macro. But since OpenBSD seems to be a special case under this 8130 special case of "*BSDs and Darwin", checking for __OpenBSD__ seems 8131 the more conservative choice now. 8132 8133 Thanks to Christian Weisgerber and Brad Smith who both submitted 8134 the same patch a few hours apart. 8135 8136 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 8137 Co-authored-by: Brad Smith <brad@comstyle.com> 8138 Closes: https://github.com/tukaani-project/xz/pull/126 8139 8140 src/common/tuklib_integer.h | 12 +++++++++--- 8141 1 file changed, 9 insertions(+), 3 deletions(-) 8142 8143commit dc03f6290f5b9bd3d50c7e12e58dee870889d599 8144Author: Lasse Collin <lasse.collin@tukaani.org> 8145Date: 2024-06-07 15:06:59 +0300 8146 8147 liblzma: Add ARM64 CRC32 instruction support detection on OpenBSD 8148 8149 The C code is from Christian Weisgerber, I merely reordered the OSes. 8150 Then I added the build system checks without testing them. 8151 8152 Also thanks to Brad Smith who submitted a similar patch on GitHub 8153 a few hours after Christian had sent his via email. 8154 8155 Co-authored-by: Christian Weisgerber <naddy@mips.inka.de> 8156 Closes: https://github.com/tukaani-project/xz/pull/125 8157 8158 CMakeLists.txt | 6 ++++++ 8159 configure.ac | 9 +++++++++ 8160 src/liblzma/check/crc32_arm64.h | 15 +++++++++++++++ 8161 src/liblzma/check/crc_common.h | 1 + 8162 4 files changed, 31 insertions(+) 8163 8164commit f5c2ae58ec68c665e62c790b842657afcb31474c 8165Author: Lasse Collin <lasse.collin@tukaani.org> 8166Date: 2024-06-05 13:55:43 +0300 8167 8168 Update THANKS 8169 8170 THANKS | 2 ++ 8171 1 file changed, 2 insertions(+) 8172 8173commit e5491dfab9c54dc7078a8d3d07fabb91d6e06418 8174Author: Lasse Collin <lasse.collin@tukaani.org> 8175Date: 2024-06-05 13:42:47 +0300 8176 8177 CMake: Include the "alpha" or "beta" suffix in PACKAGE_VERSION 8178 8179 This way the version string gets into xzgrep and other scripts 8180 in full and also into liblzma.pc. 8181 8182 For the project() command, a suffixless string is required though. 8183 8184 CMakeLists.txt | 16 +++++++++++++--- 8185 1 file changed, 13 insertions(+), 3 deletions(-) 8186 8187commit 1d3c61575fda0be6b2d50c9e32a343349d5cd5c0 8188Author: Lasse Collin <lasse.collin@tukaani.org> 8189Date: 2024-06-05 13:30:28 +0300 8190 8191 CMake: Fix wrong version variable 8192 8193 liblzma_VERSION has never existed in the repository. xz_VERSION from 8194 the project() command was used for liblzma SOVERSION so use xz_VERSION 8195 here too. 8196 8197 The wrong variable did no harm in practice as PROJECT_VERSION 8198 was used as the fallback. It has the same value as xz_VERSION. 8199 8200 Fixes: 7e3493d40eac0c3fa3d5124097745a70e15c41f6 8201 8202 CMakeLists.txt | 2 +- 8203 1 file changed, 1 insertion(+), 1 deletion(-) 8204 8205commit 5d1c649ba9eb7a5b9371252ebfbc2911dc774e69 8206Author: Lasse Collin <lasse.collin@tukaani.org> 8207Date: 2024-06-05 12:59:59 +0300 8208 8209 CMake: Set only "prefix" as an absolute path in liblzma.pc 8210 8211 CMake provides variables that are relative to CMAKE_INSTALL_PREFIX 8212 so use them instead of repeating the full path. 8213 8214 CMakeLists.txt | 6 +++--- 8215 1 file changed, 3 insertions(+), 3 deletions(-) 8216 8217commit e0d6d05ce0d464e966c0669bbf869202a43cc2f7 8218Author: Lasse Collin <lasse.collin@tukaani.org> 8219Date: 2024-06-04 23:59:29 +0300 8220 8221 CMake: Fix liblzma filename in Windows environments 8222 8223 This is a mess because liblzma DLL outside Cygwin and MSYS2 8224 is liblzma.dll instead of lzma.dll to avoid a conflict with 8225 lzma.dll from LZMA SDK. 8226 8227 On Cygwin the name was "liblzma-5.dll" while "cyglzma-5.dll" 8228 would have been correct (and match what Libtool produces). 8229 MSYS2 likely was broken too as it uses the "msys-" prefix. 8230 8231 This change has no effect with MinGW-w64 because with that 8232 the "lib" prefix was correct already. 8233 8234 With MSVC builds this is a small breaking change that requires developers 8235 to adjust the library name when linking against liblzma. The liblzma.dll 8236 name is kept as is but the import library and static library are now 8237 lzma.lib instead of liblzma.lib. This is helpful when using pkgconf 8238 because "pkgconf --msvc-syntax --libs liblzma" outputs "lzma.lib" 8239 (it's converted from "-llzma" in liblzma.pc). It would be easy to 8240 keep the liblzma.lib naming but the pkgconf compatibility seems worth 8241 it in the long run. The lzma.lib name is compatible with MinGW-w64 8242 too as -llzma will find also lzma.lib. 8243 8244 vcpkg had been patching CMakeLists.txt this way since 2022 but I 8245 learned this only recently. The reasoning for the patch makes sense, 8246 and while this is a small breaking change with MSVC, it seems like 8247 a decent compromise as it keeps the DLL name the same. 8248 8249 2022 patch in vcpkg: https://github.com/microsoft/vcpkg/blob/0707a17ecf1466d64cf1a3c1ee18c8ff02aadb2d/ports/liblzma/win_output_name.patch 8250 See the discussion: https://github.com/microsoft/vcpkg/pull/39024 8251 8252 Thanks to Vincent Torri for confirming the naming issue on Cygwin. 8253 8254 CMakeLists.txt | 34 ++++++++++++++++++++++++++++++---- 8255 1 file changed, 30 insertions(+), 4 deletions(-) 8256 8257commit e7a42cda7c827e016619e8cab15e2faf5d4181ae 8258Author: Lasse Collin <lasse.collin@tukaani.org> 8259Date: 2024-06-03 16:55:03 +0300 8260 8261 Fix version.sh compatiblity with Solaris 8262 8263 The ancient /bin/tr on Solaris doesn't support '\n'. 8264 With /usr/xpg4/bin/tr it works but it might not be in PATH. 8265 8266 Another problem was that sed was given input that didn't have a newline 8267 at the end. Text files must end with a newline to be portable. 8268 8269 Fix both problems: 8270 8271 - Handle multiline input within sed itself to avoid one tr invocation. 8272 The default sed even on Solaris does understand \n. 8273 8274 - Use octals in tr -d. \012 works for ASCII "line feed", it's even 8275 used as an example in the Solaris man page. But we must strip 8276 also ASCII "carriage return" \015 and EBCDIC "next line" \025. 8277 The EBCDIC case got handled with \n previously. Stripping \012 8278 and \015 on EBCDIC system won't matter as those control chars 8279 won't be present in the string in the first place. 8280 8281 An awk-based solution could be an alternative but it might need 8282 special casing on Solaris to used nawk instead of awk. The changes 8283 in this commit are smaller and should have a smaller risk for 8284 regressions. It's also possible that version.sh will be dropped 8285 entirely at some point. 8286 8287 build-aux/version.sh | 5 ++--- 8288 1 file changed, 2 insertions(+), 3 deletions(-) 8289 8290commit a61c9ab4751f2710dcd5459c7d74bbf20781f0f9 8291Author: Lasse Collin <lasse.collin@tukaani.org> 8292Date: 2024-06-03 17:07:11 +0300 8293 8294 CI: Don't require po4a on Solaris 8295 8296 .github/workflows/solaris.yml | 2 +- 8297 1 file changed, 1 insertion(+), 1 deletion(-) 8298 8299commit 5229bdf5335ce18ed54beb7e646e39927663be86 8300Author: Lasse Collin <lasse.collin@tukaani.org> 8301Date: 2024-06-03 15:08:15 +0300 8302 8303 CI: Use set -e on Solaris too 8304 8305 .github/workflows/solaris.yml | 1 + 8306 1 file changed, 1 insertion(+) 8307 8308commit afa938e429c1ce07d26d02999352fb014b62ff3d 8309Author: Lasse Collin <lasse.collin@tukaani.org> 8310Date: 2024-06-03 17:44:50 +0300 8311 8312 CMake: Install liblzma.pc even with MSVC 8313 8314 I had misunderstood that it wouldn't be useful with MSVC. 8315 vcpkg had been installing liblzma.pc with custom rules since 2020, 8316 years before liblzma.pc support was added to CMakeLists.txt. 8317 8318 See: 8319 https://github.com/microsoft/vcpkg/blob/eb895b95aac6fd7485373702f29f508c42a180a0/ports/liblzma/portfile.cmake 8320 https://github.com/microsoft/vcpkg/pull/39024#issuecomment-2145064670 8321 8322 CMakeLists.txt | 8 +++----- 8323 1 file changed, 3 insertions(+), 5 deletions(-) 8324 8325commit 35f8649f08341639a627fd06350e938124ca3622 8326Author: Sam James <sam@gentoo.org> 8327Date: 2024-06-03 06:16:23 +0100 8328 8329 ci: don't pin official GH actions via commit, just tag 8330 8331 There's no real value in doing it via commit for official GH actions. We 8332 can keep using pinned commits for unofficial actions. It's hassle for no 8333 gain. 8334 8335 Maybe going forward we can limit this further by only being paranoid 8336 for the jobs with any access to tokens. 8337 8338 .github/workflows/ci.yml | 4 ++-- 8339 .github/workflows/freebsd.yml | 2 +- 8340 .github/workflows/netbsd.yml | 2 +- 8341 .github/workflows/openbsd.yml | 2 +- 8342 .github/workflows/solaris.yml | 2 +- 8343 .github/workflows/windows-ci.yml | 4 ++-- 8344 6 files changed, 8 insertions(+), 8 deletions(-) 8345 8346commit e885dae37ff5b1dbc760dabc1e03e866a7302ef2 8347Author: Christoph Junghans <christoph.junghans@gmail.com> 8348Date: 2024-04-30 07:49:26 -0600 8349 8350 ci: set -e on openbsd 8351 8352 Closes: https://github.com/tukaani-project/xz/pull/116 8353 8354 .github/workflows/openbsd.yml | 1 + 8355 1 file changed, 1 insertion(+) 8356 8357commit 21b02dd128cf9e8c76325ec124f70381862dcf19 8358Author: Christoph Junghans <christoph.junghans@gmail.com> 8359Date: 2024-04-30 07:48:58 -0600 8360 8361 ci: set -e on netbsd 8362 8363 .github/workflows/netbsd.yml | 1 + 8364 1 file changed, 1 insertion(+) 8365 8366commit 8641f0c24c041136670c975b23408184b45431bc 8367Author: Christoph Junghans <christoph.junghans@gmail.com> 8368Date: 2024-04-25 14:56:06 -0700 8369 8370 ci: actually fail on FreeBSD 8371 8372 Without "set -e" the job will always be successful. 8373 8374 See vmactions/freebsd-vm#72 8375 8376 .github/workflows/freebsd.yml | 1 + 8377 1 file changed, 1 insertion(+) 8378 8379commit ef616683ef11f11ffdfbe0624da33905e28a70f9 8380Author: Andrew Murray <radarhere@users.noreply.github.com> 8381Date: 2024-04-25 09:24:46 +1000 8382 8383 Updated actions 8384 8385 Closes: https://github.com/tukaani-project/xz/pull/115 8386 8387 .github/workflows/ci.yml | 4 ++-- 8388 .github/workflows/windows-ci.yml | 6 +++--- 8389 2 files changed, 5 insertions(+), 5 deletions(-) 8390 8391commit 57b440d316da9ac9cb312ee7e6890f5382556f10 8392Author: Sam James <sam@gentoo.org> 8393Date: 2024-06-03 02:49:40 +0100 8394 8395 ci: add po4a 8396 8397 .github/workflows/netbsd.yml | 2 +- 8398 .github/workflows/openbsd.yml | 3 ++- 8399 2 files changed, 3 insertions(+), 2 deletions(-) 8400 8401commit 08cdf4be9a673d78efe393b53dd73bf43c81dd95 8402Author: Sam James <sam@gentoo.org> 8403Date: 2024-04-13 21:02:04 +0100 8404 8405 ci: add Solaris 8406 8407 Inspired by https://github.com/RsyncProject/rsync/commit/3f2a38b01184cae9a931280b534acf5a3dae2e94. 8408 8409 It runs on Solaris 5.11 via a VirtualBox VM. 8410 8411 .github/workflows/solaris.yml | 31 +++++++++++++++++++++++++++++++ 8412 1 file changed, 31 insertions(+) 8413 8414commit b69768c8bd1a34fde311935c551d061ba52d9a3f 8415Author: Sam James <sam@gentoo.org> 8416Date: 2024-04-14 08:08:00 +0100 8417 8418 xz: list: suppress -Wformat-nonliteral for Solaris 8419 8420 Solaris' GCC can't understand that our use is fine, unlike modern compilers: 8421 ``` 8422 list.c: In function 'print_totals_basic': 8423 list.c:1191:4: error: format not a string literal, argument types not checked [-Werror=format-nonliteral] 8424 uint64_to_str(totals.files, 0)); 8425 ^~~~~~~~~~~~~ 8426 cc1: all warnings being treated as errors 8427 ``` 8428 8429 It's presumably because of older gettext missing format attributes. 8430 8431 This is with `gcc (GCC) 7.3.0`. 8432 8433 src/xz/list.c | 7 +++++++ 8434 1 file changed, 7 insertions(+) 8435 8436commit bb90e1f66d9beb490c4c99763e79519045968710 8437Author: Lasse Collin <lasse.collin@tukaani.org> 8438Date: 2024-06-03 11:44:28 +0300 8439 8440 license-check.sh: Fix reporting of unclear license info 8441 8442 The main feature was broken because an old variable name hadn't 8443 been updated to match the rest of the script. 8444 8445 build-aux/license-check.sh | 4 ++-- 8446 1 file changed, 2 insertions(+), 2 deletions(-) 8447 8448commit b8d134e61ede9f4a296226d97f5c20721fb4e8e2 8449Author: Lasse Collin <lasse.collin@tukaani.org> 8450Date: 2024-05-31 21:36:26 +0300 8451 8452 Update THANKS 8453 8454 THANKS | 3 +++ 8455 1 file changed, 3 insertions(+) 8456 8457commit 162587d3fb3fcedc6eee61eda3ccaaf60c80f0de 8458Author: Lasse Collin <lasse.collin@tukaani.org> 8459Date: 2024-05-29 17:47:13 +0300 8460 8461 Translations: Run po4a/update-po 8462 8463 Now the files are in the new formatting without source file 8464 line numbers. Future updates should keep the diffs much smaller. 8465 8466 po4a/de.po | 1592 ++++++++++--------- 8467 po4a/fr.po | 4450 +++++++++++++++++----------------------------------- 8468 po4a/ko.po | 1592 ++++++++++--------- 8469 po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- 8470 po4a/ro.po | 1592 ++++++++++--------- 8471 po4a/uk.po | 1592 ++++++++++--------- 8472 6 files changed, 6114 insertions(+), 9521 deletions(-) 8473 8474commit 50cd8ed002473c5cd53980e70a53e5e6ad646ffe 8475Author: Lasse Collin <lasse.collin@tukaani.org> 8476Date: 2024-05-29 17:44:53 +0300 8477 8478 Translations: Run "make -C po update-po" 8479 8480 In the past this wasn't done before releases; the Git repository 8481 just contained the files from the Translation Project. But this 8482 way it is clearer when comparing release tarballs against the 8483 Git repository. In future releases this might no longer be necessary 8484 within a stable branch as the .po files won't change so easily anymore 8485 when creating a tarball. 8486 8487 po/ca.po | 567 +++++++++++++++++++++++++--------------- 8488 po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- 8489 po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- 8490 po/de.po | 403 ++++++++++++++-------------- 8491 po/eo.po | 403 ++++++++++++++-------------- 8492 po/es.po | 403 ++++++++++++++-------------- 8493 po/fi.po | 578 +++++++++++++++++++++++++--------------- 8494 po/fr.po | 538 +++++++++++++++++++++++--------------- 8495 po/hr.po | 403 ++++++++++++++-------------- 8496 po/hu.po | 403 ++++++++++++++-------------- 8497 po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- 8498 po/ko.po | 403 ++++++++++++++-------------- 8499 po/pl.po | 403 ++++++++++++++-------------- 8500 po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- 8501 po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- 8502 po/ro.po | 403 ++++++++++++++-------------- 8503 po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- 8504 po/sv.po | 403 ++++++++++++++-------------- 8505 po/tr.po | 567 +++++++++++++++++++++++++--------------- 8506 po/uk.po | 403 ++++++++++++++-------------- 8507 po/vi.po | 403 ++++++++++++++-------------- 8508 po/zh_CN.po | 417 +++++++++++++++-------------- 8509 po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- 8510 23 files changed, 7257 insertions(+), 5132 deletions(-) 8511 8512commit 16dbd865c8833462e1604a1e13f7effe55bb3fe6 8513Author: Lasse Collin <lasse.collin@tukaani.org> 8514Date: 2024-05-29 18:03:04 +0300 8515 8516 Add NEWS for 5.6.2 8517 8518 NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8519 1 file changed, 130 insertions(+) 8520 8521commit a0eeb5f9369c43508610dcf00140edb8e2be92a6 8522Author: Lasse Collin <lasse.collin@tukaani.org> 8523Date: 2024-05-29 18:03:04 +0300 8524 8525 Add NEWS for 5.4.7 8526 8527 NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8528 1 file changed, 89 insertions(+) 8529 8530commit 9b476fb93a9672f2e70b56e3e9c7e9cfedd6c162 8531Author: Lasse Collin <lasse.collin@tukaani.org> 8532Date: 2024-05-29 18:03:04 +0300 8533 8534 Add NEWS for 5.2.13 8535 8536 NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8537 1 file changed, 115 insertions(+) 8538 8539commit 9284f1aea31f0eb23e2ea72f7218b271e2234762 8540Author: Lasse Collin <lasse.collin@tukaani.org> 8541Date: 2024-05-29 16:33:24 +0300 8542 8543 Build: Update po/*.po files only when needed 8544 8545 When po/xz.pot doesn't exist, running "make" or "make dist" will 8546 create it. Then the .po files will be updated but only if they 8547 actually would change more than the POT-Creation-Date line. 8548 Then the .gmo files would be generated from the .po files. 8549 This is the case before and after this commit. 8550 8551 However, "make dist" and thus "make mydist" did a forced update 8552 to the files, updating them even if the only change was the 8553 POT-Creation-Date line. This had pros and cons: It made it clear 8554 that the .po file really is in sync with the recent strings in 8555 the package. On the other hand, it added noise in form of changed 8556 files in the source tree and distribution tarballs. It can be 8557 ignored with something like "diff -I'^"POT-Creation-Date: '" but 8558 it's still a minor annoyance *if* there's not enough value in 8559 having the most recent timestamp. 8560 8561 Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced 8562 update won't happen in "make dist" anymore. However, the "mydist" 8563 target will use xz.pot-update target which is the same target that 8564 is run when xz.pot doesn't exist at all yet. Thus "mydist" will 8565 ensure that the translations are up to date, without noise from 8566 changes that would affect only the POT-Creation-Date line. 8567 8568 Note that po4a always uses msgmerge with --update, so POT-Creation-Date 8569 in the man page translations is never the only change in .po files. 8570 In that sense this commit makes the message translations behave more 8571 similarly to the man page translations. 8572 8573 Distribution tarballs will still have non-reproducible POT-Creation-Date 8574 in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they 8575 could be made reproducible from a Git timestamp if desired. 8576 8577 Makefile.am | 3 ++- 8578 po/Makevars | 6 +++++- 8579 2 files changed, 7 insertions(+), 2 deletions(-) 8580 8581commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599 8582Author: Lasse Collin <lasse.collin@tukaani.org> 8583Date: 2024-05-28 21:10:33 +0300 8584 8585 po4a/update-po: Disable wrapping in .pot and .po files 8586 8587 The .po files from the Translation Project come with unwrapped 8588 strings so this matches it. 8589 8590 This may reduce the noise in diffs too. When the beginning of 8591 a paragraph had changed, the rest of the lines got rewrapped 8592 in msgsid. Now it's just one very long line that changes when 8593 a paragraph has been edited. 8594 8595 The --add-location=file option was removed as redundant. The line 8596 numbers don't exist in the .pot file due to --porefs file and thus 8597 they cannot get copied to the .po files either. 8598 8599 po4a/update-po | 15 +++++++++++---- 8600 1 file changed, 11 insertions(+), 4 deletions(-) 8601 8602commit b14c130a58a649f9a73392eeb122cb252327c569 8603Author: Lasse Collin <lasse.collin@tukaani.org> 8604Date: 2024-05-28 18:36:53 +0300 8605 8606 Update contact info in README 8607 8608 README | 12 +++++++++--- 8609 1 file changed, 9 insertions(+), 3 deletions(-) 8610 8611commit 75f5f2e014b0ee646963f36bc6a9c840fb272353 8612Author: Lasse Collin <lasse.collin@tukaani.org> 8613Date: 2024-05-28 13:25:07 +0300 8614 8615 Translations: Use --package-name=xz-man with po4a 8616 8617 This is to match reality. See the added comment. 8618 8619 po4a/update-po | 9 ++++++++- 8620 1 file changed, 8 insertions(+), 1 deletion(-) 8621 8622commit eb217d016cfbbba1babc19a61095b3ea25898af6 8623Author: Lasse Collin <lasse.collin@tukaani.org> 8624Date: 2024-05-28 13:03:40 +0300 8625 8626 Translations: Omit --package-name from po/Makevars 8627 8628 This is closer to the reality in the po/*.po files. 8629 8630 po/Makevars | 3 +-- 8631 1 file changed, 1 insertion(+), 2 deletions(-) 8632 8633commit d28a4b2520adeeaa1b9e921bf42c7c1f36552c06 8634Author: Lasse Collin <lasse.collin@tukaani.org> 8635Date: 2024-05-27 17:45:51 +0300 8636 8637 license-check.sh: Use '--' with slightly untrusted filenames 8638 8639 Names from git ls-files should be safe but if one runs it on 8640 a tree without the .git dir and there are extra files, it's 8641 safer to have the end of arguments marked with '--'. 8642 8643 build-aux/license-check.sh | 6 +++--- 8644 1 file changed, 3 insertions(+), 3 deletions(-) 8645 8646commit fda0ec862a34094cf23fc25d0e0a95858c3a3ab5 8647Author: Lasse Collin <lasse.collin@tukaani.org> 8648Date: 2024-05-27 17:41:37 +0300 8649 8650 license-check.sh: Use xargs -0 instead of -d 8651 8652 Neither are in POSIX but -0 is much more portable in practice. 8653 8654 Despite the old comment, the grep usage should be portable already. 8655 8656 build-aux/license-check.sh | 11 ++++++----- 8657 1 file changed, 6 insertions(+), 5 deletions(-) 8658 8659commit 9114267038deaecf4832a5cacb5acbe6591ac839 8660Author: Lasse Collin <lasse.collin@tukaani.org> 8661Date: 2024-05-28 01:17:45 +0300 8662 8663 Translations: Omit man page line numbers from .pot and .po files 8664 8665 po4a/update-po | 5 +++++ 8666 1 file changed, 5 insertions(+) 8667 8668commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6 8669Author: Lasse Collin <lasse.collin@tukaani.org> 8670Date: 2024-05-28 01:06:30 +0300 8671 8672 Translations: Use the xgettext option --add-location=file 8673 8674 po/Makevars | 3 ++- 8675 1 file changed, 2 insertions(+), 1 deletion(-) 8676 8677commit fccebe2b4fd513488fc920e4dac32562ed3c7637 8678Author: Lasse Collin <lasse.collin@tukaani.org> 8679Date: 2024-05-28 00:43:53 +0300 8680 8681 Translations: Use the msgmerge option --add-location=file 8682 8683 This way the PO file diffs are less noisy but the locations of the 8684 strings are still present at file level, just without line numbers. 8685 8686 The option is available since gettext 0.19 (2014). 8687 configure.ac requires 0.19.6. 8688 8689 po/Makevars | 2 +- 8690 1 file changed, 1 insertion(+), 1 deletion(-) 8691 8692commit f361d9ae85707a87eb28db400eb7229cec103d58 8693Author: Lasse Collin <lasse.collin@tukaani.org> 8694Date: 2024-05-27 12:22:08 +0300 8695 8696 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am 8697 8698 Makefile.am | 14 +++++++------- 8699 1 file changed, 7 insertions(+), 7 deletions(-) 8700 8701commit a26dece34793a09aac2476f954d162d03e9cf62b 8702Author: Lasse Collin <lasse.collin@tukaani.org> 8703Date: 2024-05-23 17:25:13 +0300 8704 8705 Translations: Change the home page URLs in man page translations 8706 8707 Since the source strings have changed, these would get marked as 8708 fuzzy and the original string would be used instead. The original 8709 and translated strings are identical in this case so it wouldn't 8710 matter. But patching the translations helps still because then 8711 po4a will show the correct translation percentage. 8712 8713 po4a/de.po | 8 ++++---- 8714 po4a/fr.po | 4 ++-- 8715 po4a/ko.po | 4 ++-- 8716 po4a/pt_BR.po | 4 ++-- 8717 po4a/ro.po | 8 ++++---- 8718 po4a/uk.po | 8 ++++---- 8719 6 files changed, 18 insertions(+), 18 deletions(-) 8720 8721commit 24387c234b4eed1ef9a7eaa107391740b4095568 8722Author: Lasse Collin <lasse.collin@tukaani.org> 8723Date: 2024-05-23 15:15:18 +0300 8724 8725 CMake: Add manual support for 32-bit x86 assembly files 8726 8727 One has to pass -DENABLE_X86_ASM=ON to cmake to enable the 8728 CRC assembly code. Autodetection isn't done. Looking at 8729 CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname 8730 unless cross-compilation is done using a CMake toolchain file. 8731 8732 On top of this, if the code is run on modern processors that support 8733 the CLMUL instruction, then the C code should be faster (but then 8734 one should also be using a x86-64 build if possible). 8735 8736 CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- 8737 1 file changed, 31 insertions(+), 3 deletions(-) 8738 8739commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d 8740Author: Lasse Collin <lasse.collin@tukaani.org> 8741Date: 2024-05-23 14:26:45 +0300 8742 8743 CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN 8744 8745 It's more consistent with the other option() uses. 8746 8747 CMakeLists.txt | 4 ++-- 8748 1 file changed, 2 insertions(+), 2 deletions(-) 8749 8750commit 6bbec3bda02bf87d24fa095074456e723589921f 8751Author: Lasse Collin <lasse.collin@tukaani.org> 8752Date: 2024-05-22 15:21:53 +0300 8753 8754 Mention license-check.sh in COPYING 8755 8756 COPYING | 6 ++++++ 8757 1 file changed, 6 insertions(+) 8758 8759commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a 8760Author: Lasse Collin <lasse.collin@tukaani.org> 8761Date: 2024-05-22 15:21:53 +0300 8762 8763 Use more confident language in COPYING 8764 8765 COPYING | 8 ++++---- 8766 1 file changed, 4 insertions(+), 4 deletions(-) 8767 8768commit a119a4209e8827e1d7c2cfd30cb9f5a9b76f9dff 8769Author: Lasse Collin <lasse.collin@tukaani.org> 8770Date: 2024-05-22 15:21:53 +0300 8771 8772 Build: Run license-check.sh in "mydist" and "dist-hook" 8773 8774 In mydist the point is to check using the file list from the Git 8775 repository. In dist-hook it is to check that the TARBALL_IGNORE 8776 patterns work when the .git dir or the "git" command aren't available. 8777 8778 Refuse to create a distribution tarball if license issues are found. 8779 8780 Makefile.am | 2 ++ 8781 1 file changed, 2 insertions(+) 8782 8783commit f3434ecfcb45154508752986f4fc670b8f0555dc 8784Author: Lasse Collin <lasse.collin@tukaani.org> 8785Date: 2024-05-22 15:21:53 +0300 8786 8787 Add build-aux/license-check.sh 8788 8789 This helps in spotting files that lack SPDX license identifier 8790 and which haven't been explicitly white listed either. The script 8791 requires the .git directory to be present as only the files that 8792 are in the Git repository are checked. 8793 8794 XZ Utils isn't FSFE REUSE compliant for now. 8795 8796 Makefile.am | 1 + 8797 build-aux/license-check.sh | 174 +++++++++++++++++++++++++++++++++++++++++++++ 8798 2 files changed, 175 insertions(+) 8799 8800commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde 8801Author: Lasse Collin <lasse.collin@tukaani.org> 8802Date: 2024-04-29 17:16:38 +0300 8803 8804 Add SPDX license identifiers to files under tests/ossfuzz 8805 8806 tests/ossfuzz/Makefile | 2 ++ 8807 tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ 8808 tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ 8809 tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ 8810 tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ 8811 tests/ossfuzz/config/fuzz_xz.dict | 2 ++ 8812 6 files changed, 12 insertions(+) 8813 8814commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05 8815Author: Lasse Collin <lasse.collin@tukaani.org> 8816Date: 2024-04-29 17:16:06 +0300 8817 8818 Add SPDX license identifier to .codespellrc 8819 8820 .codespellrc | 2 ++ 8821 1 file changed, 2 insertions(+) 8822 8823commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76 8824Author: Lasse Collin <lasse.collin@tukaani.org> 8825Date: 2024-05-22 15:12:09 +0300 8826 8827 Move entries po4a/.gitignore to the top level .gitignore 8828 8829 The po4a directory is in EXTRA_DIST and thus all files there 8830 are included in the package. .gitignore doesn't belong in the 8831 package so keep that file out of the po4a directory. 8832 8833 .gitignore | 4 ++++ 8834 po4a/.gitignore | 3 --- 8835 2 files changed, 4 insertions(+), 3 deletions(-) 8836 8837commit 56f1d5ed68e84ba5dfa328ea2291b8f46c995125 8838Author: Lasse Collin <lasse.collin@tukaani.org> 8839Date: 2024-05-20 16:55:00 +0300 8840 8841 Tests: Make the config.h grep patterns Meson compatible 8842 8843 Now the test scripts detect both 8844 8845 #define HAVE_DECODER_ARM 8846 #define HAVE_DECODER_ARM 1 8847 8848 as support for the ARM filter without confusing it with these: 8849 8850 #define HAVE_DECODER_ARM64 8851 #define HAVE_DECODER_ARM64 1 8852 8853 Previously only the ones ending with " 1" were accepted for 8854 the macros where this kind of confusion was possible. 8855 8856 This should help with Meson support because Meson's built-in 8857 features produce config.h entries that are either 8858 8859 #define FOO 1 8860 #define FOO 0 8861 8862 or: 8863 8864 #define FOO 8865 #undef FOO 8866 8867 The former method has a benefit that one can use "#if FOO" and -Wundef 8868 will catch if a #define is missing (for example, it helps catching 8869 typos). But XZ Utils has to use the latter since it has been 8870 convenient with Autoconf's default behavior.[*] While it's easy to 8871 emulate the Autoconf style (#define FOO 1 vs. no #define at all) 8872 in Meson, it results in clumsy code. Thus it's better to change 8873 the few places in the tests where this difference matters. 8874 8875 [*] While most checks in Autoconf default to the second style above, 8876 a few things use the first style (like AC_CHECK_DECLS). The mix 8877 of both styles is the most confusing as one has to remember which 8878 macro needs #ifdef and which #if. Currently HAVE_VISIBILITY is 8879 only such config.h entry that is 1 or 0. It comes unmodified 8880 from Gnulib's visibility.m4. 8881 8882 tests/test_compress.sh | 4 ++-- 8883 tests/test_files.sh | 2 +- 8884 2 files changed, 3 insertions(+), 3 deletions(-) 8885 8886commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa 8887Author: Lasse Collin <lasse.collin@tukaani.org> 8888Date: 2024-05-20 16:55:00 +0300 8889 8890 CMake: Add comments 8891 8892 tests/tests.cmake | 2 ++ 8893 1 file changed, 2 insertions(+) 8894 8895commit d35368b33e54bad2f566df99fac29ffea38e34de 8896Author: Lasse Collin <lasse.collin@tukaani.org> 8897Date: 2024-05-20 16:55:00 +0300 8898 8899 CMake: Remove the note that some tests aren't run 8900 8901 They are now in the common build configurations. 8902 8903 CMakeLists.txt | 2 -- 8904 1 file changed, 2 deletions(-) 8905 8906commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba 8907Author: Lasse Collin <lasse.collin@tukaani.org> 8908Date: 2024-05-20 16:55:00 +0300 8909 8910 CMake: Add support for test_files.sh 8911 8912 tests/tests.cmake | 20 ++++++++++++++++++++ 8913 1 file changed, 20 insertions(+) 8914 8915commit a7e9230af9d1f87f474fe38886eb977d4149dc9b 8916Author: Lasse Collin <lasse.collin@tukaani.org> 8917Date: 2024-05-20 16:55:00 +0300 8918 8919 Tests: Make test_files.sh more flexible 8920 8921 Add a new optional argument to specify the directory of the xz and 8922 xzdec executables. 8923 8924 If ../config.h doesn't exist, assume that all encoders and decoders 8925 are available. 8926 8927 tests/test_files.sh | 18 +++++++++++++----- 8928 1 file changed, 13 insertions(+), 5 deletions(-) 8929 8930commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8 8931Author: Lasse Collin <lasse.collin@tukaani.org> 8932Date: 2024-05-20 16:55:00 +0300 8933 8934 CMake: Add support for test_compress.sh tests 8935 8936 tests/tests.cmake | 26 ++++++++++++++++++++++++++ 8937 1 file changed, 26 insertions(+) 8938 8939commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2 8940Author: Lasse Collin <lasse.collin@tukaani.org> 8941Date: 2024-05-20 16:55:00 +0300 8942 8943 Tests: Make test_compress.sh more flexible 8944 8945 Add a new optional second argument: directory of the xz and xzdec 8946 executables. This is need with the CMake build where the binaries 8947 end up in the top-level build directory. 8948 8949 If ../config.h doesn't exist, assume that all encoders and decoders 8950 are available. This will make this script usable from CMake in the 8951 most common build configuration. 8952 8953 NOTE: Since the existence of ../config.h is checked, the working 8954 directory of the test script must be a subdir in the build tree! 8955 Otherwise ../config.h would look outside the build tree. 8956 8957 Use the default check type instead of forcing CRC32 or CRC64. 8958 Now the script doesn't need to check if CRC64 is available. 8959 8960 tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------ 8961 1 file changed, 29 insertions(+), 12 deletions(-) 8962 8963commit 006040b29c83104403621e950ada0c8956c56b3d 8964Author: Lasse Collin <lasse.collin@tukaani.org> 8965Date: 2024-05-20 16:55:00 +0300 8966 8967 CMake: Prepare to support the test_*.sh tests 8968 8969 This is a bit hacky since the scripts grep config.h to know which 8970 features were built but the CMake build doesn't create config.h. 8971 So instead those test scripts will be run only when all relevant 8972 features have been enabled. 8973 8974 tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 8975 1 file changed, 49 insertions(+) 8976 8977commit 6167607a6ea72fb74eefb943c4566e3cab528cd2 8978Author: Lasse Collin <lasse.collin@tukaani.org> 8979Date: 2024-05-20 16:55:00 +0300 8980 8981 Tests: test_suffix.sh: Add a comment 8982 8983 tests/test_suffix.sh | 3 +++ 8984 1 file changed, 3 insertions(+) 8985 8986commit 4e9023857d287f624562156b60dc23d2b64c0f10 8987Author: Lasse Collin <lasse.collin@tukaani.org> 8988Date: 2024-05-18 00:34:07 +0300 8989 8990 Fix typos 8991 8992 Thanks to xx on #tukaani. 8993 8994 src/common/mythread.h | 2 +- 8995 src/common/tuklib_integer.h | 2 +- 8996 src/liblzma/api/lzma/base.h | 2 +- 8997 src/liblzma/common/filter_buffer_decoder.c | 2 +- 8998 src/liblzma/common/filter_common.c | 2 +- 8999 src/scripts/xzgrep.in | 2 +- 9000 6 files changed, 6 insertions(+), 6 deletions(-) 9001 9002commit b14d08fbbc254485ace9ccfe7908674f608a62ae 9003Author: Lasse Collin <lasse.collin@tukaani.org> 9004Date: 2024-05-18 00:23:52 +0300 9005 9006 liblzma: Fix white space 9007 9008 Thanks to xx on #tukaani. 9009 9010 src/liblzma/simple/simple_coder.h | 8 ++++---- 9011 1 file changed, 4 insertions(+), 4 deletions(-) 9012 9013commit 9f1a6d6f9a258886933a22239a5b81af34b28199 9014Author: Lasse Collin <lasse.collin@tukaani.org> 9015Date: 2024-05-15 23:14:17 +0300 9016 9017 Build: Temporarily disable CRC CLMUL to silence OSS Fuzz 9018 9019 The code makes aligned 16-byte reads which may read up to 15 bytes 9020 before the beginning or past the end of the buffer if the buffer 9021 is misaligned. The unneeded bytes are then ignored. It cannot cross 9022 page boundaries and thus cannot cause access violations. 9023 9024 This inherently trips address sanitizer which was already disabled 9025 with __attribute__((__no_sanitize_address__)). However, it also 9026 trips memory sanitizer if the extra bytes are uninitialized because 9027 memory sanitizer doesn't see that those bytes then get ignored by 9028 byte shuffling in the xmm registers. 9029 9030 The plan is to change the code so that all sanitizers pass but it's 9031 not finished yet (performance shouldn't get worse) so as a temporary 9032 measure to keep OSS Fuzz happy, the CLMUL CRC is now disabled even 9033 though I think think the code is fine to use (and easy enough to review 9034 the memory accesses in it too). 9035 9036 configure.ac | 4 +++- 9037 1 file changed, 3 insertions(+), 1 deletion(-) 9038 9039commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88 9040Author: Lasse Collin <lasse.collin@tukaani.org> 9041Date: 2024-05-13 17:15:04 +0300 9042 9043 xz: Document the static function get_chains_memusage() 9044 9045 src/xz/coder.c | 14 ++++++++++++-- 9046 1 file changed, 12 insertions(+), 2 deletions(-) 9047 9048commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca 9049Author: Lasse Collin <lasse.collin@tukaani.org> 9050Date: 2024-05-13 17:07:22 +0300 9051 9052 xz: Rename filters_memusage_max() to get_chains_memusage() 9053 9054 src/xz/coder.c | 14 ++++++-------- 9055 1 file changed, 6 insertions(+), 8 deletions(-) 9056 9057commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7 9058Author: Lasse Collin <lasse.collin@tukaani.org> 9059Date: 2024-05-13 17:04:05 +0300 9060 9061 xz: Rename filter_memusages to chains_memusages 9062 9063 src/xz/coder.c | 6 +++--- 9064 1 file changed, 3 insertions(+), 3 deletions(-) 9065 9066commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417 9067Author: Lasse Collin <lasse.collin@tukaani.org> 9068Date: 2024-05-12 22:26:30 +0300 9069 9070 xz: Simplify the memory usage scaling code 9071 9072 This is closer to what it was before the --filtersX support was added, 9073 just extended to support for scaling all filter chains. The method 9074 before this commit was an extended version of the original too but 9075 it was done in a more complex way for no clear reason. In case of 9076 an error, the complex version printed fewer informative messages 9077 (a good thing) but it's not a sigificant benefit. 9078 9079 In the limit is too low even for single-threaded mode, the required 9080 amount of memory is now reported like in 5.4.x instead of like in 9081 5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It 9082 had been a FIXME in the old code but it's not clear what message 9083 makes the most sense. 9084 9085 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9086 9087 src/xz/coder.c | 163 ++++++++++++++++++++------------------------------------- 9088 1 file changed, 57 insertions(+), 106 deletions(-) 9089 9090commit 0ee56983d198b776878432703de664049b1be32e 9091Author: Lasse Collin <lasse.collin@tukaani.org> 9092Date: 2024-05-13 12:14:00 +0300 9093 9094 xz: Edit comments 9095 9096 src/xz/coder.h | 6 ++---- 9097 1 file changed, 2 insertions(+), 4 deletions(-) 9098 9099commit ec82a49c3553f7206104582dbfb8b64fa433b491 9100Author: Lasse Collin <lasse.collin@tukaani.org> 9101Date: 2024-05-13 12:03:51 +0300 9102 9103 xz: Rename chain_idx to chain_num 9104 9105 src/xz/coder.c | 6 +++--- 9106 1 file changed, 3 insertions(+), 3 deletions(-) 9107 9108commit a731a6993c34bbbd55abaf9c166718682b1da24f 9109Author: Lasse Collin <lasse.collin@tukaani.org> 9110Date: 2024-05-12 22:29:11 +0300 9111 9112 xz: Edit coding style 9113 9114 src/xz/coder.c | 2 +- 9115 1 file changed, 1 insertion(+), 1 deletion(-) 9116 9117commit 32eb176b89243fce3112347fe43a8ad14a9fd2be 9118Author: Lasse Collin <lasse.collin@tukaani.org> 9119Date: 2024-05-12 22:16:05 +0300 9120 9121 xz: Edit comments 9122 9123 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9124 9125 src/xz/coder.c | 8 ++------ 9126 1 file changed, 2 insertions(+), 6 deletions(-) 9127 9128commit b90339f4daa510d2b1b8c550f855a99667f1d004 9129Author: Lasse Collin <lasse.collin@tukaani.org> 9130Date: 2024-05-12 21:57:49 +0300 9131 9132 xz: Fix grammar in a comment 9133 9134 Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02 9135 9136 src/xz/coder.c | 2 +- 9137 1 file changed, 1 insertion(+), 1 deletion(-) 9138 9139commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13 9140Author: Lasse Collin <lasse.collin@tukaani.org> 9141Date: 2024-05-12 21:46:56 +0300 9142 9143 xz: Rename filter_memusages to encoder_memusages 9144 9145 src/xz/coder.c | 12 ++++++------ 9146 1 file changed, 6 insertions(+), 6 deletions(-) 9147 9148commit b54aa023e0ec291b06e976e5f094ab0549e7b09b 9149Author: Lasse Collin <lasse.collin@tukaani.org> 9150Date: 2024-05-12 21:42:05 +0300 9151 9152 xz: Edit coding style 9153 9154 src/xz/coder.c | 8 ++++---- 9155 1 file changed, 4 insertions(+), 4 deletions(-) 9156 9157commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce 9158Author: Lasse Collin <lasse.collin@tukaani.org> 9159Date: 2024-05-12 21:31:02 +0300 9160 9161 xz: Rename filters_index to chain_num 9162 9163 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 9164 9165 src/xz/args.c | 8 ++++---- 9166 src/xz/coder.c | 8 ++++---- 9167 src/xz/coder.h | 2 +- 9168 3 files changed, 9 insertions(+), 9 deletions(-) 9169 9170commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492 9171Author: Lasse Collin <lasse.collin@tukaani.org> 9172Date: 2024-05-12 21:22:43 +0300 9173 9174 xz: Replace a few uint32_t with "unsigned" to reduce the number of casts 9175 9176 These hold only tiny values. 9177 9178 src/xz/args.c | 2 +- 9179 src/xz/coder.c | 17 ++++++++--------- 9180 src/xz/coder.h | 2 +- 9181 3 files changed, 10 insertions(+), 11 deletions(-) 9182 9183commit b5e6c1113b1ba02c282bd9163eccdb521c937a78 9184Author: Lasse Collin <lasse.collin@tukaani.org> 9185Date: 2024-05-12 21:10:45 +0300 9186 9187 xz: Rename filters_used_mask to chains_used_mask 9188 9189 The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. 9190 9191 src/xz/coder.c | 30 +++++++++++++++--------------- 9192 1 file changed, 15 insertions(+), 15 deletions(-) 9193 9194commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52 9195Author: Lasse Collin <lasse.collin@tukaani.org> 9196Date: 2024-05-12 17:14:43 +0300 9197 9198 xz: Move the setting of "check" in coder_set_compression_settings() 9199 9200 It's more logical to do it in the beginning instead of in the middle 9201 of the filter chain handling. 9202 9203 Fixes: d6af7f347077b22403133239592e478931307759 9204 9205 src/xz/coder.c | 18 +++++++++--------- 9206 1 file changed, 9 insertions(+), 9 deletions(-) 9207 9208commit ad146b1f42bbb678175a503a45ce525e779f9b8b 9209Author: Lasse Collin <lasse.collin@tukaani.org> 9210Date: 2024-05-12 17:09:17 +0300 9211 9212 xz: Rename "filters" to "chains" 9213 9214 The convention is that 9215 9216 lzma_filter filters[LZMA_FILTERS_MAX + 1]; 9217 9218 contains the filters of a single filter chain. 9219 It was so here as well before the commit 9220 d6af7f347077b22403133239592e478931307759. 9221 It changes "filters" to a ten-element array of filter chains. 9222 It's clearer to call this array-of-arrays "chains". 9223 9224 This also renames "filter_idx" to "chain_idx" which is used 9225 as an index as in chains[chain_idx]. 9226 9227 src/xz/coder.c | 68 +++++++++++++++++++++++++++++----------------------------- 9228 1 file changed, 34 insertions(+), 34 deletions(-) 9229 9230commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0 9231Author: Lasse Collin <lasse.collin@tukaani.org> 9232Date: 2024-05-12 16:56:15 +0300 9233 9234 xz: Clean up a comment 9235 9236 src/xz/coder.c | 9 +++------ 9237 1 file changed, 3 insertions(+), 6 deletions(-) 9238 9239commit 2de80494ed9a4dc7db395a32a5efb770ce769804 9240Author: Lasse Collin <lasse.collin@tukaani.org> 9241Date: 2024-05-12 16:52:09 +0300 9242 9243 xz: Add clarifying assertions 9244 9245 src/xz/coder.c | 4 ++++ 9246 1 file changed, 4 insertions(+) 9247 9248commit 1eaad004bf7748976324672db028e34f42802e61 9249Author: Lasse Collin <lasse.collin@tukaani.org> 9250Date: 2024-05-10 20:23:33 +0300 9251 9252 xz: Add a clarifying assertion 9253 9254 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9255 9256 src/xz/coder.c | 1 + 9257 1 file changed, 1 insertion(+) 9258 9259commit 605094329b986244833c967c04963cacc41a868d 9260Author: Lasse Collin <lasse.collin@tukaani.org> 9261Date: 2024-05-12 16:47:17 +0300 9262 9263 xz: Clarify a comment 9264 9265 src/xz/coder.c | 4 +++- 9266 1 file changed, 3 insertions(+), 1 deletion(-) 9267 9268commit 8fac2577f2dbb9491afd8500f60d004c9071df3b 9269Author: Lasse Collin <lasse.collin@tukaani.org> 9270Date: 2024-05-12 16:28:25 +0300 9271 9272 xz: Use the info collected in parse_block_list() 9273 9274 This is slightly simpler and it avoids looping through 9275 the opt_block_list array. 9276 9277 src/xz/coder.c | 95 ++++++++++++++++++++++++---------------------------------- 9278 1 file changed, 39 insertions(+), 56 deletions(-) 9279 9280commit 81d350dab864b985b740742772f3b132d4c52914 9281Author: Lasse Collin <lasse.collin@tukaani.org> 9282Date: 2024-05-12 15:48:45 +0300 9283 9284 xz: Remember the filter chains and the largest Block in parse_block_list() 9285 9286 src/xz/args.c | 18 ++++++++++++++++++ 9287 src/xz/coder.c | 2 ++ 9288 src/xz/coder.h | 13 +++++++++++++ 9289 3 files changed, 33 insertions(+) 9290 9291commit 46ab56968f7dfdac187710a1223659d832fa1565 9292Author: Lasse Collin <lasse.collin@tukaani.org> 9293Date: 2024-05-12 15:38:48 +0300 9294 9295 xz: Update a comment and initialization of filters_used_mask 9296 9297 src/xz/coder.c | 16 ++++++++-------- 9298 1 file changed, 8 insertions(+), 8 deletions(-) 9299 9300commit e89293a0baeb8663707c6b4a74fbb310ec698a8f 9301Author: Lasse Collin <lasse.collin@tukaani.org> 9302Date: 2024-05-12 15:08:10 +0300 9303 9304 xz: parse_block_list: Edit integer type casting 9305 9306 src/xz/args.c | 5 ++--- 9307 1 file changed, 2 insertions(+), 3 deletions(-) 9308 9309commit 87011e40c168255cd2edea129ee68c901770603b 9310Author: Lasse Collin <lasse.collin@tukaani.org> 9311Date: 2024-05-12 14:51:37 +0300 9312 9313 xz: Make filter_memusages a local variable 9314 9315 src/xz/coder.c | 35 +++++++++++++++++++++-------------- 9316 1 file changed, 21 insertions(+), 14 deletions(-) 9317 9318commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5 9319Author: Lasse Collin <lasse.collin@tukaani.org> 9320Date: 2024-05-10 20:33:08 +0300 9321 9322 xz: Remove unused code and simplify 9323 9324 opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't 9325 defined. Thus, when *encoding*, the message about *decoder* memory 9326 usage is possible to show only when both encoder and decoder have 9327 been built. 9328 9329 Since the message is shown only at V_DEBUG, skip the memusage 9330 calculation if verbosity level isn't high enough. 9331 9332 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9333 9334 src/xz/coder.c | 16 ++++------------ 9335 1 file changed, 4 insertions(+), 12 deletions(-) 9336 9337commit 31358c057c9de9d6aba96bae112b2d17942de7cb 9338Author: Lasse Collin <lasse.collin@tukaani.org> 9339Date: 2024-05-10 20:22:58 +0300 9340 9341 xz: Fix integer type from uint64_t to uint32_t 9342 9343 lzma_options_lzma.dict_size is uint32_t so use it here too. 9344 9345 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9346 9347 src/xz/coder.c | 2 +- 9348 1 file changed, 1 insertion(+), 1 deletion(-) 9349 9350commit 3f71e0f3a118e1012526f94fd640a626d30cb599 9351Author: Lasse Collin <lasse.collin@tukaani.org> 9352Date: 2024-05-08 21:40:07 +0300 9353 9354 debug/translation.bash: Remove an outdated test command 9355 9356 Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs 9357 at least nice=4. It is rounded up internally by liblzma when needed. 9358 9359 Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 9360 9361 debug/translation.bash | 1 - 9362 1 file changed, 1 deletion(-) 9363 9364commit b05a516830095a0e1937aeb31c937fb0400408b6 9365Author: Lasse Collin <lasse.collin@tukaani.org> 9366Date: 2024-05-07 20:41:28 +0300 9367 9368 Fix the date of NEWS for 5.4.5 9369 9370 NEWS | 2 +- 9371 1 file changed, 1 insertion(+), 1 deletion(-) 9372 9373commit 6d336aeb97b69c496ddc626af403f6f21c753658 9374Author: Lasse Collin <lasse.collin@tukaani.org> 9375Date: 2024-05-07 16:21:15 +0300 9376 9377 Build: Update visibility.m4 from Gnulib 9378 9379 This fixes the syntax of the "serial" line and renames 9380 a temporary variable. 9381 9382 m4/visibility.m4 | 13 +++++++------ 9383 1 file changed, 7 insertions(+), 6 deletions(-) 9384 9385commit ab51e8ee610e2a893906859848f93d5cb0d5ba83 9386Author: Lasse Collin <lasse.collin@tukaani.org> 9387Date: 2024-05-07 15:05:21 +0300 9388 9389 po4a/update-po: Delete the *.po.authors files 9390 9391 These are temporary files that are needed only when running po4a. 9392 The top-level Makefile.am puts the whole po4a directory into 9393 distribution tarball (it's simpler) so deleting these temporary 9394 files is needed to prevent them from getting into tarballs. 9395 9396 po4a/update-po | 4 ++++ 9397 1 file changed, 4 insertions(+) 9398 9399commit e4780244a17420cc95d5498cd6e02ad10eac6e5f 9400Author: Lasse Collin <lasse.collin@tukaani.org> 9401Date: 2024-05-07 13:12:17 +0300 9402 9403 xz: Edit comments and coding style 9404 9405 src/xz/coder.c | 25 ++++++++++++------------- 9406 1 file changed, 12 insertions(+), 13 deletions(-) 9407 9408commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c 9409Author: Lasse Collin <lasse.collin@tukaani.org> 9410Date: 2024-05-06 23:08:22 +0300 9411 9412 xz: Omit an incorrect comment 9413 9414 It likely was a leftover from a development version of the code. 9415 9416 Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f 9417 9418 src/xz/coder.c | 6 +----- 9419 1 file changed, 1 insertion(+), 5 deletions(-) 9420 9421commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937 9422Author: Lasse Collin <lasse.collin@tukaani.org> 9423Date: 2024-05-06 23:04:31 +0300 9424 9425 xz: Add braces to a for-statement and to an if-statement 9426 9427 No functional changes. 9428 9429 Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 9430 Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a 9431 9432 src/xz/coder.c | 6 ++++-- 9433 1 file changed, 4 insertions(+), 2 deletions(-) 9434 9435commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57 9436Author: Lasse Collin <lasse.collin@tukaani.org> 9437Date: 2024-05-06 23:00:09 +0300 9438 9439 liblzma: Omit an unneeded array from the x86 filter 9440 9441 Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 9442 9443 src/liblzma/simple/x86.c | 5 +---- 9444 1 file changed, 1 insertion(+), 4 deletions(-) 9445 9446commit 7da488cb933fdf51cfc14cb5810beb0766224380 9447Author: Lasse Collin <lasse.collin@tukaani.org> 9448Date: 2024-05-06 22:56:31 +0300 9449 9450 CMake: Add test_suffix.sh to the tests 9451 9452 tests/tests.cmake | 13 +++++++++++++ 9453 1 file changed, 13 insertions(+) 9454 9455commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876 9456Author: Lasse Collin <lasse.collin@tukaani.org> 9457Date: 2024-05-06 22:55:54 +0300 9458 9459 Test: Add CMake support to test_suffix.sh 9460 9461 It needs to find the xz executable from a different directory 9462 and work without config.h. 9463 9464 tests/test_suffix.sh | 12 +++++++----- 9465 1 file changed, 7 insertions(+), 5 deletions(-) 9466 9467commit 50e19489387774bab3c4a988397d0d9c7a142a46 9468Author: Lasse Collin <lasse.collin@tukaani.org> 9469Date: 2024-05-06 20:45:34 +0300 9470 9471 Update INSTALL about MINIX 3 9472 9473 The latest stable is 3.3.0 and it's from 2014. 9474 Don't mention the older versions in INSTALL. 9475 3.3.0 ships with Clang already. 9476 9477 Testing with 3.4.0beta6 shows that tuklib_physmem 9478 works too so omit comments about that from INSTALL. 9479 Visibility warnigns weren't a problem either. 9480 9481 Thus it's enough to mention the need for --disable-threads 9482 as configure doesn't autodetect the lack of pthreads. 9483 9484 INSTALL | 20 +++++++------------- 9485 1 file changed, 7 insertions(+), 13 deletions(-) 9486 9487commit 68d18aea1422a2b86b98b71d0b019233d84e01b0 9488Author: Lasse Collin <lasse.collin@tukaani.org> 9489Date: 2024-05-02 23:00:16 +0300 9490 9491 Windows: Remove the "doc/api" line from README-Windows.txt 9492 9493 Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864 9494 9495 windows/README-Windows.txt | 2 -- 9496 1 file changed, 2 deletions(-) 9497 9498commit 8ede961374613aa302a13571d662cfaea1cf91f7 9499Author: Lasse Collin <lasse.collin@tukaani.org> 9500Date: 2024-05-02 22:59:04 +0300 9501 9502 Build: Don't copy doc/api from source tree to distribution tarball 9503 9504 It was copied if it existed. This was intentional when autogen.sh 9505 still built liblzma API docs with Doxygen. 9506 9507 Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 9508 9509 Makefile.am | 5 ----- 9510 1 file changed, 5 deletions(-) 9511 9512commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc 9513Author: Sam James <sam@gentoo.org> 9514Date: 2024-05-02 13:26:40 +0100 9515 9516 ci: add SPDX headers 9517 9518 I've checked over each of these and they're straightforward applications 9519 of the relevant Github Actions. 9520 9521 .github/workflows/freebsd.yml | 2 ++ 9522 .github/workflows/netbsd.yml | 2 ++ 9523 .github/workflows/openbsd.yml | 2 ++ 9524 3 files changed, 6 insertions(+) 9525 9526commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3 9527Author: Yaroslav Halchenko <debian@onerussian.com> 9528Date: 2024-03-29 14:37:24 -0400 9529 9530 codespell: Ignore the THANKS file and debbugs.gnu.org URL 9531 9532 This way "codespell -i 0" is silent. 9533 9534 This is the first commit from 9535 https://github.com/tukaani-project/xz/pull/93 9536 with trivial edits by Lasse Collin. 9537 9538 .codespellrc | 6 +++++- 9539 1 file changed, 5 insertions(+), 1 deletion(-) 9540 9541commit 905bfc74fe2670fd9c39014803017ab53d325401 9542Author: Lasse Collin <lasse.collin@tukaani.org> 9543Date: 2024-04-30 14:37:11 +0300 9544 9545 Add .gitattributes to clean up git-archive output 9546 9547 .gitattributes | 7 +++++++ 9548 1 file changed, 7 insertions(+) 9549 9550commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501 9551Author: Lasse Collin <lasse.collin@tukaani.org> 9552Date: 2024-04-19 12:11:09 +0300 9553 9554 xzdec: Support Landlock ABI version 4 9555 9556 This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899 9557 but I forgot to do the same in xzdec. 9558 9559 The Landlock sandbox in xzdec could be stricter as now it's 9560 active only for the last file being decompressed. In xz, 9561 read-only sandbox is used for multi-file case. On the other hand, 9562 xz doesn't go to the strictest mode when processing the last file 9563 when more than one file was specified; xzdec does. 9564 9565 src/xzdec/xzdec.c | 18 ++++++++++++++---- 9566 1 file changed, 14 insertions(+), 4 deletions(-) 9567 9568commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8 9569Author: Lasse Collin <lasse.collin@tukaani.org> 9570Date: 2024-04-30 22:22:45 +0300 9571 9572 liblzma: Fix incorrect function type error from sanitizer 9573 9574 Clang 17 with -fsanitize=address,undefined: 9575 9576 src/liblzma/common/filter_common.c:366:8: runtime error: 9577 call to function encoder_find through pointer to incorrect 9578 function type 'const lzma_filter_coder *(*)(unsigned long)' 9579 src/liblzma/common/filter_encoder.c:187: note: 9580 encoder_find defined here 9581 9582 Use a wrapper function to get the correct type neatly. 9583 This reduces the number of casts needed too. 9584 9585 This issue could be a problem with control flow integrity (CFI) 9586 methods that check the function type on indirect function calls. 9587 9588 Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680 9589 9590 src/liblzma/common/filter_decoder.c | 15 ++++++++++++--- 9591 src/liblzma/common/filter_encoder.c | 17 +++++++++++++---- 9592 2 files changed, 25 insertions(+), 7 deletions(-) 9593 9594commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff 9595Author: Lasse Collin <lasse.collin@tukaani.org> 9596Date: 2024-04-30 21:41:11 +0300 9597 9598 xz: Avoid arithmetic on a null pointer 9599 9600 It's undefined behavior. The result wasn't ever used as it occurred 9601 in the last iteration of a loop. 9602 9603 Clang 17 with -fsanitize=address,undefined: 9604 9605 $ src/xz/xz --block-list=123 9606 src/xz/args.c:164:12: runtime error: applying non-zero offset 1 9607 to null pointer 9608 9609 Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43 9610 Co-authored-by: Sam James <sam@gentoo.org> 9611 9612 src/xz/args.c | 8 +++++++- 9613 1 file changed, 7 insertions(+), 1 deletion(-) 9614 9615commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5 9616Author: Lasse Collin <lasse.collin@tukaani.org> 9617Date: 2024-04-27 20:42:00 +0300 9618 9619 CMake: Support building liblzma API docs using Doxygen 9620 9621 This is disabled by default to match the default in Autotools. 9622 Use -DUSE_DOXYGEN=ON to enable Doxygen usage. 9623 9624 This uses the update-doxygen script, thus this is under if(UNIX) 9625 although Doxygen itself can run on Windows too. 9626 9627 CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- 9628 1 file changed, 31 insertions(+), 9 deletions(-) 9629 9630commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37 9631Author: Lasse Collin <lasse.collin@tukaani.org> 9632Date: 2024-04-20 23:36:39 +0300 9633 9634 CMake: List API headers in LIBLZMA_API_HEADERS variable 9635 9636 This way the same list will be usable in more than one location. 9637 9638 CMakeLists.txt | 21 ++++++++++++--------- 9639 1 file changed, 12 insertions(+), 9 deletions(-) 9640 9641commit 541406bee3f09e9813103c6406b10fc6ab2e0d30 9642Author: Lasse Collin <lasse.collin@tukaani.org> 9643Date: 2024-04-19 15:16:42 +0300 9644 9645 PACKAGERS: Document the optional Doxygen usage 9646 9647 Also add a note that packagers should check the licensing 9648 of the Doxygen output. 9649 9650 PACKAGERS | 19 ++++++++++--------- 9651 1 file changed, 10 insertions(+), 9 deletions(-) 9652 9653commit e21efdf96f39378fe417479f89e97046680406f5 9654Author: Lasse Collin <lasse.collin@tukaani.org> 9655Date: 2024-04-27 17:47:09 +0300 9656 9657 Build: Add --enable-doxygen to generate and install API docs 9658 9659 It requires Doxygen. This option is disabled by default. 9660 9661 INSTALL | 6 ++++++ 9662 configure.ac | 10 +++++++++- 9663 src/liblzma/api/Makefile.am | 19 +++++++++++++++++++ 9664 3 files changed, 34 insertions(+), 1 deletion(-) 9665 9666commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b 9667Author: Lasse Collin <lasse.collin@tukaani.org> 9668Date: 2024-04-19 15:15:17 +0300 9669 9670 Doxygen: update-doxygen: Support out-of-tree builds 9671 9672 Also, now $0 is used to refer to the script itself. 9673 9674 doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++------------------- 9675 1 file changed, 68 insertions(+), 42 deletions(-) 9676 9677commit 2c519f641f266fd897edf680827d9c905f411440 9678Author: Lasse Collin <lasse.collin@tukaani.org> 9679Date: 2024-04-28 21:08:00 +0300 9680 9681 Doxygen: Simplify Doxyfile and add SPDX license identifier 9682 9683 This omits all comments and a few non-default options that weren't 9684 needed. Now it contains no copyrighted content from Doxygen itself. 9685 9686 doxygen/Doxyfile | 2698 +----------------------------------------------------- 9687 1 file changed, 25 insertions(+), 2673 deletions(-) 9688 9689commit bdba39a57530d11b88440df8024002be3d09e4a1 9690Author: Lasse Collin <lasse.collin@tukaani.org> 9691Date: 2024-04-19 15:14:02 +0300 9692 9693 Doxygen: Don't strip JavaScript anymore 9694 9695 The stripping method worked well with Doxygen 1.8 and 1.9 but 9696 it doesn't work with Doxygen 1.10 anymore. Since we won't ship 9697 pre-generated liblzma API docs anymore, the extra bloat and 9698 extra license info of the JavaScript files won't affect the 9699 upstream source package anymore. 9700 9701 doxygen/update-doxygen | 21 --------------------- 9702 1 file changed, 21 deletions(-) 9703 9704commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 9705Author: Lasse Collin <lasse.collin@tukaani.org> 9706Date: 2024-04-19 17:26:41 +0300 9707 9708 Build: Remove old Doxygen rules from top-level Makefile.am 9709 9710 Makefile.am | 12 ------------ 9711 1 file changed, 12 deletions(-) 9712 9713commit fd7faa4c338a42a6a40e854b837d285ae2e8c609 9714Author: Lasse Collin <lasse.collin@tukaani.org> 9715Date: 2024-04-19 15:10:06 +0300 9716 9717 Update COPYING to match the autogen.sh and mydist changes 9718 9719 COPYING | 11 ----------- 9720 1 file changed, 11 deletions(-) 9721 9722commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3 9723Author: Lasse Collin <lasse.collin@tukaani.org> 9724Date: 2024-04-19 17:23:43 +0300 9725 9726 Build: Don't run update-doxygen as part of "make mydist" 9727 9728 Makefile.am | 1 - 9729 1 file changed, 1 deletion(-) 9730 9731commit e9be74f5b129fe8a5388d588e68b1b7f5168a310 9732Author: Lasse Collin <lasse.collin@tukaani.org> 9733Date: 2024-04-19 15:09:48 +0300 9734 9735 autogen.sh: Don't generated Doxygen docs anymore 9736 9737 autogen.sh | 18 +++--------------- 9738 1 file changed, 3 insertions(+), 15 deletions(-) 9739 9740commit 252aa1d67bc015eeba462803ab72edeb7744d864 9741Author: Lasse Collin <lasse.collin@tukaani.org> 9742Date: 2024-04-19 17:41:36 +0300 9743 9744 windows/build.bash: Omit Doxygen docs from the package 9745 9746 They will be omitted from the source tarball and I don't want 9747 to make Doxygen a dependency of build.bash. 9748 9749 windows/build.bash | 4 ++-- 9750 1 file changed, 2 insertions(+), 2 deletions(-) 9751 9752commit 634095364d87444d62d8ec54c134c0cd4705f5d7 9753Author: Lasse Collin <lasse.collin@tukaani.org> 9754Date: 2024-04-19 14:14:47 +0300 9755 9756 README: Don't mention PDF man pages anymore 9757 9758 README | 6 +++--- 9759 1 file changed, 3 insertions(+), 3 deletions(-) 9760 9761commit dc684bf76ea23574ee9d88382057381e04e6089a 9762Author: Lasse Collin <lasse.collin@tukaani.org> 9763Date: 2024-04-19 14:10:39 +0300 9764 9765 Build: Omit PDF man pages from the package 9766 9767 pdf-local rule was added to create the PDFs still with "make pdf". 9768 The install rules are missing but that likely doesn't matter at all. 9769 9770 Makefile.am | 29 +++++++++++++++++++---------- 9771 1 file changed, 19 insertions(+), 10 deletions(-) 9772 9773commit e3531ab4125cbd5c01ebd3200791350960547189 9774Author: Lasse Collin <lasse.collin@tukaani.org> 9775Date: 2024-04-19 13:54:39 +0300 9776 9777 windows/build.bash: Don't copy PDF man pages to the package 9778 9779 windows/README-Windows.txt | 2 +- 9780 windows/build.bash | 2 +- 9781 2 files changed, 2 insertions(+), 2 deletions(-) 9782 9783commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7 9784Author: Lasse Collin <lasse.collin@tukaani.org> 9785Date: 2024-04-28 01:34:50 +0300 9786 9787 Tests: test_index: Fix failures when features are disabled 9788 9789 Fixes: cd88423e76d54eb72aea037364f3ebb21f122503 9790 9791 tests/test_index.c | 13 ++++++++----- 9792 1 file changed, 8 insertions(+), 5 deletions(-) 9793 9794commit aaff75c3486c4489ce88b0efb36b41cf138af7c3 9795Author: Lasse Collin <lasse.collin@tukaani.org> 9796Date: 2024-04-20 17:09:11 +0300 9797 9798 CMake: Keep the build working if the "tests" directory is missing 9799 9800 This moves the tests section as is from CMakeLists.txt into 9801 tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake 9802 if the latter file exists. 9803 9804 Now it's possible to delete the whole "tests" directory and 9805 building with CMake will still work normally, just without 9806 the tests. This way the tests are readily available for those 9807 who want them, and those who won't run the tests anyway have 9808 a straightforward way to ensure that nothing from the "tests" 9809 directory can affect the build process. 9810 9811 CMakeLists.txt | 76 ++--------------------------------------------- 9812 tests/Makefile.am | 1 + 9813 tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 9814 3 files changed, 92 insertions(+), 73 deletions(-) 9815 9816commit a5f2aa5618fe9183706c9c514c3067985f6c338b 9817Author: Lasse Collin <lasse.collin@tukaani.org> 9818Date: 2024-04-20 13:12:50 +0300 9819 9820 Tests: Remove x86 and SPARC BCJ tests 9821 9822 These are very old but the exact test file isn't easy to reproduce 9823 as it was compiled from a short C program (bcj_test.c) long ago. 9824 These tests weren't very good anyway, just a little better than nothing. 9825 9826 tests/Makefile.am | 7 ---- 9827 tests/bcj_test.c | 64 --------------------------------- 9828 tests/compress_prepared_bcj_sparc | Bin 1240 -> 0 bytes 9829 tests/compress_prepared_bcj_x86 | Bin 1388 -> 0 bytes 9830 tests/files/README | 8 ----- 9831 tests/files/good-1-sparc-lzma2.xz | Bin 612 -> 0 bytes 9832 tests/files/good-1-x86-lzma2.xz | Bin 716 -> 0 bytes 9833 tests/test_compress_prepared_bcj_sparc | 4 --- 9834 tests/test_compress_prepared_bcj_x86 | 4 --- 9835 9 files changed, 87 deletions(-) 9836 9837commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07 9838Author: Lasse Collin <lasse.collin@tukaani.org> 9839Date: 2024-04-27 18:30:40 +0300 9840 9841 Tests: test_index: Edit a misleading test 9842 9843 tests/test_index.c | 7 +++++-- 9844 1 file changed, 5 insertions(+), 2 deletions(-) 9845 9846commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd 9847Author: Lasse Collin <lasse.collin@tukaani.org> 9848Date: 2024-04-27 16:46:01 +0300 9849 9850 Tests: test_index: Use minimal values to test integer overflow 9851 9852 tests/test_index.c | 4 ++-- 9853 1 file changed, 2 insertions(+), 2 deletions(-) 9854 9855commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d 9856Author: Lasse Collin <lasse.collin@tukaani.org> 9857Date: 2024-04-27 15:13:39 +0300 9858 9859 Tests: test_index: Test lzma_index_buffer_decode() more 9860 9861 tests/test_index.c | 29 ++++++++++++++++++++++++++--- 9862 1 file changed, 26 insertions(+), 3 deletions(-) 9863 9864commit 575b11b0d291e66c5fce31ce7a72f11436d57c83 9865Author: Lasse Collin <lasse.collin@tukaani.org> 9866Date: 2024-04-27 15:08:29 +0300 9867 9868 Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR 9869 9870 On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was 9871 already done but this adds a test for that case too. 9872 9873 tests/test_index.c | 31 +++++++++++++++++++++++++++---- 9874 1 file changed, 27 insertions(+), 4 deletions(-) 9875 9876commit 2c970debdb285823f01f75e875561d893345ac2b 9877Author: Lasse Collin <lasse.collin@tukaani.org> 9878Date: 2024-04-27 15:01:25 +0300 9879 9880 Tests: test_index: Test lzma_index_buffer_encode() with empty output buf 9881 9882 tests/test_index.c | 3 +++ 9883 1 file changed, 3 insertions(+) 9884 9885commit cd88423e76d54eb72aea037364f3ebb21f122503 9886Author: Lasse Collin <lasse.collin@tukaani.org> 9887Date: 2024-04-27 14:59:55 +0300 9888 9889 Tests: test_index: Replace if-statements with tuktest assertions 9890 9891 tests/test_index.c | 22 +++++++++------------- 9892 1 file changed, 9 insertions(+), 13 deletions(-) 9893 9894commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51 9895Author: Lasse Collin <lasse.collin@tukaani.org> 9896Date: 2024-04-27 14:56:16 +0300 9897 9898 Tests: test_index: Make it clear that my_alloc() has no integer overflows 9899 9900 liblzma guarantees that the product of the allocation size arguments 9901 will fit in size_t. 9902 9903 Putting the pre-increment in the if-statement was clearly wrong 9904 although in practice it didn't matter here as the function is 9905 called only a couple of times. 9906 9907 tests/test_index.c | 5 ++++- 9908 1 file changed, 4 insertions(+), 1 deletion(-) 9909 9910commit 12313a3b6596cdcf012e180597f84d231f8730d3 9911Author: Lasse Collin <lasse.collin@tukaani.org> 9912Date: 2024-04-27 14:51:52 +0300 9913 9914 Tests: test_index: Verify also iter.block.number_in_stream 9915 9916 tests/test_index.c | 2 ++ 9917 1 file changed, 2 insertions(+) 9918 9919commit ad2654010d9d641ce1601beeff00630027e6bcd4 9920Author: Lasse Collin <lasse.collin@tukaani.org> 9921Date: 2024-04-27 14:51:06 +0300 9922 9923 Tests: test_index: Check cases that aren't a multiple of 4 bytes 9924 9925 tests/test_index.c | 33 +++++++++++++++++++++++++-------- 9926 1 file changed, 25 insertions(+), 8 deletions(-) 9927 9928commit 2524fcf2b68b662035437cee8edbe80067c0c240 9929Author: Lasse Collin <lasse.collin@tukaani.org> 9930Date: 2024-04-27 14:40:25 +0300 9931 9932 Tests: test_index: Edit comments and white space 9933 9934 tests/test_index.c | 18 +++++++++++------- 9935 1 file changed, 11 insertions(+), 7 deletions(-) 9936 9937commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0 9938Author: Lasse Collin <lasse.collin@tukaani.org> 9939Date: 2024-04-27 14:33:38 +0300 9940 9941 liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR 9942 9943 If the arguments to lzma_index_decoder() or lzma_index_buffer_decode() 9944 were such that LZMA_PROG_ERROR was returned, the lzma_index **i 9945 argument wasn't touched even though the API docs say that *i = NULL 9946 is done if an error occurs. This obviously won't be done even now 9947 if i == NULL but otherwise it is best to do it due to the wording 9948 in the API docs. 9949 9950 In practice this matters very little: The problem can occur only 9951 if the functions are called with invalid arguments, that is, 9952 the calling application must already have a bug. 9953 9954 src/liblzma/common/index_decoder.c | 11 +++++++++++ 9955 1 file changed, 11 insertions(+) 9956 9957commit 0478473953f50716a2bc37b619b1c7dc2682b1ad 9958Author: Lasse Collin <lasse.collin@tukaani.org> 9959Date: 2024-04-26 18:25:18 +0300 9960 9961 CMake: Bump maximum policy version to 3.29 9962 9963 CMakeLists.txt | 2 +- 9964 1 file changed, 1 insertion(+), 1 deletion(-) 9965 9966commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3 9967Author: Sam James <sam@gentoo.org> 9968Date: 2024-04-13 22:30:44 +0100 9969 9970 ci: add NetBSD 9971 9972 .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++ 9973 1 file changed, 29 insertions(+) 9974 9975commit 72c210336de26fb87a928160d025fa10a638d23b 9976Author: Sam James <sam@gentoo.org> 9977Date: 2024-04-13 23:49:26 +0100 9978 9979 ci: add FreeBSD 9980 9981 .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++ 9982 1 file changed, 29 insertions(+) 9983 9984commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2 9985Author: Sam James <sam@gentoo.org> 9986Date: 2024-04-13 23:16:08 +0100 9987 9988 ci: add OpenBSD 9989 9990 .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++ 9991 1 file changed, 31 insertions(+) 9992 9993commit c7ef767c49351743d8d011574abb9e200bf6b24f 9994Author: Sam James <sam@gentoo.org> 9995Date: 2024-04-15 05:53:01 +0100 9996 9997 liblzma: outqueue: add header guard 9998 9999 Reported by github's codeql. 10000 10001 src/liblzma/common/outqueue.h | 5 +++++ 10002 1 file changed, 5 insertions(+) 10003 10004commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c 10005Author: Sam James <sam@gentoo.org> 10006Date: 2024-04-15 05:53:56 +0100 10007 10008 liblzma: easy_preset: add header guard 10009 10010 Reported by github's codeql. 10011 10012 src/liblzma/common/easy_preset.h | 5 +++++ 10013 1 file changed, 5 insertions(+) 10014 10015commit 4ffc60f32397371769b7d6b5e3ed8626292d58df 10016Author: Lasse Collin <lasse.collin@tukaani.org> 10017Date: 2024-04-25 14:00:57 +0300 10018 10019 tuklib_integer: Rename bswapXX to byteswapXX 10020 10021 The __builtin_bswapXX from GCC and Clang are preferred when 10022 they are available. This can allow compilers to emit the x86 MOVBE 10023 instruction instead of doing a load + byteswap as two instructions 10024 (which would happen if the byteswapping is done in inline asm). 10025 10026 bswap16, bswap32, and bswap64 exist in system headers on *BSDs 10027 and Darwin. #defining bswap16 on NetBSD results in a warning about 10028 macro redefinition. It's safest to avoid this namespace conflict 10029 completely. 10030 10031 No OS supported by tuklib_integer.h uses byteswapXX names and 10032 a web search doesn't immediately find any obvious danger of 10033 namespace conflicts. So let's try these still-pretty-short names 10034 for the macros. 10035 10036 Thanks to Sam James for pointing out the compiler warning on 10037 NetBSD 10.0. 10038 10039 src/common/tuklib_integer.h | 47 ++++++++++++++++++++------------------ 10040 src/liblzma/check/crc32_fast.c | 4 ++-- 10041 src/liblzma/check/crc32_tablegen.c | 2 +- 10042 src/liblzma/check/crc64_fast.c | 4 ++-- 10043 src/liblzma/check/crc64_tablegen.c | 2 +- 10044 5 files changed, 31 insertions(+), 28 deletions(-) 10045 10046commit 08ab0966a75b501aa7c717622223f0c13a113c75 10047Author: Lasse Collin <lasse.collin@tukaani.org> 10048Date: 2024-04-24 01:20:26 +0300 10049 10050 liblzma: API doc cleanups 10051 10052 src/liblzma/api/lzma/container.h | 2 +- 10053 src/liblzma/api/lzma/index.h | 6 +++--- 10054 src/liblzma/api/lzma/vli.h | 5 ++--- 10055 3 files changed, 6 insertions(+), 7 deletions(-) 10056 10057commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989 10058Author: Lasse Collin <lasse.collin@tukaani.org> 10059Date: 2024-04-23 16:35:33 +0300 10060 10061 Tests: test_filter_str: Add a few assertions 10062 10063 tests/test_filter_str.c | 4 ++++ 10064 1 file changed, 4 insertions(+) 10065 10066commit 26c69be80523b05c84dea86c47c4ddd9a10945d7 10067Author: Lasse Collin <lasse.collin@tukaani.org> 10068Date: 2024-04-23 16:35:08 +0300 10069 10070 Tests: test_filter_str: Move one assertion and add a comment 10071 10072 tests/test_filter_str.c | 6 ++++-- 10073 1 file changed, 4 insertions(+), 2 deletions(-) 10074 10075commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b 10076Author: Lasse Collin <lasse.collin@tukaani.org> 10077Date: 2024-04-23 16:26:06 +0300 10078 10079 Tests: test_filter_str: Tweak comments and white space 10080 10081 tests/test_filter_str.c | 3 +++ 10082 1 file changed, 3 insertions(+) 10083 10084commit c92663aa1bd576e0615498a4189acf0df12e84b9 10085Author: Lasse Collin <lasse.collin@tukaani.org> 10086Date: 2024-04-23 16:25:22 +0300 10087 10088 Tests: test_filter_str: Add missing RISC-V case 10089 10090 Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 10091 10092 tests/test_filter_str.c | 3 +++ 10093 1 file changed, 3 insertions(+) 10094 10095commit b0366df1d7ed26268101f9303a001c91c0806dfc 10096Author: Lasse Collin <lasse.collin@tukaani.org> 10097Date: 2024-04-22 22:23:32 +0300 10098 10099 Tests: test_filter_str: Test *error_pos more thoroughly 10100 10101 tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- 10102 1 file changed, 76 insertions(+), 1 deletion(-) 10103 10104commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d 10105Author: Lasse Collin <lasse.collin@tukaani.org> 10106Date: 2024-04-22 21:54:39 +0300 10107 10108 liblzma: lzma_str_to_filters: Set *error_pos on all errors 10109 10110 The API docs clearly say that if error_pos isn't NULL then *error 10111 is always set on any error. However, it wasn't touched if str == NULL 10112 or filters == NULL or unsupported flags were specified. 10113 10114 Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 10115 10116 src/liblzma/common/string_conversion.c | 6 ++++++ 10117 1 file changed, 6 insertions(+) 10118 10119commit ed8e552395701fbf046027cebc8be4a6755b263f 10120Author: Lasse Collin <lasse.collin@tukaani.org> 10121Date: 2024-04-22 20:31:25 +0300 10122 10123 liblzma: Clean up white space 10124 10125 src/liblzma/lz/lz_encoder.h | 2 +- 10126 1 file changed, 1 insertion(+), 1 deletion(-) 10127 10128commit 2f06920f20b1ad63b7953dc09569e1d424998849 10129Author: Lasse Collin <lasse.collin@tukaani.org> 10130Date: 2024-04-22 18:35:19 +0300 10131 10132 Tests: test_filter_flags: Edit comments and style 10133 10134 tests/test_filter_flags.c | 13 +++++++++---- 10135 1 file changed, 9 insertions(+), 4 deletions(-) 10136 10137commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82 10138Author: Lasse Collin <lasse.collin@tukaani.org> 10139Date: 2024-04-22 16:39:44 +0300 10140 10141 Tests: Fix C99/C11 compatibility when features are disabled 10142 10143 The array could become empty and then the initializer would be 10144 simply {} which is allowed only in GNU-C and C23. 10145 10146 tests/test_filter_flags.c | 18 ++++++++---------- 10147 1 file changed, 8 insertions(+), 10 deletions(-) 10148 10149commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d 10150Author: Lasse Collin <lasse.collin@tukaani.org> 10151Date: 2024-04-21 20:32:16 +0300 10152 10153 DOS: Omit useless defines from config.h 10154 10155 dos/config.h | 12 ------------ 10156 1 file changed, 12 deletions(-) 10157 10158commit fc1921b04b8840caaa777c2bd5340d41b259da20 10159Author: Lasse Collin <lasse.collin@tukaani.org> 10160Date: 2024-04-21 20:27:50 +0300 10161 10162 Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h 10163 10164 configure.ac | 6 ------ 10165 1 file changed, 6 deletions(-) 10166 10167commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 10168Author: Lasse Collin <lasse.collin@tukaani.org> 10169Date: 2024-04-19 22:04:21 +0300 10170 10171 liblzma: Silence a warning from Coverity static analysis 10172 10173 It is logical why it cannot know for sure that the value has 10174 to be at most 4 if it is less than 16. 10175 10176 The x86 filter is based on a very old LZMA SDK version. Newer 10177 ones have quite a different implementation for the same filter. 10178 10179 Thanks to Sam James. 10180 10181 src/liblzma/simple/x86.c | 12 +++++------- 10182 1 file changed, 5 insertions(+), 7 deletions(-) 10183 10184commit e89d3e83b4496d0b5410870634970c0aa9721d59 10185Author: Lasse Collin <lasse.collin@tukaani.org> 10186Date: 2024-04-19 23:18:19 +0300 10187 10188 Update .gitignore 10189 10190 .gitignore | 21 ++++++++------------- 10191 1 file changed, 8 insertions(+), 13 deletions(-) 10192 10193commit 86fc4ee859709da0ff9617a1490f13ddac0a109b 10194Author: Lasse Collin <lasse.collin@tukaani.org> 10195Date: 2024-04-19 20:53:24 +0300 10196 10197 Tests: test_lzip_decoder: Tweak coding style and comments 10198 10199 tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------ 10200 1 file changed, 28 insertions(+), 30 deletions(-) 10201 10202commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5 10203Author: Lasse Collin <lasse.collin@tukaani.org> 10204Date: 2024-04-19 20:51:36 +0300 10205 10206 Tests: test_lzip_decoder: Remove redundant initializations 10207 10208 tests/test_lzip_decoder.c | 6 ++---- 10209 1 file changed, 2 insertions(+), 4 deletions(-) 10210 10211commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9 10212Author: Lasse Collin <lasse.collin@tukaani.org> 10213Date: 2024-04-19 20:47:24 +0300 10214 10215 Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls 10216 10217 tests/test_lzip_decoder.c | 12 ++---------- 10218 1 file changed, 2 insertions(+), 10 deletions(-) 10219 10220commit eeca8f7c5baf1ad69606bb734d5001763466d58f 10221Author: Lasse Collin <lasse.collin@tukaani.org> 10222Date: 2024-04-15 20:35:07 +0300 10223 10224 xz: Fix white space error. 10225 10226 Thanks to xx on #tukaani. 10227 10228 src/xz/args.c | 2 +- 10229 1 file changed, 1 insertion(+), 1 deletion(-) 10230 10231commit 462ca9409940a19f743daee6b3bcc611277d0007 10232Author: Sam James <sam@gentoo.org> 10233Date: 2024-04-11 23:01:44 +0100 10234 10235 xz: add missing noreturn for message_filters_help 10236 10237 Fixes: a165d7df1964121eb9df715e6f836a31c865beef 10238 10239 src/xz/message.h | 1 + 10240 1 file changed, 1 insertion(+) 10241 10242commit 863f13d2828b99b0539ce73f9cf85bde32358034 10243Author: Sam James <sam@gentoo.org> 10244Date: 2024-04-11 19:34:04 +0100 10245 10246 xz: signals: suppress -Wsign-conversion on macOS 10247 10248 On macOS, we get: 10249 ``` 10250 signals.c: In function 'signals_init': 10251 signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 10252 76 | sigaddset(&hooked_signals, sigs[i]); 10253 | ^~~~~~~~~ 10254 signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 10255 81 | sigaddset(&hooked_signals, message_progress_sigs[i]); 10256 | ^~~~~~~~~ 10257 signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] 10258 86 | sigaddset(&hooked_signals, SIGTSTP); 10259 | ^~~~~~~~~ 10260 ``` 10261 10262 We use `int` for `hooked_signals` but we can't just cast to whatever 10263 `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int 10264 on macOS. On macOS, `sigaddset` is implemented as a macro. 10265 10266 Just suppress -Wsign-conversion for `signals_init` for macOS given 10267 there's no real nice way of fixing this. 10268 10269 src/xz/signals.c | 7 +++++++ 10270 1 file changed, 7 insertions(+) 10271 10272commit fcbd0d199933a69713cb293cbd7409a757d854cd 10273Author: Lasse Collin <lasse.collin@tukaani.org> 10274Date: 2024-04-13 22:19:40 +0300 10275 10276 Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling 10277 10278 tests/test_microlzma.c | 8 ++++++++ 10279 1 file changed, 8 insertions(+) 10280 10281commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e 10282Author: Lasse Collin <lasse.collin@tukaani.org> 10283Date: 2024-04-13 18:05:31 +0300 10284 10285 Tests: test_microlzma: Tweak comments, coding style, and minor details 10286 10287 A few lines were reordered, a few ARRAY_SIZE were changed to sizeof, 10288 and a few uint32_t were changed to size_t. No real functional changes 10289 were intended. 10290 10291 tests/test_microlzma.c | 149 +++++++++++++++++++++++++++---------------------- 10292 1 file changed, 83 insertions(+), 66 deletions(-) 10293 10294commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992 10295Author: Ryan Carsten Schmidt <git@ryandesign.com> 10296Date: 2024-04-12 19:31:13 -0500 10297 10298 CI: Use only the active CPUs on macOS 10299 10300 hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts 10301 only the active CPUs. 10302 10303 build-aux/ci_build.bash | 2 +- 10304 1 file changed, 1 insertion(+), 1 deletion(-) 10305 10306commit 73f629e321b74f68c9954728fa4f19261afccf46 10307Author: Sam James <sam@gentoo.org> 10308Date: 2024-04-10 18:33:55 +0100 10309 10310 ci: rename ci_build.sh -> ci_build.bash 10311 10312 We discussed the name and it's less cognitive load to just call it '.bash' 10313 so you don't have an immediate question about if bashisms are OK. 10314 10315 .github/workflows/ci.yml | 52 ++++++++++++++++---------------- 10316 .github/workflows/windows-ci.yml | 20 ++++++------ 10317 build-aux/{ci_build.sh => ci_build.bash} | 0 10318 3 files changed, 36 insertions(+), 36 deletions(-) 10319 10320commit 8709407a9ef8e7e8aec117879400e4dd3e227ada 10321Author: Sam James <sam@gentoo.org> 10322Date: 2024-04-10 17:42:23 +0100 10323 10324 ci: build in parallel by default 10325 10326 build-aux/ci_build.sh | 2 ++ 10327 1 file changed, 2 insertions(+) 10328 10329commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f 10330Author: Sam James <sam@gentoo.org> 10331Date: 2024-04-10 15:41:08 +0100 10332 10333 ci: default to -O2 10334 10335 We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang 10336 with Valgrind. Just always start with -O2 if CFLAGS isn't set in the 10337 environment and append what was passed on the command line. 10338 10339 build-aux/ci_build.sh | 3 ++- 10340 1 file changed, 2 insertions(+), 1 deletion(-) 10341 10342commit bc899f9e0700ad153bd65f4804c4de7515c8a847 10343Author: Sam James <sam@gentoo.org> 10344Date: 2024-04-10 15:17:47 +0100 10345 10346 ci: make automake's test runner verbose on failures 10347 10348 This is a lot easier to work with than the save-logs thing the action 10349 tries to do... 10350 10351 build-aux/ci_build.sh | 2 +- 10352 1 file changed, 1 insertion(+), 1 deletion(-) 10353 10354commit b5e3470442531717b2457b40ab412740296af1bc 10355Author: Sam James <sam@gentoo.org> 10356Date: 2024-04-10 12:38:51 +0100 10357 10358 ci: make UBSAN abort on errors 10359 10360 Unfortunately, UBSAN doesn't do this by default. See also the change 10361 I made in Meson for this in October [0]. 10362 10363 [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c 10364 10365 .github/workflows/ci.yml | 1 + 10366 1 file changed, 1 insertion(+) 10367 10368commit 6c095a98fbec70b790253a663173ecdb669108c4 10369Author: Sam James <sam@gentoo.org> 10370Date: 2024-04-10 11:43:10 +0100 10371 10372 ci: test Valgrind 10373 10374 Using `--trace-children=yes` has a trade-off here, as it makes 10375 `test_scripts.sh` pretty slow when calling various non-xz utilities. 10376 10377 But I also feel like it's not useless to have Valgrind used there and it's 10378 not easy to exclude Valgrind just for that one test... 10379 10380 I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working 10381 immediately with some conditionally-built tests and I wondered if it was 10382 worth spending time on at least while we're debating xz's future build 10383 system situation. 10384 10385 [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html 10386 [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/ 10387 10388 .github/workflows/ci.yml | 11 ++++++++++- 10389 build-aux/ci_build.sh | 8 +++++--- 10390 2 files changed, 15 insertions(+), 4 deletions(-) 10391 10392commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59 10393Author: Lasse Collin <lasse.collin@tukaani.org> 10394Date: 2024-04-10 23:20:02 +0300 10395 10396 liblzma: CRC: Simplify table omission macros 10397 10398 A macro is useful to prevent a single #if directive from 10399 getting too ugly but only one macro is needed for all archs. 10400 10401 src/liblzma/check/crc32_table.c | 10 ++++------ 10402 src/liblzma/check/crc64_table.c | 4 ++-- 10403 src/liblzma/check/crc_common.h | 5 +++-- 10404 3 files changed, 9 insertions(+), 10 deletions(-) 10405 10406commit 45da936c879acf4f053a3055665bf1b10ded4462 10407Author: Lasse Collin <lasse.collin@tukaani.org> 10408Date: 2024-04-10 23:09:40 +0300 10409 10410 liblzma: ARM64 CRC: Fix omission of CRC32 table 10411 10412 The macro name had an odd typo so the table wasn't omitted 10413 when it should have. 10414 10415 Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 10416 10417 src/liblzma/check/crc32_table.c | 2 +- 10418 1 file changed, 1 insertion(+), 1 deletion(-) 10419 10420commit 308a9af85400b0e2019f0f012c8354e831d06d65 10421Author: Lasse Collin <lasse.collin@tukaani.org> 10422Date: 2024-04-10 22:21:51 +0300 10423 10424 Build: If ARM64 feature detection func is found, stop looking for others 10425 10426 This can speed up configure a tiny bit. 10427 10428 Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732 10429 10430 configure.ac | 2 +- 10431 1 file changed, 1 insertion(+), 1 deletion(-) 10432 10433commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6 10434Author: Lasse Collin <lasse.collin@tukaani.org> 10435Date: 2024-04-10 22:04:27 +0300 10436 10437 liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD 10438 10439 I didn't test this but it shouldn't change any functionality. 10440 10441 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 10442 10443 src/liblzma/check/crc32_arm64.h | 7 ++++--- 10444 1 file changed, 4 insertions(+), 3 deletions(-) 10445 10446commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57 10447Author: Lasse Collin <lasse.collin@tukaani.org> 10448Date: 2024-04-10 21:59:27 +0300 10449 10450 liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code 10451 10452 Also add parenthesis to the return statement. 10453 10454 I didn't test this. 10455 10456 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 10457 10458 src/liblzma/check/crc32_arm64.h | 6 ++++-- 10459 1 file changed, 4 insertions(+), 2 deletions(-) 10460 10461commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0 10462Author: Lasse Collin <lasse.collin@tukaani.org> 10463Date: 2024-04-10 21:56:33 +0300 10464 10465 liblzma: ARM64 CRC32: Use negation instead of subtracting from 8 10466 10467 Subtracting from 0 is negation, this just keeps warnings away. 10468 10469 Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 10470 10471 src/liblzma/check/crc32_arm64.h | 2 +- 10472 1 file changed, 1 insertion(+), 1 deletion(-) 10473 10474commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7 10475Author: Lasse Collin <lasse.collin@tukaani.org> 10476Date: 2024-04-10 21:55:10 +0300 10477 10478 liblzma: ARM64 CRC32: Tweak coding style and comments 10479 10480 src/liblzma/check/crc32_arm64.h | 10 +++++----- 10481 1 file changed, 5 insertions(+), 5 deletions(-) 10482 10483commit 780d2c236de0e4749655696c2e0c26fb7565afd3 10484Author: Lasse Collin <lasse.collin@tukaani.org> 10485Date: 2024-04-09 21:55:01 +0300 10486 10487 Update SECURITY.md. 10488 10489 .github/SECURITY.md | 25 ++++++++----------------- 10490 1 file changed, 8 insertions(+), 17 deletions(-) 10491 10492commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a 10493Author: Lasse Collin <lasse.collin@tukaani.org> 10494Date: 2024-04-09 17:47:01 +0300 10495 10496 CI: Remove ifunc support. 10497 10498 .github/workflows/ci.yml | 13 +++---------- 10499 build-aux/ci_build.sh | 5 +---- 10500 2 files changed, 4 insertions(+), 14 deletions(-) 10501 10502commit 689ae2427342a2ea1206eb5ca08301baf410e7e0 10503Author: Lasse Collin <lasse.collin@tukaani.org> 10504Date: 2024-04-09 17:43:16 +0300 10505 10506 liblzma: Remove ifunc support. 10507 10508 This is *NOT* done for security reasons even though the backdoor 10509 relied on the ifunc code. Instead, the reason is that in this 10510 project ifunc provides little benefits but it's quite a bit of 10511 extra code to support it. The only case where ifunc *might* matter 10512 for performance is if the CRC functions are used directly by an 10513 application. In normal compression use it's completely irrelevant. 10514 10515 CMakeLists.txt | 79 --------------------------------------- 10516 INSTALL | 8 ---- 10517 configure.ac | 79 --------------------------------------- 10518 src/liblzma/check/crc32_fast.c | 48 +++--------------------- 10519 src/liblzma/check/crc64_fast.c | 21 ----------- 10520 src/liblzma/check/crc_common.h | 9 +---- 10521 src/liblzma/check/crc_x86_clmul.h | 11 +----- 10522 7 files changed, 8 insertions(+), 247 deletions(-) 10523 10524commit 6b4c859059a7eb9b0547590c081668e14ecf8af6 10525Author: Lasse Collin <lasse.collin@tukaani.org> 10526Date: 2024-04-08 22:04:41 +0300 10527 10528 tests/files/README: Update the main heading. 10529 10530 tests/files/README | 4 ++-- 10531 1 file changed, 2 insertions(+), 2 deletions(-) 10532 10533commit 2a851e06b891ce894f918faff32a6cca6fdecee6 10534Author: Lasse Collin <lasse.collin@tukaani.org> 10535Date: 2024-04-08 22:02:45 +0300 10536 10537 tests/files/README: Explain how to recreate the ARM64 test files. 10538 10539 tests/files/README | 15 ++++++++++++++- 10540 1 file changed, 14 insertions(+), 1 deletion(-) 10541 10542commit 3d09b721b94e18fe1f853a04799697f5de10b291 10543Author: Lasse Collin <lasse.collin@tukaani.org> 10544Date: 2024-04-08 21:51:55 +0300 10545 10546 debug: Add generator for the ARM64 test file data. 10547 10548 debug/Makefile.am | 3 +- 10549 debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ 10550 2 files changed, 118 insertions(+), 1 deletion(-) 10551 10552commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48 10553Author: Lasse Collin <lasse.collin@tukaani.org> 10554Date: 2024-04-08 21:19:38 +0300 10555 10556 xz man page: Use .ft CR instead of CW to silence warnings from groff. 10557 10558 src/xz/xz.1 | 32 ++++++++++++++++---------------- 10559 1 file changed, 16 insertions(+), 16 deletions(-) 10560 10561commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685 10562Author: Lasse Collin <lasse.collin@tukaani.org> 10563Date: 2024-04-08 19:28:35 +0300 10564 10565 Fix NEWS for 5.6.0 and 5.6.1. 10566 10567 NEWS | 6 ++++++ 10568 1 file changed, 6 insertions(+) 10569 10570commit bfd0c7c478e93a1911b845459549ff94587b6ea2 10571Author: Lasse Collin <lasse.collin@tukaani.org> 10572Date: 2024-04-08 19:22:26 +0300 10573 10574 Remove the XZ logo. 10575 10576 COPYING | 5 - 10577 COPYING.CC-BY-SA-4.0 | 427 --------------------------------------------------- 10578 Makefile.am | 2 - 10579 README | 2 - 10580 doc/xz-logo.png | Bin 6771 -> 0 bytes 10581 doxygen/Doxyfile | 6 +- 10582 doxygen/footer.html | 13 -- 10583 7 files changed, 3 insertions(+), 452 deletions(-) 10584 10585commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4 10586Author: Lasse Collin <lasse.collin@tukaani.org> 10587Date: 2024-04-08 18:27:39 +0300 10588 10589 Update maintainer and author info. 10590 10591 The other maintainer suddenly disappeared. 10592 10593 AUTHORS | 9 +++++++-- 10594 README | 10 +++------- 10595 THANKS | 1 - 10596 src/liblzma/api/lzma.h | 2 +- 10597 4 files changed, 11 insertions(+), 11 deletions(-) 10598 10599commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072 10600Author: Lasse Collin <lasse.collin@tukaani.org> 10601Date: 2024-04-08 18:05:32 +0300 10602 10603 Docs: Update .xz file format specification to 1.2.1. 10604 10605 This only reverts the XZ URL changes. 10606 10607 doc/xz-file-format.txt | 12 ++++++++---- 10608 1 file changed, 8 insertions(+), 4 deletions(-) 10609 10610commit 17aa2e1a796d3f758802df29afc89dcf335db567 10611Author: Lasse Collin <lasse.collin@tukaani.org> 10612Date: 2024-04-08 17:33:56 +0300 10613 10614 Update website URLs back to tukaani.org. 10615 10616 The XZ projects were moved back to their original URLs. 10617 10618 .github/SECURITY.md | 2 +- 10619 CMakeLists.txt | 2 +- 10620 COPYING | 3 +-- 10621 README | 4 ++-- 10622 configure.ac | 2 +- 10623 doc/faq.txt | 2 +- 10624 doc/lzma-file-format.txt | 12 ++++++------ 10625 dos/config.h | 2 +- 10626 src/liblzma/api/lzma.h | 2 +- 10627 src/xz/xz.1 | 6 +++--- 10628 src/xzdec/xzdec.1 | 4 ++-- 10629 windows/README-Windows.txt | 2 +- 10630 12 files changed, 21 insertions(+), 22 deletions(-) 10631 10632commit 2739db981023373a2ddabc7b456c7e658bb4f582 10633Author: Lasse Collin <lasse.collin@tukaani.org> 10634Date: 2024-04-08 17:07:08 +0300 10635 10636 xzdec: Tweak coding style and comments. 10637 10638 src/xzdec/xzdec.c | 32 +++++++++++++++++++++----------- 10639 1 file changed, 21 insertions(+), 11 deletions(-) 10640 10641commit 408b6adb2a07d07c6535f859571cca38837caaf3 10642Author: Lasse Collin <lasse.collin@tukaani.org> 10643Date: 2024-04-08 15:53:46 +0300 10644 10645 tests/ossfuzz: Tiny fix to a comment. 10646 10647 tests/ossfuzz/fuzz_decode_stream.c | 2 +- 10648 1 file changed, 1 insertion(+), 1 deletion(-) 10649 10650commit db4dd74a344580e0b81436598d9741a3454245b0 10651Author: Lasse Collin <lasse.collin@tukaani.org> 10652Date: 2024-04-09 18:22:16 +0300 10653 10654 Update THANKS. 10655 10656 THANKS | 1 + 10657 1 file changed, 1 insertion(+) 10658 10659commit e93e13c8b3bec925c56e0c0b675d8000a0f7f754 10660Author: Lasse Collin <lasse.collin@tukaani.org> 10661Date: 2024-04-08 15:32:58 +0300 10662 10663 Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). 10664 10665 While the backdoor was inactive (and thus harmless) without inserting 10666 a small trigger code into the build system when the source package was 10667 created, it's good to remove this anyway: 10668 10669 - The executable payloads were embedded as binary blobs in 10670 the test files. This was a blatant violation of the 10671 Debian Free Software Guidelines. 10672 10673 - On machines that see lots bots poking at the SSH port, the backdoor 10674 noticeably increased CPU load, resulting in degraded user experience 10675 and thus overwhelmingly negative user feedback. 10676 10677 - The maintainer who added the backdoor has disappeared. 10678 10679 - Backdoors are bad for security. 10680 10681 This reverts the following without making any other changes: 10682 10683 6e636819 Tests: Update two test files. 10684 a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 10685 0b4ccc91 Tests: Update RISC-V test files. 10686 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 10687 82ecc538 liblzma: Fix false Valgrind error report with GCC. 10688 cf44e4b7 Tests: Add a few test files. 10689 3060e107 Tests: Use smaller dictionary size in RISC-V test files. 10690 e2870db5 Tests: Add two RISC-V Filter test files. 10691 10692 The RISC-V test files also have real content that tests the filter 10693 but the real content would fit into much smaller files. A generator 10694 program would need to be available as well. 10695 10696 Thanks to Andres Freund for finding and reporting it and making 10697 it public quickly so others could act without a delay. 10698 See: https://www.openwall.com/lists/oss-security/2024/03/29/4 10699 10700 src/liblzma/check/crc32_fast.c | 7 +++++-- 10701 src/liblzma/check/crc64_fast.c | 4 +++- 10702 src/liblzma/check/crc_common.h | 25 ------------------------- 10703 tests/files/README | 27 --------------------------- 10704 tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes 10705 tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes 10706 tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes 10707 tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes 10708 tests/files/good-2cat.xz | Bin 136 -> 0 bytes 10709 tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes 10710 tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes 10711 tests/test_files.sh | 11 ----------- 10712 12 files changed, 8 insertions(+), 66 deletions(-) 10713 10714commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00 10715Author: Lasse Collin <lasse.collin@tukaani.org> 10716Date: 2024-03-30 14:36:28 +0200 10717 10718 CMake: Fix sabotaged Landlock sandbox check. 10719 10720 It never enabled it. 10721 10722 CMakeLists.txt | 2 +- 10723 1 file changed, 1 insertion(+), 1 deletion(-) 10724 10725commit af071ef7702debef4f1d324616a0137a5001c14c 10726Author: Jia Tan <jiat0218@gmail.com> 10727Date: 2024-03-26 01:50:02 +0800 10728 10729 Docs: Simplify SECURITY.md. 10730 10731 .github/SECURITY.md | 8 +------- 10732 1 file changed, 1 insertion(+), 7 deletions(-) 10733 10734commit 0b99783d63f27606936bb79a16c52d0d70c0b56f 10735Author: Lasse Collin <lasse.collin@tukaani.org> 10736Date: 2024-03-22 17:46:30 +0200 10737 10738 liblzma: memcmplen.h: Add a comment why subtraction is used. 10739 10740 src/liblzma/common/memcmplen.h | 13 +++++++++++++ 10741 1 file changed, 13 insertions(+) 10742 10743commit 8a25ba024d55610c448c6e4f1400a00bae51b493 10744Author: Lasse Collin <lasse.collin@tukaani.org> 10745Date: 2024-03-15 17:43:39 +0200 10746 10747 INSTALL: Document arguments of --enable-symbol-versions. 10748 10749 INSTALL | 43 +++++++++++++++++++++++++++++++++++++++---- 10750 1 file changed, 39 insertions(+), 4 deletions(-) 10751 10752commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5 10753Author: Lasse Collin <lasse.collin@tukaani.org> 10754Date: 2024-03-15 17:15:50 +0200 10755 10756 Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. 10757 10758 This does the previous commit with CMake. 10759 10760 AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must 10761 be changed to AS_IF to ensure that things wont break some day. 10762 See 5a5bd7f871818029d5ccbe189f087f591258c294. 10763 10764 configure.ac | 18 +++++++++++++----- 10765 1 file changed, 13 insertions(+), 5 deletions(-) 10766 10767commit c273123ed0ebaebf49994057a7fe98aae7f42c40 10768Author: Lasse Collin <lasse.collin@tukaani.org> 10769Date: 2024-03-15 16:36:35 +0200 10770 10771 CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler. 10772 10773 It doesn't support the __symver__ attribute or __asm__(".symver ..."). 10774 The generic symbol versioning can still be used since it only needs 10775 linker support. 10776 10777 CMakeLists.txt | 7 ++++++- 10778 1 file changed, 6 insertions(+), 1 deletion(-) 10779 10780commit df7f487648d18a3992386a59b8a061edca862d17 10781Author: Lasse Collin <lasse.collin@tukaani.org> 10782Date: 2024-03-13 21:38:24 +0200 10783 10784 Update THANKS. 10785 10786 THANKS | 1 + 10787 1 file changed, 1 insertion(+) 10788 10789commit 3217b82b3ec023bf8338249134a076bea0ea30ec 10790Author: Lasse Collin <lasse.collin@tukaani.org> 10791Date: 2024-03-13 21:30:18 +0200 10792 10793 liblzma: Minor comment edits. 10794 10795 src/liblzma/common/string_conversion.c | 4 ++-- 10796 src/liblzma/delta/delta_decoder.c | 2 ++ 10797 2 files changed, 4 insertions(+), 2 deletions(-) 10798 10799commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31 10800Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 10801Date: 2024-03-13 13:07:13 +0100 10802 10803 liblzma: Fix building with NVHPC (NVIDIA HPC SDK). 10804 10805 NVHPC compiler has several issues that make it impossible to 10806 build liblzma: 10807 - the compiler cannot handle unions that contain pointers that 10808 are not the first members; 10809 - the compiler cannot handle the assembler code in range_decoder.h 10810 (LZMA_RANGE_DECODER_CONFIG has to be set to zero); 10811 - the compiler fails to produce valid code for delta_decode if the 10812 vectorization is enabled, which results in failed tests. 10813 10814 This introduces NVHPC-specific workarounds that address the issues. 10815 10816 src/liblzma/common/string_conversion.c | 6 ++++-- 10817 src/liblzma/delta/delta_decoder.c | 3 +++ 10818 src/liblzma/rangecoder/range_decoder.h | 1 + 10819 3 files changed, 8 insertions(+), 2 deletions(-) 10820 10821commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62 10822Author: Lasse Collin <lasse.collin@tukaani.org> 10823Date: 2024-03-13 21:17:10 +0200 10824 10825 CMake: Disable symbol versioning on non-glibc Linux. 10826 10827 This better matches what configure.ac does. For example, musl has 10828 only basic symbol versioning support: 10829 10830 https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning 10831 10832 configure.ac tries to enable symbol versioning only with glibc 10833 so now CMake does the same. 10834 10835 CMakeLists.txt | 22 ++++++++++++++++++++-- 10836 1 file changed, 20 insertions(+), 2 deletions(-) 10837 10838commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4 10839Author: Lasse Collin <lasse.collin@tukaani.org> 10840Date: 2024-03-13 20:32:46 +0200 10841 10842 CMake: Make symbol versioning configurable. 10843 10844 CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++------------------- 10845 1 file changed, 42 insertions(+), 20 deletions(-) 10846 10847commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076 10848Author: Lasse Collin <lasse.collin@tukaani.org> 10849Date: 2024-03-13 19:47:36 +0200 10850 10851 Build: Style tweaks to configure.ac. 10852 10853 The AC_MSG_ERROR line is overlong anyway as are a few other 10854 AC_MSG_ERROR lines already. 10855 10856 configure.ac | 16 +++++++++------- 10857 1 file changed, 9 insertions(+), 7 deletions(-) 10858 10859commit f56ed6fac6619b56b005878d3b5210e2f0d721c0 10860Author: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de> 10861Date: 2024-03-12 20:03:49 +0100 10862 10863 Build: Let the users override the symbol versioning variant. 10864 10865 There are cases when the users want to decide themselves whether 10866 they want to have the generic (even on GNU/Linux) or the linux 10867 (even if we do not recommend that) symbol versioning variant. 10868 The former might be needed to circumvent compiler issues (i.e. 10869 the compiler does not support all features that are required 10870 for the linux versioning), the latter might help in overriding 10871 the assumptions made in the configure script. 10872 10873 configure.ac | 91 +++++++++++++++++++++++++++++++++--------------------------- 10874 1 file changed, 50 insertions(+), 41 deletions(-) 10875 10876commit a4f2e20d8466369b1bb277c66f75c9e4ba9cc378 10877Author: Jia Tan <jiat0218@gmail.com> 10878Date: 2024-03-09 11:27:27 +0800 10879 10880 Add NEWS for 5.6.1 10881 10882 NEWS | 26 ++++++++++++++++++++++++++ 10883 1 file changed, 26 insertions(+) 10884 10885commit f01be8ad754a905d8c418601767480ec11621b02 10886Author: Jia Tan <jiat0218@gmail.com> 10887Date: 2024-03-09 10:43:20 +0800 10888 10889 Translations: Add missing --riscv option to man page translations. 10890 10891 po4a/de.po | 702 +++++++++++++++++++++++++++++----------------------------- 10892 po4a/fr.po | 549 ++++++++++++++++++++++----------------------- 10893 po4a/ko.po | 702 +++++++++++++++++++++++++++++----------------------------- 10894 po4a/pt_BR.po | 641 +++++++++++++++++++++++++++-------------------------- 10895 po4a/ro.po | 702 +++++++++++++++++++++++++++++----------------------------- 10896 po4a/uk.po | 702 +++++++++++++++++++++++++++++----------------------------- 10897 6 files changed, 2024 insertions(+), 1974 deletions(-) 10898 10899commit 6e636819e8f070330d835fce46289a3ff72a7b89 10900Author: Jia Tan <jiat0218@gmail.com> 10901Date: 2024-03-09 10:18:29 +0800 10902 10903 Tests: Update two test files. 10904 10905 The original files were generated with random local to my machine. 10906 To better reproduce these files in the future, a constant seed was used 10907 to recreate these files. 10908 10909 tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes 10910 tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes 10911 2 files changed, 0 insertions(+), 0 deletions(-) 10912 10913commit a3a29bbd5d86183fc7eae8f0182dace374e778d8 10914Author: Jia Tan <jiat0218@gmail.com> 10915Date: 2024-03-09 10:08:32 +0800 10916 10917 Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 10918 10919 The first stream in this file is valid, so this tests that xz properly 10920 stops after decompressing it. 10921 10922 tests/test_files.sh | 11 +++++++++++ 10923 1 file changed, 11 insertions(+) 10924 10925commit 0b4ccc91454dbcf0bf521b9bd51aa270581ee23c 10926Author: Jia Tan <jiat0218@gmail.com> 10927Date: 2024-03-09 10:05:32 +0800 10928 10929 Tests: Update RISC-V test files. 10930 10931 This increases code coverage and tests for possible shifting bugs. 10932 10933 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes 10934 tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes 10935 2 files changed, 0 insertions(+), 0 deletions(-) 10936 10937commit 8c9b8b2063daa78ead9f648c2ec3c91e8615dffb 10938Author: Jia Tan <jiat0218@gmail.com> 10939Date: 2024-03-09 09:52:32 +0800 10940 10941 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 10942 10943 src/liblzma/check/crc32_fast.c | 4 ++-- 10944 src/liblzma/check/crc64_fast.c | 3 +-- 10945 2 files changed, 3 insertions(+), 4 deletions(-) 10946 10947commit b93a8d7631d9517da63f03e0185455024a4609e8 10948Author: Jia Tan <jiat0218@gmail.com> 10949Date: 2024-03-09 09:49:55 +0800 10950 10951 Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds. 10952 10953 This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb. 10954 10955 CMakeLists.txt | 15 ++++++++++----- 10956 configure.ac | 9 ++------- 10957 tests/Makefile.am | 9 ++++++--- 10958 tests/test_microlzma.c | 12 ++++-------- 10959 4 files changed, 22 insertions(+), 23 deletions(-) 10960 10961commit 82ecc538193b380a21622aea02b0ba078e7ade92 10962Author: Jia Tan <jiat0218@gmail.com> 10963Date: 2024-03-09 09:20:57 +0800 10964 10965 liblzma: Fix false Valgrind error report with GCC. 10966 10967 With GCC and a certain combination of flags, Valgrind will falsely 10968 trigger an invalid write. This appears to be due to the omission of 10969 instructions to properly save, set up, and restore the frame pointer. 10970 10971 The IFUNC resolver is a leaf function since it only calls a function 10972 that is inlined. So sometimes GCC omits the frame pointer instructions 10973 in the resolver unless this optimization is explictly disabled. 10974 10975 This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598. 10976 10977 src/liblzma/check/crc32_fast.c | 9 +++------ 10978 src/liblzma/check/crc64_fast.c | 7 +++---- 10979 src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++ 10980 3 files changed, 31 insertions(+), 10 deletions(-) 10981 10982commit 3007e74ef250f0ce95d97ffbdf2282284f93764d 10983Author: Lasse Collin <lasse.collin@tukaani.org> 10984Date: 2024-03-05 23:21:26 +0200 10985 10986 liblzma: Fix a typo in a comment in the RISC-V filter. 10987 10988 src/liblzma/simple/riscv.c | 2 +- 10989 1 file changed, 1 insertion(+), 1 deletion(-) 10990 10991commit 72d2933bfae514e0dbb123488e9f1eb7cf64175f 10992Author: Jia Tan <jiat0218@gmail.com> 10993Date: 2024-03-05 00:34:46 +0800 10994 10995 liblzma: Use attribute no_profile_instrument_function with ifunc. 10996 10997 Thanks to Sam James for determining this was the attribute needed to 10998 workaround the GCC bug and for his version of the patch in Gentoo. 10999 11000 src/liblzma/check/crc32_fast.c | 5 +++++ 11001 src/liblzma/check/crc64_fast.c | 3 +++ 11002 2 files changed, 8 insertions(+) 11003 11004commit e5faaebbcf02ea880cfc56edc702d4f7298788ad 11005Author: Jia Tan <jiat0218@gmail.com> 11006Date: 2024-03-05 00:27:31 +0800 11007 11008 Build: Require attribute no_profile_instrument_function for ifunc usage. 11009 11010 Using __attribute__((__no_profile_instrument_function__)) on the ifunc 11011 resolver works around a bug in GCC -fprofile-generate: 11012 it adds profiling code even to ifunc resolvers which can make 11013 the ifunc resolver crash at program startup. This attribute 11014 was not introduced until GCC 7 and Clang 13, so ifunc won't 11015 be used with prior versions of these compilers. 11016 11017 This bug was brought to our attention by: 11018 11019 https://bugs.gentoo.org/925415 11020 11021 And was reported to upstream GCC by: 11022 11023 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411 11024 11025 CMakeLists.txt | 7 +++++++ 11026 configure.ac | 7 +++++++ 11027 2 files changed, 14 insertions(+) 11028 11029commit 7eeadd279a24c26ca7ff1292b7df802b89409eb7 11030Author: Lasse Collin <lasse.collin@tukaani.org> 11031Date: 2024-03-04 19:23:18 +0200 11032 11033 liblzma: Fix a comment in the RISC-V filter. 11034 11035 src/liblzma/simple/riscv.c | 4 ++-- 11036 1 file changed, 2 insertions(+), 2 deletions(-) 11037 11038commit 5f3d0595296cc3035eae9e7bb6c3ffb1e1267333 11039Author: Lasse Collin <lasse.collin@tukaani.org> 11040Date: 2024-02-29 16:35:52 +0200 11041 11042 CMake: Warn if translated man pages are missing. 11043 11044 CMakeLists.txt | 9 +++++++++ 11045 1 file changed, 9 insertions(+) 11046 11047commit 4cd1042ee752d61370c685d0d8b20c1e935672f7 11048Author: Lasse Collin <lasse.collin@tukaani.org> 11049Date: 2024-02-29 16:35:52 +0200 11050 11051 CMake: Warn if gettext tools and pre-created .gmo files are missing. 11052 11053 It's only done with CMake >= 3.20 and if library support 11054 for translation was already found. 11055 11056 Sort of fixes: https://github.com/tukaani-project/xz/issues/82 11057 11058 CMakeLists.txt | 25 +++++++++++++++++++++++++ 11059 1 file changed, 25 insertions(+) 11060 11061commit a94b42362c8e807f92236d6d63373f04991e3a50 11062Author: Lasse Collin <lasse.collin@tukaani.org> 11063Date: 2024-02-28 18:26:25 +0200 11064 11065 xz: Add comments. 11066 11067 src/xz/coder.c | 10 ++++++++++ 11068 1 file changed, 10 insertions(+) 11069 11070commit bbf112e32307a75a54a9e170bc392811443d5c87 11071Author: Jia Tan <jiat0218@gmail.com> 11072Date: 2024-02-27 23:42:41 +0800 11073 11074 xz: Change logging level for thread reduction to highest verbosity only. 11075 11076 Now that multi threaded encoding is the default, users do not need to 11077 see a warning message everytime the number of threads is reduced. On 11078 some machines, this could happen very often. It is not unreasonable for 11079 users to need to set double verbose mode to see this kind of 11080 information. 11081 11082 To see these warning messages -vv or --verbose --verbose must be passed 11083 to set xz into the highest possible verbosity mode. 11084 11085 These warnings had caused automated testing frameworks to fail when they 11086 expected no output to stderr. 11087 11088 Thanks to Sebastian Andrzej Siewior for reporting this and for the 11089 initial version of the patch. 11090 11091 src/xz/coder.c | 4 ++-- 11092 1 file changed, 2 insertions(+), 2 deletions(-) 11093 11094commit 649f6447441510d593a88475ad6df4bcdf74ce48 11095Author: Lasse Collin <lasse.collin@tukaani.org> 11096Date: 2024-02-26 23:06:13 +0200 11097 11098 Fix sorting in THANKS. 11099 11100 THANKS | 4 ++-- 11101 1 file changed, 2 insertions(+), 2 deletions(-) 11102 11103commit 1255b7d849bf53f196a842ef2a508ed0ff577eaa 11104Author: Jia Tan <jiat0218@gmail.com> 11105Date: 2024-02-26 23:39:29 +0800 11106 11107 Update THANKS. 11108 11109 THANKS | 1 + 11110 1 file changed, 1 insertion(+) 11111 11112commit eee579fff50099ba163c12305e81a4bd42b7dd53 11113Author: Chien Wong <m@xv97.com> 11114Date: 2024-02-25 21:38:13 +0800 11115 11116 xz: Add missing RISC-V on the filter list in the man page 11117 11118 Signed-off-by: Chien Wong <m@xv97.com> 11119 11120 src/xz/xz.1 | 4 +++- 11121 1 file changed, 3 insertions(+), 1 deletion(-) 11122 11123commit 328c52da8a2bbb81307644efdb58db2c422d9ba7 11124Author: Jia Tan <jiat0218@gmail.com> 11125Date: 2024-02-26 23:02:06 +0800 11126 11127 Build: Fix Linux Landlock feature test in Autotools and CMake builds. 11128 11129 The previous Linux Landlock feature test assumed that having the 11130 linux/landlock.h header file was enough. The new feature tests also 11131 requires that prctl() and the required Landlock system calls are 11132 supported. 11133 11134 CMakeLists.txt | 25 ++++++++++++++++++++++--- 11135 configure.ac | 27 ++++++++++++++++++++++++++- 11136 src/xz/sandbox.c | 2 +- 11137 src/xz/sandbox.h | 2 +- 11138 src/xzdec/xzdec.c | 8 ++++---- 11139 5 files changed, 54 insertions(+), 10 deletions(-) 11140 11141commit eb8ad59e9bab32a8d655796afd39597ea6dcc64d 11142Author: Jia Tan <jiat0218@gmail.com> 11143Date: 2024-02-26 20:06:10 +0800 11144 11145 Tests: Add test_microlzma to .gitignore and CMakeLists.txt. 11146 11147 .gitignore | 1 + 11148 CMakeLists.txt | 1 + 11149 2 files changed, 2 insertions(+) 11150 11151commit 9eed1b9a3ae140e93a82febc05a0181e9a4f5093 11152Author: Jia Tan <jiat0218@gmail.com> 11153Date: 2024-02-26 19:56:25 +0800 11154 11155 Tests: Correct license header in test_microlzma.c. 11156 11157 tests/test_microlzma.c | 5 ++--- 11158 1 file changed, 2 insertions(+), 3 deletions(-) 11159 11160commit 8bf9f72ee1c05b9e205a72807e8a9e304785673d 11161Author: Jia Tan <jiat0218@gmail.com> 11162Date: 2024-02-25 21:41:55 +0800 11163 11164 Fix typos in NEWS and CMakeLists. 11165 11166 CMakeLists.txt | 2 +- 11167 NEWS | 2 +- 11168 2 files changed, 2 insertions(+), 2 deletions(-) 11169 11170commit 5d8d915ebe2e345820a0f54d1baf8d7d4824c0c7 11171Author: Jia Tan <jiat0218@gmail.com> 11172Date: 2024-02-24 16:30:06 +0800 11173 11174 Bump version and soname for 5.7.0alpha. 11175 11176 Like 5.5.0alpha, 5.7.0alpha won't be released, it's just to mark that 11177 the branch is not stable. 11178 11179 Once again there is no API/ABI stability for new features in devel 11180 versions. The major soname won't be bumped even if API/ABI of new 11181 features breaks between devel releases. 11182 11183 src/liblzma/Makefile.am | 2 +- 11184 src/liblzma/api/lzma/version.h | 6 +++--- 11185 src/liblzma/liblzma_generic.map | 2 +- 11186 src/liblzma/liblzma_linux.map | 2 +- 11187 4 files changed, 6 insertions(+), 6 deletions(-) 11188 11189commit a18fb1edef0d0aac12a09eed05e9c448c777af7b 11190Author: Jia Tan <jiat0218@gmail.com> 11191Date: 2024-02-24 15:50:36 +0800 11192 11193 Add NEWS for 5.6.0. 11194 11195 NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11196 1 file changed, 143 insertions(+) 11197 11198commit 24355c5280bc95e3d594432d60bb8432aa6af173 11199Author: Jia Tan <jiat0218@gmail.com> 11200Date: 2024-02-22 22:27:01 +0800 11201 11202 Translations: Remove obsolete and fuzzy matches from some translations. 11203 11204 The French and Brazilian Portuguese man page translations have not been 11205 updated since the switch from public domain to 0BSD. The old GPLv2 11206 strings have now been removed from these files. 11207 11208 po4a/fr.po | 4702 +++++++++++++++++++++++++++++++++++++---------------- 11209 po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++----------------- 11210 2 files changed, 6832 insertions(+), 2857 deletions(-) 11211 11212commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1 11213Author: Jia Tan <jiat0218@gmail.com> 11214Date: 2024-02-21 00:31:54 +0800 11215 11216 Translations: Patch man pages to avoid fuzzy matches. 11217 11218 This will be fixed in the next round of translations, but this avoids 11219 having a fuzzy match or not fixing the English version. 11220 11221 po4a/de.po | 2 +- 11222 po4a/ko.po | 2 +- 11223 po4a/ro.po | 2 +- 11224 po4a/uk.po | 2 +- 11225 4 files changed, 4 insertions(+), 4 deletions(-) 11226 11227commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64 11228Author: Jia Tan <jiat0218@gmail.com> 11229Date: 2024-02-21 00:30:43 +0800 11230 11231 xzmore: Fix typo in xzmore.1. 11232 11233 Thanks to Yuri Chornoivan. 11234 11235 src/scripts/xzmore.1 | 2 +- 11236 1 file changed, 1 insertion(+), 1 deletion(-) 11237 11238commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba 11239Author: Jia Tan <jiat0218@gmail.com> 11240Date: 2024-02-24 12:12:16 +0800 11241 11242 Translations: Update the Vietnamese translation. 11243 11244 po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++------------------------- 11245 1 file changed, 309 insertions(+), 196 deletions(-) 11246 11247commit a65fd7ce9d6228e87faf61dc56a35984d0088248 11248Author: Jia Tan <jiat0218@gmail.com> 11249Date: 2024-02-24 12:06:40 +0800 11250 11251 Translations: Update the Esperanto translation. 11252 11253 po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++------------------------- 11254 1 file changed, 306 insertions(+), 196 deletions(-) 11255 11256commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 11257Author: Jia Tan <jiat0218@gmail.com> 11258Date: 2024-02-23 23:09:59 +0800 11259 11260 Tests: Add a few test files. 11261 11262 tests/files/README | 19 +++++++++++++++++++ 11263 tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes 11264 tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes 11265 tests/files/good-2cat.xz | Bin 0 -> 136 bytes 11266 tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes 11267 tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes 11268 6 files changed, 19 insertions(+) 11269 11270commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73 11271Author: Jia Tan <jiat0218@gmail.com> 11272Date: 2024-02-23 20:58:36 +0800 11273 11274 Tests: Add MicroLZMA test. 11275 11276 tests/Makefile.am | 4 +- 11277 tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++ 11278 2 files changed, 551 insertions(+), 1 deletion(-) 11279 11280commit adaacafde6661496ca2814b1e94a3ba5186428cb 11281Author: Jia Tan <jiat0218@gmail.com> 11282Date: 2024-02-23 20:57:59 +0800 11283 11284 Build: Define HAVE_MICROLZMA when it is configured. 11285 11286 CMakeLists.txt | 4 ++++ 11287 configure.ac | 9 +++++++-- 11288 2 files changed, 11 insertions(+), 2 deletions(-) 11289 11290commit eea78216d27182ca917bf00e02feaab058a4d21e 11291Author: Jia Tan <jiat0218@gmail.com> 11292Date: 2024-02-23 20:27:15 +0800 11293 11294 xz: Fix Capsicum sandbox compile error. 11295 11296 user_abort_pipe[] was still being used instead of the parameters. 11297 11298 src/xz/sandbox.c | 4 ++-- 11299 1 file changed, 2 insertions(+), 2 deletions(-) 11300 11301commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d 11302Author: Jia Tan <jiat0218@gmail.com> 11303Date: 2024-02-23 16:12:32 +0800 11304 11305 Build: Fix ARM64 CRC32 instruction feature test. 11306 11307 Old versions of Clang reported the unsupported function attribute and 11308 __crc32d() function as warnings instead of errors, so the feature test 11309 passed when it shouldn't have, causing a compile error at build time. 11310 -Werror was added to this feature test to fix this. The change is not 11311 needed for CMake because check_c_source_compiles() also performs 11312 linking and the error is caught then. 11313 11314 Thanks to Sebastian Andrzej Siewior for reporting this. 11315 11316 configure.ac | 10 ++++++++++ 11317 1 file changed, 10 insertions(+) 11318 11319commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e 11320Author: Lasse Collin <lasse.collin@tukaani.org> 11321Date: 2024-02-22 19:16:35 +0200 11322 11323 CMake: Add LOCALEDIR to the windres workaround. 11324 11325 LOCALEDIR may contain spaces like in "C:\Program Files". 11326 11327 CMakeLists.txt | 16 +++++++++++----- 11328 1 file changed, 11 insertions(+), 5 deletions(-) 11329 11330commit de4337fd89ca7db5feb97b5c40143404f6e22986 11331Author: Lasse Collin <lasse.collin@tukaani.org> 11332Date: 2024-02-22 15:18:25 +0200 11333 11334 xz: Landlock: Fix error message if input file is a directory. 11335 11336 If xz is given a directory, it should look like this: 11337 11338 $ xz /usr/bin 11339 xz: /usr/bin: Is a directory, skipping 11340 11341 The Landlock rules didn't allow opening directories for reading: 11342 11343 $ xz /usr/bin 11344 xz: /usr/bin: Permission denied 11345 11346 The simplest fix was to allow opening directories for reading. 11347 While it's a bit silly to allow it solely for the error message, 11348 it shouldn't make the sandbox significantly weaker. 11349 11350 The single-file use case (like when called from GNU tar) is 11351 still as strict as possible: all Landlock restrictions are 11352 enabled before (de)compression starts. 11353 11354 src/xz/sandbox.c | 15 ++++++++++++++- 11355 1 file changed, 14 insertions(+), 1 deletion(-) 11356 11357commit 120da10ae139ea52ca4275452adf8eda02d07cc8 11358Author: Lasse Collin <lasse.collin@tukaani.org> 11359Date: 2024-02-22 14:41:29 +0200 11360 11361 liblzma: Disable branchless C version in range decoder. 11362 11363 Thanks to Sebastian Andrzej Siewior and Sam James for 11364 benchmarking on various systems. 11365 11366 src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++--- 11367 1 file changed, 10 insertions(+), 3 deletions(-) 11368 11369commit 00440f52be9ac2c7438c7b0cb1082f12399632c6 11370Author: Lasse Collin <lasse.collin@tukaani.org> 11371Date: 2024-02-21 17:41:32 +0200 11372 11373 INSTALL: Clarify that --disable-assembler affects only 32-bit x86. 11374 11375 INSTALL | 18 +++++++++--------- 11376 1 file changed, 9 insertions(+), 9 deletions(-) 11377 11378commit 11405be84ea294497e12d03d7219f607063f4a00 11379Author: Lasse Collin <lasse.collin@tukaani.org> 11380Date: 2024-02-19 18:41:37 +0200 11381 11382 Windows: build.bash: Include COPYING.0BSD in the package. 11383 11384 windows/build.bash | 2 +- 11385 1 file changed, 1 insertion(+), 1 deletion(-) 11386 11387commit c27cf64e3e27f4968431d65be7098a12a3a80d30 11388Author: Lasse Collin <lasse.collin@tukaani.org> 11389Date: 2024-02-18 17:59:46 +0200 11390 11391 Windows: build.bash: include liblzma-crt-mixing.txt in the package. 11392 11393 windows/build.bash | 6 ++++-- 11394 1 file changed, 4 insertions(+), 2 deletions(-) 11395 11396commit 8d38941baed05de4ff7cc775de14833108f62184 11397Author: Lasse Collin <lasse.collin@tukaani.org> 11398Date: 2024-02-18 17:17:43 +0200 11399 11400 Windows: Major update to Windows build instructions. 11401 11402 INSTALL | 68 ++++----- 11403 windows/INSTALL-MSVC.txt | 23 +-- 11404 windows/INSTALL-MinGW-w64_with_Autotools.txt | 49 +++++++ 11405 windows/INSTALL-MinGW-w64_with_CMake.txt | 203 +++++++++++++++++++++++++++ 11406 windows/INSTALL-MinGW.txt | 138 ------------------ 11407 windows/README-Windows.txt | 2 + 11408 windows/build-with-cmake.bat | 35 +++++ 11409 windows/liblzma-crt-mixing.txt | 70 +++++++++ 11410 8 files changed, 404 insertions(+), 184 deletions(-) 11411 11412commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1 11413Author: Lasse Collin <lasse.collin@tukaani.org> 11414Date: 2024-02-18 15:15:04 +0200 11415 11416 Windows: Update windows/README-Windows.txt. 11417 11418 It's for binary packages built with windows/build.bash. 11419 11420 windows/README-Windows.txt | 104 ++++++++++++++++++--------------------------- 11421 1 file changed, 41 insertions(+), 63 deletions(-) 11422 11423commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a 11424Author: Lasse Collin <lasse.collin@tukaani.org> 11425Date: 2024-02-18 15:15:04 +0200 11426 11427 Windows: Update windows/build.bash. 11428 11429 Support for the old MinGW was dropped. Only MinGW-w64 with GCC 11430 is supported now. 11431 11432 The script now supports also cross-compilation from GNU/Linux 11433 (tests are not run). MSYS2 and also the old MSYS 1.0.11 work 11434 for building on Windows. The i686 and x86_64 toolchains must 11435 be in PATH to build both 32-bit and 64-bit versions. 11436 11437 Parallel builds are done if "nproc" from GNU coreutils is available. 11438 11439 MinGW-w64 runtime copyright information file was renamed from 11440 COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which 11441 is the filename used by MinGW-w64 itself. Its existence 11442 is now mandatory, it's checked at the beginning of the script. 11443 11444 The file TODO is no longer copied to the package. 11445 11446 windows/build.bash | 191 +++++++++++++++++++++++++++++++---------------------- 11447 1 file changed, 112 insertions(+), 79 deletions(-) 11448 11449commit 60462e42609a1d961868a1d1ebecc713c6d27e2e 11450Author: Jia Tan <jiat0218@gmail.com> 11451Date: 2024-02-20 23:32:22 +0800 11452 11453 Translations: Update the Romanian man page translations. 11454 11455 po4a/ro.po | 1715 +++++++++++++++++++++++++++++++----------------------------- 11456 1 file changed, 875 insertions(+), 840 deletions(-) 11457 11458commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05 11459Author: Jia Tan <jiat0218@gmail.com> 11460Date: 2024-02-20 23:30:25 +0800 11461 11462 Translations: Update the Korean man page translations. 11463 11464 po4a/ko.po | 6 +++--- 11465 1 file changed, 3 insertions(+), 3 deletions(-) 11466 11467commit 797a34b72ac6baff237d7a546fa941d8f78f2f62 11468Author: Jia Tan <jiat0218@gmail.com> 11469Date: 2024-02-20 21:03:53 +0800 11470 11471 Translations: Update the Spanish translation. 11472 11473 po/es.po | 6 +++--- 11474 1 file changed, 3 insertions(+), 3 deletions(-) 11475 11476commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49 11477Author: Jia Tan <jiat0218@gmail.com> 11478Date: 2024-02-20 20:18:07 +0800 11479 11480 Translations: Update the Romanian translation. 11481 11482 po/ro.po | 470 ++++++++++++++++++++++++++++++--------------------------------- 11483 1 file changed, 227 insertions(+), 243 deletions(-) 11484 11485commit e2d31154ecc750935436e8b62c6b073b2cfa84e3 11486Author: Jia Tan <jiat0218@gmail.com> 11487Date: 2024-02-20 20:15:50 +0800 11488 11489 Translations: Update the Croatian translation. 11490 11491 po/hr.po | 648 ++++++++++++++++++++++++++++++++++----------------------------- 11492 1 file changed, 355 insertions(+), 293 deletions(-) 11493 11494commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2 11495Author: Jia Tan <jiat0218@gmail.com> 11496Date: 2024-02-20 20:05:44 +0800 11497 11498 Translations: Update the German man page translations. 11499 11500 po4a/de.po | 1696 +++++++++++++++++++++++++++++++----------------------------- 11501 1 file changed, 873 insertions(+), 823 deletions(-) 11502 11503commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f 11504Author: Jia Tan <jiat0218@gmail.com> 11505Date: 2024-02-20 19:58:25 +0800 11506 11507 Translations: Update the German translation. 11508 11509 po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 11510 1 file changed, 225 insertions(+), 202 deletions(-) 11511 11512commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a 11513Author: Jia Tan <jiat0218@gmail.com> 11514Date: 2024-02-20 19:56:52 +0800 11515 11516 Translations: Update the Hungarian translation. 11517 11518 po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++------------------------- 11519 1 file changed, 338 insertions(+), 218 deletions(-) 11520 11521commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04 11522Author: Lasse Collin <lasse.collin@tukaani.org> 11523Date: 2024-02-19 16:48:05 +0200 11524 11525 CMake: Fix building of lzmainfo when translations are enabled. 11526 11527 CMakeLists.txt | 2 ++ 11528 1 file changed, 2 insertions(+) 11529 11530commit b0d1422b6037bfea6f6723683bd82a8e6d77026c 11531Author: Lasse Collin <lasse.collin@tukaani.org> 11532Date: 2024-02-19 13:38:42 +0200 11533 11534 CMake: Don't assume that -fvisibility=hidden is supported outside Windows. 11535 11536 The original code was good enough for supporting GNU/Linux 11537 and a few others but it wasn't very portable. 11538 11539 CMake doesn't support Solaris Studio's -xldscope=hidden. 11540 If it ever does, things should still work with this commit 11541 as Solaris Studio supports not only its own __global but also 11542 the GNU C __attribute__((visibility("default"))). Support for the 11543 attribute was added in 2007 to Sun Studio 12 compiler version 5.9. 11544 11545 CMakeLists.txt | 26 ++++++++++++++++++++++---- 11546 1 file changed, 22 insertions(+), 4 deletions(-) 11547 11548commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c 11549Author: Lasse Collin <lasse.collin@tukaani.org> 11550Date: 2024-02-19 12:20:59 +0200 11551 11552 CMake: Revise the component splitting. 11553 11554 CMakeLists.txt | 57 +++++++++++++++++++++++++++++++-------------------------- 11555 1 file changed, 31 insertions(+), 26 deletions(-) 11556 11557commit 426bdc709c169d39b31dec410016779de117ef69 11558Author: Lasse Collin <lasse.collin@tukaani.org> 11559Date: 2024-02-17 21:45:07 +0200 11560 11561 CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release. 11562 11563 CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------ 11564 1 file changed, 63 insertions(+), 16 deletions(-) 11565 11566commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10 11567Author: Lasse Collin <lasse.collin@tukaani.org> 11568Date: 2024-02-17 21:27:48 +0200 11569 11570 CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release. 11571 11572 -O3 doesn't seem useful for speed but it makes the code bigger. 11573 CMake makes is difficult for users to simply override the 11574 optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because 11575 they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override 11576 CMAKE_C_FLAGS_RELEASE directly but then they have to remember to 11577 add also -DNDEBUG to disable assertions. 11578 11579 This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if 11580 CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if 11581 a custom value is passed on the command line (or reconfiguring an 11582 already-configured build), the cache variable won't be modified. 11583 11584 CMakeLists.txt | 19 +++++++++++++++++++ 11585 1 file changed, 19 insertions(+) 11586 11587commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660 11588Author: Lasse Collin <lasse.collin@tukaani.org> 11589Date: 2024-02-18 14:59:52 +0200 11590 11591 CMake: Handle symbol versioning on MicroBlaze specially. 11592 11593 This is to match configure.ac. 11594 11595 CMakeLists.txt | 23 +++++++++++++++++++---- 11596 1 file changed, 19 insertions(+), 4 deletions(-) 11597 11598commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce 11599Author: Lasse Collin <lasse.collin@tukaani.org> 11600Date: 2024-02-17 22:18:12 +0200 11601 11602 CMake: Keep build working even if lib/*.[ch] are removed. 11603 11604 CMakeLists.txt | 7 ++++++- 11605 1 file changed, 6 insertions(+), 1 deletion(-) 11606 11607commit d753e2ce4715552884afadc4ed6fbf8ccca6efac 11608Author: Lasse Collin <lasse.collin@tukaani.org> 11609Date: 2024-02-17 18:10:40 +0200 11610 11611 CMake: Install documentation. 11612 11613 CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 11614 1 file changed, 32 insertions(+) 11615 11616commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac 11617Author: Lasse Collin <lasse.collin@tukaani.org> 11618Date: 2024-02-17 15:35:35 +0200 11619 11620 CMake: Bump maximum policy version to 3.28. 11621 11622 CMP0154 doesn't affect us since we don't use FILE_SET. 11623 11624 CMakeLists.txt | 2 +- 11625 1 file changed, 1 insertion(+), 1 deletion(-) 11626 11627commit c2264ffbe3892d28930b89b0123efc369cabc143 11628Author: Lasse Collin <lasse.collin@tukaani.org> 11629Date: 2024-02-17 15:35:35 +0200 11630 11631 CMake: Build lzmainfo. 11632 11633 CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11634 1 file changed, 54 insertions(+) 11635 11636commit 998d0b29536094a89cf385a3b894e157db1ccefe 11637Author: Lasse Collin <lasse.collin@tukaani.org> 11638Date: 2024-02-17 15:35:35 +0200 11639 11640 CMake: Build lzmadec. 11641 11642 CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++-------------------------- 11643 1 file changed, 42 insertions(+), 34 deletions(-) 11644 11645commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 11646Author: Lasse Collin <lasse.collin@tukaani.org> 11647Date: 2024-02-17 15:35:35 +0200 11648 11649 CMake: Add test_scripts.sh to the tests. 11650 11651 In contrast to Automake, skipping of this test when decoders 11652 are disabled is handled at CMake side instead of test_scripts.sh 11653 because CMake-build doesn't create config.h. 11654 11655 CMakeLists.txt | 14 ++++++++++++++ 11656 tests/test_scripts.sh | 13 ++++++++----- 11657 2 files changed, 22 insertions(+), 5 deletions(-) 11658 11659commit 4808f238a731befcd46c2117c62a1caaf4403989 11660Author: Lasse Collin <lasse.collin@tukaani.org> 11661Date: 2024-02-17 15:35:35 +0200 11662 11663 CMake: Install scripts. 11664 11665 Compared to the Autotools-based build, this has simpler handling 11666 for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts 11667 (configure has --enable-path-for-scripts=PREFIX). The simpler 11668 metho should be enough for non-ancient systems and Solaris. 11669 11670 CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 11671 1 file changed, 82 insertions(+), 1 deletion(-) 11672 11673commit 3462362ebd94d835c664e94ad8f414cfe7590ca7 11674Author: Lasse Collin <lasse.collin@tukaani.org> 11675Date: 2024-02-17 15:35:35 +0200 11676 11677 Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@. 11678 11679 PACKAGE_VERSION was already used in liblzma.pc.in. 11680 This way only one version @foo@ is used. 11681 11682 src/scripts/xzdiff.in | 2 +- 11683 src/scripts/xzgrep.in | 2 +- 11684 src/scripts/xzless.in | 2 +- 11685 src/scripts/xzmore.in | 2 +- 11686 4 files changed, 4 insertions(+), 4 deletions(-) 11687 11688commit 67610c245ba6c68cf65991693bab9312b7dc987b 11689Author: Lasse Collin <lasse.collin@tukaani.org> 11690Date: 2024-02-17 15:35:35 +0200 11691 11692 CMake: Simplify symlink creation and install translated man pages. 11693 11694 It helps that cmake_install.cmake doesn't parallelize installation 11695 so symlinks can be created so that the target is always known to 11696 exist (a requirement on Windows in some cases). 11697 11698 This bumps the minimum CMake version from 3.13 to 3.14 to use 11699 file(CREATE_LINK ...). It could be made to work on 3.13 by 11700 calling "cmake -E create_symlink" but it's uglier code and 11701 slower in "make install". 3.14 should be a reasonable version 11702 to require nowadays, especially since the Autotools build 11703 is still the primary build system for most OSes. 11704 11705 CMakeLists.txt | 195 +++++++++++++++++++++++++++++---------------------------- 11706 1 file changed, 98 insertions(+), 97 deletions(-) 11707 11708commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf 11709Author: Lasse Collin <lasse.collin@tukaani.org> 11710Date: 2024-02-17 15:35:35 +0200 11711 11712 CMake: Add support for building and installing xz with translations. 11713 11714 If gettext tools are available, the .po files listed in po/LINGUAS 11715 are converted using msgfmt. This allows building with translations 11716 directly from xz.git without Autotools. 11717 11718 If gettext tools aren't available, the Autotools-created .gmo files 11719 in the "po" directory will be used. This allows CMake-based build 11720 to use translations from Autotools-generated tarball. 11721 11722 If translation support is found (Intl_FOUND) but both the 11723 gettext tools and the pre-generated .gmo files are missing, 11724 then "make" will fail. 11725 11726 CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 11727 1 file changed, 66 insertions(+), 2 deletions(-) 11728 11729commit 746c471643009947f94a3494a1148f74c7381b56 11730Author: Lasse Collin <lasse.collin@tukaani.org> 11731Date: 2024-02-19 11:58:33 +0200 11732 11733 liblzma: Remove commented-out code. 11734 11735 src/liblzma/rangecoder/range_decoder.h | 3 --- 11736 1 file changed, 3 deletions(-) 11737 11738commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7 11739Author: Lasse Collin <lasse.collin@tukaani.org> 11740Date: 2024-02-17 23:07:35 +0200 11741 11742 xz: Delete old commented-out code. 11743 11744 src/xz/message.c | 19 ------------------- 11745 1 file changed, 19 deletions(-) 11746 11747commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa 11748Author: Lasse Collin <lasse.collin@tukaani.org> 11749Date: 2024-02-17 23:07:35 +0200 11750 11751 xz: Use stricter pledge(2) and Landlock sandbox. 11752 11753 This makes these sandboxing methods stricter when no files are 11754 created or deleted. That is, it's a middle ground between the 11755 initial sandbox and the strictest single-file-to-stdout sandbox: 11756 this allows opening files for reading but output has to go to stdout. 11757 11758 src/xz/main.c | 46 +++++++++++++++++++++++++++++++++------------- 11759 src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++ 11760 src/xz/sandbox.h | 4 ++++ 11761 3 files changed, 69 insertions(+), 13 deletions(-) 11762 11763commit 02e3505991233901575b7eabc06b2c6c62a96899 11764Author: Lasse Collin <lasse.collin@tukaani.org> 11765Date: 2024-02-17 23:07:35 +0200 11766 11767 xz: Support Landlock ABI version 4. 11768 11769 Linux 6.7 added support for ABI version 4 which restricts 11770 TCP connections which xz won't need and thus those can be 11771 forbidden now. Since the ABI version is handled at runtime, 11772 supporting version 4 won't cause any compatibility issues. 11773 11774 Note that new enough kernel headers are required to get 11775 version 4 support enabled at build time. 11776 11777 src/xz/sandbox.c | 25 ++++++++++++++++++++----- 11778 1 file changed, 20 insertions(+), 5 deletions(-) 11779 11780commit 374868d81d473ab56556a1cfd6b1b36a1fab348b 11781Author: Lasse Collin <lasse.collin@tukaani.org> 11782Date: 2024-02-17 23:07:35 +0200 11783 11784 xz: Move sandboxing code to sandbox.c and improve Landlock sandbox. 11785 11786 Landlock is now always used just like pledge(2) is: first in more 11787 permissive mode and later (under certain common conditions) in 11788 a strict mode that doesn't allow opening more files. 11789 11790 I put pledge(2) first in sandbox.c because it's the simplest API 11791 to use and still somewhat fine-grained for basic applications. 11792 So it's the simplest thing to understand for anyone reading sandbox.c. 11793 11794 CMakeLists.txt | 2 + 11795 src/xz/Makefile.am | 2 + 11796 src/xz/file_io.c | 170 +----------------------------- 11797 src/xz/file_io.h | 6 -- 11798 src/xz/main.c | 50 +++------ 11799 src/xz/private.h | 6 +- 11800 src/xz/sandbox.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 11801 src/xz/sandbox.h | 39 +++++++ 11802 8 files changed, 357 insertions(+), 213 deletions(-) 11803 11804commit 7312dfbb02197c7f990c7a3cefd027a9387d1473 11805Author: Lasse Collin <lasse.collin@tukaani.org> 11806Date: 2024-02-17 23:07:35 +0200 11807 11808 xz: Tweak comments. 11809 11810 src/xz/main.c | 4 +++- 11811 1 file changed, 3 insertions(+), 1 deletion(-) 11812 11813commit c701a5909ad9882469fbab4fab5d2d5556d3ba78 11814Author: Lasse Collin <lasse.collin@tukaani.org> 11815Date: 2024-02-17 23:07:35 +0200 11816 11817 xz: Fix message_init() description. 11818 11819 Also explicitly initialize progress_automatic to make it clear 11820 that it can be read before message_init() sets it. Static variable 11821 was initialized to false by default already so this is only for 11822 clarity. 11823 11824 src/xz/main.c | 3 ++- 11825 src/xz/message.c | 2 +- 11826 src/xz/message.h | 5 ++++- 11827 3 files changed, 7 insertions(+), 3 deletions(-) 11828 11829commit 9466306719f3b76e92fac4e55fbfd89ec92295fa 11830Author: Lasse Collin <lasse.collin@tukaani.org> 11831Date: 2024-02-17 19:35:47 +0200 11832 11833 Build: Makefile.am: Sort EXTRA_DIST. 11834 11835 Dirs first, then files in case-sensitive ASCII order. 11836 11837 Makefile.am | 14 +++++++------- 11838 1 file changed, 7 insertions(+), 7 deletions(-) 11839 11840commit f3440e78c9517db75bfa52e1a378fad60b073bbe 11841Author: Lasse Collin <lasse.collin@tukaani.org> 11842Date: 2024-02-17 19:25:05 +0200 11843 11844 Build: Don't install TODO. 11845 11846 Makefile.am | 2 +- 11847 1 file changed, 1 insertion(+), 1 deletion(-) 11848 11849commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381 11850Author: Jia Tan <jiat0218@gmail.com> 11851Date: 2024-02-18 01:09:11 +0800 11852 11853 Translations: Update the Korean man page translations. 11854 11855 po4a/ko.po | 1707 +++++++++++++++++++++++++++++++----------------------------- 11856 1 file changed, 871 insertions(+), 836 deletions(-) 11857 11858commit 9b315db2d5e74700f3dc0755eb86c27947c0b393 11859Author: Jia Tan <jiat0218@gmail.com> 11860Date: 2024-02-18 01:08:32 +0800 11861 11862 Translations: Update the Korean translation. 11863 11864 po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------ 11865 1 file changed, 223 insertions(+), 200 deletions(-) 11866 11867commit 56246607dff177b0410d140fcca4a42c865723dc 11868Author: Lasse Collin <lasse.collin@tukaani.org> 11869Date: 2024-02-17 16:23:14 +0200 11870 11871 Build: Install translated lzmainfo man pages. 11872 11873 All other translated man pages were being installed but 11874 lzmainfo had been forgotten. 11875 11876 src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++ 11877 1 file changed, 26 insertions(+) 11878 11879commit f1d6b88aefcced538403c5c2606ba57065b16e70 11880Author: Lasse Collin <lasse.collin@tukaani.org> 11881Date: 2024-02-17 16:01:32 +0200 11882 11883 liblzma: Avoid implementation-defined behavior in the RISC-V filter. 11884 11885 GCC docs promise that it works and a few other compilers do 11886 too. Clang/LLVM is documented source code only but unsurprisingly 11887 it behaves the same as others on x86-64 at least. But the 11888 certainly-portable way is good enough here so use that. 11889 11890 src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++-------- 11891 1 file changed, 22 insertions(+), 8 deletions(-) 11892 11893commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a 11894Author: Lasse Collin <lasse.collin@tukaani.org> 11895Date: 2024-02-17 15:48:28 +0200 11896 11897 liblzma: Wrap a line exceeding 80 chars. 11898 11899 src/liblzma/rangecoder/range_decoder.h | 3 ++- 11900 1 file changed, 2 insertions(+), 1 deletion(-) 11901 11902commit e9053c907250c70d98b319d95fa54cb94fc76869 11903Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 11904Date: 2024-02-16 21:50:15 +0100 11905 11906 liblzma/rangecoder: Exclude x32 from the x86-64 optimisation. 11907 11908 The x32 port has a x86-64 ABI in term of all registers but uses only 11909 32bit pointer like x86-32. The assembly optimisation fails to compile on 11910 x32. Given the state of x32 I suggest to exclude it from the 11911 optimisation rather than trying to fix it. 11912 11913 Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 11914 11915 src/liblzma/rangecoder/range_decoder.h | 2 +- 11916 1 file changed, 1 insertion(+), 1 deletion(-) 11917 11918commit 3d198fb13b87f8803442e5799d465f7434a70555 11919Author: Jia Tan <jiat0218@gmail.com> 11920Date: 2024-02-17 21:05:07 +0800 11921 11922 Translations: Update the Spanish translation. 11923 11924 po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------ 11925 1 file changed, 226 insertions(+), 201 deletions(-) 11926 11927commit cf278bfe60a25b54b3786f06503bc61272970820 11928Author: Jia Tan <jiat0218@gmail.com> 11929Date: 2024-02-17 20:43:29 +0800 11930 11931 Translations: Update the Swedish translation. 11932 11933 po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------ 11934 1 file changed, 230 insertions(+), 204 deletions(-) 11935 11936commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2 11937Author: Jia Tan <jiat0218@gmail.com> 11938Date: 2024-02-17 20:41:38 +0800 11939 11940 Translations: Update the Polish translation. 11941 11942 po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------ 11943 1 file changed, 224 insertions(+), 200 deletions(-) 11944 11945commit d74ed48b30c631b6a4c7e7858b06828293bf8520 11946Author: Jia Tan <jiat0218@gmail.com> 11947Date: 2024-02-17 20:41:02 +0800 11948 11949 Translations: Update the Ukrainian translation. 11950 11951 po/uk.po | 2 +- 11952 1 file changed, 1 insertion(+), 1 deletion(-) 11953 11954commit 711e22d5c5f3bac39ac904efb3ede874a66e2045 11955Author: Lasse Collin <lasse.collin@tukaani.org> 11956Date: 2024-02-16 17:53:34 +0200 11957 11958 Translations: Use the same sentence in xz.pot-header that the TP uses. 11959 11960 po/xz.pot-header | 2 +- 11961 1 file changed, 1 insertion(+), 1 deletion(-) 11962 11963commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422 11964Author: Jia Tan <jiat0218@gmail.com> 11965Date: 2024-02-16 22:53:46 +0800 11966 11967 Fix typos discovered by codespell. 11968 11969 AUTHORS | 2 +- 11970 NEWS | 2 +- 11971 src/liblzma/rangecoder/range_decoder.h | 4 ++-- 11972 3 files changed, 4 insertions(+), 4 deletions(-) 11973 11974commit c64723bbb094e29b4edd98f6fcce866e1b569b42 11975Author: Jia Tan <jiat0218@gmail.com> 11976Date: 2024-02-16 22:52:41 +0800 11977 11978 Translations: Update the Ukrainian man page translations. 11979 11980 po4a/uk.po | 1710 +++++++++++++++++++++++++++++++----------------------------- 11981 1 file changed, 873 insertions(+), 837 deletions(-) 11982 11983commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6 11984Author: Jia Tan <jiat0218@gmail.com> 11985Date: 2024-02-16 22:51:04 +0800 11986 11987 Translations: Update the Ukrainian translation. 11988 11989 po/uk.po | 466 ++++++++++++++++++++++++++++++--------------------------------- 11990 1 file changed, 225 insertions(+), 241 deletions(-) 11991 11992commit 4c20781f4c8f04879b64d631a4f44b4909147bde 11993Author: Lasse Collin <lasse.collin@tukaani.org> 11994Date: 2024-02-15 22:32:52 +0200 11995 11996 Translations: Omit the generic copyright line from man page headers. 11997 11998 po4a/update-po | 1 + 11999 1 file changed, 1 insertion(+) 12000 12001commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e 12002Author: Jia Tan <jiat0218@gmail.com> 12003Date: 2024-02-15 22:26:43 +0800 12004 12005 Update m4/.gitignore. 12006 12007 m4/.gitignore | 1 + 12008 1 file changed, 1 insertion(+) 12009 12010commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a 12011Author: Lasse Collin <lasse.collin@tukaani.org> 12012Date: 2024-02-14 21:11:49 +0200 12013 12014 Tests: tuktest.h: Treat Clang separately from GCC. 12015 12016 Don't assume that Clang defines __GNUC__ as the extensions 12017 are available in clang-cl as well (and possibly in some other 12018 Clang variants?). 12019 12020 tests/tuktest.h | 6 +++--- 12021 1 file changed, 3 insertions(+), 3 deletions(-) 12022 12023commit cce7330b9f23485a0879422e0c3395a7065439ac 12024Author: Lasse Collin <lasse.collin@tukaani.org> 12025Date: 2024-02-14 21:11:03 +0200 12026 12027 Tests: tuktest.h: Add a missing word to a comment. 12028 12029 tests/tuktest.h | 4 ++-- 12030 1 file changed, 2 insertions(+), 2 deletions(-) 12031 12032commit 5dd8fc9452a3373cedc27379067ce638f992c741 12033Author: Lasse Collin <lasse.collin@tukaani.org> 12034Date: 2024-02-14 21:10:10 +0200 12035 12036 Tests: tuktest.h: Fix the comment about STest. 12037 12038 tests/tuktest.h | 3 ++- 12039 1 file changed, 2 insertions(+), 1 deletion(-) 12040 12041commit 6f1790254a03c5edf0f2976f773220f070450acd 12042Author: Jia Tan <jiat0218@gmail.com> 12043Date: 2024-02-15 01:53:40 +0800 12044 12045 Bump version for 5.5.2beta. 12046 12047 src/liblzma/api/lzma/version.h | 4 ++-- 12048 src/liblzma/liblzma_generic.map | 2 +- 12049 src/liblzma/liblzma_linux.map | 2 +- 12050 3 files changed, 4 insertions(+), 4 deletions(-) 12051 12052commit 924fdeedf48113fb1e0646d86bd89a356d21a055 12053Author: Lasse Collin <lasse.collin@tukaani.org> 12054Date: 2024-02-14 19:46:11 +0200 12055 12056 liblzma: Fix validate_map.sh. 12057 12058 Adding the SPDX license identifier changed the line numbers. 12059 12060 src/liblzma/validate_map.sh | 2 +- 12061 1 file changed, 1 insertion(+), 1 deletion(-) 12062 12063commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01 12064Author: Lasse Collin <lasse.collin@tukaani.org> 12065Date: 2024-02-14 19:38:34 +0200 12066 12067 Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. 12068 12069 Makefile.am | 2 +- 12070 1 file changed, 1 insertion(+), 1 deletion(-) 12071 12072commit 0b8cefa136c21d403a01b78517f4decb50172bdb 12073Author: Lasse Collin <lasse.collin@tukaani.org> 12074Date: 2024-02-14 19:27:46 +0200 12075 12076 Fixed NEWS for 5.5.2beta. 12077 12078 NEWS | 8 ++++++-- 12079 1 file changed, 6 insertions(+), 2 deletions(-) 12080 12081commit a4557bad96361d93ea171ed859ac5a696fca824f 12082Author: Lasse Collin <lasse.collin@tukaani.org> 12083Date: 2024-02-14 19:21:45 +0200 12084 12085 liblzma: Silence warnings in --enable-small build. 12086 12087 src/liblzma/lzma/lzma_decoder.c | 2 ++ 12088 src/liblzma/rangecoder/range_decoder.h | 1 + 12089 2 files changed, 3 insertions(+) 12090 12091commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2 12092Author: Lasse Collin <lasse.collin@tukaani.org> 12093Date: 2024-02-14 19:15:58 +0200 12094 12095 Build: Install COPYING.0BSD as part of docs. 12096 12097 Makefile.am | 1 + 12098 1 file changed, 1 insertion(+) 12099 12100commit b74e10bd839bcdc239afb5300ffaee195f34c217 12101Author: Lasse Collin <lasse.collin@tukaani.org> 12102Date: 2024-02-14 19:14:05 +0200 12103 12104 Docs: List COPYING.0BSD in README. 12105 12106 README | 1 + 12107 1 file changed, 1 insertion(+) 12108 12109commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e 12110Author: Lasse Collin <lasse.collin@tukaani.org> 12111Date: 2024-02-14 19:11:48 +0200 12112 12113 Docs: Include doc/examples/11_file_info.c in tarballs. 12114 12115 It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd 12116 but it never got into any release tarballs because it was 12117 forgotten to be added to Makefile.am. 12118 12119 Makefile.am | 1 + 12120 1 file changed, 1 insertion(+) 12121 12122commit 160b6862646d95dfdbd73ab7f1031ede0f54992d 12123Author: Lasse Collin <lasse.collin@tukaani.org> 12124Date: 2024-02-14 19:05:58 +0200 12125 12126 liblzma: Silence a warning. 12127 12128 src/liblzma/rangecoder/range_decoder.h | 2 +- 12129 1 file changed, 1 insertion(+), 1 deletion(-) 12130 12131commit eeedd4d0925ea417add04ceb42a6c0829244b50c 12132Author: Lasse Collin <lasse.collin@tukaani.org> 12133Date: 2024-02-14 18:32:27 +0200 12134 12135 Add NEWS for 5.5.2beta. 12136 12137 NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12138 1 file changed, 60 insertions(+) 12139 12140commit 8af7db854f903068d72a9a0d21103cb0c5027fa8 12141Author: Lasse Collin <lasse.collin@tukaani.org> 12142Date: 2024-02-13 14:32:47 +0200 12143 12144 xz: Mention lzmainfo if trying to use 'lzma --list'. 12145 12146 This kind of fixes the problem reported here: 12147 https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020 12148 12149 src/xz/list.c | 16 ++++++++++++++-- 12150 1 file changed, 14 insertions(+), 2 deletions(-) 12151 12152commit 0668907ff736e4cd16738c10d39a2bc9e851aefb 12153Author: Lasse Collin <lasse.collin@tukaani.org> 12154Date: 2024-02-14 14:58:36 +0200 12155 12156 liblzma: Add comments. 12157 12158 src/liblzma/lzma/lzma_decoder.c | 9 +++++++++ 12159 src/liblzma/rangecoder/range_decoder.h | 11 +++++++++-- 12160 2 files changed, 18 insertions(+), 2 deletions(-) 12161 12162commit 109f1913d4824c8214d5bbd38ebebf62c37572da 12163Author: Lasse Collin <lasse.collin@tukaani.org> 12164Date: 2024-02-13 17:00:17 +0200 12165 12166 Scripts: Add lz4 support to xzgrep and xzdiff. 12167 12168 src/scripts/xzdiff.1 | 8 +++++--- 12169 src/scripts/xzdiff.in | 14 +++++++++----- 12170 src/scripts/xzgrep.1 | 6 ++++-- 12171 src/scripts/xzgrep.in | 1 + 12172 4 files changed, 19 insertions(+), 10 deletions(-) 12173 12174commit de55485cb23af56c5adbe3239b935c957ff8ac4f 12175Author: Lasse Collin <lasse.collin@tukaani.org> 12176Date: 2024-02-13 14:05:13 +0200 12177 12178 liblzma: Choose the range decoder variants using a bitmask macro. 12179 12180 src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------ 12181 1 file changed, 53 insertions(+), 11 deletions(-) 12182 12183commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5 12184Author: Lasse Collin <lasse.collin@tukaani.org> 12185Date: 2024-02-13 11:38:10 +0200 12186 12187 xz: Fix outdated threading related info on the man page. 12188 12189 src/xz/xz.1 | 22 ++++++++++++++-------- 12190 1 file changed, 14 insertions(+), 8 deletions(-) 12191 12192commit 3182a330c1512cc1f5c87b5c5a272578e60a5158 12193Author: Lasse Collin <lasse.collin@tukaani.org> 12194Date: 2024-02-12 17:09:10 +0200 12195 12196 liblzma: Range decoder: Add x86-64 inline assembly. 12197 12198 It's compatible with GCC and Clang. 12199 12200 src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++ 12201 1 file changed, 491 insertions(+) 12202 12203commit cba2edc991dffba7cd4891dbc1bd26cb950cf053 12204Author: Lasse Collin <lasse.collin@tukaani.org> 12205Date: 2024-02-12 17:09:10 +0200 12206 12207 liblzma: Range decoder: Add branchless C code. 12208 12209 It's used only for basic bittrees and fixed-size reverse bittree 12210 because those showed a clear benefit on x86-64 with GCC and Clang. 12211 The other methods were more mixed and thus are commented out but 12212 they should be tested on other archs. 12213 12214 src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++ 12215 1 file changed, 76 insertions(+) 12216 12217commit e290a72d6dee71faf3a90c9678b2f730083666a7 12218Author: Lasse Collin <lasse.collin@tukaani.org> 12219Date: 2024-02-12 17:09:10 +0200 12220 12221 liblzma: Clarify a comment. 12222 12223 src/liblzma/lzma/lzma_decoder.c | 9 ++++++--- 12224 1 file changed, 6 insertions(+), 3 deletions(-) 12225 12226commit 5e04706b91ca90d6befd4da24a588a55e631d4a9 12227Author: Lasse Collin <lasse.collin@tukaani.org> 12228Date: 2024-02-12 17:09:10 +0200 12229 12230 liblzma: LZMA decoder: Optimize loop comparison. 12231 12232 But now it needs one more local variable. 12233 12234 src/liblzma/lzma/lzma_decoder.c | 5 ++--- 12235 src/liblzma/rangecoder/range_decoder.h | 10 +++++++++- 12236 2 files changed, 11 insertions(+), 4 deletions(-) 12237 12238commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66 12239Author: Lasse Collin <lasse.collin@tukaani.org> 12240Date: 2024-02-12 17:09:10 +0200 12241 12242 liblzma: Optimize literal_subcoder() macro slightly. 12243 12244 src/liblzma/lzma/lzma_common.h | 22 ++++++++++++---------- 12245 src/liblzma/lzma/lzma_decoder.c | 12 ++++++------ 12246 src/liblzma/lzma/lzma_encoder.c | 6 +++--- 12247 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +- 12248 src/liblzma/lzma/lzma_encoder_private.h | 4 ++-- 12249 5 files changed, 24 insertions(+), 22 deletions(-) 12250 12251commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5 12252Author: Lasse Collin <lasse.collin@tukaani.org> 12253Date: 2024-02-12 17:09:10 +0200 12254 12255 liblzma: LZ decoder: Add unlikely(). 12256 12257 src/liblzma/lz/lz_decoder.h | 2 +- 12258 1 file changed, 1 insertion(+), 1 deletion(-) 12259 12260commit 9c252e3ed086c6b72590b2531586c42596d4a9d9 12261Author: Lasse Collin <lasse.collin@tukaani.org> 12262Date: 2024-02-12 17:09:10 +0200 12263 12264 liblzma: LZ decoder: Remove a useless unlikely(). 12265 12266 src/liblzma/lz/lz_decoder.h | 2 +- 12267 1 file changed, 1 insertion(+), 1 deletion(-) 12268 12269commit f3872a59475456c5d365cad9f1c5be514cfa54b5 12270Author: Lasse Collin <lasse.collin@tukaani.org> 12271Date: 2024-02-12 17:09:10 +0200 12272 12273 liblzma: Optimize LZ decoder slightly. 12274 12275 Now extra buffer space is reserved so that repeating bytes for 12276 any single match will never need to copy from two places (both 12277 the beginning and the end of the buffer). This simplifies 12278 dict_repeat() and helps a little with speed. 12279 12280 This seems to reduce .lzma decompression time about 2 %, so 12281 with .xz and CRC it could be slightly less. The small things 12282 add up still. 12283 12284 src/liblzma/lz/lz_decoder.c | 43 ++++++++++++----- 12285 src/liblzma/lz/lz_decoder.h | 101 +++++++++++++++++++++------------------- 12286 src/liblzma/lzma/lzma_decoder.c | 4 +- 12287 3 files changed, 88 insertions(+), 60 deletions(-) 12288 12289commit eb518446e578acf079abae5f1ce28db7b6e59bc1 12290Author: Lasse Collin <lasse.collin@tukaani.org> 12291Date: 2024-02-12 17:09:10 +0200 12292 12293 liblzma: LZMA decoder: Get rid of next_state[]. 12294 12295 It's not completely obvious if this is better in the decoder. 12296 It should be good if compiler can avoid creating a branch 12297 (like using CMOV on x86). 12298 12299 This also makes lzma_encoder.c use the new macros. 12300 12301 src/liblzma/lzma/lzma_common.h | 14 ++++++++++++++ 12302 src/liblzma/lzma/lzma_decoder.c | 30 ++++++++---------------------- 12303 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 12304 3 files changed, 24 insertions(+), 24 deletions(-) 12305 12306commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604 12307Author: Lasse Collin <lasse.collin@tukaani.org> 12308Date: 2024-02-12 17:09:10 +0200 12309 12310 liblzma: LZMA decoder improvements. 12311 12312 This adds macros for bittree decoding which prepares the code 12313 for alternative C versions and inline assembly. 12314 12315 src/liblzma/lzma/lzma_decoder.c | 264 ++++++++++----------------------- 12316 src/liblzma/rangecoder/range_common.h | 4 + 12317 src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++-- 12318 3 files changed, 210 insertions(+), 200 deletions(-) 12319 12320commit de5c5e417645ad8906ef914bc059d08c1462fc29 12321Author: Jia Tan <jiat0218@gmail.com> 12322Date: 2024-02-12 17:09:10 +0200 12323 12324 liblzma: Creates Non-resumable and Resumable modes for lzma_decoder. 12325 12326 The new decoder resumes the first decoder loop in the Resumable mode. 12327 Then, the code executes in Non-resumable mode until it detects that it 12328 cannot guarantee to have enough input/output to decode another symbol. 12329 12330 The Resumable mode is how the decoder has always worked. Before decoding 12331 every input bit, it checks if there is enough space and will save its 12332 location to be resumed later. When the decoder has more input/output, 12333 it jumps back to the correct sequence in the Resumable mode code. 12334 12335 When the input/output buffers are large, the Resumable mode is much 12336 slower than the Non-resumable because it has more branches and is harder 12337 for the compiler to optimize since it is in a large switch block. 12338 12339 Early benchmarking shows significant time improvement (8-10% on gcc and 12340 clang x86) by using the Non-resumable code as much as possible. 12341 12342 src/liblzma/lz/lz_decoder.h | 14 +- 12343 src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------ 12344 2 files changed, 521 insertions(+), 213 deletions(-) 12345 12346commit e446ab7a18abfde18f8d1cf02a914df72b1370e3 12347Author: Jia Tan <jiat0218@gmail.com> 12348Date: 2024-02-12 17:09:10 +0200 12349 12350 liblzma: Creates separate "safe" range decoder mode. 12351 12352 The new "safe" range decoder mode is the same as old range decoder, but 12353 now the default behavior of the range decoder will not check if there is 12354 enough input or output to complete the operation. When the buffers are 12355 close to fully consumed, the "safe" operations must be used instead. This 12356 will improve speed because it will reduce the number of branches needed 12357 for most of the range decoder operations. 12358 12359 src/liblzma/lzma/lzma_decoder.c | 108 ++++++++------------------------- 12360 src/liblzma/rangecoder/range_decoder.h | 77 +++++++++++++++++------ 12361 2 files changed, 82 insertions(+), 103 deletions(-) 12362 12363commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9 12364Author: Lasse Collin <lasse.collin@tukaani.org> 12365Date: 2024-02-12 17:09:10 +0200 12366 12367 doxygen/footer.html: Add missing closing tags and don't open a new tab. 12368 12369 The footer template from Doxygen has the closing </body> </html> 12370 as Doxygen doesn't add them otherwise. 12371 12372 target="_blank" was omitted as it's not useful here but 12373 it can be slightly annoying as one cannot just go back 12374 in the browser history. 12375 12376 Since the footer links to the license file in the same 12377 directory and not to CC website, the rel attributes 12378 can be omitted. 12379 12380 doxygen/footer.html | 6 ++++-- 12381 1 file changed, 4 insertions(+), 2 deletions(-) 12382 12383commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92 12384Author: Lasse Collin <lasse.collin@tukaani.org> 12385Date: 2024-02-13 13:19:10 +0200 12386 12387 Tweak the expressions in AUTHORS. 12388 12389 AUTHORS | 31 +++++++++++++++++++++++-------- 12390 1 file changed, 23 insertions(+), 8 deletions(-) 12391 12392commit d231d56580175fa040fdd3c6207a58243ce6217b 12393Author: Lasse Collin <lasse.collin@tukaani.org> 12394Date: 2024-02-13 13:07:33 +0200 12395 12396 Translations: Add the man page translators into man page header comment. 12397 12398 It looked odd to only have the original English authors listed 12399 in the header comments of the translated files. 12400 12401 po4a/.gitignore | 1 + 12402 po4a/po4a.conf | 14 +++++++------- 12403 po4a/update-po | 18 ++++++++++++++++++ 12404 3 files changed, 26 insertions(+), 7 deletions(-) 12405 12406commit 6d35fcb936474fca1acaebfd9502c097b6fde88e 12407Author: Lasse Collin <lasse.collin@tukaani.org> 12408Date: 2024-02-12 17:09:10 +0200 12409 12410 Translations: Translate also messages of lzmainfo. 12411 12412 lzmainfo has had translation support since 2009 at least but 12413 it was never added to po/POTFILES.in so the messages weren't 12414 translated. It's a very rarely needed tool so it's not too bad. 12415 12416 This also adds src/xz/mytime.c to po/POTFILES.in although there 12417 are no translatable strings. It's simpler this way so that it 12418 won't be forgotten if strings were ever added to that file. 12419 12420 po/POTFILES.in | 2 ++ 12421 1 file changed, 2 insertions(+) 12422 12423commit a9f369dd54b05f9ac4e00ead9d765d04fc259868 12424Author: Lasse Collin <lasse.collin@tukaani.org> 12425Date: 2024-02-12 17:09:10 +0200 12426 12427 Translations: Add custom .pot header with SPDX license identifier. 12428 12429 The same is used for both po/xz.pot and po4a/xz-man.pot. 12430 12431 Makefile.am | 1 + 12432 po/xz.pot-header | 7 +++++++ 12433 po4a/update-po | 8 ++++++++ 12434 3 files changed, 16 insertions(+) 12435 12436commit 469cd6653bb96e83c5cf1031c204d34566b15f44 12437Author: Lasse Collin <lasse.collin@tukaani.org> 12438Date: 2024-02-12 17:09:10 +0200 12439 12440 Translations: po4a/update-po: Add copyright notice to xz-man.pot. 12441 12442 All man pages are under 0BSD now so this is simple now. 12443 12444 po4a/update-po | 2 +- 12445 1 file changed, 1 insertion(+), 1 deletion(-) 12446 12447commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699 12448Author: Lasse Collin <lasse.collin@tukaani.org> 12449Date: 2024-02-12 17:09:10 +0200 12450 12451 Update COPYING about the man pages of the scripts. 12452 12453 COPYING | 6 +++--- 12454 1 file changed, 3 insertions(+), 3 deletions(-) 12455 12456commit e48287bf51afd5184ea74de1dcade9e153f873f7 12457Author: Lasse Collin <lasse.collin@tukaani.org> 12458Date: 2024-02-12 17:09:10 +0200 12459 12460 xzdiff, xzgrep, and xzmore: Rewrite the man pages. 12461 12462 The main reason is a kind of silly one: 12463 12464 xz-man.pot contains strings from all man pages in XZ Utils. 12465 The man pages of xzdiff, xzgrep, and xzmore were under GPLv2 12466 and the rest under 0BSD. Thus xz-man.pot contained strings 12467 under two licences. po4a creates the translated man pages 12468 from the combined 0BSD+GPLv2 xz-man.pot. 12469 12470 I haven't liked this mixing in xz-man.pot but the 12471 Translation Project requires that all man pages must be 12472 in the same .pot file. So a separate xz-man-gpl.pot 12473 wasn't an option. 12474 12475 Since these man pages are short, rewriting them was quick enough. 12476 Now xz-man.pot is entirely under 0BSD and marking the per-file 12477 licenses is simpler. 12478 12479 As a bonus, some wording hopefully is now slightly better 12480 although it's perhaps a matter of taste. 12481 12482 NOTE: In xzgrep.1, the EXIT STATUS section was written by me 12483 in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's 12484 why that section could be taken as is from the old xzgrep.1. 12485 12486 src/scripts/xzdiff.1 | 94 ++++++++++++++++++++++++----------------- 12487 src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++------------------- 12488 src/scripts/xzmore.1 | 79 ++++++++++++++++++++--------------- 12489 3 files changed, 173 insertions(+), 116 deletions(-) 12490 12491commit 3e551b111b8ae8150f1a1040364dbafc034f22be 12492Author: Lasse Collin <lasse.collin@tukaani.org> 12493Date: 2024-02-12 17:09:10 +0200 12494 12495 xzless: Update man page slightly. 12496 12497 The xz tool can decompress three file formats and xzless 12498 has always supported uncompressed files too. 12499 12500 src/scripts/xzless.1 | 8 ++++---- 12501 1 file changed, 4 insertions(+), 4 deletions(-) 12502 12503commit 40f36da2262d13d6e1ba8449caa855512ae626d7 12504Author: Lasse Collin <lasse.collin@tukaani.org> 12505Date: 2024-02-12 17:09:10 +0200 12506 12507 Translations: Change po/Makevars to add a copyright notice to po/xz.pot. 12508 12509 po/Makevars | 4 ++-- 12510 1 file changed, 2 insertions(+), 2 deletions(-) 12511 12512commit 24192854e2ea5c06997431a98bda3c36c5da1497 12513Author: Lasse Collin <lasse.collin@tukaani.org> 12514Date: 2024-02-12 17:09:10 +0200 12515 12516 Translations: Update po/Makevars to use the template from gettext 0.22.4. 12517 12518 Also add SPDX license identifier now that there is a known license. 12519 12520 po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 12521 1 file changed, 46 insertions(+), 5 deletions(-) 12522 12523commit b94154957370116480b43bcabca25fc52deb9853 12524Author: Lasse Collin <lasse.collin@tukaani.org> 12525Date: 2024-02-12 17:09:10 +0200 12526 12527 liblzma: Include the SPDX license identifier 0BSD to generated files. 12528 12529 Perhaps the generated files aren't even copyrightable but 12530 using the same license for them as for the rest of the liblzma 12531 keeps things more consistent for tools that look for license info. 12532 12533 src/liblzma/check/crc32_table_be.h | 4 +++- 12534 src/liblzma/check/crc32_table_le.h | 4 +++- 12535 src/liblzma/check/crc32_tablegen.c | 16 ++++++++++------ 12536 src/liblzma/check/crc64_table_be.h | 4 +++- 12537 src/liblzma/check/crc64_table_le.h | 4 +++- 12538 src/liblzma/check/crc64_tablegen.c | 8 +++++--- 12539 src/liblzma/lz/lz_encoder_hash_table.h | 4 +++- 12540 src/liblzma/lzma/fastpos_table.c | 4 +++- 12541 src/liblzma/lzma/fastpos_tablegen.c | 12 +++++++----- 12542 src/liblzma/rangecoder/price_table.c | 4 +++- 12543 src/liblzma/rangecoder/price_tablegen.c | 12 +++++++----- 12544 11 files changed, 50 insertions(+), 26 deletions(-) 12545 12546commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4 12547Author: Lasse Collin <lasse.collin@tukaani.org> 12548Date: 2024-02-12 17:09:10 +0200 12549 12550 liblzma: Fix compilation of price_tablegen.c. 12551 12552 It is built and run only manually so this didn't matter 12553 unless one wanted to regenerate the price_table.c. 12554 12555 src/liblzma/rangecoder/price_tablegen.c | 5 +++++ 12556 src/liblzma/rangecoder/range_common.h | 5 ++++- 12557 2 files changed, 9 insertions(+), 1 deletion(-) 12558 12559commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf 12560Author: Lasse Collin <lasse.collin@tukaani.org> 12561Date: 2024-02-12 17:09:10 +0200 12562 12563 Add SPDX license identifiers to GPL, LGPL, and FSFULLR files. 12564 12565 extra/scanlzma/scanlzma.c | 2 ++ 12566 lib/Makefile.am | 2 ++ 12567 lib/getopt-cdefs.h | 2 ++ 12568 lib/getopt-core.h | 2 ++ 12569 lib/getopt-ext.h | 2 ++ 12570 lib/getopt-pfx-core.h | 2 ++ 12571 lib/getopt-pfx-ext.h | 2 ++ 12572 lib/getopt.c | 2 ++ 12573 lib/getopt.in.h | 2 ++ 12574 lib/getopt1.c | 2 ++ 12575 lib/getopt_int.h | 2 ++ 12576 m4/ax_pthread.m4 | 2 ++ 12577 m4/getopt.m4 | 2 ++ 12578 m4/posix-shell.m4 | 2 ++ 12579 m4/visibility.m4 | 2 ++ 12580 src/scripts/xzdiff.1 | 3 +-- 12581 src/scripts/xzdiff.in | 1 + 12582 src/scripts/xzgrep.1 | 3 +-- 12583 src/scripts/xzgrep.in | 1 + 12584 src/scripts/xzless.in | 1 + 12585 src/scripts/xzmore.1 | 3 +-- 12586 src/scripts/xzmore.in | 1 + 12587 22 files changed, 37 insertions(+), 6 deletions(-) 12588 12589commit 22af94128b89a131f5e58ae69bee5e50227c15da 12590Author: Lasse Collin <lasse.collin@tukaani.org> 12591Date: 2024-02-12 17:09:10 +0200 12592 12593 Add SPDX license identifier into 0BSD source code files. 12594 12595 .github/workflows/ci.yml | 2 ++ 12596 .github/workflows/windows-ci.yml | 2 ++ 12597 CMakeLists.txt | 2 ++ 12598 Makefile.am | 3 +-- 12599 autogen.sh | 1 + 12600 build-aux/ci_build.sh | 3 ++- 12601 build-aux/manconv.sh | 3 ++- 12602 build-aux/version.sh | 3 ++- 12603 cmake/remove-ordinals.cmake | 2 ++ 12604 cmake/tuklib_common.cmake | 4 ++++ 12605 cmake/tuklib_cpucores.cmake | 4 ++++ 12606 cmake/tuklib_integer.cmake | 4 ++++ 12607 cmake/tuklib_large_file_support.cmake | 4 ++++ 12608 cmake/tuklib_mbstr.cmake | 4 ++++ 12609 cmake/tuklib_physmem.cmake | 4 ++++ 12610 cmake/tuklib_progname.cmake | 4 ++++ 12611 configure.ac | 4 +++- 12612 debug/Makefile.am | 3 +-- 12613 debug/crc32.c | 2 ++ 12614 debug/full_flush.c | 2 ++ 12615 debug/hex2bin.c | 2 ++ 12616 debug/known_sizes.c | 2 ++ 12617 debug/memusage.c | 2 ++ 12618 debug/repeat.c | 2 ++ 12619 debug/sync_flush.c | 2 ++ 12620 debug/translation.bash | 1 + 12621 doc/examples/01_compress_easy.c | 2 ++ 12622 doc/examples/02_decompress.c | 2 ++ 12623 doc/examples/03_compress_custom.c | 2 ++ 12624 doc/examples/04_compress_easy_mt.c | 2 ++ 12625 doc/examples/11_file_info.c | 2 ++ 12626 doc/examples/Makefile | 3 +-- 12627 dos/Makefile | 2 ++ 12628 dos/config.h | 2 ++ 12629 doxygen/update-doxygen | 3 ++- 12630 extra/7z2lzma/7z2lzma.bash | 3 ++- 12631 m4/tuklib_common.m4 | 8 ++++++-- 12632 m4/tuklib_cpucores.m4 | 8 ++++++-- 12633 m4/tuklib_integer.m4 | 8 ++++++-- 12634 m4/tuklib_mbstr.m4 | 8 ++++++-- 12635 m4/tuklib_physmem.m4 | 8 ++++++-- 12636 m4/tuklib_progname.m4 | 8 ++++++-- 12637 po/POTFILES.in | 2 ++ 12638 po4a/po4a.conf | 2 ++ 12639 po4a/update-po | 3 ++- 12640 src/Makefile.am | 3 +-- 12641 src/common/common_w32res.rc | 2 ++ 12642 src/common/mythread.h | 2 ++ 12643 src/common/sysdefs.h | 2 ++ 12644 src/common/tuklib_common.h | 2 ++ 12645 src/common/tuklib_config.h | 2 ++ 12646 src/common/tuklib_cpucores.c | 2 ++ 12647 src/common/tuklib_cpucores.h | 2 ++ 12648 src/common/tuklib_exit.c | 2 ++ 12649 src/common/tuklib_exit.h | 2 ++ 12650 src/common/tuklib_gettext.h | 2 ++ 12651 src/common/tuklib_integer.h | 2 ++ 12652 src/common/tuklib_mbstr.h | 2 ++ 12653 src/common/tuklib_mbstr_fw.c | 2 ++ 12654 src/common/tuklib_mbstr_width.c | 2 ++ 12655 src/common/tuklib_open_stdxxx.c | 2 ++ 12656 src/common/tuklib_open_stdxxx.h | 2 ++ 12657 src/common/tuklib_physmem.c | 2 ++ 12658 src/common/tuklib_physmem.h | 2 ++ 12659 src/common/tuklib_progname.c | 2 ++ 12660 src/common/tuklib_progname.h | 2 ++ 12661 src/liblzma/Makefile.am | 3 +-- 12662 src/liblzma/api/Makefile.am | 3 +-- 12663 src/liblzma/api/lzma.h | 2 ++ 12664 src/liblzma/api/lzma/base.h | 2 ++ 12665 src/liblzma/api/lzma/bcj.h | 2 ++ 12666 src/liblzma/api/lzma/block.h | 2 ++ 12667 src/liblzma/api/lzma/check.h | 2 ++ 12668 src/liblzma/api/lzma/container.h | 2 ++ 12669 src/liblzma/api/lzma/delta.h | 2 ++ 12670 src/liblzma/api/lzma/filter.h | 2 ++ 12671 src/liblzma/api/lzma/hardware.h | 2 ++ 12672 src/liblzma/api/lzma/index.h | 2 ++ 12673 src/liblzma/api/lzma/index_hash.h | 2 ++ 12674 src/liblzma/api/lzma/lzma12.h | 2 ++ 12675 src/liblzma/api/lzma/stream_flags.h | 2 ++ 12676 src/liblzma/api/lzma/version.h | 2 ++ 12677 src/liblzma/api/lzma/vli.h | 2 ++ 12678 src/liblzma/check/Makefile.inc | 4 ++-- 12679 src/liblzma/check/check.c | 2 ++ 12680 src/liblzma/check/check.h | 2 ++ 12681 src/liblzma/check/crc32_arm64.h | 2 ++ 12682 src/liblzma/check/crc32_fast.c | 2 ++ 12683 src/liblzma/check/crc32_small.c | 2 ++ 12684 src/liblzma/check/crc32_table.c | 2 ++ 12685 src/liblzma/check/crc32_tablegen.c | 2 ++ 12686 src/liblzma/check/crc32_x86.S | 2 ++ 12687 src/liblzma/check/crc64_fast.c | 2 ++ 12688 src/liblzma/check/crc64_small.c | 2 ++ 12689 src/liblzma/check/crc64_table.c | 2 ++ 12690 src/liblzma/check/crc64_tablegen.c | 2 ++ 12691 src/liblzma/check/crc64_x86.S | 2 ++ 12692 src/liblzma/check/crc_common.h | 2 ++ 12693 src/liblzma/check/crc_x86_clmul.h | 2 ++ 12694 src/liblzma/check/sha256.c | 2 ++ 12695 src/liblzma/common/Makefile.inc | 3 +-- 12696 src/liblzma/common/alone_decoder.c | 2 ++ 12697 src/liblzma/common/alone_decoder.h | 2 ++ 12698 src/liblzma/common/alone_encoder.c | 2 ++ 12699 src/liblzma/common/auto_decoder.c | 2 ++ 12700 src/liblzma/common/block_buffer_decoder.c | 2 ++ 12701 src/liblzma/common/block_buffer_encoder.c | 2 ++ 12702 src/liblzma/common/block_buffer_encoder.h | 2 ++ 12703 src/liblzma/common/block_decoder.c | 2 ++ 12704 src/liblzma/common/block_decoder.h | 2 ++ 12705 src/liblzma/common/block_encoder.c | 2 ++ 12706 src/liblzma/common/block_encoder.h | 2 ++ 12707 src/liblzma/common/block_header_decoder.c | 2 ++ 12708 src/liblzma/common/block_header_encoder.c | 2 ++ 12709 src/liblzma/common/block_util.c | 2 ++ 12710 src/liblzma/common/common.c | 2 ++ 12711 src/liblzma/common/common.h | 2 ++ 12712 src/liblzma/common/easy_buffer_encoder.c | 2 ++ 12713 src/liblzma/common/easy_decoder_memusage.c | 2 ++ 12714 src/liblzma/common/easy_encoder.c | 2 ++ 12715 src/liblzma/common/easy_encoder_memusage.c | 2 ++ 12716 src/liblzma/common/easy_preset.c | 2 ++ 12717 src/liblzma/common/easy_preset.h | 2 ++ 12718 src/liblzma/common/file_info.c | 2 ++ 12719 src/liblzma/common/filter_buffer_decoder.c | 2 ++ 12720 src/liblzma/common/filter_buffer_encoder.c | 2 ++ 12721 src/liblzma/common/filter_common.c | 2 ++ 12722 src/liblzma/common/filter_common.h | 2 ++ 12723 src/liblzma/common/filter_decoder.c | 2 ++ 12724 src/liblzma/common/filter_decoder.h | 2 ++ 12725 src/liblzma/common/filter_encoder.c | 2 ++ 12726 src/liblzma/common/filter_encoder.h | 2 ++ 12727 src/liblzma/common/filter_flags_decoder.c | 2 ++ 12728 src/liblzma/common/filter_flags_encoder.c | 2 ++ 12729 src/liblzma/common/hardware_cputhreads.c | 2 ++ 12730 src/liblzma/common/hardware_physmem.c | 2 ++ 12731 src/liblzma/common/index.c | 2 ++ 12732 src/liblzma/common/index.h | 2 ++ 12733 src/liblzma/common/index_decoder.c | 2 ++ 12734 src/liblzma/common/index_decoder.h | 2 ++ 12735 src/liblzma/common/index_encoder.c | 2 ++ 12736 src/liblzma/common/index_encoder.h | 2 ++ 12737 src/liblzma/common/index_hash.c | 2 ++ 12738 src/liblzma/common/lzip_decoder.c | 2 ++ 12739 src/liblzma/common/lzip_decoder.h | 2 ++ 12740 src/liblzma/common/memcmplen.h | 2 ++ 12741 src/liblzma/common/microlzma_decoder.c | 2 ++ 12742 src/liblzma/common/microlzma_encoder.c | 2 ++ 12743 src/liblzma/common/outqueue.c | 2 ++ 12744 src/liblzma/common/outqueue.h | 2 ++ 12745 src/liblzma/common/stream_buffer_decoder.c | 2 ++ 12746 src/liblzma/common/stream_buffer_encoder.c | 2 ++ 12747 src/liblzma/common/stream_decoder.c | 2 ++ 12748 src/liblzma/common/stream_decoder.h | 2 ++ 12749 src/liblzma/common/stream_decoder_mt.c | 2 ++ 12750 src/liblzma/common/stream_encoder.c | 2 ++ 12751 src/liblzma/common/stream_encoder_mt.c | 2 ++ 12752 src/liblzma/common/stream_flags_common.c | 2 ++ 12753 src/liblzma/common/stream_flags_common.h | 2 ++ 12754 src/liblzma/common/stream_flags_decoder.c | 2 ++ 12755 src/liblzma/common/stream_flags_encoder.c | 2 ++ 12756 src/liblzma/common/string_conversion.c | 2 ++ 12757 src/liblzma/common/vli_decoder.c | 2 ++ 12758 src/liblzma/common/vli_encoder.c | 2 ++ 12759 src/liblzma/common/vli_size.c | 2 ++ 12760 src/liblzma/delta/Makefile.inc | 3 +-- 12761 src/liblzma/delta/delta_common.c | 2 ++ 12762 src/liblzma/delta/delta_common.h | 2 ++ 12763 src/liblzma/delta/delta_decoder.c | 2 ++ 12764 src/liblzma/delta/delta_decoder.h | 2 ++ 12765 src/liblzma/delta/delta_encoder.c | 2 ++ 12766 src/liblzma/delta/delta_encoder.h | 2 ++ 12767 src/liblzma/delta/delta_private.h | 2 ++ 12768 src/liblzma/liblzma.pc.in | 3 +-- 12769 src/liblzma/liblzma_generic.map | 2 ++ 12770 src/liblzma/liblzma_linux.map | 2 ++ 12771 src/liblzma/liblzma_w32res.rc | 2 ++ 12772 src/liblzma/lz/Makefile.inc | 3 +-- 12773 src/liblzma/lz/lz_decoder.c | 2 ++ 12774 src/liblzma/lz/lz_decoder.h | 2 ++ 12775 src/liblzma/lz/lz_encoder.c | 2 ++ 12776 src/liblzma/lz/lz_encoder.h | 2 ++ 12777 src/liblzma/lz/lz_encoder_hash.h | 2 ++ 12778 src/liblzma/lz/lz_encoder_mf.c | 2 ++ 12779 src/liblzma/lzma/Makefile.inc | 3 +-- 12780 src/liblzma/lzma/fastpos.h | 2 ++ 12781 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 12782 src/liblzma/lzma/lzma2_decoder.c | 2 ++ 12783 src/liblzma/lzma/lzma2_decoder.h | 2 ++ 12784 src/liblzma/lzma/lzma2_encoder.c | 2 ++ 12785 src/liblzma/lzma/lzma2_encoder.h | 2 ++ 12786 src/liblzma/lzma/lzma_common.h | 2 ++ 12787 src/liblzma/lzma/lzma_decoder.c | 2 ++ 12788 src/liblzma/lzma/lzma_decoder.h | 2 ++ 12789 src/liblzma/lzma/lzma_encoder.c | 2 ++ 12790 src/liblzma/lzma/lzma_encoder.h | 2 ++ 12791 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 ++ 12792 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++ 12793 src/liblzma/lzma/lzma_encoder_presets.c | 2 ++ 12794 src/liblzma/lzma/lzma_encoder_private.h | 2 ++ 12795 src/liblzma/rangecoder/Makefile.inc | 3 +-- 12796 src/liblzma/rangecoder/price.h | 2 ++ 12797 src/liblzma/rangecoder/price_tablegen.c | 2 ++ 12798 src/liblzma/rangecoder/range_common.h | 2 ++ 12799 src/liblzma/rangecoder/range_decoder.h | 2 ++ 12800 src/liblzma/rangecoder/range_encoder.h | 2 ++ 12801 src/liblzma/simple/Makefile.inc | 3 +-- 12802 src/liblzma/simple/arm.c | 2 ++ 12803 src/liblzma/simple/arm64.c | 2 ++ 12804 src/liblzma/simple/armthumb.c | 2 ++ 12805 src/liblzma/simple/ia64.c | 2 ++ 12806 src/liblzma/simple/powerpc.c | 2 ++ 12807 src/liblzma/simple/riscv.c | 2 ++ 12808 src/liblzma/simple/simple_coder.c | 2 ++ 12809 src/liblzma/simple/simple_coder.h | 2 ++ 12810 src/liblzma/simple/simple_decoder.c | 2 ++ 12811 src/liblzma/simple/simple_decoder.h | 2 ++ 12812 src/liblzma/simple/simple_encoder.c | 2 ++ 12813 src/liblzma/simple/simple_encoder.h | 2 ++ 12814 src/liblzma/simple/simple_private.h | 2 ++ 12815 src/liblzma/simple/sparc.c | 2 ++ 12816 src/liblzma/simple/x86.c | 2 ++ 12817 src/liblzma/validate_map.sh | 1 + 12818 src/lzmainfo/Makefile.am | 3 +-- 12819 src/lzmainfo/lzmainfo.c | 2 ++ 12820 src/lzmainfo/lzmainfo_w32res.rc | 2 ++ 12821 src/scripts/Makefile.am | 3 +-- 12822 src/xz/Makefile.am | 3 +-- 12823 src/xz/args.c | 2 ++ 12824 src/xz/args.h | 2 ++ 12825 src/xz/coder.c | 2 ++ 12826 src/xz/coder.h | 2 ++ 12827 src/xz/file_io.c | 2 ++ 12828 src/xz/file_io.h | 2 ++ 12829 src/xz/hardware.c | 2 ++ 12830 src/xz/hardware.h | 2 ++ 12831 src/xz/list.c | 2 ++ 12832 src/xz/list.h | 2 ++ 12833 src/xz/main.c | 2 ++ 12834 src/xz/main.h | 2 ++ 12835 src/xz/message.c | 2 ++ 12836 src/xz/message.h | 2 ++ 12837 src/xz/mytime.c | 2 ++ 12838 src/xz/mytime.h | 2 ++ 12839 src/xz/options.c | 2 ++ 12840 src/xz/options.h | 2 ++ 12841 src/xz/private.h | 2 ++ 12842 src/xz/signals.c | 2 ++ 12843 src/xz/signals.h | 2 ++ 12844 src/xz/suffix.c | 2 ++ 12845 src/xz/suffix.h | 2 ++ 12846 src/xz/util.c | 2 ++ 12847 src/xz/util.h | 2 ++ 12848 src/xz/xz_w32res.rc | 2 ++ 12849 src/xzdec/Makefile.am | 3 +-- 12850 src/xzdec/lzmadec_w32res.rc | 2 ++ 12851 src/xzdec/xzdec.c | 2 ++ 12852 src/xzdec/xzdec_w32res.rc | 2 ++ 12853 tests/Makefile.am | 3 +-- 12854 tests/bcj_test.c | 2 ++ 12855 tests/code_coverage.sh | 1 + 12856 tests/create_compress_files.c | 2 ++ 12857 tests/ossfuzz/fuzz_common.h | 2 ++ 12858 tests/ossfuzz/fuzz_decode_alone.c | 2 ++ 12859 tests/ossfuzz/fuzz_decode_stream.c | 2 ++ 12860 tests/ossfuzz/fuzz_encode_stream.c | 2 ++ 12861 tests/test_bcj_exact_size.c | 2 ++ 12862 tests/test_block_header.c | 2 ++ 12863 tests/test_check.c | 2 ++ 12864 tests/test_compress.sh | 1 + 12865 tests/test_compress_generated_abc | 1 + 12866 tests/test_compress_generated_random | 1 + 12867 tests/test_compress_generated_text | 1 + 12868 tests/test_compress_prepared_bcj_sparc | 1 + 12869 tests/test_compress_prepared_bcj_x86 | 1 + 12870 tests/test_files.sh | 1 + 12871 tests/test_filter_flags.c | 2 ++ 12872 tests/test_filter_str.c | 2 ++ 12873 tests/test_hardware.c | 2 ++ 12874 tests/test_index.c | 2 ++ 12875 tests/test_index_hash.c | 2 ++ 12876 tests/test_lzip_decoder.c | 2 ++ 12877 tests/test_memlimit.c | 2 ++ 12878 tests/test_scripts.sh | 1 + 12879 tests/test_stream_flags.c | 2 ++ 12880 tests/test_suffix.sh | 1 + 12881 tests/test_vli.c | 2 ++ 12882 tests/tests.h | 2 ++ 12883 tests/tuktest.h | 2 ++ 12884 windows/build.bash | 3 ++- 12885 290 files changed, 588 insertions(+), 58 deletions(-) 12886 12887commit 23de53421ea258cde6a3c33a038b1e9d08f771d1 12888Author: Lasse Collin <lasse.collin@tukaani.org> 12889Date: 2024-02-12 23:25:54 +0200 12890 12891 liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h. 12892 12893 src/liblzma/api/lzma.h | 10 ++++------ 12894 1 file changed, 4 insertions(+), 6 deletions(-) 12895 12896commit 689e0228baeb95232430e90d628379db89583d71 12897Author: Lasse Collin <lasse.collin@tukaani.org> 12898Date: 2024-02-12 17:09:10 +0200 12899 12900 Change most public domain parts to 0BSD. 12901 12902 Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt 12903 were not touched. 12904 12905 COPYING.0BSD was added. 12906 12907 .github/workflows/ci.yml | 3 - 12908 .github/workflows/windows-ci.yml | 3 - 12909 CMakeLists.txt | 3 - 12910 COPYING | 112 ++++++++++++++----------- 12911 COPYING.0BSD | 11 +++ 12912 Makefile.am | 3 - 12913 PACKAGERS | 11 +-- 12914 autogen.sh | 3 - 12915 build-aux/ci_build.sh | 3 - 12916 build-aux/manconv.sh | 3 - 12917 build-aux/version.sh | 3 - 12918 cmake/remove-ordinals.cmake | 3 - 12919 cmake/tuklib_common.cmake | 3 - 12920 cmake/tuklib_cpucores.cmake | 3 - 12921 cmake/tuklib_integer.cmake | 3 - 12922 cmake/tuklib_large_file_support.cmake | 3 - 12923 cmake/tuklib_mbstr.cmake | 3 - 12924 cmake/tuklib_physmem.cmake | 3 - 12925 cmake/tuklib_progname.cmake | 3 - 12926 configure.ac | 3 - 12927 debug/Makefile.am | 3 - 12928 debug/crc32.c | 3 - 12929 debug/full_flush.c | 3 - 12930 debug/hex2bin.c | 3 - 12931 debug/known_sizes.c | 3 - 12932 debug/memusage.c | 3 - 12933 debug/repeat.c | 3 - 12934 debug/sync_flush.c | 3 - 12935 debug/translation.bash | 3 - 12936 doc/examples/01_compress_easy.c | 3 - 12937 doc/examples/02_decompress.c | 3 - 12938 doc/examples/03_compress_custom.c | 3 - 12939 doc/examples/04_compress_easy_mt.c | 3 - 12940 doc/examples/11_file_info.c | 3 - 12941 doc/examples/Makefile | 3 - 12942 dos/Makefile | 3 - 12943 doxygen/update-doxygen | 3 - 12944 extra/7z2lzma/7z2lzma.bash | 3 - 12945 m4/tuklib_common.m4 | 3 - 12946 m4/tuklib_cpucores.m4 | 3 - 12947 m4/tuklib_integer.m4 | 3 - 12948 m4/tuklib_mbstr.m4 | 3 - 12949 m4/tuklib_physmem.m4 | 3 - 12950 m4/tuklib_progname.m4 | 3 - 12951 po4a/update-po | 3 - 12952 src/Makefile.am | 3 - 12953 src/common/common_w32res.rc | 3 - 12954 src/common/mythread.h | 3 - 12955 src/common/sysdefs.h | 3 - 12956 src/common/tuklib_common.h | 3 - 12957 src/common/tuklib_cpucores.c | 3 - 12958 src/common/tuklib_cpucores.h | 3 - 12959 src/common/tuklib_exit.c | 3 - 12960 src/common/tuklib_exit.h | 3 - 12961 src/common/tuklib_gettext.h | 3 - 12962 src/common/tuklib_integer.h | 3 - 12963 src/common/tuklib_mbstr.h | 3 - 12964 src/common/tuklib_mbstr_fw.c | 3 - 12965 src/common/tuklib_mbstr_width.c | 3 - 12966 src/common/tuklib_open_stdxxx.c | 3 - 12967 src/common/tuklib_open_stdxxx.h | 3 - 12968 src/common/tuklib_physmem.c | 3 - 12969 src/common/tuklib_physmem.h | 3 - 12970 src/common/tuklib_progname.c | 3 - 12971 src/common/tuklib_progname.h | 3 - 12972 src/liblzma/Makefile.am | 3 - 12973 src/liblzma/api/Makefile.am | 3 - 12974 src/liblzma/api/lzma.h | 13 ++- 12975 src/liblzma/api/lzma/base.h | 3 - 12976 src/liblzma/api/lzma/bcj.h | 3 - 12977 src/liblzma/api/lzma/block.h | 3 - 12978 src/liblzma/api/lzma/check.h | 3 - 12979 src/liblzma/api/lzma/container.h | 3 - 12980 src/liblzma/api/lzma/delta.h | 3 - 12981 src/liblzma/api/lzma/filter.h | 3 - 12982 src/liblzma/api/lzma/hardware.h | 3 - 12983 src/liblzma/api/lzma/index.h | 3 - 12984 src/liblzma/api/lzma/index_hash.h | 3 - 12985 src/liblzma/api/lzma/lzma12.h | 3 - 12986 src/liblzma/api/lzma/stream_flags.h | 3 - 12987 src/liblzma/api/lzma/version.h | 3 - 12988 src/liblzma/api/lzma/vli.h | 3 - 12989 src/liblzma/check/Makefile.inc | 3 - 12990 src/liblzma/check/check.c | 3 - 12991 src/liblzma/check/check.h | 3 - 12992 src/liblzma/check/crc32_arm64.h | 3 - 12993 src/liblzma/check/crc32_fast.c | 3 - 12994 src/liblzma/check/crc32_small.c | 3 - 12995 src/liblzma/check/crc32_table.c | 3 - 12996 src/liblzma/check/crc32_tablegen.c | 3 - 12997 src/liblzma/check/crc32_x86.S | 3 - 12998 src/liblzma/check/crc64_fast.c | 3 - 12999 src/liblzma/check/crc64_small.c | 3 - 13000 src/liblzma/check/crc64_table.c | 3 - 13001 src/liblzma/check/crc64_tablegen.c | 3 - 13002 src/liblzma/check/crc64_x86.S | 3 - 13003 src/liblzma/check/crc_common.h | 3 - 13004 src/liblzma/check/crc_x86_clmul.h | 3 - 13005 src/liblzma/check/sha256.c | 3 - 13006 src/liblzma/common/Makefile.inc | 3 - 13007 src/liblzma/common/alone_decoder.c | 3 - 13008 src/liblzma/common/alone_decoder.h | 3 - 13009 src/liblzma/common/alone_encoder.c | 3 - 13010 src/liblzma/common/auto_decoder.c | 3 - 13011 src/liblzma/common/block_buffer_decoder.c | 3 - 13012 src/liblzma/common/block_buffer_encoder.c | 3 - 13013 src/liblzma/common/block_buffer_encoder.h | 3 - 13014 src/liblzma/common/block_decoder.c | 3 - 13015 src/liblzma/common/block_decoder.h | 3 - 13016 src/liblzma/common/block_encoder.c | 3 - 13017 src/liblzma/common/block_encoder.h | 3 - 13018 src/liblzma/common/block_header_decoder.c | 3 - 13019 src/liblzma/common/block_header_encoder.c | 3 - 13020 src/liblzma/common/block_util.c | 3 - 13021 src/liblzma/common/common.c | 3 - 13022 src/liblzma/common/common.h | 3 - 13023 src/liblzma/common/easy_buffer_encoder.c | 3 - 13024 src/liblzma/common/easy_decoder_memusage.c | 3 - 13025 src/liblzma/common/easy_encoder.c | 3 - 13026 src/liblzma/common/easy_encoder_memusage.c | 3 - 13027 src/liblzma/common/easy_preset.c | 3 - 13028 src/liblzma/common/easy_preset.h | 3 - 13029 src/liblzma/common/file_info.c | 3 - 13030 src/liblzma/common/filter_buffer_decoder.c | 3 - 13031 src/liblzma/common/filter_buffer_encoder.c | 3 - 13032 src/liblzma/common/filter_common.c | 3 - 13033 src/liblzma/common/filter_common.h | 3 - 13034 src/liblzma/common/filter_decoder.c | 3 - 13035 src/liblzma/common/filter_decoder.h | 3 - 13036 src/liblzma/common/filter_encoder.c | 3 - 13037 src/liblzma/common/filter_encoder.h | 3 - 13038 src/liblzma/common/filter_flags_decoder.c | 3 - 13039 src/liblzma/common/filter_flags_encoder.c | 3 - 13040 src/liblzma/common/hardware_cputhreads.c | 3 - 13041 src/liblzma/common/hardware_physmem.c | 3 - 13042 src/liblzma/common/index.c | 3 - 13043 src/liblzma/common/index.h | 3 - 13044 src/liblzma/common/index_decoder.c | 3 - 13045 src/liblzma/common/index_decoder.h | 3 - 13046 src/liblzma/common/index_encoder.c | 3 - 13047 src/liblzma/common/index_encoder.h | 3 - 13048 src/liblzma/common/index_hash.c | 3 - 13049 src/liblzma/common/lzip_decoder.c | 3 - 13050 src/liblzma/common/lzip_decoder.h | 3 - 13051 src/liblzma/common/memcmplen.h | 3 - 13052 src/liblzma/common/microlzma_decoder.c | 3 - 13053 src/liblzma/common/microlzma_encoder.c | 3 - 13054 src/liblzma/common/outqueue.c | 3 - 13055 src/liblzma/common/outqueue.h | 3 - 13056 src/liblzma/common/stream_buffer_decoder.c | 3 - 13057 src/liblzma/common/stream_buffer_encoder.c | 3 - 13058 src/liblzma/common/stream_decoder.c | 3 - 13059 src/liblzma/common/stream_decoder.h | 3 - 13060 src/liblzma/common/stream_decoder_mt.c | 3 - 13061 src/liblzma/common/stream_encoder.c | 3 - 13062 src/liblzma/common/stream_encoder_mt.c | 3 - 13063 src/liblzma/common/stream_flags_common.c | 3 - 13064 src/liblzma/common/stream_flags_common.h | 3 - 13065 src/liblzma/common/stream_flags_decoder.c | 3 - 13066 src/liblzma/common/stream_flags_encoder.c | 3 - 13067 src/liblzma/common/string_conversion.c | 3 - 13068 src/liblzma/common/vli_decoder.c | 3 - 13069 src/liblzma/common/vli_encoder.c | 3 - 13070 src/liblzma/common/vli_size.c | 3 - 13071 src/liblzma/delta/Makefile.inc | 3 - 13072 src/liblzma/delta/delta_common.c | 3 - 13073 src/liblzma/delta/delta_common.h | 3 - 13074 src/liblzma/delta/delta_decoder.c | 3 - 13075 src/liblzma/delta/delta_decoder.h | 3 - 13076 src/liblzma/delta/delta_encoder.c | 3 - 13077 src/liblzma/delta/delta_encoder.h | 3 - 13078 src/liblzma/delta/delta_private.h | 3 - 13079 src/liblzma/liblzma.pc.in | 3 - 13080 src/liblzma/liblzma_w32res.rc | 3 - 13081 src/liblzma/lz/Makefile.inc | 3 - 13082 src/liblzma/lz/lz_decoder.c | 3 - 13083 src/liblzma/lz/lz_decoder.h | 3 - 13084 src/liblzma/lz/lz_encoder.c | 3 - 13085 src/liblzma/lz/lz_encoder.h | 3 - 13086 src/liblzma/lz/lz_encoder_hash.h | 3 - 13087 src/liblzma/lz/lz_encoder_mf.c | 3 - 13088 src/liblzma/lzma/Makefile.inc | 3 - 13089 src/liblzma/lzma/fastpos.h | 3 - 13090 src/liblzma/lzma/fastpos_tablegen.c | 3 - 13091 src/liblzma/lzma/lzma2_decoder.c | 3 - 13092 src/liblzma/lzma/lzma2_decoder.h | 3 - 13093 src/liblzma/lzma/lzma2_encoder.c | 3 - 13094 src/liblzma/lzma/lzma2_encoder.h | 3 - 13095 src/liblzma/lzma/lzma_common.h | 3 - 13096 src/liblzma/lzma/lzma_decoder.c | 3 - 13097 src/liblzma/lzma/lzma_decoder.h | 3 - 13098 src/liblzma/lzma/lzma_encoder.c | 3 - 13099 src/liblzma/lzma/lzma_encoder.h | 3 - 13100 src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 - 13101 src/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 - 13102 src/liblzma/lzma/lzma_encoder_presets.c | 3 - 13103 src/liblzma/lzma/lzma_encoder_private.h | 3 - 13104 src/liblzma/rangecoder/Makefile.inc | 3 - 13105 src/liblzma/rangecoder/price.h | 3 - 13106 src/liblzma/rangecoder/price_tablegen.c | 3 - 13107 src/liblzma/rangecoder/range_common.h | 3 - 13108 src/liblzma/rangecoder/range_decoder.h | 3 - 13109 src/liblzma/rangecoder/range_encoder.h | 3 - 13110 src/liblzma/simple/Makefile.inc | 3 - 13111 src/liblzma/simple/arm.c | 3 - 13112 src/liblzma/simple/arm64.c | 3 - 13113 src/liblzma/simple/armthumb.c | 3 - 13114 src/liblzma/simple/ia64.c | 3 - 13115 src/liblzma/simple/powerpc.c | 3 - 13116 src/liblzma/simple/riscv.c | 3 - 13117 src/liblzma/simple/simple_coder.c | 3 - 13118 src/liblzma/simple/simple_coder.h | 3 - 13119 src/liblzma/simple/simple_decoder.c | 3 - 13120 src/liblzma/simple/simple_decoder.h | 3 - 13121 src/liblzma/simple/simple_encoder.c | 3 - 13122 src/liblzma/simple/simple_encoder.h | 3 - 13123 src/liblzma/simple/simple_private.h | 3 - 13124 src/liblzma/simple/sparc.c | 3 - 13125 src/liblzma/simple/x86.c | 3 - 13126 src/liblzma/validate_map.sh | 3 - 13127 src/lzmainfo/Makefile.am | 3 - 13128 src/lzmainfo/lzmainfo.1 | 4 +- 13129 src/lzmainfo/lzmainfo.c | 3 - 13130 src/lzmainfo/lzmainfo_w32res.rc | 3 - 13131 src/scripts/Makefile.am | 3 - 13132 src/scripts/xzless.1 | 4 +- 13133 src/xz/Makefile.am | 3 - 13134 src/xz/args.c | 3 - 13135 src/xz/args.h | 3 - 13136 src/xz/coder.c | 3 - 13137 src/xz/coder.h | 3 - 13138 src/xz/file_io.c | 3 - 13139 src/xz/file_io.h | 3 - 13140 src/xz/hardware.c | 3 - 13141 src/xz/hardware.h | 3 - 13142 src/xz/list.c | 3 - 13143 src/xz/list.h | 3 - 13144 src/xz/main.c | 3 - 13145 src/xz/main.h | 3 - 13146 src/xz/message.c | 3 - 13147 src/xz/message.h | 3 - 13148 src/xz/mytime.c | 3 - 13149 src/xz/mytime.h | 3 - 13150 src/xz/options.c | 3 - 13151 src/xz/options.h | 3 - 13152 src/xz/private.h | 3 - 13153 src/xz/signals.c | 3 - 13154 src/xz/signals.h | 3 - 13155 src/xz/suffix.c | 3 - 13156 src/xz/suffix.h | 3 - 13157 src/xz/util.c | 3 - 13158 src/xz/util.h | 3 - 13159 src/xz/xz.1 | 4 +- 13160 src/xz/xz_w32res.rc | 3 - 13161 src/xzdec/Makefile.am | 3 - 13162 src/xzdec/lzmadec_w32res.rc | 3 - 13163 src/xzdec/xzdec.1 | 4 +- 13164 src/xzdec/xzdec.c | 3 - 13165 src/xzdec/xzdec_w32res.rc | 3 - 13166 tests/Makefile.am | 3 - 13167 tests/bcj_test.c | 3 - 13168 tests/code_coverage.sh | 3 - 13169 tests/create_compress_files.c | 3 - 13170 tests/files/README | 3 +- 13171 tests/ossfuzz/fuzz_common.h | 3 - 13172 tests/ossfuzz/fuzz_decode_alone.c | 3 - 13173 tests/ossfuzz/fuzz_decode_stream.c | 3 - 13174 tests/ossfuzz/fuzz_encode_stream.c | 3 - 13175 tests/test_bcj_exact_size.c | 3 - 13176 tests/test_block_header.c | 3 - 13177 tests/test_check.c | 3 - 13178 tests/test_compress.sh | 3 - 13179 tests/test_files.sh | 3 - 13180 tests/test_filter_flags.c | 3 - 13181 tests/test_filter_str.c | 3 - 13182 tests/test_hardware.c | 3 - 13183 tests/test_index.c | 3 - 13184 tests/test_index_hash.c | 3 - 13185 tests/test_lzip_decoder.c | 3 - 13186 tests/test_memlimit.c | 3 - 13187 tests/test_scripts.sh | 3 - 13188 tests/test_stream_flags.c | 3 - 13189 tests/test_suffix.sh | 3 - 13190 tests/test_vli.c | 3 - 13191 tests/tests.h | 3 - 13192 tests/tuktest.h | 3 - 13193 windows/README-Windows.txt | 11 +-- 13194 windows/build.bash | 3 - 13195 288 files changed, 100 insertions(+), 911 deletions(-) 13196 13197commit 76946dc4336c831fe2cc26696a035d807dd3cf13 13198Author: Lasse Collin <lasse.collin@tukaani.org> 13199Date: 2024-02-09 17:20:31 +0200 13200 13201 Fix SHA-256 authors. 13202 13203 The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741 13204 in 2007 had a comment in sha256.c that the code is based on 13205 Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c 13206 and the AUTHORS file was updated with information that the 13207 code had come from Crypto++ but via 7-Zip. I know I had viewed 13208 7-Zip's SHA-256 code but back then the C code has been identical 13209 enough with Crypto++, so I don't why I thought the author info 13210 would need that extra step via 7-Zip for this single file. 13211 13212 Another error is that I had mixed sha.* and shacal2.* files 13213 when checking for author info in Crypto++. The shacal2.* files 13214 aren't related to liblzma's sha256.c and thus Kevin Springle's 13215 code in Crypto++ isn't either. 13216 13217 AUTHORS | 6 ++---- 13218 src/liblzma/check/sha256.c | 14 ++++---------- 13219 2 files changed, 6 insertions(+), 14 deletions(-) 13220 13221commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851 13222Author: Lasse Collin <lasse.collin@tukaani.org> 13223Date: 2024-02-09 17:20:31 +0200 13224 13225 Remove macosx/build.sh. 13226 13227 It was last updated in 2013. 13228 13229 Makefile.am | 1 - 13230 macosx/build.sh | 113 -------------------------------------------------------- 13231 2 files changed, 114 deletions(-) 13232 13233commit eac2c3c67f9113a225fb6667df862edd30366931 13234Author: Lasse Collin <lasse.collin@tukaani.org> 13235Date: 2024-02-09 17:20:31 +0200 13236 13237 Doc: Remove doc/examples_old. 13238 13239 It was good to keep these around in parallel with the newer examples 13240 but I think it's OK to remove the old ones at this point. 13241 13242 Makefile.am | 5 -- 13243 doc/examples_old/xz_pipe_comp.c | 127 -------------------------------------- 13244 doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------ 13245 3 files changed, 255 deletions(-) 13246 13247commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 13248Author: Jia Tan <jiat0218@gmail.com> 13249Date: 2024-02-13 22:38:58 +0800 13250 13251 Tests: Add RISC-V filter support in a few places. 13252 13253 tests/test_filter_flags.c | 6 ++++++ 13254 tests/test_filter_str.c | 6 ++++++ 13255 2 files changed, 12 insertions(+) 13256 13257commit 45663443eb2b377e6171529380fee312f1adcdf4 13258Author: Jia Tan <jiat0218@gmail.com> 13259Date: 2024-02-13 22:37:07 +0800 13260 13261 liblzma: Fix build error if only RISC-V BCJ filter is enabled. 13262 13263 If any other BCJ filter was enabled for encoding or decoding, then this 13264 was not a problem. 13265 13266 src/liblzma/common/string_conversion.c | 4 +++- 13267 1 file changed, 3 insertions(+), 1 deletion(-) 13268 13269commit 2f15597d677bc35743c777d4cf3bfa698b478681 13270Author: Jia Tan <jiat0218@gmail.com> 13271Date: 2024-02-13 22:56:24 +0800 13272 13273 Translations: Update the Korean translation. 13274 13275 po/ko.po | 526 ++++++++++++++++++++++++++++++++++----------------------------- 13276 1 file changed, 284 insertions(+), 242 deletions(-) 13277 13278commit df873143ad1615c6d6aaa1bf8808b1676091dfe3 13279Author: Jia Tan <jiat0218@gmail.com> 13280Date: 2024-02-13 01:55:53 +0800 13281 13282 Translations: Update the Korean man page translations. 13283 13284 po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++-------------------------- 13285 1 file changed, 770 insertions(+), 605 deletions(-) 13286 13287commit b3f415eddb150341865a1af47959c3baba076b33 13288Author: Jia Tan <jiat0218@gmail.com> 13289Date: 2024-02-13 01:53:33 +0800 13290 13291 Translations: Update the Chinese (simplified) translation. 13292 13293 po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++---------------------- 13294 1 file changed, 268 insertions(+), 156 deletions(-) 13295 13296commit 9860d418d296eb3c721e5384fb367c0499b579c8 13297Author: Lasse Collin <lasse.collin@tukaani.org> 13298Date: 2024-02-09 23:21:01 +0200 13299 13300 xzless: Use ||- in LESSOPEN with with "less" 451 and newer. 13301 13302 src/scripts/xzless.in | 9 ++++++++- 13303 1 file changed, 8 insertions(+), 1 deletion(-) 13304 13305commit fd0692b0525e6c26b496492be9e2c865cab734f8 13306Author: Lasse Collin <lasse.collin@tukaani.org> 13307Date: 2024-02-09 23:00:05 +0200 13308 13309 xzless: Use --show-preproc-errors with "less" 632 and newer. 13310 13311 This makes "less" show a warning if a decompression error occurred. 13312 13313 src/scripts/xzless.in | 11 +++++++++-- 13314 1 file changed, 9 insertions(+), 2 deletions(-) 13315 13316commit adb073da76a920b5a81e6b32254f4ddb054dc57a 13317Author: Jia Tan <jiat0218@gmail.com> 13318Date: 2024-02-09 23:59:54 +0800 13319 13320 liblzma: Fix typo discovered by codespell. 13321 13322 src/liblzma/check/crc32_arm64.h | 2 +- 13323 1 file changed, 1 insertion(+), 1 deletion(-) 13324 13325commit 55d9fc883d221cbace951a370f1fb144698f8c2e 13326Author: Jia Tan <jiat0218@gmail.com> 13327Date: 2024-02-09 20:01:06 +0800 13328 13329 Translations: Update the Swedish translation. 13330 13331 po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++------------------------- 13332 1 file changed, 254 insertions(+), 166 deletions(-) 13333 13334commit 55ba4a1ea321499c805eedfa811ffde690bae311 13335Author: Jia Tan <jiat0218@gmail.com> 13336Date: 2024-02-08 20:09:04 +0800 13337 13338 Translations: Update the Spanish translation. 13339 13340 po/es.po | 22 +++++++++++----------- 13341 1 file changed, 11 insertions(+), 11 deletions(-) 13342 13343commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae 13344Author: Jia Tan <jiat0218@gmail.com> 13345Date: 2024-02-07 21:34:35 +0800 13346 13347 Translations: Update the Spanish translation. 13348 13349 po/es.po | 419 ++++++++++++++++++++++++++++++++++++++------------------------- 13350 1 file changed, 253 insertions(+), 166 deletions(-) 13351 13352commit f4af2036bc625739d6d33d9e1fede583a25c3828 13353Author: Jia Tan <jiat0218@gmail.com> 13354Date: 2024-02-07 21:28:32 +0800 13355 13356 Translations: Update the Polish translation. 13357 13358 po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++------------------------- 13359 1 file changed, 249 insertions(+), 162 deletions(-) 13360 13361commit e5e93bb816043c559cddf03a3b7ba13bec353ee4 13362Author: Jia Tan <jiat0218@gmail.com> 13363Date: 2024-02-07 19:40:12 +0800 13364 13365 Translations: Update the German translation. 13366 13367 po/de.po | 396 ++++++++++++++++++++++++++++++++++++++------------------------- 13368 1 file changed, 242 insertions(+), 154 deletions(-) 13369 13370commit 28f18ff8e26902762fb007c13be235b4ac1ac071 13371Author: Jia Tan <jiat0218@gmail.com> 13372Date: 2024-02-07 19:27:25 +0800 13373 13374 Translations: Update the German man page translations. 13375 13376 po4a/de.po | 1353 +++++++++++++++++++++++++++++++++--------------------------- 13377 1 file changed, 752 insertions(+), 601 deletions(-) 13378 13379commit cabfbc7947da05aa5dfe39bec9759e076f940e3c 13380Author: Jia Tan <jiat0218@gmail.com> 13381Date: 2024-02-06 23:44:06 +0800 13382 13383 Translations: Update the Romanian translation. 13384 13385 po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++------------------------- 13386 1 file changed, 252 insertions(+), 164 deletions(-) 13387 13388commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e 13389Author: Jia Tan <jiat0218@gmail.com> 13390Date: 2024-02-06 23:45:02 +0800 13391 13392 Translations: Update the Romanian man page translations. 13393 13394 po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++--------------------------- 13395 1 file changed, 966 insertions(+), 793 deletions(-) 13396 13397commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96 13398Author: Jia Tan <jiat0218@gmail.com> 13399Date: 2024-02-07 20:56:57 +0800 13400 13401 Translations: Update the Ukrainian translation. 13402 13403 po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------- 13404 1 file changed, 242 insertions(+), 155 deletions(-) 13405 13406commit b3523250e9eef10b017473754c1e1c9e31f10374 13407Author: Jia Tan <jiat0218@gmail.com> 13408Date: 2024-02-06 23:30:03 +0800 13409 13410 Translations: Update the Ukrainian man page translations. 13411 13412 po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++-------------------------- 13413 1 file changed, 764 insertions(+), 599 deletions(-) 13414 13415commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d 13416Author: Jia Tan <jiat0218@gmail.com> 13417Date: 2024-02-02 01:39:28 +0800 13418 13419 Update AUTHORS. 13420 13421 AUTHORS | 3 ++- 13422 1 file changed, 2 insertions(+), 1 deletion(-) 13423 13424commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f 13425Author: Jia Tan <jiat0218@gmail.com> 13426Date: 2024-02-02 01:38:51 +0800 13427 13428 liblzma: Update Authors list in crc32_arm64.h. 13429 13430 src/liblzma/check/crc32_arm64.h | 1 + 13431 1 file changed, 1 insertion(+) 13432 13433commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0 13434Author: Jia Tan <jiat0218@gmail.com> 13435Date: 2024-02-01 16:07:03 +0800 13436 13437 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table. 13438 13439 This was split from the prior commit so it could be easily applied to 13440 the 5.4 branch. 13441 13442 Closes: https://github.com/tukaani-project/xz/pull/77 13443 13444 src/liblzma/check/crc32_table.c | 4 ++-- 13445 1 file changed, 2 insertions(+), 2 deletions(-) 13446 13447commit ca9015f4dead2c97b48f5a6933631b0a448b65b9 13448Author: Jia Tan <jiat0218@gmail.com> 13449Date: 2024-02-01 16:06:29 +0800 13450 13451 liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table. 13452 13453 If liblzma is configured with --disable-clmul-crc 13454 CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the 13455 generic version must be used but the CRC tables were not included. 13456 13457 src/liblzma/check/crc64_table.c | 4 ++-- 13458 1 file changed, 2 insertions(+), 2 deletions(-) 13459 13460commit 2f1552a91c825e87013925e1a67a0930e7aef592 13461Author: Jia Tan <jiat0218@gmail.com> 13462Date: 2024-01-23 18:02:13 +0800 13463 13464 liblzma: Only use ifunc in crcXX_fast.c if its needed. 13465 13466 The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC. 13467 With ARM64, ifunc is incompatible because it requires non-inline 13468 function calls for runtime detection. 13469 13470 src/liblzma/check/crc32_fast.c | 6 +++--- 13471 src/liblzma/check/crc64_fast.c | 6 +++--- 13472 2 files changed, 6 insertions(+), 6 deletions(-) 13473 13474commit 30a25f3742287697bc57a1bef86c19ecf5129322 13475Author: Jia Tan <jiat0218@gmail.com> 13476Date: 2024-01-22 22:08:45 +0800 13477 13478 Docs: Add --disable-arm64-crc32 description to INSTALL. 13479 13480 INSTALL | 12 +++++++++++- 13481 1 file changed, 11 insertions(+), 1 deletion(-) 13482 13483commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad 13484Author: Jia Tan <jiat0218@gmail.com> 13485Date: 2024-01-22 21:36:09 +0800 13486 13487 liblzma: Omit CRC tables when not needed with ARM64 optimizations. 13488 13489 This is similar to the existing x86-64 CLMUL conditions to omit the 13490 tables. They were slightly refactored to improve readability. 13491 13492 src/liblzma/check/crc32_table.c | 18 +++++++++++++++--- 13493 src/liblzma/check/crc64_table.c | 7 ++++++- 13494 src/liblzma/check/crc_common.h | 5 ++++- 13495 3 files changed, 25 insertions(+), 5 deletions(-) 13496 13497commit 761f5b69a4c778c8bcb09279b845b07c28790575 13498Author: Jia Tan <jiat0218@gmail.com> 13499Date: 2024-01-22 20:54:56 +0800 13500 13501 liblzma: Rename crc32_aarch64.h to crc32_arm64.h. 13502 13503 Even though the proper name for the architecture is aarch64, this 13504 project uses ARM64 throughout. So the rename is for consistency. 13505 13506 Additionally, crc32_arm64.h was slightly refactored for the following 13507 changes: 13508 13509 * Added MSVC, FreeBSD, and macOS support in 13510 is_arch_extension_supported(). 13511 13512 * crc32_arch_optimized() now checks the size when aligning the 13513 buffer. 13514 13515 * crc32_arch_optimized() loop conditions were slightly modified to 13516 avoid both decrementing the size and incrementing the buffer 13517 pointer. 13518 13519 * Use the intrinsic wrappers defined in <arm_acle.h> because GCC and 13520 Clang name them differently. 13521 13522 * Minor spacing and comment changes. 13523 13524 CMakeLists.txt | 2 +- 13525 src/liblzma/check/Makefile.inc | 2 +- 13526 src/liblzma/check/crc32_aarch64.h | 109 ---------------------------------- 13527 src/liblzma/check/crc32_arm64.h | 119 ++++++++++++++++++++++++++++++++++++++ 13528 src/liblzma/check/crc32_fast.c | 3 +- 13529 src/liblzma/check/crc64_fast.c | 3 - 13530 6 files changed, 122 insertions(+), 116 deletions(-) 13531 13532commit 455a08609caa3223066a717fb01bfa42c5dba47d 13533Author: Jia Tan <jiat0218@gmail.com> 13534Date: 2024-01-22 20:49:30 +0800 13535 13536 liblzma: Refactor crc_common.h. 13537 13538 The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since 13539 the ARM64 optimizations will be different between CRC32 and CRC64. 13540 13541 For the same reason, CRC_ARCH_OPTIMIZED is split into 13542 CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED. 13543 13544 ifunc will only be used with x86-64 CLMUL because the runtime detection 13545 methods needed with ARM64 are not compatible with ifunc. 13546 13547 src/liblzma/check/crc32_fast.c | 8 +-- 13548 src/liblzma/check/crc64_fast.c | 8 +-- 13549 src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++------------- 13550 3 files changed, 82 insertions(+), 42 deletions(-) 13551 13552commit 61908e816049af7a9f43ea804a57ee8570e2e644 13553Author: Jia Tan <jiat0218@gmail.com> 13554Date: 2024-01-22 00:42:28 +0800 13555 13556 CMake: Add support for ARM64 CRC32 instruction detection. 13557 13558 CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 13559 1 file changed, 50 insertions(+) 13560 13561commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732 13562Author: Jia Tan <jiat0218@gmail.com> 13563Date: 2024-01-22 00:36:47 +0800 13564 13565 Build: Add support for ARM64 CRC32 instruction detection. 13566 13567 This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by 13568 default) for using the ARM64 CRC32 instruction. This can be disabled if 13569 one knows the binary will never need to run on an ARM64 machine 13570 with this instruction extension. 13571 13572 configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 13573 1 file changed, 52 insertions(+) 13574 13575commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f 13576Author: Chenxi Mao <chenxi.mao2013@gmail.com> 13577Date: 2024-01-09 17:23:11 +0800 13578 13579 Speed up CRC32 calculation on ARM64 13580 13581 The CRC32 instructions in ARM64 can calculate the CRC32 result 13582 for 8 bytes in a single operation, making the use of ARM64 13583 instructions much faster compared to the general CRC32 algorithm. 13584 13585 Optimized CRC32 will be enabled if ARM64 has CRC extension 13586 running on Linux. 13587 13588 Signed-off-by: Chenxi Mao <chenxi.mao2013@gmail.com> 13589 13590 CMakeLists.txt | 1 + 13591 src/liblzma/check/Makefile.inc | 3 +- 13592 src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++ 13593 src/liblzma/check/crc32_fast.c | 5 +- 13594 src/liblzma/check/crc64_fast.c | 5 +- 13595 src/liblzma/check/crc_common.h | 16 +++--- 13596 6 files changed, 130 insertions(+), 9 deletions(-) 13597 13598commit b43c3e48bf6097095eef36d44cdbec811074940a 13599Author: Jia Tan <jiat0218@gmail.com> 13600Date: 2024-01-26 19:05:51 +0800 13601 13602 Bump version number for 5.5.1alpha. 13603 13604 src/liblzma/api/lzma/version.h | 2 +- 13605 src/liblzma/liblzma_generic.map | 2 +- 13606 src/liblzma/liblzma_linux.map | 2 +- 13607 3 files changed, 3 insertions(+), 3 deletions(-) 13608 13609commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f 13610Author: Jia Tan <jiat0218@gmail.com> 13611Date: 2024-01-26 19:00:52 +0800 13612 13613 Add NEWS for 5.5.1alpha 13614 13615 NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13616 1 file changed, 80 insertions(+) 13617 13618commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df 13619Author: Jia Tan <jiat0218@gmail.com> 13620Date: 2024-01-26 18:54:24 +0800 13621 13622 Add NEWS for 5.4.6. 13623 13624 NEWS | 22 ++++++++++++++++++++++ 13625 1 file changed, 22 insertions(+) 13626 13627commit 93de7e751d17731315a899264f2a7239d7d2d316 13628Author: Lasse Collin <lasse.collin@tukaani.org> 13629Date: 2024-01-24 20:00:57 +0200 13630 13631 Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen". 13632 13633 The footer isn't a complete HTML file so having it in the doxygen 13634 directory is a tiny bit clearer. 13635 13636 Makefile.am | 2 +- 13637 doc/{logo => }/xz-logo.png | Bin 13638 doxygen/Doxyfile | 4 ++-- 13639 doc/logo/copyright.html => doxygen/footer.html | 0 13640 4 files changed, 3 insertions(+), 3 deletions(-) 13641 13642commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9 13643Author: Jia Tan <jiat0218@gmail.com> 13644Date: 2024-01-09 17:05:01 +0800 13645 13646 README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1. 13647 13648 The Overall documentation section (1.1) table spacing had to be adjusted 13649 since the filename was very long. 13650 13651 README | 38 ++++++++++++++++++++------------------ 13652 1 file changed, 20 insertions(+), 18 deletions(-) 13653 13654commit e280470040b27c5e58d78b25b9e2bb71fc6c3882 13655Author: Jia Tan <jiat0218@gmail.com> 13656Date: 2024-01-09 16:56:16 +0800 13657 13658 Build: Add the logo and license to the release. 13659 13660 Makefile.am | 2 ++ 13661 1 file changed, 2 insertions(+) 13662 13663commit b1ee6cf259bb49ce91abe9f622294524e37edf4c 13664Author: Jia Tan <jiat0218@gmail.com> 13665Date: 2024-01-09 16:44:42 +0800 13666 13667 COPYING: Add the license for the XZ logo. 13668 13669 COPYING | 5 + 13670 COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++ 13671 2 files changed, 432 insertions(+) 13672 13673commit 31293ae7074802cc7286089a89c7b552d930c97f 13674Author: Jia Tan <jiat0218@gmail.com> 13675Date: 2024-01-09 16:40:56 +0800 13676 13677 Doxygen: Added the XZ logo and copyright information. 13678 13679 The PROJECT_LOGO field is now used to include the XZ logo. The footer 13680 of each page now lists the copyright information instead of the default 13681 footer. The license is also copied to statisfy the copyright and so the 13682 link in the documentation can be local. 13683 13684 doc/logo/copyright.html | 11 +++++++++++ 13685 doc/logo/xz-logo.png | Bin 0 -> 6771 bytes 13686 doxygen/Doxyfile | 6 +++--- 13687 3 files changed, 14 insertions(+), 3 deletions(-) 13688 13689commit 6daa4d0ea46a8441f21f609149f3633158bf4704 13690Author: Lasse Collin <lasse.collin@tukaani.org> 13691Date: 2024-01-23 18:29:28 +0200 13692 13693 xz: Use threaded mode by defaut (as if --threads=0 was used). 13694 13695 This hopefully does more good than bad: 13696 13697 + It's faster by default. 13698 13699 + Only the threaded compressor creates files that 13700 can be decompressed in threaded mode. 13701 13702 - Compression ratio is worse, usually not too much though. 13703 When it matters, -T1 must be used. 13704 13705 - Memory usage increases. 13706 13707 - Scripts that assume single-threaded mode but don't use -T1 will 13708 possibly use too much resources, for example, if they run 13709 multiple xz processes in parallel to compress multiple files. 13710 13711 - Output from single-threaded and multi-threaded compressors 13712 differ but such changes could happen for other reasons too 13713 (they just haven't happened since 5.0.0). 13714 13715 src/xz/hardware.c | 6 +++++- 13716 src/xz/message.c | 4 ++-- 13717 src/xz/xz.1 | 9 +++++++++ 13718 3 files changed, 16 insertions(+), 3 deletions(-) 13719 13720commit a2dd2dc8e5307a7280bb99868bc478560facba2c 13721Author: Jia Tan <jiat0218@gmail.com> 13722Date: 2024-01-23 23:52:49 +0800 13723 13724 CI: Use RISC-V filter when building with BCJ support. 13725 13726 build-aux/ci_build.sh | 4 ++-- 13727 1 file changed, 2 insertions(+), 2 deletions(-) 13728 13729commit 3060e1070b2421b26c0e17794c1307ec5622f11d 13730Author: Jia Tan <jiat0218@gmail.com> 13731Date: 2024-01-23 23:52:14 +0800 13732 13733 Tests: Use smaller dictionary size in RISC-V test files. 13734 13735 tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes 13736 tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes 13737 2 files changed, 0 insertions(+), 0 deletions(-) 13738 13739commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3 13740Author: Jia Tan <jiat0218@gmail.com> 13741Date: 2024-01-23 23:50:57 +0800 13742 13743 Tests: Skip RISC-V test files if decoder was not built. 13744 13745 tests/test_files.sh | 5 +++++ 13746 1 file changed, 5 insertions(+) 13747 13748commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e 13749Author: Lasse Collin <lasse.collin@tukaani.org> 13750Date: 2024-01-23 16:11:54 +0200 13751 13752 xz: Man page: Add more examples of LZMA2 options with BCJ filters. 13753 13754 src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++------- 13755 1 file changed, 31 insertions(+), 7 deletions(-) 13756 13757commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d 13758Author: Lasse Collin <lasse.collin@tukaani.org> 13759Date: 2024-01-23 00:09:48 +0200 13760 13761 liblzma: RISC-V filter: Use byte-by-byte access. 13762 13763 Not all RISC-V processors support fast unaligned access so 13764 it's better to read only one byte in the main loop. This can 13765 be faster even on x86-64 when compared to reading 32 bits at 13766 a time as half the time the address is only 16-bit aligned. 13767 13768 The downside is larger code size on archs that do support 13769 fast unaligned access. 13770 13771 src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------ 13772 1 file changed, 84 insertions(+), 30 deletions(-) 13773 13774commit db5eb5f563e8baa8d912ecf576f53391ff861596 13775Author: Jia Tan <jiat0218@gmail.com> 13776Date: 2024-01-22 23:33:39 +0800 13777 13778 xz: Update xz -lvv for RISC-V filter. 13779 13780 Version 5.6.0 will be shown, even though upcoming alphas and betas 13781 will be able to support this filter. 5.6.0 looks nicer in the output and 13782 people shouldn't be encouraged to use an unstable version in production 13783 in any way. 13784 13785 src/xz/list.c | 10 ++++++++++ 13786 1 file changed, 10 insertions(+) 13787 13788commit e2870db5be1503e6a489fc3d47daf950d6f62723 13789Author: Jia Tan <jiat0218@gmail.com> 13790Date: 2024-01-22 23:33:39 +0800 13791 13792 Tests: Add two RISC-V Filter test files. 13793 13794 These test files achieve 100% code coverage in 13795 src/liblzma/simple/riscv.c. They contain all of the instructions that 13796 should be filtered and a few cases that should not. 13797 13798 tests/files/README | 8 ++++++++ 13799 tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes 13800 tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes 13801 3 files changed, 8 insertions(+) 13802 13803commit b26a89869315ece2f6d9d10d32d45f672550f245 13804Author: Jia Tan <jiat0218@gmail.com> 13805Date: 2024-01-22 23:33:39 +0800 13806 13807 xz: Update message in --long-help for RISC-V Filter. 13808 13809 src/xz/message.c | 1 + 13810 1 file changed, 1 insertion(+) 13811 13812commit 283f778908873eca61388029fc418fa800c9d7d7 13813Author: Jia Tan <jiat0218@gmail.com> 13814Date: 2024-01-22 23:33:39 +0800 13815 13816 xz: Update the man page for the RISC-V Filter. 13817 13818 A special note was added to suggest using four-byte alignment when the 13819 compressed instruction extension is not present in a RISC-V binary. 13820 13821 src/xz/xz.1 | 3 ++- 13822 1 file changed, 2 insertions(+), 1 deletion(-) 13823 13824commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28 13825Author: Jia Tan <jiat0218@gmail.com> 13826Date: 2024-01-22 23:33:39 +0800 13827 13828 Tests: Add RISC-V Filter test in test_compress.sh. 13829 13830 tests/test_compress.sh | 1 + 13831 1 file changed, 1 insertion(+) 13832 13833commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4 13834Author: Jia Tan <jiat0218@gmail.com> 13835Date: 2024-01-22 23:33:39 +0800 13836 13837 liblzma: Update string_conversion.c to support RISC-V Filter. 13838 13839 src/liblzma/common/string_conversion.c | 5 +++++ 13840 1 file changed, 5 insertions(+) 13841 13842commit 34372a5adbe5a7f6bf29498410ba3a463a720966 13843Author: Jia Tan <jiat0218@gmail.com> 13844Date: 2024-01-22 23:33:39 +0800 13845 13846 CMake: Support RISC-V BCJ Filter for encoding and decoding. 13847 13848 CMakeLists.txt | 1 + 13849 1 file changed, 1 insertion(+) 13850 13851commit 440a2eccb082dc13400c09e22308a58fef85146c 13852Author: Jia Tan <jiat0218@gmail.com> 13853Date: 2024-01-22 23:33:39 +0800 13854 13855 liblzma: Add RISC-V BCJ filter. 13856 13857 The new Filter ID is 0x0B. 13858 13859 Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter, 13860 the xz CLI updates, and the Autotools build system modifications. 13861 13862 Thanks to Igor Pavlov for his many contributions to the design of 13863 the filter. 13864 13865 configure.ac | 4 +- 13866 src/liblzma/api/lzma/bcj.h | 5 + 13867 src/liblzma/common/filter_common.c | 9 + 13868 src/liblzma/common/filter_decoder.c | 8 + 13869 src/liblzma/common/filter_encoder.c | 10 + 13870 src/liblzma/simple/Makefile.inc | 4 + 13871 src/liblzma/simple/riscv.c | 688 ++++++++++++++++++++++++++++++++++++ 13872 src/liblzma/simple/simple_coder.h | 9 + 13873 src/xz/args.c | 7 + 13874 9 files changed, 742 insertions(+), 2 deletions(-) 13875 13876commit 5540f4329bbdb4deb4850d4af48b18ad074bba19 13877Author: Jia Tan <jiat0218@gmail.com> 13878Date: 2024-01-19 23:08:14 +0800 13879 13880 Docs: Update .xz file format specification to 1.2.0. 13881 13882 The new RISC-V filter was added to the specification, in addition to 13883 updating the specification URL. 13884 13885 doc/xz-file-format.txt | 29 +++++++++++++++++------------ 13886 1 file changed, 17 insertions(+), 12 deletions(-) 13887 13888commit 22d86192f8cf00902a1f90ee2a83ca600794459b 13889Author: Jia Tan <jiat0218@gmail.com> 13890Date: 2024-01-19 23:08:14 +0800 13891 13892 xz: Update website URLs in the man pages. 13893 13894 src/xz/xz.1 | 6 +++--- 13895 src/xzdec/xzdec.1 | 4 ++-- 13896 2 files changed, 5 insertions(+), 5 deletions(-) 13897 13898commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d 13899Author: Jia Tan <jiat0218@gmail.com> 13900Date: 2024-01-19 23:08:14 +0800 13901 13902 liblzma: Update website URL. 13903 13904 dos/config.h | 2 +- 13905 src/liblzma/api/lzma.h | 6 +++--- 13906 2 files changed, 4 insertions(+), 4 deletions(-) 13907 13908commit fce4758018f3a3589236f3fe7999fd9dd08c77e9 13909Author: Jia Tan <jiat0218@gmail.com> 13910Date: 2024-01-19 23:08:14 +0800 13911 13912 Docs: Update website URLs. 13913 13914 .github/SECURITY.md | 2 +- 13915 COPYING | 3 ++- 13916 README | 4 ++-- 13917 doc/faq.txt | 2 +- 13918 doc/lzma-file-format.txt | 18 +++++++++--------- 13919 windows/README-Windows.txt | 3 ++- 13920 6 files changed, 17 insertions(+), 15 deletions(-) 13921 13922commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5 13923Author: Jia Tan <jiat0218@gmail.com> 13924Date: 2024-01-19 23:08:14 +0800 13925 13926 Build: Update website URL. 13927 13928 CMakeLists.txt | 2 +- 13929 configure.ac | 2 +- 13930 2 files changed, 2 insertions(+), 2 deletions(-) 13931 13932commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b 13933Author: Lasse Collin <lasse.collin@tukaani.org> 13934Date: 2024-01-11 15:01:50 +0200 13935 13936 liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros. 13937 13938 src/liblzma/check/crc_x86_clmul.h | 6 ++++++ 13939 1 file changed, 6 insertions(+) 13940 13941commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882 13942Author: Lasse Collin <lasse.collin@tukaani.org> 13943Date: 2024-01-11 15:22:36 +0200 13944 13945 liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. 13946 13947 Now crc_simd_body() in crc_x86_clmul.h is only called once 13948 in a translation unit, we no longer need to be so cautious 13949 about ensuring the always-inline behavior. 13950 13951 src/liblzma/check/crc_common.h | 20 -------------------- 13952 src/liblzma/check/crc_x86_clmul.h | 2 +- 13953 2 files changed, 1 insertion(+), 21 deletions(-) 13954 13955commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20 13956Author: Lasse Collin <lasse.collin@tukaani.org> 13957Date: 2024-01-11 14:39:46 +0200 13958 13959 liblzma: CRC: Update CLMUL comments to more generic wording. 13960 13961 src/liblzma/check/crc32_fast.c | 16 ++++++++-------- 13962 src/liblzma/check/crc64_fast.c | 10 +++++----- 13963 2 files changed, 13 insertions(+), 13 deletions(-) 13964 13965commit 66f080e8016129576536482ac377e2ecac7a2b90 13966Author: Lasse Collin <lasse.collin@tukaani.org> 13967Date: 2024-01-10 18:23:31 +0200 13968 13969 liblzma: Rename arch-specific CRC functions and macros. 13970 13971 CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL. 13972 CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used. 13973 Currently the x86 CLMUL implementations are the only arch-optimized 13974 versions, and these also use the CRC_x86_CLMUL macro to tell when 13975 crc_x86_clmul.h needs to be included. 13976 13977 is_clmul_supported() was renamed to is_arch_extension_supported(). 13978 crc32_clmul() and crc64_clmul() were renamed to 13979 crc32_arch_optimized() and crc64_arch_optimized(). 13980 This way the names make sense with arch-specific non-CLMUL 13981 implementations as well. 13982 13983 src/liblzma/check/crc32_fast.c | 13 +++++++------ 13984 src/liblzma/check/crc64_fast.c | 13 +++++++------ 13985 src/liblzma/check/crc_common.h | 9 ++++++--- 13986 src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++---------- 13987 4 files changed, 31 insertions(+), 25 deletions(-) 13988 13989commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99 13990Author: Lasse Collin <lasse.collin@tukaani.org> 13991Date: 2024-01-10 18:19:21 +0200 13992 13993 liblzma: Fix a comment in crc_common.h. 13994 13995 src/liblzma/check/crc_common.h | 3 ++- 13996 1 file changed, 2 insertions(+), 1 deletion(-) 13997 13998commit 419f55f9dfc2df8792902b8953d50690121afeea 13999Author: Lasse Collin <lasse.collin@tukaani.org> 14000Date: 2023-10-20 23:35:10 +0300 14001 14002 liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul(). 14003 14004 A CLMUL-only build will have the crcxx_clmul() inlined into 14005 lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul() 14006 was needed. Notes about shared liblzma on ELF platforms: 14007 14008 - On platforms that support ifunc and -fvisibility=hidden, this 14009 was silly because CLMUL-only build would have that single extra 14010 jump instruction of extra overhead. 14011 14012 - On platforms that support neither -fvisibility=hidden nor linker 14013 version script (liblzma*.map), jumping to lzma_crcxx_clmul() 14014 would go via PLT so a few more instructions of overhead (still 14015 not a big issue but silly nevertheless). 14016 14017 There was a downside with static liblzma too: if an application only 14018 needs lzma_crc64(), static linking would make the linker include the 14019 CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though 14020 the CRC32 code wouldn't be needed, thus increasing code size of the 14021 executable (assuming that -ffunction-sections isn't used). 14022 14023 Also, now compilers are likely to inline crc_simd_body() 14024 even if they don't support the always_inline attribute 14025 (or MSVC's __forceinline). Quite possibly all compilers 14026 that build the code do support such an attribute. But now 14027 it likely isn't a problem even if the attribute wasn't supported. 14028 14029 Now all x86-specific stuff is in crc_x86_clmul.h. If other archs 14030 The other archs can then have their own headers with their own 14031 is_clmul_supported() and crcxx_clmul(). 14032 14033 Another bonus is that the build system doesn't need to care if 14034 crc_clmul.c is needed. 14035 14036 is_clmul_supported() stays as inline function as it's not needed 14037 when doing a CLMUL-only build (avoids a warning about unused function). 14038 14039 CMakeLists.txt | 7 +- 14040 configure.ac | 1 - 14041 src/liblzma/check/Makefile.inc | 6 +- 14042 src/liblzma/check/crc32_fast.c | 9 ++- 14043 src/liblzma/check/crc64_fast.c | 9 ++- 14044 src/liblzma/check/crc_common.h | 64 ---------------- 14045 src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++---- 14046 7 files changed, 91 insertions(+), 91 deletions(-) 14047 14048commit e3833e297dfb5021a197bda34ba2a795e30aaf8a 14049Author: Lasse Collin <lasse.collin@tukaani.org> 14050Date: 2023-10-21 00:06:52 +0300 14051 14052 liblzma: crc_clmul.c: Add crc_attr_target macro. 14053 14054 This reduces the number of the complex #if directives. 14055 14056 src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++-------------- 14057 1 file changed, 16 insertions(+), 14 deletions(-) 14058 14059commit d164ac0e62904126f7920c25f9a2875c8cd28b97 14060Author: Lasse Collin <lasse.collin@tukaani.org> 14061Date: 2023-10-20 22:49:48 +0300 14062 14063 liblzma: Simplify existing cases with lzma_attr_no_sanitize_address. 14064 14065 src/liblzma/check/crc_clmul.c | 12 +++--------- 14066 1 file changed, 3 insertions(+), 9 deletions(-) 14067 14068commit 9523c1300d22fa715765c181cf991d14d6112fb1 14069Author: Lasse Collin <lasse.collin@tukaani.org> 14070Date: 2023-10-20 21:53:35 +0300 14071 14072 liblzma: #define crc_attr_no_sanitize_address in crc_common.h. 14073 14074 src/liblzma/check/crc_common.h | 10 ++++++++++ 14075 1 file changed, 10 insertions(+) 14076 14077commit 93d144f0930821590524247bd174afd38003d7f0 14078Author: Lasse Collin <lasse.collin@tukaani.org> 14079Date: 2023-10-20 23:25:14 +0300 14080 14081 liblzma: CRC: Add empty lines. 14082 14083 And remove one too. 14084 14085 src/liblzma/check/crc32_fast.c | 2 ++ 14086 src/liblzma/check/crc64_fast.c | 3 +++ 14087 src/liblzma/check/crc_clmul.c | 1 - 14088 3 files changed, 5 insertions(+), 1 deletion(-) 14089 14090commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae 14091Author: Lasse Collin <lasse.collin@tukaani.org> 14092Date: 2023-10-20 23:19:33 +0300 14093 14094 liblzma: crc_clmul.c: Tidy up the location of MSVC pragma. 14095 14096 It makes no difference in practice. 14097 14098 src/liblzma/check/crc_clmul.c | 4 ++-- 14099 1 file changed, 2 insertions(+), 2 deletions(-) 14100 14101commit 15cf3f04f270d707a5c91cc0208b23b6db42b774 14102Author: Lasse Collin <lasse.collin@tukaani.org> 14103Date: 2023-12-20 21:16:24 +0200 14104 14105 Update THANKS. 14106 14107 THANKS | 1 + 14108 1 file changed, 1 insertion(+) 14109 14110commit cd64dd70d5665b6048829c45772d08606f44672e 14111Author: Lasse Collin <lasse.collin@tukaani.org> 14112Date: 2023-12-20 21:15:16 +0200 14113 14114 liblzma: Use 8-byte method in memcmplen.h on ARM64. 14115 14116 It requires fast unaligned access to 64-bit integers 14117 and a fast instruction to count leading zeros in 14118 a 64-bit integer (__builtin_ctzll()). This perhaps 14119 should be enabled on some other archs too. 14120 14121 Thanks to Chenxi Mao for the original patch: 14122 https://github.com/tukaani-project/xz/pull/75 (the first commit) 14123 According to the numbers there, this may improve encoding 14124 speed by about 3-5 %. 14125 14126 This enables the 8-byte method on MSVC ARM64 too which 14127 should work but wasn't tested. 14128 14129 src/liblzma/common/memcmplen.h | 18 ++++++++++-------- 14130 1 file changed, 10 insertions(+), 8 deletions(-) 14131 14132commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606 14133Author: Lasse Collin <lasse.collin@tukaani.org> 14134Date: 2023-12-20 21:01:06 +0200 14135 14136 liblzma: Check also for __clang__ in memcmplen.h. 14137 14138 This change hopefully makes no practical difference as Clang 14139 likely was detected via __GNUC__ or _MSC_VER already. 14140 14141 src/liblzma/common/memcmplen.h | 3 ++- 14142 1 file changed, 2 insertions(+), 1 deletion(-) 14143 14144commit 133c5851eb917c6d99d0b623c1689c8518e65f38 14145Author: Jia Tan <jiat0218@gmail.com> 14146Date: 2023-12-21 21:39:08 +0800 14147 14148 Translations: Update the French translation. 14149 14150 po/fr.po | 632 +++++++++++++++++++++++++++++++++++++-------------------------- 14151 1 file changed, 370 insertions(+), 262 deletions(-) 14152 14153commit 710cbc186cad0ac601c38bd6bf31167648a5581e 14154Author: Jia Tan <jiat0218@gmail.com> 14155Date: 2023-12-21 16:39:53 +0800 14156 14157 xz: Add a comment to Capsicum sandbox setup. 14158 14159 This comment is repeated in xzdec.c to help remind us why all the 14160 capabilities are removed from stdin in certain situations. 14161 14162 src/xz/file_io.c | 1 + 14163 1 file changed, 1 insertion(+) 14164 14165commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12 14166Author: Jia Tan <jiat0218@gmail.com> 14167Date: 2023-12-20 22:19:19 +0800 14168 14169 Docs: Update --enable-sandbox option in INSTALL. 14170 14171 xzdec now also uses the sandbox when its configured. 14172 14173 INSTALL | 17 ++++++++++------- 14174 1 file changed, 10 insertions(+), 7 deletions(-) 14175 14176commit ebddf20214143a8e002ab897e95e880bb4c5ac44 14177Author: Jia Tan <jiat0218@gmail.com> 14178Date: 2023-12-20 22:39:13 +0800 14179 14180 CMake: Move sandbox detection outside of xz section. 14181 14182 The sandbox is now enabled for xzdec as well, so it no longer belongs 14183 in just the xz section. xz and xzdec are always built, except for older 14184 MSVC versions, so there isn't a need to conditionally show the sandbox 14185 configuration. CMake will do a little unecessary work on older MSVC 14186 versions that can't build xz or xzdec, but this is a very small 14187 downside. 14188 14189 CMakeLists.txt | 178 +++++++++++++++++++++++++++++++-------------------------- 14190 1 file changed, 98 insertions(+), 80 deletions(-) 14191 14192commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316 14193Author: Jia Tan <jiat0218@gmail.com> 14194Date: 2023-12-20 22:43:44 +0800 14195 14196 Build: Allow sandbox to be configured for just xzdec. 14197 14198 If xz is disabled, then xzdec can still use the sandbox. 14199 14200 configure.ac | 10 +++++----- 14201 1 file changed, 5 insertions(+), 5 deletions(-) 14202 14203commit d74fb5f060b76db709b50f5fd37490394e52f975 14204Author: Jia Tan <jiat0218@gmail.com> 14205Date: 2023-12-19 21:18:28 +0800 14206 14207 xzdec: Add sandbox support for Pledge, Capsicum, and Landlock. 14208 14209 A very strict sandbox is used when the last file is decompressed. The 14210 likely most common use case of xzdec is to decompress a single file. 14211 The Pledge sandbox is applied to the entire process with slightly more 14212 relaxed promises, until the last file is processed. 14213 14214 Thanks to Christian Weisgerber for the initial patch adding Pledge 14215 sandboxing. 14216 14217 src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 14218 1 file changed, 139 insertions(+), 7 deletions(-) 14219 14220commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5 14221Author: Jia Tan <jiat0218@gmail.com> 14222Date: 2023-12-20 21:31:34 +0800 14223 14224 liblzma: Initialize lzma_lz_encoder pointers with NULL. 14225 14226 This fixes the recent change to lzma_lz_encoder that used memzero 14227 instead of the NULL constant. On some compilers the NULL constant 14228 (always 0) may not equal the NULL pointer (this only needs to guarentee 14229 to not point to valid memory address). 14230 14231 Later code compares the pointers to the NULL pointer so we must 14232 initialize them with the NULL pointer instead of 0 to guarentee 14233 code correctness. 14234 14235 src/liblzma/lz/lz_encoder.c | 6 +++++- 14236 1 file changed, 5 insertions(+), 1 deletion(-) 14237 14238commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df 14239Author: Jia Tan <jiat0218@gmail.com> 14240Date: 2023-12-16 20:51:38 +0800 14241 14242 liblzma: Set all values in lzma_lz_encoder to NULL after allocation. 14243 14244 The first member of lzma_lz_encoder doesn't necessarily need to be set 14245 to NULL since it will always be set before anything tries to use it. 14246 However the function pointer members must be set to NULL since other 14247 functions rely on this NULL value to determine if this behavior is 14248 supported or not. 14249 14250 This fixes a somewhat serious bug, where the options_update() and 14251 set_out_limit() function pointers are not set to NULL. This seems to 14252 have been forgotten since these function pointers were added many years 14253 after the original two (code() and end()). 14254 14255 The problem is that by not setting this to NULL we are relying on the 14256 memory allocation to zero things out if lzma_filters_update() is called 14257 on a LZMA1 encoder. The function pointer for set_out_limit() is less 14258 serious because there is not an API function that could call this in an 14259 incorrect way. set_out_limit() is only called by the MicroLZMA encoder, 14260 which must use LZMA1 where set_out_limit() is always set. Its currently 14261 not possible to call set_out_limit() on an LZMA2 encoder at this time. 14262 14263 So calling lzma_filters_update() on an LZMA1 encoder had undefined 14264 behavior since its possible that memory could be manipulated so the 14265 options_update member pointed to a different instruction sequence. 14266 14267 This is unlikely to be a bug in an existing application since it relies 14268 on calling lzma_filters_update() on an LZMA1 encoder in the first place. 14269 For instance, it does not affect xz because lzma_filters_update() can 14270 only be used when encoding to the .xz format. 14271 14272 This is fixed by using memzero() to set all members of lzma_lz_encoder 14273 to NULL after it is allocated. This ensures this mistake will not occur 14274 here in the future if any additional function pointers are added. 14275 14276 src/liblzma/lz/lz_encoder.c | 4 +--- 14277 1 file changed, 1 insertion(+), 3 deletions(-) 14278 14279commit 1a1bb381db7a20cf86cb45a350e5cca35224d017 14280Author: Jia Tan <jiat0218@gmail.com> 14281Date: 2023-12-16 20:30:55 +0800 14282 14283 liblzma: Tweak a comment. 14284 14285 src/liblzma/lz/lz_encoder.c | 2 +- 14286 1 file changed, 1 insertion(+), 1 deletion(-) 14287 14288commit 55810780e04f759747b02683fb8020b8cd022a85 14289Author: Jia Tan <jiat0218@gmail.com> 14290Date: 2023-12-16 20:28:21 +0800 14291 14292 liblzma: Make parameter names in function definition match declaration. 14293 14294 lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the 14295 parameter name instead of "filters" (used by the declaration). "filters" 14296 is more clear since the parameter represents the list of filters passed 14297 to the raw encoder, each of which contains filter options. 14298 14299 src/liblzma/common/filter_encoder.c | 8 ++++---- 14300 1 file changed, 4 insertions(+), 4 deletions(-) 14301 14302commit 5dad6f628af742bab826819760deb677597445f7 14303Author: Jia Tan <jiat0218@gmail.com> 14304Date: 2023-12-16 20:18:47 +0800 14305 14306 liblzma: Improve lzma encoder init function consistency. 14307 14308 lzma_encoder_init() did not check for NULL options, but 14309 lzma2_encoder_init() did. This is more of a code style improvement than 14310 anything else to help make lzma_encoder_init() and lzma2_encoder_init() 14311 more similar. 14312 14313 src/liblzma/lzma/lzma_encoder.c | 3 +++ 14314 1 file changed, 3 insertions(+) 14315 14316commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf 14317Author: Jia Tan <jiat0218@gmail.com> 14318Date: 2023-12-16 11:20:20 +0800 14319 14320 Docs: Update repository URL in Changelog. 14321 14322 ChangeLog | 2 +- 14323 1 file changed, 1 insertion(+), 1 deletion(-) 14324 14325commit f9b82bc64a9405e486575c65c1729229eb0a8198 14326Author: Jia Tan <jiat0218@gmail.com> 14327Date: 2023-12-15 16:56:31 +0800 14328 14329 CI: Update Upload Artifact Action. 14330 14331 .github/workflows/ci.yml | 2 +- 14332 .github/workflows/windows-ci.yml | 2 +- 14333 2 files changed, 2 insertions(+), 2 deletions(-) 14334 14335commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e 14336Author: Jia Tan <jiat0218@gmail.com> 14337Date: 2023-12-07 21:48:07 +0800 14338 14339 Tests: Silence -Wsign-conversion warning on GCC version < 10. 14340 14341 Since GCC version 10, GCC no longer complains about simple implicit 14342 integer conversions with Arithmetic operators. 14343 14344 For instance: 14345 14346 uint8_t a = 5; 14347 uint32_t b = a + 5; 14348 14349 Give a warning on GCC 9 and earlier but this: 14350 14351 uint8_t a = 5; 14352 uint32_t b = (a + 5) * 2; 14353 14354 Gives a warning with GCC 10+. 14355 14356 tests/test_block_header.c | 2 +- 14357 1 file changed, 1 insertion(+), 1 deletion(-) 14358 14359commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8 14360Author: Jia Tan <jiat0218@gmail.com> 14361Date: 2023-12-06 18:39:03 +0800 14362 14363 Update THANKS. 14364 14365 THANKS | 1 + 14366 1 file changed, 1 insertion(+) 14367 14368commit ee2f48350099201694a7586e41d7aa2f09fc74da 14369Author: Jia Tan <jiat0218@gmail.com> 14370Date: 2023-12-06 18:30:25 +0800 14371 14372 Tests: Minor cleanups to OSS-Fuzz files. 14373 14374 Most of these fixes are small typos and tweaks. A few were caused by bad 14375 advice from me. Here is the summary of what is changed: 14376 14377 - Author line edits 14378 14379 - Small comment changes/additions 14380 14381 - Using the return value in the error messages in the fuzz targets' 14382 coder initialization code 14383 14384 - Removed fuzz_encode_stream.options. This set a max length, which may 14385 prevent some worthwhile code paths from being properly exercised. 14386 14387 - Removed the max_len option from fuzz_decode_stream.options for the 14388 same reason as fuzz_encode_stream. The alone decoder fuzz target still 14389 has this restriction. 14390 14391 - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping 14392 the properties static and varying the dictionary size, the properties 14393 are varied and the dictionary size is kept small. The dictionary size 14394 doesn't have much impact on the code paths but the properties do. 14395 14396 Closes: https://github.com/tukaani-project/xz/pull/73 14397 14398 tests/ossfuzz/Makefile | 3 ++ 14399 tests/ossfuzz/config/fuzz_decode_stream.options | 1 - 14400 tests/ossfuzz/config/fuzz_lzma.dict | 34 +++++++++++----------- 14401 tests/ossfuzz/fuzz_common.h | 16 +++++------ 14402 tests/ossfuzz/fuzz_decode_alone.c | 15 +++++----- 14403 tests/ossfuzz/fuzz_decode_stream.c | 15 +++++----- 14404 tests/ossfuzz/fuzz_encode_stream.c | 38 +++++++++++++++---------- 14405 7 files changed, 66 insertions(+), 56 deletions(-) 14406 14407commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d 14408Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 14409Date: 2023-12-05 16:31:09 +0100 14410 14411 Tests: Add fuzz_encode_stream ossfuzz target. 14412 14413 This fuzz target handles .xz stream encoding. The first byte of input 14414 is used to dynamically set the preset level in order to increase the 14415 fuzz coverage of complex critical code paths. 14416 14417 tests/ossfuzz/config/fuzz_encode_stream.options | 2 + 14418 tests/ossfuzz/fuzz_encode_stream.c | 79 +++++++++++++++++++++++++ 14419 2 files changed, 81 insertions(+) 14420 14421commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48 14422Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 14423Date: 2023-12-04 17:23:24 +0100 14424 14425 Tests: Add fuzz_decode_alone OSS-Fuzz target 14426 14427 This fuzz target that handles LZMA alone decoding. A new fuzz 14428 dictionary .dict was also created with common LZMA header values to 14429 help speed up the discovery of valid headers. 14430 14431 tests/ossfuzz/config/fuzz_decode_alone.options | 3 ++ 14432 tests/ossfuzz/config/fuzz_lzma.dict | 22 ++++++++++++++ 14433 tests/ossfuzz/fuzz_decode_alone.c | 41 ++++++++++++++++++++++++++ 14434 3 files changed, 66 insertions(+) 14435 14436commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a 14437Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 14438Date: 2023-12-04 17:21:29 +0100 14439 14440 Tests: Update OSS-Fuzz Makefile. 14441 14442 All .c files can be built as separate fuzz targets. This simplifies 14443 the Makefile by allowing us to use wildcards instead of having a 14444 Makefile target for each fuzz target. 14445 14446 tests/ossfuzz/Makefile | 13 +++++++++---- 14447 1 file changed, 9 insertions(+), 4 deletions(-) 14448 14449commit 28ce6a1c2a74866c51f7996a6869679c236d3c94 14450Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 14451Date: 2023-12-04 17:20:08 +0100 14452 14453 Tests: Move common OSS-Fuzz target code to .h file. 14454 14455 tests/ossfuzz/fuzz_common.h | 56 ++++++++++++++++++++++++++++++++++++ 14456 tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++---------------------------- 14457 2 files changed, 71 insertions(+), 44 deletions(-) 14458 14459commit bf0521ea1591c25b9d510c1b8be86073e9d847c6 14460Author: Maksym Vatsyk <maksym.vatsyk@leviathansecurity.com> 14461Date: 2023-12-04 17:18:20 +0100 14462 14463 Tests: Rename OSS-Fuzz files. 14464 14465 tests/ossfuzz/config/fuzz.options | 2 -- 14466 tests/ossfuzz/config/fuzz_decode_stream.options | 3 +++ 14467 tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0 14468 tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c} | 0 14469 4 files changed, 3 insertions(+), 2 deletions(-) 14470 14471commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7 14472Author: Jia Tan <jiat0218@gmail.com> 14473Date: 2023-11-30 23:10:43 +0800 14474 14475 Update THANKS. 14476 14477 THANKS | 1 + 14478 1 file changed, 1 insertion(+) 14479 14480commit 3b3023e00b0071e10f589bbc3674e0ec432b8add 14481Author: Kian-Meng Ang <kianmeng@cpan.org> 14482Date: 2023-11-30 23:01:19 +0800 14483 14484 Tests: Fix typos 14485 14486 tests/test_index.c | 2 +- 14487 tests/test_lzip_decoder.c | 4 ++-- 14488 2 files changed, 3 insertions(+), 3 deletions(-) 14489 14490commit 424d46ead8cbc0da57f406b76926ec4ed47437f5 14491Author: Kian-Meng Ang <kianmeng@cpan.org> 14492Date: 2023-11-30 22:59:47 +0800 14493 14494 xz: Fix typo 14495 14496 src/xz/file_io.c | 2 +- 14497 1 file changed, 1 insertion(+), 1 deletion(-) 14498 14499commit 35558adf9c45e5597f2c8dbd969885dd484038d2 14500Author: Jia Tan <jiat0218@gmail.com> 14501Date: 2023-11-30 20:41:00 +0800 14502 14503 Update THANKS. 14504 14505 THANKS | 1 + 14506 1 file changed, 1 insertion(+) 14507 14508commit fd170e8557727bed6bec0518c16415064d972e4e 14509Author: Jia Tan <jiat0218@gmail.com> 14510Date: 2023-11-22 21:20:12 +0800 14511 14512 CI: Test musl libc builds on Ubuntu runner. 14513 14514 .github/workflows/ci.yml | 19 +++++++++++++++++-- 14515 1 file changed, 17 insertions(+), 2 deletions(-) 14516 14517commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e 14518Author: Jia Tan <jiat0218@gmail.com> 14519Date: 2023-11-22 21:12:15 +0800 14520 14521 CI: Allow ci_build.sh to set a different C compiler. 14522 14523 build-aux/ci_build.sh | 11 ++++++++++- 14524 1 file changed, 10 insertions(+), 1 deletion(-) 14525 14526commit ff7badef53c2cd698d4b72b945f34dfd0835e13c 14527Author: Jia Tan <jiat0218@gmail.com> 14528Date: 2023-11-24 21:19:12 +0800 14529 14530 CMake: Use consistent indentation with check_c_source_compiles(). 14531 14532 CMakeLists.txt | 4 ++-- 14533 1 file changed, 2 insertions(+), 2 deletions(-) 14534 14535commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1 14536Author: Jia Tan <jiat0218@gmail.com> 14537Date: 2023-11-22 20:33:36 +0800 14538 14539 CMake: Change __attribute__((__ifunc__())) detection. 14540 14541 This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc 14542 detection changes that were made to the Autotools build. 14543 14544 Fixes: https://github.com/tukaani-project/xz/issues/70 14545 14546 CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- 14547 1 file changed, 45 insertions(+), 8 deletions(-) 14548 14549commit 20ecee40a0053fd16371ef0628046bf45e548d72 14550Author: Jia Tan <jiat0218@gmail.com> 14551Date: 2023-11-24 20:19:11 +0800 14552 14553 Docs: Update INSTALL for --enable_ifunc change. 14554 14555 INSTALL | 16 ++++++++-------- 14556 1 file changed, 8 insertions(+), 8 deletions(-) 14557 14558commit ffb456593d695d70052a2f71c7a2e6269217d194 14559Author: Jia Tan <jiat0218@gmail.com> 14560Date: 2023-11-21 20:56:55 +0800 14561 14562 Build: Change --enable-ifunc handling. 14563 14564 Some compilers support __attribute__((__ifunc__())) even though the 14565 dynamic linker does not. The compiler is able to create the binary 14566 but it will fail on startup. So it is not enough to just test if 14567 the attribute is supported. 14568 14569 The default value for enable_ifunc is now auto, which will attempt 14570 to compile a program using __attribute__((__ifunc__())). There are 14571 additional checks in this program if glibc is being used or if it 14572 is running on FreeBSD. 14573 14574 Setting --enable-ifunc will skip this test and always enable 14575 __attribute__((__ifunc__())), even if is not supported. 14576 14577 configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++----------------- 14578 1 file changed, 44 insertions(+), 17 deletions(-) 14579 14580commit 12b89bcc9915090eb42ae638e565af44b6832a23 14581Author: Lasse Collin <lasse.collin@tukaani.org> 14582Date: 2023-11-23 17:39:10 +0200 14583 14584 xz: Tweak a comment. 14585 14586 src/xz/util.c | 4 ++-- 14587 1 file changed, 2 insertions(+), 2 deletions(-) 14588 14589commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e 14590Author: Jia Tan <jiat0218@gmail.com> 14591Date: 2023-11-23 22:13:39 +0800 14592 14593 xz: Use is_tty() in message.c. 14594 14595 src/xz/message.c | 7 +------ 14596 1 file changed, 1 insertion(+), 6 deletions(-) 14597 14598commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e 14599Author: Jia Tan <jiat0218@gmail.com> 14600Date: 2023-11-23 22:04:35 +0800 14601 14602 xz: Create separate is_tty() function. 14603 14604 The new is_tty() will report if a file descriptor is a terminal or not. 14605 On POSIX systems, it is a wrapper around isatty(). However, the native 14606 Windows implementation of isatty() will return true for all character 14607 devices, not just terminals. So is_tty() has a special case for Windows 14608 so it can use alternative Windows API functions to determine if a file 14609 descriptor is a terminal. 14610 14611 This fixes a bug with MSVC and MinGW-w64 builds that refused to read from 14612 or write to non-terminal character devices because xz thought it was a 14613 terminal. For instance: 14614 14615 xz foo -c > /dev/null 14616 14617 would fail because /dev/null was assumed to be a terminal. 14618 14619 src/xz/util.c | 30 +++++++++++++++++++++++------- 14620 src/xz/util.h | 14 ++++++++++++++ 14621 2 files changed, 37 insertions(+), 7 deletions(-) 14622 14623commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d 14624Author: Jia Tan <jiat0218@gmail.com> 14625Date: 2023-11-22 20:39:41 +0800 14626 14627 tuklib_integer: Fix typo discovered by codespell. 14628 14629 Based on internet dictionary searches, 'choise' is an outdated spelling 14630 of 'choice'. 14631 14632 src/common/tuklib_integer.h | 2 +- 14633 1 file changed, 1 insertion(+), 1 deletion(-) 14634 14635commit 659aca0d695807c0762d4101765189e4e33d1e2c 14636Author: Lasse Collin <lasse.collin@tukaani.org> 14637Date: 2023-11-17 19:35:19 +0200 14638 14639 xz: Move the check for --suffix with --format=raw a few lines earlier. 14640 14641 Now it reads from argv[] instead of args->arg_names. 14642 14643 src/xz/args.c | 44 ++++++++++++++++++++++---------------------- 14644 1 file changed, 22 insertions(+), 22 deletions(-) 14645 14646commit ca278eb2b7f5a4940f5ab18955297b398d423824 14647Author: Jia Tan <jiat0218@gmail.com> 14648Date: 2023-11-17 20:35:11 +0800 14649 14650 Tests: Create test_suffix.sh. 14651 14652 This tests some complicated interactions with the --suffix= option. 14653 The suffix option must be used with --format=raw, but can optionally 14654 be used to override the default .xz suffix. 14655 14656 This test also verifies some recent bugs have been correctly solved 14657 and to hopefully avoid further regressions in the future. 14658 14659 tests/Makefile.am | 2 + 14660 tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ 14661 2 files changed, 191 insertions(+) 14662 14663commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce 14664Author: Jia Tan <jiat0218@gmail.com> 14665Date: 2023-11-17 20:19:26 +0800 14666 14667 xz: Fix a bug with --files and --files0 in raw mode without a suffix. 14668 14669 The following command caused a segmentation fault: 14670 14671 xz -Fraw --lzma1 --files=foo 14672 14673 when foo was a valid file. The usage of --files or --files0 was not 14674 being checked when compressing or decompressing in raw mode without a 14675 suffix. The suffix checking code was meant to validate that all files 14676 to be processed are "-" (if not writing to standard out), meaning the 14677 data is only coming from standard in. In this case, there were no file 14678 names to check since --files and --files0 store their file name in a 14679 different place. 14680 14681 Later code assumed the suffix was set and caused a segmentation fault. 14682 Now, the above command results in an error. 14683 14684 src/xz/args.c | 5 +++++ 14685 1 file changed, 5 insertions(+) 14686 14687commit 299920bab9ae258a247366339264e8aefca9e3ce 14688Author: Jia Tan <jiat0218@gmail.com> 14689Date: 2023-11-17 20:04:58 +0800 14690 14691 Tests: Fix typo in a comment. 14692 14693 tests/test_files.sh | 2 +- 14694 1 file changed, 1 insertion(+), 1 deletion(-) 14695 14696commit f481523baac946fa3bc13d79186ffaf0c0b818a7 14697Author: Jia Tan <jiat0218@gmail.com> 14698Date: 2023-11-15 23:40:13 +0800 14699 14700 xz: Refactor suffix test with raw format. 14701 14702 The previous version set opt_stdout, but this caused an issue with 14703 copying an input file to standard out when decompressing an unknown file 14704 type. The following needs to result in an error: 14705 14706 echo foo | xz -df 14707 14708 since -c, --stdout is not used. This fixes the previous error by not 14709 setting opt_stdout. 14710 14711 src/xz/args.c | 38 +++++++++++++------------------------- 14712 1 file changed, 13 insertions(+), 25 deletions(-) 14713 14714commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6 14715Author: Jia Tan <jiat0218@gmail.com> 14716Date: 2023-11-14 20:27:46 +0800 14717 14718 xz: Move suffix check after stdout mode is detected. 14719 14720 This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0 14721 when the suffix check was initially moved. This caused a situation that 14722 previously worked: 14723 14724 echo foo | xz -Fraw --lzma1 | wc -c 14725 14726 to fail because the old code knew that this would write to standard out 14727 so a suffix was not needed. 14728 14729 src/xz/args.c | 16 ++++++++-------- 14730 1 file changed, 8 insertions(+), 8 deletions(-) 14731 14732commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf 14733Author: Jia Tan <jiat0218@gmail.com> 14734Date: 2023-11-14 20:27:04 +0800 14735 14736 xz: Detect when all data will be written to standard out earlier. 14737 14738 If the -c, --stdout argument is not used, then we can still detect when 14739 the data will be written to standard out if all of the provided 14740 filenames are "-" (denoting standard in) or if no filenames are 14741 provided. 14742 14743 src/xz/args.c | 21 +++++++++++++++++++++ 14744 1 file changed, 21 insertions(+) 14745 14746commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b 14747Author: Jia Tan <jiat0218@gmail.com> 14748Date: 2023-11-09 01:21:53 +0800 14749 14750 liblzma: Add missing comments to lz_encoder.h. 14751 14752 src/liblzma/lz/lz_encoder.h | 6 +++++- 14753 1 file changed, 5 insertions(+), 1 deletion(-) 14754 14755commit 5fe1450603dc625340b8b7866fb4a83ff748ad06 14756Author: Jia Tan <jiat0218@gmail.com> 14757Date: 2023-11-01 20:18:30 +0800 14758 14759 Add NEWS for 5.4.5. 14760 14761 NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 14762 1 file changed, 74 insertions(+) 14763 14764commit 46007049cd42e606543dbe650feb17bdf4469c29 14765Author: Lasse Collin <lasse.collin@tukaani.org> 14766Date: 2023-10-31 21:41:09 +0200 14767 14768 liblzma: Fix compilation of fastpos_tablegen.c. 14769 14770 The macro lzma_attr_visibility_hidden has to be defined to make 14771 fastpos.h usable. The visibility attribute is irrelevant to 14772 fastpos_tablegen.c so simply #define the macro to an empty value. 14773 14774 fastpos_tablegen.c is never built by the included build systems 14775 and so the problem wasn't noticed earlier. It's just a standalone 14776 program for generating fastpos_table.c. 14777 14778 Fixes: https://github.com/tukaani-project/xz/pull/69 14779 Thanks to GitHub user Jamaika1. 14780 14781 src/liblzma/lzma/fastpos_tablegen.c | 2 ++ 14782 1 file changed, 2 insertions(+) 14783 14784commit 148e20607e95781558bdfc823ecba07b7af4b590 14785Author: Jia Tan <jiat0218@gmail.com> 14786Date: 2023-10-31 21:51:40 +0800 14787 14788 Build: Fix text wrapping in an output message. 14789 14790 configure.ac | 9 +++++---- 14791 1 file changed, 5 insertions(+), 4 deletions(-) 14792 14793commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c 14794Author: Lasse Collin <lasse.collin@tukaani.org> 14795Date: 2023-10-30 18:09:53 +0200 14796 14797 liblzma: Add a note why crc_always_inline exists for now. 14798 14799 Solaris Studio is a possible example (not tested) which 14800 supports the always_inline attribute but might not get 14801 detected by the common.h #ifdefs. 14802 14803 src/liblzma/check/crc_common.h | 5 +++++ 14804 1 file changed, 5 insertions(+) 14805 14806commit e7a86b94cd247435ac96bc79ba528b690b9ca388 14807Author: Lasse Collin <lasse.collin@tukaani.org> 14808Date: 2023-10-22 17:59:11 +0300 14809 14810 liblzma: Use lzma_always_inline in memcmplen.h. 14811 14812 src/liblzma/common/memcmplen.h | 3 +-- 14813 1 file changed, 1 insertion(+), 2 deletions(-) 14814 14815commit dcfe5632992fb7f06f921da13fcdd84f83d0d285 14816Author: Lasse Collin <lasse.collin@tukaani.org> 14817Date: 2023-10-30 17:43:03 +0200 14818 14819 liblzma: #define lzma_always_inline in common.h. 14820 14821 src/liblzma/common/common.h | 17 +++++++++++++++++ 14822 1 file changed, 17 insertions(+) 14823 14824commit 41113fe30a47f6fd3e30cb4494dd538e86212edf 14825Author: Lasse Collin <lasse.collin@tukaani.org> 14826Date: 2023-10-22 17:15:32 +0300 14827 14828 liblzma: Use lzma_attr_visibility_hidden on private extern declarations. 14829 14830 These variables are internal to liblzma and not exposed in the API. 14831 14832 src/liblzma/check/check.h | 7 +++++++ 14833 src/liblzma/common/stream_flags_common.h | 3 +++ 14834 src/liblzma/lz/lz_encoder_hash.h | 1 + 14835 src/liblzma/lzma/fastpos.h | 1 + 14836 src/liblzma/rangecoder/price.h | 1 + 14837 5 files changed, 13 insertions(+) 14838 14839commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478 14840Author: Lasse Collin <lasse.collin@tukaani.org> 14841Date: 2023-10-22 17:08:39 +0300 14842 14843 liblzma: #define lzma_attr_visibility_hidden in common.h. 14844 14845 In ELF shared libs: 14846 14847 -fvisibility=hidden affects definitions of symbols but not 14848 declarations.[*] This doesn't affect direct calls to functions 14849 inside liblzma as a linker can replace a call to lzma_foo@plt 14850 with a call directly to lzma_foo when -fvisibility=hidden is used. 14851 14852 [*] It has to be like this because otherwise every installed 14853 header file would need to explictly set the symbol visibility 14854 to default. 14855 14856 When accessing extern variables that aren't defined in the 14857 same translation unit, compiler assumes that the variable has 14858 the default visibility and thus indirection is needed. Unlike 14859 function calls, linker cannot optimize this. 14860 14861 Using __attribute__((__visibility__("hidden"))) with the extern 14862 variable declarations tells the compiler that indirection isn't 14863 needed because the definition is in the same shared library. 14864 14865 About 15+ years ago, someone told me that it would be good if 14866 the CRC tables would be defined in the same translation unit 14867 as the C code of the CRC functions. While I understood that it 14868 could help a tiny amount, I didn't want to change the code because 14869 a separate translation unit for the CRC tables was needed for the 14870 x86 assembly code anyway. But when visibility attributes are 14871 supported, simply marking the extern declaration with the 14872 hidden attribute will get identical result. When there are only 14873 a few affected variables, this is trivial to do. I wish I had 14874 understood this back then already. 14875 14876 src/liblzma/common/common.h | 11 +++++++++++ 14877 1 file changed, 11 insertions(+) 14878 14879commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8 14880Author: Lasse Collin <lasse.collin@tukaani.org> 14881Date: 2023-09-30 22:54:28 +0300 14882 14883 liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. 14884 14885 MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project 14886 at <https://osdn.net/projects/mingw/>) has GCC 9.2.0 as the 14887 most recent GCC package (released 2021-02-02). The project might 14888 still be alive but majority of people have switched to MinGW-w64. 14889 Thus it seems clearer to refer to MinGW-w64 in our API headers too. 14890 Building with MinGW is likely to still work but I haven't tested it 14891 in the recent years. 14892 14893 src/liblzma/api/lzma.h | 4 ++-- 14894 src/liblzma/api/lzma/version.h | 2 +- 14895 2 files changed, 3 insertions(+), 3 deletions(-) 14896 14897commit 597f49b61475438a43a417236989b2acc968a686 14898Author: Lasse Collin <lasse.collin@tukaani.org> 14899Date: 2023-09-27 00:58:17 +0300 14900 14901 CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. 14902 14903 A CMake option LARGE_FILE_SUPPORT is created if and only if 14904 -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). 14905 14906 This is needed on many 32-bit platforms and even with 64-bit builds 14907 with MinGW-w64 to get support for files larger than 2 GiB. 14908 14909 CMakeLists.txt | 7 ++++- 14910 cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ 14911 2 files changed, 58 insertions(+), 1 deletion(-) 14912 14913commit 1bc548b8210366e44ba35b0b11577a8e328c1228 14914Author: Lasse Collin <lasse.collin@tukaani.org> 14915Date: 2023-09-30 02:14:25 +0300 14916 14917 CMake: Generate and install liblzma.pc if not using MSVC. 14918 14919 Autotools based build uses -pthread and thus adds it to Libs.private 14920 in liblzma.pc. CMake doesn't use -pthread at all if pthread functions 14921 are available in libc so Libs.private doesn't get -pthread either. 14922 14923 CMakeLists.txt | 21 +++++++++++++++++++++ 14924 1 file changed, 21 insertions(+) 14925 14926commit 2add71966f891d315105d6245f724ed4f43a4eff 14927Author: Lasse Collin <lasse.collin@tukaani.org> 14928Date: 2023-09-30 01:13:13 +0300 14929 14930 CMake: Rearrange the PACKAGE_ variables. 14931 14932 The windres workaround now replaces spaces with \x20 so 14933 the package name isn't repeated. 14934 14935 These changes will help with creation of liblzma.pc. 14936 14937 CMakeLists.txt | 26 +++++++++++++++----------- 14938 1 file changed, 15 insertions(+), 11 deletions(-) 14939 14940commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91 14941Author: Lasse Collin <lasse.collin@tukaani.org> 14942Date: 2023-09-29 20:46:11 +0300 14943 14944 liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. 14945 14946 It properly adds -DLZMA_API_STATIC when compiling code that 14947 will be linked against static liblzma. Having it there on 14948 systems other than Windows does no harm. 14949 14950 See: https://www.msys2.org/docs/pkgconfig/ 14951 14952 src/liblzma/liblzma.pc.in | 1 + 14953 1 file changed, 1 insertion(+) 14954 14955commit 80e0750e3996c1c659e972ce9cf789ca2e99f702 14956Author: Lasse Collin <lasse.collin@tukaani.org> 14957Date: 2023-09-27 22:46:20 +0300 14958 14959 CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. 14960 14961 CMakeLists.txt | 20 ++++++++++++++++++++ 14962 cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ 14963 2 files changed, 46 insertions(+) 14964 14965commit 08d12595f486890cf601b87f36ee0ddbce57728e 14966Author: Lasse Collin <lasse.collin@tukaani.org> 14967Date: 2023-10-26 21:44:42 +0300 14968 14969 CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. 14970 14971 In this case they have identical values. 14972 14973 CMakeLists.txt | 2 +- 14974 1 file changed, 1 insertion(+), 1 deletion(-) 14975 14976commit e67aaf698de75c73443a5ec786781cbf2034461d 14977Author: Lasse Collin <lasse.collin@tukaani.org> 14978Date: 2023-10-01 19:10:57 +0300 14979 14980 CMake/Windows: Fix the import library filename. 14981 14982 Both PREFIX and IMPORT_PERFIX have to be set to "" to get 14983 liblzma.dll and liblzma.dll.a. 14984 14985 CMakeLists.txt | 1 + 14986 1 file changed, 1 insertion(+) 14987 14988commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179 14989Author: Lasse Collin <lasse.collin@tukaani.org> 14990Date: 2023-10-25 19:13:25 +0300 14991 14992 Build: Detect -fsanitize= in CFLAGS and incompatible build options. 14993 14994 Now configure will fail if -fsanitize= is found in CFLAGS 14995 and sanitizer-incompatible ifunc or Landlock sandboxing 14996 would be used. These are incompatible with one or more sanitizers. 14997 It's simpler to reject all -fsanitize= uses instead of trying to 14998 pass those that might not cause problems. 14999 15000 CMake-based build was updated similarly. It lets the configuration 15001 finish (SEND_ERROR instead of FATAL_ERROR) so that both error 15002 messages can be seen at once. 15003 15004 CMakeLists.txt | 29 +++++++++++++++++++++++++++++ 15005 configure.ac | 37 +++++++++++++++++++++++++++++++++---- 15006 2 files changed, 62 insertions(+), 4 deletions(-) 15007 15008commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468 15009Author: Jia Tan <jiat0218@gmail.com> 15010Date: 2023-10-24 00:50:08 +0800 15011 15012 CI: Disable sandboxing in fsanitize=address,undefined job. 15013 15014 The sandboxing on Linux now supports Landlock, which restricts all 15015 supported filesystem actions after xz opens the files it needs. The 15016 sandbox is only enabled when one file is input and we are writing to 15017 standard out. With fsanitize=address,undefined, the instrumentation 15018 needs to read additional files after the sandbox is in place. This 15019 forces all xz based test to fail, so the sandbox must instead be 15020 disabled. 15021 15022 .github/workflows/ci.yml | 8 ++++++-- 15023 1 file changed, 6 insertions(+), 2 deletions(-) 15024 15025commit b1408987ea832e2760e478ae960a636df17a1363 15026Author: Jia Tan <jiat0218@gmail.com> 15027Date: 2023-10-24 00:15:39 +0800 15028 15029 CI: Allow disabling the sandbox in ci_build.sh. 15030 15031 build-aux/ci_build.sh | 5 ++++- 15032 1 file changed, 4 insertions(+), 1 deletion(-) 15033 15034commit 91c435cf1c7a1e893706d4d716dfd361621ed824 15035Author: Lasse Collin <lasse.collin@tukaani.org> 15036Date: 2023-10-11 19:47:44 +0300 15037 15038 CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. 15039 15040 Using set(ENABLE_THREADS "posix") is confusing because it sets 15041 a new normal variable and leaves the cache entry with the same 15042 name unchanged. The intent wasn't to change the cache entry so 15043 this switches to a different variable name. 15044 15045 CMakeLists.txt | 10 +++++++--- 15046 1 file changed, 7 insertions(+), 3 deletions(-) 15047 15048commit fa1609eb9393ecd30decfed4891c907829f06710 15049Author: Lasse Collin <lasse.collin@tukaani.org> 15050Date: 2023-10-09 22:28:49 +0300 15051 15052 Docs: Update INSTALL about sandboxing support. 15053 15054 INSTALL | 7 ++++++- 15055 1 file changed, 6 insertions(+), 1 deletion(-) 15056 15057commit 8276c7f41c671eee4aa3239490658b23dcfd3021 15058Author: Lasse Collin <lasse.collin@tukaani.org> 15059Date: 2023-10-09 22:07:52 +0300 15060 15061 xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3). 15062 15063 It is enabled only when decompressing one file to stdout, 15064 similar to how Capsicum is used. 15065 15066 Landlock was added in Linux 5.13. 15067 15068 CMakeLists.txt | 12 +++++++++++- 15069 configure.ac | 11 ++++++++--- 15070 src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 15071 src/xz/main.c | 19 +++++++++++++++++++ 15072 src/xz/private.h | 3 ++- 15073 5 files changed, 98 insertions(+), 5 deletions(-) 15074 15075commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c 15076Author: Lasse Collin <lasse.collin@tukaani.org> 15077Date: 2023-10-09 21:12:31 +0300 15078 15079 CMake: Edit threading related messages. 15080 15081 It's mostly to change from "thread method" to "threading method". 15082 15083 CMakeLists.txt | 19 ++++++++++--------- 15084 1 file changed, 10 insertions(+), 9 deletions(-) 15085 15086commit bf011352528ae3539ea7b780b45b96736ee57a99 15087Author: Lasse Collin <lasse.collin@tukaani.org> 15088Date: 2023-10-09 20:59:24 +0300 15089 15090 CMake: Use FATAL_ERROR if user-supplied options aren't understood. 15091 15092 This way typos are caught quickly and compounding error messages 15093 are avoided (a single typo could cause more than one error). 15094 15095 This keeps using SEND_ERROR when the system is lacking a feature 15096 (like threading library or sandboxing method). This way the whole 15097 configuration log will be generated in case someone wishes to 15098 report a problem upstream. 15099 15100 CMakeLists.txt | 28 ++++++++++++++-------------- 15101 1 file changed, 14 insertions(+), 14 deletions(-) 15102 15103commit 3f53870c249945d657ca3d75e0993e6267d71f75 15104Author: Lasse Collin <lasse.collin@tukaani.org> 15105Date: 2023-10-09 18:37:32 +0300 15106 15107 CMake: Add sandboxing support. 15108 15109 CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 15110 1 file changed, 49 insertions(+), 1 deletion(-) 15111 15112commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0 15113Author: Lasse Collin <lasse.collin@tukaani.org> 15114Date: 2023-10-09 18:13:08 +0300 15115 15116 Simplify detection of Capsicum support. 15117 15118 This removes support for FreeBSD 10.0 and 10.1 which used 15119 <sys/capability.h> instead of <sys/capsicum.h>. Support for 15120 FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is 15121 required to enable Capsicum support. 15122 15123 This also removes support for Capsicum on Linux (libcaprights) 15124 which seems to have been unmaintained since 2017 and Linux 4.11: 15125 https://github.com/google/capsicum-linux 15126 15127 configure.ac | 4 +-- 15128 m4/ax_check_capsicum.m4 | 85 ------------------------------------------------- 15129 src/xz/Makefile.am | 2 +- 15130 src/xz/file_io.c | 14 +++----- 15131 src/xz/private.h | 2 +- 15132 5 files changed, 9 insertions(+), 98 deletions(-) 15133 15134commit c57858b60e186d020b2dbaf7aabd9b32c71da824 15135Author: Lasse Collin <lasse.collin@tukaani.org> 15136Date: 2023-09-25 01:46:36 +0300 15137 15138 xz/Windows: Allow clock_gettime with POSIX threads. 15139 15140 If winpthreads are used for threading, it's OK to use clock_gettime() 15141 from winpthreads too. 15142 15143 src/xz/mytime.c | 9 ++++++--- 15144 1 file changed, 6 insertions(+), 3 deletions(-) 15145 15146commit dd32f628bb5541ef4e8ce66966ef456a1934084c 15147Author: Lasse Collin <lasse.collin@tukaani.org> 15148Date: 2023-09-25 01:39:26 +0300 15149 15150 mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads. 15151 15152 This might be almost useless but it doesn't need much extra code either. 15153 15154 src/common/mythread.h | 23 ++++++++++++++++++++++- 15155 1 file changed, 22 insertions(+), 1 deletion(-) 15156 15157commit 680e52cdd086e92691d8a0bca2c98815565f60ca 15158Author: Lasse Collin <lasse.collin@tukaani.org> 15159Date: 2023-09-23 03:06:36 +0300 15160 15161 CMake: Check for clock_gettime() even on Windows. 15162 15163 This mirrors configure.ac although currently MinGW-w64 builds 15164 don't use clock_gettime() even if it is found. 15165 15166 CMakeLists.txt | 44 +++++++++++++++++++++----------------------- 15167 1 file changed, 21 insertions(+), 23 deletions(-) 15168 15169commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 15170Author: Lasse Collin <lasse.collin@tukaani.org> 15171Date: 2023-09-23 03:23:32 +0300 15172 15173 Build: Check for clock_gettime() even if not using POSIX threads. 15174 15175 See the new comment in the code. 15176 15177 This also makes the check for clock_gettime() run with MinGW-w64 15178 with which we don't want to use clock_gettime(). The previous 15179 commit already took care of this situation. 15180 15181 configure.ac | 31 ++++++++++++++++++------------- 15182 1 file changed, 18 insertions(+), 13 deletions(-) 15183 15184commit 46fd991cd2808ef62554853864c946232e7547f0 15185Author: Lasse Collin <lasse.collin@tukaani.org> 15186Date: 2023-09-24 22:58:53 +0300 15187 15188 xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. 15189 15190 This commit alone doesn't change anything in the real-world: 15191 15192 - configure.ac currently checks for clock_gettime() only 15193 when using pthreads. 15194 15195 - CMakeLists.txt doesn't check for clock_gettime() on Windows. 15196 15197 So clock_gettime() wasn't used with MinGW-w64 before either. 15198 15199 clock_gettime() provides monotonic time and it's better than 15200 gettimeofday() in this sense. But clock_gettime() is defined 15201 in winpthreads, and liblzma or xz needs nothing else from 15202 winpthreads. By avoiding clock_gettime(), we avoid the dependency on 15203 libwinpthread-1.dll or the need to link against the static version. 15204 15205 As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be 15206 faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution 15207 is more than good enough for the progress indicator in xz. 15208 15209 src/xz/mytime.c | 9 +++++++-- 15210 1 file changed, 7 insertions(+), 2 deletions(-) 15211 15212commit cdb4d91f2464b50c985ef7b9517314ea237ddda7 15213Author: Lasse Collin <lasse.collin@tukaani.org> 15214Date: 2023-09-24 00:21:22 +0300 15215 15216 xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads. 15217 15218 src/xz/mytime.c | 14 +++++++++++--- 15219 1 file changed, 11 insertions(+), 3 deletions(-) 15220 15221commit 988e09f27b9b04a43d45d10f92782e0092ee27a9 15222Author: Jia Tan <jiat0218@gmail.com> 15223Date: 2023-10-20 19:17:46 +0800 15224 15225 liblzma: Move is_clmul_supported() back to crc_common.h. 15226 15227 This partially reverts creating crc_clmul.c 15228 (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported() 15229 was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This 15230 caused a problem when the function call to lzma_is_clmul_supported() 15231 results in a call through the PLT. ifunc resolvers run very early in 15232 the dynamic loading sequence, so the PLT may not be setup properly at 15233 this point. Whether the PLT is used or not for 15234 lzma_is_clmul_supported() depened upon the compiler-toolchain used and 15235 flags. 15236 15237 In liblzma compiled with GCC, for instance, GCC will go through the PLT 15238 for function calls internal to liblzma if the version scripts and 15239 symbol visibility hiding are not used. If lazy-binding is disabled, 15240 then it would have made any program linked with liblzma fail during 15241 dynamic loading in the ifunc resolver. 15242 15243 src/liblzma/check/crc32_fast.c | 2 +- 15244 src/liblzma/check/crc64_fast.c | 2 +- 15245 src/liblzma/check/crc_clmul.c | 45 ------------------------------------ 15246 src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++--- 15247 4 files changed, 51 insertions(+), 50 deletions(-) 15248 15249commit 105c7ca90d4152942e0798580a37f736d02faa22 15250Author: Jia Tan <jiat0218@gmail.com> 15251Date: 2023-10-19 16:23:32 +0800 15252 15253 Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. 15254 15255 Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be 15256 set. Because of this, it makes the recent change to conditionally 15257 compile check/crc_clmul.c appear wrong since that file has CLMUL 15258 implementations for both CRC32 and CRC64. 15259 15260 src/liblzma/check/Makefile.inc | 4 ++-- 15261 1 file changed, 2 insertions(+), 2 deletions(-) 15262 15263commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c 15264Author: Jia Tan <jiat0218@gmail.com> 15265Date: 2023-10-19 16:09:01 +0800 15266 15267 CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. 15268 15269 The option is enabled by default, but will only be visible to a user 15270 listing cache variables or using a CMake GUI application if the 15271 immintrin.h header file is found. 15272 15273 This mirrors our Autotools build --disable-clmul-crc functionality. 15274 15275 CMakeLists.txt | 44 +++++++++++++++++++++++++------------------- 15276 1 file changed, 25 insertions(+), 19 deletions(-) 15277 15278commit c60b25569d414bb73b705977a4dd342f8f9f1965 15279Author: Jia Tan <jiat0218@gmail.com> 15280Date: 2023-10-19 00:22:50 +0800 15281 15282 liblzma: Fix -fsanitize=address failure with crc_clmul functions. 15283 15284 After forcing crc_simd_body() to always be inlined it caused 15285 -fsanitize=address to fail for lzma_crc32_clmul() and 15286 lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added 15287 to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from 15288 crc_simd_body(). ASAN and inline functions behavior has changed over 15289 the years for GCC specifically, so while strictly required we will 15290 keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in 15291 case this becomes a requirement in the future. 15292 15293 Older GCC versions refuse to inline a function with ASAN if the 15294 caller and callee do not agree on sanitization flags 15295 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the 15296 function was forced to be inlined, it will not compile if the callee 15297 function has __no_sanitize_address__ but the caller doesn't. 15298 15299 src/liblzma/check/crc_clmul.c | 6 ++++++ 15300 1 file changed, 6 insertions(+) 15301 15302commit 9a78971261bc67622cbd7dae02f6966968ac1393 15303Author: Lasse Collin <lasse.collin@tukaani.org> 15304Date: 2023-10-14 20:16:13 +0300 15305 15306 tuklib_integer: Update the CMake test for fast unaligned access. 15307 15308 cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++---------- 15309 1 file changed, 54 insertions(+), 15 deletions(-) 15310 15311commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4 15312Author: Lasse Collin <lasse.collin@tukaani.org> 15313Date: 2023-09-23 23:28:48 +0300 15314 15315 Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V. 15316 15317 PowerPC64LE wasn't tested but it seems like a safe change. 15318 POWER8 supports unaligned access in little endian mode. Testing 15319 on godbolt.org shows that GCC uses unaligned access by default. 15320 15321 The RISC-V macro __riscv_misaligned_fast is very new and not 15322 in any stable compiler release yet. 15323 15324 Documentation in INSTALL was updated to match. 15325 15326 Documentation about an autodetection bug when using ARM64 GCC 15327 with -mstrict-align was added to INSTALL. 15328 15329 CMake files weren't updated yet. 15330 15331 INSTALL | 39 +++++++++++++++++++++++++++++++++++++-- 15332 m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++------- 15333 2 files changed, 64 insertions(+), 9 deletions(-) 15334 15335commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2 15336Author: Lasse Collin <lasse.collin@tukaani.org> 15337Date: 2023-10-14 17:56:59 +0300 15338 15339 tuklib_integer: Revise unaligned reads and writes on strict-align archs. 15340 15341 In XZ Utils context this doesn't matter much because 15342 unaligned reads and writes aren't used in hot code 15343 when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. 15344 15345 src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ 15346 1 file changed, 189 insertions(+), 67 deletions(-) 15347 15348commit 6828242735cbf61b93d140383336e1e51a006f2d 15349Author: Lasse Collin <lasse.collin@tukaani.org> 15350Date: 2023-09-23 02:21:49 +0300 15351 15352 tuklib_integer: Add missing write64be and write64le fallback functions. 15353 15354 src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ 15355 1 file changed, 34 insertions(+) 15356 15357commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416 15358Author: Jia Tan <jiat0218@gmail.com> 15359Date: 2023-10-18 19:57:10 +0800 15360 15361 liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul(). 15362 15363 After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul() 15364 has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the 15365 optimizations disabled. 15366 15367 src/liblzma/check/crc_clmul.c | 30 +++++++++++++++--------------- 15368 1 file changed, 15 insertions(+), 15 deletions(-) 15369 15370commit 5ce0f7a48bdf5c3b45430850a4487307afac6143 15371Author: Lasse Collin <lasse.collin@tukaani.org> 15372Date: 2023-10-18 14:30:00 +0300 15373 15374 liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc. 15375 15376 src/liblzma/check/crc_common.h | 4 +++- 15377 1 file changed, 3 insertions(+), 1 deletion(-) 15378 15379commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b 15380Author: Lasse Collin <lasse.collin@tukaani.org> 15381Date: 2023-10-17 21:53:11 +0300 15382 15383 liblzma: Include common.h in crc_common.h. 15384 15385 crc_common.h depends on common.h. The headers include common.h except 15386 when there is a reason to not do so. 15387 15388 src/liblzma/check/crc_clmul.c | 1 - 15389 src/liblzma/check/crc_common.h | 3 +++ 15390 2 files changed, 3 insertions(+), 1 deletion(-) 15391 15392commit e13b7947b92355c334edd594295d3a2c99c4bca1 15393Author: Jia Tan <jiat0218@gmail.com> 15394Date: 2023-10-18 01:23:26 +0800 15395 15396 liblzma: Add include guards to crc_common.h. 15397 15398 src/liblzma/check/crc_common.h | 5 +++++ 15399 1 file changed, 5 insertions(+) 15400 15401commit 40abd88afcc61a8157fcd12d78d491caeb8e12be 15402Author: Jia Tan <jiat0218@gmail.com> 15403Date: 2023-10-18 22:50:25 +0800 15404 15405 liblzma: Add the crc_always_inline macro to crc_simd_body(). 15406 15407 Forcing this to be inline has a significant speed improvement at the 15408 cost of a few repeated instructions. The compilers tested on did not 15409 inline this function since it is large and is used twice in the same 15410 translation unit. 15411 15412 src/liblzma/check/crc_clmul.c | 2 +- 15413 1 file changed, 1 insertion(+), 1 deletion(-) 15414 15415commit a5966c276bd6fa975f0389f8a8dc61393de750b0 15416Author: Jia Tan <jiat0218@gmail.com> 15417Date: 2023-10-18 22:48:19 +0800 15418 15419 liblzma: Create crc_always_inline macro. 15420 15421 This macro must be used instead of the inline keyword. On MSVC, it is 15422 a replacement for __forceinline which is an MSVC specific keyword that 15423 should not be used with inline (it will issue a warning if it is). 15424 15425 It does not use a build system check to determine if 15426 __attribute__((__always_inline__)) since all compilers that can use 15427 CLMUL extensions (except the special case for MSVC) should support this 15428 attribute. If this assumption is incorrect then it will result in a bug 15429 report instead of silently producing slow code. 15430 15431 src/liblzma/check/crc_common.h | 15 +++++++++++++++ 15432 1 file changed, 15 insertions(+) 15433 15434commit 96b663f67c0e738a99ba8f35d9f4ced9add74544 15435Author: Jia Tan <jiat0218@gmail.com> 15436Date: 2023-10-14 13:23:23 +0800 15437 15438 liblzma: Refactor CRC comments. 15439 15440 A detailed description of the three dispatch methods was added. Also, 15441 duplicated comments now only appear in crc32_fast.c or were removed from 15442 both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c. 15443 15444 src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++------------- 15445 src/liblzma/check/crc64_fast.c | 61 ++++++---------------------------------- 15446 2 files changed, 53 insertions(+), 72 deletions(-) 15447 15448commit 8c0f9376f58c0696d5d6719705164d35542dd891 15449Author: Jia Tan <jiat0218@gmail.com> 15450Date: 2023-10-14 12:17:57 +0800 15451 15452 liblzma: Create crc_clmul.c. 15453 15454 Both crc32_clmul() and crc64_clmul() are now exported from 15455 crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This 15456 ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is 15457 not duplicated between crc32_fast.c and crc64_fast.c. 15458 15459 Also, it encapsulates the complexity of the CLMUL implementations into a 15460 single file and reduces the complexity of crc32_fast.c and crc64_fast.c. 15461 Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and 15462 crc_common.h. 15463 15464 During the conversion, various cleanups were applied to code (thanks to 15465 Lasse Collin) including: 15466 15467 - Require using semicolons with MASK_/L/H/LH macros. 15468 - Variable typing and const handling improvements. 15469 - Improvements to comments. 15470 - Fixes to the pragmas used. 15471 - Removed unneeded variables. 15472 - Whitespace improvements. 15473 - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling. 15474 - Silenced warnings and removed the need for some #pragmas 15475 15476 CMakeLists.txt | 6 +- 15477 configure.ac | 6 +- 15478 src/liblzma/check/Makefile.inc | 3 + 15479 src/liblzma/check/crc32_fast.c | 120 +----------- 15480 src/liblzma/check/crc64_fast.c | 128 +------------ 15481 src/liblzma/check/crc_clmul.c | 414 +++++++++++++++++++++++++++++++++++++++++ 15482 src/liblzma/check/crc_common.h | 190 +------------------ 15483 7 files changed, 444 insertions(+), 423 deletions(-) 15484 15485commit a3ebc2c516b09616638060806c841bd4bcf7bce3 15486Author: Jia Tan <jiat0218@gmail.com> 15487Date: 2023-10-14 10:23:03 +0800 15488 15489 liblzma: Define CRC_USE_IFUNC in crc_common.h. 15490 15491 When ifunc is supported, we can define a simpler macro instead of 15492 repeating the more complex check in both crc32_fast.c and crc64_fast.c. 15493 15494 src/liblzma/check/crc32_fast.c | 3 +-- 15495 src/liblzma/check/crc64_fast.c | 3 +-- 15496 src/liblzma/check/crc_common.h | 5 +++++ 15497 3 files changed, 7 insertions(+), 4 deletions(-) 15498 15499commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17 15500Author: Hans Jansen <hansjansen162@outlook.com> 15501Date: 2023-10-12 19:37:01 +0200 15502 15503 liblzma: Added crc32_clmul to crc32_fast.c. 15504 15505 src/liblzma/check/crc32_fast.c | 247 ++++++++++++++++++++++++++++++++++++++-- 15506 src/liblzma/check/crc32_table.c | 19 +++- 15507 2 files changed, 255 insertions(+), 11 deletions(-) 15508 15509commit 93e6fb08b22c7c13be2dd1e7274fe78413436254 15510Author: Hans Jansen <hansjansen162@outlook.com> 15511Date: 2023-10-12 19:23:40 +0200 15512 15513 liblzma: Moved CLMUL CRC logic to crc_common.h. 15514 15515 crc64_fast.c was updated to use the code from crc_common.h instead. 15516 15517 src/liblzma/check/crc64_fast.c | 257 ++--------------------------------------- 15518 src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++- 15519 2 files changed, 240 insertions(+), 247 deletions(-) 15520 15521commit 233885a437f8b55a5c8442984ebc0aaa579e92de 15522Author: Hans Jansen <hansjansen162@outlook.com> 15523Date: 2023-10-12 19:07:50 +0200 15524 15525 liblzma: Rename crc_macros.h to crc_common.h. 15526 15527 CMakeLists.txt | 2 +- 15528 src/liblzma/check/Makefile.inc | 2 +- 15529 src/liblzma/check/crc32_fast.c | 2 +- 15530 src/liblzma/check/crc64_fast.c | 2 +- 15531 src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +- 15532 5 files changed, 5 insertions(+), 5 deletions(-) 15533 15534commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd 15535Author: Gabriela Gutierrez <gabigutierrez@google.com> 15536Date: 2023-09-26 15:55:13 +0000 15537 15538 CI: Bump and ref actions by commit SHA in windows-ci.yml 15539 15540 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 15541 15542 It's important to make sure the SHA's are from the original repositories and not forks. 15543 15544 For reference: 15545 15546 https://github.com/msys2/setup-msys2/releases/tag/v2.20.1 15547 https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d 15548 15549 https://github.com/actions/checkout/releases/tag/v4.1.0 15550 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 15551 15552 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 15553 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 15554 15555 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 15556 15557 .github/workflows/windows-ci.yml | 6 +++--- 15558 1 file changed, 3 insertions(+), 3 deletions(-) 15559 15560commit f28cc9bd481ce493da11f98c18526d324211599a 15561Author: Gabriela Gutierrez <gabigutierrez@google.com> 15562Date: 2023-09-26 14:35:08 +0000 15563 15564 CI: Bump and ref actions by commit SHA in ci.yml 15565 15566 Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. 15567 15568 It's important to make sure the SHA's are from the original repositories and not forks. 15569 15570 For reference: 15571 15572 https://github.com/actions/checkout/releases/tag/v4.1.0 15573 https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 15574 15575 https://github.com/actions/upload-artifact/releases/tag/v3.1.3 15576 https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 15577 15578 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 15579 15580 .github/workflows/ci.yml | 4 ++-- 15581 1 file changed, 2 insertions(+), 2 deletions(-) 15582 15583commit f74f1740067b75042497edbfa6ea457ff75484b9 15584Author: Jia Tan <jiat0218@gmail.com> 15585Date: 2023-10-12 20:12:18 +0800 15586 15587 Build: Update visibility.m4 from Gnulib. 15588 15589 Updating from version 6 -> 8 from upstream. Declarations for variables 15590 and function bodies were added to avoid unnecessary failures with 15591 -Werror. 15592 15593 m4/visibility.m4 | 9 +++++++-- 15594 1 file changed, 7 insertions(+), 2 deletions(-) 15595 15596commit 5c4bca521e6fb435898a0012b3276eee70a6dadf 15597Author: Lasse Collin <lasse.collin@tukaani.org> 15598Date: 2023-10-06 19:36:35 +0300 15599 15600 Update THANKS. 15601 15602 THANKS | 1 + 15603 1 file changed, 1 insertion(+) 15604 15605commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b 15606Author: Lasse Collin <lasse.collin@tukaani.org> 15607Date: 2023-10-06 18:55:57 +0300 15608 15609 CMake/Windows: Fix when the windres workaround is applied. 15610 15611 CMake doesn't set WIN32 on CYGWIN but the workaround is 15612 probably needed on Cygwin too. Same for MSYS and MSYS2. 15613 15614 The workaround must not be used with Clang that is acting in 15615 MSVC mode. This fixes it by checking for the known environments 15616 that need the workaround instead of using "NOT MSVC". 15617 15618 Thanks to Martin Storsjö. 15619 https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431 15620 15621 CMakeLists.txt | 6 +++--- 15622 1 file changed, 3 insertions(+), 3 deletions(-) 15623 15624commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d 15625Author: Jia Tan <jiat0218@gmail.com> 15626Date: 2023-09-29 22:11:54 +0800 15627 15628 CI: Disable CLANG64 MSYS2 environment until bug is resolved. 15629 15630 lld 17.0.1 searches for libraries to link first in the toolchain 15631 directories before the local directory when building. The is a problem 15632 for us because liblzma.a is installed in MSYS2 CLANG64 by default and 15633 xz.exe will thus use the installed library instead of the one being 15634 built. 15635 15636 This causes tests to fail when they are expecting features to be 15637 disabled. More importantly, it will compile xz.exe with an incorrect 15638 liblzma and could cause unexpected behavior by being unable to update 15639 liblzma code in static builds. The CLANG64 environment can be tested 15640 again once this is fixed. 15641 15642 Link to bug: https://github.com/llvm/llvm-project/issues/67779. 15643 15644 .github/workflows/windows-ci.yml | 8 +++++--- 15645 1 file changed, 5 insertions(+), 3 deletions(-) 15646 15647commit 30d0c35327f3639cb11224872aa58fdbf0b1526e 15648Author: Jia Tan <jiat0218@gmail.com> 15649Date: 2023-09-29 20:14:39 +0800 15650 15651 CMake: Rename xz and man page symlink custom targets. 15652 15653 The Ninja Generator for CMake cannot have a custom target and its 15654 BYPRODUCTS have the same name. This has prevented Ninja builds on 15655 Unix-like systems since the xz symlinks were introduced in 15656 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 15657 15658 CMakeLists.txt | 6 +++--- 15659 1 file changed, 3 insertions(+), 3 deletions(-) 15660 15661commit 506d03127a8565442b028ec991e1578124fd3025 15662Author: Jia Tan <jiat0218@gmail.com> 15663Date: 2023-09-29 19:58:44 +0800 15664 15665 CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator. 15666 15667 CMake is unable to guess the linker language for just a header file so 15668 it must be explicitly set. 15669 15670 CMakeLists.txt | 6 ++++++ 15671 1 file changed, 6 insertions(+) 15672 15673commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f 15674Author: Lasse Collin <lasse.collin@tukaani.org> 15675Date: 2023-09-27 19:54:35 +0300 15676 15677 CMake: Fix Windows build with Clang/LLVM 17. 15678 15679 llvm-windres 17.0.0 has more accurate emulation of GNU windres, so 15680 the hack for GNU windres must now be used with llvm-windres too. 15681 15682 LLVM 16.0.6 has the old behavior and there likely won't be more 15683 16.x releases. So we can simply check for >= 17.0.0. 15684 15685 See also: 15686 https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 15687 15688 CMakeLists.txt | 26 ++++++++++++++------------ 15689 1 file changed, 14 insertions(+), 12 deletions(-) 15690 15691commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1 15692Author: Lasse Collin <lasse.collin@tukaani.org> 15693Date: 2023-09-26 21:47:13 +0300 15694 15695 liblzma: Update a comment. 15696 15697 The C standards don't allow an empty translation unit which can be 15698 avoided by declaring something, without exporting any symbols. 15699 15700 When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had 15701 a feeling that some specific toolchain somewhere didn't like 15702 empty object files (assembler or maybe "ar" complained) but 15703 I cannot find anything to confirm this now. Quite likely I 15704 remembered nonsense. I leave this here as a note to my future self. :-) 15705 15706 src/liblzma/check/crc64_table.c | 3 +-- 15707 1 file changed, 1 insertion(+), 2 deletions(-) 15708 15709commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499 15710Author: Jia Tan <jiat0218@gmail.com> 15711Date: 2023-09-27 00:02:11 +0800 15712 15713 liblzma: Avoid compiler warning without creating extra symbol. 15714 15715 When the generic fast crc64 method is used, then we omit 15716 lzma_crc64_table[][]. Similar to 15717 d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings 15718 with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a 15719 never used typedef instead of an extra symbol. 15720 15721 src/liblzma/check/crc64_table.c | 3 +-- 15722 1 file changed, 1 insertion(+), 2 deletions(-) 15723 15724commit 092d21db2e5eea19fe079264ce48c178989c7606 15725Author: Lasse Collin <lasse.collin@tukaani.org> 15726Date: 2023-09-26 17:24:15 +0300 15727 15728 Build: Update the comment about -Werror usage in checks. 15729 15730 configure.ac | 10 ++++++++-- 15731 1 file changed, 8 insertions(+), 2 deletions(-) 15732 15733commit a37a2763383e6c204fe878e1416dd35e7711d3a9 15734Author: Lasse Collin <lasse.collin@tukaani.org> 15735Date: 2023-09-26 15:00:43 +0300 15736 15737 Build: Fix __attribute__((ifunc(...))) detection with clang -Wall. 15738 15739 Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic 15740 the two checks that need -Werror will still work. 15741 15742 At CMake side there is add_compile_options(-Wall -Wextra) 15743 but it didn't affect the -Werror tests. So with both Autotools 15744 and CMake only user-supplied CFLAGS could make the checks fail 15745 when they shouldn't. 15746 15747 This is not a full fix as things like -Wunused-macros in 15748 user-supplied CFLAGS will still cause problems with both 15749 GCC and Clang. 15750 15751 CMakeLists.txt | 8 ++++++++ 15752 configure.ac | 8 ++++++++ 15753 2 files changed, 16 insertions(+) 15754 15755commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2 15756Author: Lasse Collin <lasse.collin@tukaani.org> 15757Date: 2023-09-26 13:51:31 +0300 15758 15759 Build: Fix underquoted AC_LANG_SOURCE. 15760 15761 It made no practical difference in this case. 15762 15763 configure.ac | 2 +- 15764 1 file changed, 1 insertion(+), 1 deletion(-) 15765 15766commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982 15767Author: Lasse Collin <lasse.collin@tukaani.org> 15768Date: 2023-09-26 13:14:37 +0300 15769 15770 Build: Silence two Autoconf warnings. 15771 15772 There were two uses of AC_COMPILE_IFELSE that didn't use 15773 AC_LANG_SOURCE and Autoconf warned about these. The omission 15774 had been intentional but it turned out that this didn't do 15775 what I thought it would. 15776 15777 Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE 15778 inserts all #defines that have been made with AC_DEFINE so 15779 far (confdefs.h). The idea was that omitting AC_LANG_SOURCE 15780 would mean that only the exact code included in the 15781 AC_COMPILE_IFELSE call would be compiled. 15782 15783 With C programs this is not true: the #defines get added without 15784 AC_LANG_SOURCE too. There seems to be no neat way to avoid this. 15785 Thus, with the C language at least, adding AC_LANG_SOURCE makes 15786 no other difference than silencing a warning from Autoconf. The 15787 generated "configure" remains identical. (Docs of AC_LANG_CONFTEST 15788 say that the #defines have been inserted since Autoconf 2.63b and 15789 that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is 15790 documented if one also reads the docs of macros that one isn't 15791 calling directly.) 15792 15793 Any extra code, including #defines, can cause problems for 15794 these two tests because these tests must use -Werror. 15795 CC=clang CFLAGS=-Weverything is the most extreme example. 15796 It enables -Wreserved-macro-identifier which warns about 15797 #define __EXTENSIONS__ 1 because it begins with two underscores. 15798 It's possible to write a test file that passes -Weverything but 15799 it becomes impossible when Autoconf inserts confdefs.h. 15800 15801 So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. 15802 A different solution is needed for -Werror tests. 15803 15804 configure.ac | 9 ++++----- 15805 1 file changed, 4 insertions(+), 5 deletions(-) 15806 15807commit 519e47c2818acde571fadc79551294527fe6cc22 15808Author: Jia Tan <jiat0218@gmail.com> 15809Date: 2023-09-26 01:17:11 +0800 15810 15811 CMake: Remove accidental extra newline. 15812 15813 CMakeLists.txt | 1 - 15814 1 file changed, 1 deletion(-) 15815 15816commit bbb42412da6a02705ba3e668e90840c2683e4e67 15817Author: Jia Tan <jiat0218@gmail.com> 15818Date: 2023-09-26 00:47:26 +0800 15819 15820 Build: Remove Gnulib dependency from tests. 15821 15822 The tests do not use any Gnulib replacements so they do not need to link 15823 libgnu.a or have /lib in the include path. 15824 15825 tests/Makefile.am | 7 +------ 15826 1 file changed, 1 insertion(+), 6 deletions(-) 15827 15828commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa 15829Author: Jia Tan <jiat0218@gmail.com> 15830Date: 2023-09-26 00:43:43 +0800 15831 15832 CMake: Remove /lib from tests include path. 15833 15834 The tests never included anything from /lib, so this was not needed. 15835 15836 CMakeLists.txt | 1 - 15837 1 file changed, 1 deletion(-) 15838 15839commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f 15840Author: Jia Tan <jiat0218@gmail.com> 15841Date: 2023-09-24 22:10:41 +0800 15842 15843 Scripts: Change quoting style from `...' to '...'. 15844 15845 src/scripts/xzdiff.in | 2 +- 15846 src/scripts/xzgrep.in | 2 +- 15847 2 files changed, 2 insertions(+), 2 deletions(-) 15848 15849commit eaebdef4d4de3c088b0905f42626b74e0d23abf3 15850Author: Jia Tan <jiat0218@gmail.com> 15851Date: 2023-09-24 22:10:18 +0800 15852 15853 xz: Change quoting style from `...' to '...'. 15854 15855 src/xz/args.c | 6 +++--- 15856 src/xz/file_io.c | 2 +- 15857 src/xz/main.c | 4 ++-- 15858 src/xz/message.c | 14 +++++++------- 15859 src/xz/options.c | 2 +- 15860 src/xz/suffix.c | 2 +- 15861 src/xz/util.c | 6 +++--- 15862 7 files changed, 18 insertions(+), 18 deletions(-) 15863 15864commit f6667702bf075a05fbe336dbf3576ad1a82ec645 15865Author: Jia Tan <jiat0218@gmail.com> 15866Date: 2023-09-24 22:09:47 +0800 15867 15868 liblzma: Change quoting style from `...' to '...'. 15869 15870 This was done for both internal and API headers. 15871 15872 src/liblzma/api/lzma/base.h | 18 +++++++++--------- 15873 src/liblzma/api/lzma/container.h | 10 +++++----- 15874 src/liblzma/api/lzma/filter.h | 6 +++--- 15875 src/liblzma/api/lzma/index.h | 8 ++++---- 15876 src/liblzma/api/lzma/lzma12.h | 2 +- 15877 src/liblzma/lz/lz_encoder.h | 2 +- 15878 src/liblzma/rangecoder/range_decoder.h | 2 +- 15879 7 files changed, 24 insertions(+), 24 deletions(-) 15880 15881commit be012b8097a4eaee335b51357d6befa745f753ce 15882Author: Jia Tan <jiat0218@gmail.com> 15883Date: 2023-09-24 22:09:16 +0800 15884 15885 Build: Change quoting style from `...' to '...'. 15886 15887 configure.ac | 18 +++++++++--------- 15888 dos/config.h | 6 +++--- 15889 m4/getopt.m4 | 2 +- 15890 m4/tuklib_progname.m4 | 2 +- 15891 windows/build.bash | 2 +- 15892 5 files changed, 15 insertions(+), 15 deletions(-) 15893 15894commit ce162db07f03495bd333696e66883c8f36abdc1e 15895Author: Jia Tan <jiat0218@gmail.com> 15896Date: 2023-09-24 22:05:02 +0800 15897 15898 Docs: Change quoting style from `...' to '...'. 15899 15900 These days the ` and ' do not look symmetric. This quoting style has 15901 been changed in various apps over the years including the GNU tools. 15902 15903 INSTALL | 6 +++--- 15904 doc/examples/01_compress_easy.c | 2 +- 15905 doc/examples/11_file_info.c | 16 ++++++++-------- 15906 3 files changed, 12 insertions(+), 12 deletions(-) 15907 15908commit db17656721e43939bfa4ec13506e7c76f4b86da6 15909Author: Jia Tan <jiat0218@gmail.com> 15910Date: 2023-09-24 21:25:01 +0800 15911 15912 lib: Silence -Wsign-conversion in getopt.c. 15913 15914 lib/getopt.c | 6 +++--- 15915 1 file changed, 3 insertions(+), 3 deletions(-) 15916 15917commit a6234f677d66888f435010bc0b67de6a32fefcf6 15918Author: Jia Tan <jiat0218@gmail.com> 15919Date: 2023-09-24 20:48:52 +0800 15920 15921 Build: Update getopt.m4 from Gnulib. 15922 15923 This file was modified from upstream since we do not need to replace 15924 getopt() and can avoid complexity and feature tests. 15925 15926 m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------ 15927 1 file changed, 39 insertions(+), 40 deletions(-) 15928 15929commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10 15930Author: Jia Tan <jiat0218@gmail.com> 15931Date: 2023-09-26 00:09:53 +0800 15932 15933 CMake: Add /lib to include path. 15934 15935 CMakeLists.txt | 5 +++++ 15936 1 file changed, 5 insertions(+) 15937 15938commit 01804a0b4b64e0f33568e947e0579263808c59d3 15939Author: Jia Tan <jiat0218@gmail.com> 15940Date: 2023-09-24 20:36:34 +0800 15941 15942 CMake: Update libgnu target with new header files. 15943 15944 CMakeLists.txt | 5 +++++ 15945 1 file changed, 5 insertions(+) 15946 15947commit d34558388fe1d8929f6478d61dc322eb4f2900af 15948Author: Jia Tan <jiat0218@gmail.com> 15949Date: 2023-09-23 00:47:52 +0800 15950 15951 lib: Update Makefile.am for new header files. 15952 15953 lib/Makefile.am | 12 +++++++++++- 15954 1 file changed, 11 insertions(+), 1 deletion(-) 15955 15956commit 52bf644bdf536e20fcc743b712cede135e05eec5 15957Author: Jia Tan <jiat0218@gmail.com> 15958Date: 2023-09-24 20:34:03 +0800 15959 15960 lib: Update getopt1.c from Gnulib. 15961 15962 The only difference was maintaining the conditional inclusion for 15963 config.h. 15964 15965 lib/getopt1.c | 56 ++++++++++++++++++++++---------------------------------- 15966 1 file changed, 22 insertions(+), 34 deletions(-) 15967 15968commit 7e884c00d0093c38339f17fb1d280eec493f42ca 15969Author: Jia Tan <jiat0218@gmail.com> 15970Date: 2023-09-23 03:27:00 +0800 15971 15972 lib: Update getopt.in.h from Gnulib with modifications. 15973 15974 We can still avoid modifying the contents of this file during 15975 configuration to simplify the build systems. Gnulib added replacements 15976 for inclusions guards for Cygwin. Cygwin should not need getopt_long 15977 replacement so this feature can be omitted. 15978 15979 <unistd.h> is conditionally included to avoid MSVC since it is not 15980 available. 15981 15982 The definition for _GL_ARG_NONNULL was also copied into this file from 15983 Gnulib since this stage is usually done during gnulib-tool. 15984 15985 lib/getopt.in.h | 228 +++++++------------------------------------------------- 15986 1 file changed, 29 insertions(+), 199 deletions(-) 15987 15988commit cff05f82066ca3ce9425dafdb086325a8eef8de3 15989Author: Jia Tan <jiat0218@gmail.com> 15990Date: 2023-09-23 00:31:55 +0800 15991 15992 lib: Update getopt_int.h from Gnulib. 15993 15994 lib/getopt_int.h | 109 ++++++++++++++++++++++++------------------------------- 15995 1 file changed, 48 insertions(+), 61 deletions(-) 15996 15997commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024 15998Author: Jia Tan <jiat0218@gmail.com> 15999Date: 2023-09-23 00:27:23 +0800 16000 16001 lib: Update getopt.c from Gnulib with modifications. 16002 16003 The code maintains the prior modifications of conditionally including 16004 config.h and disabling NLS support. 16005 16006 _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED 16007 is only used for these two parameters so its simpler than having to 16008 define it. 16009 16010 lib/getopt.c | 1134 +++++++++++++++++++--------------------------------------- 16011 1 file changed, 377 insertions(+), 757 deletions(-) 16012 16013commit 56b42be7287844db20b3a3bc1372c6ae8c040d63 16014Author: Jia Tan <jiat0218@gmail.com> 16015Date: 2023-09-23 00:18:56 +0800 16016 16017 lib: Add getopt-cdefs.h for getopt_long update. 16018 16019 This was modified slightly from Gnulib. In Gnulib, it expects the 16020 @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H 16021 on systems that have it and avoid copying another file into the build 16022 directory. Since we are not using gnulib-tool, copying extra files 16023 requires extra build system updates (and special handling with CMake) so 16024 we should avoid when possible. 16025 16026 lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16027 1 file changed, 70 insertions(+) 16028 16029commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196 16030Author: Jia Tan <jiat0218@gmail.com> 16031Date: 2023-09-23 00:15:25 +0800 16032 16033 lib: Copy new header files from Gnulib without modification. 16034 16035 The getopt related files have changed from Gnulib by splitting up 16036 getopt.in.h into more modular header files. We could have kept 16037 everything in just getopt.in.h, but this will help us continue to update 16038 in the future. 16039 16040 lib/getopt-core.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ 16041 lib/getopt-ext.h | 77 +++++++++++++++++++++++++++++++++++++++++ 16042 lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++ 16043 lib/getopt-pfx-ext.h | 70 +++++++++++++++++++++++++++++++++++++ 16044 4 files changed, 309 insertions(+) 16045 16046commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93 16047Author: Lasse Collin <lasse.collin@tukaani.org> 16048Date: 2023-09-22 21:16:52 +0300 16049 16050 Windows: Update the version requirement comments from Win95 to W2k. 16051 16052 windows/README-Windows.txt | 10 ++++------ 16053 windows/build.bash | 6 +++--- 16054 2 files changed, 7 insertions(+), 9 deletions(-) 16055 16056commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1 16057Author: Lasse Collin <lasse.collin@tukaani.org> 16058Date: 2023-09-22 21:12:54 +0300 16059 16060 tuklib_physmem: Comment out support for Windows versions older than 2000. 16061 16062 src/common/tuklib_physmem.c | 20 +++++++++----------- 16063 1 file changed, 9 insertions(+), 11 deletions(-) 16064 16065commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a 16066Author: Lasse Collin <lasse.collin@tukaani.org> 16067Date: 2023-09-24 16:32:32 +0300 16068 16069 sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. 16070 16071 src/common/sysdefs.h | 10 +++++++++- 16072 1 file changed, 9 insertions(+), 1 deletion(-) 16073 16074commit 2a9929af0ab7e6c0ab725565034afe3293e51d71 16075Author: Lasse Collin <lasse.collin@tukaani.org> 16076Date: 2023-09-22 02:33:29 +0300 16077 16078 xz: Windows: Don't (de)compress to special files like "con" or "nul". 16079 16080 Before this commit, the following writes "foo" to the 16081 console and deletes the input file: 16082 16083 echo foo | xz > con_xz 16084 xz --suffix=_xz --decompress con_xz 16085 16086 It cannot happen without --suffix because names like con.xz 16087 are also special and so attempting to decompress con.xz 16088 (or compress con to con.xz) will already fail when opening 16089 the input file. 16090 16091 Similar thing is possible when compressing. The following 16092 writes to "nul" and the input file "n" is deleted. 16093 16094 echo foo | xz > n 16095 xz --suffix=ul n 16096 16097 Now xz checks if the destination is a special file before 16098 continuing. DOS/DJGPP version had a check for this but 16099 Windows (and OS/2) didn't. 16100 16101 src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- 16102 1 file changed, 28 insertions(+), 7 deletions(-) 16103 16104commit 01311b81f03cce1c0ce847a3d556f84dbd439343 16105Author: Lasse Collin <lasse.collin@tukaani.org> 16106Date: 2023-09-21 20:42:52 +0300 16107 16108 CMake: Wrap two overlong lines that are possible to wrap. 16109 16110 CMakeLists.txt | 6 ++++-- 16111 1 file changed, 4 insertions(+), 2 deletions(-) 16112 16113commit 152d0771ddd0cffcac9042ad1a66f110d228eee2 16114Author: Lasse Collin <lasse.collin@tukaani.org> 16115Date: 2023-09-21 20:36:31 +0300 16116 16117 CMake: Add a comment about threads on Cygwin. 16118 16119 CMakeLists.txt | 1 + 16120 1 file changed, 1 insertion(+) 16121 16122commit 6df988cceffaa3100b428ed816fad334935b27bf 16123Author: Lasse Collin <lasse.collin@tukaani.org> 16124Date: 2023-09-12 23:53:25 +0300 16125 16126 MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt. 16127 16128 CMake is now the preferred build file generator when building 16129 with MSVC. 16130 16131 windows/INSTALL-MSVC.txt | 37 ++-- 16132 windows/vs2013/config.h | 157 --------------- 16133 windows/vs2013/liblzma.vcxproj | 363 --------------------------------- 16134 windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------ 16135 windows/vs2013/xz_win.sln | 48 ----- 16136 windows/vs2017/config.h | 157 --------------- 16137 windows/vs2017/liblzma.vcxproj | 363 --------------------------------- 16138 windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------ 16139 windows/vs2017/xz_win.sln | 48 ----- 16140 windows/vs2019/config.h | 157 --------------- 16141 windows/vs2019/liblzma.vcxproj | 364 --------------------------------- 16142 windows/vs2019/liblzma_dll.vcxproj | 399 ------------------------------------- 16143 windows/vs2019/xz_win.sln | 51 ----- 16144 13 files changed, 12 insertions(+), 2928 deletions(-) 16145 16146commit edd563daf0da1d00018684614803c77ab62efcd6 16147Author: Lasse Collin <lasse.collin@tukaani.org> 16148Date: 2023-09-21 19:17:40 +0300 16149 16150 CMake: Require VS2015 or later for building xzdec. 16151 16152 xzdec might build with VS2013 but it hasn't been tested. 16153 It was never supported before and VS2013 is old anyway 16154 so for simplicity only liblzma is supported with VS2013. 16155 16156 CMakeLists.txt | 2 +- 16157 1 file changed, 1 insertion(+), 1 deletion(-) 16158 16159commit daea64d158a7151ca6c255a0e4554c6d521cd589 16160Author: Lasse Collin <lasse.collin@tukaani.org> 16161Date: 2023-09-12 23:43:49 +0300 16162 16163 CMake: Allow building xz with Visual Studio 2015 and later. 16164 16165 Building the command line tools xz and xzdec with the combination 16166 of CMake + Visual Studio 2015/2017/2019/2022 works now. 16167 16168 VS2013 update 2 should still be able to build liblzma. 16169 VS2013 cannot build the xz command line tool because xz 16170 needs snprintf() that roughly conforms to C99. 16171 VS2013 is old and no extra code will be added to support it. 16172 16173 Thanks to Kelvin Lee and Jia Tan for testing. 16174 16175 CMakeLists.txt | 2 +- 16176 1 file changed, 1 insertion(+), 1 deletion(-) 16177 16178commit 8c2d197c940d246849b2ec48109bb22e54036927 16179Author: Lasse Collin <lasse.collin@tukaani.org> 16180Date: 2023-09-12 23:34:31 +0300 16181 16182 MSVC: #define inline and restrict only when needed. 16183 16184 This also drops the check for _WIN32 as that shouldn't be needed. 16185 16186 src/common/sysdefs.h | 13 ++++++++----- 16187 1 file changed, 8 insertions(+), 5 deletions(-) 16188 16189commit af66cd585902045e5689a0418103ec81f19f1d0a 16190Author: Lasse Collin <lasse.collin@tukaani.org> 16191Date: 2023-09-12 22:16:56 +0300 16192 16193 CMake: Add support for replacement getopt_long (lib/getopt*). 16194 16195 Thanks to Jia Tan for the initial work. I added the libgnu target 16196 and made a few related minor edits. 16197 16198 CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 16199 1 file changed, 47 insertions(+), 7 deletions(-) 16200 16201commit e3288fdb45c580cb849f6799cf419c4922004ae5 16202Author: Lasse Collin <lasse.collin@tukaani.org> 16203Date: 2023-09-12 21:12:34 +0300 16204 16205 CMake: Bump maximum policy version to 3.27. 16206 16207 There are several new policies. CMP0149 may affect the Windows SDK 16208 version that CMake will choose by default. The new behavior is more 16209 predictable, always choosing the latest SDK version by default. 16210 16211 The other new policies shouldn't affect this package. 16212 16213 CMakeLists.txt | 2 +- 16214 1 file changed, 1 insertion(+), 1 deletion(-) 16215 16216commit aff1b479c7b168652bd20305ceed4317d5db6661 16217Author: Lasse Collin <lasse.collin@tukaani.org> 16218Date: 2023-09-12 20:55:10 +0300 16219 16220 lib/getopt*.c: Include <config.h> only HAVE_CONFIG_H is defined. 16221 16222 The CMake-based build doesn't use config.h. 16223 16224 Up-to-date getopt_long in Gnulib is LGPLv2 so at some 16225 point it could be included in XZ Utils too but for now 16226 this commit is enough to make CMake-based build possible. 16227 16228 lib/getopt.c | 4 +++- 16229 lib/getopt1.c | 4 +++- 16230 2 files changed, 6 insertions(+), 2 deletions(-) 16231 16232commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5 16233Author: Lasse Collin <lasse.collin@tukaani.org> 16234Date: 2023-09-08 19:08:57 +0300 16235 16236 Doxygen: Add more C macro names to PREDEFINED. 16237 16238 doxygen/Doxyfile | 7 +++++-- 16239 1 file changed, 5 insertions(+), 2 deletions(-) 16240 16241commit ee7709bae53637e1765ce142ef102914f1423cb5 16242Author: Lasse Collin <lasse.collin@tukaani.org> 16243Date: 2023-09-11 18:47:26 +0300 16244 16245 liblzma: Move a few __attribute__ uses in function declarations. 16246 16247 The API headers have many attributes but these were left 16248 as is for now. 16249 16250 src/liblzma/common/common.c | 6 ++++-- 16251 src/liblzma/common/common.h | 8 ++++---- 16252 src/liblzma/common/memcmplen.h | 3 ++- 16253 3 files changed, 10 insertions(+), 7 deletions(-) 16254 16255commit 217958d88713b5dc73d366d24dd64b2b311b86fe 16256Author: Lasse Collin <lasse.collin@tukaani.org> 16257Date: 2023-09-11 19:03:35 +0300 16258 16259 xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. 16260 16261 For compatibility with C23's [[noreturn]], tuklib_attr_noreturn 16262 must be at the beginning of declaration (before "extern" or 16263 "static", and even before any GNU C's __attribute__). 16264 16265 This commit also moves all other function attributes to 16266 the beginning of function declarations. "extern" is kept 16267 at the beginning of a line so the attributes are listed on 16268 separate lines before "extern" or "static". 16269 16270 src/lzmainfo/lzmainfo.c | 6 ++++-- 16271 src/xz/coder.c | 3 ++- 16272 src/xz/hardware.h | 3 ++- 16273 src/xz/message.h | 30 +++++++++++++++++------------- 16274 src/xz/options.c | 3 ++- 16275 src/xz/util.h | 8 ++++---- 16276 src/xzdec/xzdec.c | 9 ++++++--- 16277 7 files changed, 37 insertions(+), 25 deletions(-) 16278 16279commit 18a66fbac031c98f9c2077fc88846e4d07849197 16280Author: Lasse Collin <lasse.collin@tukaani.org> 16281Date: 2023-09-11 18:53:31 +0300 16282 16283 Remove incorrect uses of __attribute__((__malloc__)). 16284 16285 xrealloc() is obviously incorrect, modern GCC docs even 16286 mention realloc() as an example where this attribute 16287 cannot be used. 16288 16289 liblzma's lzma_alloc() and lzma_alloc_zero() would be 16290 correct uses most of the time but custom allocators 16291 may use a memory pool or otherwise hold the pointer 16292 so aliasing issues could happen in theory. 16293 16294 The xstrdup() case likely was correct but I removed it anyway. 16295 Now there are no __malloc__ attributes left in the code. 16296 The allocations aren't in hot paths so this should make 16297 no practical difference. 16298 16299 src/liblzma/common/common.c | 4 ++-- 16300 src/liblzma/common/common.h | 4 ++-- 16301 src/xz/util.h | 4 ++-- 16302 3 files changed, 6 insertions(+), 6 deletions(-) 16303 16304commit 74b0e900c92d5b222b36f474f1efa431f8e262f7 16305Author: Lasse Collin <lasse.collin@tukaani.org> 16306Date: 2023-09-08 18:41:25 +0300 16307 16308 Build: Omit -Wc99-c11-compat since it warns about _Noreturn. 16309 16310 configure.ac | 1 - 16311 1 file changed, 1 deletion(-) 16312 16313commit 90c94dddfd57b7d744bfad64c54e10d15778144b 16314Author: Lasse Collin <lasse.collin@tukaani.org> 16315Date: 2023-09-08 18:19:26 +0300 16316 16317 tuklib: Update tuklib_attr_noreturn for C11/C17 and C23. 16318 16319 This makes no difference for GCC or Clang as they support 16320 GNU C's __attribute__((__noreturn__)) but this helps with MSVC: 16321 16322 - VS 2019 version 16.7 and later support _Noreturn if the 16323 options /std:c11 or /std:c17 are used. This gets handled 16324 with the check for __STDC_VERSION__ >= 201112. 16325 16326 - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used. 16327 16328 C23 will deprecate _Noreturn (and <stdnoreturn.h>) 16329 for [[noreturn]]. This commit anticipates that but 16330 the final __STDC_VERSION__ value isn't known yet. 16331 16332 src/common/tuklib_common.h | 22 +++++++++++++++++++++- 16333 src/common/tuklib_exit.h | 4 ++-- 16334 2 files changed, 23 insertions(+), 3 deletions(-) 16335 16336commit 189f72581329ab281ad6af37f60135910cb1b146 16337Author: Lasse Collin <lasse.collin@tukaani.org> 16338Date: 2023-09-11 17:22:44 +0300 16339 16340 Update THANKS. 16341 16342 THANKS | 1 + 16343 1 file changed, 1 insertion(+) 16344 16345commit 79334e7f20f2bf9e0de095835b48868f1238f584 16346Author: Lasse Collin <lasse.collin@tukaani.org> 16347Date: 2023-09-05 22:42:10 +0300 16348 16349 MSVC: xz: Make file_io.c and file_io.h compatible with MSVC. 16350 16351 Thanks to Kelvin Lee for the original patches 16352 and testing the modifications I made. 16353 16354 src/xz/file_io.c | 26 ++++++++++++++++++++++++++ 16355 src/xz/file_io.h | 10 ++++++++++ 16356 2 files changed, 36 insertions(+) 16357 16358commit c660b8d78b7bda43b12b285550d8c70e8ccec698 16359Author: Lasse Collin <lasse.collin@tukaani.org> 16360Date: 2023-09-05 21:33:35 +0300 16361 16362 MSVC: xz: Use GetTickCount64() to implement mytime_now(). 16363 16364 It's available since Windows Vista. 16365 16366 src/xz/mytime.c | 11 +++++++++-- 16367 1 file changed, 9 insertions(+), 2 deletions(-) 16368 16369commit 5c6f892d411670e3060f4bc309402617a209e57c 16370Author: Kelvin Lee <kiyolee@gmail.com> 16371Date: 2023-09-05 15:05:09 +0300 16372 16373 MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c. 16374 16375 src/xz/suffix.c | 10 ++++++++-- 16376 1 file changed, 8 insertions(+), 2 deletions(-) 16377 16378commit e241051f50044259d174e8b4633dd9a1c4478408 16379Author: Kelvin Lee <kiyolee@gmail.com> 16380Date: 2023-09-05 15:01:10 +0300 16381 16382 MSVC: xz: Use _isatty() from <io.h> to implement isatty(). 16383 16384 src/xz/message.c | 5 +++++ 16385 src/xz/util.c | 5 +++++ 16386 2 files changed, 10 insertions(+) 16387 16388commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8 16389Author: Kelvin Lee <kiyolee@gmail.com> 16390Date: 2023-09-05 15:10:31 +0300 16391 16392 MSVC: xz: Use _fileno() instead of fileno(). 16393 16394 src/xz/private.h | 4 ++++ 16395 1 file changed, 4 insertions(+) 16396 16397commit c4edd367678e6a38c42b149856159bf417da7fe1 16398Author: Kelvin Lee <kiyolee@gmail.com> 16399Date: 2023-09-05 15:00:07 +0300 16400 16401 MSVC: xzdec: Use _fileno and _setmode. 16402 16403 src/xzdec/xzdec.c | 4 ++++ 16404 1 file changed, 4 insertions(+) 16405 16406commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0 16407Author: Kelvin Lee <kiyolee@gmail.com> 16408Date: 2023-09-05 14:37:50 +0300 16409 16410 MSVC: Don't #include <unistd.h>. 16411 16412 lib/getopt.c | 4 +++- 16413 lib/getopt.in.h | 4 +++- 16414 src/xz/private.h | 5 ++++- 16415 src/xzdec/xzdec.c | 5 ++++- 16416 4 files changed, 14 insertions(+), 4 deletions(-) 16417 16418commit adef92f23563a2cc088b31ddee9040ecc96bc996 16419Author: Lasse Collin <lasse.collin@tukaani.org> 16420Date: 2023-09-19 14:03:45 +0300 16421 16422 Update THANKS. 16423 16424 THANKS | 1 + 16425 1 file changed, 1 insertion(+) 16426 16427commit 953e775941a25bfcfa353f802b13e66acb1edf2c 16428Author: Jia Tan <jiat0218@gmail.com> 16429Date: 2023-09-14 21:13:23 +0800 16430 16431 CI: Enable CLMUL in address sanitization test. 16432 16433 The crc64_clmul() function should be ignored by the address sanitizer 16434 now so these builds should still pass. 16435 16436 .github/workflows/ci.yml | 12 ++++-------- 16437 1 file changed, 4 insertions(+), 8 deletions(-) 16438 16439commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77 16440Author: Lasse Collin <lasse.collin@tukaani.org> 16441Date: 2023-09-14 16:35:46 +0300 16442 16443 Update THANKS. 16444 16445 THANKS | 1 + 16446 1 file changed, 1 insertion(+) 16447 16448commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e 16449Author: Lasse Collin <lasse.collin@tukaani.org> 16450Date: 2023-09-14 16:34:07 +0300 16451 16452 liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). 16453 16454 Thanks to Agostino Sarubbo. 16455 Fixes: https://github.com/tukaani-project/xz/issues/62 16456 16457 src/liblzma/check/crc64_fast.c | 8 ++++++++ 16458 1 file changed, 8 insertions(+) 16459 16460commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08 16461Author: Jia Tan <jiat0218@gmail.com> 16462Date: 2023-09-12 22:36:12 +0800 16463 16464 CMake: Fix time.h checks not running on second CMake run. 16465 16466 If CMake was configured more than once, HAVE_CLOCK_GETTIME and 16467 HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check 16468 for librt being needed to provide HAVE_CLOCK_GETTIME was also 16469 simplified. 16470 16471 CMakeLists.txt | 18 ++++++++++-------- 16472 1 file changed, 10 insertions(+), 8 deletions(-) 16473 16474commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6 16475Author: Jia Tan <jiat0218@gmail.com> 16476Date: 2023-09-12 22:34:06 +0800 16477 16478 CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. 16479 16480 If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always 16481 added as a compile definition even if the check for it failed. 16482 16483 CMakeLists.txt | 8 +++----- 16484 1 file changed, 3 insertions(+), 5 deletions(-) 16485 16486commit eccf12866527b8d24c7d7f92f755142be8ef9b11 16487Author: Lasse Collin <lasse.collin@tukaani.org> 16488Date: 2023-08-31 19:50:05 +0300 16489 16490 xz: Refactor thousand separator detection and disable it on MSVC. 16491 16492 Now the two variations of the format strings are created with 16493 a macro, and the whole detection code can be easily disabled 16494 on platforms where thousand separator formatting is known to 16495 not work (MSVC has no support, and on DJGPP 2.05 it can have 16496 problems in some cases). 16497 16498 src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- 16499 1 file changed, 45 insertions(+), 44 deletions(-) 16500 16501commit f7093cd9d130477c234b40aeda613964171f8f21 16502Author: Lasse Collin <lasse.collin@tukaani.org> 16503Date: 2023-08-31 18:14:43 +0300 16504 16505 xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. 16506 16507 SSIZE_MAX isn't readily available on MSVC. Removing it means 16508 that there is one thing less to worry when porting to MSVC. 16509 16510 src/xz/file_io.c | 5 ++--- 16511 src/xz/file_io.h | 4 ++-- 16512 2 files changed, 4 insertions(+), 5 deletions(-) 16513 16514commit 74c3449d8b816a724b12ebce7417e00fb597309a 16515Author: Jia Tan <jiat0218@gmail.com> 16516Date: 2023-08-28 23:14:45 +0800 16517 16518 Tests: Improve invalid unpadded size check in test_lzma_index_append(). 16519 16520 This check was extended to test the code added to fix a failing assert 16521 in ae5c07b22a6b3766b84f409f1b6b5c100469068a. 16522 16523 tests/test_index.c | 26 +++++++++++++++++++++++--- 16524 1 file changed, 23 insertions(+), 3 deletions(-) 16525 16526commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336 16527Author: Jia Tan <jiat0218@gmail.com> 16528Date: 2023-08-28 21:54:41 +0800 16529 16530 Tests: Improve comments in test_index.c. 16531 16532 tests/test_index.c | 6 +++--- 16533 1 file changed, 3 insertions(+), 3 deletions(-) 16534 16535commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b 16536Author: Jia Tan <jiat0218@gmail.com> 16537Date: 2023-08-28 21:52:54 +0800 16538 16539 Update THANKS. 16540 16541 THANKS | 1 + 16542 1 file changed, 1 insertion(+) 16543 16544commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a 16545Author: Jia Tan <jiat0218@gmail.com> 16546Date: 2023-08-28 21:50:16 +0800 16547 16548 liblzma: Update assert in vli_ceil4(). 16549 16550 The argument to vli_ceil4() should always guarantee the return value 16551 is also a valid lzma_vli. Thus the highest three valid lzma_vli values 16552 are invalid arguments. All uses of the function ensure this so the 16553 assert is updated to match this. 16554 16555 src/liblzma/common/index.h | 2 +- 16556 1 file changed, 1 insertion(+), 1 deletion(-) 16557 16558commit ae5c07b22a6b3766b84f409f1b6b5c100469068a 16559Author: Jia Tan <jiat0218@gmail.com> 16560Date: 2023-08-28 21:31:25 +0800 16561 16562 liblzma: Add overflow check for Unpadded size in lzma_index_append(). 16563 16564 This was not a security bug since there was no path to overflow 16565 UINT64_MAX in lzma_index_append() or when it calls index_file_size(). 16566 The bug was discovered by a failing assert() in vli_ceil4() when called 16567 from index_file_size() when unpadded_sum (the sum of the compressed size 16568 of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. 16569 16570 Previously, the unpadded_size parameter was checked to be not greater 16571 than UNPADDED_SIZE_MAX, but no check was done once compressed_base was 16572 added. 16573 16574 This could not have caused an integer overflow in index_file_size() when 16575 called by lzma_index_append(). The calculation for file_size breaks down 16576 into the sum of: 16577 16578 - Compressed base from all previous Streams 16579 - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and 16580 footer) 16581 - stream_padding (can be set by lzma_index_stream_padding()) 16582 - Compressed base from the current Stream 16583 - Unpadded size (parameter to lzma_index_append()) 16584 16585 The sum of everything except for Unpadded size must be less than 16586 LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions 16587 that can set these values including lzma_index_stream_padding(), 16588 lzma_index_append(), and lzma_index_cat(). The maximum value for 16589 Unpadded size is enforced by lzma_index_append() to be less than or 16590 equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since 16591 LZMA_VLI_MAX is half of UINT64_MAX. 16592 16593 Thanks to Joona Kannisto for reporting this. 16594 16595 src/liblzma/common/index.c | 6 ++++++ 16596 1 file changed, 6 insertions(+) 16597 16598commit 1057765aaabfe0f1397b8094531846655376ae38 16599Author: Jia Tan <jiat0218@gmail.com> 16600Date: 2023-08-28 22:18:29 +0800 16601 16602 Translations: Update the Esperanto translation. 16603 16604 po/eo.po | 4 ++-- 16605 1 file changed, 2 insertions(+), 2 deletions(-) 16606 16607commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856 16608Author: Jia Tan <jiat0218@gmail.com> 16609Date: 2023-08-26 20:10:23 +0800 16610 16611 Translations: Update the Esperanto translation. 16612 16613 po/eo.po | 47 +++++++++++++++++++++++++++++------------------ 16614 1 file changed, 29 insertions(+), 18 deletions(-) 16615 16616commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3 16617Author: Jia Tan <jiat0218@gmail.com> 16618Date: 2023-08-09 20:55:36 +0800 16619 16620 Docs: Update INSTALL for --enable-threads method win95. 16621 16622 The Autotools build allows win95 threads and --enable-small together now 16623 if the compiler supports __attribute__((__constructor__)). 16624 16625 INSTALL | 6 ++++-- 16626 1 file changed, 4 insertions(+), 2 deletions(-) 16627 16628commit 356ad5b26b4196f085ce3afa1869154ca81faad8 16629Author: Jia Tan <jiat0218@gmail.com> 16630Date: 2023-08-09 20:54:15 +0800 16631 16632 CMake: Conditionally allow win95 threads and --enable-small. 16633 16634 CMakeLists.txt | 28 ++++++++++++++++++++-------- 16635 1 file changed, 20 insertions(+), 8 deletions(-) 16636 16637commit de574404c4c2f87aca049f232c38526e3ce092aa 16638Author: Jia Tan <jiat0218@gmail.com> 16639Date: 2023-08-09 20:35:16 +0800 16640 16641 Build: Conditionally allow win95 threads and --enable-small. 16642 16643 When the compiler supports __attribute__((__constructor__)) 16644 mythread_once() is never used, even with --enable-small. A configuration 16645 with win95 threads and --enable-small will compile and be thread safe so 16646 it can be allowed. 16647 16648 This isn't a very common configuration since MSVC does not support 16649 __attribute__((__constructor__)), but MINGW32 and CLANG32 environments 16650 for MSYS2 can use win95 threads and have 16651 __attribute__((__constructor__)) support. 16652 16653 configure.ac | 21 +++++++++++++-------- 16654 1 file changed, 13 insertions(+), 8 deletions(-) 16655 16656commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a 16657Author: Jamaika1 <lukaszcz18@wp.pl> 16658Date: 2023-08-08 14:07:59 +0200 16659 16660 mythread.h: Fix typo error in Vista threads mythread_once(). 16661 16662 The "once_" variable was accidentally referred to as just "once". This 16663 prevented building with Vista threads when 16664 HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. 16665 16666 src/common/mythread.h | 2 +- 16667 1 file changed, 1 insertion(+), 1 deletion(-) 16668 16669commit 80cb961e5380a3878246d41341ff91378ca59e05 16670Author: Jia Tan <jiat0218@gmail.com> 16671Date: 2023-08-04 22:17:11 +0800 16672 16673 codespell: Add .codespellrc to set default options. 16674 16675 The .codespellrc allows setting default options to avoid false positive 16676 matches, set additional dictionaries, etc. For now, codespell can be 16677 used locally before committing doc and comment changes. 16678 16679 It should help prevent silly errors and fix up commits in the future. 16680 16681 .codespellrc | 24 ++++++++++++++++++++++++ 16682 1 file changed, 24 insertions(+) 16683 16684commit cd678a6077358935249b64a4a16fe8d17434f9c9 16685Author: Jia Tan <jiat0218@gmail.com> 16686Date: 2023-08-03 20:10:21 +0800 16687 16688 Tests: Style fixes to test_lzip_decoder.c. 16689 16690 tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ 16691 1 file changed, 24 insertions(+), 12 deletions(-) 16692 16693commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81 16694Author: Jia Tan <jiat0218@gmail.com> 16695Date: 2023-08-03 15:56:20 +0800 16696 16697 Translations: Update the Chinese (simplified) translation. 16698 16699 po/zh_CN.po | 2 +- 16700 1 file changed, 1 insertion(+), 1 deletion(-) 16701 16702commit 16068f6c30b888cdb873f6285af941d00f95741d 16703Author: Lasse Collin <lasse.collin@tukaani.org> 16704Date: 2023-08-02 17:15:12 +0300 16705 16706 xz: Omit an empty paragraph on the man page. 16707 16708 src/xz/xz.1 | 1 - 16709 1 file changed, 1 deletion(-) 16710 16711commit 9ae4371b5106189486e850ce777e40f7b6021c0b 16712Author: Jia Tan <jiat0218@gmail.com> 16713Date: 2023-08-02 20:30:07 +0800 16714 16715 Add NEWS for 5.4.4. 16716 16717 NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ 16718 1 file changed, 43 insertions(+) 16719 16720commit e8c2203b2c76466d8d3387c5212b46151de8e605 16721Author: Lasse Collin <lasse.collin@tukaani.org> 16722Date: 2023-08-02 15:19:43 +0300 16723 16724 build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. 16725 16726 groff defaults to SGR escapes. Using -P-c passes -c to grotty 16727 which restores the old behavior. Perhaps there is a better way to 16728 get pure plain text output but this works for now. 16729 16730 build-aux/manconv.sh | 4 ++-- 16731 1 file changed, 2 insertions(+), 2 deletions(-) 16732 16733commit 9a706167b0d903d92fd134895acb4bc6a5e3e688 16734Author: Lasse Collin <lasse.collin@tukaani.org> 16735Date: 2023-08-01 19:10:43 +0300 16736 16737 Update THANKS. 16738 16739 THANKS | 1 + 16740 1 file changed, 1 insertion(+) 16741 16742commit 33e25a0f5650754c38bed640deedefe3b4fec5ef 16743Author: Lasse Collin <lasse.collin@tukaani.org> 16744Date: 2023-08-01 18:22:24 +0300 16745 16746 Update THANKS. 16747 16748 THANKS | 1 + 16749 1 file changed, 1 insertion(+) 16750 16751commit 81db3b889830132334d1f2129bdc93177ac2ca7d 16752Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> 16753Date: 2023-08-01 18:17:17 +0300 16754 16755 mythread.h: Disable signal functions in builds targeting Wasm + WASI. 16756 16757 signal.h in WASI SDK doesn't currently provide sigprocmask() 16758 or sigset_t. liblzma doesn't need them so this change makes 16759 liblzma and xzdec build against WASI SDK. xz doesn't build yet 16760 and the tests don't either as tuktest needs setjmp() which 16761 isn't (yet?) implemented in WASI SDK. 16762 16763 Closes: https://github.com/tukaani-project/xz/pull/57 16764 See also: https://github.com/tukaani-project/xz/pull/56 16765 16766 (The original commit was edited a little by Lasse Collin.) 16767 16768 src/common/mythread.h | 2 +- 16769 1 file changed, 1 insertion(+), 1 deletion(-) 16770 16771commit 71c638c611324e606d324c8189fef8fe79db6991 16772Author: Jia Tan <jiat0218@gmail.com> 16773Date: 2023-08-01 21:58:51 +0800 16774 16775 Add newline to end of .gitignore. 16776 16777 Newline was accidentally removed in commit 16778 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706. 16779 16780 .gitignore | 2 +- 16781 1 file changed, 1 insertion(+), 1 deletion(-) 16782 16783commit 42df7c7aa1cca385e509eb33c65136e61890f0bf 16784Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> 16785Date: 2023-07-31 14:02:21 +0200 16786 16787 Docs: Fix typos found by codespell 16788 16789 CMakeLists.txt | 4 ++-- 16790 NEWS | 2 +- 16791 configure.ac | 2 +- 16792 src/liblzma/api/lzma/container.h | 4 ++-- 16793 src/liblzma/api/lzma/filter.h | 2 +- 16794 src/liblzma/api/lzma/lzma12.h | 4 ++-- 16795 src/liblzma/common/block_buffer_encoder.c | 2 +- 16796 src/liblzma/common/common.h | 2 +- 16797 src/liblzma/common/file_info.c | 2 +- 16798 src/liblzma/common/lzip_decoder.c | 2 +- 16799 src/liblzma/common/stream_decoder_mt.c | 8 ++++---- 16800 src/liblzma/common/string_conversion.c | 6 +++--- 16801 src/liblzma/lz/lz_encoder.h | 2 +- 16802 src/liblzma/lzma/lzma_encoder.c | 4 ++-- 16803 src/xz/hardware.c | 4 ++-- 16804 tests/test_filter_flags.c | 4 ++-- 16805 tests/test_index.c | 2 +- 16806 tests/test_vli.c | 2 +- 16807 18 files changed, 29 insertions(+), 29 deletions(-) 16808 16809commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706 16810Author: Jia Tan <jiat0218@gmail.com> 16811Date: 2023-07-26 20:26:23 +0800 16812 16813 Update .gitignore. 16814 16815 .gitignore | 4 ++++ 16816 1 file changed, 4 insertions(+) 16817 16818commit f97a1afd564c48ad9cb94682e10972a72e11fa08 16819Author: Jia Tan <jiat0218@gmail.com> 16820Date: 2023-07-28 22:03:08 +0800 16821 16822 CMake: Conditionally allow the creation of broken symlinks. 16823 16824 The CMake build will try to create broken symlinks on Unix and Unix-like 16825 platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create 16826 broken symlinks. The value of the CYGWIN or MSYS environment variables 16827 determine if broken symlinks are valid. 16828 16829 The default for MSYS2 does not allow for broken symlinks, so the CMake 16830 build has been broken for MSYS2 since commit 16831 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. 16832 16833 CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 16834 1 file changed, 75 insertions(+), 7 deletions(-) 16835 16836commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f 16837Author: Jia Tan <jiat0218@gmail.com> 16838Date: 2023-07-28 21:56:48 +0800 16839 16840 CI: Fix windows-ci dependency installation. 16841 16842 All of the MSYS2 environments need make, and it does not come with the 16843 toolchain package. The toolchain package will install the needed 16844 compiler toolchains since without this package CMake cannot properly 16845 generate the Makefiles. 16846 16847 .github/workflows/windows-ci.yml | 6 +++--- 16848 1 file changed, 3 insertions(+), 3 deletions(-) 16849 16850commit a048f472cd9a2245265cb292853cbbcdd4f02001 16851Author: Jia Tan <jiat0218@gmail.com> 16852Date: 2023-07-28 21:54:22 +0800 16853 16854 CI: Update ci_build.sh CMake to always make Unix Makefiles. 16855 16856 The default for many of the MSYS2 environments is for CMake to create 16857 Ninja build files. This would complicate the build script since we would 16858 need a different command to run the tests. Its simpler to always use 16859 Unix Makefiles so that "make test" is always a usable target for 16860 testing. 16861 16862 build-aux/ci_build.sh | 4 ++-- 16863 1 file changed, 2 insertions(+), 2 deletions(-) 16864 16865commit 7870396a0ca945473aa0d1d790f4cbef456610bd 16866Author: Jia Tan <jiat0218@gmail.com> 16867Date: 2023-07-25 20:17:23 +0800 16868 16869 CI: Test CMake builds and test framework with MSYS2. 16870 16871 .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------ 16872 1 file changed, 20 insertions(+), 12 deletions(-) 16873 16874commit 6497d1f8875cb7e3007f714336cc09c06fed235b 16875Author: Jia Tan <jiat0218@gmail.com> 16876Date: 2023-07-25 20:14:53 +0800 16877 16878 CI: Windows CI rename system matrix variable -> msys2_env. 16879 16880 Calling the MSYS2 environment "system" was a bit vague and should be 16881 more specific. 16882 16883 .github/workflows/windows-ci.yml | 15 +++++---------- 16884 1 file changed, 5 insertions(+), 10 deletions(-) 16885 16886commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd 16887Author: Jia Tan <jiat0218@gmail.com> 16888Date: 2023-07-24 23:11:45 +0800 16889 16890 CI: Add Clang64 MSYS2 environment to Windows CI. 16891 16892 .github/workflows/windows-ci.yml | 1 + 16893 1 file changed, 1 insertion(+) 16894 16895commit d9166b52cf3458a4da3eb92224837ca8fc208d79 16896Author: Jia Tan <jiat0218@gmail.com> 16897Date: 2023-07-24 21:43:44 +0800 16898 16899 liblzma: Prevent an empty translation unit in Windows builds. 16900 16901 To workaround Automake lacking Windows resource compiler support, an 16902 empty source file is compiled to overwrite the resource files for static 16903 library builds. Translation units without an external declaration are 16904 not allowed by the C standard and result in a warning when used with 16905 -Wempty-translation-unit (Clang) or -pedantic (GCC). 16906 16907 src/liblzma/Makefile.am | 6 +++++- 16908 1 file changed, 5 insertions(+), 1 deletion(-) 16909 16910commit db5019d691f980d622fb56fdcf383af2c3519c98 16911Author: Jia Tan <jiat0218@gmail.com> 16912Date: 2023-07-22 18:37:56 +0800 16913 16914 Translations: Update the Vietnamese translation. 16915 16916 po/vi.po | 45 ++++++++++++++++++++++++++++----------------- 16917 1 file changed, 28 insertions(+), 17 deletions(-) 16918 16919commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5 16920Author: Jia Tan <jiat0218@gmail.com> 16921Date: 2023-07-22 14:55:42 +0800 16922 16923 CI: Add Windows runner for Autotools builds with MSYS2. 16924 16925 Only a subset of the tests run by the Linux and MacOS Autotools builds 16926 are run. The most interesting tests are the ones that disable threads, 16927 encoders, and decoders. 16928 16929 The Windows runner will only be run manually since these tests will 16930 likely take much longer than the Linux and MacOS runners. This runner 16931 should be used before merging any large features and before releases. 16932 16933 Currently the clang64 environment fails to due to a warning and 16934 -Werror is enabled for the CI tests. This is still an early version 16935 since the CMake build can be done for MSVC and optionally each of the 16936 MSYS2 environments. GitHub does not allow manually running the CI tests 16937 unless the workflow is checked on the default branch so checking in a 16938 minimum version is a good idea. 16939 16940 Thanks to Arthur S for the original proposing the original patch. 16941 16942 Closes: https://github.com/tukaani-project/xz/pull/34 16943 16944 .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ 16945 1 file changed, 119 insertions(+) 16946 16947commit 556536a3525df9e5ed78b8c7057991cfa9edfac8 16948Author: Jia Tan <jiat0218@gmail.com> 16949Date: 2023-07-21 22:11:01 +0800 16950 16951 CI: Add argument to ci_build.sh to pass flags to autogen.sh. 16952 16953 build-aux/ci_build.sh | 9 +++++++-- 16954 1 file changed, 7 insertions(+), 2 deletions(-) 16955 16956commit 39a32d36fc465c4e70f13192eea380e518ba6e8a 16957Author: Jia Tan <jiat0218@gmail.com> 16958Date: 2023-07-21 18:05:44 +0800 16959 16960 Tests: Skip .lz files in test_files.sh if not configured. 16961 16962 Previously if the lzip decoder was not configured then test_files.sh 16963 would pass the lzip tests instead of skipping them. 16964 16965 tests/test_files.sh | 2 +- 16966 1 file changed, 1 insertion(+), 1 deletion(-) 16967 16968commit 194d12724b30fe42789d12a0184f9d412c449347 16969Author: Jia Tan <jiat0218@gmail.com> 16970Date: 2023-07-20 22:11:13 +0800 16971 16972 Tests: Add ARM64 filter test to test_compress.sh. 16973 16974 tests/test_compress.sh | 1 + 16975 1 file changed, 1 insertion(+) 16976 16977commit d850365c444368102c69beaddf849ed463c33467 16978Author: Jia Tan <jiat0218@gmail.com> 16979Date: 2023-07-20 20:30:05 +0800 16980 16981 Translations: Update the Croatian translation. 16982 16983 po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- 16984 1 file changed, 30 insertions(+), 19 deletions(-) 16985 16986commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe 16987Author: Jia Tan <jiat0218@gmail.com> 16988Date: 2023-07-20 20:28:32 +0800 16989 16990 Translations: Update the Korean man page translations. 16991 16992 po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 16993 1 file changed, 629 insertions(+), 626 deletions(-) 16994 16995commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49 16996Author: Jia Tan <jiat0218@gmail.com> 16997Date: 2023-07-20 20:25:24 +0800 16998 16999 Translations: Update the Korean translation. 17000 17001 po/ko.po | 45 ++++++++++++++++++++++++++++----------------- 17002 1 file changed, 28 insertions(+), 17 deletions(-) 17003 17004commit 237f06d9c55cf438a7538a598354bcf103f23711 17005Author: Jia Tan <jiat0218@gmail.com> 17006Date: 2023-07-20 20:24:05 +0800 17007 17008 Translations: Update the Polish translation. 17009 17010 po/pl.po | 47 +++++++++++++++++++++++++++++------------------ 17011 1 file changed, 29 insertions(+), 18 deletions(-) 17012 17013commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a 17014Author: Jia Tan <jiat0218@gmail.com> 17015Date: 2023-07-20 20:22:23 +0800 17016 17017 Translations: Update the German man page translations. 17018 17019 po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ 17020 1 file changed, 629 insertions(+), 626 deletions(-) 17021 17022commit fdbde14503ca03069d3649aa51926f5f796b89d8 17023Author: Jia Tan <jiat0218@gmail.com> 17024Date: 2023-07-20 20:18:44 +0800 17025 17026 Translations: Update the German translation. 17027 17028 po/de.po | 47 +++++++++++++++++++++++++++++------------------ 17029 1 file changed, 29 insertions(+), 18 deletions(-) 17030 17031commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101 17032Author: Jia Tan <jiat0218@gmail.com> 17033Date: 2023-07-20 20:17:10 +0800 17034 17035 Translations: Update the Chinese (simplified) translation. 17036 17037 po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ 17038 1 file changed, 29 insertions(+), 18 deletions(-) 17039 17040commit 376938c588011567c74f1d5a160c0ccce6336d46 17041Author: Jia Tan <jiat0218@gmail.com> 17042Date: 2023-07-20 20:15:47 +0800 17043 17044 Translations: Update the Swedish translation. 17045 17046 po/sv.po | 47 +++++++++++++++++++++++++++++------------------ 17047 1 file changed, 29 insertions(+), 18 deletions(-) 17048 17049commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8 17050Author: Jia Tan <jiat0218@gmail.com> 17051Date: 2023-07-20 20:14:00 +0800 17052 17053 Translations: Update the Ukrainian man page translations. 17054 17055 po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ 17056 1 file changed, 628 insertions(+), 625 deletions(-) 17057 17058commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b 17059Author: Jia Tan <jiat0218@gmail.com> 17060Date: 2023-07-20 20:09:15 +0800 17061 17062 Translations: Update the Ukrainian translation. 17063 17064 po/uk.po | 45 ++++++++++++++++++++++++++++----------------- 17065 1 file changed, 28 insertions(+), 17 deletions(-) 17066 17067commit f881018b503fd334331c24a09075429558abbce1 17068Author: Jia Tan <jiat0218@gmail.com> 17069Date: 2023-07-20 20:06:57 +0800 17070 17071 Translations: Update the Spanish translation. 17072 17073 po/es.po | 47 +++++++++++++++++++++++++++++------------------ 17074 1 file changed, 29 insertions(+), 18 deletions(-) 17075 17076commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31 17077Author: Jia Tan <jiat0218@gmail.com> 17078Date: 2023-07-20 20:05:19 +0800 17079 17080 Translations: Update the Romanian translation. 17081 17082 po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ 17083 1 file changed, 30 insertions(+), 18 deletions(-) 17084 17085commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77 17086Author: Jia Tan <jiat0218@gmail.com> 17087Date: 2023-07-20 20:02:56 +0800 17088 17089 Translations: Update the Romanian man page translations. 17090 17091 po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ 17092 1 file changed, 629 insertions(+), 625 deletions(-) 17093 17094commit 0184d344fa4f215cd345bb131db9068e077c69b8 17095Author: Jia Tan <jiat0218@gmail.com> 17096Date: 2023-07-19 23:36:00 +0800 17097 17098 liblzma: Suppress -Wunused-function warning. 17099 17100 Clang 16.0.0 and earlier have a bug that the ifunc resolver function 17101 triggers the -Wunused-function warning. The resolver function is static 17102 and only "used" by the __attribute__((__ifunc()__)). 17103 17104 At this time, the bug is still unresolved, but has been reported: 17105 https://github.com/llvm/llvm-project/issues/63957 17106 17107 This is not a problem in GCC. 17108 17109 src/liblzma/check/crc64_fast.c | 10 ++++++++++ 17110 1 file changed, 10 insertions(+) 17111 17112commit 43845fa70fc751736c44c18f4cee42d49bfd1392 17113Author: Jia Tan <jiat0218@gmail.com> 17114Date: 2023-07-18 22:52:25 +0800 17115 17116 liblzma: Reword lzma_str_list_filters() documentation. 17117 17118 This further improves the documentation from commit 17119 f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of 17120 "supported options" was slightly misleading since the options that are 17121 printed are the ones that are relevant for encoding/decoding. It is not 17122 about which options can or must be specified. 17123 17124 src/liblzma/api/lzma/filter.h | 2 +- 17125 1 file changed, 1 insertion(+), 1 deletion(-) 17126 17127commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67 17128Author: Jia Tan <jiat0218@gmail.com> 17129Date: 2023-07-18 22:49:57 +0800 17130 17131 liblzma: Improve comment in string_conversion.c. 17132 17133 The comment used "flag" when referring to decoder options. Just 17134 referring to them as options is more clear and consistent. 17135 17136 src/liblzma/common/string_conversion.c | 4 ++-- 17137 1 file changed, 2 insertions(+), 2 deletions(-) 17138 17139commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090 17140Author: Lasse Collin <lasse.collin@tukaani.org> 17141Date: 2023-07-18 17:37:33 +0300 17142 17143 xz: Translate the second "%s: " in message.c since French needs "%s : ". 17144 17145 This string is used to print a filename when using "xz -v" and 17146 stderr isn't a terminal. 17147 17148 src/xz/message.c | 2 +- 17149 1 file changed, 1 insertion(+), 1 deletion(-) 17150 17151commit be644042c3066d8e7a2834f989671ba74d27f749 17152Author: Lasse Collin <lasse.collin@tukaani.org> 17153Date: 2023-07-18 14:35:33 +0300 17154 17155 xz: Make "%s: %s" translatable because French needs "%s : %s". 17156 17157 src/xz/args.c | 5 ++++- 17158 src/xz/coder.c | 8 ++++---- 17159 src/xz/file_io.c | 8 ++++---- 17160 src/xz/list.c | 11 ++++++----- 17161 4 files changed, 18 insertions(+), 14 deletions(-) 17162 17163commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2 17164Author: Lasse Collin <lasse.collin@tukaani.org> 17165Date: 2023-07-18 13:57:54 +0300 17166 17167 liblzma: Tweak #if condition in memcmplen.h. 17168 17169 Maybe ICC always #defines _MSC_VER on Windows but now 17170 it's very clear which code will get used. 17171 17172 src/liblzma/common/memcmplen.h | 4 ++-- 17173 1 file changed, 2 insertions(+), 2 deletions(-) 17174 17175commit 40392c19f71985852d75997f109dea97177d6f3f 17176Author: Lasse Collin <lasse.collin@tukaani.org> 17177Date: 2023-07-18 13:49:43 +0300 17178 17179 liblzma: Omit unnecessary parenthesis in a preprocessor directive. 17180 17181 src/liblzma/common/memcmplen.h | 4 ++-- 17182 1 file changed, 2 insertions(+), 2 deletions(-) 17183 17184commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98 17185Author: Jia Tan <jiat0218@gmail.com> 17186Date: 2023-07-18 00:51:48 +0800 17187 17188 xz: Update Authors list in a few files. 17189 17190 src/xz/args.c | 3 ++- 17191 src/xz/args.h | 3 ++- 17192 src/xz/coder.c | 3 ++- 17193 src/xz/coder.h | 3 ++- 17194 src/xz/message.c | 3 ++- 17195 5 files changed, 10 insertions(+), 5 deletions(-) 17196 17197commit 289034a168878baa9df6ff6e159110aade69cba5 17198Author: Jia Tan <jiat0218@gmail.com> 17199Date: 2023-07-14 23:20:33 +0800 17200 17201 Docs: Add a new section to INSTALL for Tests. 17202 17203 The new Tests section describes basic information about the tests, how 17204 to run them, and important details when cross compiling. We have had a 17205 few questions about how to compile the tests without running them, so 17206 hopefully this information will help others with the same question in the 17207 future. 17208 17209 Fixes: https://github.com/tukaani-project/xz/issues/54 17210 17211 INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 17212 1 file changed, 64 insertions(+), 17 deletions(-) 17213 17214commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513 17215Author: Jia Tan <jiat0218@gmail.com> 17216Date: 2023-07-14 21:10:27 +0800 17217 17218 Docs: Update README. 17219 17220 This adds an entry to "Other implementations of the .xz format" for 17221 XZ for Java. 17222 17223 README | 4 ++++ 17224 1 file changed, 4 insertions(+) 17225 17226commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9 17227Author: Jia Tan <jiat0218@gmail.com> 17228Date: 2023-07-13 23:32:10 +0800 17229 17230 xz: Fix typo in man page. 17231 17232 The Memory limit information section described three output 17233 columns when it actually has six. This was reworded to 17234 "multiple" to make it more future proof. 17235 17236 src/xz/xz.1 | 2 +- 17237 1 file changed, 1 insertion(+), 1 deletion(-) 17238 17239commit f907705eb1f6c5edaafc9668a34c51a989932f1d 17240Author: Jia Tan <jiat0218@gmail.com> 17241Date: 2023-07-13 21:46:12 +0800 17242 17243 xz: Minor clean up for coder.c 17244 17245 * Moved max_block_list_size from a global to local variable. 17246 * Reworded error message in validate_block_list_filter(). 17247 * Removed helper function filter_chain_error(). 17248 * Changed 1 << X to 1U << X in many places 17249 17250 src/xz/coder.c | 53 +++++++++++++++++++++-------------------------------- 17251 1 file changed, 21 insertions(+), 32 deletions(-) 17252 17253commit 9adc9e56157ecbf2948e5036df8567809b9ae177 17254Author: Jia Tan <jiat0218@gmail.com> 17255Date: 2023-07-13 21:26:47 +0800 17256 17257 xz: Update man page Authors and date. 17258 17259 src/xz/xz.1 | 5 +++-- 17260 1 file changed, 3 insertions(+), 2 deletions(-) 17261 17262commit c12e429f2635da8d8f5749e5f733f451baca6945 17263Author: Jia Tan <jiat0218@gmail.com> 17264Date: 2023-06-20 20:32:59 +0800 17265 17266 xz: Add a section to man page for robot mode --filters-help. 17267 17268 src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++-- 17269 1 file changed, 30 insertions(+), 2 deletions(-) 17270 17271commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d 17272Author: Jia Tan <jiat0218@gmail.com> 17273Date: 2023-06-19 23:11:41 +0800 17274 17275 xz: Slight reword in xz man page for consistency. 17276 17277 Changed will print => prints in xz --robot --version description to 17278 match --robot --info-memory description. 17279 17280 src/xz/xz.1 | 2 +- 17281 1 file changed, 1 insertion(+), 1 deletion(-) 17282 17283commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81 17284Author: Jia Tan <jiat0218@gmail.com> 17285Date: 2023-06-19 23:07:10 +0800 17286 17287 xz: Reorder robot mode subsections in the man page. 17288 17289 The order is now consistent with the order the command line arguments 17290 are documented earlier in the man page. The new order is: 17291 1. --list 17292 2. --info-memory 17293 3. --version 17294 17295 Instead of the previous order: 17296 1. --version 17297 2. --info-memory 17298 3. --list 17299 17300 src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------ 17301 1 file changed, 96 insertions(+), 96 deletions(-) 17302 17303commit 9628be23aef2784249fd9f3199799d785d2ec5cc 17304Author: Jia Tan <jiat0218@gmail.com> 17305Date: 2023-05-13 00:46:50 +0800 17306 17307 xz: Update man page for new --filters-help option. 17308 17309 src/xz/xz.1 | 10 ++++++++++ 17310 1 file changed, 10 insertions(+) 17311 17312commit a165d7df1964121eb9df715e6f836a31c865beef 17313Author: Jia Tan <jiat0218@gmail.com> 17314Date: 2023-05-13 00:44:41 +0800 17315 17316 xz: Add a new --filters-help option. 17317 17318 The --filters-help can be used to help create filter chains with the 17319 --filters and --filtersX options. The message in --long-help is too 17320 short to fully explain the syntax to construct complex filter chains. 17321 17322 In --robot mode, xz will only print the output from liblzma function 17323 lzma_str_list_filters. 17324 17325 src/xz/args.c | 8 ++++++++ 17326 src/xz/message.c | 30 ++++++++++++++++++++++++++++++ 17327 src/xz/message.h | 5 +++++ 17328 3 files changed, 43 insertions(+) 17329 17330commit 95f1a414b156ee35d3e71862a14915fdd138f913 17331Author: Jia Tan <jiat0218@gmail.com> 17332Date: 2023-04-21 20:28:11 +0800 17333 17334 xz: Update the man page for --block-list and --filtersX 17335 17336 The --block-list option description needed updating since the new 17337 --filtersX option changes how it can be used. The new entry for 17338 --filters1=FILTERS ... --filter9=FILTERS was created right after 17339 the --filters option. 17340 17341 src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++--------------- 17342 1 file changed, 80 insertions(+), 26 deletions(-) 17343 17344commit 47a63cad2aa778280e0c1926b7159427ea028cb1 17345Author: Jia Tan <jiat0218@gmail.com> 17346Date: 2023-04-21 19:50:14 +0800 17347 17348 xz: Update --long-help for the new --filtersX option. 17349 17350 src/xz/message.c | 12 ++++++++++-- 17351 1 file changed, 10 insertions(+), 2 deletions(-) 17352 17353commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13 17354Author: Jia Tan <jiat0218@gmail.com> 17355Date: 2023-06-17 20:46:21 +0800 17356 17357 xz: Ignore filter chains that are set but never used in --block-list. 17358 17359 If a filter chain is set but not used in --block-list, it introduced 17360 unexpected behavior such as requiring an unneeded amount of memory to 17361 compress, reducing the number of threads in multi-threaded encoding, and 17362 printing an incorrect amount of memory needed to decompress. 17363 17364 This also renames filters_init_mask => filters_used_mask. A filter is 17365 assumed to be used if it is specified in --filtersX until 17366 coder_set_compression_settings() determines which filters are referenced 17367 in --block-list. 17368 17369 src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------- 17370 1 file changed, 48 insertions(+), 18 deletions(-) 17371 17372commit 183819bfd9efac8c184d9bf123325719b7eee30f 17373Author: Jia Tan <jiat0218@gmail.com> 17374Date: 2023-05-13 20:11:13 +0800 17375 17376 xz: Set the Block size for mt encoding correctly. 17377 17378 When opt_block_size is not used, the Block size for mt encoder is 17379 derived from the minimum of the largest Block specified by 17380 --block-list and the recommended Block size on all filter chains 17381 calculated by lzma_mt_block_size(). This avoids using unnecessary 17382 memory and ensures that all Blocks are large enough for the most memory 17383 needy filter chain. 17384 17385 src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 17386 1 file changed, 67 insertions(+), 1 deletion(-) 17387 17388commit afb2dbec3d857b026486b75e42a4728e12d234cb 17389Author: Jia Tan <jiat0218@gmail.com> 17390Date: 2023-05-11 00:09:41 +0800 17391 17392 xz: Validate --flush-timeout for all specified filter chains. 17393 17394 src/xz/coder.c | 24 ++++++++++++++++-------- 17395 1 file changed, 16 insertions(+), 8 deletions(-) 17396 17397commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a 17398Author: Jia Tan <jiat0218@gmail.com> 17399Date: 2023-05-13 19:54:33 +0800 17400 17401 xz: Allows --block-list filters to scale down memory usage. 17402 17403 Previously, only the default filter chain could have its memory usage 17404 adjusted. The filter chains specified with --filtersX were not checked 17405 for memory usage. Now, all used filter chains will be adjusted if 17406 necessary. 17407 17408 src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------ 17409 1 file changed, 214 insertions(+), 55 deletions(-) 17410 17411commit 479fd58d60622331fcbe48fddf756927b9f80d9a 17412Author: Jia Tan <jiat0218@gmail.com> 17413Date: 2023-05-10 21:50:33 +0800 17414 17415 xz: Do not include block splitting if encoders are disabled. 17416 17417 The block splitting logic and split_block() function are not needed if 17418 encoders are disabled. This will help slightly reduce the binary size 17419 when built without encoders and allow split_block() to use functions 17420 that require encoders being enabled. 17421 17422 src/xz/coder.c | 29 ++++++++++++++++++++--------- 17423 1 file changed, 20 insertions(+), 9 deletions(-) 17424 17425commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3 17426Author: Jia Tan <jiat0218@gmail.com> 17427Date: 2023-05-10 22:38:59 +0800 17428 17429 xz: Free filters[] in debug mode. 17430 17431 This will only free filter chains created with --filters1-9 since the 17432 default filter chain may be set from a static function variable. The 17433 complexity to free the default filter chain is not worth the burden on 17434 code maintenance. 17435 17436 src/xz/coder.c | 10 ++++++++++ 17437 1 file changed, 10 insertions(+) 17438 17439commit f281cd0d692ac0c70fc7669b80dddb863ea947e1 17440Author: Jia Tan <jiat0218@gmail.com> 17441Date: 2023-05-13 19:28:23 +0800 17442 17443 xz: Add a message if --block-list is used outside of xz compresssion. 17444 17445 --block-list is only supported with compression in xz format. This avoids 17446 silently ignoring when --block-list is unused. 17447 17448 src/xz/args.c | 11 +++++++++++ 17449 1 file changed, 11 insertions(+) 17450 17451commit d6af7f347077b22403133239592e478931307759 17452Author: Jia Tan <jiat0218@gmail.com> 17453Date: 2023-04-18 20:29:09 +0800 17454 17455 xz: Create command line options for filters[1-9]. 17456 17457 The new command line options are meant to be combined with --block-list. 17458 They work as an optional extension to --block-list to specify a custom 17459 filter chain for each block listed. The new options allow the creation 17460 of up to 9 reusable filter chains. For instance: 17461 17462 xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \ 17463 --filters2=x86--lzma2 --filters3=arm64--lzma2 17464 17465 Will create the following blocks: 17466 1. A block of size 10 MiB with filter chain delta, lzma2. 17467 2. A block of size 5 MiB with filter chain arm64, lzma2. 17468 3. A block of size 5 MiB with filter chain arm64, lzma2. 17469 4. A block of size 5 MiB with filter chain x86, lzma2. 17470 5. A block containing the rest of the file contents with filter chain 17471 delta, lzma2. 17472 17473 src/xz/args.c | 82 ++++++++++++++++++++++--- 17474 src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++--------------- 17475 src/xz/coder.h | 20 +++++- 17476 3 files changed, 230 insertions(+), 60 deletions(-) 17477 17478commit 072d29250113268536719ad0e040ab8a66fb6435 17479Author: Jia Tan <jiat0218@gmail.com> 17480Date: 2023-05-13 19:36:09 +0800 17481 17482 xz: Use lzma_filters_free() in forget_filter_chain(). 17483 17484 This is a little cleaner than the previous implementation of 17485 forget_filter_chain(). It is also more consistent since 17486 lzma_str_to_filters() will always terminate the filter chain so there 17487 is no need to terminate it later in coder_set_compression_settings(). 17488 17489 src/xz/coder.c | 18 ++++++++++-------- 17490 1 file changed, 10 insertions(+), 8 deletions(-) 17491 17492commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059 17493Author: Jia Tan <jiat0218@gmail.com> 17494Date: 2023-04-17 22:22:45 +0800 17495 17496 xz: Separate string to filter conversion into a helper function. 17497 17498 Converting from string to filter will also need to be done for block 17499 specific filter chains. 17500 17501 src/xz/coder.c | 33 ++++++++++++++++++++------------- 17502 1 file changed, 20 insertions(+), 13 deletions(-) 17503 17504commit a6583726e5f950278f96abcf79c04f1056810be6 17505Author: Jia Tan <jiat0218@gmail.com> 17506Date: 2023-01-06 00:03:35 +0800 17507 17508 Tests: Use new --filters option in test_compress.sh 17509 17510 tests/test_compress.sh | 20 ++++++++++---------- 17511 1 file changed, 10 insertions(+), 10 deletions(-) 17512 17513commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0 17514Author: Jia Tan <jiat0218@gmail.com> 17515Date: 2023-01-06 00:03:06 +0800 17516 17517 xz: Update --long-help and man page for new --filters option. 17518 17519 src/xz/message.c | 6 ++++++ 17520 src/xz/xz.1 | 41 ++++++++++++++++++++++++++++++++++++----- 17521 2 files changed, 42 insertions(+), 5 deletions(-) 17522 17523commit 9ded880a0221f4d1256845fc4ab957ffd377c760 17524Author: Jia Tan <jiat0218@gmail.com> 17525Date: 2023-01-06 00:02:29 +0800 17526 17527 xz: Add --filters option to CLI. 17528 17529 The --filters option uses the new lzma_str_to_filters() function 17530 to convert a string into a full filter chain. Using this option 17531 will reset all previous filters set by --preset, --[filter], or 17532 --filters. 17533 17534 src/xz/args.c | 9 +++++++-- 17535 src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 17536 src/xz/coder.h | 3 +++ 17537 3 files changed, 58 insertions(+), 4 deletions(-) 17538 17539commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88 17540Author: Jia Tan <jiat0218@gmail.com> 17541Date: 2023-07-14 21:30:25 +0800 17542 17543 Tests: Improve feature testing for skipping. 17544 17545 Fixed a bug where test_compress_* would all fail if arm64 or armthumb 17546 filters were enabled for compression but arm was disabled. Since the 17547 grep tests only checked for "define HAVE_ENCODER_ARM", this would match 17548 on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. 17549 17550 Now the config.h feature test requires " 1" at the end to prevent the 17551 prefix problem. have_feature() was also updated for this even though 17552 there were known current bugs affecting it. This is just in case future 17553 features have a similar prefix problem. 17554 17555 tests/test_compress.sh | 4 ++-- 17556 tests/test_files.sh | 2 +- 17557 2 files changed, 3 insertions(+), 3 deletions(-) 17558 17559commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357 17560Author: Jia Tan <jiat0218@gmail.com> 17561Date: 2023-07-10 20:56:28 +0800 17562 17563 Translations: Update the Chinese (traditional) translation. 17564 17565 po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- 17566 1 file changed, 377 insertions(+), 282 deletions(-) 17567 17568commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd 17569Author: Jia Tan <jiat0218@gmail.com> 17570Date: 2023-07-08 21:24:19 +0800 17571 17572 liblzma: Remove non-portable empty initializer. 17573 17574 Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty 17575 initializer {} to prevent a warning. The empty initializer is a GNU 17576 extension and results in a build failure on MSVC. The -wpedantic flag 17577 warns about empty initializers. 17578 17579 src/liblzma/common/stream_encoder_mt.c | 2 +- 17580 1 file changed, 1 insertion(+), 1 deletion(-) 17581 17582commit 3aca4f629cd577f0c54f594d5d88722edf0b0413 17583Author: Jia Tan <jiat0218@gmail.com> 17584Date: 2023-07-08 20:03:59 +0800 17585 17586 Translations: Update the Vietnamese translation. 17587 17588 po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- 17589 1 file changed, 349 insertions(+), 271 deletions(-) 17590 17591commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4 17592Author: Jia Tan <jiat0218@gmail.com> 17593Date: 2023-06-28 20:46:31 +0800 17594 17595 Tests: Fix memory leaks in test_index. 17596 17597 Several tests were missing calls to lzma_index_end() to clean up the 17598 lzma_index structs. The memory leaks were discovered by using 17599 -fsanitize=address with GCC. 17600 17601 tests/test_index.c | 11 +++++++++++ 17602 1 file changed, 11 insertions(+) 17603 17604commit fe3bd438fb119f9bad3f08dc29d331e4956196e1 17605Author: Jia Tan <jiat0218@gmail.com> 17606Date: 2023-06-28 20:43:29 +0800 17607 17608 Tests: Fix memory leaks in test_block_header. 17609 17610 test_block_header was not properly freeing the filter options between 17611 calls to lzma_block_header_decode(). The memory leaks were discovered by 17612 using -fsanitize=address with GCC. 17613 17614 tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- 17615 1 file changed, 22 insertions(+), 16 deletions(-) 17616 17617commit 78704f36e74205857c898a351c757719a6c8b666 17618Author: Jia Tan <jiat0218@gmail.com> 17619Date: 2023-06-28 20:31:11 +0800 17620 17621 liblzma: Prevent uninitialzed warning in mt stream encoder. 17622 17623 This change only impacts the compiler warning since it was impossible 17624 for the wait_abs struct in stream_encode_mt() to be used before it was 17625 initialized since mythread_condtime_set() will always be called before 17626 mythread_cond_timedwait(). 17627 17628 Since the mythread.h code is different between the POSIX and 17629 Windows versions, this warning was only present on Windows builds. 17630 17631 Thanks to Arthur S for reporting the warning and providing an initial 17632 patch. 17633 17634 src/liblzma/common/stream_encoder_mt.c | 2 +- 17635 1 file changed, 1 insertion(+), 1 deletion(-) 17636 17637commit e3356a204c5ae02db3ec4552b6c1be354e9b6142 17638Author: Jia Tan <jiat0218@gmail.com> 17639Date: 2023-06-28 20:22:38 +0800 17640 17641 liblzma: Prevent warning for MSYS2 Windows build. 17642 17643 In lzma_memcmplen(), the <intrin.h> header file is only included if 17644 _MSC_VER and _M_X64 are both defined but _BitScanForward64() was 17645 previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but 17646 not _MSC_VER so _BitScanForward64() was used without including 17647 <intrin.h>. 17648 17649 Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as 17650 expected. 17651 17652 src/liblzma/common/memcmplen.h | 6 ++++-- 17653 1 file changed, 4 insertions(+), 2 deletions(-) 17654 17655commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e 17656Author: Jia Tan <jiat0218@gmail.com> 17657Date: 2023-06-28 21:01:22 +0800 17658 17659 CI: Add test with -fsanitize=address,undefined. 17660 17661 ci_build.sh was updated to accept disabling of __attribute__ ifunc 17662 and CLMUL. This will allow -fsanitize=address to pass because ifunc 17663 is incompatible with -fsanitize=address. The CLMUL implementation has 17664 optimizations that potentially read past the buffer and mask out the 17665 unwanted bytes. 17666 17667 This test will only run on Autotools Linux. 17668 17669 .github/workflows/ci.yml | 23 +++++++++++++++++++---- 17670 build-aux/ci_build.sh | 8 +++++++- 17671 2 files changed, 26 insertions(+), 5 deletions(-) 17672 17673commit 596ee722cd7ddf0afae584fc06365adc0e735977 17674Author: Jia Tan <jiat0218@gmail.com> 17675Date: 2023-06-28 20:16:04 +0800 17676 17677 CI: Upgrade checkout action from v2 to v3. 17678 17679 .github/workflows/ci.yml | 2 +- 17680 1 file changed, 1 insertion(+), 1 deletion(-) 17681 17682commit 86118ea320f867e09e98a8682cc08cbbdfd640e2 17683Author: Jia Tan <jiat0218@gmail.com> 17684Date: 2023-06-27 23:38:32 +0800 17685 17686 Update THANKS. 17687 17688 THANKS | 1 + 17689 1 file changed, 1 insertion(+) 17690 17691commit 3d1fdddf92321b516d55651888b9c669e254634e 17692Author: Jia Tan <jiat0218@gmail.com> 17693Date: 2023-06-27 17:27:09 +0300 17694 17695 Docs: Document the configure option --disable-ifunc in INSTALL. 17696 17697 INSTALL | 8 ++++++++ 17698 1 file changed, 8 insertions(+) 17699 17700commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3 17701Author: Lasse Collin <lasse.collin@tukaani.org> 17702Date: 2023-06-27 17:24:49 +0300 17703 17704 Minor tweaks to style and comments. 17705 17706 CMakeLists.txt | 8 ++++---- 17707 configure.ac | 9 +++++---- 17708 2 files changed, 9 insertions(+), 8 deletions(-) 17709 17710commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1 17711Author: Lasse Collin <lasse.collin@tukaani.org> 17712Date: 2023-06-27 17:19:49 +0300 17713 17714 CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC. 17715 17716 It's so that there's a clear difference in wording compared 17717 to liblzma's integrity check types. 17718 17719 CMakeLists.txt | 6 +++--- 17720 1 file changed, 3 insertions(+), 3 deletions(-) 17721 17722commit ee44863ae88e377a5df10db007ba9bfadde3d314 17723Author: Lasse Collin <lasse.collin@tukaani.org> 17724Date: 2023-06-27 17:05:23 +0300 17725 17726 liblzma: Add ifunc implementation to crc64_fast.c. 17727 17728 The ifunc method avoids indirection via the function pointer 17729 crc64_func. This works on GNU/Linux and probably on FreeBSD too. 17730 The previous __attribute((__constructor__)) method is kept for 17731 compatibility with ELF platforms which do support ifunc. 17732 17733 The ifunc method has some limitations, for example, building 17734 liblzma with -fsanitize=address will result in segfaults. 17735 The configure option --disable-ifunc must be used for such builds. 17736 17737 Thanks to Hans Jansen for the original patch. 17738 Closes: https://github.com/tukaani-project/xz/pull/53 17739 17740 src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++--------- 17741 1 file changed, 26 insertions(+), 9 deletions(-) 17742 17743commit b72d21202402a603db6d512fb9271cfa83249639 17744Author: Hans Jansen <hansjansen162@outlook.com> 17745Date: 2023-06-22 19:49:30 +0200 17746 17747 Add ifunc check to CMakeLists.txt 17748 17749 CMake build system will now verify if __attribute__((__ifunc__())) can be 17750 used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be 17751 defined to 1. 17752 17753 CMakeLists.txt | 19 +++++++++++++++++++ 17754 1 file changed, 19 insertions(+) 17755 17756commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b 17757Author: Hans Jansen <hansjansen162@outlook.com> 17758Date: 2023-06-22 19:46:55 +0200 17759 17760 Add ifunc check to configure.ac 17761 17762 configure.ac will now verify if __attribute__((__ifunc__())) can be used in 17763 the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1. 17764 17765 configure.ac | 28 ++++++++++++++++++++++++++++ 17766 1 file changed, 28 insertions(+) 17767 17768commit dbb3a536ed9873ffa0870321f6873e564c6a9da8 17769Author: Jia Tan <jiat0218@gmail.com> 17770Date: 2023-06-07 00:18:30 +0800 17771 17772 CI: Add apt update command before installing dependencies. 17773 17774 Without the extra command, all of the CI tests were automatically 17775 failing because the Ubuntu servers could not be reached properly. 17776 17777 .github/workflows/ci.yml | 8 ++++++-- 17778 1 file changed, 6 insertions(+), 2 deletions(-) 17779 17780commit 6bcd516812331de42b347922913230895bebad34 17781Author: Jia Tan <jiat0218@gmail.com> 17782Date: 2023-06-07 00:10:38 +0800 17783 17784 Update THANKS. 17785 17786 THANKS | 1 + 17787 1 file changed, 1 insertion(+) 17788 17789commit 0d94ba69220d894d2a86081821d2d7a89df5a10b 17790Author: Benjamin Buch <bebuch@users.noreply.github.com> 17791Date: 2023-06-06 15:32:45 +0200 17792 17793 CMake: Protects against double find_package 17794 17795 Boost iostream uses `find_package` in quiet mode and then again uses 17796 `find_package` with required. This second call triggers a 17797 `add_library cannot create imported target "ZLIB::ZLIB" because another 17798 target with the same name already exists.` 17799 17800 This can simply be fixed by skipping the alias part on secondary 17801 `find_package` runs. 17802 17803 CMakeLists.txt | 16 +++++++++------- 17804 1 file changed, 9 insertions(+), 7 deletions(-) 17805 17806commit 045d7aae286ecd2ce163be9e0d9041343a03f89a 17807Author: Jia Tan <jiat0218@gmail.com> 17808Date: 2023-05-31 20:26:42 +0800 17809 17810 Translations: Update the Esperanto translation. 17811 17812 po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- 17813 1 file changed, 92 insertions(+), 93 deletions(-) 17814 17815commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78 17816Author: Jia Tan <jiat0218@gmail.com> 17817Date: 2023-05-31 20:25:00 +0800 17818 17819 Translations: Update the Croatian translation. 17820 17821 po/hr.po | 2 +- 17822 1 file changed, 1 insertion(+), 1 deletion(-) 17823 17824commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce 17825Author: Jia Tan <jiat0218@gmail.com> 17826Date: 2023-05-31 20:15:53 +0800 17827 17828 Translations: Update the Chinese (simplified) translation. 17829 17830 po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ 17831 1 file changed, 157 insertions(+), 160 deletions(-) 17832 17833commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383 17834Author: Jia Tan <jiat0218@gmail.com> 17835Date: 2023-05-17 23:12:13 +0800 17836 17837 Translations: Update German translation of man pages. 17838 17839 po4a/de.po | 52 ++++++++++++---------------------------------------- 17840 1 file changed, 12 insertions(+), 40 deletions(-) 17841 17842commit 592961ccdbba39c7d60fe37e36764232feb57c60 17843Author: Jia Tan <jiat0218@gmail.com> 17844Date: 2023-05-17 23:09:18 +0800 17845 17846 Translations: Update the German translation. 17847 17848 po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- 17849 1 file changed, 94 insertions(+), 95 deletions(-) 17850 17851commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524 17852Author: Jia Tan <jiat0218@gmail.com> 17853Date: 2023-05-17 20:30:01 +0800 17854 17855 Translations: Update the Croatian translation. 17856 17857 po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- 17858 1 file changed, 93 insertions(+), 94 deletions(-) 17859 17860commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d 17861Author: Jia Tan <jiat0218@gmail.com> 17862Date: 2023-05-17 20:26:54 +0800 17863 17864 Translations: Update Korean translation of man pages. 17865 17866 po4a/ko.po | 3015 ++++++++++++------------------------------------------------ 17867 1 file changed, 568 insertions(+), 2447 deletions(-) 17868 17869commit d5ef1f6faf7c270f60093629257150085ecf19ca 17870Author: Jia Tan <jiat0218@gmail.com> 17871Date: 2023-05-17 20:13:01 +0800 17872 17873 Translations: Update the Korean translation. 17874 17875 po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 17876 1 file changed, 158 insertions(+), 161 deletions(-) 17877 17878commit e22d0b0f2e301e7906d0106689d967ed84362028 17879Author: Jia Tan <jiat0218@gmail.com> 17880Date: 2023-05-16 23:49:09 +0800 17881 17882 Translations: Update the Spanish translation. 17883 17884 po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 17885 1 file changed, 158 insertions(+), 161 deletions(-) 17886 17887commit f50da74d52d01f6cfd826a921249e289cf671678 17888Author: Jia Tan <jiat0218@gmail.com> 17889Date: 2023-05-16 23:47:23 +0800 17890 17891 Translations: Update the Romanian translation. 17892 17893 po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- 17894 1 file changed, 98 insertions(+), 97 deletions(-) 17895 17896commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696 17897Author: Jia Tan <jiat0218@gmail.com> 17898Date: 2023-05-16 23:45:43 +0800 17899 17900 Translations: Update Romanian translation of man pages. 17901 17902 po4a/ro.po | 19 ++++++++++--------- 17903 1 file changed, 10 insertions(+), 9 deletions(-) 17904 17905commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea 17906Author: Jia Tan <jiat0218@gmail.com> 17907Date: 2023-05-16 23:43:51 +0800 17908 17909 Translations: Update Ukrainian translation of man pages. 17910 17911 po4a/uk.po | 12 ++++++------ 17912 1 file changed, 6 insertions(+), 6 deletions(-) 17913 17914commit c3e8fcbc2db4861f92ad15606c995bd255803c52 17915Author: Jia Tan <jiat0218@gmail.com> 17916Date: 2023-05-16 23:37:54 +0800 17917 17918 Translations: Update the Ukrainian translation. 17919 17920 po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- 17921 1 file changed, 159 insertions(+), 162 deletions(-) 17922 17923commit 27b81b84fcedbc55aa6e6b21004c44070b15b038 17924Author: Jia Tan <jiat0218@gmail.com> 17925Date: 2023-05-16 23:07:35 +0800 17926 17927 Translations: Update the Polish translation. 17928 17929 po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- 17930 1 file changed, 155 insertions(+), 161 deletions(-) 17931 17932commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed 17933Author: Jia Tan <jiat0218@gmail.com> 17934Date: 2023-05-16 22:52:14 +0800 17935 17936 Translations: Update the Swedish translation. 17937 17938 po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- 17939 1 file changed, 158 insertions(+), 161 deletions(-) 17940 17941commit 6699a29673f227c4664826db485ed9f7596320d2 17942Author: Jia Tan <jiat0218@gmail.com> 17943Date: 2023-05-16 21:21:38 +0800 17944 17945 Translations: Update the Esperanto translation. 17946 17947 po/eo.po | 34 +++++++++++++++++----------------- 17948 1 file changed, 17 insertions(+), 17 deletions(-) 17949 17950commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf 17951Author: Jia Tan <jiat0218@gmail.com> 17952Date: 2023-05-13 21:21:54 +0800 17953 17954 liblzma: Slightly rewords lzma_str_list_filters() documentation. 17955 17956 Reword "options required" to "supported options". The previous may have 17957 suggested that the options listed were all required anytime a filter is 17958 used for encoding or decoding. The reword makes this more clear that 17959 adjusting the options is optional. 17960 17961 src/liblzma/api/lzma/filter.h | 2 +- 17962 1 file changed, 1 insertion(+), 1 deletion(-) 17963 17964commit 3374a5359e52f1671d8f831d65827d5020fe2595 17965Author: Jia Tan <jiat0218@gmail.com> 17966Date: 2023-05-11 23:49:23 +0800 17967 17968 liblzma: Adds lzma_nothrow to MicroLZMA API functions. 17969 17970 None of the liblzma functions may throw an exception, so this 17971 attribute should be applied to all liblzma API functions. 17972 17973 src/liblzma/api/lzma/container.h | 5 +++-- 17974 1 file changed, 3 insertions(+), 2 deletions(-) 17975 17976commit 8f236574986e7c414c0ea059f441982d1387e6a4 17977Author: Jia Tan <jiat0218@gmail.com> 17978Date: 2023-05-09 20:20:06 +0800 17979 17980 liblzma: Exports lzma_mt_block_size() as an API function. 17981 17982 The lzma_mt_block_size() was previously just an internal function for 17983 the multithreaded .xz encoder. It is used to provide a recommended Block 17984 size for a given filter chain. 17985 17986 This function is helpful to determine the maximum Block size for the 17987 multithreaded .xz encoder when one wants to change the filters between 17988 blocks. Then, this determined Block size can be provided to 17989 lzma_stream_encoder_mt() in the lzma_mt options parameter when 17990 intializing the coder. This requires one to know all the filter chains 17991 they are using before starting to encode (or at least the filter chain 17992 that will need the largest Block size), but that isn't a bad limitation. 17993 17994 src/liblzma/api/lzma/container.h | 28 ++++++++++++++++++++++++++++ 17995 src/liblzma/common/filter_encoder.c | 16 ++++++++++------ 17996 src/liblzma/common/filter_encoder.h | 6 +----- 17997 src/liblzma/common/stream_encoder_mt.c | 20 +++++++++----------- 17998 src/liblzma/liblzma_generic.map | 5 +++++ 17999 src/liblzma/liblzma_linux.map | 5 +++++ 18000 src/liblzma/lzma/lzma2_encoder.c | 3 +++ 18001 7 files changed, 61 insertions(+), 22 deletions(-) 18002 18003commit d0f33d672a4da7985ebb5ba8d829f885de49c171 18004Author: Jia Tan <jiat0218@gmail.com> 18005Date: 2023-05-08 22:58:09 +0800 18006 18007 liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro. 18008 18009 This creates an internal liblzma macro to test if the dictionary size 18010 is valid for encoding. 18011 18012 src/liblzma/lz/lz_encoder.c | 4 +--- 18013 src/liblzma/lz/lz_encoder.h | 8 ++++++++ 18014 2 files changed, 9 insertions(+), 3 deletions(-) 18015 18016commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f 18017Author: Jia Tan <jiat0218@gmail.com> 18018Date: 2023-05-02 20:39:56 +0800 18019 18020 Add NEWS for 5.4.3. 18021 18022 NEWS | 10 ++++++++++ 18023 1 file changed, 10 insertions(+) 18024 18025commit 77050b78364ffb6b0f129e742b7c31602d725c08 18026Author: Jia Tan <jiat0218@gmail.com> 18027Date: 2023-05-02 20:39:37 +0800 18028 18029 Add NEWS for 5.2.12. 18030 18031 NEWS | 14 ++++++++++++++ 18032 1 file changed, 14 insertions(+) 18033 18034commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0 18035Author: Jia Tan <jiat0218@gmail.com> 18036Date: 2023-05-04 20:38:52 +0800 18037 18038 Translations: Update the Croatian translation. 18039 18040 po/hr.po | 6 +++--- 18041 1 file changed, 3 insertions(+), 3 deletions(-) 18042 18043commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9 18044Author: Jia Tan <jiat0218@gmail.com> 18045Date: 2023-05-04 20:30:25 +0800 18046 18047 tuklib_integer.h: Reverts previous commit. 18048 18049 Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an 18050 error if the integer size was 32 bit. 18051 18052 src/common/tuklib_integer.h | 4 ++-- 18053 1 file changed, 2 insertions(+), 2 deletions(-) 18054 18055commit 6be460dde07113fe3f08f814b61ddc3264125a96 18056Author: Jia Tan <jiat0218@gmail.com> 18057Date: 2023-05-04 19:25:20 +0800 18058 18059 tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=. 18060 18061 src/common/tuklib_integer.h | 4 ++-- 18062 1 file changed, 2 insertions(+), 2 deletions(-) 18063 18064commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878 18065Author: Lasse Collin <lasse.collin@tukaani.org> 18066Date: 2023-05-03 22:46:42 +0300 18067 18068 tuklib_integer.h: Fix a recent copypaste error in Clang detection. 18069 18070 Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. 18071 Also, this has >= instead of == since ints larger than 32 bits would 18072 work too even if not relevant in practice. 18073 18074 src/common/tuklib_integer.h | 4 ++-- 18075 1 file changed, 2 insertions(+), 2 deletions(-) 18076 18077commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68 18078Author: Jia Tan <jiat0218@gmail.com> 18079Date: 2023-04-25 20:06:15 +0800 18080 18081 CI: Adds a build and test for small configuration. 18082 18083 .github/workflows/ci.yml | 5 +++++ 18084 1 file changed, 5 insertions(+) 18085 18086commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43 18087Author: Jia Tan <jiat0218@gmail.com> 18088Date: 2023-04-25 20:05:26 +0800 18089 18090 CI: ci_build.sh allows configuring small build. 18091 18092 build-aux/ci_build.sh | 7 ++++++- 18093 1 file changed, 6 insertions(+), 1 deletion(-) 18094 18095commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d 18096Author: Jia Tan <jiat0218@gmail.com> 18097Date: 2023-04-20 20:15:00 +0800 18098 18099 Update THANKS. 18100 18101 THANKS | 1 + 18102 1 file changed, 1 insertion(+) 18103 18104commit f41df2ac2fed347d3f107f3533e76e000d29c6cb 18105Author: Jia Tan <jiat0218@gmail.com> 18106Date: 2023-04-19 22:22:16 +0800 18107 18108 Windows: Include <intrin.h> when needed. 18109 18110 Legacy Windows did not need to #include <intrin.h> to use the MSVC 18111 intrinsics. Newer versions likely just issue a warning, but the MSVC 18112 documentation says to include the header file for the intrinsics we use. 18113 18114 GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are 18115 needed in tuklib_integer.h to only include <intrin.h> when it will is 18116 actually needed. 18117 18118 src/common/tuklib_integer.h | 6 ++++++ 18119 src/liblzma/common/memcmplen.h | 10 ++++++++++ 18120 2 files changed, 16 insertions(+) 18121 18122commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7 18123Author: Jia Tan <jiat0218@gmail.com> 18124Date: 2023-04-19 21:59:03 +0800 18125 18126 tuklib_integer: Use __builtin_clz() with Clang. 18127 18128 Clang has support for __builtin_clz(), but previously Clang would 18129 fallback to either the MSVC intrinsic or the regular C code. This was 18130 discovered due to a bug where a new version of Clang required the 18131 <intrin.h> header file in order to use the MSVC intrinsics. 18132 18133 Thanks to Anton Kochkov for notifying us about the bug. 18134 18135 src/common/tuklib_integer.h | 6 +++--- 18136 1 file changed, 3 insertions(+), 3 deletions(-) 18137 18138commit 3938718ce3773c90755785c0df8777f133b7ae29 18139Author: Lasse Collin <lasse.collin@tukaani.org> 18140Date: 2023-04-14 18:42:33 +0300 18141 18142 liblzma: Update project maintainers in lzma.h. 18143 18144 AUTHORS was updated earlier, lzma.h was simply forgotten. 18145 18146 src/liblzma/api/lzma.h | 2 +- 18147 1 file changed, 1 insertion(+), 1 deletion(-) 18148 18149commit 2a89670ab295e377f8b44f5bda6d198deb8ea285 18150Author: Jia Tan <jiat0218@gmail.com> 18151Date: 2023-04-13 20:45:19 +0800 18152 18153 liblzma: Cleans up old commented out code. 18154 18155 src/liblzma/common/alone_encoder.c | 11 ----------- 18156 1 file changed, 11 deletions(-) 18157 18158commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81 18159Author: Jia Tan <jiat0218@gmail.com> 18160Date: 2023-04-07 20:46:41 +0800 18161 18162 Docs: Add missing word to SECURITY.md. 18163 18164 .github/SECURITY.md | 2 +- 18165 1 file changed, 1 insertion(+), 1 deletion(-) 18166 18167commit fb9c50f38a17bf37581de4034b36c8df8ec90a87 18168Author: Jia Tan <jiat0218@gmail.com> 18169Date: 2023-04-07 20:43:22 +0800 18170 18171 Update THANKS. 18172 18173 THANKS | 1 + 18174 1 file changed, 1 insertion(+) 18175 18176commit 537c6cd8a9db0dd6b13683e64ddac2943190d715 18177Author: Jia Tan <jiat0218@gmail.com> 18178Date: 2023-04-07 20:42:12 +0800 18179 18180 Docs: Minor edits to SECURITY.md. 18181 18182 .github/SECURITY.md | 25 ++++++++++++++++++++----- 18183 1 file changed, 20 insertions(+), 5 deletions(-) 18184 18185commit 6549df8dd53f358345957e232648fdb699930074 18186Author: Gabriela Gutierrez <gabigutierrez@google.com> 18187Date: 2023-04-07 12:08:30 +0000 18188 18189 Docs: Create SECURITY.md 18190 18191 Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com> 18192 18193 .github/SECURITY.md | 14 ++++++++++++++ 18194 1 file changed, 14 insertions(+) 18195 18196commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2 18197Author: Jia Tan <jiat0218@gmail.com> 18198Date: 2023-03-28 22:48:24 +0800 18199 18200 CI: Tests for disabling threading on CMake builds. 18201 18202 .github/workflows/ci.yml | 3 --- 18203 build-aux/ci_build.sh | 4 ++-- 18204 2 files changed, 2 insertions(+), 5 deletions(-) 18205 18206commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d 18207Author: Jia Tan <jiat0218@gmail.com> 18208Date: 2023-03-28 22:45:42 +0800 18209 18210 CI: Removes CMakeCache.txt between builds. 18211 18212 If the cache file is not removed, CMake will not reset configurations 18213 back to their default values. In order to make the tests independent, it 18214 is simplest to purge the cache. Unfortunatly, this will slow down the 18215 tests a little and repeat some checks. 18216 18217 build-aux/ci_build.sh | 2 ++ 18218 1 file changed, 2 insertions(+) 18219 18220commit 2cb6028fc31de082b7f927632363bb1426b61aaa 18221Author: Jia Tan <jiat0218@gmail.com> 18222Date: 2023-03-28 22:32:40 +0800 18223 18224 CMake: Update liblzma-config.cmake generation. 18225 18226 Now that the threading is configurable, the liblzma CMake package only 18227 needs the threading library when using POSIX threads. 18228 18229 CMakeLists.txt | 33 ++++++++++++++++++++++----------- 18230 1 file changed, 22 insertions(+), 11 deletions(-) 18231 18232commit 4d7fac0b07cc722825ba8d7838c558827e635611 18233Author: Jia Tan <jiat0218@gmail.com> 18234Date: 2023-03-28 22:25:33 +0800 18235 18236 CMake: Allows setting thread method. 18237 18238 The thread method is now configurable for the CMake build. It matches 18239 the Autotools build by allowing ON (pick the best threading method), 18240 OFF (no threading), posix, win95, and vista. If both Windows and 18241 posix threading are both available, then ON will choose Windows 18242 threading. Windows threading will also not use: 18243 18244 target_link_libraries(liblzma Threads::Threads) 18245 18246 since on systems like MinGW-w64 it would link the posix threads 18247 without purpose. 18248 18249 CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- 18250 1 file changed, 104 insertions(+), 40 deletions(-) 18251 18252commit 20cd905d898c1494dee42b78530769bb9c9f8076 18253Author: Jia Tan <jiat0218@gmail.com> 18254Date: 2023-03-24 23:05:48 +0800 18255 18256 CI: Runs CMake feature tests. 18257 18258 Now, CMake will run similar feature disable tests that the Autotools 18259 version did before. In order to do this without repeating lines in 18260 ci.yml, it now makes sense to use the GitHub Workflow matrix to create 18261 a loop. 18262 18263 .github/workflows/ci.yml | 169 +++++++++++++++-------------------------------- 18264 1 file changed, 55 insertions(+), 114 deletions(-) 18265 18266commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229 18267Author: Jia Tan <jiat0218@gmail.com> 18268Date: 2023-03-24 20:35:11 +0800 18269 18270 CI: ci_build.sh allows CMake features to be configured. 18271 18272 Also included various clean ups for style and helper functions for 18273 repeated work. 18274 18275 build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++------------------- 18276 1 file changed, 143 insertions(+), 90 deletions(-) 18277 18278commit cf3d1f130e50cf63da4bb1031771605f6f443b6a 18279Author: Jia Tan <jiat0218@gmail.com> 18280Date: 2023-03-24 20:06:33 +0800 18281 18282 CI: Change ci_build.sh to use bash instead of sh. 18283 18284 This script is only meant to be run as part of the CI build/test process 18285 on machines that are known to have bash (Ubuntu and MacOS). If this 18286 assumption changes in the future, then the bash specific commands will 18287 need to be replaced with a more portable option. For now, it is 18288 convenient to use bash commands. 18289 18290 build-aux/ci_build.sh | 2 +- 18291 1 file changed, 1 insertion(+), 1 deletion(-) 18292 18293commit ddfe164368e779c40d061aa4ccc376129e92f8e1 18294Author: Jia Tan <jiat0218@gmail.com> 18295Date: 2023-03-24 20:05:59 +0800 18296 18297 CMake: Only build xzdec if decoders are enabled. 18298 18299 CMakeLists.txt | 2 +- 18300 1 file changed, 1 insertion(+), 1 deletion(-) 18301 18302commit 116e81f002c503d3c3cd12726db8f9116e58ef25 18303Author: Jia Tan <jiat0218@gmail.com> 18304Date: 2023-03-22 15:42:04 +0800 18305 18306 Build: Removes redundant check for LZMA1 filter support. 18307 18308 src/liblzma/lzma/Makefile.inc | 5 +---- 18309 1 file changed, 1 insertion(+), 4 deletions(-) 18310 18311commit 0ba234f692772595329d225462d391fe2c199d0a 18312Author: Lasse Collin <lasse.collin@tukaani.org> 18313Date: 2023-03-23 15:14:29 +0200 18314 18315 CMake: Bump maximum policy version to 3.26. 18316 18317 It adds only one new policy related to FOLDERS which we don't use. 18318 This makes it clear that the code is compatible with the policies 18319 up to 3.26. 18320 18321 CMakeLists.txt | 2 +- 18322 1 file changed, 1 insertion(+), 1 deletion(-) 18323 18324commit b0891684b4436aed31510fddcbb218d513bd5489 18325Author: Jia Tan <jiat0218@gmail.com> 18326Date: 2023-03-21 23:36:00 +0800 18327 18328 CMake: Conditionally build xz list.* files if decoders are enabled. 18329 18330 CMakeLists.txt | 9 +++++++-- 18331 1 file changed, 7 insertions(+), 2 deletions(-) 18332 18333commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227 18334Author: Jia Tan <jiat0218@gmail.com> 18335Date: 2023-02-25 11:46:50 +0800 18336 18337 CMake: Allow configuring features as cache variables. 18338 18339 This allows users to change the features they build either in 18340 CMakeCache.txt or by using a CMake GUI. The sources built for 18341 liblzma are affected by this too, so only the necessary files 18342 will be compiled. 18343 18344 CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- 18345 1 file changed, 391 insertions(+), 137 deletions(-) 18346 18347commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff 18348Author: Lasse Collin <lasse.collin@tukaani.org> 18349Date: 2023-03-21 14:07:51 +0200 18350 18351 Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. 18352 18353 It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC 18354 but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. 18355 18356 configure.ac | 3 +++ 18357 1 file changed, 3 insertions(+) 18358 18359commit 53cc475f2652d9e390ca002018dfd0af0626ef80 18360Author: Lasse Collin <lasse.collin@tukaani.org> 18361Date: 2023-03-21 14:04:37 +0200 18362 18363 Build: configure.ac: Use AS_IF and AS_CASE where required. 18364 18365 This makes no functional difference in the generated configure 18366 (at least with the Autotools versions I have installed) but this 18367 change might prevent future bugs like the one that was just 18368 fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. 18369 18370 configure.ac | 30 +++++++++++++++--------------- 18371 1 file changed, 15 insertions(+), 15 deletions(-) 18372 18373commit 3b8890a40233b6c783bb101ec14405e786871775 18374Author: Lasse Collin <lasse.collin@tukaani.org> 18375Date: 2023-03-21 13:12:03 +0200 18376 18377 Update THANKS. 18378 18379 THANKS | 1 + 18380 1 file changed, 1 insertion(+) 18381 18382commit 5a5bd7f871818029d5ccbe189f087f591258c294 18383Author: Lasse Collin <lasse.collin@tukaani.org> 18384Date: 2023-03-21 13:11:49 +0200 18385 18386 Build: Fix --disable-threads breaking the building of shared libs. 18387 18388 This is broken in the releases 5.2.6 to 5.4.2. A workaround 18389 for these releases is to pass EGREP='grep -E' as an argument 18390 to configure in addition to --disable-threads. 18391 18392 The problem appeared when m4/ax_pthread.m4 was updated in 18393 the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which 18394 introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls 18395 AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP 18396 but this was only executed if POSIX threads were enabled. 18397 Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf 18398 omits it as AC_PROG_EGREP has already been required earlier. 18399 Thus, if not using POSIX threads, the shell variable EGREP 18400 would be undefined in the Libtool code in configure. 18401 18402 ax_pthread.m4 is fine. The bug was in configure.ac which called 18403 AX_PTHREAD conditionally in an incorrect way. Using AS_CASE 18404 ensures that all AC_REQUIREs get always run. 18405 18406 Thanks to Frank Busse for reporting the bug. 18407 Fixes: https://github.com/tukaani-project/xz/issues/45 18408 18409 configure.ac | 16 ++++++++-------- 18410 1 file changed, 8 insertions(+), 8 deletions(-) 18411 18412commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 18413Author: Lasse Collin <lasse.collin@tukaani.org> 18414Date: 2023-03-19 22:45:59 +0200 18415 18416 liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. 18417 18418 Thanks to Christian Hesse for reporting the issue. 18419 Fixes: https://github.com/tukaani-project/xz/issues/44 18420 18421 src/liblzma/common/memcmplen.h | 3 ++- 18422 1 file changed, 2 insertions(+), 1 deletion(-) 18423 18424commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce 18425Author: Jia Tan <jiat0218@gmail.com> 18426Date: 2023-03-18 22:10:57 +0800 18427 18428 Add NEWS for 5.4.2. 18429 18430 NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 18431 1 file changed, 48 insertions(+) 18432 18433commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6 18434Author: Jia Tan <jiat0218@gmail.com> 18435Date: 2023-03-18 22:10:12 +0800 18436 18437 Add NEWS for 5.2.11. 18438 18439 NEWS | 27 +++++++++++++++++++++++++++ 18440 1 file changed, 27 insertions(+) 18441 18442commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40 18443Author: Lasse Collin <lasse.collin@tukaani.org> 18444Date: 2023-03-18 16:00:54 +0200 18445 18446 Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. 18447 18448 COPYING.GPLv3 | 8 ++++---- 18449 1 file changed, 4 insertions(+), 4 deletions(-) 18450 18451commit b473a92891f7e991398a3b5eff305f6f2b6d7293 18452Author: Lasse Collin <lasse.collin@tukaani.org> 18453Date: 2023-03-18 15:51:57 +0200 18454 18455 Change a few HTTP URLs to HTTPS. 18456 18457 The xz man page timestamp was intentionally left unchanged. 18458 18459 INSTALL | 2 +- 18460 README | 8 ++++---- 18461 configure.ac | 2 +- 18462 dos/INSTALL.txt | 4 ++-- 18463 src/liblzma/api/lzma.h | 8 ++++---- 18464 src/liblzma/check/sha256.c | 2 +- 18465 src/xz/xz.1 | 2 +- 18466 windows/INSTALL-MinGW.txt | 10 +++++----- 18467 8 files changed, 19 insertions(+), 19 deletions(-) 18468 18469commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8 18470Author: Jia Tan <jiat0218@gmail.com> 18471Date: 2023-03-18 00:40:28 +0800 18472 18473 CMake: Fix typo in a comment. 18474 18475 CMakeLists.txt | 2 +- 18476 1 file changed, 1 insertion(+), 1 deletion(-) 18477 18478commit 76e2315e14c399c15cc90e7930fd4d3d086b0227 18479Author: Lasse Collin <lasse.collin@tukaani.org> 18480Date: 2023-03-17 18:36:22 +0200 18481 18482 Windows: build.bash: Copy liblzma API docs to the output package. 18483 18484 windows/build.bash | 3 ++- 18485 1 file changed, 2 insertions(+), 1 deletion(-) 18486 18487commit 133cf55edc5ce92952d2709abd992e48ef1f45ee 18488Author: Lasse Collin <lasse.collin@tukaani.org> 18489Date: 2023-03-17 08:53:38 +0200 18490 18491 Windows: Add microlzma_*.c to the VS project files. 18492 18493 These should have been included in 5.3.2alpha already. 18494 18495 windows/vs2013/liblzma.vcxproj | 2 ++ 18496 windows/vs2013/liblzma_dll.vcxproj | 2 ++ 18497 windows/vs2017/liblzma.vcxproj | 2 ++ 18498 windows/vs2017/liblzma_dll.vcxproj | 2 ++ 18499 windows/vs2019/liblzma.vcxproj | 2 ++ 18500 windows/vs2019/liblzma_dll.vcxproj | 2 ++ 18501 6 files changed, 12 insertions(+) 18502 18503commit 75c9ca450fab6982fda9286b168081c9d54126cd 18504Author: Lasse Collin <lasse.collin@tukaani.org> 18505Date: 2023-03-17 08:43:51 +0200 18506 18507 CMake: Add microlzma_*.c to the build. 18508 18509 These should have been included in 5.3.2alpha already. 18510 18511 CMakeLists.txt | 2 ++ 18512 1 file changed, 2 insertions(+) 18513 18514commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b 18515Author: Lasse Collin <lasse.collin@tukaani.org> 18516Date: 2023-03-17 08:41:36 +0200 18517 18518 Build: Update comments about unaligned access to mention 64-bit. 18519 18520 cmake/tuklib_integer.cmake | 7 +++---- 18521 m4/tuklib_integer.m4 | 4 ++-- 18522 2 files changed, 5 insertions(+), 6 deletions(-) 18523 18524commit 5e57e3301319f20c35f8111dea73fa58403b96b1 18525Author: Lasse Collin <lasse.collin@tukaani.org> 18526Date: 2023-03-17 00:02:30 +0200 18527 18528 Tests: Update .gitignore. 18529 18530 .gitignore | 3 ++- 18531 1 file changed, 2 insertions(+), 1 deletion(-) 18532 18533commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac 18534Author: Lasse Collin <lasse.collin@tukaani.org> 18535Date: 2023-03-14 20:04:03 +0200 18536 18537 po4a/update-po: Display the script name consistently in error messages. 18538 18539 po4a/update-po | 2 +- 18540 1 file changed, 1 insertion(+), 1 deletion(-) 18541 18542commit 509157c80c500426ec853bd992d684ebafc8500c 18543Author: Jia Tan <jiat0218@gmail.com> 18544Date: 2023-03-17 01:30:36 +0800 18545 18546 Doc: Rename Doxygen HTML doc directory name liblzma => api. 18547 18548 When the docs are installed, calling the directory "liblzma" is 18549 confusing since multiple other files in the doc directory are for 18550 liblzma. This should also make it more natural for distros when they 18551 package the documentation. 18552 18553 .gitignore | 2 +- 18554 Makefile.am | 18 +++++++++--------- 18555 PACKAGERS | 4 ++-- 18556 doxygen/Doxyfile | 2 +- 18557 doxygen/update-doxygen | 18 +++++++++--------- 18558 5 files changed, 22 insertions(+), 22 deletions(-) 18559 18560commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3 18561Author: Jia Tan <jiat0218@gmail.com> 18562Date: 2023-03-16 22:07:15 +0800 18563 18564 liblzma: Remove note from lzma_options_bcj about the ARM64 exception. 18565 18566 This was left in by mistake since an early version of the ARM64 filter 18567 used a different struct for its options. 18568 18569 src/liblzma/api/lzma/bcj.h | 2 +- 18570 1 file changed, 1 insertion(+), 1 deletion(-) 18571 18572commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d 18573Author: Jia Tan <jiat0218@gmail.com> 18574Date: 2023-03-16 21:44:02 +0800 18575 18576 CI: Add doxygen as a dependency. 18577 18578 Autogen now requires --no-doxygen or having doxygen installed to run 18579 without errors. 18580 18581 .github/workflows/ci.yml | 5 ++--- 18582 1 file changed, 2 insertions(+), 3 deletions(-) 18583 18584commit f68f4b27f62f53fdac570885a1f4f23367ce6599 18585Author: Lasse Collin <lasse.collin@tukaani.org> 18586Date: 2023-03-15 19:19:13 +0200 18587 18588 COPYING: Add a note about the included Doxygen-generated HTML. 18589 18590 COPYING | 11 +++++++++++ 18591 1 file changed, 11 insertions(+) 18592 18593commit 8979308528c1f45cb9ee52d511f05232b4ad90a1 18594Author: Jia Tan <jiat0218@gmail.com> 18595Date: 2023-03-16 21:41:09 +0800 18596 18597 Doc: Update PACKAGERS with details about liblzma API docs install. 18598 18599 PACKAGERS | 22 ++++++++++++++++------ 18600 1 file changed, 16 insertions(+), 6 deletions(-) 18601 18602commit 55ba6e93004842ae0a0792214a23504267ad8f43 18603Author: Jia Tan <jiat0218@gmail.com> 18604Date: 2023-03-16 21:38:32 +0800 18605 18606 liblzma: Add set lzma.h as the main page for Doxygen documentation. 18607 18608 The \mainpage command is used in the first block of comments in lzma.h. 18609 This changes the previously nearly empty index.html to use the first 18610 comment block in lzma.h for its contents. 18611 18612 lzma.h is no longer documented separately, but this is for the better 18613 since lzma.h only defined a few macros that users do not need to use. 18614 The individual API header files all have a disclaimer that they should 18615 not be #included directly, so there should be no confusion on the fact 18616 that lzma.h should be the only header used by applications. 18617 18618 Additionally, the note "See ../lzma.h for information about liblzma as 18619 a whole." was removed since lzma.h is now the main page of the 18620 generated HTML and does not have its own page anymore. So it would be 18621 confusing in the HTML version and was only a "nice to have" when 18622 browsing the source files. 18623 18624 src/liblzma/api/lzma.h | 1 + 18625 src/liblzma/api/lzma/base.h | 2 -- 18626 src/liblzma/api/lzma/bcj.h | 2 -- 18627 src/liblzma/api/lzma/block.h | 2 -- 18628 src/liblzma/api/lzma/check.h | 2 -- 18629 src/liblzma/api/lzma/container.h | 2 -- 18630 src/liblzma/api/lzma/delta.h | 2 -- 18631 src/liblzma/api/lzma/filter.h | 2 -- 18632 src/liblzma/api/lzma/hardware.h | 2 -- 18633 src/liblzma/api/lzma/index.h | 2 -- 18634 src/liblzma/api/lzma/index_hash.h | 4 +--- 18635 src/liblzma/api/lzma/lzma12.h | 2 -- 18636 src/liblzma/api/lzma/stream_flags.h | 2 -- 18637 src/liblzma/api/lzma/version.h | 2 -- 18638 src/liblzma/api/lzma/vli.h | 2 -- 18639 15 files changed, 2 insertions(+), 29 deletions(-) 18640 18641commit 16f21255597f6a57e5692780f962cdc090f62b8c 18642Author: Jia Tan <jiat0218@gmail.com> 18643Date: 2023-03-16 21:37:32 +0800 18644 18645 Build: Generate doxygen documentation in autogen.sh. 18646 18647 Another command line option (--no-doxygen) was added to disable 18648 creating the doxygen documenation in cases where it not wanted or 18649 if the doxygen tool is not installed. 18650 18651 autogen.sh | 35 +++++++++++++++++++++++++++++------ 18652 1 file changed, 29 insertions(+), 6 deletions(-) 18653 18654commit 1321852a3be7196bd7fcfd146221a5669e46407c 18655Author: Jia Tan <jiat0218@gmail.com> 18656Date: 2023-03-16 21:35:55 +0800 18657 18658 Build: Create doxygen/update-doxygen script. 18659 18660 This is a helper script to generate the Doxygen documentation. It can be 18661 run in 'liblzma' or 'internal' mode by setting the first argument. It 18662 will default to 'liblzma' mode and only generate documentation for the 18663 liblzma API header files. 18664 18665 The helper script will be run during the custom mydist hook when we 18666 create releases. This hook already alters the source directory, so its 18667 fine to do it here too. This way, we can include the Doxygen generated 18668 files in the distrubtion and when installing. 18669 18670 In 'liblzma' mode, the JavaScript is stripped from the .html files and 18671 the .js files are removed. This avoids license hassle from jQuery and 18672 other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. 18673 18674 Makefile.am | 1 + 18675 doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ 18676 2 files changed, 112 insertions(+) 18677 18678commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b 18679Author: Jia Tan <jiat0218@gmail.com> 18680Date: 2023-03-16 21:34:36 +0800 18681 18682 Build: Install Doxygen docs and include in distribution if generated. 18683 18684 Added a install-data-local target to install the Doxygen documentation 18685 only when it has been generated. In order to correctly remove the docs, 18686 a corresponding uninstall-local target was added. 18687 18688 If the doxygen docs exist in the source tree, they will also be included 18689 in the distribution now too. 18690 18691 Makefile.am | 18 ++++++++++++++++++ 18692 1 file changed, 18 insertions(+) 18693 18694commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73 18695Author: Lasse Collin <lasse.collin@tukaani.org> 18696Date: 2023-03-16 21:23:48 +0800 18697 18698 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. 18699 18700 Instead of having Doxyfile.in configured by Autoconf, the Doxyfile 18701 can have the tags that need to be configured piped into the doxygen 18702 command through stdin with the overrides after Doxyfile's contents. 18703 18704 Going forward, the documentation should be generated in two different 18705 modes: liblzma or internal. 18706 18707 liblzma is useful for most users. It is the documentation for just 18708 the liblzma API header files. This is the default. 18709 18710 internal is for people who want to understand how xz and liblzma work. 18711 It might be useful for people who want to contribute to the project. 18712 18713 .gitignore | 3 +- 18714 Makefile.am | 1 - 18715 configure.ac | 40 --- 18716 Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++--------------- 18717 4 files changed, 456 insertions(+), 309 deletions(-) 18718 18719commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f 18720Author: Jia Tan <jiat0218@gmail.com> 18721Date: 2023-02-28 23:22:36 +0800 18722 18723 Tests: Remove unused macros and functions. 18724 18725 tests/tests.h | 75 ----------------------------------------------------------- 18726 1 file changed, 75 deletions(-) 18727 18728commit af55191102f01e76de658c881299f0909ca0feda 18729Author: Jia Tan <jiat0218@gmail.com> 18730Date: 2022-12-29 21:52:15 +0800 18731 18732 liblzma: Defines masks for return values from lzma_index_checks(). 18733 18734 src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++ 18735 tests/test_index.c | 22 +++++++++++----------- 18736 2 files changed, 34 insertions(+), 11 deletions(-) 18737 18738commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73 18739Author: Jia Tan <jiat0218@gmail.com> 18740Date: 2023-01-12 22:29:07 +0800 18741 18742 Tests: Refactors existing lzma_index tests. 18743 18744 Converts the existing lzma_index tests into tuktests and covers every 18745 API function from index.h except for lzma_file_info_decoder, which can 18746 be tested in the future. 18747 18748 tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- 18749 1 file changed, 1492 insertions(+), 544 deletions(-) 18750 18751commit 717aa3651ce582807f379d8654c2516e1594df77 18752Author: Lasse Collin <lasse.collin@tukaani.org> 18753Date: 2023-03-11 18:42:08 +0200 18754 18755 xz: Simplify the error-label in Capsicum sandbox code. 18756 18757 Also remove unneeded "sandbox_allowed = false;" as this code 18758 will never be run more than once (making it work with multiple 18759 input files isn't trivial). 18760 18761 src/xz/file_io.c | 27 ++++++++++++--------------- 18762 1 file changed, 12 insertions(+), 15 deletions(-) 18763 18764commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75 18765Author: Lasse Collin <lasse.collin@tukaani.org> 18766Date: 2023-03-07 19:59:23 +0200 18767 18768 xz: Make Capsicum sandbox more strict with stdin and stdout. 18769 18770 src/xz/file_io.c | 8 ++++++++ 18771 1 file changed, 8 insertions(+) 18772 18773commit 916448d624aaf55cef0fc3e53754affb8c4f309d 18774Author: Jia Tan <jiat0218@gmail.com> 18775Date: 2023-03-08 23:08:46 +0800 18776 18777 Revert: "Add warning if Capsicum sandbox system calls are unsupported." 18778 18779 The warning causes the exit status to be 2, so this will cause problems 18780 for many scripted use cases for xz. The sandbox usage is already very 18781 limited already, so silently disabling this allows it to be more usable. 18782 18783 src/xz/file_io.c | 10 ++++------ 18784 1 file changed, 4 insertions(+), 6 deletions(-) 18785 18786commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f 18787Author: Jia Tan <jiat0218@gmail.com> 18788Date: 2023-03-07 20:02:22 +0800 18789 18790 xz: Fix -Wunused-label in io_sandbox_enter(). 18791 18792 Thanks to Xin Li for recommending the fix. 18793 18794 src/xz/file_io.c | 4 ++-- 18795 1 file changed, 2 insertions(+), 2 deletions(-) 18796 18797commit 5fb936786601a1cd013a5d436adde65982b1e13c 18798Author: Jia Tan <jiat0218@gmail.com> 18799Date: 2023-03-06 21:37:45 +0800 18800 18801 xz: Add warning if Capsicum sandbox system calls are unsupported. 18802 18803 The warning is only used when errno == ENOSYS. Otherwise, xz still 18804 issues a fatal error. 18805 18806 src/xz/file_io.c | 2 ++ 18807 1 file changed, 2 insertions(+) 18808 18809commit 61ee82cb1232a402c82282bbae42821f2b952b0d 18810Author: Jia Tan <jiat0218@gmail.com> 18811Date: 2023-03-06 21:27:53 +0800 18812 18813 xz: Skip Capsicum sandbox system calls when they are unsupported. 18814 18815 If a system has the Capsicum header files but does not actually 18816 implement the system calls, then this would render xz unusable. Instead, 18817 we can check if errno == ENOSYS and not issue a fatal error. 18818 18819 src/xz/file_io.c | 22 +++++++++++++++++----- 18820 1 file changed, 17 insertions(+), 5 deletions(-) 18821 18822commit f070722b57ba975a0dff36492d766f03026b1d21 18823Author: Jia Tan <jiat0218@gmail.com> 18824Date: 2023-03-06 21:08:26 +0800 18825 18826 xz: Reorder cap_enter() to beginning of capsicum sandbox code. 18827 18828 cap_enter() puts the process into the sandbox. If later calls to 18829 cap_rights_limit() fail, then the process can still have some extra 18830 protections. 18831 18832 src/xz/file_io.c | 6 +++--- 18833 1 file changed, 3 insertions(+), 3 deletions(-) 18834 18835commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f 18836Author: Jia Tan <jiat0218@gmail.com> 18837Date: 2023-02-24 23:46:23 +0800 18838 18839 liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. 18840 18841 lzma_lzma_preset() does not guarentee that the lzma_options_lzma are 18842 usable in an encoder even if it returns false (success). If liblzma 18843 is built with default configurations, then the options will always be 18844 usable. However if the match finders hc3, hc4, or bt4 are disabled, then 18845 the options may not be usable depending on the preset level requested. 18846 18847 The documentation was updated to reflect this complexity, since this 18848 behavior was unclear before. 18849 18850 src/liblzma/api/lzma/lzma12.h | 5 +++++ 18851 1 file changed, 5 insertions(+) 18852 18853commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99 18854Author: Lasse Collin <lasse.collin@tukaani.org> 18855Date: 2023-02-27 18:38:35 +0200 18856 18857 CMake: Require that the C compiler supports C99 or a newer standard. 18858 18859 Thanks to autoantwort for reporting the issue and suggesting 18860 a different patch: 18861 https://github.com/tukaani-project/xz/pull/42 18862 18863 CMakeLists.txt | 8 ++++++++ 18864 1 file changed, 8 insertions(+) 18865 18866commit 9aa7fdeb04c486d2700967090956af88fdccab7e 18867Author: Jia Tan <jiat0218@gmail.com> 18868Date: 2023-02-24 18:10:37 +0800 18869 18870 Tests: Small tweak to test-vli.c. 18871 18872 The static global variables can be disabled if encoders and decoders 18873 are not built. If they are not disabled and -Werror is used, it will 18874 cause an usused warning as an error. 18875 18876 tests/test_vli.c | 2 ++ 18877 1 file changed, 2 insertions(+) 18878 18879commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9 18880Author: Jia Tan <jiat0218@gmail.com> 18881Date: 2023-02-06 21:46:43 +0800 18882 18883 liblzma: Replace '\n' -> newline in filter.h documentation. 18884 18885 The '\n' renders as a newline when the comments are converted to html 18886 by Doxygen. 18887 18888 src/liblzma/api/lzma/filter.h | 2 +- 18889 1 file changed, 1 insertion(+), 1 deletion(-) 18890 18891commit 002006be62d77c706565fa6ec828bea64be302da 18892Author: Jia Tan <jiat0218@gmail.com> 18893Date: 2023-02-06 21:45:37 +0800 18894 18895 liblzma: Shorten return description for two functions in filter.h. 18896 18897 Shorten the description for lzma_raw_encoder_memusage() and 18898 lzma_raw_decoder_memusage(). 18899 18900 src/liblzma/api/lzma/filter.h | 8 ++------ 18901 1 file changed, 2 insertions(+), 6 deletions(-) 18902 18903commit 463d9359b8595f01d44ada1739d75aeb87f36524 18904Author: Jia Tan <jiat0218@gmail.com> 18905Date: 2023-02-06 21:44:45 +0800 18906 18907 liblzma: Reword a few lines in filter.h 18908 18909 src/liblzma/api/lzma/filter.h | 10 +++++----- 18910 1 file changed, 5 insertions(+), 5 deletions(-) 18911 18912commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0 18913Author: Jia Tan <jiat0218@gmail.com> 18914Date: 2023-02-06 21:35:06 +0800 18915 18916 liblzma: Improve documentation in filter.h. 18917 18918 All functions now explicitly specify parameter and return values. 18919 The notes and code annotations were moved before the parameter and 18920 return value descriptions for consistency. 18921 18922 Also, the description above lzma_filter_encoder_is_supported() about 18923 not being able to list available filters was removed since 18924 lzma_str_list_filters() will do this. 18925 18926 src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- 18927 1 file changed, 143 insertions(+), 83 deletions(-) 18928 18929commit 805b45cd60bfd5da3d3d89077de3789df179b324 18930Author: Lasse Collin <lasse.collin@tukaani.org> 18931Date: 2023-02-23 20:46:16 +0200 18932 18933 Update THANKS. 18934 18935 THANKS | 1 + 18936 1 file changed, 1 insertion(+) 18937 18938commit 30e95bb44c36ae26b2ab12a94343b215fec285e7 18939Author: Lasse Collin <lasse.collin@tukaani.org> 18940Date: 2023-02-21 22:57:10 +0200 18941 18942 liblzma: Avoid null pointer + 0 (undefined behavior in C). 18943 18944 In the C99 and C17 standards, section 6.5.6 paragraph 8 means that 18945 adding 0 to a null pointer is undefined behavior. As of writing, 18946 "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, 18947 I'm not aware of any compiler that would take advantage of this 18948 when optimizing (Clang 15 included). It's good to avoid this anyway 18949 since compilers might some day infer that pointer arithmetic implies 18950 that the pointer is not NULL. That is, the following foo() would then 18951 unconditionally return 0, even for foo(NULL, 0): 18952 18953 void bar(char *a, char *b); 18954 18955 int foo(char *a, size_t n) 18956 { 18957 bar(a, a + n); 18958 return a == NULL; 18959 } 18960 18961 In contrast to C, C++ explicitly allows null pointer + 0. So if 18962 the above is compiled as C++ then there is no undefined behavior 18963 in the foo(NULL, 0) call. 18964 18965 To me it seems that changing the C standard would be the sane 18966 thing to do (just add one sentence) as it would ensure that a huge 18967 amount of old code won't break in the future. Based on web searches 18968 it seems that a large number of codebases (where null pointer + 0 18969 occurs) are being fixed instead to be future-proof in case compilers 18970 will some day optimize based on it (like making the above foo(NULL, 0) 18971 return 0) which in the worst case will cause security bugs. 18972 18973 Some projects don't plan to change it. For example, gnulib and thus 18974 many GNU tools currently require that null pointer + 0 is defined: 18975 18976 https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html 18977 18978 https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html 18979 18980 In XZ Utils null pointer + 0 issue should be fixed after this 18981 commit. This adds a few if-statements and thus branches to avoid 18982 null pointer + 0. These check for size > 0 instead of ptr != NULL 18983 because this way bugs where size > 0 && ptr == NULL will likely 18984 get caught quickly. None of them are in hot spots so it shouldn't 18985 matter for performance. 18986 18987 A little less readable version would be replacing 18988 18989 ptr + offset 18990 18991 with 18992 18993 offset != 0 ? ptr + offset : ptr 18994 18995 or creating a macro for it: 18996 18997 #define my_ptr_add(ptr, offset) \ 18998 ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) 18999 19000 Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, 19001 Clang >= 7, and Clang-based ICX to optimize it to the very same code 19002 as ptr + offset. That is, it won't create a branch. So for hot code 19003 this could be a good solution to avoid null pointer + 0. Unfortunately 19004 other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a 19005 branch from my_ptr_add(). 19006 19007 Thanks to Marcin Kowalczyk for reporting the problem: 19008 https://github.com/tukaani-project/xz/issues/36 19009 19010 src/liblzma/common/block_decoder.c | 5 ++++- 19011 src/liblzma/common/block_encoder.c | 7 +++++-- 19012 src/liblzma/common/common.c | 20 ++++++++++++++------ 19013 src/liblzma/common/index_decoder.c | 13 ++++++++++--- 19014 src/liblzma/common/index_encoder.c | 11 +++++++++-- 19015 src/liblzma/common/index_hash.c | 13 ++++++++++--- 19016 src/liblzma/common/lzip_decoder.c | 6 +++++- 19017 src/liblzma/delta/delta_decoder.c | 7 ++++++- 19018 src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- 19019 src/liblzma/simple/simple_coder.c | 6 ++++-- 19020 10 files changed, 77 insertions(+), 23 deletions(-) 19021 19022commit fa9065fac54194fe0407fc7f0cc9633fdce13c21 19023Author: Jia Tan <jiat0218@gmail.com> 19024Date: 2023-02-07 00:00:44 +0800 19025 19026 liblzma: Adjust container.h for consistency with filter.h. 19027 19028 src/liblzma/api/lzma/container.h | 20 +++++++++----------- 19029 1 file changed, 9 insertions(+), 11 deletions(-) 19030 19031commit 00a721b63d82dfb658dca8d8cb599d8a245c663f 19032Author: Jia Tan <jiat0218@gmail.com> 19033Date: 2023-02-07 00:00:09 +0800 19034 19035 liblzma: Fix small typos and reword a few things in filter.h. 19036 19037 src/liblzma/api/lzma/container.h | 13 ++++++------- 19038 1 file changed, 6 insertions(+), 7 deletions(-) 19039 19040commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39 19041Author: Jia Tan <jiat0218@gmail.com> 19042Date: 2023-02-06 23:42:08 +0800 19043 19044 liblzma: Convert list of flags in lzma_mt to bulleted list. 19045 19046 src/liblzma/api/lzma/container.h | 9 ++++++--- 19047 1 file changed, 6 insertions(+), 3 deletions(-) 19048 19049commit dbd47622eb99fefb3538a22baec3def002aa56f5 19050Author: Jia Tan <jiat0218@gmail.com> 19051Date: 2023-01-26 23:17:41 +0800 19052 19053 liblzma: Fix typo in documentation in container.h 19054 19055 lzma_microlzma_decoder -> lzma_microlzma_encoder 19056 19057 src/liblzma/api/lzma/container.h | 2 +- 19058 1 file changed, 1 insertion(+), 1 deletion(-) 19059 19060commit 14cd30806d69e55906073745bcce3ee50e0ec942 19061Author: Jia Tan <jiat0218@gmail.com> 19062Date: 2023-01-26 23:16:34 +0800 19063 19064 liblzma: Improve documentation for container.h 19065 19066 Standardizing each function to always specify parameters and return 19067 values. Also moved the parameters and return values to the end of each 19068 function description. 19069 19070 src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- 19071 1 file changed, 93 insertions(+), 53 deletions(-) 19072 19073commit c9c8bfae3502842dcead85eeb2b951b437c2cd88 19074Author: Jia Tan <jiat0218@gmail.com> 19075Date: 2023-02-22 20:59:41 +0800 19076 19077 CMake: Add LZIP decoder test to list of tests. 19078 19079 CMakeLists.txt | 1 + 19080 1 file changed, 1 insertion(+) 19081 19082commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a 19083Author: Lasse Collin <lasse.collin@tukaani.org> 19084Date: 2023-02-17 20:56:49 +0200 19085 19086 Update THANKS. 19087 19088 THANKS | 1 + 19089 1 file changed, 1 insertion(+) 19090 19091commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa 19092Author: Lasse Collin <lasse.collin@tukaani.org> 19093Date: 2023-02-17 20:48:28 +0200 19094 19095 Build: Use only the generic symbol versioning on MicroBlaze. 19096 19097 On MicroBlaze, GCC 12 is broken in sense that 19098 __has_attribute(__symver__) returns true but it still doesn't 19099 support the __symver__ attribute even though the platform is ELF 19100 and symbol versioning is supported if using the traditional 19101 __asm__(".symver ...") method. Avoiding the traditional method is 19102 good because it breaks LTO (-flto) builds with GCC. 19103 19104 See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 19105 19106 For now the only extra symbols in liblzma_linux.map are the 19107 compatibility symbols with the patch that spread from RHEL/CentOS 7. 19108 These require the use of __symver__ attribute or __asm__(".symver ...") 19109 in the C code. Compatibility with the patch from CentOS 7 doesn't 19110 seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze 19111 instead. It doesn't require anything special in the C code and thus 19112 no LTO issues either. 19113 19114 An alternative would be to detect support for __symver__ 19115 attribute in configure.ac and CMakeLists.txt and fall back 19116 to __asm__(".symver ...") but then LTO would be silently broken 19117 on MicroBlaze. It sounds likely that MicroBlaze is a special 19118 case so let's treat it as a such because that is simpler. If 19119 a similar issue exists on some other platform too then hopefully 19120 someone will report it and this can be reconsidered. 19121 19122 (This doesn't do the same fix in CMakeLists.txt. Perhaps it should 19123 but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. 19124 The problem breaks the build so it's easy to notice and can be fixed 19125 later.) 19126 19127 Thanks to Vincent Fazio for reporting the problem and proposing 19128 a patch (in the end that solution wasn't used): 19129 https://github.com/tukaani-project/xz/pull/32 19130 19131 configure.ac | 12 ++++++++++-- 19132 1 file changed, 10 insertions(+), 2 deletions(-) 19133 19134commit d831072cceca458d94d2d5da201862f6d43a417b 19135Author: Lasse Collin <lasse.collin@tukaani.org> 19136Date: 2023-02-16 21:09:00 +0200 19137 19138 liblzma: Very minor API doc tweaks. 19139 19140 Use "member" to refer to struct members as that's the term used 19141 by the C standard. 19142 19143 Use lzma_options_delta.dist and such in docs so that in Doxygen's 19144 HTML output they will link to the doc of the struct member. 19145 19146 Clean up a few trailing white spaces too. 19147 19148 src/liblzma/api/lzma/block.h | 6 +++--- 19149 src/liblzma/api/lzma/delta.h | 6 +++--- 19150 src/liblzma/api/lzma/index.h | 10 +++++----- 19151 src/liblzma/api/lzma/stream_flags.h | 6 +++--- 19152 4 files changed, 14 insertions(+), 14 deletions(-) 19153 19154commit f029daea39c215fd7d5cb6b6798818b055cf5b22 19155Author: Jia Tan <jiat0218@gmail.com> 19156Date: 2023-02-17 00:54:33 +0800 19157 19158 liblzma: Adjust spacing in doc headers in bcj.h. 19159 19160 src/liblzma/api/lzma/bcj.h | 14 +++++++------- 19161 1 file changed, 7 insertions(+), 7 deletions(-) 19162 19163commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c 19164Author: Jia Tan <jiat0218@gmail.com> 19165Date: 2023-02-17 00:44:44 +0800 19166 19167 liblzma: Adjust documentation in bcj.h for consistent style. 19168 19169 src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- 19170 1 file changed, 22 insertions(+), 21 deletions(-) 19171 19172commit efa498c13b883810497e0ea8a169efd6f48f5026 19173Author: Jia Tan <jiat0218@gmail.com> 19174Date: 2023-02-17 00:36:05 +0800 19175 19176 liblzma: Rename field => member in documentation. 19177 19178 Also adjusted preset value => preset level. 19179 19180 src/liblzma/api/lzma/base.h | 18 +++++++-------- 19181 src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- 19182 src/liblzma/api/lzma/container.h | 26 +++++++++++----------- 19183 src/liblzma/api/lzma/delta.h | 12 +++++----- 19184 src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- 19185 src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ 19186 src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- 19187 7 files changed, 95 insertions(+), 95 deletions(-) 19188 19189commit 718b22a6c5e3ee5de123323ea798872381f9320e 19190Author: Lasse Collin <lasse.collin@tukaani.org> 19191Date: 2023-02-16 17:59:50 +0200 19192 19193 liblzma: Silence a warning from MSVC. 19194 19195 It gives C4146 here since unary minus with unsigned integer 19196 is still unsigned (which is the intention here). Doing it 19197 with substraction makes it clearer and avoids the warning. 19198 19199 Thanks to Nathan Moinvaziri for reporting this. 19200 19201 src/liblzma/check/crc64_fast.c | 2 +- 19202 1 file changed, 1 insertion(+), 1 deletion(-) 19203 19204commit 87c53553fa7d50f777b4edfa99f2083628f590fe 19205Author: Jia Tan <jiat0218@gmail.com> 19206Date: 2023-02-16 21:04:54 +0800 19207 19208 liblzma: Improve documentation for stream_flags.h 19209 19210 Standardizing each function to always specify parameters and return 19211 values. Also moved the parameters and return values to the end of each 19212 function description. 19213 19214 A few small things were reworded and long sentences broken up. 19215 19216 src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- 19217 1 file changed, 46 insertions(+), 30 deletions(-) 19218 19219commit 13d99e75a543e9e5f8633cc241eae55b91a3b242 19220Author: Jia Tan <jiat0218@gmail.com> 19221Date: 2023-02-14 21:50:16 +0800 19222 19223 liblzma: Improve documentation in lzma12.h. 19224 19225 All functions now explicitly specify parameter and return values. 19226 19227 src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- 19228 1 file changed, 23 insertions(+), 9 deletions(-) 19229 19230commit 43ec344c868f930e96879eb9e49212cce92a9884 19231Author: Jia Tan <jiat0218@gmail.com> 19232Date: 2023-01-27 22:44:06 +0800 19233 19234 liblzma: Improve documentation in check.h. 19235 19236 All functions now explicitly specify parameter and return values. 19237 Also moved the note about SHA-256 functions not being exported to the 19238 top of the file. 19239 19240 src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- 19241 1 file changed, 28 insertions(+), 13 deletions(-) 19242 19243commit 9c71db4e884fd49aea3d1e711036bff45ca66487 19244Author: Jia Tan <jiat0218@gmail.com> 19245Date: 2023-02-08 21:33:52 +0800 19246 19247 liblzma: Improve documentation in index.h 19248 19249 All functions now explicitly specify parameter and return values. 19250 19251 src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- 19252 1 file changed, 126 insertions(+), 51 deletions(-) 19253 19254commit 421f2f2e160720f6009e3b6a125cafe2feaa9419 19255Author: Jia Tan <jiat0218@gmail.com> 19256Date: 2023-02-08 20:35:32 +0800 19257 19258 liblzma: Reword a comment in index.h. 19259 19260 src/liblzma/api/lzma/index.h | 4 ++-- 19261 1 file changed, 2 insertions(+), 2 deletions(-) 19262 19263commit b67539484981351d501b68de5e925425e50c59b1 19264Author: Jia Tan <jiat0218@gmail.com> 19265Date: 2023-02-08 20:30:23 +0800 19266 19267 liblzma: Omit lzma_index_iter's internal field from Doxygen docs. 19268 19269 Add \private above this field and its sub-fields since it is not meant 19270 to be modified by users. 19271 19272 src/liblzma/api/lzma/index.h | 9 ++++++++- 19273 1 file changed, 8 insertions(+), 1 deletion(-) 19274 19275commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96 19276Author: Jia Tan <jiat0218@gmail.com> 19277Date: 2023-01-21 21:32:03 +0800 19278 19279 liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. 19280 19281 LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put 19282 documentation after a member. 19283 19284 src/liblzma/api/lzma/base.h | 2 +- 19285 1 file changed, 1 insertion(+), 1 deletion(-) 19286 19287commit 816fec125aa74bcef46512c73acc6d9e5a700d15 19288Author: Jia Tan <jiat0218@gmail.com> 19289Date: 2023-01-21 00:29:38 +0800 19290 19291 liblzma: Improve documentation for base.h. 19292 19293 Standardizing each function to always specify params and return values. 19294 Also fixed a small grammar mistake. 19295 19296 src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- 19297 1 file changed, 25 insertions(+), 5 deletions(-) 19298 19299commit 862dacef1a4e7e1b28d465956fa4244ed01df154 19300Author: Jia Tan <jiat0218@gmail.com> 19301Date: 2023-02-14 00:12:34 +0800 19302 19303 liblzma: Add one more missing [out] annotation in vli.h 19304 19305 src/liblzma/api/lzma/vli.h | 2 +- 19306 1 file changed, 1 insertion(+), 1 deletion(-) 19307 19308commit 867b08ae4254bf55dd1f7fd502cc618231b92f75 19309Author: Jia Tan <jiat0218@gmail.com> 19310Date: 2023-02-14 00:08:33 +0800 19311 19312 liblzma: Minor improvements to vli.h. 19313 19314 Added [out] annotations to parameters that are pointers and can have 19315 their value changed. Also added a clarification to lzma_vli_is_valid. 19316 19317 src/liblzma/api/lzma/vli.h | 13 +++++++------ 19318 1 file changed, 7 insertions(+), 6 deletions(-) 19319 19320commit 90d0e628ff11e5030bcc4fc000bca056adda6603 19321Author: Jia Tan <jiat0218@gmail.com> 19322Date: 2023-02-10 21:38:02 +0800 19323 19324 liblzma: Add comments for macros in delta.h. 19325 19326 Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness 19327 and to avoid Doxygen warnings. 19328 19329 src/liblzma/api/lzma/delta.h | 8 ++++++++ 19330 1 file changed, 8 insertions(+) 19331 19332commit 9255fffdb13e59874bf7f95c370c410ad3a7e114 19333Author: Jia Tan <jiat0218@gmail.com> 19334Date: 2023-02-10 21:35:23 +0800 19335 19336 liblzma: Improve documentation in index_hash.h. 19337 19338 All functions now explicitly specify parameter and return values. 19339 Also reworded the description of lzma_index_hash_init() for readability. 19340 19341 src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- 19342 1 file changed, 27 insertions(+), 9 deletions(-) 19343 19344commit 1dbe12b90cff79bb51923733ac0840747b4b4131 19345Author: Lasse Collin <lasse.collin@tukaani.org> 19346Date: 2023-02-07 19:07:45 +0200 19347 19348 xz: Improve the comment about start_time in mytime.c. 19349 19350 start_time is relative to an arbitary point in time, it's not 19351 time of day, so using it for anything else than time differences 19352 wouldn't make sense. 19353 19354 src/xz/mytime.c | 15 ++++++++++----- 19355 1 file changed, 10 insertions(+), 5 deletions(-) 19356 19357commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56 19358Author: Jia Tan <jiat0218@gmail.com> 19359Date: 2023-02-04 21:06:35 +0800 19360 19361 Build: Adjust CMake version search regex. 19362 19363 Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH 19364 macros do not need to be on consecutive lines in version.h. They can be 19365 separated by more whitespace, comments, or even other content, as long 19366 as they appear in the proper order (major, minor, patch). 19367 19368 CMakeLists.txt | 2 ++ 19369 1 file changed, 2 insertions(+) 19370 19371commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac 19372Author: Jia Tan <jiat0218@gmail.com> 19373Date: 2023-02-04 12:01:23 +0800 19374 19375 xz: Add a comment clarifying the use of start_time in mytime.c. 19376 19377 src/xz/mytime.c | 5 +++++ 19378 1 file changed, 5 insertions(+) 19379 19380commit 912af91b10a18fb9bb3167247ecaaefca8248ee9 19381Author: Jia Tan <jiat0218@gmail.com> 19382Date: 2023-01-26 09:50:21 +0800 19383 19384 liblzma: Improve documentation for version.h. 19385 19386 Specified parameter and return values for API functions and documented 19387 a few more of the macros. 19388 19389 src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- 19390 1 file changed, 22 insertions(+), 7 deletions(-) 19391 19392commit 850adec171203cd22b57d016084d713f72ae5307 19393Author: Jia Tan <jiat0218@gmail.com> 19394Date: 2023-02-03 22:52:55 +0800 19395 19396 Docs: Omit SIGTSTP not handled from TODO. 19397 19398 TODO | 4 ---- 19399 1 file changed, 4 deletions(-) 19400 19401commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3 19402Author: Jia Tan <jiat0218@gmail.com> 19403Date: 2023-02-03 00:33:32 +0800 19404 19405 liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. 19406 19407 The bug is only a problem in applications that do not properly terminate 19408 the filters[] array with LZMA_VLI_UNKNOWN or have more than 19409 LZMA_FILTERS_MAX filters. This bug does not affect xz. 19410 19411 src/liblzma/common/string_conversion.c | 7 +++++++ 19412 1 file changed, 7 insertions(+) 19413 19414commit e01f01b9af1c074463b92694a16ecc16a31907c0 19415Author: Jia Tan <jiat0218@gmail.com> 19416Date: 2023-02-03 00:32:47 +0800 19417 19418 Tests: Create test_filter_str.c. 19419 19420 Tests lzma_str_to_filters(), lzma_str_from_filters(), and 19421 lzma_str_list_filters() API functions. 19422 19423 CMakeLists.txt | 1 + 19424 tests/Makefile.am | 2 + 19425 tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ 19426 3 files changed, 596 insertions(+) 19427 19428commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26 19429Author: Jia Tan <jiat0218@gmail.com> 19430Date: 2023-01-22 08:49:00 +0800 19431 19432 liblzma: Fix typos in comments in string_conversion.c. 19433 19434 src/liblzma/common/string_conversion.c | 4 ++-- 19435 1 file changed, 2 insertions(+), 2 deletions(-) 19436 19437commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6 19438Author: Jia Tan <jiat0218@gmail.com> 19439Date: 2023-02-03 00:20:20 +0800 19440 19441 liblzma: Clarify block encoder and decoder documentation. 19442 19443 Added a few sentences to the description for lzma_block_encoder() and 19444 lzma_block_decoder() to highlight that the Block Header must be coded 19445 before calling these functions. 19446 19447 src/liblzma/api/lzma/block.h | 15 +++++++++++---- 19448 1 file changed, 11 insertions(+), 4 deletions(-) 19449 19450commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f 19451Author: Jia Tan <jiat0218@gmail.com> 19452Date: 2023-02-03 00:12:24 +0800 19453 19454 Update lzma_block documentation for lzma_block_uncomp_encode(). 19455 19456 src/liblzma/api/lzma/block.h | 3 +++ 19457 1 file changed, 3 insertions(+) 19458 19459commit 504cf4af895fd45aad0c56eb3b49d90acd54465b 19460Author: Jia Tan <jiat0218@gmail.com> 19461Date: 2023-02-03 00:11:37 +0800 19462 19463 liblzma: Minor edits to lzma_block header_size documentation. 19464 19465 src/liblzma/api/lzma/block.h | 3 ++- 19466 1 file changed, 2 insertions(+), 1 deletion(-) 19467 19468commit 115b720fb521f99aa832d06b2c12b7f8c6c50680 19469Author: Jia Tan <jiat0218@gmail.com> 19470Date: 2023-02-03 00:11:07 +0800 19471 19472 liblzma: Enumerate functions that read version in lzma_block. 19473 19474 src/liblzma/api/lzma/block.h | 13 +++++++++++-- 19475 1 file changed, 11 insertions(+), 2 deletions(-) 19476 19477commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1 19478Author: Jia Tan <jiat0218@gmail.com> 19479Date: 2023-02-03 00:10:34 +0800 19480 19481 liblzma: Clarify comment in block.h. 19482 19483 src/liblzma/api/lzma/block.h | 3 ++- 19484 1 file changed, 2 insertions(+), 1 deletion(-) 19485 19486commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8 19487Author: Jia Tan <jiat0218@gmail.com> 19488Date: 2023-02-03 00:07:23 +0800 19489 19490 liblzma: Improve documentation for block.h. 19491 19492 Standardizing each function to always specify params and return values. 19493 Output pointer parameters are also marked with doxygen style [out] to 19494 make it clear. Any note sections were also moved above the parameter and 19495 return sections for consistency. 19496 19497 src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- 19498 1 file changed, 75 insertions(+), 21 deletions(-) 19499 19500commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3 19501Author: Jia Tan <jiat0218@gmail.com> 19502Date: 2023-02-01 23:38:30 +0800 19503 19504 liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. 19505 19506 The flag description for LZMA_STR_NO_VALIDATION was previously confusing 19507 about the treatment for filters than cannot be used with .xz format 19508 (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that 19509 LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. 19510 19511 src/liblzma/api/lzma/filter.h | 5 +++-- 19512 1 file changed, 3 insertions(+), 2 deletions(-) 19513 19514commit 315c64c7e18acc59a745b68148188a73e998252b 19515Author: Jia Tan <jiat0218@gmail.com> 19516Date: 2023-02-01 21:43:33 +0800 19517 19518 CI: Update .gitignore for artifacts directory in build-aux. 19519 19520 The workflow action for our CI pipeline can only reference artifacts in 19521 the source directory, so we should ignore these files if the ci_build.sh 19522 is run locally. 19523 19524 .gitignore | 1 + 19525 1 file changed, 1 insertion(+) 19526 19527commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f 19528Author: Jia Tan <jiat0218@gmail.com> 19529Date: 2023-02-01 21:36:46 +0800 19530 19531 CI: Add quotes around variables in a few places. 19532 19533 build-aux/ci_build.sh | 6 +++--- 19534 1 file changed, 3 insertions(+), 3 deletions(-) 19535 19536commit 3a401b0e0c7a2658af7801dd0690256ef24149e0 19537Author: Jia Tan <jiat0218@gmail.com> 19538Date: 2023-02-01 21:36:22 +0800 19539 19540 CI: Upload test logs as artifacts if a test fails. 19541 19542 .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++-------------- 19543 build-aux/ci_build.sh | 31 ++++++++++++++++++++----- 19544 2 files changed, 68 insertions(+), 23 deletions(-) 19545 19546commit 610dde15a88f12cc540424eb3eb3ed61f3876f74 19547Author: Lasse Collin <lasse.collin@tukaani.org> 19548Date: 2023-01-27 20:02:49 +0200 19549 19550 xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available. 19551 19552 mythread.h and thus liblzma already does it. 19553 19554 src/xz/mytime.c | 11 ++++++++--- 19555 src/xz/private.h | 3 +-- 19556 2 files changed, 9 insertions(+), 5 deletions(-) 19557 19558commit 2e02877288f6576cd4595e9ac7684f867cd47d68 19559Author: Lasse Collin <lasse.collin@tukaani.org> 19560Date: 2023-01-27 19:41:19 +0200 19561 19562 po4a/po4a.conf: Sort the language identifiers in alphabetical order. 19563 19564 po4a/po4a.conf | 2 +- 19565 1 file changed, 1 insertion(+), 1 deletion(-) 19566 19567commit ff592c616eda274215b485cf1b8d34f060c9f3be 19568Author: Lasse Collin <lasse.collin@tukaani.org> 19569Date: 2023-01-26 18:29:17 +0200 19570 19571 xz: Add SIGTSTP handler for progress indicator time keeping. 19572 19573 This way, if xz is stopped the elapsed time and estimated time 19574 remaining won't get confused by the amount of time spent in 19575 the stopped state. 19576 19577 This raises SIGSTOP. It's not clear to me if this is the correct way. 19578 POSIX and glibc docs say that SIGTSTP shouldn't stop the process if 19579 it is orphaned but this commit doesn't attempt to handle that. 19580 19581 Search for SIGTSTP in section 2.4.3: 19582 19583 https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html 19584 19585 src/xz/mytime.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 19586 src/xz/mytime.h | 6 ++++++ 19587 src/xz/private.h | 12 ++++++++++++ 19588 src/xz/signals.c | 17 ++++++++++++++++- 19589 4 files changed, 89 insertions(+), 2 deletions(-) 19590 19591commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76 19592Author: Jia Tan <jiat0218@gmail.com> 19593Date: 2023-01-27 20:14:51 +0800 19594 19595 Translations: Add Brazilian Portuguese translation of man pages. 19596 19597 Thanks to Rafael Fontenelle. 19598 19599 po4a/po4a.conf | 2 +- 19600 po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 19601 2 files changed, 3678 insertions(+), 1 deletion(-) 19602 19603commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc 19604Author: Lasse Collin <lasse.collin@tukaani.org> 19605Date: 2023-01-26 17:51:06 +0200 19606 19607 Build: Avoid different quoting style in --enable-doxygen doc. 19608 19609 configure.ac | 10 +++++----- 19610 1 file changed, 5 insertions(+), 5 deletions(-) 19611 19612commit af5a4bd5afc089d9697756dded38feafaa987ae4 19613Author: Lasse Collin <lasse.collin@tukaani.org> 19614Date: 2023-01-26 17:39:46 +0200 19615 19616 tuklib_physmem: Check for __has_warning before GCC version. 19617 19618 Clang can be configured to fake a too high GCC version so 19619 this way it's more robust. 19620 19621 src/common/tuklib_physmem.c | 6 +++--- 19622 1 file changed, 3 insertions(+), 3 deletions(-) 19623 19624commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4 19625Author: Jia Tan <jiat0218@gmail.com> 19626Date: 2023-01-24 20:48:50 +0800 19627 19628 liblzma: Fix documentation in filter.h for lzma_str_to_filters() 19629 19630 The previous documentation for lzma_str_to_filters() was technically 19631 correct, but misleading. lzma_str_to_filters() returns NULL on success, 19632 which is in practice always defined to 0. This is the same value as 19633 LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should 19634 be more clear. 19635 19636 src/liblzma/api/lzma/filter.h | 2 +- 19637 1 file changed, 1 insertion(+), 1 deletion(-) 19638 19639commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2 19640Author: Lasse Collin <lasse.collin@tukaani.org> 19641Date: 2023-01-23 23:44:58 +0200 19642 19643 Revert "tuklib_common: Define __has_warning if it is not defined." 19644 19645 This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766. 19646 19647 Macros in the reserved namespace (_foo or __foo) shouldn't be #defined 19648 without a very good reason. Here the alternative would have been 19649 to #define tuklib_has_warning(str) to an approriate value. 19650 19651 Also the tuklib_* files should stay namespace clean if possible. 19652 19653 src/common/tuklib_common.h | 7 ------- 19654 1 file changed, 7 deletions(-) 19655 19656commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575 19657Author: Lasse Collin <lasse.collin@tukaani.org> 19658Date: 2023-01-23 23:38:34 +0200 19659 19660 tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows. 19661 19662 __has_warning and other __has_foo macros are meant to become 19663 compiler-agnostic so it's not good to check for __clang__ with it. 19664 19665 This also relied on tuklib_common.h for #defining __has_warning 19666 which was confusing as #defining reserved macros is generally 19667 not a good idea. 19668 19669 src/common/tuklib_physmem.c | 17 +++++++++++++---- 19670 1 file changed, 13 insertions(+), 4 deletions(-) 19671 19672commit 683a3c7e2fcd922200c31078e5c9dd1348e90941 19673Author: Lasse Collin <lasse.collin@tukaani.org> 19674Date: 2023-01-24 00:05:38 +0200 19675 19676 xz: Flip the return value of suffix_is_set to match the documentation. 19677 19678 Also edit style to match the existing coding style in the project. 19679 19680 src/xz/args.c | 6 +++--- 19681 src/xz/suffix.c | 2 +- 19682 src/xz/suffix.h | 1 + 19683 3 files changed, 5 insertions(+), 4 deletions(-) 19684 19685commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0 19686Author: Jia Tan <jiat0218@gmail.com> 19687Date: 2023-01-07 21:55:06 +0800 19688 19689 xz: Refactor duplicated check for custom suffix when using --format=raw 19690 19691 src/xz/args.c | 8 ++++++++ 19692 src/xz/suffix.c | 26 ++++++++------------------ 19693 src/xz/suffix.h | 7 +++++++ 19694 3 files changed, 23 insertions(+), 18 deletions(-) 19695 19696commit 9663141274e01592a281a7f2df5d7a31a1dac8bf 19697Author: Jia Tan <jiat0218@gmail.com> 19698Date: 2023-01-20 21:53:14 +0800 19699 19700 liblzma: Set documentation on all reserved fields to private. 19701 19702 This prevents the reserved fields from being part of the generated 19703 Doxygen documentation. 19704 19705 src/liblzma/api/lzma/base.h | 17 +++++++++++++++ 19706 src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ 19707 src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ 19708 src/liblzma/api/lzma/delta.h | 12 +++++++++++ 19709 src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ 19710 src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ 19711 src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ 19712 7 files changed, 173 insertions(+) 19713 19714commit 6327a045f34d48fc5afc58ba0d32a82c94403049 19715Author: Jia Tan <jiat0218@gmail.com> 19716Date: 2022-12-20 21:39:59 +0800 19717 19718 Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17. 19719 19720 A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released 19721 in 2019, so this should be compatible with resonable modern distros. 19722 The purpose of Doxygen these days is for docs on the website, so it 19723 doesn't necessarily have to work for everyone. Just when the maintainers 19724 want to update the docs. 19725 19726 Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++--------------- 19727 1 file changed, 1893 insertions(+), 630 deletions(-) 19728 19729commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad 19730Author: Jia Tan <jiat0218@gmail.com> 19731Date: 2023-01-03 20:37:30 +0800 19732 19733 Doxygen: Make Doxygen only produce liblzma API documentation by default. 19734 19735 Doxygen is now configurable in autotools only with 19736 --enable-doxygen=[api|all]. The default is "api", which will only 19737 generate HTML output for liblzma API functions. The LaTex documentation 19738 output was also disabled. 19739 19740 Doxyfile.in | 18 +++++++++--------- 19741 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++ 19742 2 files changed, 48 insertions(+), 9 deletions(-) 19743 19744commit 6fcf4671b6047113c583a0919fc850987a4ec5f4 19745Author: Jia Tan <jiat0218@gmail.com> 19746Date: 2022-12-21 23:59:43 +0800 19747 19748 liblzma: Highlight liblzma API headers should not be included directly. 19749 19750 This improves the generated Doxygen HTML files to better highlight 19751 how to properly use the liblzma API header files. 19752 19753 src/liblzma/api/lzma/base.h | 5 +++-- 19754 src/liblzma/api/lzma/bcj.h | 5 +++-- 19755 src/liblzma/api/lzma/block.h | 5 +++-- 19756 src/liblzma/api/lzma/check.h | 5 +++-- 19757 src/liblzma/api/lzma/container.h | 5 +++-- 19758 src/liblzma/api/lzma/delta.h | 5 +++-- 19759 src/liblzma/api/lzma/filter.h | 5 +++-- 19760 src/liblzma/api/lzma/hardware.h | 5 +++-- 19761 src/liblzma/api/lzma/index.h | 5 +++-- 19762 src/liblzma/api/lzma/index_hash.h | 5 +++-- 19763 src/liblzma/api/lzma/lzma12.h | 5 +++-- 19764 src/liblzma/api/lzma/stream_flags.h | 5 +++-- 19765 src/liblzma/api/lzma/version.h | 5 +++-- 19766 src/liblzma/api/lzma/vli.h | 5 +++-- 19767 14 files changed, 42 insertions(+), 28 deletions(-) 19768 19769commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4 19770Author: Jia Tan <jiat0218@gmail.com> 19771Date: 2023-01-19 20:35:09 +0800 19772 19773 tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. 19774 19775 tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 19776 to retrieve a function address. The proper way to do this is to cast the 19777 return value to the type of function pointer retrieved. Unfortunately, 19778 this causes a cast-function-type warning, so the best solution is to 19779 simply ignore the warning. 19780 19781 src/common/tuklib_physmem.c | 9 +++++++++ 19782 1 file changed, 9 insertions(+) 19783 19784commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766 19785Author: Jia Tan <jiat0218@gmail.com> 19786Date: 2023-01-19 20:32:40 +0800 19787 19788 tuklib_common: Define __has_warning if it is not defined. 19789 19790 clang supports the __has_warning macro to determine if the version of 19791 clang compiling the code supports a given warning. If we do not define 19792 it for other compilers, it may cause a preprocessor error. 19793 19794 src/common/tuklib_common.h | 7 +++++++ 19795 1 file changed, 7 insertions(+) 19796 19797commit b2ba1a489df451cdcd93b2334e319dd06778de19 19798Author: Jia Tan <jiat0218@gmail.com> 19799Date: 2023-01-18 22:11:05 +0800 19800 19801 CI: Reorder 32-bit build first for Linux autotool builds. 19802 19803 The 32-bit build needs to be first so the configure cache only needs to 19804 be reset one time. The 32-bit build sets the CFLAGS env variable, so any 19805 build using that flag after will fail unless the cache is reset. 19806 19807 .github/workflows/ci.yml | 17 ++++++++++++----- 19808 1 file changed, 12 insertions(+), 5 deletions(-) 19809 19810commit dd1c1135741057c91e8d018be9ec4d43968b0e64 19811Author: Jia Tan <jiat0218@gmail.com> 19812Date: 2023-01-18 21:51:43 +0800 19813 19814 CI: Enable --config-cache in autotool builds. 19815 19816 If CFLAGS are set in a build, the cache must be cleared with 19817 "make distclean", or by deleting the cache file. 19818 19819 build-aux/ci_build.sh | 2 +- 19820 1 file changed, 1 insertion(+), 1 deletion(-) 19821 19822commit d3e11477053764c003eec2daa5198c747d70ff69 19823Author: Jia Tan <jiat0218@gmail.com> 19824Date: 2023-01-16 21:35:45 +0800 19825 19826 xz: Add missing comment for coder_set_compression_settings() 19827 19828 src/xz/coder.h | 3 ++- 19829 1 file changed, 2 insertions(+), 1 deletion(-) 19830 19831commit 123255b6ed15f4428b2aa92e4962015a5362f6bf 19832Author: Jia Tan <jiat0218@gmail.com> 19833Date: 2023-01-16 20:55:10 +0800 19834 19835 xz: Do not set compression settings with raw format in list mode. 19836 19837 Calling coder_set_compression_settings() in list mode with verbose mode 19838 on caused the filter chain and memory requirements to print. This was 19839 unnecessary since the command results in an error and not consistent 19840 with other formats like lzma and alone. 19841 19842 src/xz/args.c | 3 ++- 19843 1 file changed, 2 insertions(+), 1 deletion(-) 19844 19845commit 571919c47b9ff5171ede84378620ed0a9aeb98c0 19846Author: Jia Tan <jiat0218@gmail.com> 19847Date: 2023-01-13 20:37:06 +0800 19848 19849 Translations: Update the Brazilian Portuguese translation. 19850 19851 po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- 19852 1 file changed, 344 insertions(+), 259 deletions(-) 19853 19854commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf 19855Author: Jia Tan <jiat0218@gmail.com> 19856Date: 2023-01-12 23:43:06 +0800 19857 19858 CI: Disable shared and nls from various jobs in autotool runners. 19859 19860 Disabling shared library generation and linking should help speed up the 19861 runners. The shared library is still being tested in the 32 bit build 19862 and the full feature. 19863 19864 Disabling nls is to check for any unexpected warnings or errors. 19865 19866 .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------ 19867 1 file changed, 28 insertions(+), 28 deletions(-) 19868 19869commit 58a052198a7bcaf6e958f87fad72e69e19a2579b 19870Author: Jia Tan <jiat0218@gmail.com> 19871Date: 2023-01-12 23:39:19 +0800 19872 19873 CI: Reorder the 32-bit job in the Ubuntu runner. 19874 19875 Run the 32 bit job sooner since this is a more interesting test than 19876 some of the later jobs. 19877 19878 .github/workflows/ci.yml | 10 +++++----- 19879 1 file changed, 5 insertions(+), 5 deletions(-) 19880 19881commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797 19882Author: Jia Tan <jiat0218@gmail.com> 19883Date: 2023-01-12 23:09:03 +0800 19884 19885 CI: Allow disabling Native Language Support. 19886 19887 build-aux/ci_build.sh | 9 ++++++++- 19888 1 file changed, 8 insertions(+), 1 deletion(-) 19889 19890commit 0dec634e705b5bf89a37c5d62d71e8511d480058 19891Author: Jia Tan <jiat0218@gmail.com> 19892Date: 2023-01-12 23:02:20 +0800 19893 19894 CI: Only run autogen.sh if it has not already run. 19895 19896 build-aux/ci_build.sh | 11 ++++++++--- 19897 1 file changed, 8 insertions(+), 3 deletions(-) 19898 19899commit 32287dc8def94df4546e903495d14c132bd54cc4 19900Author: Jia Tan <jiat0218@gmail.com> 19901Date: 2023-01-12 22:58:36 +0800 19902 19903 CI: Allow disabling shared library in autotools builds. 19904 19905 build-aux/ci_build.sh | 9 ++++++++- 19906 1 file changed, 8 insertions(+), 1 deletion(-) 19907 19908commit 77d1ebcc99ddd82a300d1838f608150221931dcd 19909Author: Jia Tan <jiat0218@gmail.com> 19910Date: 2023-01-12 22:44:18 +0800 19911 19912 CI: Improve Usage readability and add -h option. 19913 19914 build-aux/ci_build.sh | 15 +++++++++++++-- 19915 1 file changed, 13 insertions(+), 2 deletions(-) 19916 19917commit a8bb8358d10b059274f3cf993d9b8f490bafb268 19918Author: Lasse Collin <lasse.collin@tukaani.org> 19919Date: 2023-01-12 13:04:05 +0200 19920 19921 Build: Omit -Wmissing-noreturn from the default warnings. 19922 19923 It's not that important. It can be annoying in builds that 19924 disable many features since in those cases the tests programs 19925 will correctly trigger this warning with Clang. 19926 19927 configure.ac | 1 - 19928 1 file changed, 1 deletion(-) 19929 19930commit 52dc033d0bde0d19e3912303c6c74bae559d6498 19931Author: Lasse Collin <lasse.collin@tukaani.org> 19932Date: 2023-01-12 06:05:58 +0200 19933 19934 xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). 19935 19936 It makes no difference here as the return value fits into an int 19937 too and it then gets ignored but this looks better. 19938 19939 src/xz/file_io.c | 2 +- 19940 1 file changed, 1 insertion(+), 1 deletion(-) 19941 19942commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3 19943Author: Lasse Collin <lasse.collin@tukaani.org> 19944Date: 2023-01-12 06:01:12 +0200 19945 19946 xz: Silence warnings from -Wsign-conversion in a 32-bit build. 19947 19948 src/common/tuklib_mbstr_fw.c | 2 +- 19949 src/xz/list.c | 4 ++-- 19950 2 files changed, 3 insertions(+), 3 deletions(-) 19951 19952commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339 19953Author: Lasse Collin <lasse.collin@tukaani.org> 19954Date: 2023-01-12 05:38:48 +0200 19955 19956 liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. 19957 19958 It doesn't warn on a 64-bit system because truncating 19959 a ptrdiff_t (signed long) to uint32_t is diagnosed under 19960 -Wconversion by GCC and -Wshorten-64-to-32 by Clang. 19961 19962 src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- 19963 1 file changed, 4 insertions(+), 3 deletions(-) 19964 19965commit 37fbdfb7263522c11c7ad2685413d6295532581d 19966Author: Lasse Collin <lasse.collin@tukaani.org> 19967Date: 2023-01-12 04:46:45 +0200 19968 19969 liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. 19970 19971 src/common/mythread.h | 4 ++-- 19972 1 file changed, 2 insertions(+), 2 deletions(-) 19973 19974commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008 19975Author: Lasse Collin <lasse.collin@tukaani.org> 19976Date: 2023-01-12 04:17:24 +0200 19977 19978 Build: Make configure add more warning flags for GCC and Clang. 19979 19980 -Wstrict-aliasing was removed from the list since it is enabled 19981 by -Wall already. 19982 19983 A normal build is clean with these on GNU/Linux x86-64 with 19984 GCC 12.2.0 and Clang 14.0.6. 19985 19986 configure.ac | 36 +++++++++++++++++++++++++++++++----- 19987 1 file changed, 31 insertions(+), 5 deletions(-) 19988 19989commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c 19990Author: Lasse Collin <lasse.collin@tukaani.org> 19991Date: 2023-01-12 04:14:18 +0200 19992 19993 Tests: Fix warnings from clang --Wassign-enum. 19994 19995 Explicitly casting the integer to lzma_check silences the warning. 19996 Since such an invalid value is needed in multiple tests, a constant 19997 INVALID_LZMA_CHECK_ID was added to tests.h. 19998 19999 The use of 0x1000 for lzma_block.check wasn't optimal as if 20000 the underlying type is a char then 0x1000 will be truncated to 0. 20001 However, in these test cases the value is ignored, thus even with 20002 such truncation the test would have passed. 20003 20004 tests/test_block_header.c | 6 +++--- 20005 tests/test_check.c | 2 +- 20006 tests/test_stream_flags.c | 8 ++++---- 20007 tests/tests.h | 9 +++++++++ 20008 4 files changed, 17 insertions(+), 8 deletions(-) 20009 20010commit 49245bb31e215ad455a1ab85e4ed6783152dc522 20011Author: Lasse Collin <lasse.collin@tukaani.org> 20012Date: 2023-01-12 03:51:07 +0200 20013 20014 Tests: Silence warnings from -Wsign-conversion. 20015 20016 Note that assigning an unsigned int to lzma_check doesn't warn 20017 on GNU/Linux x86-64 since the enum type is unsigned on that 20018 platform. The enum can be signed on some other platform though 20019 so it's best to use enumeration type lzma_check in these situations. 20020 20021 tests/test_check.c | 6 +++--- 20022 tests/test_stream_flags.c | 10 +++++----- 20023 2 files changed, 8 insertions(+), 8 deletions(-) 20024 20025commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571 20026Author: Lasse Collin <lasse.collin@tukaani.org> 20027Date: 2023-01-12 03:19:59 +0200 20028 20029 liblzma: Silence warnings from clang -Wconditional-uninitialized. 20030 20031 This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. 20032 The actual initialization of the variables is done inside 20033 mythread_sync() macro. Clang doesn't seem to see that 20034 the initialization code inside the macro is always executed. 20035 20036 src/liblzma/common/stream_decoder_mt.c | 8 +++++--- 20037 src/liblzma/common/stream_encoder_mt.c | 2 +- 20038 2 files changed, 6 insertions(+), 4 deletions(-) 20039 20040commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6 20041Author: Lasse Collin <lasse.collin@tukaani.org> 20042Date: 2023-01-12 03:11:40 +0200 20043 20044 Fix warnings from clang -Wdocumentation. 20045 20046 src/liblzma/check/check.h | 4 ---- 20047 src/liblzma/lz/lz_encoder_mf.c | 4 ++-- 20048 src/xz/options.c | 4 ++-- 20049 3 files changed, 4 insertions(+), 8 deletions(-) 20050 20051commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba 20052Author: Lasse Collin <lasse.collin@tukaani.org> 20053Date: 2023-01-12 03:04:28 +0200 20054 20055 Tests: test_lzip_decoder: Remove trailing white-space. 20056 20057 tests/test_lzip_decoder.c | 4 ++-- 20058 1 file changed, 2 insertions(+), 2 deletions(-) 20059 20060commit c0f8d6782f29e219fd496dd23f6a033270509d5c 20061Author: Lasse Collin <lasse.collin@tukaani.org> 20062Date: 2023-01-12 03:03:55 +0200 20063 20064 Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. 20065 20066 tests/test_lzip_decoder.c | 13 +++++++------ 20067 1 file changed, 7 insertions(+), 6 deletions(-) 20068 20069commit 62efd48a825e8f439e84c85e165d8774ddc68fd2 20070Author: Jia Tan <jiat0218@gmail.com> 20071Date: 2023-01-11 23:58:16 +0800 20072 20073 Add NEWS for 5.4.1. 20074 20075 NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20076 1 file changed, 70 insertions(+) 20077 20078commit d1561c47ec8cd3844a785d3741dc932f9b9c5790 20079Author: Jia Tan <jiat0218@gmail.com> 20080Date: 2023-01-11 22:46:48 +0800 20081 20082 xz: Fix warning -Wformat-nonliteral on clang in message.c. 20083 20084 clang and gcc differ in how they handle -Wformat-nonliteral. gcc will 20085 allow a non-literal format string as long as the function takes its 20086 format arguments as a va_list. 20087 20088 src/xz/message.c | 9 +++++++++ 20089 1 file changed, 9 insertions(+) 20090 20091commit 8c0f115cc489331c48df77beca92fe378039d919 20092Author: Jia Tan <jiat0218@gmail.com> 20093Date: 2023-01-11 20:58:31 +0800 20094 20095 Tests: Fix test_filter_flags copy/paste error. 20096 20097 tests/test_filter_flags.c | 4 ++-- 20098 1 file changed, 2 insertions(+), 2 deletions(-) 20099 20100commit 25035813d1d596fde692addc33e7f715f1fe55eb 20101Author: Jia Tan <jiat0218@gmail.com> 20102Date: 2023-01-11 20:42:29 +0800 20103 20104 Tests: Fix type-limits warning in test_filter_flags. 20105 20106 This only occurs in test_filter_flags when the BCJ filters are not 20107 configured and built. In this case, ARRAY_SIZE() returns 0 and causes a 20108 type-limits warning with the loop variable since an unsigned number will 20109 always be >= 0. 20110 20111 tests/test_filter_flags.c | 13 ++++++++++--- 20112 1 file changed, 10 insertions(+), 3 deletions(-) 20113 20114commit 0b8fa310cf56fec55663f62340e49e8e1441594f 20115Author: Lasse Collin <lasse.collin@tukaani.org> 20116Date: 2023-01-10 22:14:03 +0200 20117 20118 liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. 20119 20120 This affects only 32-bit x86 builds. x86-64 is OK as is. 20121 20122 I still cannot easily test this myself. The reporter has tested 20123 this and it passes the tests included in the CMake build and 20124 performance is good: raw CRC64 is 2-3 times faster than the 20125 C version of the slice-by-four method. (Note that liblzma doesn't 20126 include a MSVC-compatible version of the 32-bit x86 assembly code 20127 for the slice-by-four method.) 20128 20129 Thanks to Iouri Kharon for figuring out a fix, testing, and 20130 benchmarking. 20131 20132 src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ 20133 1 file changed, 18 insertions(+) 20134 20135commit 765354b50c2886fc0d294d6be3b207f7ae2ada70 20136Author: Jia Tan <jiat0218@gmail.com> 20137Date: 2023-01-11 01:18:50 +0800 20138 20139 Tests: Fix unused function warning in test_block_header. 20140 20141 One of the global arrays of filters was only used in a test that 20142 required both encoders and decoders to be configured in the build. 20143 20144 tests/test_block_header.c | 4 ++++ 20145 1 file changed, 4 insertions(+) 20146 20147commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa 20148Author: Jia Tan <jiat0218@gmail.com> 20149Date: 2023-01-11 01:08:03 +0800 20150 20151 Tests: Fix unused function warning in test_index_hash. 20152 20153 test_index_hash does not use fill_index_hash() unless both encoders 20154 and decoders are configured in the build. 20155 20156 tests/test_index_hash.c | 4 +--- 20157 1 file changed, 1 insertion(+), 3 deletions(-) 20158 20159commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6 20160Author: Jia Tan <jiat0218@gmail.com> 20161Date: 2023-01-11 00:54:45 +0800 20162 20163 CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner. 20164 20165 If all goes well, Mac autotools and Linux and Mac CMake will be added 20166 later for 32-bit builds. 20167 20168 .github/workflows/ci.yml | 7 ++++++- 20169 1 file changed, 6 insertions(+), 1 deletion(-) 20170 20171commit 923eb689a4b863b6cca8df6360d4962aae994edf 20172Author: Jia Tan <jiat0218@gmail.com> 20173Date: 2023-01-11 00:51:01 +0800 20174 20175 CI/CD: Enables warnings as errors in autotool build. 20176 20177 This will help us catch warnings and potential bugs in builds that are 20178 not often tested by us. 20179 20180 build-aux/ci_build.sh | 2 +- 20181 1 file changed, 1 insertion(+), 1 deletion(-) 20182 20183commit feae5528a30c006b6e2f96a95116e20b983703fc 20184Author: Jia Tan <jiat0218@gmail.com> 20185Date: 2023-01-11 00:48:35 +0800 20186 20187 CI/CD: Add -f argument to set CFLAGS in ci_build.sh. 20188 20189 For now, the suggested option is for -m32 only, but this can be updated 20190 later if other flags are deemed useful. 20191 20192 build-aux/ci_build.sh | 8 ++++++-- 20193 1 file changed, 6 insertions(+), 2 deletions(-) 20194 20195commit cfabb62a4874c146e7d6f30445637602545bc054 20196Author: Lasse Collin <lasse.collin@tukaani.org> 20197Date: 2023-01-10 12:47:16 +0200 20198 20199 Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." 20200 20201 This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. 20202 20203 It was reported that it wasn't a good enough fix and MSVC 20204 still produced (different kind of) bad code when building 20205 for 32-bit x86 if optimizations are enabled. 20206 20207 Thanks to Iouri Kharon. 20208 20209 src/liblzma/check/crc64_fast.c | 6 ------ 20210 1 file changed, 6 deletions(-) 20211 20212commit 0b64215170dd3562f207ef26f794755bcd600526 20213Author: Lasse Collin <lasse.collin@tukaani.org> 20214Date: 2023-01-10 11:56:11 +0200 20215 20216 sysdefs.h: Don't include strings.h anymore. 20217 20218 On some platforms src/xz/suffix.c may need <strings.h> for 20219 strcasecmp() but suffix.c includes the header when it needs it. 20220 20221 Unless there is an old system that otherwise supports enough C99 20222 to build XZ Utils but doesn't have C89/C90-compatible <string.h>, 20223 there should be no need to include <strings.h> in sysdefs.h. 20224 20225 src/common/sysdefs.h | 6 ------ 20226 1 file changed, 6 deletions(-) 20227 20228commit ec2fc39fe4f4e6e242b3a669585049763968cdeb 20229Author: Lasse Collin <lasse.collin@tukaani.org> 20230Date: 2023-01-10 11:23:41 +0200 20231 20232 xz: Include <strings.h> in suffix.c if needed for strcasecmp(). 20233 20234 SUSv2 and POSIX.1‐2017 declare only a few functions in <strings.h>. 20235 Of these, strcasecmp() is used on some platforms in suffix.c. 20236 Nothing else in the project needs <strings.h> (at least if 20237 building on a modern system). 20238 20239 sysdefs.h currently includes <strings.h> if HAVE_STRINGS_H is 20240 defined and suffix.c relied on this. 20241 20242 Note that dos/config.h doesn't #define HAVE_STRINGS_H even though 20243 DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() 20244 is also in <string.h> in DJGPP. 20245 20246 src/xz/suffix.c | 3 +++ 20247 1 file changed, 3 insertions(+) 20248 20249commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f 20250Author: Lasse Collin <lasse.collin@tukaani.org> 20251Date: 2023-01-10 10:05:13 +0200 20252 20253 sysdefs.h: Fix a comment. 20254 20255 src/common/sysdefs.h | 2 +- 20256 1 file changed, 1 insertion(+), 1 deletion(-) 20257 20258commit 194a5fab69277d9e804a6113b5f676b8666b3a61 20259Author: Lasse Collin <lasse.collin@tukaani.org> 20260Date: 2023-01-10 10:04:06 +0200 20261 20262 sysdefs.h: Don't include memory.h anymore even if it were available. 20263 20264 It quite probably was never needed, that is, any system where memory.h 20265 was required likely couldn't compile XZ Utils for other reasons anyway. 20266 20267 XZ Utils 5.2.6 and later source packages were generated using 20268 Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code 20269 being removed is no longer used anyway. 20270 20271 src/common/sysdefs.h | 8 ++------ 20272 1 file changed, 2 insertions(+), 6 deletions(-) 20273 20274commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0 20275Author: Lasse Collin <lasse.collin@tukaani.org> 20276Date: 2023-01-10 08:29:32 +0200 20277 20278 CMake: Fix appending to CMAKE_RC_FLAGS. 20279 20280 It's a string, not a list. It only worked when the variable was empty. 20281 20282 Thanks to Iouri Kharon. 20283 20284 CMakeLists.txt | 2 +- 20285 1 file changed, 1 insertion(+), 1 deletion(-) 20286 20287commit 6e652ceb18c615c578c869db300fa0756788b4e0 20288Author: Lasse Collin <lasse.collin@tukaani.org> 20289Date: 2023-01-10 00:33:14 +0200 20290 20291 Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. 20292 20293 windows/INSTALL-MSVC.txt | 19 ++++++++++++------- 20294 1 file changed, 12 insertions(+), 7 deletions(-) 20295 20296commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47 20297Author: Lasse Collin <lasse.collin@tukaani.org> 20298Date: 2023-01-09 23:41:25 +0200 20299 20300 CMake: Fix windres issues again. 20301 20302 At least on some systems, GNU windres needs --use-temp-file 20303 in addition to the \x20 hack to avoid spaces in the command line 20304 argument. Hovever, that \x20 syntax is broken with llvm-windres 20305 version 15.0.0 (results in "XZx20Utils") but luckily it works 20306 with a regular space. Thus it is best to limit the workarounds 20307 to GNU toolchain on Windows. 20308 20309 CMakeLists.txt | 35 +++++++++++++++++++++++------------ 20310 1 file changed, 23 insertions(+), 12 deletions(-) 20311 20312commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935 20313Author: Lasse Collin <lasse.collin@tukaani.org> 20314Date: 2023-01-06 22:53:38 +0200 20315 20316 Tests: test_filter_flags: Clean up minor issues. 20317 20318 Here are the list of the most significant issues addressed: 20319 - Avoid using internal common.h header. It's not good to copy the 20320 constants like this but common.h cannot be included for use outside 20321 of liblzma. This is the quickest thing to do that could be fixed later. 20322 20323 - Omit the INIT_FILTER macro. Initialization should be done with just 20324 regular designated initializers. 20325 20326 - Use start_offset = 257 for BCJ tests. It demonstrates that Filter 20327 Flags encoder and decoder don't validate the options thoroughly. 20328 257 is valid only for the x86 filter. This is a bit silly but 20329 not a significant problem in practice because the encoder and 20330 decoder initialization functions will catch bad alignment still. 20331 Perhaps this should be fixed but it's not urgent and doesn't need 20332 to be in 5.4.x. 20333 20334 - Various tweaks to comments such as filter id -> Filter ID 20335 20336 tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- 20337 1 file changed, 78 insertions(+), 75 deletions(-) 20338 20339commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865 20340Author: Jia Tan <jiat0218@gmail.com> 20341Date: 2022-12-29 23:33:33 +0800 20342 20343 Tests: Refactors existing filter flags tests. 20344 20345 Converts the existing filter flags tests into tuktests. 20346 20347 tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- 20348 1 file changed, 457 insertions(+), 198 deletions(-) 20349 20350commit 36edc65ab4cf10a131f239acbd423b4510ba52d5 20351Author: Lasse Collin <lasse.collin@tukaani.org> 20352Date: 2023-01-09 12:22:05 +0200 20353 20354 liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). 20355 20356 I haven't tested with MSVC myself and there doesn't seem to be 20357 information about the problem online, so I'm relying on the bug report. 20358 20359 Thanks to Iouri Kharon for the bug report and the patch. 20360 20361 src/liblzma/check/crc64_fast.c | 6 ++++++ 20362 1 file changed, 6 insertions(+) 20363 20364commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d 20365Author: Lasse Collin <lasse.collin@tukaani.org> 20366Date: 2023-01-09 11:27:24 +0200 20367 20368 CMake: Fix a copypaste error in xzdec Windows resource file handling. 20369 20370 It was my mistake. Thanks to Iouri Kharon for the bug report. 20371 20372 CMakeLists.txt | 4 ++-- 20373 1 file changed, 2 insertions(+), 2 deletions(-) 20374 20375commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848 20376Author: Lasse Collin <lasse.collin@tukaani.org> 20377Date: 2023-01-08 00:32:29 +0200 20378 20379 Tests: tuktest.h: Support tuktest_malloc(0). 20380 20381 It's not needed in XZ Utils at least for now. It's good to support 20382 it still because if such use is needed later, it wouldn't be 20383 caught on GNU/Linux since malloc(0) from glibc returns non-NULL. 20384 20385 tests/tuktest.h | 4 ++-- 20386 1 file changed, 2 insertions(+), 2 deletions(-) 20387 20388commit 69d5d78c6904668eb09a131da86276beec3281f8 20389Author: Lasse Collin <lasse.collin@tukaani.org> 20390Date: 2023-01-08 00:24:23 +0200 20391 20392 Update THANKS. 20393 20394 THANKS | 1 + 20395 1 file changed, 1 insertion(+) 20396 20397commit dd38655f80c113c9db73b9ed370dc900e1c4dc41 20398Author: Lasse Collin <lasse.collin@tukaani.org> 20399Date: 2023-01-07 21:57:11 +0200 20400 20401 CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. 20402 20403 The changes listed on cmake-policies(7) for versions 3.17 to 3.25 20404 shouldn't affect this project. 20405 20406 CMakeLists.txt | 2 +- 20407 1 file changed, 1 insertion(+), 1 deletion(-) 20408 20409commit a890a637bee9193d5b690aefa9a59eba5b8532ae 20410Author: Lasse Collin <lasse.collin@tukaani.org> 20411Date: 2023-01-07 19:50:35 +0200 20412 20413 Update THANKS. 20414 20415 THANKS | 1 + 20416 1 file changed, 1 insertion(+) 20417 20418commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e 20419Author: Lasse Collin <lasse.collin@tukaani.org> 20420Date: 2023-01-07 19:50:03 +0200 20421 20422 CMake/Windows: Add resource files to xz.exe and xzdec.exe. 20423 20424 The command line tools cannot be built with MSVC for now but 20425 they can be built with MinGW-w64. 20426 20427 Thanks to Iouri Kharon for the bug report and the original patch. 20428 20429 CMakeLists.txt | 16 ++++++++++++++++ 20430 1 file changed, 16 insertions(+) 20431 20432commit 443dfebced041adc88f10d824188eeef5b5821a9 20433Author: Lasse Collin <lasse.collin@tukaani.org> 20434Date: 2023-01-07 19:48:52 +0200 20435 20436 CMake/Windows: Add a workaround for windres from GNU binutils. 20437 20438 Thanks to Iouri Kharon for the bug report and the original patch. 20439 20440 CMakeLists.txt | 21 ++++++++++++++++++++- 20441 1 file changed, 20 insertions(+), 1 deletion(-) 20442 20443commit ceb805011747d04a915f3f39e4bed9eed151c634 20444Author: Lasse Collin <lasse.collin@tukaani.org> 20445Date: 2023-01-07 19:31:15 +0200 20446 20447 Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. 20448 20449 VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets 20450 disabled with VS2013. 20451 20452 Thanks to Iouri Kharon for the bug report. 20453 20454 CMakeLists.txt | 3 ++- 20455 configure.ac | 8 ++++++-- 20456 2 files changed, 8 insertions(+), 3 deletions(-) 20457 20458commit 8d372bd94066b1a5b0570b2550f83c2868486adf 20459Author: Jia Tan <jiat0218@gmail.com> 20460Date: 2023-01-07 21:05:15 +0800 20461 20462 CI/CD: Split CMake Linux and MacOS build phase to build and test. 20463 20464 The phase split was only done for Autotools before, so should also 20465 apply to CMake. 20466 20467 .github/workflows/ci.yml | 8 ++++++-- 20468 1 file changed, 6 insertions(+), 2 deletions(-) 20469 20470commit 747c7f2b34bd498f6702c6875500a26b06201772 20471Author: Jia Tan <jiat0218@gmail.com> 20472Date: 2023-01-07 11:16:55 +0800 20473 20474 CI/CD: Reduce job runners to 4 instead of using matrix strategy. 20475 20476 The old version used too many runners that resulted in unnecessary 20477 dependency downloads. Now, the runners are reused for the different 20478 configurations for each OS and build system. 20479 20480 .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------ 20481 1 file changed, 83 insertions(+), 12 deletions(-) 20482 20483commit 4de35fd6b58d46fc887c78faf163f6a37b790c45 20484Author: Jia Tan <jiat0218@gmail.com> 20485Date: 2023-01-07 10:07:20 +0800 20486 20487 CI/CD: Add new -p (PHASE) argument to ci_build.sh 20488 20489 The new PHASE argument can be build, test, or all. all is the default. 20490 This way, the CI/CD script can differentiate between the build and test 20491 phases to make it easier to track down errors when they happen. 20492 20493 build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++----------------------- 20494 1 file changed, 76 insertions(+), 64 deletions(-) 20495 20496commit 6fd39664de47801e670a16617863196bfbde4755 20497Merge: 78e0561d fc0c7884 20498Author: Jia Tan <jiat0218@gmail.com> 20499Date: 2023-01-07 00:10:50 +0800 20500 20501 Merge pull request #7 from tukaani-project/tuktest_index_hash 20502 20503 Tuktest index hash 20504 20505commit fc0c788469159f634f09ff23c8cef6925c91da57 20506Author: Lasse Collin <lasse.collin@tukaani.org> 20507Date: 2023-01-06 17:58:48 +0200 20508 20509 Tests: test_index_hash: Add an assert_uint_eq(). 20510 20511 tests/test_index_hash.c | 3 +++ 20512 1 file changed, 3 insertions(+) 20513 20514commit d550304f5343b3a082da265107cd820e0d81dc71 20515Author: Lasse Collin <lasse.collin@tukaani.org> 20516Date: 2023-01-06 17:55:06 +0200 20517 20518 Tests: test_index_hash: Fix a memory leak. 20519 20520 tests/test_index_hash.c | 2 ++ 20521 1 file changed, 2 insertions(+) 20522 20523commit 02608f74ea1f2d2d56585711ff241c34b4ad0937 20524Author: Lasse Collin <lasse.collin@tukaani.org> 20525Date: 2023-01-06 17:53:03 +0200 20526 20527 Tests: test_index_hash: Don't treat pointers as booleans. 20528 20529 tests/test_index_hash.c | 6 +++--- 20530 1 file changed, 3 insertions(+), 3 deletions(-) 20531 20532commit 056766c8601a3808bea1761f6cc833197a35a3e0 20533Author: Lasse Collin <lasse.collin@tukaani.org> 20534Date: 2023-01-06 17:51:41 +0200 20535 20536 Tests: test_index_hash: Fix a typo in a comment. 20537 20538 tests/test_index_hash.c | 2 +- 20539 1 file changed, 1 insertion(+), 1 deletion(-) 20540 20541commit 873e684028ba9738f071c5236db7d452ed797b4c 20542Author: Lasse Collin <lasse.collin@tukaani.org> 20543Date: 2023-01-06 17:44:29 +0200 20544 20545 Tests: test_index_hash: Avoid the variable name "index". 20546 20547 It can trigger warnings from -Wshadow on some systems. 20548 20549 tests/test_index_hash.c | 16 ++++++++-------- 20550 1 file changed, 8 insertions(+), 8 deletions(-) 20551 20552commit d1f24c35874eeba8432d75aa77b06c50375ed937 20553Author: Lasse Collin <lasse.collin@tukaani.org> 20554Date: 2023-01-06 17:35:50 +0200 20555 20556 Tests: test_index_hash: Use the word "Record" instead of "entry". 20557 20558 tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------ 20559 1 file changed, 51 insertions(+), 51 deletions(-) 20560 20561commit b93f7c5cbb02b42024ac866fc0af541de3d816e2 20562Author: Lasse Collin <lasse.collin@tukaani.org> 20563Date: 2023-01-06 17:35:05 +0200 20564 20565 Tests: test_index_hash: Tweak comments and style. 20566 20567 The words defined in the .xz file format specification 20568 begin with capital letter to emphasize that they have 20569 a specific meaning. 20570 20571 tests/test_index_hash.c | 62 ++++++++++++++++++++++++++----------------------- 20572 1 file changed, 33 insertions(+), 29 deletions(-) 20573 20574commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036 20575Author: Lasse Collin <lasse.collin@tukaani.org> 20576Date: 2023-01-06 17:17:37 +0200 20577 20578 Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0. 20579 20580 tests/test_index_hash.c | 2 +- 20581 1 file changed, 1 insertion(+), 1 deletion(-) 20582 20583commit 78e0561dfebaa9d5e34558de537efcda890e0629 20584Author: Jia Tan <jiat0218@gmail.com> 20585Date: 2023-01-06 20:43:31 +0800 20586 20587 Style: Change #if !defined() to #ifndef in mythread.h. 20588 20589 src/common/mythread.h | 2 +- 20590 1 file changed, 1 insertion(+), 1 deletion(-) 20591 20592commit e834e1e934ed0af673598d8c0c34afb2af56bee0 20593Author: Jia Tan <jiat0218@gmail.com> 20594Date: 2023-01-06 20:35:55 +0800 20595 20596 Build: Add missing stream_decoder_mt.c to .vcxproj files. 20597 20598 The line in the .vcxproj files for building with was missing in 5.4.0. 20599 Thank to Hajin Jang for reporting the issue. 20600 20601 windows/vs2013/liblzma.vcxproj | 1 + 20602 windows/vs2013/liblzma_dll.vcxproj | 1 + 20603 windows/vs2017/liblzma.vcxproj | 1 + 20604 windows/vs2017/liblzma_dll.vcxproj | 1 + 20605 windows/vs2019/liblzma.vcxproj | 1 + 20606 windows/vs2019/liblzma_dll.vcxproj | 1 + 20607 6 files changed, 6 insertions(+) 20608 20609commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111 20610Author: Jia Tan <jiat0218@gmail.com> 20611Date: 2023-01-05 20:57:25 +0800 20612 20613 liblzma: Remove common.h include from common/index.h. 20614 20615 common/index.h is needed by liblzma internally and tests. common.h will 20616 include and define many things that are not needed by the tests. Also, 20617 this prevents include order problems because common.h will redefine 20618 LZMA_API resulting in a warning. 20619 20620 src/liblzma/common/index.c | 1 + 20621 src/liblzma/common/index.h | 9 +++++++-- 20622 src/liblzma/common/index_decoder.h | 1 + 20623 src/liblzma/common/stream_buffer_encoder.c | 1 + 20624 4 files changed, 10 insertions(+), 2 deletions(-) 20625 20626commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f 20627Author: Lasse Collin <lasse.collin@tukaani.org> 20628Date: 2023-01-04 22:40:54 +0200 20629 20630 Update THANKS. 20631 20632 THANKS | 1 + 20633 1 file changed, 1 insertion(+) 20634 20635commit aafd67fba045ab99683971263a5a26fb2a6e8ce2 20636Author: Lasse Collin <lasse.collin@tukaani.org> 20637Date: 2023-01-04 18:40:28 +0200 20638 20639 Tests: Adjust style in test_compress.sh. 20640 20641 tests/test_compress.sh | 12 +++++++----- 20642 1 file changed, 7 insertions(+), 5 deletions(-) 20643 20644commit 52380678f42364daa4510f92f6d3b18ec98c3638 20645Author: Jia Tan <jiat0218@gmail.com> 20646Date: 2023-01-04 23:58:58 +0800 20647 20648 Tests: Replace non portable shell parameter expansion 20649 20650 The shell parameter expansion using # and ## is not supported in 20651 Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully 20652 portable, so we should avoid it. 20653 20654 tests/create_compress_files.c | 2 +- 20655 tests/test_compress.sh | 20 +++++++++++++------- 20656 tests/test_compress_prepared_bcj_sparc | 2 +- 20657 tests/test_compress_prepared_bcj_x86 | 2 +- 20658 4 files changed, 16 insertions(+), 10 deletions(-) 20659 20660commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b 20661Author: Jia Tan <jiat0218@gmail.com> 20662Date: 2023-01-03 21:02:38 +0800 20663 20664 Translations: Add Korean translation of man pages. 20665 20666 Thanks to Seong-ho Cho 20667 20668 po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20669 po4a/po4a.conf | 2 +- 20670 2 files changed, 5553 insertions(+), 1 deletion(-) 20671 20672commit c4145978d95ebf1690c778d354e15f7c2823d7a8 20673Author: Jia Tan <jiat0218@gmail.com> 20674Date: 2023-01-03 20:47:27 +0800 20675 20676 Translations: Update the Esperanto translation. 20677 20678 po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- 20679 1 file changed, 332 insertions(+), 288 deletions(-) 20680 20681commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c 20682Author: Lasse Collin <lasse.collin@tukaani.org> 20683Date: 2023-01-02 17:20:47 +0200 20684 20685 Bump version and soname for 5.5.0alpha. 20686 20687 5.5.0alpha won't be released, it's just to mark that 20688 the branch is not for stable 5.4.x. 20689 20690 Once again there is no API/ABI stability for new features 20691 in devel versions. The major soname won't be bumped even 20692 if API/ABI of new features breaks between devel releases. 20693 20694 src/liblzma/Makefile.am | 2 +- 20695 src/liblzma/api/lzma/version.h | 4 ++-- 20696 2 files changed, 3 insertions(+), 3 deletions(-) 20697 20698commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a 20699Author: Lasse Collin <lasse.collin@tukaani.org> 20700Date: 2023-01-02 17:05:07 +0200 20701 20702 Build: Fix config.h comments. 20703 20704 configure.ac | 2 +- 20705 m4/tuklib_progname.m4 | 2 +- 20706 2 files changed, 2 insertions(+), 2 deletions(-) 20707 20708commit bb740e3b117f1a3c65152d01e5755523a908ecb1 20709Author: Jia Tan <jiat0218@gmail.com> 20710Date: 2023-01-02 22:33:48 +0800 20711 20712 Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. 20713 20714 HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to 20715 HAVE_PROGRAM_INVOCATION_NAME. Previously, 20716 HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when 20717 building with autotools. CMake would only set this when it was 1, and the 20718 dos/config.h did not define it. The new macro definition is consistent 20719 across build systems. 20720 20721 cmake/tuklib_progname.cmake | 5 ++--- 20722 m4/tuklib_progname.m4 | 5 ++++- 20723 src/common/tuklib_progname.c | 2 +- 20724 src/common/tuklib_progname.h | 2 +- 20725 4 files changed, 8 insertions(+), 6 deletions(-) 20726 20727commit 064cd385a716abc78d93a3612411a82d69ceb221 20728Author: Jia Tan <jiat0218@gmail.com> 20729Date: 2022-12-29 00:30:52 +0800 20730 20731 Adds test_index_hash to .gitignore. 20732 20733 .gitignore | 1 + 20734 1 file changed, 1 insertion(+) 20735 20736commit 3959162baec074511d83ba0fec1284c3ed724799 20737Author: Jia Tan <jiat0218@gmail.com> 20738Date: 2022-12-29 00:25:18 +0800 20739 20740 Tests: Creates test_index_hash.c 20741 20742 Tests all API functions exported from index_hash.h. Does not have a 20743 dedicated test for lzma_index_hash_end. 20744 20745 CMakeLists.txt | 2 + 20746 tests/Makefile.am | 3 + 20747 tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++ 20748 3 files changed, 384 insertions(+) 20749 20750commit f16e12d5e755d371247202fcccbcccd1ec16b2cf 20751Author: Jia Tan <jiat0218@gmail.com> 20752Date: 2022-08-17 20:20:16 +0800 20753 20754 liblzma: Add NULL check to lzma_index_hash_append. 20755 20756 This is for consistency with lzma_index_append. 20757 20758 src/liblzma/common/index_hash.c | 2 +- 20759 1 file changed, 1 insertion(+), 1 deletion(-) 20760 20761commit 203b008eb220208981902e0db541c02d1c1c9f5e 20762Author: Jia Tan <jiat0218@gmail.com> 20763Date: 2022-08-17 17:59:51 +0800 20764 20765 liblzma: Replaced hardcoded 0x0 index indicator byte with macro 20766 20767 src/liblzma/common/index.h | 3 +++ 20768 src/liblzma/common/index_decoder.c | 2 +- 20769 src/liblzma/common/index_encoder.c | 2 +- 20770 src/liblzma/common/index_hash.c | 2 +- 20771 src/liblzma/common/stream_decoder.c | 3 ++- 20772 src/liblzma/common/stream_decoder_mt.c | 2 +- 20773 6 files changed, 9 insertions(+), 5 deletions(-) 20774 20775commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0 20776Author: Lasse Collin <lasse.collin@tukaani.org> 20777Date: 2022-12-30 20:10:08 +0200 20778 20779 Tests: test_check: Test corner cases of CLMUL CRC64. 20780 20781 tests/test_check.c | 27 +++++++++++++++++++++++++++ 20782 1 file changed, 27 insertions(+) 20783 20784commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7 20785Author: Lasse Collin <lasse.collin@tukaani.org> 20786Date: 2022-12-30 19:36:49 +0200 20787 20788 Tests: Clarify a comment in test_lzip_decoder.c. 20789 20790 tests/test_lzip_decoder.c | 8 ++++++-- 20791 1 file changed, 6 insertions(+), 2 deletions(-) 20792 20793commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8 20794Author: Jia Tan <jiat0218@gmail.com> 20795Date: 2022-12-29 01:55:19 +0800 20796 20797 xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c. 20798 20799 Previously, mytime.c depended on mythread.h for <time.h> to be included. 20800 20801 src/xz/mytime.c | 4 +++- 20802 1 file changed, 3 insertions(+), 1 deletion(-) 20803 20804commit f82294c8318a7a0990583d51ac5c7de682ad36ef 20805Author: Jia Tan <jiat0218@gmail.com> 20806Date: 2022-12-29 01:15:27 +0800 20807 20808 liblzma: Includes sys/time.h conditionally in mythread 20809 20810 Previously, <sys/time.h> was always included, even if mythread only used 20811 clock_gettime. <time.h> is still needed even if clock_gettime is not used 20812 though because struct timespec is needed for mythread_condtime. 20813 20814 src/common/mythread.h | 8 +++++++- 20815 1 file changed, 7 insertions(+), 1 deletion(-) 20816 20817commit 74dae7d30091e906d6a92a57952dea4354473f9b 20818Author: Jia Tan <jiat0218@gmail.com> 20819Date: 2022-12-29 01:10:53 +0800 20820 20821 Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. 20822 20823 Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always 20824 be set to 0 or 1. However, this macro was needed in xz so if xz was not 20825 built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but 20826 HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, 20827 HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and 20828 will only be set if it is 1. 20829 20830 CMakeLists.txt | 8 +++----- 20831 configure.ac | 5 ++++- 20832 src/common/mythread.h | 4 ++-- 20833 src/xz/mytime.c | 5 ++--- 20834 4 files changed, 11 insertions(+), 11 deletions(-) 20835 20836commit 7339e39dc060df6eda74a2c5b69961befc3d5d24 20837Author: Jia Tan <jiat0218@gmail.com> 20838Date: 2022-12-28 01:14:07 +0800 20839 20840 Translations: Add Ukrainian translations of man pages. 20841 20842 Thanks to Yuri Chornoivan 20843 20844 po4a/po4a.conf | 2 +- 20845 po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20846 2 files changed, 3677 insertions(+), 1 deletion(-) 20847 20848commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e 20849Author: Jia Tan <jiat0218@gmail.com> 20850Date: 2022-12-23 00:34:48 +0800 20851 20852 CI/CD: Create initial version of CI/CD workflow. 20853 20854 The CI/CD workflow will only execute on Ubuntu and MacOS latest version. 20855 The workflow will attempt to build with autotools and CMake and execute 20856 the tests. The workflow will run for all pull requests and pushes done 20857 to the master branch. 20858 20859 .github/workflows/ci.yml | 72 ++++++++++++++++++++++++ 20860 build-aux/ci_build.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++++ 20861 2 files changed, 213 insertions(+) 20862 20863commit 1275ebfba74230dbd028049141423c79c8b83b8f 20864Author: Jia Tan <jiat0218@gmail.com> 20865Date: 2022-12-22 23:14:53 +0800 20866 20867 liblzma: Update documentation for lzma_filter_encoder. 20868 20869 src/liblzma/common/filter_encoder.c | 7 +++++-- 20870 1 file changed, 5 insertions(+), 2 deletions(-) 20871 20872commit 7c9ff5f1667a16733163b75dfd4b509662c387f4 20873Author: Jia Tan <jiat0218@gmail.com> 20874Date: 2022-12-21 21:12:03 +0800 20875 20876 Tests: Adds lzip decoder tests 20877 20878 .gitignore | 1 + 20879 tests/Makefile.am | 2 + 20880 tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 20881 3 files changed, 474 insertions(+) 20882 20883commit 799ead162de63b8400733603d3abcd2e1977bdca 20884Author: Jia Cheong Tan <jiat0218@gmail.com> 20885Date: 2022-12-20 22:05:21 +0800 20886 20887 Doxygen: Update .gitignore for generating docs for in source build. 20888 20889 In source builds are not recommended, but we should still ignore 20890 the generated artifacts. 20891 20892 .gitignore | 2 ++ 20893 1 file changed, 2 insertions(+) 20894 20895commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e 20896Author: Jia Tan <jiat0218@gmail.com> 20897Date: 2022-12-20 20:46:44 +0800 20898 20899 liblzma: Fix lzma_microlzma_encoder() return value. 20900 20901 Using return_if_error on lzma_lzma_lclppb_encode was improper because 20902 return_if_error is expecting an lzma_ret value, but 20903 lzma_lzma_lclppb_encode returns a boolean. This could result in 20904 lzma_microlzma_encoder, which would be misleading for applications. 20905 20906 src/liblzma/common/microlzma_encoder.c | 3 ++- 20907 1 file changed, 2 insertions(+), 1 deletion(-) 20908 20909commit 8ace358d65059152d9a1f43f4770170d29d35754 20910Author: Jia Tan <jiat0218@gmail.com> 20911Date: 2022-12-16 20:58:55 +0800 20912 20913 CMake: Update .gitignore for CMake artifacts from in source build. 20914 20915 In source builds are not recommended, but we can make it easier 20916 by ignoring the generated artifacts from CMake. 20917 20918 .gitignore | 23 +++++++++++++++++++++++ 20919 1 file changed, 23 insertions(+) 20920 20921commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad 20922Author: Lasse Collin <lasse.collin@tukaani.org> 20923Date: 2022-12-16 18:30:02 +0200 20924 20925 liblzma: Update authors list in arm64.c. 20926 20927 src/liblzma/simple/arm64.c | 1 + 20928 1 file changed, 1 insertion(+) 20929 20930commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 20931Author: Lasse Collin <lasse.collin@tukaani.org> 20932Date: 2022-12-13 20:37:17 +0200 20933 20934 Bump version to 5.4.0 and soname to 5.4.0. 20935 20936 src/liblzma/Makefile.am | 2 +- 20937 src/liblzma/api/lzma/version.h | 6 +++--- 20938 src/liblzma/liblzma_generic.map | 2 +- 20939 src/liblzma/liblzma_linux.map | 2 +- 20940 4 files changed, 6 insertions(+), 6 deletions(-) 20941